Giacomo Bucci, Valeriano Sandrucci, Enrico Vicario



We address the problem of reengineering legacy systems towards adoption of current predominant technologies, i.e. object-oriented (OO) programming and relational databases (RDB). To smooth the reengineering process we follow an evolutionary approach based on the construction of a mapping layer decoupling application logic from persistent data, so that application reengineering and data reengineering are made independent and carried out incrementally. The mapping layer does not impose any particular environment, container or whatsoever. Therefore, program development can be carried out based on well established OO design principles. In reimplementing applications, rather than trying to identify applicative classes exclusively from the legacy code, we follow the guidelines of iterative development processes such as UP, giving the due consideration to actual user requirements.


  1. Abbattista, F., Lanubile, F., and Visaggio, G. (1993). Recovering conceptual data models is human-intensive. In Proc. of SEKE'93, pages 534-543.
  2. Aversano, L., Canfora, G., Cimmitile, A., and DeLucia, A. (2001). Migrating legacy systems to the web: an experience report. In Proc. CSMR 2001, pages 148-157.
  3. Bauer, C. and King, G. (2004). Hibernate in Action. Manning Publication Co.
  4. Bergey, J., Smith, D., Tilley, S., Weiderman, N., and Woods, S. (1999). Why reengineering projects fail. Technical Report TR - 010, CMU/SEI.
  5. Biggerstaff, T. J., Mitbander, B. G., and Webster, D. E. (1994). Program understanding and concept assignment problem. Communications of the ACM, 37(5):72-83.
  6. Brodie, M. L. and Stonebraker, M. (1995). Migrating Legacy Systems - Gateways Interfaces and the Incremental Approach. Morgan Kaufmann, San Francisco, California.
  7. Canfora, G., Cimitile, A., Lucia, A. D., and Lucca, G. A. D. (1998). Devising coexistence sta'rategies for objects with legacy systems. In Proceedings of the 1st Colloquium on Object Technology and SystemReenineering, Oxford, UK.
  8. Canfora, G., Cimitile, A., and Munro, M. (1993). A reverse engineering method for identifying reusable abstract data types. In Proc. of WCRE'93, pages 73-82.
  9. Chidamber, S. R. and Kemerer, C. F. (1994). A metrics suite for object oriented design. IEEE Trans. Soft. Eng., 20(6):476-493.
  10. Chikofsky, E. J. and Cross, J. H. (1990). Reverse engineering and designn recovery: a taxonomy. Computer, 7(1):13-17.
  11. Cimitile, A., DeLucia, A., DiLucca, G. A., and Fasolino, A. R. (1999). Identifying objects in legacy systems using design metrics. The Journal of Systems and Software, 44(3):199-211.
  12. de Guzman, I. G.-R., Polo, M., and Piatini, M. (2005). An integrated environment for reengineering. In Proc. of ICSM'05, pages 165-174.
  13. DiLucca, G. A., Fasolino, A. R., and DeCarlini, U. (2000). Recovering class diagrams from data-intensive legacy systems. In ICSM 2000, pages 52-63.
  14. Dugerdil, P. (2006). A reengineering process based on the unified process. In Proc. of ICSM'06, pages 330-333.
  15. Dugerdil, P. and Jossi, S. (2007). Role-based clustering of software modules. In Proc. of ICSOFT 2007, pages 5-12.
  16. Eisenbarth, T., Koschke, R., and Simon, D. (2003). Locating features in source code. IEEE Trans. Softw. Eng., 29(3):210-224.
  17. Erl, T. (2005). Service-Oriented Architecture (SOA): Concepts, Technology, and Design. Prentice Hall.
  18. Fowler, M. (2003). Patterns of Enterprise Application Architecture. Addison Wensley.
  19. Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995). Design Patterns. Addison-Wesley.
  20. Guo, J. (2002). A systematic method of reusing objects extracted from legacy systems. In Proc. of ECBS 7802, pages 177-184.
  21. Jacobson, I. and Lindstrom, F. (1991). Re-enginnering of old systems to an object-oriented architecture. In OOPSLA 7891, pages 340-350.
  22. Penteado, R., do Prado, A. F., Masiero, P. C., and Braga, R. T. V. (1998). Reengineering of legacy systems based on transformation using the object-oriented paradigm. In Proc. of WCRE'98, page 144.
  23. Periyasamy, K. and Mathew, C. (1996). Mapping a functional specification to an object-oriented specification in software re-engineering. In Proc. of CSC 7896, pages 24-33.
  24. Richardson, C. (2006). POJOs in Action. Manning Publication Co.
  25. Sneed, H. M. (1996). Object-oriented cobol recycling. In Proc. of WCRE 1996, pages 169-178.
  26. Stevenson, C. and Pols, A. (2004). An agile approach to a legacy system. In Proc. of XP 2004, volume 3092 of Lecture Notes in Computer Science, pages 123-129.
  27. Sun-Microsystems (2008). Core j2ee patterns - data access object. corej2eepatterns/Patterns/.
  28. Tilley, S. R. and Smith, D. B. (1996). Towards a framework for program understanding. In Proc. WPC 7896, pages 19-28.
  29. Wu, B., Lawless, D., Bisbal, J., Grimson, J., Wade, V., OSullivan, D., and Richardson, R. (1997). Legacy system migration: A legacy data migration engine. In Proceedings of the 17th International Database Conference (DATASEM 7897), pages 129-138, Brno, Czech Republic.
  30. Wu, L., Sahraoui, H. A., and Valtchev, P. (2005). Coping with legacy system migration complexity. In Proc. of ICECCS 7805, pages 600-609.

Paper Citation

in Harvard Style

Bucci G., Sandrucci V. and Vicario E. (2008). AN INCREMENTAL APPROACH TO SOFTWARE REENGINEERING BASED ON OBJECT-DATA MAPPING . In Proceedings of the Third International Conference on Software and Data Technologies - Volume 2: ICSOFT, ISBN 978-989-8111-52-4, pages 165-173. DOI: 10.5220/0001883601650173

in Bibtex Style

author={Giacomo Bucci and Valeriano Sandrucci and Enrico Vicario},
booktitle={Proceedings of the Third International Conference on Software and Data Technologies - Volume 2: ICSOFT,},

in EndNote Style

JO - Proceedings of the Third International Conference on Software and Data Technologies - Volume 2: ICSOFT,
SN - 978-989-8111-52-4
AU - Bucci G.
AU - Sandrucci V.
AU - Vicario E.
PY - 2008
SP - 165
EP - 173
DO - 10.5220/0001883601650173