Skip to main content

Reverse-Architecting Legacy Software Based on Roles: An Industrial Experiment

  • Conference paper

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 22))

Abstract

Legacy software systems architecture recovery has been a hot topic for more than a decade. In our approach, we proposed to use the artefacts and activities of the Unified Process to guide this reconstruction. First, we recover the use-cases of the program. Then we instrument the code and “run” the use-cases. Next we analyse the execution trace and rebuild the run-time architecture of the program. This is done by clustering the modules based on the supported use-case and their roles in the software. In this paper we present an industrial validation of this reverse-engineering process. First we give a summary of our methodology. Then we show a step-by-step application of this technique to real-world business software and the result we obtained. Finally we present the workflow of the tools we used to perform this experiment. We conclude by giving the future directions of this research.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.99
Price excludes VAT (USA)
  • Compact, lightweight 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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Andritsos, P., Tzerpos, V.: Software Clustering based on Information Loss Minimization. In: Proc. IEEE Working Conference on Reverse engineering (2003)

    Google Scholar 

  2. Andritsos, P., Tzerpos, V.: Information Theoretic Software Clustering. IEEE Trans. on Software Engineering 31(2) (2005)

    Google Scholar 

  3. Bergey, J., et al.: Why Reengineering Projects Fail. Software Engineering Institute, Tech Report CMU/SEI-99-TR-010 (April 1999)

    Google Scholar 

  4. Bergey, J., Smith, D., Weiderman, N., Woods, S.: Options Analysis for Reengineering (OAR): Issues and Conceptual Approach. Software Engineering Institute, Tech. Note CMU/SEI-99-TN-014 (1999)

    Google Scholar 

  5. Biggerstaff, T.J., Mitbander, B.G., Webster, D.E.: Program Understanding and the Concept Assignment Problem. Communications of the ACM, CACM 37(5) (1994)

    Google Scholar 

  6. Binkley, D.W., Gallagher, K.B.: Program Slicing. In: Advances in Computers, vol. 43. Academic Press, London (1996)

    Google Scholar 

  7. Dugerdil, P.: A Reengineering Process based on the Unified Process. In: IEEE International Conference on Software Maintenance (2006)

    Google Scholar 

  8. Eisenbarth, T., Koschke, R.: Locating Features in Source Code. IEEE Trans. On Software Engineering 29(3) ( March 2003)

    Google Scholar 

  9. Gall, H., Weidl, J.: Object-Model Driven Abstraction to Code Mapping. In: Proc. European Software engineering Conference, Workshop on Object-Oriented Reengineering (1999)

    Google Scholar 

  10. Gold, N.E.: Hypothesis-Based Concept Assignment to Support Software Maintenance. PhD Thesis, Univ. of Durham (2000)

    Google Scholar 

  11. Jacobson, I., Booch, G., Rumbaugh, J.: The Unified Software Development Process. Addison-Wesley Professional, Reading (1999)

    Google Scholar 

  12. Kazman, R., O’Brien, L., Verhoef, C.: Architecture Reconstruction Guidelines, 3rd edition. Software Engineering Institute, Tech. Report CMU/SEI-2002-TR-034 (2003)

    Google Scholar 

  13. Linding, C., Snelting, G.: Assessing Modular Structure of Legacy Code Based on Mathematical Concept Analysis. In: Proc IEEE Int. Conference on Software Engineering (1997)

    Google Scholar 

  14. Marcus, A.: Semantic Driven Program Analysis. In: Proc IEEE Int. Conference on Software Maintenance (2004)

    Google Scholar 

  15. Mitchell, B.S.: A Heuristic Search Approach to Solving the Software Clustering Problem. In: Proc IEEE Conf on Software Maintenance (2003)

    Google Scholar 

  16. Müller, H.A., Orgun, M.A., Tilley, S., Uhl, J.S.: A Reverse Engineering Approach To Subsystem Structure Identification. Software Maintenance: Research and Practice, vol. 5(4). John Wiley & Sons, Chichester (1993)

    Google Scholar 

  17. Rajlich, V., Wilde, N.: The Role of Concepts in Program Comprehension. In: Proc IEEE Int. Workshop on Program Comprehension (2002)

    Google Scholar 

  18. Siff, M., Reps, T.: Identifying Modules via Concept Analysis. IEEE Trans. On Software Engineering 25(6) (1999)

    Google Scholar 

  19. Tilley, S.R., Santanu, P., Smith, D.B.: Toward a Framework for Program Understanding. In: Proc. IEEE Int. Workshop on Program Comprehension (1996)

    Google Scholar 

  20. Tonella, P.: Concept Analysis for Module Restructuring. IEEE Trans. On Software Engineering 27(4) (2001)

    Google Scholar 

  21. Tonella, P.: Using a Concept Lattice of Decomposition Slices for Program Understanding and Impact Analysis. IEEE Trans. On Software Engineering 29(6) (2003)

    Google Scholar 

  22. Verbaere, M.: Program Slicing for Refactoring. MS Thesis. Oxford University, Oxford (2003)

    Google Scholar 

  23. Wen, Z., Tzerpos, V.: An Effective measure for software clustering algorithms. In: Proc. IEEE Int. Workshop on Program Comprehension (2004)

    Google Scholar 

  24. Wiggert, T.A.: Using Clustering Algorithms in Legacy Systems Remodularisation. In: Proc. IEEE Working Conference on Reverse engineering (1997)

    Google Scholar 

  25. Wong, W.E., Gokhale, S.S., Horgan, J.R., Trivedi, K.S.: Locating Program Features using Execution Slices. In: Proc. IEEE Conf. on Application-Specific Systems and Software Engineering & Technology (1999)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Dugerdil, P., Jossi, S. (2008). Reverse-Architecting Legacy Software Based on Roles: An Industrial Experiment. In: Filipe, J., Shishkov, B., Helfert, M., Maciaszek, L.A. (eds) Software and Data Technologies. ICSOFT ENASE 2007 2007. Communications in Computer and Information Science, vol 22. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-88655-6_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-88655-6_9

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-88654-9

  • Online ISBN: 978-3-540-88655-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics