A. Andrews, M. C. Ohlsson, C. Wohlin
{"title":"Deriving fault architectures from defect history","authors":"A. Andrews, M. C. Ohlsson, C. Wohlin","doi":"10.1002/1096-908X(200009/10)12:5%3C287::AID-SMR214%3E3.0.CO;2-I","DOIUrl":null,"url":null,"abstract":"As software systems evolve over a series of releases, it becomes important to know which components are stable compared to components that show repeated need for corrective maintenance. To track these across multiple releases, we adapt a reverse architecting technique to defect reports of a series of releases. Fault relationships among system components are identified based on whether they are involved in the same defect report, and for how many defect reports this occurs. There are degrees of fault-coupling between components depending on how often these components are involved in a defect fix. After these fault-coupling relationships between components are extracted, they are abstracted to the subsystem level. We also identify a measure for fault cohesion (i.e. fault-proneness of components locally.) The resulting fault architecture figures show for each release what its most fault-prone relationships are. Comparing across releases makes it possible to see whether some relationships between components are repeatedly fault-prone, indicating an underlying systemic architecture problem. We illustrate our technique on a large commercial system consisting of over 800 KLOC of C, C++, and microcode. Copyright © 2000 John Wiley & Sons, Ltd.","PeriodicalId":383619,"journal":{"name":"J. Softw. Maintenance Res. Pract.","volume":"391 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2000-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"15","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"J. Softw. Maintenance Res. Pract.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1002/1096-908X(200009/10)12:5%3C287::AID-SMR214%3E3.0.CO;2-I","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 15
从缺陷历史中得到故障架构
随着软件系统在一系列版本中不断发展,了解哪些组件是稳定的,哪些组件需要反复进行纠正性维护,这一点变得非常重要。为了跨多个版本跟踪这些缺陷,我们对一系列版本的缺陷报告采用了反向架构技术。系统组件之间的故障关系是基于它们是否涉及到相同的缺陷报告,以及发生了多少缺陷报告来确定的。组件之间存在不同程度的错误耦合,这取决于这些组件参与缺陷修复的频率。在提取组件之间的这些故障耦合关系之后,将它们抽象到子系统级别。我们还确定了故障内聚(即局部组件的故障倾向)的度量。生成的故障体系结构图显示了每个版本中最容易出错的关系。跨版本的比较使得查看组件之间的某些关系是否反复容易出错成为可能,这表明存在潜在的系统架构问题。我们在一个由超过800 KLOC的C、c++和微码组成的大型商业系统上演示了我们的技术。版权所有©2000约翰威利父子有限公司
本文章由计算机程序翻译,如有差异,请以英文原文为准。