Avoiding architectural degeneration: an evaluation process for software architecture

M. Lindvall, R. Tvedt, P. Costa
{"title":"Avoiding architectural degeneration: an evaluation process for software architecture","authors":"M. Lindvall, R. Tvedt, P. Costa","doi":"10.1109/METRIC.2002.1011327","DOIUrl":null,"url":null,"abstract":"Software systems undergo constant change causing the architecture of the system to degenerate over time. Redirecting development effort toward reversing system degeneration takes extra effort and delays the release of the next version. The value of an improved architecture is clear to technical staff, but it is often difficult to convince upper management that the extra effort is necessary. Improved architecture is intangible and does not translate into visible user features that can be marketed. Due to a lack of representative metrics, technical staff has problems arguing that stopping degeneration is indeed necessary and that the effort will result in an improved architecture that will pay off. We believe that architectural metrics would give technical staff better tools to argue their case. This paper defines and uses a set of architectural metrics and outlines a process for analyzing architecture to support such an argument. The paper reports on a case study from a project where we restructured the architecture of an existing client-server system written in Java while adding new functionality. The modules of the existing version of the system were \"library-oriented\" and had a disorganized communication structure. The new architecture is based on components and utilizes the mediator design pattern. The goal of the study is to evaluate the new architecture from a maintainability perspective.","PeriodicalId":165815,"journal":{"name":"Proceedings Eighth IEEE Symposium on Software Metrics","volume":"145 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2002-06-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"51","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings Eighth IEEE Symposium on Software Metrics","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/METRIC.2002.1011327","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 51

Abstract

Software systems undergo constant change causing the architecture of the system to degenerate over time. Redirecting development effort toward reversing system degeneration takes extra effort and delays the release of the next version. The value of an improved architecture is clear to technical staff, but it is often difficult to convince upper management that the extra effort is necessary. Improved architecture is intangible and does not translate into visible user features that can be marketed. Due to a lack of representative metrics, technical staff has problems arguing that stopping degeneration is indeed necessary and that the effort will result in an improved architecture that will pay off. We believe that architectural metrics would give technical staff better tools to argue their case. This paper defines and uses a set of architectural metrics and outlines a process for analyzing architecture to support such an argument. The paper reports on a case study from a project where we restructured the architecture of an existing client-server system written in Java while adding new functionality. The modules of the existing version of the system were "library-oriented" and had a disorganized communication structure. The new architecture is based on components and utilizes the mediator design pattern. The goal of the study is to evaluate the new architecture from a maintainability perspective.
避免架构退化:软件架构的评估过程
软件系统经历不断的变化,导致系统的架构随着时间的推移而退化。将开发工作转向逆转系统退化需要额外的努力,并且会延迟下一个版本的发布。改进的体系结构的价值对于技术人员来说是清楚的,但是通常很难说服高层管理人员额外的努力是必要的。改进的架构是无形的,不能转化为可见的用户特性,无法进行市场推广。由于缺乏代表性的度量标准,技术人员在争论停止退化确实是必要的,并且努力将导致改进的体系结构得到回报方面存在问题。我们相信,体系结构度量将为技术人员提供更好的工具来论证他们的观点。本文定义并使用了一组体系结构度量,并概述了分析体系结构的过程,以支持这样的论点。本文报告了一个项目的案例研究,在这个项目中,我们重构了一个用Java编写的现有客户机-服务器系统的体系结构,同时添加了新的功能。系统现有版本的模块是“面向库”的,并且具有无组织的通信结构。新的体系结构基于组件并利用中介设计模式。这项研究的目标是从可维护性的角度来评估新的体系结构。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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学术官方微信