论文部分内容阅读
近年来,软件工程界提出了各种需求工程和软件建模技术,然而,在软件需求和设计之间仍然存在一条很难逾越的鸿沟,从而很难有效地将需求转换为相应的设计。为此,学者们提出了软件体系结构的概念,并试图在软件需求与软件设计之间架起一座桥梁,重点解决软件系统的结构和需求向实现平坦地过渡的问题。目前,工业界对软件体系结构的描述通常都采用框图加线条和文本的方式,学术界对软件体系结构的描述通常都采用体系结构描述语言,这些描述方法在对软件体系结构的动态行为、演化和可扩充特征方面的描述能力明显不足。本文基于代数理论,研究软件体系结构的描述及软件演化方法。全文从本项目研究的意义、软件体系结构的基本概念和研究与应用现状出发,指出了当前研究和应用中的不足之处。引入了构件运算关系来描述软件体系结构,根据构件运算表达式的变动研究软件演化方法。在此基础上,利用XML(eXtensible Markup Language)语言描述软件体系结构基本元素和构件运算关系。研究了把构件运算表达式转换为XML文档的算法,并实现了该算法的原型,从而使软件演化由理论研究转化为实际应用成为可能。另外,本文还研究了层次式软件体系结构、正交软件体系结构的抽象化方法和相关性质。在对构件运算关系及其性质的研究中,本文用代数理论对构件的属性和行为特征进行抽象,引入构件的顺序运算、选择运算和循环运算,研究了这三种运算的性质及其之间的关系。进一步讨论了构件组合运算的问题,任意一个软件体系结构都可以通过这三种运算的组合关系来描述。提出了一种新的软件体系结构描述方法,为进一步用数学方法讨论软件体系结构提供了一种新的途径。在基于构件的软件开发中,软件演化可以归结为增加构件、删除构件、修改构件及构件之间的关系等,本文提出了软件体系结构的图形表达方式与构件运算表达式之间的互相转化的方法。通过软件体系结构中构件之间的关系变化,研究基于体系结构的软件演化理论与方法,把软件演化归结为构件运算表达式的变动。层次结构作为一种对事物体系的描述方法,被广泛应用于计算机软件领域中。但目前对层次式软件体系结构的描述通常都是非形式化的,有关文献认为很难找到一个合适的、正确的层次抽象方法。本文用代数理论对层次式软件体系结构的属性和行为特征进行抽象,讨论了层次式软件体系结构的基本思想和结构框架。研究了层次式软件体系结构抽象模型,提出了“层”的抽象概念及相关性质,提出了层的极大公共子构件和极小公共父构件两种运算的观点,证明了层与这两种运算分别构成交换半群。正交软件体系结构具有结构清晰、可维护性强、可移植性强、重用粒度大等优点,本文用代数理论对正交软件体系结构的属性和行为特征进行抽象,得出了正交软件体系结构的核心模型,提出了正交软件体系结构的抽象模型和非正交软件体系结构的正交化算法。在上述研究的基础上,本文设计了一种基于代数理论的软件体系结构的XML描述方法(XML for Software Architecture Based on Algebra Theory,XSABAT),用XSABAT方法描述了软件体系结构及其元素和构件运算表达式。研究了构件运算表达式转化为XML文档的算法,算法能够有效的验证构件运算表达式的正确性,以及把构件运算表达式进行分离用于生成与之对应的XML文档。实现了构件运算表达式转化为XML文档的系统原型,从而使软件演化由理论研究转化为实际应用成为可能。