During the process of software evolution,increased complexity of architecture will degrade the software quality gradually.Researching on the analysing approach of architectural evolution trends is helpful for determining the right moment of refactoring and reducing the cost.As most of the current analysing approaches are based on the measurement of characteristics of software architecture,they are impractical and specific to certain design pattern and programming languange.In our approach,we study the problem from the perspective of software defects,including:1)the correlation mechanism between defects and software change;2)the modeling of defects architecture with hierarchical structure and its visualized description with a hybrid method;3)the modeling of defect data and the multidimentional analysing method;4)the measurement of complexity of defect architecture;5)the analysing approach of software architecture evolution trend based on the complexity of defect architecture and tool support;6)architectural refactoring strategies including the refactoring time, priorities of components and refactoring mechanism. Our research is based on the study of real cases. The results will provide quantitative basis for analysing of software architecture evolution and provide support for decision making in refactoring.
软件演化过程中,软件体系结构复杂度增加会导致软件质量逐渐下降。研究软件体系结构演化趋势的分析方法对于确定软件重构的时机和降低重构的成本具有重要意义。由于现有的基于软件体系结构特征度量的分析方法具有可操作性不强、仅适用于特定开发模式和开发语言等不足,本项目拟从软件缺陷分析的角度开展研究。具体研究内容包括:1)软件缺陷与程序变更的关联机制;2)具有层次特性的缺陷体系结构建模及其混合可视化描述方法;3)支持多维分析的缺陷数据模型及多维分析方法;4)缺陷体系结构复杂度度量方法;5)基于缺陷体系结构复杂度度量的软件体系结构演化趋势分析方法及工具;6)软件体系结构重构策略,包括:重构时机、组件重构的优先级、重构方法。本项目结合实际案例进行研究,研究成果将为软件体系结构的演化分析提供可量化的依据,为制定有效的软件重构策略提供决策支持。
为了适应不断变化的需求变更,软件必须不断地进行演化。在软件演化的过程中,软件结构逐渐偏离原有设计,并且这种结构上的偏离导致了软件质量的下降,则称为软件体系结构退化。本项目从软件缺陷分析的角度,研究软件体系结构演化趋势的判断方法。本项目讨论了软件缺陷与软件体系结构退化之间的关系,确定了软件缺陷能用于表征软件体系结构退化并且退化存在关键因素(退化关键组件、退化关键组件关系);提出了一种面向缺陷分析的缺陷分类方法DC4DA,基于该分类方法,设计了用于缺陷分析的多维数据模型。DC4DA缺陷属性的选择淡化、减少了人的活动信息,更多地关注于缺陷本身的特征,为缺陷分析奠定了数据基础;提出了一种将缺陷危害度分别与缺陷规模和缺陷复杂度相结合的度量方法,与现有的单纯基于缺陷规模或复杂度的度量方法相比,能更全面地反映缺陷的内部和外部特征。该方法分别从缺陷内聚度和缺陷耦合度两个方面对软件系统的组件层和子系统层的缺陷进行度量;提出了一种软件体系结构演化趋势分析模型,模型以软件缺陷作为输入,使用缺陷度量方法对缺陷进行量化处理,再以这些度量结果作为基础,抽象出软件的不同层次的缺陷体系结构,用于评估和诊断单个软件版本体系结构中可能存在的问题。同时也可以通过缺陷体系结构的演化图,分析各版本的关键缺陷因素的持续性,为软件体系结构的演化趋势判断提供依据;以DC4DA与软件缺陷体系结构模型为基础,设计、实现了一个软件体系结构演化分析原型系统,并通过实例分析对提出的两种缺陷度量方法的可行性与有效性进行了验证;针对基于组件的软件系统,研究了如何通过性能反模式的检测来发现系统在结构上的设计缺陷。针对现有的反模式描述方法的不足,提出了一种基于一阶谓词的描述方法,该方法综合考虑了反模式的表现形式和表现症状,对反模式的描述更为准确,且具有较好的可扩展性和通用性。提出了一种候选反模式的概率计算方法,有效减少了反模式检测结果的漏报和误报。提出了一种基于过滤策略的反模式性能影响排序机制,有助于在系统重构时优先考虑对系统影响较大的反模式。
{{i.achievement_title}}
数据更新时间:2023-05-31
演化经济地理学视角下的产业结构演替与分叉研究评述
玉米叶向值的全基因组关联分析
正交异性钢桥面板纵肋-面板疲劳开裂的CFRP加固研究
硬件木马:关键问题研究进展及新动向
基于SSVEP 直接脑控机器人方向和速度研究
基于设计决策的软件体系结构演化关键技术研究
面向演化的软件缺陷预测方法研究
基于缺陷建模的软件脆弱性分析方法研究
基于反模式和缺陷修复模式的软件缺陷结构影响因素分析