软件体系结构建模PPT演示文稿

上传人:W**** 文档编号:151012085 上传时间:2020-11-11 格式:PPT 页数:74 大小:218.50KB
返回 下载 相关 举报
软件体系结构建模PPT演示文稿_第1页
第1页 / 共74页
软件体系结构建模PPT演示文稿_第2页
第2页 / 共74页
软件体系结构建模PPT演示文稿_第3页
第3页 / 共74页
软件体系结构建模PPT演示文稿_第4页
第4页 / 共74页
软件体系结构建模PPT演示文稿_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《软件体系结构建模PPT演示文稿》由会员分享,可在线阅读,更多相关《软件体系结构建模PPT演示文稿(74页珍藏版)》请在金锄头文库上搜索。

1、1,第二章 软件体系结构建模,2,本章内容,2.1软件体系结构建模概述 2.2软件体系结构模型 2.3软件体系结构的形式化描述 2.4软件体系结构的生命周期 2.5软件体系结构的建模语言 2.6基于软件体系结构的开发,3,2.1软件体系结构建模概述,模型是对现实问题的逻辑抽象,能够从某些侧面来显示系统的重要性质,忽略其相关细节 软件体系结构建模,就是建立软件体系结构模型的方法和过程 软件体系结构模型以具体的形式来表现系统的框架结构 软件体系结构模型能够帮助人们从全局的角度来把握整个系统的框架结构,4,2.2软件体系结构模型,不同的风险承担者有着不同的软件质量属性需求,他们所关注的问题是不相同的

2、 不同的人从框架结构中所获取的信息也是不相同的,所以,软件体系结构模型应该是多维的,而不是一种单一的结构 软件体系结构模型分为5种:结构模型、框架模型、动态模型、过程模型和功能模型,5,2.2软件体系结构模型,结构模型:以构件、连接件及其之间的关联关系为基础来刻画系统的框架结构,力图通过结构来反映系统的语义 框架模型:框架模型与结构模型很类似,但是,它不太侧重框架的细节,而是更多地考虑了系统的整体结构 动态模型:动态模型是对结构模型和框架模型的补充,描述系统的“大颗粒”行为特性,例如:系统的重新配置和重新演化,6,2.2软件体系结构模型,过程模型:说明构造系统的步骤和过程,过程模型以某种过程脚

3、本的形式来体现 功能模型:该模型认为体系结构是由一组功能构件按层次组成的,下层构件向上层构件提供服务,可以看作是一种特殊的框架模型 5种模型各有所长,只有将5种模型有机地结合起来,才能形成一个完整的模型来刻画软件的框架结构,7,2.2软件体系结构模型,“4+1”视图模型,8,2.2软件体系结构模型,逻辑视图,也称概念视图,主要是支持系统功能需求的抽象描述,即系统最终将提供给用户什么样的服务,逻辑视图描述了系统的功能需求及其之间的相互关系 开发视图,也称模块视图,主要侧重于描述系统的组织,与逻辑视图密切相关,都描述了系统的静态结构 过程视图,主要侧重于描述系统的动态行为,即系统运行时所表现出来的

4、相关特性,着重解决系统的可靠性、吞吐量、并发性、分布性和容错性,9,2.2软件体系结构模型,物理视图,描述如何把系统软件元素映射到硬件上,通常要考虑系统的性能、规模和容错等问题,展示了软件在生命周期的不同阶段中所需要的物理环境、硬件配置和分布状况 场景视图,场景是用户需求和系统功能实例的抽象,设计者通过分析如何满足每个场景所要求的约束来分析软件的体系结构 逻辑视图定义了系统的目标,开发视图和过程视图提供了详细的系统设计实现方案,物理视图解决了系统的拓扑结构、安装和通信问题,场景反映了完成上述任务的组织结构,10,2.2软件体系结构模型,“4+1”视图模型的不足: “4+1”视图不能体现体系结构

5、的构造是多层次抽象的过程,不能充分表达系统的体系结构风格 数据作为系统的重要组成部分,在“4+1”视图中没有得到充分地体现 “4+1”视图不能充分地反映系统要素之间的联系,例如:构件、功能和角色之间的关联 在实现体系结构模型时,缺乏构造视图和建立视图之间关系的指导信息,11,2.2软件体系结构模型,软件体系结构模型分解为三类视图:模块视图、组件-连接件视图和分配视图 模块视图描述的是每个模块的功能和模块之间的相互关系,在模块视图下,又包括:分解视图、使用视图、分层视图和类视图等多个子视图 分配视图反映了软件元素在创建环境和执行环境中的分配关系,在分配视图下,又包括:部署视图、实现视图和工作分配

6、视图等多个子视图,12,2.2软件体系结构模型,在组件-连接件视图中,组件是计算的主要单元,连接件是组件之间相互通信的工具,组件根据其接口定义其所提供和需要的操作,而连接件则封装了两个或多个组件之间的互连协议,在组件-连接件视图下,又包括:进程视图、并发视图和共享数据视图等多个子视图 各种视图为软件质量属性的实现提供了依据,同时,软件质量属性的实现最终也要在各个视图中得以体现,各种视图构成了一个有机的整体,从不同的侧面来描述软件体系结构模型,13,2.3软件体系结构的形式化描述,软件体系结构,又被称为架构,指可预制和可重构的软件框架结构 构件是可预制和可重用的软件元素,是组成体系结构的基本计算

7、单元和数据存储单元 连接件也是可预制和可重用的软件元素,是构件之间的连接单元 构件和连接件之间的关系用约束来表示,14,2.3软件体系结构的形式化描述,软件体系结构核心模型(Software Architecture Core Model)=构件(Components)+连接件(Connectors)+约束(Constraints) 构件作为一个封装的实体,仅通过其接口与外部环境进行交互,而构件的接口是由一组端口组成的,每个端口表示构件与外部环境之间的交互点,15,2.3软件体系结构的形式化描述,连接件作为软件体系结构建模的主要实体,同样也有接口,连接件的接口是由一组角色构成的,每个角色定义了

8、该连接所表示交互的参与者 软件体系结构:=软件体系结构核心模型|软件体系结构风格 软件体系结构核心模型:=(构件,连接件,约束) 构件:=端口1,端口2,端口N,16,2.3软件体系结构的形式化描述,连接件:=角色1,角色2,角色M 约束:=(端口i,角色j), 软件体系结构风格:=管道-过滤器,客户/服务器,仓库,,17,2.3软件体系结构的形式化描述,软件体系结构的形式化描述,18,2.3软件体系结构的形式化描述,构件是具有一定功能和可明确辩识的软件单位 构件应该具备以下特点:语义完整性、语法正确性和可重用性 在结构上,构件是语义描述、通信接口和实现代码的复合体,是计算和数据存储单元,是计

9、算与状态存在的场所 典型的构件包括:客户(Client)构件、服务器(Server)构件、过滤器(Filter)构件和数据库(Database)构件等,19,2.3软件体系结构的形式化描述,构件可以小到只有一个过程,也可以大到包含一个应用程序,可以包含函数、对象、进程、二进制对象、类库和数据包等 构件之间是相互独立的,构件隐藏了其具体实现细节,通过接口来提供服务 构件内部包含多种属性,例如:端口、类型、语义、约束、演化和非功能属性等,20,2.3软件体系结构的形式化描述,构件组合应该遵循以下三个原则: 使参与组合的构件保持自身的独立性,从而有利于构件和所形成的复合构件具有更强的复用能力和演化能

10、力 构件之间的组合应该由构件以外的实体来实施,例如:连接件,实质上,构件组合就是构件之间的交互,而不是构件服务的简单罗列 构件组合与单个构件分开,意味着构件的交互与计算分离,降低了构件之间的耦合,有利于构件和交互模式的复用,21,2.3软件体系结构的形式化描述,构件组合应有助于根据参与组合的构件的行为和性质来推导复合构件的行为和性质,从而有助于基于可复用构件的应用系统的开发 在软件体系结构中,连接件是用来建立构件之间交互和支配这些交互规则的构造模块 构件之间的交互包括消息和信号量的传递,功能和方法的调用,数据的传送和转换,以及构件之间的同步关系和依赖关系等,22,2.3软件体系结构的形式化描述

11、,常见的连接件有:管道-过滤器体系结构风格中的管道(pipe)、客户/服务器体系结构风格中的通信协议和通信机制、以及数据库和应用程序之间的SQL连接等 连接件的接口是其所关联构件的一组交互点,这些交互点被称为角色 角色代表了参与连接的构件的作用和地位,体现了连接所具有的方向性 角色有主动和被动、请求和响应之分,23,2.3软件体系结构的形式化描述,连接件的主要特性是:可扩展性、互操作性、动态连接性和请求响应性 连接件的可扩展性是指:连接件允许动态地改变被关联的构件集合和交互关系 互操作性是指:被连接的构件通过连接件对其它构件进行直接或间接操作 动态连接性是指:对连接的动态约束,连接件对所关联的

12、构件可以实施不同的动态处理 请求响应性是指响应的并发性和时序性,24,2.3软件体系结构的形式化描述,对于构件而言,连接件是粘合剂,是构件交互的实现 连接件和构件之间的区别主要在于它们在软件体系结构中承担着不同的作用 连接件也是一组对象,把不同的构件连接起来,形成体系结构的一部分 约束(Constraint)是构件与其关系之间所必须满足的条件和限制,描述了系统的配置关系和拓扑结构,确定了体系结构调整的构件和连接件的关联关系,25,2.3软件体系结构的形式化描述,约束是基于规则和参数进行描述的 体系结构约束提供了相关限制,以确定构件是否正确、连接接口是否匹配、以及连接件的通信是否正确,同时,说明

13、了实现要求行为的语义组合 约束将软件体系结构与系统需求紧密地联系起来,在体系结构约束中,要求构件端口和连接件角色之间是显示连接的,26,2.4软件体系结构的生命周期,软件体系结构工程=形式化模型+软件技术+软件工程 其中,形式化模型指软件体系结构模型 软件体系结构生命周期是指:软件体系结构在整个生存期间所经历的阶段和步骤 软件体系结构的非形式化描述,经常用于软件体系结构产生的初期,其思想通常是非常简单的,常常由软件工程人员使用自然语言来表示它的概念和原则,27,2.4软件体系结构的生命周期,软件体系结构的规范化描述和分析,通过使用合适的数学理论模型对非形式化描述进行规范,得到了软件体系结构的形

14、式化定义,使软件体系结构的描述精确、无歧义 软件体系结构的求精与验证,大型系统的体系结构总是从抽象到具体,逐步求精而得到的 软件体系结构的实施,将求精后的软件体系结构应用于系统设计过程中,将构件和连接件有机地组织在一起,形成系统的设计框架,28,2.4软件体系结构的生命周期,软件体系结构的演化和扩展,系统需求的变化会引起体系结构的扩展和改动,这就是软件体系结构的演化 软件体系结构的评价和度量,以体系结构为基础,开展系统的设计与实现工作,根据系统的运行情况,对体系结构进行定性的评价和定量的度量,为体系结构重用提供依据,并从中取得经验教训 软件体系结构的终结,如果一个系统的体系结构经过了多次演化和

15、修改,其框架结构已经变得难以理解,更重要的是不能满足软件设计要求,29,2.4软件体系结构的生命周期,软件体系结构的生命周期,30,2.5软件体系结构的建模语言,在描述软件的框架结构时,常用的方法主要有两种: 实践派风格,使用通用的建模符号,将软件体系结构设计与描述同传统的系统建模视为一体 学院派风格,使用了体系结构描述语言(Architecture Description Language,ADL) ,侧重于软件体系结构形式化理论的研究,31,2.5软件体系结构的建模语言,实践派风格包括:图形表示方法、模块内连接语言、基于构件的系统描述语言和UML描述方法 图形表示方法,使用矩形来代表系统的

16、过程、模块和子系统,利用有向线段来描述它们之间的关系,这样,就形成了所谓的线框图 模块内连接语言,采用一种或几种程序设计语言的模块连接起来的模块内连接语言,具有程序设计语言的严格语义基础,但是,在开发层次上过于依赖程序设计语言,限制了处理和描述高层次软件体系结构元素的能力,32,2.5软件体系结构的建模语言,基于构件的系统描述语言,将软件描述成由许多特定形式、相互作用的特殊实体所形成的组织或系统,一般而言,这种描述方法都是针对特定领域的特殊问题,不太适合描述和表达一般意义上的软件体系结构 UML描述方法,可以将Kruchten的“4+1”模型映射到UML图上,逻辑视图利用类图来表示,过程视图映射成活动图,开发视图使用构件图来描述,物理视图映射为配置图,场景用顺序图和协作图来表示,33,2.5软件体系结构的建模语言,在学院派风格中,倡导使用体系结构描述语言来刻画软件的框架结构 ADL是使用语言学方法对体系结构进行形式化描述的一种有效手段,可以解决非形式化描述的不足和缺陷 在设计ADL的构件描述规范时,应该考虑以下几个

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号