Experience report on using object-oriented design for software maintenance

2007 ◽  
Vol 19 (3) ◽  
pp. 183-201 ◽  
Author(s):  
Norman F. Schneidewind

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.


Author(s):  
JAVIER GARZÁS ◽  
MARIO PIATTINI

After years of experience in object-oriented design, software engineers have accumulated a great deal of knowledge in the design and construction of object-oriented systems: important contributions to this field including principles, heuristics, lessons learned, bad smells, refactorings, and so on, with the resultant major improvements in software development. However, this large body of knowledge is still not well organized, its terminology is ambiguous, and it is very difficult to make practical use of the contributions made. In this regard, we believe it is important to define an ontology in order to structure and unify design knowledge, since a good understanding of the experience derived from practical work is critical for software engineers. This ontology could be used to improve communication between software engineers, inter-operability among designs, design re-usability, design knowledge searching and specification, software maintenance, knowledge acquisition, etc. In the ontology we incorporate knowledge specific to both domain and technology. Such an organized body of knowledge could also be used for registering and documenting design rationale issues.


Author(s):  
Osman Turan ◽  
Ömer Özgür TANRIÖVER

Software maintenance is necessary for reasons such as changes in user needs, changes in the operating conditions of the system due to changes in the infrastructure, the occurrence of unforeseen errors. The suitability of the software for maintenance operations is a significant influence in reducing the cost. Using only basic object oriented programming concepts do not show that we are writing maintainable code in our applications. Object oriented design principles such SOLID are about reducing dependencies and increasing maintainability. ISO/IEC 9126 is about maintainability but ISO/IEC 9126 is not clear about whether all inputs to measurement should be used together in conjunction or whether they should be used as appropriate or available. Indeed, ISO/IEC 9126 provides no guidance, heuristics, rules of thumb, or any other means to show how to trade off measures, how to weight measures or even how to simply collate them. In this study each sub-characteristic of ISO/IEC maintainability with help of Visual Studio VS code metric tool is assessed. The focus of this assessment is on maintainability and its sub-characteristics like analyzability, testability, changeability and stability. Before doing an analysis, each sub-characteristics of maintainability part of ISO/IEC 9126 standard are mapped to five VS code metrics for measurement of characteristics. This work shows the effect of object oriented design principles SOLID to the maintainability, complexity and flexibility of the code while associating ISO/IEC, VS code metric and SOLID.


1996 ◽  
Vol 35 (01) ◽  
pp. 52-58 ◽  
Author(s):  
A. Mavromatis ◽  
N. Maglaveras ◽  
A. Tsikotis ◽  
G. Pangalos ◽  
V. Ambrosiadou ◽  
...  

AbstractAn object-oriented medical database management system is presented for a typical cardiologic center, facilitating epidemiological trials. Object-oriented analysis and design were used for the system design, offering advantages for the integrity and extendibility of medical information systems. The system was developed using object-oriented design and programming methodology, the C++ language and the Borland Paradox Relational Data Base Management System on an MS-Windows NT environment. Particular attention was paid to system compatibility, portability, the ease of use, and the suitable design of the patient record so as to support the decisions of medical personnel in cardiovascular centers. The system was designed to accept complex, heterogeneous, distributed data in various formats and from different kinds of examinations such as Holter, Doppler and electrocardiography.


1998 ◽  
Vol XVIII (2) ◽  
pp. 89-104 ◽  
Author(s):  
John A. Reisner ◽  
Steven A. Demurjian

Proceedings ◽  
2021 ◽  
Vol 74 (1) ◽  
pp. 13
Author(s):  
Hatice Koç ◽  
Ali Mert Erdoğan ◽  
Yousef Barjakly ◽  
Serhat Peker

Software engineering is a discipline utilizing Unified Modelling Language (UML) diagrams, which are accepted as a standard to depict object-oriented design models. UML diagrams make it easier to identify the requirements and scopes of systems and applications by providing visual models. In this manner, this study aims to systematically review the literature on UML diagram utilization in software engineering research. A comprehensive review was conducted over the last two decades, spanning from 2000 to 2019. Among several papers, 128 were selected and examined. The main findings showed that UML diagrams were mostly used for the purpose of design and modeling, and class diagrams were the most commonly used ones.


Sign in / Sign up

Export Citation Format

Share Document