Master'sOpen Access

A learning-based measurement method for design quality of object oriented software systems

2015
0 views
0 downloads
Advisor: Doç. Dr. Feza Buzluca

Abstract (EN)

Since computer software has earned a more prominent place in our lives day by day, it has become increasingly important to develop quality software, and correspondingly, to measure software quality. Even low-scale software cannot be developed by a single person, but rather by a software team. This fact complicates the design, development and management of the software systems. Software measurement studies are complemented by software engineering concepts, both of which aim to encourage the increase in software development efforts and quality improvement. There has been great interest in the measurement of software development processes in the last two decades; however, dealing with the measurement of software products also has equal importance. In software projects, it is a must to evaluate the concept of quality starting from the beginning of the project. Additionally, software quality measurement should be conducted according to the quality criteria, which are set at the beginning of the project. In this work, we aimed to set the applicable criteria for the project based on the quality model ISO/IEC 25010:2011[28] at the beginning of the project, to monitor changes in quality criteria as of the start of the project by specifying relevant metrics and to present a product of measurable quality to the customer. One of the basic problems in software sector is changing customer requirements. As a solution, agile software development methods have emerged. Today, software companies use agile software development methodologies such as Scrum, Unified Process and XP. By using these methodologies, it is aimed to divide all product requirements, to receive feedback from customers before completing the product and to respond to changing requirements through customer feedback or to minimize such changes. Even at the end of a recursive process due to inconveniences such as customers' inability to explain exactly what they want, and software specialist's lack of knowledge/expertise in his field, requirement changes are requested. Therefore, it is crucial to develop software that is easy to maintain to reduce employee and time costs in software companies. The purpose of this work is to determine how much effort will be required to detect the relevant parts needs editing in software due to lack of diagnosis and to perform necessary edition and testing. In order to do so, as the equivalent of these steps in ISO/IEC 25010:2011[28] quality model, maintainability is taken as the basis of this work. In this model, Analyzability, Reusability, Testability and Modifiability are selected from the sub criteria of maintainability in ISO/IEC 25010:2011[28] quality model. Monitoring how Analyzability, Reusability, Testability and Modifiability change in software is important for project coordinators to track the progress of the project and for developers to predict probable problems in advance. Within this scope, the quality of software classes is evaluated by using metrics and statistical analyses relating to software quality measurement. As the result of these evaluations, metric sets - corresponding to the quality criteria - are created. Apart from those concluded as the result of software statistical analyses, metrics including field knowledge and expertise of the project team members are also added while creating metric sets. Additionally, the number of errors occurring in each version and time spent to fix these errors are also included in metric sets. Following general analysis of the program, it was studied whether or not the Decision Tree method, which is one of the machine learning methods, would be compatible with quality properties (Maintainability, Flexibility and Reusability) specified for future versions. This dataset is trained with decision tree and Naive Bayes methods. By means of this training model, it is shown that changes in maintainability can be predicted by considering the sub quality criteria in following versions. In the decision tree learning, a tree structure is created to reflect class labels with tree leaves, and processes on properties with branches going to such leaves and coming out of the beginning. 4In our study we determined 2 criteria to classify quality properties (Maintainability, Reusability and Flexibility). Quality criteria; Good, Bad (Needs refactoring) According to the criteria specified, software developers were asked to define one of the classification criteria specified to individual quality properties of different versions of each class. This dataset is trained with decision tree and Naive Bayes methods. By means of this training model, it is shown that changes in maintainability can be predicted by considering the sub quality criteria in following versions. Basic concepts used in evaluation of success of the model are error rate, precision, recall and F-measure. Success of the model is related to quantity of number of examples assigned to correct class and number of examples assigned to wrong class. Success information of results obtained from the test can be reflected with a complexity matrix. In complexity matrix, lines reflect actual numbers of examples in test set while columns reflect estimation of the model. As the result of this work, we obtained successful results in predicting how the sub criteria of project maintainability may change in following versions by means of using class information pertaining to the previous versions of the project. The results are proved to be successful after being evaluated by software team and managers. The study carried out has enabled to determine that quality properties to be specified in projects by using data mining techniques can be predicted in future versions and such predictions match the actual world. It is targeted to produce higher quality products by addressing to quality models specified in the project at development stage of the project. In the forthcoming phases, it is being planned to develop analysis method by using different data mining and statistical methods. The conclusion of the study reveals that, estimates constructed on the model for the project studied are consistent with the results in the real world. During the flow of the study, it is intended to develop a computer vs aided software tool capable of automatically analyzing by means of different machine learning techniques, and scoring the quality attributes defined for the project. Hence, it is proposed to ensure that both the project coordinators can readily have inhand a full picture of the project, and also that the customer can track the current progress of the software.

Author

Dr. Nurdan Canbaz

How to Cite

Nurdan Canbaz (Master Thesis). A learning-based measurement method for design quality of object oriented software systems, 2015, Istanbul Technical University.

Keywords

License

Tüm Hakları Saklıdır

This work is shared under the specified license terms.

More theses from Istanbul Technical University