Computer Science ›› 2020, Vol. 47 ›› Issue (11A): 549-556.doi: 10.11896/jsjkx.200200067

• Software Engineering • Previous Articles     Next Articles

Study on Reverse Engineering Generation Method of Software Evolution History

ZHONG Lin-hui1, FU Li-juan1, YE Hai-tao1,2, QI Jie1, XU Jing3   

  1. 1 College of Computer and Information Engineering,Jiangxi Normal University,Nanchang 330022,China
    2 The First Affiliated Hospital of Nanchang University,Nanchang 330000,China
    3 School of Chinese Language and Literature,Jiangxi Normal University,Nanchang 330022,China
  • Online:2020-11-15 Published:2020-11-17
  • About author:ZHONG Lin-hui,born in 1974,Ph.D,professor,is a member of China Computer Federation.His main research interests include software architecture,software evolution and maintenance.
  • Supported by:
    This work was supported by the National Natural Science Foundation of China(61462040,61662032,61662035,61966017,61762049,61262015) and Science and Technology Project of Jiangxi Provincial Education Department (GJJ170207).

Abstract: For the better management of software evolution,more and more software evolution management models have been proposed.However,most of the software are stored in the models in the unit of files or projects,and the models lack of the evolution history information of those software components,which make the evolution process hard to be intuitively and effectively understood and managed.In this paper,software evolution binary tree is defined to express the evolution history of software and its components.And a method to recover the evolution binary tree of software and its components by software architecture reverse technology is proposed as well.First of all,the (atomic) components of software system and software architecture (taken as a special composite component here) are recovered by software source codes and architecture reverse technology,and the multi-dimensional attributes of the corresponding atomic components and that of the composite components are measured,based on which the software evolution histories are constructed by the evolution binary tree construction algorithm.Finally,after analyzing the main factors that affect the construction of evolution binary trees according to two groups of experiment,some evolution binary trees are generated according to similarity thresholds with different attributes and some are generated in the basis of the combinations of different attributes by Bunch and ACDC (architecture reverse tools) respectively.Through the experiments of four open source software (Cassandra,Hbase,Hive,Openjpa,Zookeeper,RxJava,Groovy,Sqoop),the best similarity thresholds affecting the construction of evolution binary trees and the best attribute combinations suitable for the software are realized.And it's also can be seen that the evolution binary trees of composite components recovered are extremely similar to their corresponding real trees in framework.And using the architecture reverse tool ACDC to restore the evolutionary binary tree has higher accuracy.Consequently,the proposed method is effective to recover the evolution histories of these open source software and that of their components.

Key words: Evolution binary tree, Evolution history reverse, Software architecture, Software evolution

CLC Number: 

  • TP311
[1] WESTFECHTEL B,CONRADI R.Software architecture andsoftware configuration management[M].Software Configuration Management.Springer,Berlin,Heidelberg,2003:24-39.
[2] VAN DER HOEK A,HEIMBIGNER D,WOLF A L.Software Architecture,Configuration Management,and Configurable Distributed Systems:A Ménage a Trois.Technical Report CU-CS-862-98[R].University of Colorado,1998.
[3] MOKNI A,HUCHARD M,URTADO C,et al.An evolutionmanagement model for multi-level component-based software architectures[C]//27th International Conference on Software Engineering and Knowledge Engineering.2015:674-679.
[4] GERGIC J.Towards a versioning model for component-basedsoftware assembly[C]//International Conference on Software Maintenance(ICSM 2003).IEEE,2003:138-147.
[5] MITCHELL,BRIAN S,SPIROS M.On the automatic modularization of software systems using the bunchtool[J].IEEE Transactions on Software Engineering,2006,32(3):193-208.
[6] TZERPOS V,HOLT R C.Accd:an algorithm forcomprehension-driven clustering[C]//Proceedings Seventh Working Conference on Reverse Engineering.IEEE,2000:258-267.
[7] MOKNI A,HUCHARD M,URTADO C,et al.An evolutionmanagement model for multi-level component-based software ar-chitectures[C]//27th International Conference on Software Engineering and Knowledge Engineering.2015:674-679.
[8] MOKNI A,URTADO C,VAUTTIER S,et al.A formal approach for managing component-based architecture evolution[J].Science of Computer Programming,2016,127:24-49.
[9] GÎRBA T,DUCASSE S.Modeling history to analyze software evolution[J].Journal of Software:Evolution and Process,2006,18(3):207-236.
[10] GÎRBA T.Modeling history to understand software evolution[D].Bern:University of Bern,2005:13-19.
[11] ZHONG L H,XIE B,SHAO W Z.Supporting Component-based Software Development by Extending the CDL with Software Configuration Information [J].Journal of Computer Research and Development,2002,39(10):1361-1365.
[12] ZHONG L H,HUANG X M,XUE L B,et al.Research on automatic detection technology of multiple software reconstruction based on version [J].Journal of Jiangxi Normal University (Natural Science Edition),2018,42(5):28-33,36.
[13] HATA H,MIZUNO O,KIKUNO T.Historage:fine-grained- version control system for java[C]//Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution.2011:96-100.
[14] HAMMAD M.Design Observer:A Framework to Monitor Design Evolution[M]//Information Technology-New Generations.Springer,Cham,2018:635-640.
[15] HASSAN A,OUSSALAH M.Evolution Styles:Multi-View/Multi-Level Model for Software Architecture Evolution[J].Journal of Software,2018,13(3):146-155.
[16] WANG J S,AI W,PENG X,et al.Recovering TraceabilityLinks among Multi-level Software Evolution Information [J].Computer Science,2012,39(7):135-139.
[17] JIANG Q,PENG X,WANG H,et al.Summarizing evolutionarytrajectory by grouping and aggregating relevant code changes[C]//2015 IEEE 22nd International Conference on Software Analysis,Evolution and Reengineering.IEEE,2015:361-370.
[18] PAN W,LI B,MA Y,et al.Multi-granularity evolution analysis of software using complex network theory[J].Journal of Systems Science and Complexity,2011,24(6):1068-1082.
[19] SERVANT F,JONES J A.Fuzzyfine-grained code-historyanalysis[C]//Proceedings of the 39th International Conferenceon Software Engineering.IEEE Press,2017:746-757.
[20] SERVANT F,JONES J A.History slicing:assistingcode-evolution tasks[C]//Proceedings of the ACMSIGSOFT 20th International Symposium on the Foundations of Software Engineering.ACM,2012:43.
[21] WEN W,CHEN J,YUAN J,et al.Evolution slicing-basedchange impact analysis[C]//2017 IEEE Third International Conference on Big Data Computing Service and Applications (Big Data Service).IEEE,2017:293-298.
[22] GUAN H,YANG H,WEN Z,et al.A dynamic model slicing approach for system comprehension during software evolution[J].Multiagent and Grid Systems,2018,14(1):1-29.
[23] AGHAJANI E,MOCCI A,BAVOTA G,et al.The code timemachine[C]//Proceedings of the 25th International Conference on Program Comprehension.IEEE Press,2017:356-359.
[24] SCHNEIDER T,TYMCHUK Y,SALGADO R,et al.CuboidMatrix:Exploring Dynamic Structural Connections in Software Components using Space-Time Cube[C]//2016 IEEE Working Conference on Software Visualization.IEEE,2016:116-125.
[25] NAM D,LEE Y K,MEDVIDOVIC N.EVA:a tool for visualizing software architectural evolution[C]//Proceedings of the 40th International Conference on Software Engineering:Companion Proceeedings.ACM,2018:53-56.
[26] LANZA M,DUCASSE S.Understanding software evolutionusing a combination of software visualization and software metrics[C]//Proceedings of LMO 2002.2002.
[27] WANG W,LI T,HE Y,et al.A Hybird Approach for Ripple Effect Analysis of Software Evolution Activities [J].Journal of Computer Research and Development,2016,53(3):503-516.
[28] ZHONG L H,XIA J,PENG Y,et al.Research on a Method of Software Architecture Change Measure with Graph Edit Distance and Its Application[J].Journal of Chinese Computer Systems,2018,39(3):425-432.
[1] ZHANG Jiu-jie, CHEN Chao, NIE Hong-xuan, XIA Yu-qin, ZHANG Li-ping, MA Zhan-fei. Empirical Study on Stability of Clone Code Sets Based on Class Granularity [J]. Computer Science, 2021, 48(5): 75-85.
[2] JIANG Hui-min, JIANG Zhe-yuan. Reference Model and Development Methodology for Enterprise Cloud Service Architecture [J]. Computer Science, 2021, 48(2): 13-22.
[3] WANG Ji-wen, WU Yi-jian, PENG Xin. Approach of God Class Detection Based on Evolutionary and Semantic Features [J]. Computer Science, 2021, 48(12): 59-66.
[4] HE Peng, YU Lv-jun. Analysis of Open Source Software Cliff Walls for Group Collaborative Development [J]. Computer Science, 2020, 47(6): 51-58.
[5] ZHANG Jing-xuan, JIANG He. Research Status and Development Trend of Identifier Normalization [J]. Computer Science, 2020, 47(3): 1-4.
[6] PAN Hao, ZHENG Wei, ZHANG Zi-feng, LU Chao-qun. Study on Fractal Features of Software Networks [J]. Computer Science, 2019, 46(2): 166-170.
[7] TANG Qian-wen, CHEN Liang-yu. Analysis of Java Open Source System Evolution Based on Complex Network Theory [J]. Computer Science, 2018, 45(8): 166-173.
[8] LIU Kai, LIANG Xin, ZHANG Jun-ping. Analysis on Technical Support Equipments’ Software Invalidation Based on Soft and Hard Integrated System Methodology [J]. Computer Science, 2018, 45(11A): 494-496.
[9] ZHENG Jiao-jiao, LI Tong, LIN Ying, XIE Zhong-wen, WANG Xiao-fang, CHENG Lei, LIU Miao. Judgement Method of Evolution Consistency of Component System [J]. Computer Science, 2018, 45(10): 189-195.
[10] HE Yun, WANG Wei and LI Tong. Formal Method for Describing Software Evolution Ability Feature [J]. Computer Science, 2017, 44(7): 128-136.
[11] NI You-cong, LI Song, YE Peng and DU Xin. Random Search Rule Based Performance Evolutionary Optimization Method at Software Architecture Level [J]. Computer Science, 2017, 44(11): 156-163.
[12] ZHAO Hui-qun and HUANG Yu-han. Program Verification of Software Model’s Algebraic Properties [J]. Computer Science, 2017, 44(11): 240-245.
[13] ZHONG Lin-hui, LI Jun-jie, XIA Jin and XUE Liang-bo. Research on Evolution Similarity Measurement of Component-based Software Based on Multi-dimensional Evolution Properties [J]. Computer Science, 2016, 43(Z11): 499-505.
[14] QIAN Ye, LI Tong, YU Yong, SUN Ji-hong, YU Qian and PENG Lin. Approach to Modeling Software Evolution Process for Synchronous Interaction [J]. Computer Science, 2016, 43(8): 154-158.
[15] WANG Xun and WANG Yi-chen. Research Progress on Error Propagation Model in Software System [J]. Computer Science, 2016, 43(6): 1-9.
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed   
No Suggested Reading articles found!