Software Evolution and Maintenance Using an Agile and MDD Hybrid Processes

Author(s):  
Elton Figueiredo da Silva ◽  
Ana Patrícia F. Magalhães ◽  
Rita Suzana Pitangueira Maciel
2020 ◽  
Vol 26 (1) ◽  
Author(s):  
Emanuel F. Coutinho ◽  
Carla I. M. Bezerra

Abstract A Software Ecosystem (SECO) refers to a collection of software products with some degree of symbiotic relationship. SOLAR is a Virtual Learning Environment (VLE) that enables the publication of courses and interaction with them among its various users. In this context, SOLAR SECO emerges, where diverse situations of software evolution and maintenance are part of its development process. The aim of this paper is to discuss the dynamic variability of SOLAR educational software ecosystem and software modeling. As an example, dynamic variability aspects of the feature model of SOLAR VLE discussion forum functionality were discussed, one of the most widely used services within SOLAR SECO. As a major conclusion of this work, we identified that the use of the contextual feature diagram allows the study of the dynamic aspects of a system, even more supported by tools to support automatic measurement collection.


2012 ◽  
Vol 11 (03) ◽  
pp. 1250018 ◽  
Author(s):  
Leon A. Wilson ◽  
Maksym Petrenko ◽  
Václav Rajlich

Program comprehension is an integral part of the evolution and maintenance of large software systems. As it is increasingly difficult to comprehend these systems completely, programmers have to rely on a partial and as-needed comprehension. We study partial comprehension and programmer learning with the use of concept maps as a tool for capturing programmer knowledge during concept location, which is one of the tasks of software evolution and maintenance, and it is a prerequisite of a software change. We conduct a user study to measure the performance of programmers using concept maps to assist with locating concepts. The results demonstrate that programmer learning occurs during concept location and that concept maps assisted programmers with capturing programmer learning and successful concept location.


Author(s):  
Randeep Singh ◽  
Amit Bindal ◽  
Ashok Kumar

Code smells are the fragments in the source code that indicates deeper problems in the underlying software design. These code smells can hinder software evolution and maintenance. Out of different code smell types, the God Class (GC) code smell is one of the many important code smells that directly affects the software evolution and maintenance. The GC is commonly defined as a much larger class in systems that either know too much or do too much as compared to other classes in the system. God Classes are generally accidentally created overtime during software evolution because of the incremental addition of functionalities to it. Generally, a GC indicates a bad design choice and it must be detected and mitigated in order to enhance the quality of the underlying software. However, sometimes the presence of a GC is also considered a good design choice, especially in compiler design, interpreter design and parser implementation. This makes the developer’s feedback important for the correct classification of a class as a GC or a normal class. Therefore, this paper proposes a new approach that detects and proposes refactoring opportunities for GC code smell. The proposed approach makes use of different code metrics in combination along with utilizing user feedback as an important aspect while correctly identifying the GC code smell. The proposed approach that considers combined use of code metrics, is based on two newly proposed code metrics in this paper. The first newly proposed metric is a new approach of measuring the connectivity of a given class with other classes in the system (also termed as coupling). The second newly proposed code metric is proposed to measure the extent to which a given classes make use of foreign member variables. Finally, the proposed approach is also empirically evaluated on two standard open-source commonly used software systems. The obtained result indicates that the proposed approach is capable of correctly identifying the GC code smell.


2014 ◽  
Vol 20 (5) ◽  
pp. 1198-1236 ◽  
Author(s):  
Bogdan Dit ◽  
Evan Moritz ◽  
Mario Linares-Vásquez ◽  
Denys Poshyvanyk ◽  
Jane Cleland-Huang

2016 ◽  
Vol 16 (3) ◽  
pp. 70-90 ◽  
Author(s):  
Habib Izadkhah ◽  
Islam Elgedawy ◽  
Ayaz Isazadeh

Abstract Lack of up-to-date software documentation hinders the software evolution and maintenance processes, as simply the outdated software structure and code could be easily misunderstood. One approach to overcoming such problems is using software modularization, in which the software architecture is extracted from the available source code; such that developers can assess the reconstructed architecture against the required changes. Unfortunately, existing software modularization approaches are not accurate, as they ignore polymorphic calls among system modules. Furthermore, they are tightly coupled to the used programming language. To overcome such problems, this paper proposes the E-CDGM approach. E-CDGM decouples the extracted call dependency graph from the programming language by using the proposed intermediate code language (known as mCode). It also takes into consideration the polymorphic calls during the call dependency graph generation. It uses a new evolutionary optimization approach to find the best modularization option; adopting reward and penalty functions. Finally, it uses statistical analysis to build a final consolidated modularization model using different generated modularization solutions. Experimental results show that the proposed E-CDGM approach provides more accurate results when compared against existing well-known modularization approaches.


Sign in / Sign up

Export Citation Format

Share Document