论文部分内容阅读
基于构件的软件开发有利于实现构件重用,提高软件的开发效率和质量;基于消息传递实现构件之间的交互使软件更可靠,构件更独立;软件演化是软件生命周期中的重要组成部分,如何开发可演化软件已经成为IT界的研究热点;软件体系结构为构件组合和软件演化提供了基础。本文对基于消息和构件组合运算的软件体系结构演化进行研究,具有重要的理论意义和应用价值。本文根据构件能够接收和发送的消息类型,给出了基于消息的构件组合模型,定义了构件组合的执行路径,并对构件组合运算进行了形式化描述;给出了基于构件组合运算的软件体系结构的图形与代数表达式,以及它们之间的转换。在软件体系结构描述的基础上,本文使用设计模式描述了非功能需求的分解,使用结构工作链建立了非功能需求与软件体系结构之间的关联,使用结构工作链和组合运算对软件体系结构的非功能属性进行评估,并利用评估结果,提出了一种基于非功能需求的软件体系结构演化方法。考虑到复杂是使软件系统出错、难于理解和产生安全问题的重要原因,提出了软件体系结构的直观复杂性度量方法和构件演化运算,设计了基于构件演化运算的软件体系结构演化算法,为软件体系结构演化的自动化研究提供了基础。本文从构件组合运算和软件体系结构两个层次分析了构件操作的波及效应,提出了一种新的软件体系结构可演化性度量方法,设计了度量算法,克服了传统方法需要大量数据、过度依赖人工参与和个人经验、只适合小规模系统等不足。为了保持业务的连续性,避免关闭和重启系统可能招致的不可接受的延迟、费用和风险,本文在对基于消息的构件和连接件的动态特性描述的基础上,使用反射机制,给出了以连接件为中心的软件体系结构动态演化的框架,消除了软件体系结构动态演化的不一致性。为了建立需求变化与软件演化之间的关联,本文提出了消息依赖矩阵的概念,设计了利用消息依赖矩阵获得特征迹的算法;把变化的需求与支持它的特征迹联系起来,定义了基于需求和特征迹的软件演化,根据需求变化的类型对软件演化进行了分类,利用特征迹对演化影响进行了定量分析。基于特征迹的软件演化,有利于演化的定位、管理和验证。