计算机科学技术学报 ›› 2018,Vol. 33 ›› Issue (6): 1278-1306.doi: 10.1007/s11390-018-1887-3

所属专题: Data Management and Data Mining

• • 上一篇    下一篇

支持软件体系结构的重用驱动演化的变更日志挖掘模型

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
  • 收稿日期:2017-11-28 修回日期:2018-10-14 出版日期:2018-11-15 发布日期:2018-11-15
  • 作者简介: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.

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.

现代软件系统的需求频繁变更,所处的操作环境也不断变化。Lehman的连续修改法要求软件系统要长期存在并不断演进,以延长它的产品寿命并提高它的经济价值,这需要不断更改现有软件。可重用的知识和实践被证实在软件有效且高效的持续开发和演化方面很有帮助。然而,为了支持或提升软件演化,必须解决一些挑战,如可重用知识和实践的经验获取和系统化的应用。我们调查研究了体系结构变更日志——挖掘体系结构为中心内容的软件演化历史——以此找到变更模型,以1)支持体系结构变更的复用,2)提高体系结构演化过程的效率。我们将体系结构变更日志建模成一个图,并应用基于图的形式化方法(即,图挖掘技术)以发现软件体系结构变更模型。我们已经开发了一个支持工具驱动自动化和软件演进中用户决策支持的原型。我们使用了ISO-IEC-9126模型以定性评价本文提出的方案。评价结果显示所提出的方案1)使得频繁的体系结构的变更可以复用,2)使得以结构体系为中心的软件演化过程更有效。此方案促进了利用结构体系变更历史以经验性地发现可以指导体系结构为中心的软件演化的实证知识的科研工作。

关键词: 软件结构体系, 软件维护与演化, 演化模式, 基于库的挖掘

Abstract: 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.
No related articles found!
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed   
[1] 金志权; 柳诚飞; 孙钟秀; 周晓方; 陈佩佩; 顾建明;. Design and Implementation of a Heterogeneous Distributed Database System[J]. , 1990, 5(4): 363 -373 .
[2] 高虹;. Transformation List for SGML Application[J]. , 1995, 10(5): 455 -462 .
[3] 章文嵩; 金士尧; 吴泉源;. LinuxDirector: A Connection Director for Scalable Internet Services[J]. , 2000, 15(6): 560 -571 .
[4] . AVS与H.264/AVC视频压缩标准性能比较[J]. , 2006, 21(3): 310 -314 .
[5] . 软件工程中的开发项目工期模型[J]. , 2007, 22(3): 348 -357 .
[6] Gong-Qing Wu, Lei Li, Li Li, Xindong Wu. 基于DS理论融合标签路径特征的Web新闻抽取[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:一种分布式计算框架的通用优化层[J]. 计算机科学技术学报, 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. 基于深度学习的文本摘要研究综述[J]. 计算机科学技术学报, 2021, 36(3): 633 -663 .
[9] Rui-Xiang Ma, Fei Wu, Bu-Rong Dong, Meng Zhang, Wei-Jun Li, Chang-Sheng Xie. 面向持久性内存的写优化B+Tree索引结构[J]. 计算机科学技术学报, 2021, 36(5): 1037 -1050 .
版权所有 © 《计算机科学技术学报》编辑部
本系统由北京玛格泰克科技发展有限公司设计开发 技术支持:support@magtech.com.cn
总访问量: