一种需求驱动、以体系结构为视图的面向软件动态演化的模型与方法
【摘要】:随着软件工程学科的不断深入和发展,软件演化的重要性和普适性越来越强。软件演化是指软件进行变化并达到人们所希望的形态的过程,分为静态演化和动态演化两种类型,本文重点关注软件动态演化。目前,动态演化是学术界的一个研究热点,同时也是一个研究难点。一方面,软件动态演化已成为软件生存周期中重要的形态之一,成为了今天软件工程研究的关键领域;另一方面,关于软件动态演化的研究,依然面临着诸多的挑战和困难。正因如此,针对软件动态演化所面临的挑战,研究如何提高软件系统的动态演化性,进而提高软件动态演化实施的可靠性,具有重要的理论和现实意义。
本文认为,动态演化所面临的挑战并非可以孤立地从一个角度去寻求解决问题的方案,而是需要从软件的整个生命周期着手,需要在软件工程过程的几个重要阶段对软件动态演化提供支持。因此,本文致力于建立一种系统性的应对软件动态演化的建模理论,该理论以软件需求模型为驱动,以体系结构模型为视图,以行为管程机制为支撑,以解决动态演化面临的关键挑战为导向,以形式化方法为基本手段。为了达到这个目的,论文主要工作如下:
第一,设计了面向动态演化的需求元模型。该元模型以特征为基本部件,按特征组合的方式建立需求模型,需求模型由行为特征和属性特征组成。行为特征被区分为计算行为特征和交互行为特征,以实现计算和交互的相对隔离;属性特征通过其作用域,指定其在行为特征模型中的作用范围,从而将行为特征模型和属性特征模型统一为需求模型。
第二,提出了将需求模型规范化的方法。通过分而治之的策略,分别对行为特征模型和属性特征模型进行规范化。对于行为特征模型的规范化,通过设计行为特征的特征项规范形,证明可以通过公理系统将满足行为特征规范化建模规则的行为特征转化为规范形;在此基础上,讨论了属性特征模型的参照完整性、依赖一致性和互斥一致性,并进一步把属性特征模型规范化为第一范式到第四范式。
第三,设计了面向动态演化的体系结构元模型。该元模型包括两个视图:静态视图和动态视图。其中,静态视图描述了软件系统的静态结构,其基本部件包括构件和连接件:构件是一个扩展的Petri网的网结构;连接件包含三种基本的连接方式:库所融合、变迁融合和弧添加。动态视图建立在静态视图的基础上,由静态视图的网结构加上标识构成的网系统来描述体系结构的动态行为。
第四,提出了将需求模型变换为软件体系结构模型的方法。首先,提出了以行为等价为准则的模型变换依据;其次,提出将需求模型中的基本部件变换成为体系结构模型中对应的部件的规则;再次,提出将需求模型中的组合部件变换成为体系结构模型中对应的部件的规则;最后,分析了变换得到的软件体系结构模型的结构性质要求。
第五,提出了面向动态演化的行为管程机制。首先给出行为管程的概念,在此基础上,讨论了行为管程的管理、监控和演化三个方面的职能:在管理职能方面,从托肯管理、库所管理和变迁管理三个方面进行阐述;在监控职能方面,包含构件管理态的监视、托肯目标可达性的监视,以及对库所和变迁互斥的控制;演化职能方面,给出驱动构件进入静止态和活动态的算法,以及连接件和构件的添加、删除算法。
第六,提出了基于行为管程机制的构件相关性分析方法。首先分析构件之间的结构相关性,进一步,结构相关性又分为基本结构相关性和复合结构相关性;然后,在结构相关性分析的基础上,对行为相关性的部分传递性进行处理;最后,基于行为管程机制,设计了封闭系统和开放系统的构件行为相关性分析算法。
第七,提出了构件动态演化实施中的一致性保持标准。首先讨论了构件的状态迁移方法;接着,讨论构件的行为空间和行为图,作为构件之间的行为一致性保持的理论基础;然后,基于行为图,参照进程代数理论中的强模拟关系和弱模拟关系,提出并证明了构件动态演化实施的一致性保持标准。
综上所述,本文的工作为软件系统动态演化的实施奠定了坚实的基础,将对提高软件动态演化的效率和质量、降低其成本和时间起到积极的作用。