A Pattern Language for the Evolution of Component-based Software Architectures

Aakash Ahmad, Pooyan Jamshidi, Claus Pahl, Fawad Khaliq

Publikation: Artikel i tidsskrift og konference artikel i tidsskriftTidsskriftartikelForskningpeer review


Modern software systems are prone to a continuous evolution under frequently varying requirements. Architecture-centric software evolution enables change in system’s structure and behavior while maintaining a global view of the software to address evolution-centric tradeoffs. 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, existing solutions for architectural maintenance and evolution fall short of exploiting generic and reusable expertise to address recurring evolution problems. We propose 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 present a pattern language as a collection of interconnected change patterns that enable reuse-driven and consistent evolution in component-based software architectures. Pattern interconnections represent possible relationships among patterns (such as variants or related patterns) in the language. In general, we introduce architecture change mining (pattern language development) as a complementary and integrated phase to facilitate reuse-driven architecture change execution (pattern language 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. We evaluate the language applicability to support pattern-driven reuse in architecture evolution of a payment system case study. We also analyse the precision and recall factor as a measure of selecting the most appropriate pattern(s) from the language collection. The pattern language itself continuously evolves with an incremental acquisition of new patterns from change logs over time.
TidsskriftE A S S T Electronic Communications
Antal sider16
StatusUdgivet - 2013


Dyk ned i forskningsemnerne om 'A Pattern Language for the Evolution of Component-based Software Architectures'. Sammen danner de et unikt fingeraftryk.