Journal of Computer Science and Technology

, Volume 33, Issue 6, pp 1278–1306 | Cite as

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

  • Aakash AhmadEmail author
  • Claus Pahl
  • Ahmed B. Altamimi
  • Abdulrahman Alreshidi
Regular Paper


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.


software architecture software maintenance and evolution evolution pattern repository mining 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Supplementary material

11390_2018_1887_MOESM1_ESM.pdf (72 kb)
ESM 1 (PDF 72 kb)


  1. [1]
    Mens T, Demeyer S. Software Evolution. Springer-Verlag Berlin Heidelberg, 2008.CrossRefGoogle Scholar
  2. [2]
    Bennett K H, Rajlich V T. Software maintenance and evolution: A roadmap. In Proc. Conference on the Future of Software Engineering, June 2000, pp.73-87.Google Scholar
  3. [3]
    Lehman M M, Ramil J F. Software evolution: Background, theory, practice. Information Processing Letters, 2003, 88(1/2): 33-44.CrossRefGoogle Scholar
  4. [4]
    Lehnert S, Farooq Q, Riebisch M. A taxonomy of change types and its application in software evolution. In Proc. the 19th International Conference and Workshops on Engineering of Computer Based Systems, April 2012, pp.98-107.Google Scholar
  5. [5]
    Breivold H P, Crnkovic I, Larsson M. A systematic review of software architecture evolution research. Information and Software Technology, 2012, 54(1): 16-40.CrossRefGoogle Scholar
  6. [6]
    Zimmermann O. Architectural refactoring: A task-centric view on software evolution. IEEE Software, 2015, 32(2): 26-29.CrossRefGoogle Scholar
  7. [7]
    Medvidovic N, Taylor R N. A classification and comparison framework for software architecture description languages. IEEE Transactions on Software Engineering, 2000, 26(1): 70-93.CrossRefGoogle Scholar
  8. [8]
    Tofan D, Galster M, Avgeriou P, Schuitema W. Past and future of software architectural decisions — A systematic mapping study. Information and Software Technology, 2014, 56(8): 850-872.CrossRefGoogle Scholar
  9. [9]
    Garlan D, Barnes J M, Schmerl B, Celiku O. Evolution styles: Foundations and tool support for software architecture evolution. In Proc. Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture, September 2009, pp.131-140.Google Scholar
  10. [10]
    Jamshidi P, Ghafari M, Aakash A, Pahl C. A framework for classifying and comparing architecture-centric software evolution research. In Proc. the 17th European Conference on Software Maintenance and Reengineering, March 2013, pp.305-314.Google Scholar
  11. [11]
    Ahmad A, Jamshidi P, Pahl C. Classification and comparison of architecture evolution-reuse knowledge — A systematic review. Journal of Software: Evolution and Process, 2014, 26(7): 654-691.Google Scholar
  12. [12]
    Cámara J, Correia P, de Lemos R, Garlan D, Gomes P, Schmerl B, Ventura R. Evolving an adaptive industrial software system to use architecture-based self-adaptation. In Proc. the 8th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, May 2013, pp.13-22.Google Scholar
  13. [13]
    Le Goaer O, Tamzalit D, Oussalah M, Seriai A D. Evolution shelf: Reusing evolution expertise within component-based software architectures. In Proc. the 32nd Annual IEEE International Computer Software and Applications, July 2008, pp.311-318.Google Scholar
  14. [14]
    Jermakovics A, Scotto M, Succi G. Visual identification of software evolution patterns. In Proc. the 9th International Workshop on Principles of Software Evolution in Conjunction with the 6th ESEC/FSE Joint Meeting, September 2007, pp.27-30.Google Scholar
  15. [15]
    Jamshidi P, Pahl C, Mendonça N C. Pattern-based multi-cloud architecture migration. Software: Practice and Experience, 2017, 47(9): 1159-1184.Google Scholar
  16. [16]
    Pahl C, Jamshidi P, Zimmermann O. Architectural principles for cloud software. ACM Transactions on Internet Technologies, 2017, 18(2): Article No. 17.CrossRefGoogle Scholar
  17. [17]
    Kagdi H, Collard M L, Maletic J I. A survey and taxonomy of approaches for mining software repositories in the context of software evolution. Journal of Software Maintenance and Evolution: Research and Practice, 2007, 19(2): 77-131.CrossRefGoogle Scholar
  18. [18]
    Zimmermann T, Zeller A, Weissgerber P, Diehl S. Mining version histories to guide software changes. IEEE Transactions on Software Engineering, 2005, 31(6): 429-445.CrossRefGoogle Scholar
  19. [19]
    Agrawal R, Srikant R. Mining sequential patterns. In Proc. the 11th International Conference on Data Engineering, March 1995, pp.3-14.Google Scholar
  20. [20]
    Barnes J M, Garlan D. Challenges in developing a software architecture evolution tool as a plug-in. In Proc. the 3rd Workshop on Developing Tools as Plugin-Ins, May 2013, pp.13-18.Google Scholar
  21. [21]
    Jiang C, Coenen F, Zito M. A survey of frequent subgraph mining algorithms. The Knowledge Engineering Review, 2013, 28(1): 75-105.CrossRefGoogle Scholar
  22. [22]
    Harrison N B, Avgeriou P, Zdun U. Using patterns to capture architectural decisions. IEEE Software, 2007, 24(4): 38-45.CrossRefGoogle Scholar
  23. [23]
    Ahmad A, Jamshidi P, Pahl C. Graph-based pattern identification from architecture change logs. In Proc. the 2012 International Workshops on Advanced Information Systems Engineering, June 2012, pp.200-213.CrossRefGoogle Scholar
  24. [24]
    Dong X, Godfrey M W. Identifying architectural change patterns in object-oriented systems. In Proc. the 16th IEEE International Conference on Program Comprehension, June 2008, pp.33-42.Google Scholar
  25. [25]
    Bouktif S, Gueheneuc Y G, Antoniol G. Extracting change-patterns from CVS repositories. In Proc. the 13th Working Conference on Reverse Engineering, October 2006, pp.221-230.Google Scholar
  26. [26]
    Zdun U. Systematic pattern selection using pattern language grammars and design space analysis. Journal of Software: Practice and Experience, 2007, 37(9): 983-1016.Google Scholar
  27. [27]
    Tong H H, Faloutsos C, Gallagher B, Eliassi-Rad T. Fast best-effort pattern matching in large attributed graphs. In Proc. the 13th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, August 2007, pp.737-746.Google Scholar
  28. [28]
    Javed M, Abgaz Y M, Pahl C. Graph-based discovery of ontology change patterns. In Proc. the 10th International Semantic Web Conference Workshop on Knowledge Evolution and Ontology Dynamics, October 2011, pp.309-318.Google Scholar
  29. [29]
    Gamma E, Helm R, Johnson R, Vlissides J. Design patterns: Abstraction and reuse of object-oriented design. In Proc. the 7th European Conference on Object-Oriented Programming, July 1993, pp.406-431.Google Scholar
  30. [30]
    Babar M A, Dingsøyr T, Lago P, van Vliet H. Software Architecture Knowledge Management: Theory and Practice. Springer-Verlag Berlin Heidelberg, 2009.CrossRefGoogle Scholar
  31. [31]
    Mehta N R, Medvidovic N. Composing architectural styles from architectural primitives. In Proc. the 11th ACM SIGSOFT International Symposium on Foundations of Software Engineering, September 2003, pp.347-350.Google Scholar
  32. [32]
    Ahmad A, Jamshidi P, Pahl C. Graph-based discovery of architecture change patterns from logs. Technical Report, School of Computing, Dublin City University, 2013. http://www.computing.dcu.iepjamshidi/PatternDiscovery.pdf, Aug. 2018.
  33. [33]
    Yu L. Mining change logs and release notes to understand software maintenance and evolution. CLEI Electron Journal, 2009, 12(2): Article No. 1.Google Scholar
  34. [34]
    Mohagheghi P, Conradi R. An empirical study of software change: Origin, acceptance rate, and functionality vs. quality attributes. In Proc. the 2004 International Symposium on Empirical Software Engineering, August 2004, pp.7-16.Google Scholar
  35. [35]
    Clerc V, Lago P, van Vliet H. The architect’s mindset. In Proc. the 3rd International Conference on Quality of Software Architectures, July 2007, pp.231-249.Google Scholar
  36. [36]
    Ahmad A, Jamshidi P, Arshad M, Pahl C. Graph-based implicit knowledge discovery from architecture change logs. In Proc. the WICSA/ECSA 2012 Companion Volume, August 2012, pp.116-123.Google Scholar
  37. [37]
    Côté I, Heisel M, Wentzlaff I. Pattern-based evolution of software architectures. In Proc. the 1st European Conf. Software Architecture, September 2007, pp.29-43.Google Scholar
  38. [38]
    Ahmad A, Pahl C. Pat-Evol: Pattern-drive reuse in architecture-based evolution for service software. ERCIM News, 2012, 88: 34-35.Google Scholar
  39. [39]
    Lassing N, Rijsenbrij D, van Vliet H. How well can we predict changes at architecture design time? Journal of Systems and Software, 2003, 65(2): 141-153.CrossRefGoogle Scholar
  40. [40]
    Williams B J, Carver J C. Characterizing software architecture changes: A systematic review. Information and Software Technology, 2010, 52(1): 31-51.CrossRefGoogle Scholar
  41. [41]
    Curran W, Thornton T, Arvey B, Smart W D. Evaluating impact in the ROS ecosystem. In Proc. IEEE International Conference on Robotics and Automation, May 2015, pp. 6213-6219.Google Scholar
  42. [42]
    Bengtsson P, Lassing N, Bosch J, van Vliet H. Architecture-level modifiability analysis (ALMA). Journal of Systems and Software, 2004, 69(1/2): 129-147.CrossRefGoogle Scholar
  43. [43]
    Ehrig H, Prange U, Taentzer G. Fundamental theory for typed attributed graph transformation. In Proc. the 2nd International Conference on Graph Transformations, September 2004, pp.161-177.Google Scholar
  44. [44]
    Akoglu L, Tong H, Koutra D. Graph based anomaly detection and description: A survey. Data Mining and Knowledge Discovery, 2015, 29(3): 626-688.MathSciNetCrossRefGoogle Scholar
  45. [45]
    Aggarwal C C, Han J, Frequent Pattern Mining. Springer Cham Heidelberg, 2014.Google Scholar
  46. [46]
    Brandes U, Eiglsperger M, Herman I, Himsolt M, Marshall M S. GraphML progress report structural layer proposal. In Proc. the 9th International Symposium on Graph Drawing, September 2002, pp.501-512.Google Scholar
  47. [47]
    Brandes U, Gaertler M, Wagner D. Experiments on graph clustering algorithms. In Proc. the 11th Annual European Symposium on Algorithms, September 2003, pp.568-579.Google Scholar
  48. [48]
    Clements P, Garlan D, Little R, Nord R, Stafford J. Documenting software architectures: Views and beyond. In Proc. the 25th International Conference on Software Engineering, May 2003, pp.740-741.Google Scholar
  49. [49]
    Kampffmeyer H, Zschaler S. Finding the pattern you need: The design pattern intent ontology. In Proc. the 10th International Conference on Model Driven Engineering Languages and Systems, September 2007, pp.211-225.Google Scholar
  50. [50]
    Ahmad A, Jamshidi P, Pahl C, Khaliq F. A pattern language for the evolution of component-based software architectures. Electronic Communications of the EASST, 2013, 59: Article No. 1.Google Scholar
  51. [51]
    Rosa N S, Cunha P R F, Justo G R R. An approach for reasoning and refining nonfunctional requirements. Journal of the Brazilian Computer Society, 2004, 10(1): 62-84.CrossRefGoogle Scholar
  52. [52]
    Lee S. Evaluation of mobile application in user’s perspective: Case of P2P lending apps in FinTech industry. KSII Transactions on Internet and Information Systems, 2017, 11(2): 1105-1117.Google Scholar
  53. [53]
    Liu Y, Sakamoto S, Matsuo K, Ikeda M, Barolli L, Xhafa F X. Improvement of JXTA-overlay P2P platform: Evaluation for medical application and reliability. International Journal of Distributed Systems and Technologies, 2015, 6(2): 45-62.CrossRefGoogle Scholar
  54. [54]
    Ahmad A, Jamshidi P, Pahl C. A framework for acquisition and application of software architecture evolution knowledge. ACM SIGSOFT Software Engineering Notes, 2013, 38(5): 1-7.CrossRefGoogle Scholar
  55. [55]
    Ahmad A, Babar M A. Software architectures for robotic systems: A systematic mapping study. Journal of Systems and Software, 2016, 122: 16-39.CrossRefGoogle Scholar
  56. [56]
    Nagappan M, Zimmermann T, Bird C. Diversity in software engineering research. In Proc. the 9th Joint Meeting on Foundations of Software Engineering, August 2013, pp.466-476.Google Scholar
  57. [57]
    Tragatschnig S, Tran H, Zdun U. Change patterns for supporting the evolution of event-based systems. In Proc. Confederated International Conference on the Move to Meaningful Internet Systems, September 2013, pp.283-290.Google Scholar

Copyright information

© Springer Science+Business Media, LLC, part of Springer Nature 2018

Authors and Affiliations

  • Aakash Ahmad
    • 1
    Email author
  • Claus Pahl
    • 2
  • Ahmed B. Altamimi
    • 1
  • Abdulrahman Alreshidi
    • 1
  1. 1.College of Computer Science and EngineeringUniversity of Ha’ilHa’ilSaudi Arabia
  2. 2.Faculty of Computer ScienceFree University of Bozen-BolzanoBozen-BolzanoItaly

Personalised recommendations