版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
UML系统分析与设计SystemAnalysis&Design冀振燕北京交通大学
第九章活动图活动图组成元素活动图的应用UML系统分析与设计第2版ZhenyanJi2活动图活动图主要是一个流图,描述了从活动到活动的流。活动是在状态机中进行的一个非原子的执行,它由一系列的动作组成。动作是由可执行的不可分的计算组成,这些计算可以引起系统的状态发生变化或者返回一个值。交互作用图强调从对象到对象的控制流。活动图则强调从活动到活动的控制流。活动图主要包含下列元素:●活动状态 ●动作状态●跃迁 ●对象UML系统分析与设计第2版ZhenyanJi3活动图活动图UML系统分析与设计第2版ZhenyanJi4组成元素动作状态在用活动图描述的控制流中,或者要计算为属性赋值的表达式,或者调用对象的操作,或者发送信号给对象,或者创建、破坏对象,所有这些可执行的、不可分的计算都被称为动作状态。UML系统分析与设计第2版ZhenyanJi5组成元素活动状态与动作状态相反,活动状态是非原子的、可以分解的,也就是说活动状态是可以被打断的。通常,活动状态需要一段时间才能完成。活动状态和动作状态的UML符号没有区别,但是活动状态可以有入口动作、出口动作(入口动作和出口动作分别是进入或离开状态时要执行的动作)和对子状态机的规定。UML系统分析与设计第2版ZhenyanJi6组成元素跃迁当状态的活动或动作完成时,控制流立即传递到下一个动作或活动状态。跃迁被用来表示从一个动作或活动状态传递到下一个动作或活动状态的路径。跃迁的UML符号可以用简单的有向线表示。UML系统分析与设计第2版ZhenyanJi7组成元素分支在流图中,还可以含有分支,分支定义了基于布尔表达式的替换路径。分支起始于判定。分支有一个输入,有两个或多个输出。在每个输出的跃迁上,均有一个布尔表达式,只有该表达式为真时,该输出跃迁才能发生。各个输出的护卫条件不应该重复,否则,控制流是有歧义的;但这些护卫条件应该覆盖所有的可能性,否则,控制流会停滞。可以规定一个输出跃迁的护卫表达式为else,如果没有其他的护卫表达式为真,控制流则转向该跃迁。UML系统分析与设计第2版ZhenyanJi8分叉和联结在UML中,使用同步条来规定这些并行控制流的分叉与联结(ForkandJoin)。同步条的UML符号是一条粗的水平线或垂直线。分叉和联结应该是平衡的,也就是说,离开分叉的控制流的数目应该与进入相应联结的控制流数目相等。并行控制流的活动可以通过发送信号来彼此通信。UML系统分析与设计第2版ZhenyanJi9组成元素分叉和联结UML系统分析与设计第2版ZhenyanJi10组成元素泳道活动图描述了某项活动发生了什么,但没有说明由谁来完成。在程序设计中,这意味着活动图没有描述出各个活动由哪个类来完成,泳道(Swimlane)解决了这一问题。泳道的UML符号用矩形框来表示。将对象名放在矩形框的顶部,将属于某个对象的活动放在该对象的泳道内,而泳道中的活动则由相应对象负责。UML系统分析与设计第2版ZhenyanJi11组成元素对象流与活动图有关的控制流可能涉及对象。可以将对象放在活动图中,并用箭头将对象和产生、破坏或修改该对象的活动或跃迁连接起来,这被称作对象流(ObjectFlow),因为它代表了对象在控制流中的参与。活动图除了可以说明对象流,还可以说明对象的角色、状态和属性值的变化。UML系统分析与设计第2版ZhenyanJi12组成元素对象流UML系统分析与设计第2版ZhenyanJi13活动图的应用通常可以将活动图用于以下两种情况。(1)为工作流建模。在为工作流建模时,应完成如下内容。确定工作流的中心。这是因为对于比较复杂的系统,用一个活动图描述所有重要的工作流是不可能的。选择与工作流有关的商业对象,并为每个重要的商业对象创建一个泳道。识别工作流初始状态的前置条件和工作流最终状态的后置条件,这有利于确定工作流的边界。UML系统分析与设计第2版ZhenyanJi14活动图的应用(接上页)从工作流的初始状态开始,确定随时间发生的活动和动作,并将它们作为活动状态或动作状态放在活动图中。对于复杂的动作或多次出现的动作集合,可以将它们合并为活动状态,再提供一个单独的活动图来展开活动状态。用跃迁连接活动状态和动作状态,并考虑分支、分叉和联结。如果在工作流中涉及重要的对象,则将对象放在图中,必要时描述对象属性值和状态的变化。UML系统分析与设计第2版ZhenyanJi15活动图的应用(2)为操作建模。为操作建立模型,应完成以下内容。收集与操作有关的抽象,包括操作的参数、返回类型、操作所在类的属性等。识别工作流初始状态的前置条件和最终状态的后置条件,还要识别出在操作执行过程中必须持有的类的不变量。从工作流的初始状态开始,确定随时间发生的活动和动作,并将它们作为活动状态或动作状态放在活动图中。必要时使用分支、分叉和联结。UML系统分析与设计第2版ZhenyanJi16publicvoidhandleThread(intstate){for(inti=0;i<controls.length;i++){if(state==CustomControlsContext.START){if(controls[i]instanceof
CustomControls){((CustomControls)controls[i]).start();}}elseif(state==CustomControlsContext.STOP){if(controls[i]instanceof
CustomControls){((CustomControls)controls[i]).stop();}}}}UML系统分析与设计第2版ZhenyanJi下面是一段Java源代码,是方法handleThread(intstate)的源代码,下页图示的活动图则描述了该方法的流程。17活动图UML系统分析与设计第2版ZhenyanJi18小结在UML中,活动图是为系统的动态方面建模的7个图之一。活动图主要是一个流图,它描述了从活动到活动的控制流,它还可以用来描述对象在控制流的不同点从一个状态转移到另一个状态时的对象流。本章介绍了活动图的语义和功能,并对活动图的组成部分,包括动作状态、活动状态、跃迁、分支、分叉和联结、泳道、对象流逐一进行了讲解,举例说明如何使用活动图为工作流建模和为操作建模。UML系统分析与设计第2版ZhenyanJi19UML系统分析与设计SystemAnalysis&Design冀振燕北京交通大学
第十章状态机图状态机图状态机图的应用UML系统分析与设计第2版ZhenyanJi21状态机图状态机图(StateMachineDiagrams)给出了一个状态机,强调了从状态到状态的控制流。状态机(StateMachine)定义了对象在生命周期中响应事件所经历的状态的序列以及对象对这些事件的响应。状态机由状态、跃迁、事件、活动、动作等组成。状态(State)代表对象在生命周期中的一种条件或状况,在这种状况下,对象满足某个条件,或执行某个动作、或等待某个事件。一个状态在一个有限的时间段内存在。UML系统分析与设计第2版ZhenyanJi22状态机图事件(Event)是一个重要事件的规范,该事件在时间和空间域中有一个位置。跃迁(Transition)是两个状态之间的关系,它表示第一个状态的对象将执行某个动作,如果规定的事件发生或规定的条件被满足,则对象进入第二个状态。活动(Activity)是状态机中正在执行的可分解的计算。动作(Action)是可执行的、不可分的计算,该计算造成了模型的状态变化或者值的返回。UML系统分析与设计第2版ZhenyanJi23状态机图状态机图UML系统分析与设计第2版ZhenyanJi24状态机图的应用交互作用图描述了多个对象间的交互作用,而状态机图描述单个对象在它的整个生命周期的行为。活动图描述了从活动到活动的控制流,状态机图描述了从事件到事件的控制流。状态机图可以用来描述整个系统、子系统、或类的动态方面,还可以描述用例的一个脚本。UML系统分析与设计第2版ZhenyanJi25状态机图的应用为一个事件驱动对象建模,应完成如下内容。确定状态机的上下文。状态机的上下文可以是类、用例、子系统或系统整体。确定初始状态和最终状态。通过考虑对象能够存在一段时间的条件,确定对象的稳定状态。确定稳定状态在对象生命周期中的局部排序。确定触发从状态到状态跃迁的事件。确定状态变化的动作。考虑使用子状态、分支、历史状态等来简化状态机图。确定是否所有的状态都在事件的某个组合中可达。确定没有状态是死状态。死状态是指没有事件或事件组合可以使对象从这个状态中跃出。检查状态机是否违反所期望的事件顺序和响应。UML系统分析与设计第2版ZhenyanJi26电梯系统的状态机图UML系统分析与设计第2版ZhenyanJi27…intsum=0;…publicintregister(Students){switch(state){caseOpen:if(sum<40){ state=Open; sum=sum+1; }elsestate=Close;break; caseClose: System.out.println(“theclassisfull”); } returnsum;}UML系统分析与设计第2版ZhenyanJi28下面是一段Java源代码和对应的状态机图小结状态机图描述了一个特定对象的所有可能状态,以及引起状态跃迁的事件。状态机图用来模拟系统的动态方面,这些动态方面指系统对象按事件发生顺序排序的行为。状态机图可以用来描述整个系统、子系统或类的动态方面,还可以用来描述用例的一个脚本。本章介绍了状态机图的语义和功能,并举例说明了如何应用状态机图为事件驱动的对象建模。UML系统分析与设计第2版ZhenyanJi29UML系统分析与设计SystemAnalysis&Design冀振燕北京交通大学
第十一章组件图与部署图组件图组件图的应用部署图部署图的应用UML系统分析与设计第2版ZhenyanJi31组件图组件图(ComponentDiagram)描述了组件及组件间的关系,表示了组件之间的组织和依赖关系。组件图是用来为面向对象系统的物理实现建模的两种图之一。组件图包含下列元素:组件。接口。依赖关系、类属关系、关联关系和实现关系。UML系统分析与设计第2版ZhenyanJi32组件图组件图UML系统分析与设计第2版ZhenyanJi33组件图的应用组件图为系统的实现视建模,通常可以用在下述4种情况。1.为源代码建模用组件图为源代码建模时,应注意以下内容:将源代码文件表示为文件的组件衍型。对于大系统,用包将源代码文件分组。考虑使用标记值来描述源代码文件的一些信息,例如,源代码文件的版本号、作者、修改日期等。使用依赖关系来描述这些文件之间的编译依赖关系。UML系统分析与设计第2版ZhenyanJi34组件图的应用2.为可执行版本建模可以用组件图来描述构成软件系统的组件以及组件间的关系。在为一个可执行版本建模时,应注意以下内容。确定系统的组件集。考虑组件集中每个组件的衍型。考虑组件集中组件之间的关系。UML系统分析与设计第2版ZhenyanJi35组件图的应用3.为数据库建模在为物理数据库建模时应注意以下内容。识别出模型中代表逻辑数据库模式的类。确定将这些类映射到表的策略。确定过程需要考虑数据库的物理分布。创建含有table组件的组件图,为映射进行可视化建模。如果可能,使用工具的帮助将逻辑设计转化为物理设计。UML系统分析与设计第2版ZhenyanJi36组件图的应用为数据库建模的组件图UML系统分析与设计第2版ZhenyanJi37组件图的应用4.为自适应系统建模在为自适应系统建模时,应注意以下内容。需要考虑从一个节点迁移到另一个节点的组件的物理分布。可以通过在组件图中使用位置标记值来标出组件实例的位置。如果需要描述引起组件迁移的活动,则需要创建含有组件实例的相应交互作用图。具有不同位置标记值的同一个组件实例可以在图中出现多次,以表示组件实例的位置变化。UML系统分析与设计第2版ZhenyanJi38部署图部署图(DeploymentDiagram)描述了节点和运行其上的组件的配置。部署图描述了运行系统的硬件拓扑,它为系统中物理节点、节点之间关系的静态方面建立了可视化的模型,并规定了构造的细节。部署图含有:节点。依赖、关联关系。UML系统分析与设计第2版ZhenyanJi39部署图课程表制定系统部署图UML系统分析与设计第2版ZhenyanJi40部署图的应用部署图通常用来描述下列3种系统的静态部署视。1.为嵌入式系统建模部署图可用来为构成嵌入式系统的设备和处理器建模。为嵌入式系统建模,应注意以下内容。确定嵌入式系统的节点。使用UML的扩充机制定义特定于系统的衍型(甚至使用特定图标),为不常见的设备提供可视化的表示。在部署图中,规定处理器和设备之间的关系。如果必要,为智能化的设备提供更详细的部署图。UML系统分析与设计第2版ZhenyanJi41自动加油站系统部署图UML系统分析与设计第2版ZhenyanJi42部署图的应用2.为客户/服务器系统建模客户/服务器系统是分布式系统的一种,这种系统需要考虑客户端和服务器端的网络连接以及系统的软件组件在节点上的物理分布,可以用部署图来描述这种系统的拓扑。为客户/服务器系统建模时,要注意以下内容。确定代表系统的客户端处理器、服务器端处理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025民间的借款合同范本2
- 2025搬家货运合同模板
- 2025年度年度水利工程设施维修管理协议3篇
- 二零二五年度2025年农业合作社合伙人合同协议3篇
- 2025年度农村房屋买卖合同(含房屋附属设施及土地开发)
- 二零二五年度农村住房建设智能化系统安装合同
- 2025年度大学毕业生就业意向与培养协议3篇
- 2025年度出差环境保护与可持续发展协议3篇
- 二零二五年度新型农村机井承包管理协议
- 2025年度体育用品商铺租赁合同范本(含赛事赞助合作)3篇
- 五年级学生读书心得(31篇)
- 社区人民调解工作培训课件
- GB/T 43579-2023区块链和分布式记账技术智能合约生命周期管理技术规范
- 肌萎缩侧索硬化症查房课件
- 数学与语言学、语言艺术的交叉研究
- 医院“无陪护”病房试点工作方案
- 清华大学大学物理-光的偏振
- 心理健康教育-网络与青少年
- 高中英语人教版(2019) 选择性必修一 Unit 3 课文语法填空(含答案)
- 2021-2022学年陕西省宝鸡市陈仓区北师大版六年级上册期末考试数学试卷(含答案解析)
- 水工-建筑物课件
评论
0/150
提交评论