Comparison of abstract data type and abstract state encapsulation detection techniques for architectural understanding

In the context of the authors' research on architectural feature recovery, abstract data type (ADT) and abstract state encapsulation (ASE, also called abstract object) have been identified as two of the smallest components which are useful to build a significant architectural overview of the system. The authors have named these the atomic components of an architecture. The paper compares five published techniques which extract ADT and ASE from source code. A prototype tool implementing each technique has been developed and applied to three medium-size systems written in C (each over 30 Kloc). The results from each approach are compared with the atomic components identified by hand by a group of software engineers. These people did not know the automatic techniques which were going to be applied to the systems.

[1]  N. Wilde,et al.  Identifying objects in a conventional procedural language: an example of data design recovery , 1990, Proceedings. Conference on Software Maintenance 1990.

[2]  Robert W. Schwanke,et al.  An intelligent tool for re-engineering software modularity , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[3]  Thomas Bräunl,et al.  Virtual Mechanics Simulation and Animation of Rigid Body Systems with AERO , 1995, Simul..

[4]  D. R. Harris,et al.  Recovering abstract data types and object instances from a conventional procedural language , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[5]  Aniello Cimitile,et al.  An Improved Algorithm for Identifying Objects in Code , 1996, Softw. Pract. Exp..

[6]  Norman Wilde,et al.  An object finder for program structure understanding in software maintenance , 1994, J. Softw. Maintenance Res. Pract..

[7]  Jean-Francois Girard,et al.  Finding components in a hierarchy of modules: a step towards architectural understanding , 1997, 1997 Proceedings International Conference on Software Maintenance.

[8]  Aniello Cimitile,et al.  Extracting abstract data types from C programs: A case study , 1993, 1993 Conference on Software Maintenance.

[9]  Gerardo Canfora,et al.  An improved algorithm for identifying objects in code , 1996 .