Skip to main content

Discovering Core Architecture Classes to Assist Initial Program Comprehension

  • Conference paper
  • First Online:
Proceedings of the 2012 International Conference on Information Technology and Software Engineering

Part of the book series: Lecture Notes in Electrical Engineering ((LNEE,volume 211))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 169.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 219.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 219.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Stroulia E, Systä T (2002) Dynamic analysis for reverse engineering and program understanding. SIGAPP Appl Comput Rev 10(1):8–17

    Article  Google Scholar 

  2. Ng D, Kaeli DR, Kojarski S, Lorenz DH (2004) Program comprehension using aspects. In: ICSE 2004 workshop WoDiSEE’2004

    Google Scholar 

  3. Corbi T (1990) Program understanding: challenge for the 90 s. IBM Syst J 28(2):294–306

    Article  Google Scholar 

  4. Lakhotia A (1993) Understanding someone else’s code: analysis of experiences. J Syst Softw 23:269–275

    Google Scholar 

  5. 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

    Google Scholar 

  6. 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

    Article  Google Scholar 

  7. von Mayrhauser A, Marie Vans A (1995) Program comprehension during software maintenance and evolution. Computer 10(8):44–55

    Article  Google Scholar 

  8. Pennington N (1987) Comprehension strategies in programming. In: Empirical studies of programmers: second workshop, Ablex Publishing Corp, Norwood pp 100–113

    Google Scholar 

  9. Demeyer S, Ducasse S, Nierstrasz O (2003) Object-oriented reengineering patterns. Morgan Kaufmann, San Francisco

    Google Scholar 

  10. Eisenbarth T, Koschke R, Simon D (2001) Aiding program comprehension by static and dynamic feature analysis. In: ICSM, pp 602–611

    Google Scholar 

  11. 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

    Google Scholar 

  12. Arisholm E, Briand L, Foyen A (2004) Dynamic coupling measurement for object-oriented software. IEEE Trans Softw Eng 30(8):491–506

    Google Scholar 

  13. 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

    Google Scholar 

  14. 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

    Article  Google Scholar 

  15. 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

  16. 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

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Muhammad Kamran .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics