Conference Proceedings


Fawad Khaliq
Claus Pahl
Pooyan Jamshidi
Aakash Ahmad


Computer Science

component software software architectures architecture centric software evolution evolution reuse pattern definition pattern language software architecture evolution pattern detection

A pattern language for evolution in component-based software architectures (2013)

Abstract 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.
Collections Ireland -> University of Limerick -> Faculty of Science and Engineering
Ireland -> University of Limerick -> LERO
Ireland -> University of Limerick -> LERO - Project partner authors

Full list of authors on original publication

Fawad Khaliq, Claus Pahl, Pooyan Jamshidi, Aakash Ahmad

Experts in our system

Claus Pahl
Dublin City University
Total Publications: 191
Pooyan Jamshidi
Dublin City University
Total Publications: 26