书签 分享 收藏 举报 版权申诉 / 44
上传文档赚钱

类型UML与软件体系结构建模课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3347720
  • 上传时间:2022-08-22
  • 格式:PPT
  • 页数:44
  • 大小:939KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《UML与软件体系结构建模课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    UML 软件 体系结构 建模 课件
    资源描述:

    1、徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏第1页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏第2页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏n将UML看作是一种软件体系结构描述语言进行软件体系结构建模n利用UML的扩展机制约束UML元模型以支持软件体系结构建模的需要n对UML的元模型进行扩展,使其直接支持软件体系结构的概念 第3页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏n第一种方法最简单,其实质是利用现有的UML符号表示软件体系结构nUML用户能很容易地理解所建立的软件体系结构模型,并可以用与UML兼容的工具对其进行操纵n现有的UML结构无法和软件体系结构的概念显式

    2、地直接对应。因此,它们之间的对应关系必须由建模人员维护 第4页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏n第二种方法是使用带约束的UML进行软件体系结构建模n这种方法能显式地表示软件体系结构的约束,所建立的软件体系结构模型仍然可用标准的UML工具进行操纵,UML用户理解起来也比较容易n对OCL约束进行检查的工具还不是太多。元元模型元模型模型用户对象显式约束显式约束UML模型以支持体系结构建模模型以支持体系结构建模第5页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏n第三种方法是对UML的元模型进行扩展,这种扩展使UML能引入新的建模能力n可使UML中包含各种ADL所具有的优良特

    3、性,并且具有直接支持软件体系结构建模的能力n扩展后的概念不符合UML标准,因而与UML工具不兼容元模型模型用户对象元元模型扩展扩展UML元模型以支持体系结构建模元模型以支持体系结构建模第6页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏n“到底什么是软件体系结构”这个问题上还存在着争议,更不用说在“如何使用UML进行软件体系结构建模”n为评估UML对软件体系结构建模的支持程度,下面用UML以与专门的体系结构描述语言ADL相同的方式进行应用程序的软件体系结构建模n评价UML的软件体系结构建模能力n将之与ADL的软件体系结构建模能力进行直接比较 第7页,共44页。徐宝文徐宝文 周毓明周毓明

    4、卢红敏卢红敏n会议的发起者在安排会议时为了保证尽可能多的人参加,会向每个拟与会人员询问他们可以参加会议的日期(简称“选择集”)以及不能出席会议的日期(简称“排除集”)n会议的发起者也向素来表现积极的会议参与者征求有关会议方式、会议地点等方面的意见n会议发起者还向一些重要的会议参与者征求会议位置方面的其它问题 第8页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏n最后定的会议日期应该在会议发起者所指定的日期范围之内,且在任何一个排除集之外。理想情况下,它应在尽可能多的选择集之内。若无法找到满足这些条件的日期,那么称出现冲突n强冲突:若在指定的日期范围内和所有的排除集之外都找不到满足条件的会

    5、议日期n弱冲突:若能在指定的日期范围之内和所有的排除集之外但无法在所有选择集的交集内找到满足条件的日期 第9页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏冲突可以通过如下几种方法解决:n让会议发起者扩大会议日期范围n让某些会议参与者扩大其选择集或缩小其排除集n让某些会议参与者不参加会议第10页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏nC2风格要求构件之间只能通过消息传递的方式通信,而不能通过共享内存通信n一个C2体系结构是一个通过连接子将各并发构件连接在一起而构成的层次状网络。其中,每个构件所发送的通知消息应与其操作相对应,而不是与接收通知消息的构件的操作相对应 第11页,

    6、共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏n每个构件只知道位于其所在层之上的各构件所提供的服务,而不了解位于其所在层之下的各构件分别能提供什么服务。这就使体系结构中的一个高层构件可以具有不同的底层构件nC2风格改善了构件的可重用性和系统的易扩风格改善了构件的可重用性和系统的易扩展性展性nC2风格没有对构件或连接子的实现语言、构风格没有对构件或连接子的实现语言、构件到主机之间的映射、连接子之间使用的通件到主机之间的映射、连接子之间使用的通信协议以及构件的执行线程做任何约定信协议以及构件的执行线程做任何约定第12页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏nC2 SADL是一个支

    7、持按照C2风格进行软件体系结构建模的一种体系结构描述语言n用C2 SADL对会议调度者问题进行体系结构建模,目的是为了体会按照C2风格规则进行体系结构分解的细微之处,同时也作为评价相应UML模型的基础第13页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏Attendee-1Attendee-MIm portantAttendee-1Im portantAttendee-NMeetingInitiatorIm portantAttConnAttConnMainConn.会议调度系统会议调度系统C2风格的体系结构风格的体系结构第14页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏Mee

    8、tingInitiator构件仅通过上面的端构件仅通过上面的端口和体系结构的其它部分进行通信,它口和体系结构的其它部分进行通信,它在在behavior部分的部分的startup段说明段说明启动计算请求启动计算请求 第15页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏n每个Attendee-N和ImportantAttendee-N构件从Initiator接收会议调度请求,并且向它发送合适的信息。这两种类型的构件仅通过下面的端口和体系结构的其它部分进行通信第16页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏nImportantAttendee是Attendee构件的一个特化,它具

    9、有Attendee的所有功能并且增加了对会议地点进行选择的规约component ImportantAttendee is subtype Attendee(int and beh)interface bottom_domain is out LocPrefs(I:loc_type);in GetLocPrefs();behavior received_messages GetLocPrefs always_generate LocPrefs;end ImportantAttendee第17页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏nMeetingScheduler的软件体系结构对

    10、应的文本描述如下:第18页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏nUML提供了用来对软件构件、构件之间接口以及它们在主机上配置情况等进行建模的各种符号。但这些内部预定义符号并不适合于体系结构层构件的描述,其原因在于它们的抽象程度不是太高就是太低 nUML中的构件是需要消耗诸如存储器等机器资源的具体的可执行的程序片段。相反,软件体系结构中的构件是用来表示系统状态和行为的抽象概念。尽管体系结构构件的实例可由UML构件的实例来实现,但体系结构构件自身不是具体的 第19页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏nUML构件可以有任意数目的接口,其内部结构也可以千变万化,但体系

    11、结构的构件必须满足某些规则或约束从这个角度看,使用从这个角度看,使用UML中的类来模拟中的类来模拟软件体系结构的构件比较合适软件体系结构的构件比较合适 第20页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏n将UML作为一种ADL进行软件体系结构建模的关键是要确保UML设计既要受UML中现有建模特征的约束,也要受ADL自身所具有的特征的约束从这个角度看,用从这个角度看,用UML进行软件体系结构建模过程进行软件体系结构建模过程的第一步是用的第一步是用UML为所要建模的应用开发一个域模为所要建模的应用开发一个域模型,并且开发一个非形式化的体系结构图。其中,型,并且开发一个非形式化的体系结构图

    12、。其中,体系结构图是将域模型中的类映射为体系结构构件体系结构图是将域模型中的类映射为体系结构构件的关键的关键 第21页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏PersonAttendeeImportantAttendeeLocationDateMeetingMeetingInitiatorStronglyConflictsWithConflictsWith0.*0.*0.*0.*0.*0.*0.*0.*1.*1.*121111111InvitesProposesExcludesPrefersPrefers1会议调度系统的会议调度系统的UML类图类图(省去了每个类的细节省去了每个类的

    13、细节)第22页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏MtgInitG etPrefSet()G etExclSet()Rem oveExclSet()RequestWithdrawal(attendee)AddPrefDates()Im portantMtgInitG etLocPrefs()MtgAttendPrefSet(date_rng)ExclSet(date_rng)EquipReqts(equip_type)Im portantMtgAttend LocPrefs(loc_type)会议调度系统的类接口会议调度系统的类接口第23页,共44页。徐宝文徐宝文 周毓明周毓明

    14、 卢红敏卢红敏AttConnG etPrefSet()G etExclSet()Rem oveExclSet()RequestWithdrawal(Attendee)AddPrefDates()PrefSet(date_rng)ExclSet(date_rng)EquipReqts(equip_type)Im portantAttConnG etLocPrefs()LocPrefs(loc_type)MainConnC2连接子的连接子的UML类图表示类图表示第24页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏AttendeeImportantAttendeeAttConnImporta

    15、ntAttConnMainConnMeetingInitator0.*0.*1111MtgInitMtgInitImportant MtgInitImportant MtgInitImportant MtgInitImportantMtgAttendImportantMtgAttendImportantMtgAttendMtgAttendMtgAttend会议调度系统以会议调度系统以C2体系结构风格描述的体系结构风格描述的UML类图类图第25页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏AC:AttConnIAC:ImportantAttConnMC:MainConnMI:Meetin

    16、gInitator1:GetPrefSet()10:PrefSet(date_rng)11:PrefSet(date_rng)2:GetPrefSet()4:GetPrefSet()5:GetPrefSet()3:GetPrefSet()7:PrefSet(date_rng)6:PrefSet(date_rng)8:PrefSet(date_rng)9:PrefSet(date_rng):ImportantAttendee:Attendee会议调度系统的一个协作图会议调度系统的一个协作图第26页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏 利用UML进行体系结构建模的第二种方法是用OC

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

    18、支持这些新需求。核心符号的语义总是由与UML兼容的工具实施的,扩展符号的语义则由扩展之上的约束来实施。不同的扩展之间可能会产生依赖和冲突,它们应由开发人员来处理第28页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏n C2提供了根据相当通用的体系结构风格进行结构分解和基于事件交互的指南n Wright支持对单个体系结构元素的行为和交互建模n Rapid支持局部和全局行为约束的规约第29页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏AttendeeImportantAttendeeAttConnImportantAttConnMainConnMeetingInitator0.*0.

    19、*111111111以带以带“约束约束”的的UML表示的会议调度系统的体系结构表示的会议调度系统的体系结构第30页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏Wright从三个方面描述一个体系结构:n构件和连接子的类型n构件和连接子的实例n构件和连接子实例的配置 与与C2语言不同的是,语言不同的是,Wright语言并不要求以某种特定风格来进行语言并不要求以某种特定风格来进行软件体系结构的建模,而可以采用多种体系结构风格。然而,软件体系结构的建模,而可以采用多种体系结构风格。然而,Wright仍然对体系结构施加了某些拓扑上的约束。例如,仍然对体系结构施加了某些拓扑上的约束。例如,Wrig

    20、ht规定两个构件不能直接相连,而必须通过连接子相连,这一点和规定两个构件不能直接相连,而必须通过连接子相连,这一点和C2的约定相同。另一面,的约定相同。另一面,Wright也不允许两个连接子直接相连也不允许两个连接子直接相连 第31页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏nWright语言使用CSP的一个子集描述构件和连接子的行为以及它们的接口元素所支持的协议。如果CSP的这个子集定义的是“具有有限状态的进程”,那么可用UML状态机模拟Wright的行为规约nCSP进程是通过事件进行通信的实体(a)e?x(b)e!xe(x)/e(x)用用UML状态机模拟状态机模拟CSP的输入和输

    21、出事件的输入和输出事件n这两种类型的状态变迁可用来模拟Wright所能支持的更复杂的CSP表达式 第32页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏CSP概念CSP符号UML状态图前缀P=a Q二选一(确定性选择)P=b Q c R判定(非确定性选择)P=d Q e R并行复合P=Q|R成功的事件P=QQRPdebcQRPPQRaPPWright的的CSP表达式的表达式的UML状态机模版状态机模版第33页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏 请注意,请注意,CSP事件可能没有相关的数据,事件可能没有相关的数据,此时状态机的语义要求指明哪些实体生此时状态机的语义要求指明

    22、哪些实体生成事件以及哪些实体观察事件成事件以及哪些实体观察事件n每个Wright接口(构件的一个端口或者是连接子的一个角色)具有一个或多个操作。在Wright语言中,这些操作是隐式说明的,它们是一个端口或角色的CSP协议的一部分 第34页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏n在Wright中,一个连接子由一个角色集和一个胶水组成。其中,前者描述了交互构件所期望的行为,后者通过说明连接子的各角色交互方式来定义其行为。下面用UML元类定义Wright连接子。一个Wright连接子可以提供多个接口,并且能与其它类之间存在关联关系。Wright连接子是没有状态的,即它们没有直接的属性

    23、n在Wright中,一个构件实际上是由一个端口集和一个计算规约所组成的。其中,前者定义了构件的接口,后者则描述了构件的行为 第35页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏connector Pipe=role Writer=write Writer close role Reader=let ExitOnly=close in let DoRead=(read Reader read-eof ExitOnly)in DoRead ExitOnlyglue=let ReadOnly=Reader.read ReadOnly Reader.read-eof Reader.close

    24、Reader.close in let WriteOnly=Writer.write WriteOnly Writer.close in Writer.write glue Reader.read glue Writer.close ReadOnly Reader.close WriteOnly一个用一个用Wright描述的连接子描述的连接子第36页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏R e a d e rR e a d e rW rite r/W _ c lo s e/W _ w riteD o R e a d/R _ re a d-e o fExitO n ly/R _ c

    25、 lo s e/R _ re a dW rite O n lyW _ c lo s eR e a d O n lyR _ re a d-e o fR _ c lo s eR _ c lo s eR _ re a dR _ c lo s eW _ c lo s eW _ w riteP ip e管道连接子的管道连接子的UML状态机模型状态机模型 第37页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏nRapide是一种具有丰富语义并可以支持体系结构约束规约的软件体系结构描述语言 nRapide语言的基本行为模型是事件的偏序集。在Rapide中,构件的行为主要是通过事件来刻画的。对一个构件而

    26、言,它既可以观察到其外部环境中发生的事件,也可以生成其外部环境能观察到的事件。构件可以是多线程的,构件内的或构件间的多个线程的同步会导致各构件事件流之间的因果依赖关系第38页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏n第一种规约方法利用状态变迁规则描述构件的行为,也即指出构件在观察到一种事件模式后它应该产生何种事件模式作为回应n第二种规约方法利用事件模式约束描述构件或体系结构所生成的事件偏序集内容上的限制。当前的Rapide工具中所使用的事件模式约束指出构件或者体系结构的行为中不应发生的事件模式Rapide支持两种类型的基于事件的规约方法支持两种类型的基于事件的规约方法:第39页,共

    27、44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏这两种类型的规约中都用到了事件模式。我们可通过这两种类型的规约中都用到了事件模式。我们可通过各种各样的组合操作构作复杂的事件模式,这些操作各种各样的组合操作构作复杂的事件模式,这些操作能说明各事件在何时应该按照因果顺序依次发生、在能说明各事件在何时应该按照因果顺序依次发生、在何时可以独立发生、在何时必须一起发生以及在何时何时可以独立发生、在何时必须一起发生以及在何时只有其中的一个能发生等等只有其中的一个能发生等等第40页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏n每个平行的子状态中都包含一个循环,从而可达到重复选择执行规则以及重复检查约

    28、束的目的。显然,每次只能触发状态机中的一个规则,但具体触发哪个规则不确定。每当触发状态机中的一个约束,就生成一个表示违背了该约束的特殊信号.规则 1规则 m约束 1约束 n模拟模拟Rapide构件行为及行为约构件行为及行为约束的束的UML状态机模版状态机模版 第41页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏BankRule 1entry/Last:=Last+1Open_Account(Rule1:C)Last100/Assign_Account(Last)Rule 2Deposit(Rule2:A,Rule2:D)/New_Balance(Rule2:A,A ccountsRul

    29、e2:A)entry/A ccountsRule2:A:=A ccountsRule2:A+Rule2:DRule 3W ithdraw(Rule3:A,Rule3:D)/New_Balance(Rule3:A,A ccountsRule3:A)entry/A ccountsRule3:A:=A ccountsRule3:A+Rule3:DConstraint1New_Balance(Constraint1:A,Constraint1:D)Constraint1:D0.0/Constraint_ViolationConstraint2A ssign_A ccount(Constraint2:C

    30、1,Constraint2:A 1)A ssign_A ccount(Constraint2:C2,Constraint2:A 2)Constraint2:A 2=Constraint2:A 1/Constraint_Violation以以Rapide描述的描述的Bank构件的构件的UML状态机表示状态机表示第42页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏n对一个Rapide事件模式而言,可能存在许多能与其进行部分匹配的事件集。在找到一个能与其完全匹配的事件集之前,必须维护所有这些能与其进行部分匹配的事件集 n可在UML状态机中使用递归的子状态机引用表示Rapide事件模式的“重入

    31、”行为。一个子状态机引用实际上是一个根据名字引用其它状态机的伪状态 Constraint2Assign_Account(Constraint2:C2Constraint2:A2=Constraint2:A1/Constraint_ViolationincludeConstraint2Assign_Account(Constraint2:C1,Constraint2:A1)用子状态机引用表示用子状态机引用表示Rapide约束约束 第43页,共44页。徐宝文徐宝文 周毓明周毓明 卢红敏卢红敏n将UML看作是一种软件体系结构描述语言,其实质是利用现有的UML符号表示软件体系结构。该方法的优点在于UML用户能很容易地理解其建立的软件体系结构模型,并可用UML兼容的工具对其进行操纵n使用带约束的UML进行软件体系结构建模,其优点在于它能显式地表示软件体系结构的约束,其建立的软件体系结构模型仍然可用标准的UML工具进行操纵,也便于UML用户理解 利用利用UML进行软件体系结构建模的方法进行软件体系结构建模的方法:第44页,共44页。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:UML与软件体系结构建模课件.ppt
    链接地址:https://www.163wenku.com/p-3347720.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库