欢迎来到天天文库
浏览记录
ID:38398703
大小:37.00 KB
页数:4页
时间:2019-06-11
《软件体系结构的形式化方法研究》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件体系结构的形式化方法研究软件体系结构研究如果仅仅停留在非形式化的框图阶段,已经难以适应进一步发展的需要。为支持基于体系结构的开发,需要有形式化建模符号、体系结构说明的分析与开发工具。从软件体系结构研究的现状来看,在这一领域近来已经有不少进展,其中比较有代表性的是美国卡耐基梅隆大学(CarnegieMellonUniversity)的RobertJ.A11en于l997年提出的Wright系统。Wright是-种结构描述语言,该语言基于一种形式化的、抽象的系统模型,为描述和分析软件体系结构和结构化方法提供了一种实用的工具
2、。Wright主要侧重于描述系统的软件构件和连接的结构、配置和方法。它使用显式的、独立的连接模型来作为交互的方式,这使得该系统可以用逻辑谓词符号系统,而不依赖特定的系统实例来描述系统的抽象行为。该系统还可以通过一组静态检查来判断系统结构规格说明的一致性和完整性。从这些特性的分析来说,Wright系统的确适用于对大型系统的描述和分析。1、软件体系结构的建模研究研究软件体系结构的首要问题是如何表示软件体系结构,即如何对软件体系结构建模。根据建模的侧重点的不同,可以将软件体系结构的模型分为5种:结构模型、框架模型、动态模型、过程
3、模型和功能模型。在这5个模型中,最常用的是结构模型和动态模型。(1)结构模型这是一个最直观、最普遍的建模方法。这种方法以体系结构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格、性质。研究结构模型的核心是体系结构描述语言。(2)框架模型框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整体的结构。框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构。(3)动态模型动态模型是对结构或框架模型的补充,研究系统的"大颗粒"的行为性质。例如,
4、描述系统的重新配置或演化。动态可能指系统总体结构的配置、建立或拆除通信通道或计算的过程。这类系统常是激励型的。(4)过程模型过程模型研究构造系统的步骤和过程。因而结构是遵循某些过程脚本的结果。(5)功能模型该模型认为体系结构是由一组功能构件按层次组成,下层向上层提供服务。它可以看作是一种特殊的框架模型。这5种模型各有所长,也许将5种模型有机地统一在一起,形成一个完整的模型来刻画软件体系结构更合适。例如,Kruchten在1995年提出了一个"4+1"的视角模型。"4+1"模型从5个不同的视角包括逻辑视角、过程视角、物理视角
5、、开发视角和场景视角来描述软件体系结构。每一个视角只关心系统的一个侧面,5个视角结合在一起才能够反映系统的软件体系结构的全部内容。2、发展基于体系结构的软件开发模型软件生命周期一般分为6个阶段,即制定计划、需求分析、设计、编码、测试、运行和维护。常见的软件开发模型大致可分为如下三种类型。(1)以软件需求完全确定为前提的瀑布模型--waterfallmodel。(2)只能提供基本需求而采用的渐进式开发模型--螺旋模型(3)以形式化开发方法为基础的变换模型。瀑布模型是最早出现的软件开发模型,其本质是一次通过,即每个活动只执行一
6、次。将软件生命周期划分为软件计划、需求分析和定义、软件设计、软件实现、软件测试、软件运行与维护。其优点是:有利于大型软件开发人员的组织与管理;有利于软件开发方法与工具的研究与使用,从而提高软件开发的质量与效率。其缺点是:由于开发模型呈线性,所以当开发成果尚未经过测试时,用户无法看到软件的效果,增加了一定的风险;在软件开发前期未发现的错误传到后面的开发活动时,可能会扩散,进而会造成整个软件项目的开发失败;在软件需求分析阶段,完全确定用户的所有需求是非常困难的,甚至是不可能的。螺旋模型将瀑布模型和演化模型结合起来,强调风险分析
7、,特别适用于庞大、复杂并具有高风险的系统。每一个周期都包括需求定义、风险分析、工程实现和评审四个阶段,由这四个阶段进行迭代。螺旋模型强调风险分析,支持用户需求的动态变化,为用户参与软件开发的所有关键决策提供了方便,有助于提高目标软件的适应能力。缺点:采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能及时标识风险,势必造成损失;过多的迭代次数会增加开发成本,延迟提交时间。变换模型是基于形式化规格说明语言及程序变换的软件开发模型。其软件过程是需求定义、形式化规格说明、软件原型、原型评审、程序
8、变换,其中前四个是一个反复的迭代过程。目前形式化开发方法在理论、实践和人员培训方面距工程应用尚有一段距离。喷泉模型喷泉模型是一种以需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。其优点是可以提高软件开发效率,节省开发时间,适应于面向对象的软件开发过程。缺点是在开发过程中需要大量的开发
此文档下载收益归作者所有