Abstract

The maintenance of applications is a crucial activity in the software industry. The high cost of this process is due to the effort invested on software comprehension since, in most of cases, there is no up-to-date abstraction or documentation to ease this task but the source code. The goal of many commercial and academic tools is to build software architectural views from the code. The main disadvantages of such tools are: i) they are dependent on the language/technology on top of which the application is built; and ii) they offer pre-defined views that are too difficult to adapt to meet particular software comprehension needs. In this paper, we present a Technology-independent approach which is flexible enough to allow developers to define metric-centered architectural views by using annotations. These views display in a single canvas architectural elements whose look and feel maps software metrics. Our work results from joint projects with industry partners with software modernization needs in different technologies: Oracle Forms, Java EE, and Ruby on Rails. We present how our proposal was applied in these projects and compare the results with those of the previously followed process.

Highlights

  • According to (Minelli et al 2014), the task of understanding a program corresponds to more than 50% of all the maintenance activity

  • In cooperation with industry partners we have carried out projects to tackle dif- ferent modernization challenges: 1) Migration from Oracle Forms to Java and .Net (Garcés et al 2015; Wikipedia 2016; Garcés et al 2018); 2) Restructuring of Java Enterprise Edition (JEE) applications from mono- lithic architectures to microservices (Escobar et al 2016); and 3) Maintenance of Ruby on Rails (RoR) applications developed by Agile practitioners (García and Garcés 2017)

  • Based on the experience on these projects, and taking inspi- ration from the general process defined by (Tilley 2009), we present an approach based on Model-Driven Reverse Engineering (MDRE) (Brunelière et al 2014; Rugaber and Stirewalt 2004) that allows us to annotate a Platform Independent Metamodel (PIM), and generate a specification of a graphic editor (which, for purposes of the evaluation, is Sirius1 (Mendivelso et al 2017))

Read more

Summary

Introduction

According to (Minelli et al 2014), the task of understanding a program corresponds to more than 50% of all the maintenance activity. We reviewed tools that allow building abstractions of higher level, i.e., architectural views. We found tools that obtain commodity views such as UML class (or package) diagrams from Java source code. We found that they are completely dependent on the language/technology, and that the views that they produce are predefined and do not necessarily correspond to particular understanding needs. One can see in the editor different perspectives of the application according to the views defined in the specification; e.g., level of coupling between functional modules

Objectives
Results
Discussion
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call