Mikael Lindvall, Fraunhofer USA Center for Experimental Software Engineering Maryland
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, functional and quality requirements. Architecture evaluations play an important role in the development and evolution of software systems since they determine how adequate the architecture is for its intended usage. This paper summarizes our practical experience with using architecture evaluations and gives an overview on when and how static architecture evaluations contribute to architecture development. We identify ten distinct purposes and needs for static architecture evaluations and illustrate them using a set of industrial and academic case studies. In particular, we show how subsequent steps in architecture development are influenced by the results from architecture evaluations.
Index Terms:
ADORE, architecture, architecture evaluation, product line, PuLSE-DSSA, reverse engineering.
Citation:
Jens Knodel, Dirk Muthig, Matthias Naab, Mikael Lindvall, "Static Evaluation of Software Architectures," csmr, pp.279-294, Conference on Software Maintenance and Reengineering (CSMR'06), 2006