software evolution and maintenance
Recently Published Documents


TOTAL DOCUMENTS

14
(FIVE YEARS 4)

H-INDEX

4
(FIVE YEARS 0)

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.


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.


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.


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

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):  
Alexandru C. Telea

Tool support for program understanding becomes increasingly important in the software evolution cycle, and it has become an integral part of managing systems evolution and maintenance. Using interactive visual tools for getting insight into large evolving legacy information systems has gained popularity. Although several such tools exist, few of them have the flexibility and retargetability needed for easy deployment outside the contexts they were initially built for. The lack of flexibility and limitations for customizability is a management as well as a technical problem in software evolution and maintenance. This chapter discusses the requirements of an open architecture for software visualization tools, implementation details of such an architecture, and examples using some specific software system analysis cases. The focus is primarily on reverse engineering, although the proposed tool architecture is equally applicable to forward engineering activities. This material serves the software architects and system managers as well as the tool designers.


Sign in / Sign up

Export Citation Format

Share Document