This frequently leads to deficiencies affecting the system's ability to meet its quality attribute goals such as performance, security, availability, extensibility, and modifiability. The course presents as a foundation a set of concepts, tools, and associated methods that support software design and analysis at the architecture level of abstraction. Architecture analysis is crucial in ensuring that a large and costly development project meets its quality goals. Such an analysis can be used for acquistion, for new projects, or for planned maintenance and reengineering activities. A thorough analysis forms the precondition of an architecture evolution of legacy systems.
Case studies show which methods and tools allow a straightforward architecture analysis.
As socalled product line architectures become more en vogue in practice, the course finally presents a method for systematically transforming flexibility requirements, i.e. the variable aspects of a product line, into domain-specific architectural patterns. An experience report on the benefits and costs of applying architecture-centered design in various projects concludes the course. The UML-F Profile for Framework Architectures. Design Patterns - Elements of Reusable OO Software. Design Patterns for Object-Oriented Software Development.