Authors:
Ignacio Cassol
1
and
Gabriela Arévalo
2
Affiliations:
1
Universidad Austral, Argentina
;
2
DCyT (UNQ) and CAETI (UAI), Argentina
Keyword(s):
Reverse Engineering, Legacy Software, Procedural Language, Object-oriented Paradigm, Reengineering, Refactoring, Design Recovery.
Related
Ontology
Subjects/Areas/Topics:
Service-Oriented Software Engineering and Management
;
Software and Systems Development Methodologies
;
Software Engineering
;
Software Process Improvement
Abstract:
When analyzing legacy code, generating a high-level model of an application helps the developers understand
how the application was structured and how the dependencies relate the different software entities. Based on
useful properties that the object-oriented paradigm (and their supporting analysis tools) provide, such as UML
models, we propose M2K as a methodology (supported by our own tool) that generates a high-level model
from legacy C code and proposes differents refactorings. To understand how procedural-based applications
were implemented is not a new problem in software reengineering, however our contribution is based on
building automatically an object-oriented model and help the experts to define manually different refactorings
that let the developer to improve the application. Besides a methodology and the supporting tool, we provide
a summary of thirteen case studies based on small-scaled real projects implemented in C and we showed how
the results validate our proposal.