663第八章 UML与软件体系结构建模.ppt

上传人:sccc 文档编号:5632806 上传时间:2023-08-04 格式:PPT 页数:44 大小:488.01KB
返回 下载 相关 举报
663第八章 UML与软件体系结构建模.ppt_第1页
第1页 / 共44页
663第八章 UML与软件体系结构建模.ppt_第2页
第2页 / 共44页
663第八章 UML与软件体系结构建模.ppt_第3页
第3页 / 共44页
663第八章 UML与软件体系结构建模.ppt_第4页
第4页 / 共44页
663第八章 UML与软件体系结构建模.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《663第八章 UML与软件体系结构建模.ppt》由会员分享,可在线阅读,更多相关《663第八章 UML与软件体系结构建模.ppt(44页珍藏版)》请在三一办公上搜索。

1、第八章 UML与软件体系结构建模,UML与软件建模,2,UML用作体系结构描述语言 约束UML以支持软件体系结构建模,内容,3,将UML看作是一种软件体系结构描述语言进行软件体系结构建模利用UML的扩展机制约束UML元模型以支持软件体系结构建模的需要对UML的元模型进行扩展,使其直接支持软件体系结构的概念,软件体系结构建模方法(1),4,第一种方法最简单,其实质是利用现有的UML符号表示软件体系结构UML用户能很容易地理解所建立的软件体系结构模型,并可以用与UML兼容的工具对其进行操纵现有的UML结构无法和软件体系结构的概念显式地直接对应。因此,它们之间的对应关系必须由建模人员维护,软件体系结

2、构建模方法(2),5,第二种方法是使用带约束的UML进行软件体系结构建模这种方法能显式地表示软件体系结构的约束,所建立的软件体系结构模型仍然可用标准的UML工具进行操纵,UML用户理解起来也比较容易对OCL约束进行检查的工具还不是太多。,显式约束UML模型以支持体系结构建模,软件体系结构建模方法(3),6,第三种方法是对UML的元模型进行扩展,这种扩展使UML能引入新的建模能力可使UML中包含各种ADL所具有的优良特性,并且具有直接支持软件体系结构建模的能力扩展后的概念不符合UML标准,因而与UML工具不兼容,扩展UML元模型以支持体系结构建模,软件体系结构建模方法(4),7,“到底什么是软件

3、体系结构”这个问题上还存在着争议,更不用说在“如何使用UML进行软件体系结构建模”为评估UML对软件体系结构建模的支持程度,下面用UML以与专门的体系结构描述语言ADL相同的方式进行应用程序的软件体系结构建模评价UML的软件体系结构建模能力将之与ADL的软件体系结构建模能力进行直接比较,UML用作ADL,8,会议的发起者在安排会议时为了保证尽可能多的人参加,会向每个拟与会人员询问他们可以参加会议的日期(简称“选择集”)以及不能出席会议的日期(简称“排除集”)会议的发起者也向素来表现积极的会议参与者征求有关会议方式、会议地点等方面的意见会议发起者还向一些重要的会议参与者征求会议位置方面的其它问题

4、,UML用作ADL:体系结构建模实例(1),9,最后定的会议日期应该在会议发起者所指定的日期范围之内,且在任何一个排除集之外。理想情况下,它应在尽可能多的选择集之内。若无法找到满足这些条件的日期,那么称出现冲突强冲突:若在指定的日期范围内和所有的排除集之外都找不到满足条件的会议日期弱冲突:若能在指定的日期范围之内和所有的排除集之外但无法在所有选择集的交集内找到满足条件的日期,UML用作ADL:体系结构建模实例(2),10,冲突可以通过如下几种方法解决:让会议发起者扩大会议日期范围让某些会议参与者扩大其选择集或缩小其排除集让某些会议参与者不参加会议,UML用作ADL:体系结构建模实例(3),11

5、,C2风格要求构件之间只能通过消息传递的方式通信,而不能通过共享内存通信一个C2体系结构是一个通过连接子将各并发构件连接在一起而构成的层次状网络。其中,每个构件所发送的通知消息应与其操作相对应,而不是与接收通知消息的构件的操作相对应,UML用作ADL:C2概述(1),12,每个构件只知道位于其所在层之上的各构件所提供的服务,而不了解位于其所在层之下的各构件分别能提供什么服务。这就使体系结构中的一个高层构件可以具有不同的底层构件,UML用作ADL:C2概述(2),C2风格改善了构件的可重用性和系统的易扩展性C2风格没有对构件或连接子的实现语言、构件到主机之间的映射、连接子之间使用的通信协议以及构

6、件的执行线程做任何约定,13,UML用作ADL:C2 SADL建模(1),C2 SADL是一个支持按照C2风格进行软件体系结构建模的一种体系结构描述语言用C2 SADL对会议调度者问题进行体系结构建模,目的是为了体会按照C2风格规则进行体系结构分解的细微之处,同时也作为评价相应UML模型的基础,14,会议调度系统C2风格的体系结构,UML用作ADL:C2 SADL建模(2),15,UML用作ADL:C2 SADL建模(3),MeetingInitiator构件仅通过上面的端口和体系结构的其它部分进行通信,它在behavior部分的startup段说明启动计算请求,16,每个Attendee-N

7、和ImportantAttendee-N构件从Initiator接收会议调度请求,并且向它发送合适的信息。这两种类型的构件仅通过下面的端口和体系结构的其它部分进行通信,UML用作ADL:C2 SADL建模(4),17,ImportantAttendee是Attendee构件的一个特化,它具有Attendee的所有功能并且增加了对会议地点进行选择的规约,component ImportantAttendee is subtype Attendee(int and beh)interface bottom_domain is out LocPrefs(I:loc_type);in GetLocPr

8、efs();behavior received_messages GetLocPrefs always_generate LocPrefs;end ImportantAttendee,UML用作ADL:C2 SADL建模(5),18,MeetingScheduler的软件体系结构对应的文本描述如下:,UML用作ADL:C2 SADL建模(6),19,UML提供了用来对软件构件、构件之间接口以及它们在主机上配置情况等进行建模的各种符号。但这些内部预定义符号并不适合于体系结构层构件的描述,其原因在于它们的抽象程度不是太高就是太低,UML中的构件是需要消耗诸如存储器等机器资源的具体的可执行的程序片段

9、。相反,软件体系结构中的构件是用来表示系统状态和行为的抽象概念。尽管体系结构构件的实例可由UML构件的实例来实现,但体系结构构件自身不是具体的,UML用作ADL:UML建模(1),20,UML构件可以有任意数目的接口,其内部结构也可以千变万化,但体系结构的构件必须满足某些规则或约束,UML用作ADL:UML建模(2),从这个角度看,使用UML中的类来模拟软件体系结构的构件比较合适,21,将UML作为一种ADL进行软件体系结构建模的关键是要确保UML设计既要受UML中现有建模特征的约束,也要受ADL自身所具有的特征的约束,UML用作ADL:UML建模(3),从这个角度看,用UML进行软件体系结构

10、建模过程的第一步是用UML为所要建模的应用开发一个域模型,并且开发一个非形式化的体系结构图。其中,体系结构图是将域模型中的类映射为体系结构构件的关键,22,会议调度系统的UML类图(省去了每个类的细节),UML用作ADL:UML建模(4),23,UML用作ADL:UML建模(5),会议调度系统的类接口,24,C2连接子的UML类图表示,UML用作ADL:UML建模(6),25,会议调度系统以C2体系结构风格描述的UML类图,UML用作ADL:UML建模(7),26,会议调度系统的一个协作图,UML用作ADL:UML建模(8),27,利用UML进行体系结构建模的第二种方法是用OCL对UML元模型

11、中的现有元类施加某些约束。这种方法需要:从UML元模型中选择一个或多个元类,使它们适合充当给定的ADL建模结构定义一个能应用于这些元类的衍型,目的是将这些元类的语义约束为相关ADL特征所具有的语义,约束UML支持SA建模(1),28,该方法把UML看作是一种能为支持特定体系结构需求而进行扩展的核心符号这和元模型扩展是不同的:通过UML提供的扩展机制对其进行概念上的扩展,从而为体系结构设计者提供了UML中原来并不存在的其它建模工具,但UML元模型本身并未改变,OCL设施用来将UML约束为一个特定的UML兼容子集当开发中遇到新的需求时,进行新的扩展以支持这些新需求。核心符号的语义总是由与UML兼容

12、的工具实施的,扩展符号的语义则由扩展之上的约束来实施。不同的扩展之间可能会产生依赖和冲突,它们应由开发人员来处理,约束UML支持SA建模(2),29,C2提供了根据相当通用的体系结构风格进行结构分解和基于事件交互的指南 Wright支持对单个体系结构元素的行为和交互建模 Rapid支持局部和全局行为约束的规约,约束UML支持SA建模(3),30,以带“约束”的UML表示的会议调度系统的体系结构,约束UML支持SA建模:基于C2的扩展,31,Wright从三个方面描述一个体系结构:构件和连接子的类型构件和连接子的实例构件和连接子实例的配置,约束UML支持SA建模:基于Wright的扩展(1),与

13、C2语言不同的是,Wright语言并不要求以某种特定风格来进行软件体系结构的建模,而可以采用多种体系结构风格。然而,Wright仍然对体系结构施加了某些拓扑上的约束。例如,Wright规定两个构件不能直接相连,而必须通过连接子相连,这一点和C2的约定相同。另一面,Wright也不允许两个连接子直接相连,32,Wright语言使用CSP的一个子集描述构件和连接子的行为以及它们的接口元素所支持的协议。如果CSP的这个子集定义的是“具有有限状态的进程”,那么可用UML状态机模拟Wright的行为规约CSP进程是通过事件进行通信的实体,用UML状态机模拟CSP的输入和输出事件,这两种类型的状态变迁可用

14、来模拟Wright所能支持的更复杂的CSP表达式,约束UML支持SA建模:基于Wright的扩展(2),33,Wright的CSP表达式的UML状态机模版,约束UML支持SA建模:基于Wright的扩展(3),34,请注意,CSP事件可能没有相关的数据,此时状态机的语义要求指明哪些实体生成事件以及哪些实体观察事件每个Wright接口(构件的一个端口或者是连接子的一个角色)具有一个或多个操作。在Wright语言中,这些操作是隐式说明的,它们是一个端口或角色的CSP协议的一部分,约束UML支持SA建模:基于Wright的扩展(4),35,在Wright中,一个连接子由一个角色集和一个胶水组成。其中

15、,前者描述了交互构件所期望的行为,后者通过说明连接子的各角色交互方式来定义其行为。下面用UML元类定义Wright连接子。一个Wright连接子可以提供多个接口,并且能与其它类之间存在关联关系。Wright连接子是没有状态的,即它们没有直接的属性 在Wright中,一个构件实际上是由一个端口集和一个计算规约所组成的。其中,前者定义了构件的接口,后者则描述了构件的行为,约束UML支持SA建模:基于Wright的扩展(5),36,connector Pipe=role Writer=write Writer close role Reader=let ExitOnly=close in let D

16、oRead=(read Reader read-eof ExitOnly)in DoRead ExitOnlyglue=let ReadOnly=Reader.read ReadOnly Reader.read-eof Reader.close Reader.close in let WriteOnly=Writer.write WriteOnly Writer.close in Writer.write glue Reader.read glue Writer.close ReadOnly Reader.close WriteOnly,一个用Wright描述的连接子,约束UML支持SA建模:

17、基于Wright的扩展(6),37,管道连接子的UML状态机模型,约束UML支持SA建模:基于Wright的扩展(7),38,Rapide是一种具有丰富语义并可以支持体系结构约束规约的软件体系结构描述语言,Rapide语言的基本行为模型是事件的偏序集。在Rapide中,构件的行为主要是通过事件来刻画的。对一个构件而言,它既可以观察到其外部环境中发生的事件,也可以生成其外部环境能观察到的事件。构件可以是多线程的,构件内的或构件间的多个线程的同步会导致各构件事件流之间的因果依赖关系,约束UML支持SA建模:基于Rapide的扩展(1),39,第一种规约方法利用状态变迁规则描述构件的行为,也即指出构

18、件在观察到一种事件模式后它应该产生何种事件模式作为回应第二种规约方法利用事件模式约束描述构件或体系结构所生成的事件偏序集内容上的限制。当前的Rapide工具中所使用的事件模式约束指出构件或者体系结构的行为中不应发生的事件模式,Rapide支持两种类型的基于事件的规约方法:,约束UML支持SA建模:基于Rapide的扩展(2),40,这两种类型的规约中都用到了事件模式。我们可通过各种各样的组合操作构作复杂的事件模式,这些操作能说明各事件在何时应该按照因果顺序依次发生、在何时可以独立发生、在何时必须一起发生以及在何时只有其中的一个能发生等等,约束UML支持SA建模:基于Rapide的扩展(3),4

19、1,每个平行的子状态中都包含一个循环,从而可达到重复选择执行规则以及重复检查约束的目的。显然,每次只能触发状态机中的一个规则,但具体触发哪个规则不确定。每当触发状态机中的一个约束,就生成一个表示违背了该约束的特殊信号,模拟Rapide构件行为及行为约束的UML状态机模版,约束UML支持SA建模:基于Rapide的扩展(4),42,以Rapide描述的Bank构件的UML状态机表示,约束UML支持SA建模:基于Rapide的扩展(5),43,对一个Rapide事件模式而言,可能存在许多能与其进行部分匹配的事件集。在找到一个能与其完全匹配的事件集之前,必须维护所有这些能与其进行部分匹配的事件集 可

20、在UML状态机中使用递归的子状态机引用表示Rapide事件模式的“重入”行为。一个子状态机引用实际上是一个根据名字引用其它状态机的伪状态,用子状态机引用表示Rapide约束,约束UML支持SA建模:基于Rapide的扩展(6),44,将UML看作是一种软件体系结构描述语言,其实质是利用现有的UML符号表示软件体系结构。该方法的优点在于UML用户能很容易地理解其建立的软件体系结构模型,并可用UML兼容的工具对其进行操纵使用带约束的UML进行软件体系结构建模,其优点在于它能显式地表示软件体系结构的约束,其建立的软件体系结构模型仍然可用标准的UML工具进行操纵,也便于UML用户理解,利用UML进行软件体系结构建模的方法:,小结,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号