Evolution Styles - Formal foundations and tool support for software architecture evolution
نویسنده
چکیده
Architecture evolution is a central feature of virtually all software systems. As new market opportunities, technologies, platforms, and frameworks become available systems must change their organizational structures to accommodate them, requiring large-scale and systematic restructuring. Today architects have few tools to help them plan and execute such evolutionary paths. In particular, they have almost no assistance in reasoning about questions such as: How should we stage the evolution to achieve business goals in the presence of limited development resources? How can we reduce risk in incorporating new technologies and infrastructure required by the target architecture? How can we make principled tradeoffs between time and development effort? What kinds of changes can be made independently, and which require coordinated system-wide modifications? How can an evolution plan be represented and communicated within an organization? In this report we outline first steps towards a formal basis for assisting architects in developing and reasoning about architectural evolution paths. The key insight behind the approach is that at an architectural level of abstraction many system evolutions follow certain common patterns – or evolution styles. By taking advantage of regularity in the space of common architectural evolutions, and by making the notion of evolutions styles a first-class entity that can be formally defined, we can provide automated assistance for expressing architecture evolution, and for reasoning about both the correctness and quality of evolution paths. This research has benefited from a discussion of Architecture Evolution with the members of the ABLE research group (Jeff Barnes, Roni Burd, Orieta Celiku, Owen Cheng, George Fairbanks, Jung Soo Kim, Vahe Poladian, and Bradley Schmerl); members of the SEI SAT initiative who participated in a joint reading group on this topic (Ipek Ozkaya and Mark Klein). I would also like to acknowledge Sungwon Kang and Dalila Tamzalit, who have sparked many useful insights about the topic of Architectural Evolution.
منابع مشابه
Analysis of The Relationship Between Theoretical Aesthetic Ideas And Modern- Postmodern Architectural Styles; (A Comparative Study Of Modern And Postmodern Architecture)ِِِ
Physical attributes have always been a qualitative indicator for evaluating an architectural work. These character influenced by function, technology and changing the process of creation and perception of beauty in modern times; and influenced by content, culture, history, meaning and symbolic linguistic structures in the postmodern era. In accordance with the evolution of aesthetic theories si...
متن کاملEvolution Patterns: Designing and Reusing Architectural Evolution Knowledge to Introduce Architectural Styles
Software architectures are critical in the successful development and evolution of software-intensive systems. While formal and automated support for architectural descriptions has been widely addressed, their evolution is equally crucial, but significantly less well-understood and supported. In order to face a recurring evolution need, we introduce the concept of evolution pattern. It formalis...
متن کاملOn the use of knowledge representation techniques for modeling software architectures
We take the position that it could prove worth to reconcile ideas of the knowledge representation and software architecture research communities. Many existing knowledge representation techniques and formalisms seem to exhibit a lot of potential for representing different aspects of software architectures. To illustrate our case, we show how the theory of conceptual graphs could be a useful can...
متن کاملSUBMITTED FOR PUBLICATION Evolution styles: foundations and models for software architecture evolution
As new market opportunities, technologies, platforms, and frameworks become available, systems require large-scale and systematic architectural restructuring to accommodate them. Today’s architects have few tools and techniques to help them plan this architecture evolution. In particular, they have little assistance in planning alternative evolution paths, trading off various aspects of the dif...
متن کاملA Classification of Formal Specifications for Dynamic Software Architectures
Architectural change is defined as the addition and removal of components and connectors. Dynamic software architectures are those architectures that modify their architecture and enact the modifications during the system’s execution. This behavior is most commonly known as run-time evolution or dynamism. As dynamic software architecture use becomes more widespread, it is important to gain a be...
متن کامل