A Design Structure Matrix Approach for Measuring Co-change-Modularity of Software Products

R. Benkoczi, D. Gaur, S. Hossain, M. A. Khan
{"title":"A Design Structure Matrix Approach for Measuring Co-change-Modularity of Software Products","authors":"R. Benkoczi, D. Gaur, S. Hossain, M. A. Khan","doi":"10.1145/3196398.3196409","DOIUrl":null,"url":null,"abstract":"Several authors have quantified the modularity of software systems in terms of coupling and cohesion metrics. Most of these approaches focus on functional and procedural dependencies in the system. Although highly relevant at the design phase, these static dependencies alone do not account for how a software product evolves over time. Instead, this is also dictated by logical and hidden dependencies between system files. To a large extent, the co-change (co-commit) relation captures these different types of dependencies. In this paper, we define two measures of co-change-modularity of a software product based on a weighted design structure matrix (DSM). The first metric, called the weighted propagation cost, uses matrix exponential to measure how changes to one system file potentially affect the whole product. The second metric, called the weighted clustering cost, uses the output of the first metric to measure the partitionability of the system based on the co-change relation. In addition, we provide a visual representation of how the co-change structure of a system evolves over time. We discuss the theoretical foundation of our work and highlight its advantages over existing methodologies. We apply our approach to GNU Octave and show the findings to be consistent with the available literature on the evolution of Octave. Our analysis is extensible and applicable to a range of scenarios including open source systems.","PeriodicalId":6639,"journal":{"name":"2018 IEEE/ACM 15th International Conference on Mining Software Repositories (MSR)","volume":"3 1","pages":"331-335"},"PeriodicalIF":0.0000,"publicationDate":"2018-05-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"8","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2018 IEEE/ACM 15th International Conference on Mining Software Repositories (MSR)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3196398.3196409","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 8

Abstract

Several authors have quantified the modularity of software systems in terms of coupling and cohesion metrics. Most of these approaches focus on functional and procedural dependencies in the system. Although highly relevant at the design phase, these static dependencies alone do not account for how a software product evolves over time. Instead, this is also dictated by logical and hidden dependencies between system files. To a large extent, the co-change (co-commit) relation captures these different types of dependencies. In this paper, we define two measures of co-change-modularity of a software product based on a weighted design structure matrix (DSM). The first metric, called the weighted propagation cost, uses matrix exponential to measure how changes to one system file potentially affect the whole product. The second metric, called the weighted clustering cost, uses the output of the first metric to measure the partitionability of the system based on the co-change relation. In addition, we provide a visual representation of how the co-change structure of a system evolves over time. We discuss the theoretical foundation of our work and highlight its advantages over existing methodologies. We apply our approach to GNU Octave and show the findings to be consistent with the available literature on the evolution of Octave. Our analysis is extensible and applicable to a range of scenarios including open source systems.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
一种测量软件产品共变模块化的设计结构矩阵方法
一些作者从耦合和内聚度量的角度量化了软件系统的模块化。这些方法大多关注系统中的功能和过程依赖关系。尽管在设计阶段高度相关,但这些静态依赖关系本身并不能说明软件产品如何随时间演进。相反,这也是由系统文件之间的逻辑和隐藏依赖关系决定的。在很大程度上,共同变更(共同提交)关系捕获了这些不同类型的依赖关系。本文在加权设计结构矩阵(DSM)的基础上,定义了软件产品共变模块化的两个度量。第一个度量称为加权传播成本,它使用矩阵指数来度量对一个系统文件的更改如何潜在地影响整个产品。第二个指标称为加权聚类成本,它使用第一个指标的输出来衡量基于共变关系的系统可分区性。此外,我们还提供了系统的共变结构如何随时间演变的可视化表示。我们讨论了我们工作的理论基础,并强调了其相对于现有方法的优势。我们将我们的方法应用于GNU Octave,并展示了与有关Octave演变的现有文献一致的发现。我们的分析是可扩展的,适用于包括开源系统在内的一系列场景。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Detecting and Characterizing Developer Behavior Following Opportunistic Reuse of Code Snippets from the Web The Open-Closed Principle of Modern Machine Learning Frameworks Prevalence of Confusing Code in Software Projects: Atoms of Confusion in the Wild Large-Scale Analysis of the Co-commit Patterns of the Active Developers in GitHub's Top Repositories Structured Information on State and Evolution of Dockerfiles on GitHub
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1