This course teaches the principles and concepts involved in the analysis and design of large software systems. It tries to express the analysis and design of an application using UML, specify and evaluate software architectures, select and use appropriate architectural styles, understand and apply object-oriented design techniques, select and use appropriate software design patterns, understand and perform a design review. Software Architecture and Design will provide students with the principles and concepts involved in the analysis and design of large software systems.
- Introduction to Software Architecture, The 4+1 View of Software Architecture, Examples of Software Architecture
- Architecture Design: Quality attributes; Attribute Driven Design; Architecture Centric Software Development Methodology.
- Design Patterns, Software Design Function Oriented vs. Object Oriented, Documenting Software Architecture Stakeholders, Views, View sets, View-based documentation
- Architecture Description Languages
- Architecture Evaluation Architecture Knowledge Management
- Teacher: Hussien Seid