HAPPY INDIA 2030 | J1/15, Kheria Building , Sector V, Bidhanagar, Kolkata, West Bengal, 4th Floor | [email protected]

2 subscriber(s)


H
24/05/2021 Hardik Development Views 830 Comments 2 Analytics English DMCA Add Favorite Copy Link
Metric-centered and technology-independent architectural views for software comprehension
The maintenance of applications is a crucial activity in the software industry. The high cost of this process is due to the effort invested in software comprehension since, in most 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 that 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 need 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.

In cooperation with industry partners we have carried out projects to tackle different 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 monolithic 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). Literature (Anquetil and Laval 2011; Mancoridis et al. 1999) and our experience in these projects have shown us that, besides the related complexity with the size of the applications, the understanding of the programs is difficult for the following reasons: i) lack of documentation about the design; ii) lack of knowledge about architectural decisions taken in the original design because of developers’ turnover; and iii) the degradation of previously made decisions, including additions and modifications done over time.

For every project, we reviewed tools that allow building abstractions of higher level, i.e., architectural views. For example, 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. Based on the experience on these projects, and taking inspiration 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) (referred to as Architectural model), and generate a specification of a graphic editor (which, for purposes of the evaluation, is SiriusFootnote1 (Mendivelso et al. 2017)). Therefore, 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.

The contributions of our work are i) A view generation process extensible to many source application technologies and views specification frameworks. Our approach can be applicable to many technologies by plugging new parsers into the workflow. Our proposal is view specification agnostic because the user specifies the views at the architecture level by using annotations. The annotations are translated to the Technology Independent Views Specification model (TIVS) first, and then to the particular view specification framework (e.g., Sirius). ii) Clustering algorithms that group structural elements of the source applications, at an early step of the process. Thus, leveraging the last step which is views render. iii) Annotations that help users not only to specify the structural elements to be displayed, but also to represent particular software metrics via the element's style; that is, color, size, and labels. For example, if there exists a relationship between two modules A and B, which is thicker than the relationship between B and C, then it means that the coupling A-B is higher compared with that of B-C. Annotations refer to measures present in a Metrics model, which are calculated by a Metrics transformation.

Hardik,
Google Official, 
GSP-1258
                             

Related articles

 WhatsApp no. else use your mail id to get the otp...!    Please tick to get otp in your mail id...!
 

T 24.05.2021 Team mutebreak

Try having one image to your article..helps in more visible when you share to your social media accounts like this : https://www.mutebreak.com/reporternewsdetail2.aspx?SL_no=1420
H 24.05.2021 Hardik

My views are not increasing!




© mutebreak.com | All Rights Reserved