论文部分内容阅读
变化性是软件的基本属性。特别是在Intemet成为主流软件运行环境之后,网络的开放性和动态性使得客户需求与硬件资源更加频繁地变化,导致软件的变化性和复杂性进一步增强。软件演化指的是软件进行变化并达到所希望形态的过程,可分为静态演化和动态演化两种类型。由于具有持续可用性的优点,动态演化已成为软件工程研究的热点。但动态演化比静态演化更为复杂,技术上更难以处理。 现代软件的复杂性决定了动态演化研究应从宏观层面入手。软件体系结构从系统全局的角度刻画当前配置状态,有利于对系统级特征属性的监控和关键约束是否得以遵守的检查,因此成为软件进行动态演化的重要依据和驱动因素。为支持基于体系结构的动态演化,本文较系统地从动态体系结构描述语言、体系结构求精、软件应用模型和构造框架、软件运行环境和机制等方面逐步展开研究。 基于高阶多型π演算理论,提出了动态体系结构描述语言D-ADL。在D-ADL中,构件、连接件和体系结构风格被模型化为高阶π演算中的抽象(abstraction)类型;构件计算功能、连接件路由行为、体系结构配置活动被模型化为进程(process);构件和连接件的交互点则被模型化为通道(channel)。D-ADL可显性表示软件的变更计划,计划行为被形式化为高阶进程,从而直接支持预设的动态演化。 在D-ADL形式规约的框架之下,论文从结构、行为和属性三个方面深入分析体系结构求精,给出了求精的方法和准则,以维持求精过程中信息的一致性。特别是形式化地给出了行为求精的准则,即构件的行为求精应该满足进程观察弱模拟关系,连接件的行为求精应该满足进程分支弱模拟关系。这为通过对体系结构求精来支持非预设的动态演化提供了可能。 在此基础上,提出了基于体系结构空间、面向动态演化的软件应用模型SASM。SASM使用反射技术构造,基层和元层因果相联。基层由可运行的物理构件形成,元层RSAS是一个具备树形层次、层间存在求精关系的体系结构空间。RSAS反映了需求的层次性,提供给用户不同抽象级别的视图和管理手段。通过对RSAS的观察,可获知系统的结构和行为信息。对RSAS的在线调整可实现对基层的修改进而实现系统的非预设动态演化,而RSAS中不同层次之间的求精关系保证了应用的完整性和演化的一致性。 设计了SASM支撑平台并实现了其原型系统。SASM支撑平台由构造工具集、执行工具集和动态演化工具集组成。构造工具集旨在方便用户按照SASM