Basics of Software Architecture: Architecture Business Cycle, Architecture Patterns, Reference Model and Reference Architecture, Architecture Structure and Views, Product Line Architecture, Functional and Non-functional Properties of Software Architectures.


Enabling Techniques for Software Architecture: Coupling and Cohesion, Sufficiency, Completeness and Primitiveness, Separation of Policy and Implementation, Separation of Interface and Implementation.


Architectural Styles: Pipes and Filters, Data Abstraction and Object-Orientation, Event-Based, Implicit Invocation, Layered Systems, Repositories, Interpreters, Process Control, Heterogeneous Architectures, Case studies based on architectural styles.

Understanding and Achieving Software Qualities: Changeability, Efficiency, Interoperability, Reliability, Testability, Reusability, Security, Usability, Fault tolerant software, Tactics to achieve software qualities.


Designing of Software Architecture: Function Oriented Design, Object Oriented Design, Attribute Driven Design of Software Architecture, Case Studies.


Documenting Software Architecture: Software Architecture Documentation Template, Use of Documentation, Creation of different views of Software Architecture with UML.


Reconstructing Software Architecture: Phases of Reconstruction, Uses of Reconstruction, Reconstruction of Software Architecture using tool.



Recommended Books

  1. Bass Len, Clements Paul, Kazman Rick, “Software Architecture in Practice”, dorling Kingsley (2006) 2nd ed.
  2. Shaw M, Garlan D, “Software Architecture Perspectives on an Emerging Discipline”, Prentice-Hall (1996).
  3. Booch G., Rumbaugh J., Jacobson I., The Unified Modeling Language User Guide, Addison-Wesley (2005) 2nd ed.