Babes-Bolyai University of Cluj-Napoca
Faculty of Mathematics and Computer Science
Study Cycle: Graduate

SUBJECT

Code
Subject
MI099 Software Architectures
Section
Semester
Hours: C+S+L
Category
Type
Computer Science - in English
7
2+0+2
optional
Teaching Staff in Charge
Prof. PÂRV Bazil, Ph.D.,  bparvcs.ubbcluj.ro
Aims
The course introduces core concepts and principles of software architecture, focusing on software architecture definition(s), architectural styles and models, architecture definition languages, and tool support for architectural design. All theoretical concepts are introduced by using case studies, taken from real applications.
Content
1. Introduction. From Programming Languages to Software Architecture
1.1. Definitions
1.2. Early work on software architecture
1.3. High-level Programming Languages
1.4. Abstract Data Types
1.5. Software Architecture
2. Common Architectural Styles
2.1. Pipes and Filters
2.2. Data Abstraction and Object-Oriented Organization
2.3. Event-based, Implicit Invocation
2.4. Layered Systems
2.5. Repositories
2.6. Table Driven Interpreters
2.7. Other Familiar Architectures
2.8. Heterogeneous Architectures
3. Case Studies
3.1. Case Study 1: Key Word in Context
3.2. Case Study 2: Instrumentation Software
3.3. Case Study 3: Mobile Robots
3.4. Case Study 4: Cruise Control
3.5. Case Study 5: A Layered Design with Different Styles for Layers
3.6. Case Study 6: An Interpreter Using Different Idioms for the Components
3.7. Case Study 7: A Blackboard Globally Recast as Interpreter
4. Shared Information Systems
4.1. Shared Information Systems
4.2. Database Integration
4.3. Integration in Software Development Environments
4.4. Integration in the Design of Buildings
4.5. Architectural Structures for Shared Information Systems
5. Client/Server Architectures
5.1. Introduction
5.2. Evolution of software architectures
5.2.1. Mainframe architecture
5.2.2. File sharing architecture
5.2.3. Client-server architecture
5.3. Examples of client-server architectures
5.3.1. Two tier architectures
5.3.2. Three (multi) tier architectures
5.3.2.1. Three tier architectures with transaction processing monitor technology
5.3.2.2. Three tier with message server
5.3.2.3. Three tier with an application server
5.3.2.4. Three tier with an ORB architecture
5.3.2.5. Distributed/collaborative enterprise architecture
6. Architectural models and elements
6.1. Model elements and types
6.2. Traditional architectural notations
6.3. Architecture description languages
6.4. 4+1 View Model
6.5. Information systems architectures
6.5.1. Zachman framework
6.5.2. Data warehouse
7. Architectural notations
7.1. Informal diagrams
7.2. Module interconnection languages
7.3. SGL (Software Glue Language)
7.4. ADL (Architecture Description Language)
7.5. Modeling/Specification Languages (UML, ModeChart)

Lab activities

Students will be organized in teams of 3 to 5 members. Each team will solve a problem, and each team member will implement a different architectural style.
Main lab activities are:
project management phase (weeks 1 to 3)
analysis/design phase (weeks 4 to 7)
implementation/testing phase (weeks 8 to 11)
live demos and documentation (week 12)

The course and seminar materials are/will be available on the Computer Science Department's server, in the folder ..\labor\engleza\an4\SoftwareArch
References
1. FUSSELL, MARK L.: A Good Architecture for Object-Oriented Information Systems. Structures, Designs, and Patterns, OOPSLA'96 Tutorial 23, [http://www.chimu.com/ publications/oopsla96tutorial23/oopsla96tutorial23.pdf].
2. KRUCHTEN, PHILIPPE: Architectural Blueprints - The 4+1 View Model of Software Architecture, IEEE Software 12 (6), 1995, pp. 42-50.
3. MOWBRAY, THOMAS J. - MALVEAU, RAPHAEL: Software Architect Bootcamp, Prentice Hall, (1st ed., 2000, 2nd ed., 2003).
4. SHAW, MARY: The Coming-of-Age of Software Architecture Research, in Proc. of the 23rd ICSE, IEEE Comp. Soc. 2001, 656, [http://www.cs.cmu.edu/afs/cs.cmu.edu/project/vit/ ftp/pdf/shaw-keynote-rev.pdf]
5. SHAW, MARY - GARLAN, DAVID: Software Architecture: Perspectives on an Emerging Discipline, Prentice-Hall, 1996.
6. Software Architecture Resources, [http://www.bredemeyer.com/papers.htm ]
Assessment
Final mark is computed as follows: 1 + 4 * MAD / 10 + 5 * MIT / 10, where
MAD = analysis/design phase mark
MID = implementation/testing/demo phases mark
Penalty: Subtract 0.5 pts from the corresponding mark for each week delay.
Links: Syllabus for all subjects
Romanian version for this subject
Rtf format for this subject