M2K - An Approach for an Object-oriented Model of C Applications
Ignacio Cassol, Gabriela Arévalo · 2015
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.