Click here to access press info

Architectures for Software Systems

Where you learn how to develop architectures for large-scale systems


This course introduces architectural design concepts critical to designing complex software-intensive systems. It considers commonly used software system structures, techniques for designing and implementing these structures, models and notations for characterizing and reasoning about architectures, tools for generating specific instances of an architecture, and case studies of actual system architectures. The course teaches the skills needed to evaluate the architectures of existing systems and to design new systems using well-founded architectural paradigms.

After completing this course, students will be equipped to:
› Understand the influence of architectural drivers on software structures and the decisions that architects make
› Understand the technical, organizational and business role of software architecture
› Recognize some major architectural structures (styles, patterns, tactics, etc.) and their impact on overall system properties
› Understand the principles of good architectural documentation
› Generate architectural alternatives and evaluate the fitness of these alternatives in meeting a set of system requirements and balancing quality trade-offs.




"Only 35% of the projects can be considered successful (on time, on budget, with necessary quality)" 


Standish Report, 2006