MME8010 | Arhitectura sistemelor soft |
Titularii de disciplina |
Prof. Dr. PÂRV Bazil, bparv![]() |
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 |
Course lectures - 12 weeks Week 1 1. Introduction. From Programming Languages to Software Architecture: definitions, early work, high-level programming languages, abstract data types Week 2 2. Common architectural styles: pipes and filters, data abstraction and object-oriented organization, event-based (implicit Invocation), layered systems, repositories, table-driven interpreters, other architectures, heterogeneous architectures. Week 3 3. Case studies: Key Word in Context, Instrumentation Software, Mobile Robots Week 4 3. Case studies: Cruise Control, A Layered Design with Different Styles for Layers, An Interpreter Using Different Idioms for the Components, A Blackboard Globally Recast as Interpreter Week 5 4. Shared information systems: definitions, database integration, integration in software development environments, integration in the design of buildings, architectural structures. Week 6 5. Client/server architectures: introduction, evolution - mainframe architecture, file sharing architecture, client-server architecture with examples, two-tier architectures (fat client, thin client) Week 7 5. Client/server architectures: three (multi)-tier architectures - general issues, different approaches (with multiple transaction processing monitor, with message server, with application server) Week 8 5. Client/server architectures: three (multi)-tier architectures with object request broker, distributed/collaborative enterprise architecture Week 9 6. Architectural models and elements: definitions, model elements and types, traditional architectural notations, architecture description languages Week 10 6. Architectural models and elements: 4+1 View Model (Kruchten), information systems architectures (Zachman framework, Data warehouse) Week 11 7. Architectural notations: informal diagrams, module interconnection languages, SGL (Software Glue Language) Week 12 7. Architectural notations: ADL (Architecture Description Language), modeling/specification languages (UML, ModeChart) Seminars /labs- 1 hour/week, 6 seminars/labs of 2 hours each Seminar 1 Survey of the sources of information available on Internet and Intranet; chosing the paper topic and scheduling the presentation. Seminars 2-5 Presentations of papers 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. Lab 1 Survey of the sources of information available on Internet and Intranet; team building, chosing the model problem, and initial planning of the project. Lab 2 Project management phase (problem statement, requirements, team members,. architectural styles to be considered, preliminary schedule) Labs 3 Analysis and design phase (analysis issues and general design decisions, detailed design for each considered style, project management issues) Labs 4-5 Construction phase (implementation and testing issues) Lab 6 Live demos (including source code, the comparison of different solutions, and the statement of individual contributions). The course and seminar/lab materials are available on the Win server, in the folder \win\labor\Romana\Master\pbc251\SoftwareArch |
Bibliografie |
1. BASS, L., CLEMENTS, P., KAZMAN R.: Software Architecture in Practice, 2nd ed., Addison-Wesley, 2003 2. KRUCHTEN, PH.: Architectural Blueprints – The 4+1 View Model of Software Architecture, IEEE Software 12 (6), 1995, pp. 42-50. 3. MALVEAU, R., MOWBRAY, T.J.: Software Architect Bootcamp, Prentice Hall, (1st ed., 2000, 2nd ed., 2003). 4. SHAW, M.: 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, M., GARLAN, D.: Software Architecture: Perspectives on an Emerging Discipline, Prentice-Hall, 1996. |
Assessment |
The final mark will cover seminar/lab work (i.e. paper and project) and the written exam results. It is computed as follows, on a 10-point scale: 1pt by default 1pt lab attendance 2pts research paper 2pts software project 4pts written exam. |