Static evaluation of software architectures
The software architecture is one of the most crucial artifacts within the lifecycle of a software system. Decisions made at the architectural level directly enable, facilitate, hamper, or interfere with the achievement of business goals as well as meeting functional and quality requirements. The latter includes reusability, and thus software architectures are also essential for the success of product line engineering. This paper summarizes our practical experience by giving an overview on when and how static architecture evaluation practically contributes to architecture development. Therefore, it defines ten distinct purposes of architectural evaluations and illustrates them in a set of industrial and academic case studies. Most of the case studies are settled in a product line engineering context. In particular, we highlight how the different purposes determine and influence subsequent steps in architecture development.