Development and Application of an Automated Source Code Maintainability Index

Kurt D. Welker, P. Oman, Gerald Atkinson
{"title":"Development and Application of an Automated Source Code Maintainability Index","authors":"Kurt D. Welker, P. Oman, Gerald Atkinson","doi":"10.1002/(SICI)1096-908X(199705)9:3%3C127::AID-SMR149%3E3.0.CO;2-S","DOIUrl":null,"url":null,"abstract":"When software maintenance results in changing the source code, the change frequently occurs in an undisciplined manner that results in source code that is inherently more difficult to maintain. The long-term effect may be thought of as a downward spiral that culminates in virtually ‘unmaintainable’ code where it is more cost effective to just start again. Too often, software personnel and managers, aware that the code is becoming less maintainable, have been unable to estimate with useful accuracy the degree to which maintainability has diminished. The result is that they either continue to waste time and money maintaining code which is effectively unmaintainable, or they opt to live with what seems to be bad code, not touching it for fear of breaking it. To avoid this state of affairs, software developers need to be able to quanitify both the current level of software maintainability and the impact on it of any given change. \n \n \n \nThis paper discusses the application of software metrics as a tool for quantifying code maintainability and, by extension, for making decisions. The first part of the discussion focuses on deriving a minimal set of easily calculated metrics which, when taken together, can produce a single-valued quantification (or index) of code maintainability. Case studies are then presented which serve to illustrate not only the degree to which software can degrade over time, but how this ‘maintainability index’ (MI) can be used to quantify maintainability and aid decision making. Finally, a methodology for making metric assessments readily available to software personnel is presented so that they can now easily integrate maintainability metrics into maintenance (and development) processes. As a result, the downward spiral of code degradation becomes at least recognizable, hopefully less precipitous, and perhaps avoidable entirely. © 1997 by John Wiley & Sons, Ltd.","PeriodicalId":383619,"journal":{"name":"J. Softw. Maintenance Res. Pract.","volume":"59 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1997-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"85","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"J. Softw. Maintenance Res. Pract.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1002/(SICI)1096-908X(199705)9:3%3C127::AID-SMR149%3E3.0.CO;2-S","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 85

Abstract

When software maintenance results in changing the source code, the change frequently occurs in an undisciplined manner that results in source code that is inherently more difficult to maintain. The long-term effect may be thought of as a downward spiral that culminates in virtually ‘unmaintainable’ code where it is more cost effective to just start again. Too often, software personnel and managers, aware that the code is becoming less maintainable, have been unable to estimate with useful accuracy the degree to which maintainability has diminished. The result is that they either continue to waste time and money maintaining code which is effectively unmaintainable, or they opt to live with what seems to be bad code, not touching it for fear of breaking it. To avoid this state of affairs, software developers need to be able to quanitify both the current level of software maintainability and the impact on it of any given change. This paper discusses the application of software metrics as a tool for quantifying code maintainability and, by extension, for making decisions. The first part of the discussion focuses on deriving a minimal set of easily calculated metrics which, when taken together, can produce a single-valued quantification (or index) of code maintainability. Case studies are then presented which serve to illustrate not only the degree to which software can degrade over time, but how this ‘maintainability index’ (MI) can be used to quantify maintainability and aid decision making. Finally, a methodology for making metric assessments readily available to software personnel is presented so that they can now easily integrate maintainability metrics into maintenance (and development) processes. As a result, the downward spiral of code degradation becomes at least recognizable, hopefully less precipitous, and perhaps avoidable entirely. © 1997 by John Wiley & Sons, Ltd.
一个自动源代码可维护性索引的开发与应用
当软件维护导致更改源代码时,更改经常以不规范的方式发生,从而导致源代码本质上更难以维护。长期的影响可能会被认为是一个向下的螺旋,最终导致实际上“不可维护”的代码,在这种情况下,重新开始的成本效益更高。通常情况下,软件人员和管理人员意识到代码的可维护性越来越差,因此无法准确地估计可维护性降低的程度。结果是,他们要么继续浪费时间和金钱来维护那些实际上不可维护的代码,要么选择忍受那些看起来很糟糕的代码,因为害怕破坏它而不去碰它。为了避免这种情况,软件开发人员需要能够量化软件可维护性的当前水平以及任何给定更改对其的影响。本文讨论了软件度量作为量化代码可维护性的工具的应用,并通过扩展,用于制定决策。讨论的第一部分着重于推导一组易于计算的度量,当这些度量组合在一起时,可以产生代码可维护性的单值量化(或索引)。然后给出了案例研究,它不仅说明了软件随时间退化的程度,而且说明了如何使用“可维护性指数”(MI)来量化可维护性并帮助决策制定。最后,本文提出了一种使度量评估对软件人员可用的方法,以便他们现在可以轻松地将可维护性度量集成到维护(和开发)过程中。因此,代码退化的恶性循环至少变得可以识别,希望不那么危险,也许完全可以避免。©1997 by John Wiley & Sons, Ltd。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信