High-level design of software systems, starting from requirements gathering to implementation, architectural styles and idioms, connectors, modeling, and visualization. Real world case studies of software systems and their architecture. [3-2-0]
Architecture in context
Review of OO modeling
Styles and greenfield design
Implementation and deployment
Designing for reliability and security
Case studies drawn from a wide-range of systems from Operating Systems to web applications
Software Architecture: Foundations, theory and practice. Richard N. Taylor, Nenad Medvidovic, Eric Dashofy, Wiley, 2009.
Beautiful architecture, Diomidis Spinellis and Georgios Gousios , O’Reilly, 2009.