Aiding program comprehension by static and dynamic feature analysis

Understanding a system's implementation without prior knowledge is a hard task for reengineers in general. However, some degree of automatic aid is possible. The authors present a technique for building a mapping between the system's externally visible behavior and the relevant parts of the source code. The technique combines dynamic and static analyses to rapidly focus on the system's parts urgently required for a goal-directed process of program understanding.

[1]  Gregor Snelting,et al.  Reengineering of configurations based on mathematical concept analysis , 1996, TSEM.

[2]  Norman Wilde,et al.  Software reconnaissance: Mapping program features to code , 1995, J. Softw. Maintenance Res. Pract..

[3]  Leon Moonen,et al.  Types and concept analysis for legacy systems , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

[4]  Hausi A. Müller,et al.  Rigi User’s Manual , 1998 .

[5]  Gregor Snelting,et al.  Assessing Modular Structure of Legacy Code Based on Mathematical Concept Analysis , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[6]  David Garlan,et al.  Architectural Mismatch or Why it's hard to build systems out of existing parts , 1995, 1995 17th International Conference on Software Engineering.

[7]  Houari A. Sahraoui,et al.  Applying concept formation methods to object identification in procedural code , 1997, Proceedings 12th IEEE International Conference Automated Software Engineering.

[8]  Thomas W. Reps,et al.  Identifying Modules via Concept Analysis , 1999, IEEE Trans. Software Eng..

[9]  Jean-Francois Girard,et al.  An intermediate representation for integrating reverse engineering analyses , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

[10]  Arie van Deursen,et al.  Identifying objects using cluster and concept analysis , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[11]  Frank Tip,et al.  Reengineering class hierarchies using concept analysis , 1998, SIGSOFT '98/FSE-6.

[12]  Aniello Cimitile,et al.  A case study of applying an eclectic approach to identify objects in code , 1999, Proceedings Seventh International Workshop on Program Comprehension.

[13]  Rainer Koschke,et al.  Atomic architectural component recovery for program understanding and evolution , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[14]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[15]  Rainer Koschke,et al.  Feature-driven program understanding using concept analysis of execution traces , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[16]  Rainer Koschke,et al.  An Intermediate Representation for Reverse Engineering Analyses , 1998 .

[17]  Václav Rajlich,et al.  Case study of feature location using dependence graph , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

[18]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[19]  Gregor Snelting,et al.  On the inference of configuration structures from source code , 1994, Proceedings of 16th International Conference on Software Engineering.

[20]  Dewayne E. Perry,et al.  Proceedings of the 27th international conference on Software engineering , 1995, ICSE 1995.