Skip to main content
Log in

An empirical study of a reverse engineering method for the aggregation relationship based on operation propagation

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

Abstract

One of the major obstacles in reverse engineering legacy object-oriented systems is the identification of aggregation relationships. An aggregation relationship, also called whole–part relationship, is a form of association relationship where an object is considered as a part of another object. This characteristic is mostly of semantic nature; therefore, it is difficult to distinguish aggregation from association relationships by implementation mechanism. Most reverse engineering methods for aggregation relationships are based on the lifetime dependence of an object on another object since many implementations of aggregation relationships result in such dependence. However, research literature shows that lifetime dependence is not really a primary property of the aggregation relationships. A reverse engineering approach is proposed on the basis of a primary characteristic for aggregation relationship—propagation of operations. To compare the propagation-based method with the lifetime-based method, we apply both methods to ten class libraries, collect their output, and perform statistical analysis to determine the effectiveness of the two methods. The analysis results show that the propagation-based method performs significantly better than the lifetime-based method and by combining both methods simultaneously the complete aggregation relationships can be uncovered for the class libraries in our experiment.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2

Similar content being viewed by others

References

  • Antoniol G, Casazza G, Di Penta M, Fiutem R (2001) Object-oriented design patterns recovery. J Syst Softw 59(2):181–196

    Article  Google Scholar 

  • Balanyi Z, Ferenc R (2003) Mining design patterns from C++ source code. In: Proceedings of the international conference on software maintenance. IEEE Computer Society Press, Silver Spring, MD, pp 305–314

  • Barbier F, Henderson-Sellers B (2001) The whole–part relationship in object modelling: a definition in cOlOr. Inf Softw Technol 43:19–39

    Article  Google Scholar 

  • Barbier F, Henderson-Sellers B, Le Parc-Lacayrelle A, Bruel J (2003) Formalization of the whole–part relationship in the unified modeling language. IEEE Trans Softw Eng 29:459–470

    Article  Google Scholar 

  • Baxter ID, Mehlich M (2000) Reverse engineering is reverse forward engineering. Sci Comput Program 36:131–147

    Article  Google Scholar 

  • Booch G, Rumbaugh J, Jacobson I (1999) The unified modeling language user guide. Addison-Wesley, Reading, MA

    Book  Google Scholar 

  • Briand L, Bunse C, Daly J (2001) A controlled experiment for evaluating quality guidelines on the maintainability of object-oriented designs. IEEE Trans Softw Eng 27:513–530

    Article  Google Scholar 

  • Chidamber SR, Kemerer CF (1994) A metrics suite for object oriented design. IEEE Trans Softw Eng 20:467–493

    Article  Google Scholar 

  • Chikofsky EJ, Cross JH (1990) Reverse engineering and design recovery: a taxonomy. IEEE Softw 23:13–17

    Article  Google Scholar 

  • Daly J, Brooks A, Miller J, Roper M, Wood M (1996) Evaluating inheritance depth on the maintainability of object-oriented software. Empirical Software Engineering, An International Journal 1:109–132

    Article  Google Scholar 

  • Di Lucca GA, Fasolino AR, De Carlini U (2000) Recovering class diagrams from data-intensive legacy systems. In: Proceedings of international conference on software maintenance. IEEE Computer Society Press, Silver Spring, MD, pp 52–63

  • Duggan D (2001) Finite subtype inference with explicit polymorphism. Sci Comput Program 39:57–92

    Article  MATH  MathSciNet  Google Scholar 

  • Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Reading, MA

    Google Scholar 

  • Henderson-Sellers B, Barbier F (1999) What is this thing called aggregation. In: Proceedings of TOOL EUROPE’99. IEEE Computer Society Press, Silver Spring, MD, pp 236–250

  • Juristo N, Moreno AM (2001) Basics of software engineering experimentation. Kluwer, Boston

    MATH  Google Scholar 

  • Motschnig-Pitrik R, Kaasboll J (1999) Part–whole relationship categories and their application in object-oriented analysis. IEEE Trans Knowl Data Eng 11:779–797

    Article  Google Scholar 

  • Niere J, Schafer W, Wadsack JP, Wendehals L, Welsh J (2002) Towards pattern-based design recovery. In: Proceedings of international conference on software engineering. IEEE Computer Society Press, Silver Spring, MD, pp 338–348

  • Object Management Group (2001) OMG Unified Modeling Language Specification-Version 1.4. Object Management Group

  • Port D, McArthur M (1999) A study of productivity and efficiency for object-oriented methods and languages. In: Proceedings of the sixth Asia Pacific software engineering conference. IEEE Computer Society Press, Silver Spring, MD, pp 128–135

  • Prechelt L, Kramer C (1998) Functionality versus practicality: employing existing tools for recovering structural design patterns. Journal of Universal Computer Science 4:866–882

    Google Scholar 

  • Richner T, Ducasse S (1999) Recovering high-level views of object-oriented applications from static and dynamic information. In: Proceedings of the international conference on software maintenance. IEEE Computer Society Press, Silver Spring, MD, pp 13–22

  • Rugaber S, Shikano T, Stirewalt REK (2001) Adequate reverse engineering. In: Proceedings of international conference on automated software engineering. IEEE Computer Society Press, Silver Spring, MD, pp 232–241

  • Saksena M, Franceand RB, Larrondo-Petrie MM (1998) A characterization of aggregation. In: Proceedings of OOIS’98. IEEE Computer Society Press, Silver Spring, MD, pp 11–19

  • Seemann J, Gudenberg JW (1998) Pattern-based design recovery of Java software. In: Proceedings of FSE’98. ACM, New York, pp 10–16

  • Sheldon FT, Jerath K, Chung H (2002) Metrics for maintainability of class inheritance hierarchies. Journal of Software Maintenance and Evolution: Research and Practice 14:147–160

    Article  MATH  Google Scholar 

  • Sjoberg DIK, Hannay JE, Hansen O, Kampenes VB, Karahasanovic A, Liborg N-K, Rekdal AC (2005) A survey of controlled experiments in software engineering. IEEE Trans Softw Eng 31(9):733–753, Sept

    Article  Google Scholar 

  • Tonella P, Antoniol G (2001) Inference of object-oriented design patterns. Journal of Software maintenance and Evolution: Research and Practice 13:309–330

    Article  MATH  Google Scholar 

  • Tonella P, Potrich A (2001) Reverse engineering of the UML class diagram from C++ code in presence of weakly typed containers. In: Proceedings of the International Conference on Software Maintenance. IEEE Computer Society Press, Silver Spring, MD, pp 376–385

  • Yeh D, Kuo W (2002) Reverse engineering aggregation relationship based on propagation of operations. In: Proceedings of European conference on software maintenance and reengineering. IEEE Computer Society Press, Silver Spring, MD, pp 223–229

Download references

Acknowledgement

This work was partially supported by the National Science Council, Taiwan, R.O.C., under Grant NSC 89-2213-E-020-004- and Department of Industrial Technology, Ministry of Economic Affairs, R.O.C. under the grant 96-EC-17-A-02-S1-029.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Dowming Yeh.

Additional information

Editor: Mark Harman

Rights and permissions

Reprints and permissions

About this article

Cite this article

Yeh, D., Sun, Pc., Chu, W. et al. An empirical study of a reverse engineering method for the aggregation relationship based on operation propagation. Empir Software Eng 12, 575–592 (2007). https://doi.org/10.1007/s10664-007-9043-7

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10664-007-9043-7

Keywords

Navigation