持续的代码变更常导致软件系统架构恶化,即系统内部各代码模块之间的耦合过于紧密,使得系统质量降低和代码变更成本上升、易于出错。其显著表征就是存在于多个系统模块内的交叉型(软件)缺陷。从缺陷的角度分析架构恶化能对系统质量和可持续性演化都有直接指导意义,然而国内外目前尚无相关研究成果。本课题拟采用实证软件工程方法,基于交叉型缺陷的分析,度量和缓减工业系统的架构恶化现象。主要研究内容包括:一,交叉型缺陷基本特征(如分布广度和复杂度等)的量化描述;二,系统架构恶化的度量和诱因研究;三,提出缓减系统架构恶化的策略及具体方案;四,研制原型系统以辅助度量和缓减一般性系统的架构恶化现象。本课题的实证研究不仅可获得关于交叉型缺陷和架构恶化的实证知识,而且所研制的原型系统也可用于工业系统的维护、演化及质量控制。
本项目以工业级大规模软件系统演化实践为背景,基于“交叉型缺陷”这一独特视角,应用实证软件工程研究方法,度量和缓减系统“架构恶化”现象。交叉型缺陷是存在于多个系统模块内的软件缺陷,架构恶化即软件系统内部各代码模块之间的耦合过于紧密,使得系统质量降低和代码变更成本上升、易于出错。项目的主要研究内容包括四方面。(一)量化描述交叉型缺陷的基本特征(如分布广度和复杂度等),典型结论有:交叉型缺陷约占所有缺陷的10-20%,其中之80%聚集于约20%的系统构件,且这些构件具有明显更强于其他构件的缺陷持续密集特征(简言之,在前一版本中密集交叉型缺陷的构件会在下一版本依据密集交叉型缺陷。);另外,修正一个交叉型缺陷需要3倍于修正一个普通缺陷的代码变更数量。(二)度量系统架构恶化程度并查明其诱因,相关研究发现常规的软件维护和演化实践都带有“脏”的特征,即在修改代码的同时会破坏系统原有的架构及其相关质量属性,故而导致架构恶化。架构层面的脏变更是导致架构恶化的主因。(三)提出缓减系统架构恶化的策略及具体方案,认为构件层面的再工程既能有效缓减架构恶化,同时还能极大控制工程成本、时间和资源需求,是一项可在实践中常态化应用的有效技术;(四)研制原型工具集以辅助度量和缓减一般性系统的架构恶化现象,这套工具集基于对软件系统缺陷及其修复数据的分析,获得关于系统内部交叉型缺陷的量化特征,进而度量系统的架构恶化程度以及跨越多版本的架构恶化趋势,最后为系统架构设计师和管理者提供架构恶化缓减建议。纵观上述之主要成果,申请人团队认为,本项目能对工业界大规模软件系统的质量控制和可持续性演化产生直接积极的指导意义,且已弥补国内外相关研究成果之空白(相关研究成果已发表于国际权威学术期刊和会议)。典型的,本项目关于交叉型缺陷的研究成果可指导系统维护人员关注一类特殊的、会产生明显负面影响的、且耗费更大维护成本的缺陷(尽管这类缺陷为数并不多)。同时,本项目关于架构恶化的度量结论可帮助架构师适时主动改善系统架构,以避免以往被动的、耗费极大成本和时间的系统级再工程实践。
{{i.achievement_title}}
数据更新时间:2023-05-31
演化经济地理学视角下的产业结构演替与分叉研究评述
基于分形L系统的水稻根系建模方法研究
拥堵路网交通流均衡分配模型
卫生系统韧性研究概况及其展望
青藏高原狮泉河-拉果错-永珠-嘉黎蛇绿混杂岩带时空结构与构造演化
基于软件网络的软件度量研究
面向工程设计的有限元软件系统架构研究
可信软件度量的标准研究和标准化
软件复杂性度量研究