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

Aakash Ahmad, Pooyan Jamshidi, Claus Pahl, Fawad Khaliq


Architecture-centric software evolution enables change in a system’s structure and behaviour while maintaining a global view of the software to address evolution-centric trade-offs. The existing solutions for architectural maintenance and evolution fall short of exploiting generic and reusable expertise to address recurring evolution problems. We present a pattern language as a collection of interconnected change patterns that enable reuse-driven and consistent evolution of 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). 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 discovery of new patterns from change logs over time

Full Text:


DOI: http://dx.doi.org/10.14279/tuj.eceasst.59.931

DOI (PDF): http://dx.doi.org/10.14279/tuj.eceasst.59.931.917

Hosted By Universitätsbibliothek TU Berlin.