论文部分内容阅读
随着网络技术的发展,基于网络的软件在表现形态上有了新的变化,如今软件的开发和运行正面临一个多变、复杂、难控的网络环境,因而软件开发需要在软件的结构、软件的动态适应以及软件的质量等方面来对其复杂性进行控制;其次,从软件质量角度来看,人们对软件质量的关注点开始从“传统的系统内部和外部质量”转向“综合化的以用户视角出发的使用质量”。因此,需要展开对软件的分析、设计等方法以及软件质量分析与评估等理论的研究,为全生命周期的软件构建与质量保障体系提供支持。 软件体系结构作为软件系统的高层抽象,体现了软件建模阶段在软件全局架构上的复杂度,人们通过利用有效的分析和设计技术可实现对其复杂性的控制,从而提高后期软件开发的效率,是软件设计阶段的重要环节,并成为软件质量分析与评估研究的重要组成部分。软件体系结构描述语言作为一种主流的软件体系结构描述技术,已被广泛应用与软件体系结构设计和开发过程。然而,大多数的软件体系结构描述语言仅仅只考虑了体系结构的静态特征,无法直接支持软件体系结构的动态变化,并且也无法实现体系结构重配置过程中的验证和转换。 本论文研究基于软件体系结构的软件建模与分析方法。从体系结构角度,高层抽象软件系统,分别提出了一种图文法(Breeze Graph Grammars,BGG)和一个体系结构描述语言(Breeze/ADL)来分别实现对软件系统建模和规约,同时从软件质量需求入手,针对正确性和可靠性中的相关质量问题,提出了基于探针的死锁检测策略和基于Breeze/ADL的可靠性模型,实现了体系结构层次上的相关质量分析,为软件质量改进提供了参考,本文的主要创新点如下: 1.设计Breeze图文法。目前,大多数的体系结构描述方法仅用来对体系结构的组织结构特征进行抽象,并不能对体系结构的变化进行定义。为了满足系统运行对动态应变的需求,本文设计了一个Breeze图文法,将体系结构中的实体元素(包括构件、连接子、接口、连接等)映射成Breeze图中的节点和边,通过定义图产生式(或称图重写规则),将体系结构重配置过程中的变化映射成相应的体系结构重配置操作,包括重配置原子操作(如增加、删除)和重配置组合操作(如顺序、选择、迭代)。用图文法作为理论基础,软件体系结构可以被Breeze图文精准的形式化刻画,并且体系结构的动态变化也可以通过Breeze图文法产生式的执行来实现。通过Breeze图文法不仅可以对软件体系结构进行建模,还可以捕获在软件开发初期和后期重配置过程中动态变换。 2.设计基于XML的体系结构描述语言—Breeze/ADL。与其他图技术类似,Breeze图文法也存在一个问题,就是它不支持通用的文本描述方法,利用Breeze图文法所刻画的软件体系结构模型与其他软件体系结构描述技术所描述的体系结构模型之间的互操作性则较低。因而,本文采用XML作为元语言,以Breeze图文法为基础,设计了一个基于XML的体系结构描述语言—Breeze/ADL,给出了设计原则和建模元素的定义,利用Breeze/ADL实现对体系结构风格规约、实体元素规约、体系结构配置规约及重配置操作的规约。采用Breeze/ADL进行体系结构建模,其建模结果不仅服从标准的XML文档规范,可以方便的被通用的XML工具解析和修改,提高了Breeze/ADL的可扩展性以及与其它基于XML的体系结构描述语言的互操作性,同时,Breeze/ADL将 Breeze图文法中的图产生式映射成对应的元素,实现对体系结构动态变化的支持。此外,本文针对Breeze/ADL,设计了Breeze体系结构建模工具,实现对体系结构的可视化建模,为Breeze/ADL的广泛应用和推广提供支持。 3.正确性作为体系结构的一个重要质量属性,其涉及的问题包括死锁、失配、约束等,本文针对软件体系结构上的死锁问题,提出了一种基于探针的死锁分析策略,在软件体系结构模型上检测是否存在潜在的死锁环。本文在Breeze图文法的基础上,结合通信顺序进程对体系结构建模元素的定义进行扩展,包括构件、连接子及接口。针对连接子,构建形式化的探针模型,通过利用探针,对利用连接子进行交互的构件行为进行抽取,获取构件接口之间的调用关系,并进行存储来构建接口调用矩阵,通过对矩阵的行、列扫描,寻找可能存在的潜在构件调用死锁环,实现在体系结构层次上的死锁分析。 4.为了在体系结构层次上进行可靠性分析与评估,提出了一种基于Breeze/ADL的体系结构可靠性模型。本文对Breeze/ADL进行了扩展,通过植入错误事件、错误状态、错误发生率等基本错误元素,并映射错误传播过程到Production,来构建Breeze/ADL错误模型,同时,结合基本Breeze/ADL体系结构模型,生成Breeze/ADL可靠性模型,实现在体系结构层次上的可靠性建模。此外,为了对所构建的可靠性模型进行分析,本文以广义随机Petri网模型为基础,给出了从Breeze/ADL的可靠性模型到广义随机Petri网模型的映射规则,包括基本错误元素的映射规则和错误传播映射规则,并对模型转换的正确性进行了证明。同时,在Breeze工具上开发了模型转换插件,实现 Breeze/ADL可靠性模型到广义随机 Petri网模型的转换,再结合 PIPE2工具对转换后的广义随机Petri网模型进行可靠性计算,从而实现在体系结构层次上可靠性分析与评估。