Evolution Styles: Multi-View/Multi-Level Model for Software Architecture Evolution
Journal of Software
With the ever growing complexity and size of software systems, the role and responsibilities of architect have changed extensively. Architecting has become a broad, creative activity that involves discovering stakeholder concerns, evaluating alternatives, making tradeoffs and planning the software process, rather than developing a simple artifact just for capturing information. Therefore, the architect is in greater need of models, methods, techniques and tools to assist in the planning and
... uct of software architecture evolution. To this end, we propose evolution styles as a multi-view methodology for software architecture evolution modeling. The styles are focused on how to develop an evolution model that can capture the best architectural evolution knowledge and practices in a particular domain, and how to demonstrate this knowledge in multiple forms in order to cover the different stakeholders' viewpoints. To show the applicability of our approach, we have developed a prototype for a multi-view and multi-abstraction evolution styles editor. A model is an abstract representation of reality (phenomenon). Often, there are several categories of interest groups in any phenomenon. Each group is concerned about certain aspects of the phenomenon, and look for a model that can cover their concerns. It is almost impossible to capture all aspects of the design, which cover different stakeholders' viewpoints, in a single description. Most design methodologies endeavor to develop an interlocking set of views, each of which intends to cover one or more relevant aspects of the design  . The multi-view modeling methodology has been introduced in several software engineering areas, such as enterprise and software architecture, requirement engineering, software process and system modeling, and development methodologies  . Each discipline specifies its own viewpoints; they share the basic idea of decomposing a complex artifact model into multiple views. Since our approach proposes an architecture-centric methodology for modeling an architecture evolution process, we are more interested in reviewing the multiple viewpoints in architecture model. Perry and Wolf  during the early days of software architecture, proposed one of the most interesting definitions of software architecture as a 3-tuple consisting of Elements, Form, and Rationale.