The process of software maintenance: a comparison of object-oriented and third-generation development languages

2007 ◽  
Vol 19 (1) ◽  
pp. 33-47 ◽  
Author(s):  
Michael A. Eierman ◽  
Mark T. Dishaw
Author(s):  
Nisha Ratti ◽  
Parminder Kaur

Software evolution is the essential characteristic of the real world software as the user requirements changes software needs to change otherwise it becomes less useful. In order to be used for longer time period, software needs to evolve. The software evolution can be a result of software maintenance. In this chapter, a study has been conducted on 10 versions of GLE (Graphics Layout Engine) and FGS (Flight Gear Simulator) evolved over the period of eight years. An effort is made to find the applicability of Lehman Laws on different releases of two softwares developed in C++ using Object Oriented metrics. The laws of continuous change, growth and complexity are found applicable according to data collected.


2013 ◽  
Vol 2013 ◽  
pp. 1-11 ◽  
Author(s):  
Kagiso Mguni ◽  
Yirsaw Ayalew

Software maintenance is an important activity in software development. Some development methodologies such as the object-oriented have contributed in improving maintainability of software. However, crosscutting concerns are still challenges that affect the maintainability of OO software. In this paper, we discuss our case study to assess the extent of maintainability improvement that can be achieved by employing aspect-oriented programming. Aspect-oriented programming (AOP) is a relatively new approach that emphasizes dealing with crosscutting concerns. To demonstrate the maintainability improvement, we refactored a COTS-based system known as OpenBravoPOS using AspectJ and compared its maintainability with the original OO version. We used both structural complexity and concern level metrics. Our results show an improvement of maintainability in the AOP version of OpenBravoPOS.


2021 ◽  
pp. 207-209
Author(s):  
Ahmed Altaher

UML (Unfiled Modeling Language), known as the standard method for object-oriented (analysis and design) modeling, includes other languages which enables it to implement a prototype of the structure and behaviors of the product. This paper attempts to explore the observations about UML role on the cost of software maintenance, and hence on the Total Cost of Ownership (TCO) of a software product. It is therefore important to investigate the benefits obtained through modeling..


The article is dedicated to software quality improvement research within the maintenance phase based on post-object-oriented technologies. An important problem of the maintenance phase is surveyed, namely, the crosscutting functionality problem. Mechanisms of post-object-oriented technologies have been reviewed and basic tasks to be resolved have been formulated in order to reach the final goal of the research: defect reduction during the maintenance phase. The post object-oriented technologies utilization framework for software quality improvement based on a collection of 4 heuristic assumptions has been introduced. The conceptual scheme of the framework has been presented. An applied 2-steps procedure for defect reduction assessment based on quantitative crosscutting-functionality and defect metrics has been described. Twelve results of the experiments concerning calculation of the residual defect number have been presented and analyzed.


Software maintenance is one of the most expensive activities in software life cycle. It costs nearly 70% of the total cost of the software. Either to adopt the new requirement or to correct the functionality, software undergoes maintenance. As a consequent of maintenance activities, software undergoes many reforms. Newly added software components may affect the working of existing components and also may introduce faults in existing components. The regression testing tries to reveal the faults that might have been introduced due to these reformations. Running all the prior existing test cases may not be feasible due to constraints like time, cost and resources. Test case prioritization may help in ordered execution of test cases. Running a faulty or fault prone component early in testing process may help in revealing more faults per unit of time. And hence may reduce the testing time. There have been many different criteria for assigning the priority to test cases. But none of the approaches so far have considered the object oriented design metrics for determining the priority of test cases. Object oriented design metrics have been empirically studied for their impact of software maintainability, reliability, testability and quality but usage of these metrics in test case prioritization is still an open area of research. The research reported in this paper evaluates subset of CK metrics. Metrics considered from CK suite include Coupling between objects (CBO), Depth of Inheritance tree (DIT), weighted methods per class (WMC), Number of children (NOC), and Response for a class (RFC). Study also considers four other metrics namely publically inherited methods (PIM), weighted attributes per class (WAC), number of methods inherited (NMI) and number of methods overridden. A model is built based on these metrics for the prediction of software quality and based on the quality measures software modules are classified with the help of Support Vector Machine (SVM) algorithm. The proposed approach is implemented in WEKA tool and analysed on experimental data extracted from open source software. Proposed work would firstly help the tester in identifying the low quality modules and then prioritize the test cases based on quality centric approach. The work also attempts to automate test case prioritization in object oriented testing. The results obtained are encouraging.


2021 ◽  
Vol 12 (3) ◽  
pp. 1-16
Author(s):  
Mokhtaria Bouslama ◽  
Mustapha Kamel Abdi

The cost of software maintenance is always increasing. The companies are often confronted to failures and software errors. The quality of software to use is so required. In this paper, the authors propose a new formal approach for assessing the quality of object-oriented system design according to the quality assessment model. This approach consists in modeling the input software system by an automaton based on object-oriented design metrics and their relationship with the quality attributes. The model exhibits the importance of metrics through their links with the attributes of software quality. In addition, it is very practical and flexible for all changes. It allows the quality estimation and its validation. For the verification of proposed probabilistic model (automaton), they use the model-checking and the prism tool. The model-checking is very interesting for the evaluation and validation of the probabilistic automaton. They use it to approve the software quality of the three experimental projects. The obtained results are very interesting and of great importance.


Sign in / Sign up

Export Citation Format

Share Document