基于分层结构信息提取的软件架构恢复技术

来源 :东南大学 | 被引量 : 3次 | 上传用户:ffgghhaz
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着软件系统越来越复杂、规模越来越大,软件架构的复杂度和变化性进一步增强。更糟糕的是,随着产品演化周期的更迭,由于文档得不到及时充分的更新,导致设计架构和实际架构之间的偏差越来越大,仅仅通过文档很难达到对系统原始全面的理解。开发团队往往需要通过人工阅读代码来学习和理解架构,并在此基础上开展系统的开发和维护。人工阅读代码的方式费时费力,而且并非任何人都能通过阅读代码来透彻完整地把握系统的原始架构。这种在系统的演化过程中,预期架构或概念架构与实际架构之间发生偏离的现象,又称为软件架构腐蚀。在此情况下,清晰的、易于理解的软件体系结构说明就显得越来越重要。本文对目前的软件架构恢复过程、恢复方法和工具进行了系统的研究,归纳出了一般的软件架构恢复技术框架,包括架构信息提取和架构恢复表达两方面的关键技术。本文基于分层结构信息提取技术进行软件架构自动化恢复,主要工作如下:本文分别从项目源代码、编译构建过程信息、目录层次结构和架构输入四种信息来源中提取需要的架构信息,其保障了架构的逻辑视图、开发视图和构建视图的一致性。本文提出一种基于多规则聚类的组件识别方法,通过对模块依赖图的分析,根据依赖类型、依赖结构和依赖强度制定的规则,多个角度识别出组件特征,从而实现对目标系统的高度抽象。本文提出有效计算模块距离的度量公式,同时基于该度量公式采用中心-层次混合聚类算法,进行组件聚类。在每次迭代后,围绕选取的聚类中心进行层次聚合,从而实现高效且准确恢复架构。按照软件架构恢复的技术框架,设计并实现一个基于分层结构信息提取的软件架构恢复原型工具——Arc Recovery Tool。基于大量开源程序的实验表明,本文提出的架构恢复技术具有较好的精度和效率,能够适应较大规模的软件项目。通过该技术恢复的架构图不仅具有较好的易理解性,为开发和维护人员理解和维护代码提供帮助,而且也能够有效反映出软件演化的效果,对软件开发、软件演化的研究提供重要的数据基础和可靠的实现保障。
其他文献
本文通过工程预算管理的基本内容,分析了当前建筑施工企业中工程预算管理存在的主要问题,并据此探讨了建筑施工企业优化工程预算管理的有效措施,以期为建筑施工企业的可持续
为提高超短期风速预测的可靠性和准确性,将被预测地点(本地)周边测风塔风速风向等当前和最近历史观测值作为基础数据,采用空间相关性来预测本地的未来风速。首先,依据风向和
在电子制作过程中,有时需要非常亮的光源来看清细小物体,比如焊接贴片芯片的时候。笔者有一个采用电子整流的荧光台灯,但其电路、灯座、灯管都坏了,外壳却是好的,于是就想把它改装
根据地理国情普查和监测成果,利用遥感监测优势,以塔克拉玛干沙漠及其绿洲变化监测为例,基于时间序列统计分析了沙漠及其绿洲的面积、占比、空间分布,以及沙漠退缩与扩张、绿