Model-driven engineering of software architecture viewpoints
A common practice in software architecture design is to apply so-called architectural views to design software architecture for the various stakeholder concerns. Architectural views are usually developed based on architectural viewpoints which define the conventions for constructing, interpreting and analyzing views. So far most architectural viewpoints seem to have been primarily used either to support the communication among stakeholders, or at the best to provide a blueprint for the detailed design. In this thesis, we provide a software language engineering approach to define viewpoints as domain specific languages. This enhances the formal precision of architectural viewpoints and leads to executable views that can be interpreted and analyzed by tools. We illustrate our approach for defining domain specific languages for the viewpoints of the Views and Beyond framework. The approach is implemented as an Eclipse plug-in, SAVE-Bench tool, which can be used to define different views based on the predefined software architecture viewpoints. The tool also supports automatic generation of architecture documentation from view models.