Abstract
One of the main issues in software maintenance is the time and effort needed to understand software. Software documentation and models are often incomplete, outdated, or non-existent, in part because of the cost and effort involved in creating and continually updating them. In this paper, we describe an innovative technique for automatically extracting and visualizing software behavioral models from execution traces. Lengthy traces are summarized by filtering out low-level software components via algorithms that utilize static and dynamic data. Eight such algorithms are compared in this paper. The traces are visualized using the Use Case Map (UCM) scenario notation. The resulting UCM diagrams depict the behavioral model of software traces and can be used to document the software. The tool-supported technique is customizable through different filtering algorithms and parameters, enabling the generation of documentation and models at different levels of abstraction.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Amyot, D., Mansurov, N., Mussbacher, G.: Understanding existing software with use case map scenarios. In: Sherratt, E. (ed.) SAM 2002. LNCS, vol. 2599, pp. 124–140. Springer, Heidelberg (2003). http://dx.doi.org/10.1007/3-540-36573-7_9
Amyot, D., Mussbacher, G.: User requirements notation: the first ten years, the next ten years. JSW 6(5), 747–768 (2011). http://dx.doi.org/10.4304/jsw.6.5.747-768
Ball, T.: The concept of dynamic analysis. In: Wang, J., Lemoine, M. (eds.) ESEC 1999 and ESEC-FSE 1999. LNCS, vol. 1687, p. 216. Springer, Heidelberg (1999). http://dx.doi.org/10.1007/3-540-48166-4_14
Braun, E.: Reverse engineering behavioural models by filtering out utilities from execution traces. Ph.D. thesis, University of Ottawa, Canada (2013). http://hdl.handle.net/10393/26093
Briand, L., Labiche, Y., Leduc, J.: Toward the reverse engineering of UML sequence diagrams for distributed Java software. IEEE Trans. Softw. Eng. 32(9), 642–663 (2006)
Buhr, R.: Use case maps as architectural entities for complex systems. IEEE Trans. Softw. Eng. 24(12), 1131–1155 (1998)
Burtscher, M., Ganusov, I., Jackson, S., Ke, J., Ratanaworabhan, P., Sam, N.: The VPC trace-compression algorithms. IEEE Trans. Comput. 54(11), 1329–1344 (2005)
Cornelissen, B., Zaidman, A., van Deursen, A., Moonen, L., Koschke, R.: A systematic survey of program comprehension through dynamic analysis. IEEE Trans. Softw. Eng. 35(5), 684–702 (2009)
Di Lucca, G., Di Penta, M.: Integrating static and dynamic analysis to improve the comprehension of existing web applications. In: Web Site Evolution 2005, (WSE 2005), Seventh IEEE International Symposium, pp. 87–94, Sept 2005. http://dx.doi.org/10.1109/WSE.2005.8
Dit, B., Revelle, M., Gethers, M., Poshyvanyk, D.: Feature location in source code: a Taxonomy and survey. J. Softw. Evol. Process 25(1), 53–95 (2013). http://dx.doi.org/10.1002/smr.567
Dugerdil, P., Jossi, S.: Empirical assessment of execution trace segmentation in reverse-engineering. In: ICSOFT 2008, Volume SE/MUSE/GSDCA, pp. 20–27. INSTICC Press (2008)
Dugerdil, P., Repond, J.: Automatic generation of abstract views for legacy software comprehension. In: ISEC 2010, pp. 23–32. ACM, New York (2010). http://dx.doi.org/10.1145/1730874.1730881
Eclipse Foundation: Eclipse Test and Performance Tools Platform Project (2011). http://www.eclipse.org/tptp/
Eisenbarth, T., Koschke, R., Simon, D.: Locating features in source code. IEEE Trans. Softw. Eng. 29(3), 210–224 (2003). http://dx.doi.org/10.1109/TSE.2003.1183929
Hamou-Lhadj, A., Braun, E., Amyot, D., Lethbridge, T.: Recovering behavioral design models from execution traces. In: 9th Software Maintenance and Reengineering (CSMR), pp. 112–121, March 2005. http://dx.doi.org/10.1109/CSMR.2005.46
Hamou-Lhadj, A.: Techniques to simplify the analysis of execution traces for program comprehension. Ph.D. thesis, University of Ottawa, Canada (2006). http://hdl.handle.net/10393/29296
International Telecommunication Union: ITU-T Recommendation Z.151 (10/12) - User Requirements Notation (URN) - Language Definition (2012). http://www.itu.int/rec/T-REC-Z.151-201210-I
Lee, H.B., Zorn, B.G.: BIT: a tool for instrumenting Java bytecodes. In: USITS 1997, pp. 7–7. USENIX Association, Berkeley (1997)
von Mayrhauser, A., Vans, A.: Program understanding behavior during adaptation of large scale software. In: IWPC 1998, pp. 164–172, Jun 1998. http://dx.doi.org/10.1109/WPC.1998.693345
McCabe, T.J.: A complexity measure. IEEE Trans. Softw. Eng. 2(4), 308–320 (1976)
Mussbacher, G., Amyot, D.: Goal and scenario modeling, analysis, and transformation with jUCMNav. In: Software Engineering - Companion Volume, pp. 431–432, May 2009. http://dx.doi.org/10.1109/ICSE-COMPANION.2009.5071047
Richner, T., Ducasse, S.: Recovering high-level views of object-oriented applications from static and dynamic information. In: IEEE International Conference on Software Maintenance, pp. 13–22 (1999). http://dx.doi.org/10.1109/ICSM.1999.792487
Rilling, J., Seffah, A., Bouthlier, C.: The CONCEPT project - applying source code analysis to reduce information complexity of static and dynamic visualization techniques. In: Visualizing Software for Understanding and Analysis, pp. 90–99 (2002). http://dx.doi.org/10.1109/VISSOF.2002.1019798
Sauer, F.: Metrics 1.3.6 (2013). http://metrics.sourceforge.net/
Somé, S.S.: Use Case Editor (UCEd) (2007). http://www.site.uottawa.ca/ ssome/Use_Case_Editor_UCEd.html
Systä, T.: Understanding the behaviour of Java programs. In: WCRE 2000, pp. 214–223. IEEE CS (2000). http://dx.doi.org/10.1109/WCRE.2000.891472
Systä, T., Yu, P., Muller, H.: Analyzing Java software by combining metrics and program visualization. In: 4th Software Maintenance and Reengineering Conference, pp. 199–208, Feb 2000. http://dx.doi.org/10.1109/CSMR.2000.827328
Wang, Y., Li, Q., Chen, P., Ren, C.: Dynamic fan-in and fan-out metrics for program comprehension. J. Shanghai Univ. (English Edition) 11(5), 474–479 (2007). http://dx.doi.org/10.1007/s11741-007-0507-2
Wilde, N., Scully, M.C.: Software reconnaissance: mapping program features to code. J. Softw. Maintenance Res. Pract. 7(1), 49–62 (1995)
Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B., Wesslén, A.: Experimentation in Software Engineering: An Introduction. Kluwer Academic Publishers, Norwell (2000)
Acknowledgements
This work was sponsored in part by the Natural Sciences and Engineering Research Council of Canada (NSERC, Discovery grant).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Braun, E., Amyot, D., Lethbridge, T.C. (2015). Generating Software Documentation in Use Case Maps from Filtered Execution Traces. In: Fischer, J., Scheidgen, M., Schieferdecker, I., Reed, R. (eds) SDL 2015: Model-Driven Engineering for Smart Cities. SDL 2015. Lecture Notes in Computer Science(), vol 9369. Springer, Cham. https://doi.org/10.1007/978-3-319-24912-4_13
Download citation
DOI: https://doi.org/10.1007/978-3-319-24912-4_13
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-24911-7
Online ISBN: 978-3-319-24912-4
eBook Packages: Computer ScienceComputer Science (R0)