Master'sOpen Access

Measuring the maintainability characteristic of object-oriented softwares

Is this your thesis?

This record came from a bulk archive import. If it’s yours, link it to your profile.

2018
0 views
0 downloads

Abstract (EN)

Because of the increasing use of software projects and the need to constantly change, the concept of quality in software has become important. Software quality needs to be evaluated for each of the analysis, design, development and testing processes. Today, constantly changing demands, technological developments and elimination of errors in software for software projects cause high cost and time and resources cost for companies. In order to meet these requirements, companies aim to divide the work to be done through different project management methodologies continuously to inform the customer about the project and reduce the cost as easy adapting to changing customer requests. It is expected that the software systems could be developed, modified, extended, and corrected in a short time without a degradation in its performance. Therefore, many researchers study on models for measuring the maintainability characteristic of the software product quality. The objective is to help developers in detecting modules that are not properly designed and need refactoring to decrease maintenance costs. For this reason, quality measurement methodologies are gaining importance in the software world in order to reduce the maintenance cost of software that needs to be constantly updated. The internal and external characteristics of the ISO 25010 standard are used by software developers and project managers to ensure that they have knowledge of the quality of the project. Usage quality criteria are used to define where customers and users can expect the project-related expectations. The characteristics within the scope of the standard include abstract meanings. In order to be able to interpret the quality expectations of both users and developers, the characteristics have to be expressed numerically. For this reason, various quality measurement models are created considering the quality standards. During the creation of quality models, the most suitable characteristics are selected for the content of the software. Subsequently, the required numerical values for measuring the characteristics are collected. The quality models created are of great importance in terms of the rate at which the expectations of technical persons, customers and users involved in the software development process can be met. Software maintainability is defined as the necessary effort for addition of new features to the software system and elimination of defects. Measuring software maintainability is of vital importance for improving software product quality. Using a software quality model in the development life cycle, the quality of the system can be continuously evaluated and improved to reduce the maintenance cost. According to ISO/IEC 25010 Software Quality Models Standard, the maintainability characteristic of software product quality is composed of five sub characteristics; modularity, modifiability, reusability, analyzability and testability In our proposed model, we consider reusability and modifiability characteristics, because they are main factors that affect the maintenance cost. Reusability is defined as the degree to which a software component can be used in more than one system or in implementing other software components. Modifiability is expressed as the degree to which a software system can be efficiently modified without introducing defects or degrading existing product quality [1]. This paper proposes a quality measurement model to evaluate the maintainability of software classes in terms of their reusability and modifiability characteristics in large-scale software systems. The model is based on software properties that are strongly related to reusability and modifiability, such as size, complexity, cohesion, coupling, and inheritance. Software developers need to know which classes can be reused at different stages of the systems or in other projects. Similarly, they need to know the cost of modifying classes for adding new features, refactoring or bug fixing. In our hierarchical model, to measure reusability and modifiability we use properties of object-oriented systems such as size, cohesion, coupling, complexity, and inheritance. We assigned software code metrics for each property. The metrics can be easily from programs obtained and using their values the maintainability of a system can be measured and enhanced. In our study, the proposed model first categorizes metric values of software classes in the test system as low, medium and high. This categorization is done based on the average and median values for these metrics that are obtained from reference software systems. Then, the proposed measurement method uses the levels of the metrics to calculate the reusability and modifiability scores of each class in the system. The scores fall in one of the five categories; very low, low, medium, high, and very high. The developers of the software system can examine classes with low and very low scores and then refactor them if necessary. This continuous evaluation and refactoring during the development can increase the quality of the system and reduce maintenance costs. During project-based evaluation, the project was interpreted according to sub-characteristics. At this stage it is aimed at project stakeholders to have an idea of the proportion of the project that meets the quality criteria. Customers can take advantage of the category values resulting from the model to evaluate the projects they want to buy. For example, a customer who wants to reuse a software in different projects may have an idea about the project by looking at the reusability category values of the project. Customers who want to purchase software projects that require frequent updates in a similar way can evaluate the project based on the category values of modifiability. Software project managers and developers can make assumptions by looking at the model's results during the calculation of the project's maintenance period. During class-based evaluation, the maintainability characteristic of each class of the project have been examined in terms of reusability and modifiability. It is intended that evaluation of the reusability characteristic leads to software developers on the reusability of all classes in software projects. It is also aimed to evaluate the modifiability characteristic and to guide the characteristics that should be improved during the change of a software class. We applied our model on two large-scale industrial mobile applications and discussed the results with the development teams of the systems. We saw that our approach could reasonably grade classes on their reusability and modifiability characteristics. Consequently, our model shows that object-oriented metrics can effectively be used as predictors to evaluate maintainability of software systems. Our model results provide different advantages in the software development phase. It generally helps to determine software class quality in terms of their maintainability level. Software developers can focus on software classes that have low quality. Moreover, the model gives information about reasons for their low or high quality levels, such as cohesion, coupling etc. Hence, developers can easily refactor classes to increase their quality level and significantly reduce the maintenance cost of the system. The most critical and difficult part of the software development phases is undoubtedly maintenance phase. The fact that software developers are adequately knowledgeable about quality software, develop their software in accordance with certain quality criteria as well as the maintenance process to be properly planned will be very useful in terms of the correct use of quality models. Because it is not possible to correctly interpret quality models for project stakeholders who have without adequate knowledge and experience in a maintenance process. In the future, it is planned to examine the modularity, analyticity and testability sub-characteristics of ISO / IEC 25010: 2011 for evaluating the ease of maintenance of the software. Thus, it is aimed to evaluate the software from different aspects for test-driven development, which is becoming popular nowadays.

Author

Özlem Akalın

How to Cite

Özlem Akalın (Master Thesis). Measuring the maintainability characteristic of object-oriented softwares, 2018, İstanbul Technical University.

License

Tüm Hakları Saklıdır

This work is shared under the specified license terms.

More theses from İstanbul Technical University