Mining Patterns from Change Logs to Support Reuse-Driven Evolution of Software Architectures

Modern software systems are subject to a continuous evolution under frequently varying requirements and changes in systems’ operational environments. Lehman’s law of continuing change demands for long-living and continuously evolving software to prolong its productive life and economic value by acco...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Journal of computer science and technology 2018-11, Vol.33 (6), p.1278-1306
Hauptverfasser: Ahmad, Aakash, Pahl, Claus, Altamimi, Ahmed B., Alreshidi, Abdulrahman
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:Modern software systems are subject to a continuous evolution under frequently varying requirements and changes in systems’ operational environments. Lehman’s law of continuing change demands for long-living and continuously evolving software to prolong its productive life and economic value by accommodating changes in existing software. Reusable knowledge and practices have proven to be successful for continuous development and evolution of the software effectively and efficiently. However, challenges such as empirical acquisition and systematic application of the reusable knowledge and practices must be addressed to enable or enhance software evolution. We investigate architecture change logs — mining histories of architecture-centric software evolution — to discover change patterns that 1) support reusability of architectural changes and 2) enhance the efficiency of the architecture evolution process. We model architecture change logs as a graph and apply graph-based formalism (i.e., graph mining techniques) to discover software architecture change patterns. We have developed a prototype that enables tool-driven automation and user decision support during software evolution. We have used the ISO-IEC-9126 model to qualitatively evaluate the proposed solution. The evaluation results suggest that the proposed solution 1) enables the reusability of frequent architectural changes and 2) enhances the efficiency of architecture-centric software evolution process. The proposed solution promotes research efforts to exploit the history of architectural changes to empirically discover knowledge that can guide architecture-centric software evolution.
ISSN:1000-9000
1860-4749
DOI:10.1007/s11390-018-1887-3