软件体系结构建模.ppt_第1页
软件体系结构建模.ppt_第2页
软件体系结构建模.ppt_第3页
软件体系结构建模.ppt_第4页
软件体系结构建模.ppt_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章 软件体系结构建模 本章内容 o2.1软件体系结构建模概述 o2.2软件体系结构模型 o2.3软件体系结构的形式化描述 o2.4软件体系结构的生命周期 o2.5软件体系结构的建模语言 o2.6基于软件体系结构的开发 2.1软件体系结构建模概述 o模型是对现实问题的逻辑抽象,能够从某些 侧面来显示系统的重要性质,忽略其相关细 节 o软件体系结构建模,就是建立软件体系结构 模型的方法和过程 o软件体系结构模型以具体的形式来表现系统 的框架结构 o软件体系结构模型能够帮助人们从全局的角 度来把握整个系统的框架结构 2.2软件体系结构模型 o不同的风险承担者有着不同的软件质量属性 需求,他们所关注的问题是不相同的 o不同的人从框架结构中所获取的信息也是不 相同的,所以,软件体系结构模型应该是多 维的,而不是一种单一的结构 o软件体系结构模型分为5种:结构模型、框 架模型、动态模型、过程模型和功能模型 2.2软件体系结构模型 n结构模型:以构件、连接件及其之间的关联关系 为基础来刻画系统的框架结构,力图通过结构来 反映系统的语义 n框架模型:框架模型与结构模型很类似,但是, 它不太侧重框架的细节,而是更多地考虑了系统 的整体结构 n动态模型:动态模型是对结构模型和框架模型的 补充,描述系统的“大颗粒”行为特性,例如:系 统的重新配置和重新演化 2.2软件体系结构模型 n过程模型:说明构造系统的步骤和过程,过程模 型以某种过程脚本的形式来体现 n功能模型:该模型认为体系结构是由一组功能构 件按层次组成的,下层构件向上层构件提供服务 ,可以看作是一种特殊的框架模型 o5种模型各有所长,只有将5种模型有机地结 合起来,才能形成一个完整的模型来刻画软 件的框架结构 2.2软件体系结构模型 o“4+1”视图模型 2.2软件体系结构模型 n逻辑视图,也称概念视图,主要是支持系统功能 需求的抽象描述,即系统最终将提供给用户什么 样的服务,逻辑视图描述了系统的功能需求及其 之间的相互关系 n开发视图,也称模块视图,主要侧重于描述系统 的组织,与逻辑视图密切相关,都描述了系统的 静态结构 n过程视图,主要侧重于描述系统的动态行为,即 系统运行时所表现出来的相关特性,着重解决系 统的可靠性、吞吐量、并发性、分布性和容错性 2.2软件体系结构模型 n物理视图,描述如何把系统软件元素映射到硬件 上,通常要考虑系统的性能、规模和容错等问题 ,展示了软件在生命周期的不同阶段中所需要的 物理环境、硬件配置和分布状况 n场景视图,场景是用户需求和系统功能实例的抽 象,设计者通过分析如何满足每个场景所要求的 约束来分析软件的体系结构 n逻辑视图定义了系统的目标,开发视图和过程视 图提供了详细的系统设计实现方案,物理视图解 决了系统的拓扑结构、安装和通信问题,场景反 映了完成上述任务的组织结构 2.2软件体系结构模型 o“4+1”视图模型的不足: n“4+1”视图不能体现体系结构的构造是多层次抽 象的过程,不能充分表达系统的体系结构风格 n数据作为系统的重要组成部分,在“4+1”视图中 没有得到充分地体现 n“4+1”视图不能充分地反映系统要素之间的联系 ,例如:构件、功能和角色之间的关联 n在实现体系结构模型时,缺乏构造视图和建立视 图之间关系的指导信息 2.2软件体系结构模型 o软件体系结构模型分解为三类视图:模块视 图、组件-连接件视图和分配视图 n模块视图描述的是每个模块的功能和模块之间的 相互关系,在模块视图下,又包括:分解视图、 使用视图、分层视图和类视图等多个子视图 n分配视图反映了软件元素在创建环境和执行环境 中的分配关系,在分配视图下,又包括:部署视 图、实现视图和工作分配视图等多个子视图 2.2软件体系结构模型 n在组件-连接件视图中,组件是计算的主要单元 ,连接件是组件之间相互通信的工具,组件根据 其接口定义其所提供和需要的操作,而连接件则 封装了两个或多个组件之间的互连协议,在组件 -连接件视图下,又包括:进程视图、并发视图 和共享数据视图等多个子视图 n各种视图为软件质量属性的实现提供了依据,同 时,软件质量属性的实现最终也要在各个视图中 得以体现,各种视图构成了一个有机的整体,从 不同的侧面来描述软件体系结构模型 2.3软件体系结构的形式化描述 o软件体系结构,又被称为架构,指可预制和 可重构的软件框架结构 o构件是可预制和可重用的软件元素,是组成 体系结构的基本计算单元和数据存储单元 o连接件也是可预制和可重用的软件元素,是 构件之间的连接单元 o构件和连接件之间的关系用约束来表示 2.3软件体系结构的形式化描述 o软件体系结构核心模型(Software Architecture Core Model)=构件 (Components)+连接件(Connectors)+ 约束(Constraints) o构件作为一个封装的实体,仅通过其接口与 外部环境进行交互,而构件的接口是由一组 端口组成的,每个端口表示构件与外部环境 之间的交互点 2.3软件体系结构的形式化描述 o连接件作为软件体系结构建模的主要实体, 同样也有接口,连接件的接口是由一组角色 构成的,每个角色定义了该连接所表示交互 的参与者 o软件体系结构:=软件体系结构核心模型|软 件体系结构风格 n软件体系结构核心模型:=(构件,连接件,约 束) n构件:=端口1,端口2,端口N 2.3软件体系结构的形式化描述 n连接件:=角色1,角色2,角色M n约束:=(端口i,角色j), n软件体系结构风格:=管道-过滤器,客户/服 务器,仓库, 2.3软件体系结构的形式化描述 o软件体系结构的形式化描述 2.3软件体系结构的形式化描述 o构件是具有一定功能和可明确辩识的软件单 位 o构件应该具备以下特点:语义完整性、语法 正确性和可重用性 o在结构上,构件是语义描述、通信接口和实 现代码的复合体,是计算和数据存储单元, 是计算与状态存在的场所 o典型的构件包括:客户(Client)构件、服务 器(Server)构件、过滤器(Filter)构件和数 据库(Database)构件等 2.3软件体系结构的形式化描述 o构件可以小到只有一个过程,也可以大到包 含一个应用程序,可以包含函数、对象、进 程、二进制对象、类库和数据包等 o构件之间是相互独立的,构件隐藏了其具体 实现细节,通过接口来提供服务 o构件内部包含多种属性,例如:端口、类型 、语义、约束、演化和非功能属性等 2.3软件体系结构的形式化描述 o构件组合应该遵循以下三个原则: n使参与组合的构件保持自身的独立性,从而有利 于构件和所形成的复合构件具有更强的复用能力 和演化能力 n构件之间的组合应该由构件以外的实体来实施, 例如:连接件,实质上,构件组合就是构件之间 的交互,而不是构件服务的简单罗列 n构件组合与单个构件分开,意味着构件的交互与 计算分离,降低了构件之间的耦合,有利于构件 和交互模式的复用 2.3软件体系结构的形式化描述 n构件组合应有助于根据参与组合的构件的行为和 性质来推导复合构件的行为和性质,从而有助于 基于可复用构件的应用系统的开发 o在软件体系结构中,连接件是用来建立构件 之间交互和支配这些交互规则的构造模块 o构件之间的交互包括消息和信号量的传递, 功能和方法的调用,数据的传送和转换,以 及构件之间的同步关系和依赖关系等 2.3软件体系结构的形式化描述 o常见的连接件有:管道-过滤器体系结构风 格中的管道(pipe)、客户/服务器体系结构 风格中的通信协议和通信机制、以及数据库 和应用程序之间的SQL连接等 o连接件的接口是其所关联构件的一组交互点 ,这些交互点被称为角色 o角色代表了参与连接的构件的作用和地位, 体现了连接所具有的方向性 o角色有主动和被动、请求和响应之分 2.3软件体系结构的形式化描述 o连接件的主要特性是:可扩展性、互操作性 、动态连接性和请求响应性 n连接件的可扩展性是指:连接件允许动态地改变 被关联的构件集合和交互关系 n互操作性是指:被连接的构件通过连接件对其它 构件进行直接或间接操作 n动态连接性是指:对连接的动态约束,连接件对 所关联的构件可以实施不同的动态处理 n请求响应性是指响应的并发性和时序性 2.3软件体系结构的形式化描述 o对于构件而言,连接件是粘合剂,是构件交 互的实现 o连接件和构件之间的区别主要在于它们在软 件体系结构中承担着不同的作用 o连接件也是一组对象,把不同的构件连接起 来,形成体系结构的一部分 o约束(Constraint)是构件与其关系之间所必 须满足的条件和限制,描述了系统的配置关 系和拓扑结构,确定了体系结构调整的构件 和连接件的关联关系 2.3软件体系结构的形式化描述 o约束是基于规则和参数进行描述的 o体系结构约束提供了相关限制,以确定构件 是否正确、连接接口是否匹配、以及连接件 的通信是否正确,同时,说明了实现要求行 为的语义组合 o约束将软件体系结构与系统需求紧密地联系 起来,在体系结构约束中,要求构件端口和 连接件角色之间是显示连接的 2.4软件体系结构的生命周期 o软件体系结构工程=形式化模型+软件技术 +软件工程 n其中,形式化模型指软件体系结构模型 o软件体系结构生命周期是指:软件体系结构 在整个生存期间所经历的阶段和步骤 n软件体系结构的非形式化描述,经常用于软件体 系结构产生的初期,其思想通常是非常简单的, 常常由软件工程人员使用自然语言来表示它的概 念和原则 2.4软件体系结构的生命周期 n软件体系结构的规范化描述和分析,通过使用合 适的数学理论模型对非形式化描述进行规范,得 到了软件体系结构的形式化定义,使软件体系结 构的描述精确、无歧义 n软件体系结构的求精与验证,大型系统的体系结 构总是从抽象到具体,逐步求精而得到的 n软件体系结构的实施,将求精后的软件体系结构 应用于系统设计过程中,将构件和连接件有机地 组织在一起,形成系统的设计框架 2.4软件体系结构的生命周期 n软件体系结构的演化和扩展,系统需求的变化会 引起体系结构的扩展和改动,这就是软件体系结 构的演化 n软件体系结构的评价和度量,以体系结构为基础 ,开展系统的设计与实现工作,根据系统的运行 情况,对体系结构进行定性的评价和定量的度量 ,为体系结构重用提供依据,并从中取得经验教 训 n软件体系结构的终结,如果一个系统的体系结构 经过了多次演化和修改,其框架结构已经变得难 以理解,更重要的是不能满足软件设计要求 2.4软件体系结构的生命周期 o软件体系结构的生命周期 2.5软件体系结构的建模语言 o在描述软件的框架结构时,常用的方法主要 有两种: n实践派风格,使用通用的建模符号,将软件体系 结构设计与描述同传统的系统建模视为一体 n学院派风格,使用了体系结构描述语言 (Architecture Description Language, ADL) ,侧重于软件体系结构形式化理论的研究 2.5软件体系结构的建模语言 o实践派风格包括:图形表示方法、模块内连 接语言、基于构件的系统描述语言和UML描 述方法 n图形表示方法,使用矩形来代表系统的过程、模 块和子系统,利用有向线段来描述它们之间的关 系,这样,就形成了所谓的线框图 n模块内连接语言,采用一种或几种程序设计语言 的模块连接起来的模块内连接语言,具有程序设 计语言的严格语义基础,但是,在开发层次上过 于依赖程序设计语言,限制了处理和描述高层次 软件体系结构元素的能力 2.5软件体系结构的建模语言 n基于构件的系统描述语言,将软件描述成由许多 特定形式、相互作用的特殊实体所形成的组织或 系统,一般而言,这种描述方法都是针对特定领 域的特殊问题,不太适合描述和表达一般意义上 的软件体系结构 nUML描述方法,可以将Kruchten的“4+1”模型 映射到UML图上,逻辑视图利用类图来表示, 过程视图映射成活动图,开发视图使用构件图来 描述,物理视图映射为配置图,场景用顺序图和 协作图来表示 2.5软件体系结构的建模语言 o在学院派风格中,倡导使用体系结构描述语 言来刻画软件的框架结构 oADL是使用语言学方法对体系结构进行形式 化描述的一种有效手段,可以解决非形式化 描述的不足和缺陷 o在设计ADL的构件描述规范时,应该考虑以 下几个方面的内容: 2.5软件体系结构的建模语言 n接口:构件通过接口与外界进行交互,接口定义 了构件所提供的属性、服务、消息和操作,为了 对构件和包含该构件的体系结构进行分析,ADL 应能描述构件对外界环境的需求 n类型:构件类型将构件功能抽象为可复用的模块 ,一个构件类型在一个体系结构中可以被多次实 例化,一个构件类型也可以在多个体系结构中被 使用,针对这一特性,ADL应该提供相应的支持 2.5软件体系结构的建模语言 n语义:构件语义是关于构件行为的高层描述,可 用于分析软件体系结构、判断约束是否满足以及 保证不同层次体系结构之间的一致性,ADL应该 提供相应的实现机制 n约束:约束是系统及其组成部分的某种属性描述 ,破坏约束将导致不可接受的错误,ADL应该提 供相应的描述方法 n演化:构件演化是指对接口、行为和实现的修改 ,ADL应该保证这种修改以系统化的方式来进行 2.5软件体系结构的建模语言 n非功能特性:构件的非功能特性包括安全性、可 移植性和稳定性等,通常无法用行为规范来进行 描述,因此,ADL应该提供描述非功能特性的相 关手段 o配置关系描述了构件和连接件之间的关联关 系 o配置关系的描述可以使我们对系统的分布性 、并发性、可靠性、安全性和稳定性有更加 清楚的认识 2.5软件体系结构的建模语言 o在设计ADL的配置关系描述规范时,应该考 虑以下几个方面的内容: n可理解性:在使用ADL描述配置关系时,应该使 所有的参与者都能够得到明确的系统结构信息 n组合能力:ADL应该能够提供层次化的抽象机制 ,在不同的层次上对软件体系结构进行描述,这 将有利于构件的复用 n对异构的支持:ADL应该具有开放性,能够集成 异构的构件和连接件 2.5软件体系结构的建模语言 n可伸缩能力:ADL应该能够对将来可能扩大规模 的软件系统规范和开发提供直接的支持 n进化能力:在配置关系上,ADL应该提供进化的 描述手段,例如:对配置进行增、删、替换和重 连接的说明 n动态支持:在系统执行时,对体系结构能够进行 修改,在某些情况下,ADL应该提供相应的支持 o基于UML的软件体系结构描述 oUML模型由多种视图组成,每种视图从不同 的角度和侧面来描述应用系统 2.5软件体系结构的建模语言 n用例图是从用户的角度来描述系统功能,指出各 功能的操作者,用于捕获业务需求 n类图描述了系统中类的静态结构,定义了类的内 部结构以及类之间的关联关系 n包图描述了系统的层次结构,用于捕获系统的逻 辑结构 n活动图描述了满足用例要求所要进行的活动以及 活动之间的约束关系 n合作图描述对象之间的协作,显示对象之间的动 态合作关系 2.5软件体系结构的建模语言 n顺序图描述对象之间的动态合作关系,强调对象 之间的消息发送顺序,显示对象之间的交互关系 n状态图描述了一类对象所具有的可能状态及状态 之间的转移关系 n组件图描述了程序代码的物理结构 n配置图定义了软、硬件的物理体系结构,用于捕 获系统硬件资源和软件资源之间的映射关系 2.5软件体系结构的建模语言 2.5软件体系结构的建模语言 o在使用UML描述体系结构时,主要存在着三 种途径: n不改变UML的用法,将UML看作是一种软件体 系结构描述语言,直接对体系结构进行建模 n利用UML的扩展机制,约束UML元模型以支持 体系结构建模需求 n对UML元模型进行扩充,增加体系结构建模元 素,这种方法是对UML的元模型进行扩展,使 UML具有新的建模能力 2.5软件体系结构的建模语言 o对于每种体系结构元素,在UML中几乎都能 找到与之相对应的元素: nUML的用例、类、组件、结点、包和子系统与 体系结构中的构件相对应 nUML的关系支持体系结构中的连接件 nUML的接口支持体系结构中的接口 nUML中的规则相当于体系结构中的约束 n软件体系结构的配置可以使用UML的包图、组 件图和配置图来描述 2.5软件体系结构的建模语言 nUML预定义及用户自己扩展的构造型,例如: 精化和复制等,能够较好地表达体系结构的行为 o逻辑视图可以采用UML用例图来实现 o在开发视图中,使用UML的类图、对象图和 构件图来表示模块,用包来表示子系统,利 用连接表示模块或子系统之间的关联 o过程视图可以采用UML的状态图、顺序图和 活动图来实现 2.5软件体系结构的建模语言 o物理视图定义了功能单元的分布状况,描述 用于执行用例和保存数据的业务地点,可以 使用UML的配置图来实现 o在选择UML来描述软件体系结构时,会有以 下几方面的优点: nUML是当前主流的面向对象开发语言,已经被 越来越多的人所采用,容易被人们接受 nUML是一个开发标准,具有良好的扩展机制 2.5软件体系结构的建模语言 nUML引入了形式化定义(对象约束语言),是一种 半形式化的建模语言 nUML有丰富的支持工具,与程序设计语言和开 发过程无关 nUML支持多视图结构,能够从不同角度来刻画 软件体系结构,可以有效地用于分析、设计和实 现过程 nUML提供了丰富的建模概念和表示符号,能够 满足典型的软件开发过程 nUML的语义比较丰富,是一种通用和标准的建 模语言,易于理解和交流,发展已经非常成熟 2.5软件体系结构的建模语言 o在选择UML来描述软件体系结构时,也存在 着一些问题: n对体系结构的构造性建模能力不强,具体来说, UML还缺乏对体系结构风格和显式连接件的直 接支持 n对体系结构的描述只能到达非形式化的层次,不 能保证软件开发过程的可靠性,不能充分地表现 软件体系结构的本质 2.5软件体系结构的建模语言 o基于UML的软件体系结构(UML-Based Software Architecture,UBSA),是由一 组互相协作的组件构成 o通过组件及其之间的协作关系来定义软件系 统的体系结构 o在UBSA中,通过扩展点(Extension Points)来组装用户开发的组件,以适应用 户需求领域的不断变化 2.5软件体系结构的建模语言 oUBSA=Components, Connectors, Configurations, Interfaces, Roles, Ports, Extension Points 2.5软件体系结构的建模语言 o基于ADL的软件体系结构描述语言 nACME、Unicon、Wright、Darwin、Aesop 、SADL、MetaH、Rapide和C2 oACME nACME是一种体系结构互换语言,支持从一种 ADL向另一种ADL的规格说明转换 nACME的核心概念包括7种类型实体:构件、连 接件、系统、端口、角色、表述和表述图 2.5软件体系结构的建模语言 2.5软件体系结构的建模语言 oUnicon nUnicon的设计紧紧围绕着构件和连接件这两个 基本概念 n构件代表系统的计算单元和数据存储场所,用于 实现计算和数据存储的分离,将系统分解为多个 独立的部分,每一部分都有完善的语义和行为 n连接件是实现构件交互的类,在构件交互中起中 介作用 n在Unicon中,定义构件的语法如下: 2.5软件体系结构的建模语言 n在Unicon中,定义连接件的语法如下: n使用Unicon来描述客户/服务器体系结构: 2.5软件体系结构的建模语言 oWright nWright的主要思想是把连接件定义为明确的语 义实体,这些实体用协议的集合来表示,协议代 表了交互的各个参与角色及其相互作用 nWright提供了显式和独立的连接件规约,同时 支持复杂连接的定义 nWright定义连接件和构件的实例,在相应的端 口和角色之间建立连接(Attachment),从而得 到系统的配置关系 2.5软件体系结构的建模语言 n在Wright语言中,体系结构描述分为三个部分 : o第一部分定义了构件和连接件的类型,构件类型利 用端口(ports)和构件规格(component-spec)来 说明,每一个端口定义了该构件与其所处环境之间 的逻辑交互点 o第二部分是构件和连接件实例的集合 o在第三部分中,通过描述构件的哪个端口与连接件 的哪个角色相关联,来定义构件实例和连接件实例 的组合方式 2.5软件体系结构的建模语言 n使用Wright语言描述的客户/服务器体系结构示 例: 2.5软件体系结构的建模语言 oDarwin nDarwin使用接口来定义构件类型,接口包括提 供服务接口和请求服务接口 n系统配置定义了构件实例,给出了提供服务接口 和请求服务接口之间的绑定关系 nDarwin没有提供显式的连接件,在定义体系结 构风格时,通常给出它的交互模型,把构件的定 义留给体系结构设计师 2.5软件体系结构的建模语言 oAesop nAesop采用了产生式方法,将一组风格描述和一 个普遍使用的共享工具包联系在一起 n其目标是建立一个工具包,为特定领域的体系结 构快速构建提供设计支持环境 2.5软件体系结构的建模语言 oSADL nSADL语言明确区分了多种体系结构对象,例如 :构件和连接件,明确了它们的使用目的和适用 范围 nSADL语言不仅定义了体系结构的功能,而且也 定义了体系结构特定类的约束 nSADL的一个独特方面是对体系结构层次的表示 和推理 2.5软件体系结构的建模语言 oMetaH nMetaH主要支持实时、容错、安全、多处理和 嵌入式软件系统的分析、验证以及开发 nMetaH不仅能够使用文本方式的语法来表示体 系结构,还能以图形方式来描述体系结构 n在MetaH规格说明中,实体种类分为低层实体 和高层实体,低层实体描述了源代码模块(例如 :子程序和包)和硬件元素(诸如:内存和处理器 ),高层实体说明了如何利用已定义的实体来组 合形成新实体(例如:宏、系统和应用程序) 2.5软件体系结构的建模语言 oRapide nRapide是一种可执行的ADL,其目的在于:通 过定义模拟基于事件的行为,来对分布式并发系 统进行建模 n通过事件偏序集来刻画系统的行为 n构件计算由构件接收的事件来触发,并进一步产 生事件传送到其它构件,由此触发了其它计算 nRapide模型的执行结果是一个事件集合,其中 的事件满足一定的因果和时序关系 2.5软件体系结构的建模语言 oC2 n在C2语言中,连接件负责构件之间的消息传递 n构件维持状态,执行操作,通过top和bottom 端口和其它构件进行信息交互 n构件之间的消息交换不能直接进行,只能通过连 接件来完成 n每个构件端口最多只能和一个连接件相连,而连 接件可以和任意数目的构件和连接件相连 2.5软件体系结构的建模语言 o使用C2来描述会议安排系统,其体系结构如 下所示: 2.5软件体系结构的建模语言 oADL的优点: n能为软件建立精确和无二义性的模型,有效地支 持体系结构的求精和验证 oADL的缺点: n研究尚处于初级阶段,ADL自身所能提供的技术 支持还很有限 n没有统一可用的形式化描述规范和集成开发工具 ,还不能对软件工程生命周期的各个阶段提供全 面的支持 2.5软件体系结构的建模语言 n易用性比UML差,不利于开发人员的沟通和理 解,作为新兴技术,发展比较缓慢 n每种ADL都有各自的适用领域,还没

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论