ROLE-BASED CLUSTERING OF SOFTWARE MODULES - An Industrial Size Experiment

Philippe Dugerdil, Sebastien Jossi

Abstract

Legacy software system reverse engineering has been a hot topic for more than a decade. One of the key problems is to recover the architecture of the system i.e. its components and the communications between them. Generally, the code alone does not provide much clue on the structure of the system. To recover this architecture, we proposed to use the artefacts and activities of the Unified Process to guide the search. In our approach we first recover the high-level specification 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 and implemented to perform this experiment. We conclude by giving the future directions of this research.

References

  1. Andritsos P., Tzerpos V. 2003. Software Clustering based on Information Loss Minimization. Proc. IEEE Working Conference on Reverse engineering.
  2. Andritsos P., Tzerpos V. 2005. Information Theoretic Software Clustering. IEEE Trans. on Software Engineering 31(2), 2005.
  3. Bergey J. et al. 1999. Why Reengineering Projects Fail. Software Engineering Institute, Tech Report CMU/SEI-99-TR-010, Apr. 1999.
  4. Bergey J., Smith D., Weiderman N., Woods S. 1999. Options Analysis for Reengineering (OAR): Issues and Conceptual Approach. Software Engineering Institute, Tech. Note CMU/SEI-99-TN-014.
  5. Biggerstaff T. J., Mitbander B.G., Webster D.E. 1994. Program Understanding and the Concept Assignment Problem. Communicaitons of the ACM, CACM 37(5).
  6. Binkley D.W., Gallagher K.B. 1996. Program Slicing. Book chapter in: Advances in Computers, vol 43, Academic Press, 1996.
  7. Dugerdil Ph. 2006. A Reengineering Process based on the Unified Process. IEEE International Conference on Software Maintenance.
  8. Eisenbarth T., Koschke R. 2003. Locating Features in Source Code. IEEE Trans. On Software Engineering 29(3) March 2003.
  9. Gall H., Klosch R. Mittermeir R. 1996. Using Domain Knowledge to Improve Reverse Engineering. Int. J. on Software Engineering and Knowledge Engineering (IJSEKE), 6(3).
  10. Gall H., Weidl J. 1999. Object-Model Driven Abstraction to Code Mapping. Proc. European Software engineering Conference, Workshop on ObjectOriented Reengineering.
  11. Gold N. E. 2000. Hypothesis-Based Concept Assignment to Support Software Maintenance. PhD Thesis, Univ. of Durham.
  12. Jacobson I., Booch G., Rumbaugh J.1999. The Unified Software Development Process. Addison-Wesley Professional.
  13. Kazman R., O'Brien L., Verhoef C. 2003. Architecture Reconstruction Guidelines, 3rd edition. Software Engineering Institute, Tech. Report CMU/SEI-2002- TR-034.
  14. Kuhn A., Ducasse S., Girba T. 2005. Enriching Reverse Engineering with Semantic Clustering. Proc. IEEE IEEE Working Conference on Reverse engineering.
  15. Linding C., Snelting G. 1997. Assessing Modular Structure of Legacy Code Based on Mathematical Concept Analysis. Proc IEEE Int. Conference on Software Engineering .
  16. Marcus A. 2004. Semantic Driven Program Analysis. Proc IEEE Int. Conference on Software Maintenance .
  17. Mitchell B.S. 2003. A Heuristic Search Approach to Solving the Software Clustering Problem. Proc IEEE Conf on Software Maintenance.
  18. Müller H.A., Orgun M.A., Tilley S., Uhl J.S. 1993. A Reverse Engineering Approach To Subsystem Structure Identification. Software Maintenance: Research and Practice 5(4), John Wiley & Sons.
  19. Wiggert T.A. 1997 - Using Clustering Algorithms in Legacy Systems Remodularisation. Proc. IEEE Working Conference on Reverse engineering.
  20. Rajlich V., Wilde N, 2002. The Role of Concepts in Program Comprehension. Proc IEEE Int. Workshop on Program Comprehension.
  21. Siff M., Reps T. 1999. Identifying Modules via Concept Analysis. IEEE Trans. On Software Engineering 25(6).
  22. Tilley S.R., Santanu P., Smith D.B. 1996. Toward a Framework for Program Understanding. Proc. IEEE Int. Workshop on Program Comprehension.
  23. Tonella P. 2001. Concept Analysis for Module Restructuring. IEEE Trans. On Software Engineering, 27(4).
  24. Tonella P. 2003. Using a Concept Lattice of Decomposition Slices for Program Understanding and Impact Analysis. IEEE Trans. On Software Engineering. 29(6)
  25. Verbaere M. 2003 - Program Slicing for Refactoring. MS Thesis, Oxford University.
  26. Wen Z., Tzerpos V. 2004 - An Effective measure for software clustering algorithms. Proc IEEE Int. Workshop on Program Comprehension.
  27. Wiggert T.A. 1997. Using Clustering Algorithms in Legacy Systems Remodularisation. Proc. IEEE Working Conference on Reverse engineering.
  28. Wong W.E., Gokhale S.S., Horgan J.R., Trivedi K.S. 1999. Locating Program Features using Execution Slices. Proc. IEEE Conf. on Application-Specific Systems and Software Engineering & Technology.
Download


Paper Citation


in Harvard Style

Dugerdil P. and Jossi S. (2007). ROLE-BASED CLUSTERING OF SOFTWARE MODULES - An Industrial Size Experiment . In Proceedings of the Second International Conference on Software and Data Technologies - Volume 2: ICSOFT, ISBN 978-989-8111-06-7, pages 5-12. DOI: 10.5220/0001329100050012


in Bibtex Style

@conference{icsoft07,
author={Philippe Dugerdil and Sebastien Jossi},
title={ROLE-BASED CLUSTERING OF SOFTWARE MODULES - An Industrial Size Experiment},
booktitle={Proceedings of the Second International Conference on Software and Data Technologies - Volume 2: ICSOFT,},
year={2007},
pages={5-12},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0001329100050012},
isbn={978-989-8111-06-7},
}


in EndNote Style

TY - CONF
JO - Proceedings of the Second International Conference on Software and Data Technologies - Volume 2: ICSOFT,
TI - ROLE-BASED CLUSTERING OF SOFTWARE MODULES - An Industrial Size Experiment
SN - 978-989-8111-06-7
AU - Dugerdil P.
AU - Jossi S.
PY - 2007
SP - 5
EP - 12
DO - 10.5220/0001329100050012