An Experiment of Evaluating Software Understandability (original) (raw)

An Experiment of Evaluating Software Understandability using a Probabilistic Model

2003

Software understandability is one of important characteristics of software quality because it can influence cost or reliability at software evolution in reuse or maintenance. But it is difficult to evaluate software understandability because understanding is an internal process of humans. So, we propose "software overhaul" as a method for externalizing process of understanding software systems and propose a probability model for evaluating software understandability based on it. This paper presented the experiment of evaluating software understandability using a probabilistic model.

An Empirical Validation of Understandability Quantification Model

Procedia Technology, 2012

Understandability is one of the key aspects in developing quality software; it largely influences cost or the reliability at software evolution and maintenance. False interpretation leads to ambiguities, misunderstanding and hence the misinterpretations of development process and the related documents, which often results to faulty developments. Despite the fact that understandability is vital and highly significant aspect for software development process, it is poorly managed. In this paper, author highlights the significance of understandability in general and as a factor of software testability. The paper briefly describes the proposed model for understandability quantification. Further, it includes the empirical validation of the model as the author's main contribution.

A Metrics Based Model for Understandability Quantification

Arxiv preprint arXiv:1004.4463, 2010

Abstract— Software developers and maintainers need to read and understand source programs and other software artifacts. The increase in size and complexity of software drastically affects several quality attributes, especially understandability and maintainability. False ...

SOFTWARE UNDERSTANDABILITY MODEL

Software readability models encompasses reading and understanding code in a given context on the abstract level of the language it is written. This localizes the quality into a certain region of understanding, while the actual understanding of a program component depends on user defined types /program code in a system is a hypertext/, the complexity of the idea presented and the complexity of the language tools used. In this paper we define general understandability as a multi-layer model, including all parts of translating an idea from the computer programming component into natural language.

Evolution of understandability in OSS projects

Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings., 2004

Empirical papers on Open Source software should try and formulate reasons for successes as Linux, Apache and some other flagship projects. What we need to understand about this topic is on the process of producing software through cooperation of different efforts. Albeit many success reasons for these projects are inherently due to the application domain that the project develops, architectural and conceptual views of the code have to be considered as key factors when considering community efforts and joint decisions.

REQUIREMENT UNDERSTANDABILITY QUANTIFICATION MODEL OF OBJECT ORIENTED SOFTWARE

Understandability has significant role in development of quality software; it incredibly impacts cost, quality and unwavering quality at the time software development (especially at early stages of development). Wrong interpretation prompts ambiguities, misconception and thus the misinterpretations of further development process and the related records, which frequently results to defective development. Notwithstanding the way that understandability is essential and very critical viewpoint for software development process. Understandability is considered as basic building block for delivering high quality and reliable software. It greatly influences cost, quality and reliability at the time of software evolution. In this paper, author highlights the importance of understandability early at requirement phase in general and as a factor of software testability. The paper quickly portrays the proposed model for understandability quantification of object oriented software [RUM OOS ] by establishing multiple linear regressions. Finally the proposed model has been validated using experimental tryout.

Software quality evaluation through maintenance processes

2010

The software is always required to be developed and maintained a quality to the rapid progresses in industry, technology, economy, and other fields. Thus, software maintainability is the major activity in the software life cycle. This process bypass the cost required to develop new software product. However, software maintenance costs often total twice the original development cost in the lifetime of application software. Therefore, software maintainability is considered as one of the most important quality factor in software quality models. This study introduces a software maintenance process model that emphasizes the impact of the software quality on the maintenance and considers the quality of the modified software.

Automatically Assessing Code Understandability

IEEE Transactions on Software Engineering, 2019

Understanding software is an inherent requirement for many maintenance and evolution tasks. Without a thorough understanding of the code, developers would not be able to fix bugs or add new features timely. Measuring code understandability might be useful to guide developers in writing better code, and could also help in estimating the effort required to modify code components. Unfortunately, there are no metrics designed to assess the understandability of code snippets. In this work, we perform an extensive evaluation of 121 existing and new code-related, documentation-related, and developer-related metrics. We try to (i) correlate each metric with understandability and (ii) build models combining metrics to assess understandability. To do this, we use 444 human evaluations from 63 developers and we got a bold negative result: none of the 121 experimented metrics is able to capture code understandability, not even the ones assumed to assess quality attributes apparently related, such as code readability and complexity. While we observed some improvements combining metrics in models, their effectiveness is still far from making them suitable in practice. Finally, we conducted interviews with five professional developers to understand the factors that influence their ability to understand code snippets, aiming at identifying possible new metrics.

IJERT-COMPARISON AND IMPLEMENTATION OF SOFTWARE MAINTENANCE MODELS

International Journal of Engineering Research and Technology (IJERT), 2014

https://www.ijert.org/comparison-and-implementation-of-software-maintenance-models https://www.ijert.org/research/comparison-and-implementation-of-software-maintenance-models-IJERTV1IS6391.pdf Measurement of the maintainability of the software system is very important as it will help in the better maintenance of the software system. Measurement of the software maintainability early in the development life cycle, especially at the design phase is important, it may help designers to incorporate required enhancement and corrections at design phase for improving maintainability of the final software. Earlier MEMOOD model was developed which finds the maintainability of the class diagrams on the basis of Understandability and Modifiability of software system on the basis of object oriented metrics of class diagrams of software system. This paper has proposed a multivariate linear model "Compound MEMOOD, which estimates the maintainability of class diagrams of software systems in terms of their understandability, modifiability, Scalability and Level of Complexity. The paper further developed three more multivariate models for maintainability, scalability and level of complexity. These three models use design level object-oriented metrics of software systems, to quantify maintainability, Scalability and Level of Complexity of class diagram. The models for Understandability and modifiability are taken from the previous MEMOOD model. Then, we make a comparison of MEMOOD model and Compound MEMOOD model through regression analysis and it is found that Compound MEMOOD Model gives better results with the given dataset. All these models have been validated through appropriate statistical measures.

Bayesian and Fuzzy Approach to Assess and Predict the Maintainability of Software: A Comparative Study

ISRN Software Engineering, 2012

Quality has always been one of the major issues responsible for the success of software. Maintainability is one of the characteristics of software quality. A large number of techniques were developed for the assess and predication of this characteristic. Most of these techniques do not decompose it to an actual assessment level and thus fail to give a detailed account of the impact of specific criteria. These techniques thus constrain their use as the basis for analysis quantitatively. In this paper, we develop a system based on fuzzy inference approach to assess and predict maintainability in a quantitative manner. This system is an enhancement of Bayesian approach which is using activity-based quality model to deal with maintainability. We also compare the proposed fuzzy technique with an existing Bayesian approach to depict the improvement achieved due to the advantageous accuracy of fuzzy over crisp approach.