Modern software systems are prone to a continuous evolution under frequently varying requirements. Architecture-centric software evolution enables change in system structure and behavior while maintaining a global view of software to address evolution-centric tradeoffs. The Lehman’s law of continuing change demands for long-living and continuously evolving architectures to prolong the productive life and economic value of deployed software. However, the existing solutions for architectural maintenance and evolution fall short of exploiting generic and reusable expertise to address recurring evolution problems. We argue that architectural evolution process requires an explicit evolution-centric knowledge – that can be discovered, shared and reused – to anticipate and guide change management. Therefore, we propose a pattern language (PatEvol) as a collection of interconnected change patterns that enable reuse-driven and consistent evolution in component-based software architectures (CBSAs). Pattern interconnections represent possible relationships among patterns (such as variants or related patterns) in the language. In component-based architectures, hierarchal configurations of atomic and composite elements express computational components and their connectors to develop and evolve software. More specifically, component-based architecture models and their evolution define the target domain of proposed pattern language. In general, we integrate architecture change mining (PatEvol development) as a complementary and integrated phase to facilitate reuse-driven architecture change execution (PatEvol application). Reuse-knowledge in the proposed pattern language is expressed as a formalised collection of interconnected-patterns. Individual patterns in the language build on each other to facilitate a generic, first-class abstraction – that can be operationalised and parameterisaed – to address recurring evolution tasks. The pattern language itself continuously evolves with an incremental acquisition of new patterns from architecture change logs.
History
Publication
First Workshop on Patterns Promotion and Anti-patterns Prevention (PPAP) 2013;