Bunch: a clustering tool for the recovery and maintenance of software system structures

S. Mancoridis, B. Mitchell, Y. Chen, E. Gansner
{"title":"Bunch: a clustering tool for the recovery and maintenance of software system structures","authors":"S. Mancoridis, B. Mitchell, Y. Chen, E. Gansner","doi":"10.1109/ICSM.1999.792498","DOIUrl":null,"url":null,"abstract":"Software systems are typically modified in order to extend or change their functionality, improve their performance, port them to different platforms, and so on. For developers, it is crucial to understand the structure of a system before attempting to modify it. The structure of a system, however, may not be apparent to new developers, because the design documentation is non-existent or, worse, inconsistent with the implementation. This problem could be alleviated if developers were somehow able to produce high-level system decomposition descriptions from the low-level structures present in the source code. We have developed a clustering tool called Bunch that creates a system decomposition automatically by treating clustering as an optimization problem. The paper describes the extensions made to Bunch in response to feedback we received from users. The most important extension, in terms of the quality of results and execution efficiency, is a feature that enables the integration of designer knowledge about the system structure into an otherwise fully automatic clustering process. We use a case study to show how our new features simplified the task of extracting the subsystem structure of a medium size program, while exposing an interesting design flaw in the process.","PeriodicalId":193867,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360)","volume":"12 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1999-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"526","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICSM.1999.792498","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 526

Abstract

Software systems are typically modified in order to extend or change their functionality, improve their performance, port them to different platforms, and so on. For developers, it is crucial to understand the structure of a system before attempting to modify it. The structure of a system, however, may not be apparent to new developers, because the design documentation is non-existent or, worse, inconsistent with the implementation. This problem could be alleviated if developers were somehow able to produce high-level system decomposition descriptions from the low-level structures present in the source code. We have developed a clustering tool called Bunch that creates a system decomposition automatically by treating clustering as an optimization problem. The paper describes the extensions made to Bunch in response to feedback we received from users. The most important extension, in terms of the quality of results and execution efficiency, is a feature that enables the integration of designer knowledge about the system structure into an otherwise fully automatic clustering process. We use a case study to show how our new features simplified the task of extracting the subsystem structure of a medium size program, while exposing an interesting design flaw in the process.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
Bunch:用于恢复和维护软件系统结构的集群工具
软件系统通常是为了扩展或更改其功能、改进其性能、将其移植到不同的平台等而进行修改的。对于开发人员来说,在尝试修改系统之前,理解系统的结构是至关重要的。然而,对于新的开发人员来说,系统的结构可能并不明显,因为设计文档是不存在的,或者更糟的是,与实现不一致。如果开发人员能够以某种方式从源代码中的低级结构生成高级系统分解描述,那么这个问题就可以得到缓解。我们已经开发了一个名为Bunch的聚类工具,它通过将聚类视为优化问题来自动创建系统分解。这篇论文描述了我们根据用户反馈对Bunch所做的扩展。就结果质量和执行效率而言,最重要的扩展是一个特性,它可以将设计人员关于系统结构的知识集成到一个完全自动化的集群过程中。我们使用一个案例研究来展示我们的新特性如何简化了提取中等规模程序的子系统结构的任务,同时暴露了该过程中一个有趣的设计缺陷。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Reuse-driven interprocedural slicing in the presence of pointers and recursion Restructuring legacy C code into C++ Component module classification for distributed software understanding Effort distribution in a six year industrial application framework project Extracting objects of Ada programs using module features
×
引用
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