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

Aakash Ahmad, Pooyan Jamshidi, Claus Pahl, Fawad Khaliq

Research output: Journal Article or Conference Article in JournalJournal articleResearchpeer-review

Abstract

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.
Original languageEnglish
JournalE A S S T Electronic Communications
Volume59
Number of pages16
ISSN1863-2122
Publication statusPublished - 2013

Keywords

  • Pattern Definition
  • Pattern Detection
  • Pattern Language
  • Software Architecture Evolution
  • Evolution Reuse

Fingerprint

Dive into the research topics of 'A Pattern Language for the Evolution of Component-based Software Architectures'. Together they form a unique fingerprint.

Cite this