|
计算机科学技术学报 ›› 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
Aakash Ahmad1, Claus Pahl2, Ahmed B. Altamimi1, Abdulrahman Alreshidi1
现代软件系统的需求频繁变更,所处的操作环境也不断变化。Lehman的连续修改法要求软件系统要长期存在并不断演进,以延长它的产品寿命并提高它的经济价值,这需要不断更改现有软件。可重用的知识和实践被证实在软件有效且高效的持续开发和演化方面很有帮助。然而,为了支持或提升软件演化,必须解决一些挑战,如可重用知识和实践的经验获取和系统化的应用。我们调查研究了体系结构变更日志——挖掘体系结构为中心内容的软件演化历史——以此找到变更模型,以1)支持体系结构变更的复用,2)提高体系结构演化过程的效率。我们将体系结构变更日志建模成一个图,并应用基于图的形式化方法(即,图挖掘技术)以发现软件体系结构变更模型。我们已经开发了一个支持工具驱动自动化和软件演进中用户决策支持的原型。我们使用了ISO-IEC-9126模型以定性评价本文提出的方案。评价结果显示所提出的方案1)使得频繁的体系结构的变更可以复用,2)使得以结构体系为中心的软件演化过程更有效。此方案促进了利用结构体系变更历史以经验性地发现可以指导体系结构为中心的软件演化的实证知识的科研工作。
[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! |
|
版权所有 © 《计算机科学技术学报》编辑部 本系统由北京玛格泰克科技发展有限公司设计开发 技术支持:support@magtech.com.cn 总访问量: |