Journal of Computer Science and Technology ›› 2018, Vol. 33 ›› Issue (6): 1278-1306.doi: 10.1007/s11390-018-1887-3

Special Issue: Data Management and Data Mining

• Regular Paper • Previous Articles     Next Articles

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

Aakash Ahmad1, Claus Pahl2, Ahmed B. Altamimi1, Abdulrahman Alreshidi1   

  1. 1. College of Computer Science and Engineering, University of Ha'il, Ha'il 2440, Saudi Arabia;
    2. Faculty of Computer Science, Free University of Bozen-Bolzano, Bozen-Bolzano 39100, Italy
  • Received:2017-11-28 Revised:2018-10-14 Online:2018-11-15 Published:2018-11-15
  • About author:Aakash Ahmad has received his Ph.D. degree in software engineering from Dublin City University, Dublin, Ireland, in 2015. He worked as a postdoctoral researcher at the IT University of Copenhagen and as a software engineer at Elixir Technologies. Dr. Ahmad is serving as an assistant professor at the College of Computer Science and Engineering, University of Ha'il, Ha'il, Saudi Arabia. Aakash's research interests include software architecture and software patterns for mobile and cloud computing systems.

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 architecturecentric 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.

Key words: software architecture; software maintenance and evolution; evolution pattern; repository mining;

[1] Mens T, Demeyer S. Software Evolution. Springer-Verlag Berlin Heidelberg, 2008.
[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.
[3] Lehman M M, Ramil J F. Software evolution:Background, theory, practice. Information Processing Letters, 2003, 88(1/2):33-44.
[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.
[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.
[6] Zimmermann O. Architectural refactoring:A task-centric view on software evolution. IEEE Software, 2015, 32(2):26-29.
[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.
[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.
[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.
[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.
[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.
[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.
[13] Le Goaer O, Tamzalit D, Oussalah M, Seriai A D. Evolution shelf:Reusing evolution expertise within componentbased software architectures. In Proc. the 32nd Annual IEEE International Computer Software and Applications, July 2008, pp.311-318.
[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.
[15] Jamshidi P, Pahl C, Mendonça N C. Pattern-based multicloud architecture migration. Software:Practice and Experience, 2017, 47(9):1159-1184.
[16] Pahl C, Jamshidi P, Zimmermann O. Architectural principles for cloud software. ACM Transactions on Internet Technologies, 2017, 18(2):Article No. 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.
[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.
[19] Agrawal R, Srikant R. Mining sequential patterns. In Proc. the 11th International Conference on Data Engineering, March 1995, pp.3-14.
[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.
[21] Jiang C, Coenen F, Zito M. A survey of frequent subgraph mining algorithms. The Knowledge Engineering Review, 2013, 28(1):75-105.
[22] Harrison N B, Avgeriou P, Zdun U. Using patterns to capture architectural decisions. IEEE Software, 2007, 24(4):38-45.
[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.
[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.
[25] Bouktif S, Gueheneuc Y G, Antoniol G. Extracting changepatterns from CVS repositories. In Proc. the 13th Working Conference on Reverse Engineering, October 2006, pp.221-230.
[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.
[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.
[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.
[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.
[30] Babar M A, Dingsøyr T, Lago P, van Vliet H. Software Architecture Knowledge Management:Theory and Practice. Springer-Verlag Berlin Heidelberg, 2009.
[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.
[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] Yu L. Mining change logs and release notes to understand software maintenance and evolution. CLEI Electron Journal, 2009, 12(2):Article No. 1.
[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.
[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.
[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.
[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.
[38] Ahmad A, Pahl C. Pat-Evol:Pattern-drive reuse in architecture-based evolution for service software. ERCIM News, 2012, 88:34-35.
[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.
[40] Williams B J, Carver J C. Characterizing software architecture changes:A systematic review. Information and Software Technology, 2010, 52(1):31-51.
[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.
[42] Bengtsson P, Lassing N, Bosch J, van Vliet H. Architecturelevel modifiability analysis (ALMA). Journal of Systems and Software, 2004, 69(1/2):129-147.
[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.
[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.
[45] Aggarwal C C, Han J, Frequent Pattern Mining. Springer Cham Heidelberg, 2014.
[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.
[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.
[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.
[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.
[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.
[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.
[52] Lee S. Evaluation of mobile application in user's perspective:Case of P2P lending apps in FinTech industry. KSⅡ Transactions on Internet and Information Systems, 2017, 11(2):1105-1117.
[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.
[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.
[55] Ahmad A, Babar M A. Software architectures for robotic systems:A systematic mapping study. Journal of Systems and Software, 2016, 122:16-39.
[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.
[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.
[1] Sheng-Qu Xi, Yuan Yao, Member, CCF, Xu-Sheng Xiao, Member, ACM, IEEE, Feng Xu, Member, CCF, Jian Lv, Fellow, CCF. Bug Triaging Based on Tossing Sequence Modeling [J]. Journal of Computer Science and Technology, 2019, 34(5): 942-956.
[2] Bo Guo, Young-Woo Kwon, Myoungkyu Song. Decomposing Composite Changes for Code Review and Regression Test Selection in Evolving Software [J]. Journal of Computer Science and Technology, 2019, 34(2): 416-436.
[3] Mohammad Tanhaei, Jafar Habibi, Seyed-Hassan Mirian-Hosseinabadi. A Feature Model Based Framework for Refactoring Software Product Line Architecture [J]. , 2016, 31(5): 951-986.
[4] Jeff Kramer, Fellow, ACM, and Jeff Magee. A Rigorous Architectural Approach to Adaptive Software Engineering [J]. , 2009, 24(2): 183-188.
[5] Patrick H. S. Brito, Rogerio de Lemos, Cecilia M. F. Rubira, and Eliane Martins. Architecting Fault Tolerance with Exception Handling: Verification and Validation [J]. , 2009, 24(2): 212-237.
[6] Feng Xu, Member, CCF, Jing Pan, and Wen Lu. A Trust-Based Approach to Estimating the Confidence of the Software System in Open Environments [J]. , 2009, 24(2): 373-385.
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed   
[1] Jin Zhiquan; Liu Chengfei; Sun Zhongxiu; Zhou Xiaofang; Chen Peipei; Gu Jianming;. Design and Implementation of a Heterogeneous Distributed Database System[J]. , 1990, 5(4): 363 -373 .
[2] Gao Hong;. Transformation List for SGML Application[J]. , 1995, 10(5): 455 -462 .
[3] ZHANG Wensong; JIN Shiyao; WU Quanyuan;. LinuxDirector: A Connection Director for Scalable Internet Services[J]. , 2000, 15(6): 560 -571 .
[4] Xin-Fu Wang and De-Bin Zhao. Performance Comparison of AVS and H.264/AVC Video Coding Standards[J]. , 2006, 21(3): 310 -314 .
[5] Pierre Bourque, Serge Oligny, Alain Abran, and Bertrand Fournier. Developing Project Duration Models in Software Engineering[J]. , 2007, 22(3): 348 -357 .
[6] Gong-Qing Wu, Lei Li, Li Li, Xindong Wu. Web News Extraction via Tag Path Feature Fusion Using DS Theory[J]. , 2016, 31(4): 661 -672 .
[7] Yun-Cong Zhang, Xiao-Yang Wang, Cong Wang, Yao Xu, Jian-Wei Zhang, Xiao-Dong Lin, Guang-Yu Sun, Gong-Lin Zheng, Shan-Hui Yin, Xian-Jin Ye, Li Li, Zhan Song, Dong-Dong Miao. Bigflow: A General Optimization Layer for Distributed Computing Frameworks[J]. Journal of Computer Science and Technology, 2020, 35(2): 453 -467 .
[8] Sheng-Luan Hou, Xi-Kun Huang, Chao-Qun Fei, Shu-Han Zhang, Yang-Yang Li, Qi-Lin Sun, Chuan-Qing Wang. A Survey of Text Summarization Approaches Based on Deep Learning[J]. Journal of Computer Science and Technology, 2021, 36(3): 633 -663 .
[9] Rui-Xiang Ma, Fei Wu, Bu-Rong Dong, Meng Zhang, Wei-Jun Li, Chang-Sheng Xie. Write-Optimized B+ Tree Index Technology for Persistent Memory[J]. Journal of Computer Science and Technology, 2021, 36(5): 1037 -1050 .

ISSN 1000-9000(Print)

         1860-4749(Online)
CN 11-2296/TP

Home
Editorial Board
Author Guidelines
Subscription
Journal of Computer Science and Technology
Institute of Computing Technology, Chinese Academy of Sciences
P.O. Box 2704, Beijing 100190 P.R. China
Tel.:86-10-62610746
E-mail: jcst@ict.ac.cn
 
  Copyright ©2015 JCST, All Rights Reserved