Results 1 - 10
of
37
Demystifying Maintainability
- IN PROC. 4TH WORKSHOP ON SOFTWARE QUALITY (4-WOSQ
, 2006
"... Due to its economic impact "maintainability" is broadly accepted as an important quality attribute of software systems. But in contrast to attributes such as performance and correctness, there is no common understanding of what maintainability actually is, how it can be achieved, measured, or assess ..."
Abstract
-
Cited by 11 (5 self)
- Add to MetaCart
Due to its economic impact "maintainability" is broadly accepted as an important quality attribute of software systems. But in contrast to attributes such as performance and correctness, there is no common understanding of what maintainability actually is, how it can be achieved, measured, or assessed. In fact, every software organization of significant size seems to have its own definition of maintainability. We address this problem by defining an unique two-dimensional quality model that associates maintenance activities with system properties including the capabilities of the organization. The separation of activities and properties facilitates the identification of sound quality criteria and allows to reason about their interdependencies. The resulting quality controlling process enforces these criteria through toolsupported measurements as well as manual inspections. We report on our experiences with the incremental development of the quality model and its application to large scale commercial software projects. Among the positive effects are a slowdown of decay and a significantly increased awareness for long-term quality aspects.
Evolution Metrics
, 2001
"... Since the famous statement "What is not measurable make measurable " of Galileo Galilei (1564 -- 1642) it has been a major goal in science to quantify observations as a way to understand and control the underlying causes. With the growing awareness that evolution is a key aspect of software, an incr ..."
Abstract
-
Cited by 8 (1 self)
- Add to MetaCart
Since the famous statement "What is not measurable make measurable " of Galileo Galilei (1564 -- 1642) it has been a major goal in science to quantify observations as a way to understand and control the underlying causes. With the growing awareness that evolution is a key aspect of software, an increasing number of computer scientists is investigating how metrics can be applied to evolving software artifacts. This paper provides a classification of the various approaches that use metrics to understand and control the software evolution process, gives concrete examples for each of the approaches, and identifies topics that require further research. As such, we expect that this paper will stimulate this emerging research area.
An activity-based quality model for maintainability
- IN PROC. 23RD INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE (ICSM ’07). IEEE COMPUTER
, 2007
"... Maintainability is a key quality attribute of successful software systems. However, its management in practice is still problematic. Currently, there is no comprehensive basis for assessing and improving the maintainability of software systems. Quality models have been proposed to solve this problem ..."
Abstract
-
Cited by 8 (8 self)
- Add to MetaCart
Maintainability is a key quality attribute of successful software systems. However, its management in practice is still problematic. Currently, there is no comprehensive basis for assessing and improving the maintainability of software systems. Quality models have been proposed to solve this problem. Nevertheless, existing approaches do not explicitly take into account the maintenance activities, that largely determine the software maintenance effort. This paper proposes a 2-dimensional model of maintainability that explicitly associates system properties with the activities carried out during maintenance. The separation of activities and properties facilitates the identification of sound quality criteria and allows to reason about their interdependencies. This transforms the quality model into a structured and comprehensive quality knowledge base that is usable in industrial project environments. For example, review guidelines can be generated from it. The model is based on an explicit quality metamodel that supports its systematic construction and fosters preciseness as well as completeness. An industrial case study demonstrates the applicability of the model for the evaluation of the maintainability of Matlab Simulink models that are frequently used in modelbased development of embedded systems.
Dealing with Change: An Approach Using Non-Functional Requirements
- Requirements Engineering Journal
, 1997
"... Non-functional requirements (or Quality Requirements, NFRs) such as confidentiality, performance and timeliness are often crucial to a software system. Concerns for such NFRs are often the impetus for change. To systematically support system evolution, this paper adapts the "NFR-Framework" which tre ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
Non-functional requirements (or Quality Requirements, NFRs) such as confidentiality, performance and timeliness are often crucial to a software system. Concerns for such NFRs are often the impetus for change. To systematically support system evolution, this paper adapts the "NFR-Framework" which treats NFRs as goals to be achieved during development. Throughout the process, consideration of design alternatives, analysis of tradeoffs and rationalisation of design decisions are all carried out in relation to the stated goals, and captured in historical records. We show how such historical records of treating NFRs as goals also systematically support system evolution. This approach is illustrated by a study of changes in loan policies at Barclays Bank. The study considered changes in NFRs, and associated changes in priorities, workload and functionality. The study's historical records helped quickly determine the impact of changes. We also present guidelines for consistently managing hist...
A case study in assessing the maintainability of a large, software-intensive system
- in Proceedings of the International Symposium on Software Engineering of Computer Based Systems, IEEE Computer Society
, 1995
"... Abstract: Maintenance of a computer-based system accounts for a large proportion of the total system cost. However, no well-established techniques exist for assessing the maintainability of such a system. This paper presents a case study in assessing the maintainability of a large, software intensiv ..."
Abstract
-
Cited by 7 (3 self)
- Add to MetaCart
Abstract: Maintenance of a computer-based system accounts for a large proportion of the total system cost. However, no well-established techniques exist for assessing the maintainability of such a system. This paper presents a case study in assessing the maintainability of a large, software intensive system. The techniques we used are described, and their strengths and weaknesses discussed. 1
Taxonomy of Evolution and Dependability
- In Proceedings of the Second International Workshop on Unanticipated Software Evolution, USE 2003
, 2003
"... Evolution is one of the major issue a# e, ing syst e de pe ndability as we ase ngine, g activit ie ande nvironme nts. The most commonunde rstanding conside rse volution as aphe nome non that ne e ds to be avoide d. By contrast this pape r take into accounte volution as a ne, fe ure of computebase d ..."
Abstract
-
Cited by 7 (4 self)
- Add to MetaCart
Evolution is one of the major issue a# e, ing syst e de pe ndability as we ase ngine, g activit ie ande nvironme nts. The most commonunde rstanding conside rse volution as aphe nome non that ne e ds to be avoide d. By contrast this pape r take into accounte volution as a ne, fe ure of computebase d syste ms. This pape rre vie ws a taxonomy ofe volution ide ntifying a conce ptual frame work to analyse e volutionary phe nome na of compute base syst e s as we as mode ofe volutions and thelimits.The taxonomy ofe volution points out di#e, t d e e dability asp e, s of compute base syste ms. In conclusion,this pape r provide s a conce ptual frame work to analyse e volution and its influe nce on the d e e dability of compute base syste, 1
Describing the Impact of Refactoring on Internal Program Quality
, 2003
"... The technique of refactoring -- restructuring the source-code of an object-oriented program without changing its external behavior -- has been embraced by many object-oriented software developers as a way to accommodate changing requirements. The overall goal of refactoring is to improve the maintai ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
The technique of refactoring -- restructuring the source-code of an object-oriented program without changing its external behavior -- has been embraced by many object-oriented software developers as a way to accommodate changing requirements. The overall goal of refactoring is to improve the maintainability of software. Unfortunately, it is unclear how specific quality factors are affected. Therefore, this paper proposes a formalism to describe the impact of a representative number of refactorings on an AST representation of the source code, extended with cross-references. We elicitate how internal program quality metrics can be formally defined on top of this program structure representation, and demonstrate how to project the impact of refactorings on these internal program quality metric values in the form of potential drifts or improvements.
Assessing the maintainability benefits of design restructuring using dependency analysis
- In METRICS ’03: Proceedings of the 9th International Symposium on Software Metrics
, 2003
"... Software developers and project managers often have to assess the quality of software design. A commonly adopted hypothesis is that a good design should cost less to maintain than a poor design. In this paper, we propose a model for quantifying the quality of a design from a maintainability perspect ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
Software developers and project managers often have to assess the quality of software design. A commonly adopted hypothesis is that a good design should cost less to maintain than a poor design. In this paper, we propose a model for quantifying the quality of a design from a maintainability perspective. Based on this model, we propose a novel strategy for predicting the “Return on Investment ” (ROI) for possible design restructurings using procedure-level dependency analysis. We demonstrate this approach with two exploratory Java case studies. Our results show that common low-level source code transformations change the system dependency structure in a beneficial way, allowing recovery of the initial refactoring investment over a number of maintenance activities. 1.
Observational Models of Requirements Evolution
, 2004
"... Requirements Evolution is one of the main issues that affect development activities as well as system features (e.g., system dependability). Although researchers and practitioners recognise the importance of requirements evolution, research results and experience are still patchy. This points out a ..."
Abstract
-
Cited by 5 (4 self)
- Add to MetaCart
Requirements Evolution is one of the main issues that affect development activities as well as system features (e.g., system dependability). Although researchers and practitioners recognise the importance of requirements evolution, research results and experience are still patchy. This points out a lack of methodologies that address requirements evolution. This thesis investigates the current understanding of requirements evolution and explores new directions in requirements evolution research. The empirical analysis of industrial case studies highlights software requirements evolution as an important issue. Unfortunately, traditional requirements engineering methodologies provide limited support to capture requirements evolution. Heterogeneous engineering provides a comprehensive account of system requirements. Heterogeneous engineering stresses a holistic viewpoint that allows us to understand the underlying mechanisms of evolution of socio-technical systems. Requirements, as mappings between socio-technical solutions and problems, represent an account of the history of socio-technical issues arising and being solved within industrial settings. The formal extension of a heterogeneous account of requirements provides a framework to model and capture requirements evolution. The application of the proposed framework provides further evidence that it is possible to capture and model evolutionary information about requirements. The discussion of scenarios of use stresses practical necessities for methodologies addressing requirements evolution. Finally, the identification of a broad spectrum of evolutions in socio-technical systems points out strong contingencies between system evolution and dependability. This thesis argues that the better our understanding of socio-techn...
Reading Beside the Lines: Indentation as a Proxy for Complexity Metrics
"... Maintainers face the daunting task of wading through a collection of both new and old revisions, trying to ferret out revisions which warrant personal inspection. One can rank revisions by size/lines of code (LOC), but often, due to the distribution of the size of changes, revisions will be of simil ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
Maintainers face the daunting task of wading through a collection of both new and old revisions, trying to ferret out revisions which warrant personal inspection. One can rank revisions by size/lines of code (LOC), but often, due to the distribution of the size of changes, revisions will be of similar size. If we can’t rank revisions by LOC perhaps we can rank by Halstead’s and McCabe’s complexity metrics? However, these metrics are problematic when applied to code fragments (revisions) written in multiple languages: special parsers are required which may not support the language or dialect used; analysis tools may not understand code fragments. We propose using the statistical moments of indentation as a lightweight, language independent, revision/diff friendly metric which actually proxies classical complexity metrics. We have extensively evaluated our approach against the entire CVS histories of the 278 of the most popular and most active SourceForge projects. We found that our results are linearly correlated and rankcorrelated with traditional measures of complexity, suggesting that measuring indentation is a cheap and accurate proxy for code complexity of revisions. Thus ranking revisions by the standard deviation and summation of indentation will be very similar to ranking revisions by complexity. 1

