Abstract
Before making modifications to an unfamiliar software system, the new programmer needs to gain some knowledge about that system. The core classes that constitute the system architecture can reveal important structural properties of the system. Hence these core classes can be used to catch an initial glimpse of the system during initial stages of program comprehension. We propose an efficient technique that pinpoints the core architecture classes of the system with the help of our own conceived variant of a dynamic coupling metric. The results are compared with the already performed experiments of similar nature on the same software system. There is a noticeable improvement in the performance with our approach while the precision and recall contest with the best results obtained in other analogous experiments.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Stroulia E, Systä T (2002) Dynamic analysis for reverse engineering and program understanding. SIGAPP Appl Comput Rev 10(1):8–17
Ng D, Kaeli DR, Kojarski S, Lorenz DH (2004) Program comprehension using aspects. In: ICSE 2004 workshop WoDiSEE’2004
Corbi T (1990) Program understanding: challenge for the 90 s. IBM Syst J 28(2):294–306
Lakhotia A (1993) Understanding someone else’s code: analysis of experiences. J Syst Softw 23:269–275
Zayour I, Lethbridge TC (2001) Adoption of reverse engineering tools: a cognitive perspective and methodology. In: Proceedings of the 9th international workshop on program comprehension, pp 245–255
Storey M-AD, Wong K, Müller HA (2000) How do program understanding tools affect how programmers understand programs? Sci Comput Program 36(2–3):183–207
von Mayrhauser A, Marie Vans A (1995) Program comprehension during software maintenance and evolution. Computer 10(8):44–55
Pennington N (1987) Comprehension strategies in programming. In: Empirical studies of programmers: second workshop, Ablex Publishing Corp, Norwood pp 100–113
Demeyer S, Ducasse S, Nierstrasz O (2003) Object-oriented reengineering patterns. Morgan Kaufmann, San Francisco
Eisenbarth T, Koschke R, Simon D (2001) Aiding program comprehension by static and dynamic feature analysis. In: ICSM, pp 602–611
Jahnke JH, Walenstein A (2000) Reverse engineering tools as media for imperfect knowledge. In: Proceedings of the seventh working conference on reverse engineering, IEEE, pp 22–31
Arisholm E, Briand L, Foyen A (2004) Dynamic coupling measurement for object-oriented software. IEEE Trans Softw Eng 30(8):491–506
Zaidman A, Calders T, Demeyer S, Paredaens J (2005) Applying webmining techniques to execution traces to support the program comprehension process. In: Proceedings of the European conference on software maintenance and reengineering (CSMR), IEEE Computer Society, Los Alamitos, CA, pp 134–142
Zaidman A, Demeyer S (2008) Automatic identification of key classes in a software system using webmining techniques. J Softw Maint Evol Res Pract 20(6):387–417
Yuying W, Qingshan L, Ping C, Chunde R (2005) Dynamic fan-in and fan-out metrics for program comprehension. 1st Workshop on program comprehension through dynamic analysis (PCODA 2005) Co-located with the 12th WCRE, 10 November 2005, Pittsburgh, Pennsylvania, http://lore.ua.ac.be.Events/PCODA2005/PCODA2005proceedings.pdf
Chawla A, Orso A (2004) A generic instrumentation framework for collecting dynamic information. Sigsoft software engineering notes, section: workshop on empirical research in software testing, vol 29(5). ACM Press, New York, pp 1–4
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kamran, M., Azam, F., Khanum, A. (2013). Discovering Core Architecture Classes to Assist Initial Program Comprehension. In: Lu, W., Cai, G., Liu, W., Xing, W. (eds) Proceedings of the 2012 International Conference on Information Technology and Software Engineering. Lecture Notes in Electrical Engineering, vol 211. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-34522-7_1
Download citation
DOI: https://doi.org/10.1007/978-3-642-34522-7_1
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-34521-0
Online ISBN: 978-3-642-34522-7
eBook Packages: EngineeringEngineering (R0)