Nesneye dayalı yazılımlarda hatalı sınıfların öğrenme temelli yöntemle belirlenmesi
2015
0 views
0 downloads
Advisor: Doç. Dr. Feza Buzluca
Abstract (EN)
In today's competitive environment, increasing customer demands have led to changes in the traditional software development methods. In order to clearly determine and fulfill customer requirements, continuous customer interaction with the team is important. Following requests and feedbacks of customers necessitate modifications in software classes. Poorly designed classes are difficult to analyze, modify and test, so that maintenance costs for such classes are very high. Code or design problems in software classes reduce understandability, flexibility and reusability of the system. Performing maintenance activities on defective components such as adding new features, adapting to the changes, finding bugs, and correcting errors, is hard and consumes a lot of time. Unless the design defects are corrected by a refactoring process these error-prone classes will most likely generate new errors after later modifications. Therefore, these classes will have a high error frequency (EF), which is defined as the ratio between the number of errors and modifications. Predicting defective classes before releasing the software is an important issue for the software quality assurance. Early estimate of error-prone classes has two important benefits, firstly it helps testers to focus on faulty modules of software, thus it saves significant proportion of testing time; secondly developers can refactor classes to correct their design defects. Software classes that include structural design defects mostly include one or more of the following properties. They are complex, highly coupled to other classes, their internal cohesion is low or they have an inappropriate position in the inheritance hierarchy. These properties can be revealed using software design and code metrics of the classes. However, it is difficult to work with metrics to create certain rules for detecting defects because of their various types, distributions and different minimum/maximum values. Also, different metrics should be used together to create a model for quality assessment; but it is difficult to determine the roles, weights and thresholds of metrics in creating such a model. The aim of this work is to detect poorly designed classes, in order to have testers focus on them and/or have the developers refactor them. Poorly designed classes typically become error-prone when modified. In this thesis, a learning-based decision tree model for detecting error-prone classes with structural design defects is proposed. In learning-based systems the accuracy of the model strongly depends on the training set. The main novelty in the proposed approach is that the EFs and change counts (ChC) of classes to construct a proper data set is considered for the training of the model. The training set is built that includes design metrics of classes by analyzing numerous releases of real-world software products and considering EFs of classes to mark them as error-prone or non-error-prone. To train the model and evaluate its performance, two long-standing projects are studied, namely Project A and Project B. Several releases of the projects are examined and modifications in classes triggered by changes in customer use case scenarios, new feature implementations and/or bug fixes inherited from previous releases are identified. After this examination, classes with high ChC and error rate are identified and classified as "defective". Using the tags (defective/healthy) of the classes and collecting their design metrics, the data set is constructed to use in training and testing of the proposed model. Empirical experiment results demonstrate that the proposed approach succeeds in finding error-prone classes that need refactoring. The proposed model succeeded in finding frequently changing defective classes with relatively high EFs. The model correctly predicted 80% of the most defective classes with the highest EFs of Project A and 83% of Project B. Exposing these risky classes automatically also decreases the test time and maintenance cost.
Author
Dr. Çağıl Biray
Institution
How to Cite
Çağıl Biray (Master Thesis). Nesneye dayalı yazılımlarda hatalı sınıfların öğrenme temelli yöntemle belirlenmesi, 2015, Istanbul Technical University.
License
Tüm Hakları Saklıdır
This work is shared under the specified license terms.
More theses from Istanbul Technical University
- Investigation Of Stretching Effect With Mixed Finite Element Formulations For Laminated Beams And Plates(2023)
- Classification of anemia using data mining methods: An application(2015)
- Removal and recovery of platinum group metals through anode slimes of moebius electrolysis(2015)
- A study of design approaches to Istanbul's city halls based on space syntax theory(2015)
- A II. German Empire project: From Kaiser Wilhelm Monument to German fountain(2015)
- Uzaktan algılama verilerinin yersel ölçümlerle entegrasyonu ile toprak tuzluluk haritalaması; Aşağı Seyhan Ovası, Adana, Türkiye(2015)
