Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Program comprehension through reverse‐engineered sequence diagrams: : A systematic review

Published: 14 November 2018 Publication History

Abstract

Reverse engineering of sequence diagrams refers to the process of extracting meaningful information about the behavior of software systems in the form of appropriately generated sequence diagrams. This process has become a practical method for retrieving the behavior of software systems, primarily those with inadequate documentation. Various approaches have been proposed in the literature to produce from a given system a series of interactions that can be used for different purposes. The reason for such diversity of approaches is the need to offer sequence diagrams that can cater for the users' specific goals and needs, which can vary widely depending on the users' perception and understandability of visual representations and the target application domains. In this paper, we systematically review existing techniques in this context while focusing on their distinct purposes and potentials of providing more understandable sequence diagrams. In addition, a qualitative evaluation of such techniques is conducted to expose their adequacy and applicability for effective program comprehension. Finally, we list a set of possible extensions to the unified modeling language sequence diagram standard that we anticipate will enhance its versatility and understandability of program control flow, followed by a number of concluding remarks.

References

[1]
Müller HA, Jahnke JH, Smith DB, Storey MA, Tilley SR, Wong K. Reverse engineering: a roadmap. In: Proceedings of the Conference on the Future of Software Engineering. ACM; 2000; Limerick, Ireland:47‐60.
[2]
Mattila AL, Ihantola P, Kilamo T, Luoto A, Nurminen M, Väätäjä H. Software visualization today: systematic literature review. In: Proceedings of the 20th International Academic Mindtrek Conference. ACM; 2016; Tampere, Finland:262‐271.
[3]
Diehl S. Software Visualization: Visualizing the Structure, Behaviour, and Evolution of Software: Heidelberg: Springer‐Verlag Berlin; 2007.
[4]
Basit HA, Hammad M, Koschke R. A survey on goal‐oriented visualization of clone data. In: Software visualization (VISSOFT), 2015 IEEE 3rd Working Conference on. IEEE; 2015; Bremen, Germany:46‐55.
[5]
Seriai A, Benomar O, Cerat B, Sahraoui H. Validation of software visualization tools: a systematic mapping study. In: Software Visualization (VISSOFT), 2014 Second IEEE Working Conference on. IEEE; 2014; Victoria, BC, Canada:60‐69.
[6]
Isaacs KE, Giménez A, Jusufi I, et al. State of the art of performance visualization: EuroVis 2014; 2014.
[7]
Schots M, Vasconcelos R, Werner C. A quasi‐systematic review on software visualization approaches for software reuse. Technical report; 2014.
[8]
Paredes J, Anslow C, Maurer F. Information visualization for agile software development. In: Software Visualization (VISSOFT), 2014 Second IEEE Working Conference on. IEEE; 2014; Victoria, BC, Canada:157‐166.
[9]
Novais RL, Torres A, Mendes TS, Mendonça M, Zazworka N. Software evolution visualization: a systematic mapping study. Inf Softw Technol. 2013;55(11):1860‐1883.
[10]
Caserta P, Zendra O. Visualization of the static aspects of software: a survey. IEEE Trans Vis Comput Graph. 2011;17(7):913‐933.
[11]
Canfora G, Di Penta M, Cerulo L. Achievements and challenges in software reverse engineering. Commun ACM. 2011;54(4):142‐151.
[12]
Carpendale S, Ghanam Y. A survey paper on software architecture visualization. Technical Report, Calgary, Canada,  University of Calgary; 2008.
[13]
Kienle HM, Muller HA. Requirements of software visualization tools: a literature survey. In: Visualizing Software for Understanding and Analysis, 2007. VISSOFT 2007. 4th IEEE International Workshop on. IEEE; 2007; Banff, Ont., Canada:2‐9.
[14]
Storey MAD, Čubranić D, German DM. On the use of visualization to support awareness of human activities in software development: a survey and a framework. In: Proceedings of the 2005 ACM Symposium on Software Visualization ACM; 2005; St. Louis, Missouri:193‐202.
[15]
Hamou‐Lhadj A, Lethbridge TC. A survey of trace exploration tools and techniques. In: Proceedings of the 2004 Conference of the Centre for Advanced Studies on Collaborative Research. IBM Press; 2004; Markham, Ontario, Canada:42‐55.
[16]
Koschke R. Software visualization in software maintenance, reverse engineering, and re‐engineering: a research survey. J Softw Maint Evol Res Pract. 2003;15(2):87‐109.
[17]
Teyseyre AR, Campo MR. An overview of 3D software visualization. IEEE Trans Vis Comput Graph. 2009;15(1):87‐105.
[18]
Bassil S, Keller RK. Software visualization tools: survey and analysis. In: Program Comprehension, 2001. IWPC 2001. Proceedings. 9th International Workshop on. IEEE; 2001; Toronto, Ontario, Canada:7‐17.
[19]
Cross JH, Hendrix TD, Barowski LA, Mathias KS. Scalable visualizations to support reverse engineering: a framework for evaluation. In: Reverse Engineering, 1998. Proceedings. Fifth Working Conference on. IEEE; 1998; Honolulu, HI, USA:201‐209.
[20]
Cornelissen B, Zaidman A, van Deursen A. A controlled experiment for program comprehension through trace visualization. IEEE Trans Software Eng. 2011;37(3):341‐355.
[21]
Cornelissen B, Zaidman A, Van Deursen A, Moonen L, Koschke R. A systematic survey of program comprehension through dynamic analysis. IEEE Trans Softw Eng. 2009;35(5):684‐702.
[22]
Bennett C, Myers D, Storey MA, et al. A survey and evaluation of tool features for understanding reverse‐engineered sequence diagrams. J Softw Maint Evol Res Pract. 2008;20(4):291‐315.
[23]
Merdes M, Dorsch D. Experiences with the development of a reverse engineering tool for UML sequence diagrams: a case study in modern Java development. In: Proceedings of the 4th International Symposium on Principles and Practice of Programming in Java ACM; 2006; Mannheim, Germany:125‐134.
[24]
Briand LC, Labiche Y, Leduc J. Toward the reverse engineering of UML sequence diagrams for distributed Java software. IEEE Trans Softw Eng. 2006;32(9):642‐663.
[25]
Pacione MJ, Roper M, Wood M. A comparative evaluation of dynamic visualisation tools. In: 20th Working Conference on Reverse Engineering (WCRE), 2013. Koblenz, Germany: IEEE Computer Society; 2003:80‐89.
[26]
Pacione MJ, Roper M, Wood M. A novel software visualisation model to support software comprehension. In: Proceedings of the 11th Working Conference on Reverse Engineering, 2004. IEEE; 2004; Delft, Netherlands:70‐79.
[27]
Chikofsky EJ, Cross JH. Reverse engineering and design recovery: a taxonomy. IEEE Softw. 1990;7(1):13‐17.
[28]
Briand LC. The experimental paradigm in reverse engineering: role, challenges, and limitations. In: WCRE'06. 13th Working Conference on Reverse Engineering, 2006. IEEE; 2006; Benevento, Italy:3‐8.
[29]
Korshunova E, Petkovic M, van den Brand M, Mousavi MR. CPP2XMI: reverse engineering of UML class, sequence, and activity diagrams from C++ source code. In: 13th Working Conference on Reverse Engineering 2006 (WCRE'06). IEEE; 2006; Benevento, Italy:297‐298.
[30]
Rountev A, Connell BH. Object naming analysis for reverse‐engineered sequence diagrams. In: Proceedings of the 27th International Conference on Software Engineering. ACM; 2005; St. Louis, MO, USA:254‐263.
[31]
Rountev A, Volgin O, Reddoch M. Static control‐flow analysis for reverse engineering of UML sequence diagrams. ACM SIGSOFT Softw Eng Notes. 2005;31(1):96‐102.
[32]
Lanza M, Ducasse S. Polymetric views—a lightweight visual approach to reverse engineering. IEEE Trans Softw Eng. 2003;29(9):782‐795.
[33]
Rohr M, van Hoorn A, Matevska J, et al. Kieker: continuous monitoring and on demand visualization of Java software behavior. In: Proceedings of the IASTED International Conference on Software Engineering. ACTA Press; 2008; Innsbruck, Austria.
[34]
Rugaber S. Program comprehension. Encyclopedia Comput Sci Technol. 1995;35(20):341‐368.
[35]
Von Mayrhauser A, Vans AM. Program comprehension during software maintenance and evolution. Computer. 1995;28(8):44‐55.
[36]
Storey MA. Theories, methods and tools in program comprehension: past, present and future. In: Proceedings of the 13th International Workshop on Program Comprehension, 2005. IWPC 2005. IEEE; 2005; St. Louis, MO, USA:181‐191.
[37]
Brooks R. Using a behavioral theory of program comprehension in software engineering. In: Proceedings of the 3rd International Conference on Software Engineering. IEEE Press; 1978; Atlanta, Georgia, USA:196‐201.
[38]
Soloway E, Ehrlich K. Empirical studies of programming knowledge. IEEE Trans Softw Eng. 1984;SE‐10(5):595‐609.
[39]
Kulkarni A. Comprehending source code of large software system for reuse. In: 2016 IEEE 24th International Conference on Program Comprehension (ICPC). IEEE; 2016; Austin, TX, USA:1‐4.
[40]
Eisenbarth T, Koschke R, Simon D. Aiding program comprehension by static and dynamic feature analysis. In: Proceedings of the IEEE International Conference on Software Maintenance, 2001. IEEE; 2001; Florence, Italy:602‐611.
[41]
Fittkau F, Finke S, Hasselbring W, Waller J. Comparing trace visualizations for program comprehension through controlled experiments. In: Proceedings of the 2015 IEEE 23rd International Conference on Program Comprehension. IEEE Press; 2015; Florence, Italy:266‐276.
[42]
Wettel R, Lanza M, Robbes R. Software systems as cities: a controlled experiment. In: Proceedings of the 33rd International Conference on Software Engineering. ACM; 2011; Honolulu, HI, USA:551‐560.
[43]
Penta MD, Stirewalt REK, Kraemer E. Designing your next empirical study on program comprehension. In: 15th IEEE International Conference on Program Comprehension (ICPC). IEEE; 2007:281‐285.
[44]
Hamou‐Lhadj A, Lethbridge T. Summarizing the content of large traces to facilitate the understanding of the behaviour of a software system. In: 14th IEEE International Conference on Program Comprehension (ICPC). IEEE; 2006; Athens, Greece:181‐190.
[45]
Noda K, Kobayashi T, Agusa K. Execution trace abstraction based on meta patterns usage. In: 19th Working Conference on Reverse Engineering (WCRE), 2012. IEEE; 2012; Kingston, ON, Canada:167‐176.
[46]
Fernández‐Sáez AM, Chaudron MRV, Genero M, Ramos I. Are forward designed or reverse‐engineered UML diagrams more helpful for code maintenance?: a controlled experiment. In: Proceedings of the 17th International Conference on Evaluation and Assessment in Software Engineering. Galinhas, Brazil: ACM; 2013:60‐71.
[47]
Booch G, Rumbaugh J, Jacobson I. The Unified Modeling Language User Guide. India: Pearson Education; 1999.
[48]
Cornelissen B, Holten D, Zaidman A, Moonen L, Van Wijk JJ, Van Deursen A. Understanding execution traces using massive sequence and circular bundle views. In: 15th IEEE International Conference on Program Comprehension (ICPC). IEEE; 2007; Banff, Alberta, BC, Canada:49‐58.
[49]
Fittkau F, Krause A, Hasselbring W. Software landscape and application visualization for system comprehension with ExplorViz. Inf Softw Technol. 2016;87:259‐277.
[50]
van den Berghe A, Scandariato R, Yskout K, Joosen W. Design notations for secure software: a systematic literature review. Softw Syst Model. 2015;16(3):809‐831.
[51]
Artho C, Havelund K, Honiden S. Visualization of concurrent program executions. In: Computer Software and Applications Conference, 2007. COMPSAC 2007. 31st Annual International, Vol. 2 IEEE; 2007; Beijing, China:541‐546.
[52]
Systa T. On the relationships between static and dynamic models in reverse engineering Java software. In: Proceedings. Sixth Working Conference on Reverse Engineering, 1999. IEEE; 1999; Atlanta, GA, USA:304‐313.
[53]
Systä T, Koskimies K, Müller H. Shimba—an environment for reverse engineering Java software systems. Software: Practice and Experience. 2001;31(4):371‐394.
[54]
Nielson Flemming, Nielson HanneR, Hankin Chris. Principles of Program Analysis. New York: Springer; 2015.
[55]
Gosain A, Sharma G. Static analysis: a survey of techniques and tools. In: Intelligent Computing and Applications. New Delhi: Springer; 2015:581‐591.
[56]
Grass JE. Object‐oriented design archaeology with CIA++. Comput Syst. 1992;5(1):5‐67.
[57]
Ball T. The concept of dynamic analysis. In: Software Engineering ‐ ESEC/FSE'99. Springer; 1999; Toulouse, France:216‐234.
[58]
Labiche Y, Kolbah B, Mehrfard H. Combining static and dynamic analyses to reverse‐engineer scenario diagrams. In: 29th IEEE International Conference on Software Maintenance (ICSM), 2013. IEEE; 2013; Eindhoven, Netherlands:130‐139.
[59]
Lamprier S, Baskiotis N, Ziadi T, Hillah LM. CARE: a platform for reliable comparison and analysis of reverse‐engineering techniques. In: 18th International Conference on Engineering of Complex Computer Systems (ICECCS), 2013. IEEE; 2013; Singapore:252‐255.
[60]
Molléri JS, Petersen K, Mendes E. Survey guidelines in software engineering: an annotated review. In: Proceedings of the 10th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement. ACM; 2016; Ciudad Real, Spain:58.
[61]
Kitchenham Barbara. Procedures for performing systematic reviews. Keele, UK, Keele University. 2004;33(2004):1‐26.
[62]
Greenalgh T. How to read a paper: papers that summarise other papers: systematic reviews and meta‐analysis. Br Med J. 1997;315:672‐5.
[63]
Wohlin C. Guidelines for snowballing in systematic literature studies and a replication in software engineering. In: Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering. ACM; 2014; London, England, United Kingdom:38.
[64]
Webster J, Watson RT. Analyzing the past to prepare for the future: writing a literature review. MIS Q. 2002;26:xiii‐xxiii.
[65]
Gomaa H. Designing concurrent, distributed, and real‐time applications with UML. In: Proceedings of the 23rd International Conference on Software Engineering (ICSE). IEEE Computer Society; 2001; Boston, MA:737‐738.
[66]
Xie S, Kraemer E, Stirewalt REK. Empirical evaluation of a UML sequence diagram with adornments to support understanding of thread interactions. In: Program Comprehension, 2007. ICPC'07. 15th IEEE International Conference on IEEE; 2007; Banff, Alberta, BC, Canada:123‐134.
[67]
Xie S, Kraemer E, Stirewalt REK, Dillon LK, Fleming SD. Assessing the benefits of synchronization‐adorned sequence diagrams: two controlled experiments. In: Proceedings of the 4th ACM Symposium on Software Visualization. ACM; 2008; Ammersee, Germany:9‐18.
[68]
Jürjens Jan. Towards development of secure systems using UMLsec. In: Fundamental Approaches to Software Engineering. Springer; 2001; London, UK:187‐200.
[69]
Burd E, Overy D, Wheetman A. Evaluating using animation to improve understanding of sequence diagrams. In: Program Comprehension, 2002. Proceedings. 10th International workshop on. IEEE; 2002; Paris, France:107‐113.
[70]
Garousi V, Briand LC, Labiche Y. Control flow analysis of UML 2.0 sequence diagrams. In: Model Driven Architecture—Foundations and Applications Springer; 2005; Nuremberg, Germany:160‐174.
[71]
Wong K, Sun D. On evaluating the layout of UML diagrams for program comprehension. Softw Qual J. 2006;14(3):233‐259.
[72]
Fleming S, Kraemer E, Stirewalt RK, Xie S, Dillon L. A study of student strategies for the corrective maintenance of concurrent software. In: Software Engineering, 2008. ICSE'08. ACM/IEEE 30th International Conference on. IEEE; 2008; Leipzig, Germany:759‐768.
[73]
Kraemer FA. Engineering android applications based on UML activities. In: International Conference on Model Driven Engineering Languages and Systems. Springer; 2011; Wellington, New Zealand:183‐197.
[74]
Huang J, Zhang X, Tan L, Wang P, Liang B. Asdroid: detecting stealthy behaviors in android applications by user interface and program behavior contradiction. In: Proceedings of the 36th International Conference on Software Engineering. ACM; 2014; Hyderabad, India:1036‐1046.
[75]
Kowalczyk E. Modeling app behavior from multiple artifacts. In: 2016 IEEE International Conference on Software Testing, Verification and Validation (ICST). IEEE; 2016; Chicago, IL, USA:385‐386.
[76]
Alvin C, Peterson B, Mukhopadhyay S. StaticGen: static generation of UML sequence diagrams. In: International Conference on Fundamental Approaches to Software Engineering. Springer; 2017; New York, NY, USA:173‐190.
[77]
Alalfi MH, Cordy JR, Dean TR. Automated reverse engineering of UML sequence diagrams for dynamic web applications. In: International Conference on Software Testing, Verification and Validation Workshops (ICSTW'09). IEEE; 2009; Denver, CO, USA:287‐294.
[78]
Alimadadi S, Sequeira S, Mesbah A, Pattabiraman K. Understanding JavaScript event‐based interactions. In: Proceedings of the 36th International Conference on Software Engineering. ACM; 2014; New York, USA:367‐377.
[79]
Amalfitano D, Fasolino AR, Polcaro A, Tramontana P. The DynaRIA tool for the comprehension of Ajax web applications by dynamic analysis. Innov Syst Softw Eng. 2014;10(1):41‐57.
[80]
Myers D, Storey MA, Salois M. Utilizing debug information to compact loops in large program traces. In: 14th European Conference on Software Maintenance and Reengineering (CSMR) 2010. IEEE; 2010; Madrid, Spain:41‐50.
[81]
Guéhéneuc YG, Ziadi T. Automated reverse‐engineering of UML v2.0 dynamic models. In: Proceedings of the 6th ECOOP Workshop on Object‐oriented Reengineering. Glasgow, UK: Citeseer; 2005.
[82]
Grose TJ, Doney GC, Brodsky SA. Mastering XMI: Java Programming with XMI, XML and UML, Vol. 21. Michigan: John Wiley & Sons; 2002.
[83]
Rountev A, Kagan S, Sawin J. Coverage criteria for testing of object interactions in sequence diagrams. In: International Conference on Fundamental Approaches to Software Engineering. Springer; 2005; Edinburgh, UK:289‐304.
[84]
Sharp R, Rountev A. Interactive exploration of UML sequence diagrams. In: Visualizing Software for Understanding and Analysis, 2005. VISSOFT 2005. 3rd IEEE International Workshop on. IEEE; 2005; Budapest, Hungary:1‐6.
[85]
Lu Lunjin, Kim Dae‐Kyoo. Required behavior of sequence diagrams: semantics and conformance. ACM Trans Softw Eng Methodol (TOSEM). 2014;23(2):15.
[86]
Martinez L, Pereira C, Favre L. Recovering sequence diagrams from object‐oriented code: an ADM approach. In: Evaluation of Novel Approaches to Software Engineering (ENASE), 2014 International Conference on. IEEE; 2014; Lisbon, Portugal:1‐8.
[87]
Roubtsov S, Serebrenik A, Mazoyer A, van den Brand M, Roubtsova E. I2SD: reverse engineering sequence diagrams enterprise Java beans from with interceptors. IET Softw. 2013;7(3):150‐166.
[88]
Tonella P, Potrich A. Reverse engineering of the interaction diagrams from C++ code. In: Software Maintenance, 2003. ICSM 2003. Proceedings. International Conference on. IEEE; 2003; Amsterdam, The Netherlands:159‐168.
[89]
Zhu H, Hall PAV, May JHR. Software unit test coverage and adequacy. ACM Comput Surv (CSUR). 1997;29(4):366‐427.
[90]
Biermann AW, Feldman JA. On the synthesis of finite‐state machines from samples of their behavior. IEEE Trans Comput. 1972;100(6):592‐597.
[91]
Carr JS, Kachmarck BT. Generating module stubs: Google Patents. US Patent 9,117,177; 2015.
[92]
Grati H, Sahraoui H, Poulin P. Extracting sequence diagrams from execution traces using interactive visualization. In: 17th Working Conference on Reverse Engineering (WCRE), 2010. IEEE; 2010; Beverly, MA, USA:87‐96.
[93]
Oechsle R, Schmitt T. JAVAVIS: automatic program visualization with object and sequence diagrams using the Java debug interface (JDI). In: Software Visualization. Springer; 2002; London, UK:176‐190.
[94]
van Hoorn A, Rohr M, Hasselbring W, et al. Continuous monitoring of software services: design and application of the Kieker framework. Technical reports by Department of Computer Science, Germany,  Kiel University, Germany; 2009.
[95]
Koskimies K, Mossenbock H. Scene: Using scenario diagrams and active text for illustrating object‐oriented programs. In: Proceedings of the 18th International Conference on Software Engineering, 1996. IEEE; 1996; Berlin, Germany:366‐375.
[96]
Souder T, Mancoridis S, Salah M. Form: a framework for creating views of program executions. In: Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01). IEEE Computer Society; 2001; Florence, Italy:612.
[97]
Taniguchi K, Ishio T, Kamiya T, Kusumoto S, Inoue K. Extracting sequence diagram from execution trace of Java program. In: Principles of Software Evolution, Eighth International Workshop on. IEEE; 2005; Lisbon, Portugal:148‐151.
[98]
Watanabe Y, Ishio T, Ito Y, Inoue K. Visualizing an execution trace as a compact sequence diagram using dominance algorithms. 4th International Workshop on Program Comprehension through Dynamic Analysis, 2008, Antwerp, Belgium. 2008:1.
[99]
Ishio T, Watanabe Y, Inoue K. AMIDA: a sequence diagram extraction toolkit supporting automatic phase detection. In: Companion of the 30th International Conference on Software Engineering. ACM; 2008; Leipzig, Germany:969‐970.
[100]
Dugerdil P, Repond J. Automatic generation of abstract views for legacy software comprehension. In: Proceedings of the 3rd India Software Engineering Conference. ACM; 2010; Mysore, India:23‐32.
[101]
Maqbool O, Babri H. Hierarchical clustering for software architecture recovery. IEEE Trans Softw Eng. 2007;33(11):759‐780.
[102]
Jiang J, Koskinen J, Ruokonen A, Systa T. Constructing usage scenarios for API redocumentation. In: 15th IEEE International Conference on Program Comprehension (ICPC), 2007. IEEE; 2007; Banff, Alberta, BC, Canada:259‐264.
[103]
Ziadi T, Da Silva MAA, Hillah LM, Ziane M. A fully dynamic approach to the reverse engineering of UML sequence diagrams. In: 16th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS), 2011, Vol. Las Vegas, NV, USA. IEEE; 2011:107‐116.
[104]
Maoz S, Harel D. On tracing reactive systems. Softw Syst Model. 2011;10(4):447‐468.
[105]
Sag MA, Tarhan A. Measuring COSMIC software size from functional execution traces of Java business applications. In: Software Measurement and the International Conference on Software Process and Product Measurement (IWSM‐MENSURA), 2014 Joint Conference of the International Workshop on. IEEE; 2014; Rotterdam, Netherlands:272‐281.
[106]
Noda K, Kobayashi T, Toda T, Atsumi N. Identifying core objects for trace summarization using reference relations and access analysis. In: Computer Software and Applications Conference (COMPSAC), 2017 IEEE 41st Annual, Vol. 1. IEEE; 2017; Turin, Italy:13‐22.
[107]
Lo D, Maoz S, Khoo SC. Mining modal scenario‐based specifications from execution traces of reactive systems. In: Proceedings of the Twenty‐second IEEE/ACM International Conference on Automated Software Engineering. ACM; 2007; Atlanta, Georgia, USA:465‐468.
[108]
Lo D, Maoz S. Specification mining of symbolic scenario‐based models. In: Proceedings of the 8th ACM SIGPLAN‐SIGSOFT Workshop on Program Analysis for Software Tools and Engineering. ACM; 2008; Atlanta, Georgia:29‐35.
[109]
Malnati G, Cuva CM, Barberis C. JThreadSpy: Teaching multithreading programming by analyzing execution traces. In: Proceedings of the 2007 ACM Workshop on Parallel and Distributed Systems: Testing and Debugging. ACM; 2007; London, United Kingdom:3‐13.
[110]
Malloy BA, Power JF. Exploiting UML dynamic object modeling for the visualization of C++ programs. In: Proceedings of the 2005 ACM Symposium on Software Visualization. ACM; 2005; St. Louis, Missouri:105‐114.
[111]
Dalton AR, Hallstrom JO. A toolkit for visualizing the runtime behavior of TinyOS applications. In: The 16th IEEE International Conference on Program Comprehension (ICPC). IEEE; 2008; Amsterdam, Netherlands:43‐52.
[112]
Toda T, Kobayashi T, Atsumi N, Agusa K. Grouping objects for execution trace analysis based on design patterns. In: Software Engineering Conference (APSEC), 2013 20th Asia‐Pacific, Vol. 2. IEEE; 2013; Bangkok, Thailand:25‐30.
[113]
Ng JKY, Guéhéneuc YG, Antoniol G. Identification of behavioural and creational design motifs through dynamic analysis. J Softw: Evol Process. 2010;22(8):597‐627.
[114]
Guéhéneuc YG, Antoniol G. DeMIMA: a multilayered approach for design pattern identification. IEEE Trans Softw Eng. 2008;34(5):667‐684.
[115]
Srinivasan M, Yang J, Lee Y. Case studies of optimized sequence diagram for program comprehension. In: 2016 IEEE 24th International Conference on Program Comprehension (ICPC). IEEE; 2016; Austin, TX, USA:1‐4.
[116]
van den Brand M, Roubtsov S, Serebrenik A. SQuAVisiT: a flexible tool for visual software analytics. In: Software Maintenance and Reengineering, 2009. CSMR'09. 13th European Conference on. IEEE; 2009; Kaiserslautern, Germany:331‐332.
[117]
EJB 3.1 Expert Group: EJB 3.1 Expert Group. Interceptors 1.1; 2009.
[118]
Smith TF, Waterman MS. Identification of common molecular subsequences. J Mol Biol. 1981;147(1):195‐197.
[119]
Mössenböck H, Wirth N. The programming language Oberon‐2. Struct Program. 1991;12(4):179‐196.
[120]
Mäkinen E, Systä T. MAS‐an interactive synthesizer to support behavioral modelling in UML. In: Proceedings of the 23rd International Conference on Software Engineering. IEEE Computer Society; 2001; Toronto, Ontario, Canada:15‐24.
[121]
The Eclipse foundation, atlas transformation language . https://eclipse.org/atl/; April 22, Accessed on 2015.
[122]
LogSequencer 1.0,http://logsequencer.soft32.com; December 22, Accessed on 2016.
[123]
Matsumura T, Ishio T, Kashima Y, Inoue K. Repeatedly‐executed‐method viewer for efficient visualization of execution paths and states in Java. In: Proceedings of the 22nd International Conference on Program Comprehension. ACM; 2014; Hyderabad, India:253‐257.
[124]
Harel D, Kleinbort A, Maoz S. S2a: A compiler for multi‐modal UML sequence diagrams. Fundam Approach Softw Eng. 2007;4422:121‐124.
[125]
ASM Home page, http://asm.objectweb.org/; September 5, Accessed on 2017.
[126]
Müller HA, Tilley SR, Wong K. Understanding software systems using reverse engineering technology perspectives from the rigi project. In: Proceedings of the 1993 Conference of the Centre for Advanced Studies on Collaborative Research: Software Engineering‐volume 1. IBM Press; 1993; Toronto, Ontario, Canada:217‐226.
[127]
Koskimies K, Systa T, Tuomi J, Mannisto T. Automated support for modeling OO software. IEEE Softw. 1998;15(1):87‐94.
[128]
Lee HB, Zorn BG. BIT: a tool for instrumenting Java bytecodes. In: USENIX Symposium on Internet Technologies and Systems; 1997; Monterey, California:73‐82.
[129]
Hamou‐Lhadj A, Braun E, Amyot D, Lethbridge T. Recovering behavioral design models from execution traces. In: Software Maintenance and Reengineering, 2005. CSMR 2005. Ninth European Conference on. IEEE; 2005; Manchester, UK:112‐121.
[130]
Ghaleb TA. The role of open source software in program analysis for reverse engineering. In: Open Source Software Computing (OSSCOM), 2016 2nd International Conference on IEEE; 2016; Beirut, Lebanon:1‐6.
[131]
Hudson SE, Flannery F, Ananian CS, Wang D, Appel AW. CUP LALR parser generator for Java. http://www2.cs.tum.edu/projects/cup/, Accessed on 28‐12‐2016; 1999.
[132]
Nystrom N, Clarkson MR, Myers AC. Polyglot: an extensible compiler framework for Java. In: International Conference on Compiler Construction. Springer; 2003; Warsaw, Poland:138‐152.
[133]
Shahin M, Liang P, Babar MA. A systematic review of software architecture visualization techniques. J Syst Softw. 2014;94:161‐185.
[134]
Tsantalis N, Chatzigeorgiou A, Stephanides G, Halkidis ST. Design pattern detection using similarity scoring. IEEE Trans Softw Eng. 2006;32(11):896‐909.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Journal of Software: Evolution and Process
Journal of Software: Evolution and Process  Volume 30, Issue 11
November 2018
181 pages
ISSN:2047-7473
EISSN:2047-7481
DOI:10.1002/smr.v30.11
Issue’s Table of Contents

Publisher

John Wiley & Sons, Inc.

United States

Publication History

Published: 14 November 2018

Author Tags

  1. program analysis
  2. program comprehension
  3. reverse engineering
  4. reverse‐engineered sequence diagram
  5. software visualization

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 30 Aug 2024

Other Metrics

Citations

Cited By

View all

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media