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

SUBJECT

Code
Subject
MID1010 Software Architecture
Section
Semester
Hours: C+S+L
Category
Type
Component-Based Programming - in English
4
2+1+1
speciality
compulsory
Intelligent Systems - in English
4
2+1+1
speciality
compulsory
Formals Methods in Programming - in English
4
2+1+1
speciality
compulsory
Modeling and Simulation
4
2+1+1
speciality
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 (weeks 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
Bibliografie

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
The final mark will cover lab work (i.e. completing a project) and the written exam results. It is computed as follows, on a 10-point scale:
1pt by default
1pt lab attendance
4pts the project
4pts the written exam.
Links: Syllabus for all subjects
Romanian version for this subject
Rtf format for this subject