课件—UML系统建模与设计(6)解读

上传人:我** 文档编号:112865226 上传时间:2019-11-07 格式:PPT 页数:83 大小:629KB
返回 下载 相关 举报
课件—UML系统建模与设计(6)解读_第1页
第1页 / 共83页
课件—UML系统建模与设计(6)解读_第2页
第2页 / 共83页
课件—UML系统建模与设计(6)解读_第3页
第3页 / 共83页
课件—UML系统建模与设计(6)解读_第4页
第4页 / 共83页
课件—UML系统建模与设计(6)解读_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《课件—UML系统建模与设计(6)解读》由会员分享,可在线阅读,更多相关《课件—UML系统建模与设计(6)解读(83页珍藏版)》请在金锄头文库上搜索。

1、1,在UML软件开发过程的客户需求分析与系统分析设计各个阶段都要对对象的动态行为进行建模。 在客户需求分析阶段需要用活动图对用例尽心描述,在系统分析阶段要建立基本的对象动态模型,在系统设计阶段要对已经建立的对象动态模型采用循环迭代的方式进一步细化和完善。 对象的动态模型包括交互模型和状态模型,对象的状态模型用状态图和活动图进行描述。,第六章 系统动态建模状态模型,2,本章目的: 了解对象状态变化和活动变化的描述方式 掌握UML绘制状态图和活动图的方法和步骤 掌握状态模型中并发行为的描述方法 掌握用状态图和活动图建立对象动态行为模 型的方法和步骤,3,状态图,状态图(State Diagram)

2、用来描述一个特定对象的所有可能的状态及其引起状态转移的事件。一个状态图包括一系列的状态以及状态之间的转移。 通过状态图可以了解一个对象所能到达的所有状态以及对象收到的事件(收到消息,超时,错误等)对对象状态的影响等。 所有的类,只要它有可标记的状态和复杂的行为都应该有一个状态图。状态图是对单个类的对象的生命周期进行建模,描述了对象的动态行为,每个对象被认为是事件驱动的孤立实体。 状态图是对类的一种补充描述,它展示了此类对象所具有的可能的状态以及某些事件发生时其状态的转移情况。,4,交互图为了显示某个特定的用例某个特定的场景下对象发生了哪些交互。 状态图描述对象整个生命其中表现的动态行为,对象响

3、应事件的动作,对象的状态会发生哪些改变。,5,6.1 状态图,6,什么是状态?,所有对象都具有状态,状态是对象执行了一系列活动的结果。当某个事件发生后,对象的状态将发生变化。 对象生命期中的某个条件或状况,在此期间对象将满足某些条件、执行某些活动或等待某些事件。 理解 对象在任何时候都会处于某种状态中,所有对象都有状态; 对象所处的状态决定了它如何响应所检测到的事件或所接受的消息; 通常,事件使对象从一个状态转向另一个状态(状态转移);,7,CD播放器(正常状态下),8,初态(start state) :显示状态图中状态机的执行(execution)的开始; 一个状态机只能有一个初态,因为每一

4、个执行都是从相同的地方开始。如果一个状态机是由多个状态图描述,则多张图用同一个初态; 嵌套状态中可以使用新的初态; 终态(end state) 表示一个最后的或者终端状态; 终态的数目可以是不确定的(可以不用画出来),对象状态的基本描述图符,9,中间状态的组成 状态名(name) 进入/退出动作(entry/exit action) 内部转移(internal transition) - 不导致状态改变的转换,不会执行entry和exit动作 子状态(substate) - 嵌套在另外一个状态中的状态 延迟事件(deferred event) - 延迟到下一状态中处理的事件,10,中间态,响应

5、事件的内部动作或活动的列表,定义为: 事件名 (参数表条件)/动作表达式,状态变量 是状态图所显示的类的属性。 活动 列出了在该状态时要执行的事件和动作。有3个标准事件: entry事件用于指明进入该状态时的特定动作。 exit事件用于指明退出该状态时的特定动作。 do事件用于指明在该状态中时执行的动作。,例:,11,12,含有子状态的状态被称为组合状态 状态名(name) 进入/退出动作(entry/exit action),13,组合状态的两种类型: 与子状态 或子状态,14,状态迁移 一个对象的状态的变迁称为状态迁移。通常是由事件触发的,此时应标出触发转移的事件表达式。如果转移上未标明事

6、件,则表示在源状态的内部活动执行完毕后自动触发转移。 条件判定:判定是在状态图中的一个特定的位置,工作流在此按判定条件的取值而发生分支。在状态中使用一个菱形来表示判断标志。,15,同步,同步:同步可视化地定义了并发工作流的分劈(fork)与接合(join) 分劈是一个源状态分为两个或两个以上的目标状态 接合是两个以上的源状态连接为一个目标状态 同步在状态图中用一条粗短线表示,成为同步杆,16,一个无人职守电梯升降的状态图,17,18,6.2 状态的分类与描述,对象属性的任何不同值的组合就是对象的一个状态,全部状态的集合描述了一个对象的状态空间。但是主要关注的是对于确定的状态有重要意义的属性,状

7、态属性。它的具体特征: (1)一般具有少量的可选值 (2)属性值的转换具有一定的限制 建立状态模型时,就是要正确找到一个对象的全部状态属性,并根据它们的值划分状态。,19,6-4 一个设备使用状况的状态图,20,简单状态与嵌套状态,简单状态:一个不含有嵌套状态的状态 组合状态:如果一个状态内嵌套了若干个状态,则称该状态为组合状态或超状态 子状态:嵌套在另一个状态中的状态,21,简单状态对应一个动作,嵌套状态中的每个被嵌套的状态图都对应于该嵌套状态内正在进行的一个活动。 动作:一组可执行的语句,动作具有以下特征: 迁移性:与状态迁移有关; 原子性:这组语句不可中断; 连续性:一组语句必须连续执行

8、,直到完毕。 活动:一组可执行的动作,活动具有以下特征: 有限性:完整的活动有一定的期限; 非原子性:这组动作可因某一事件发生而中断,22,6-5 描述设备(车床)状况的嵌套状态图,23,订单处理系统,24,使用组合状态的优点:避免了转移线交叉,使图面清晰,简化了状态图,更重要的是要清楚地表达了状态的结构关系,便于分清主次,分别对待,25,历史状态:使用历史状态,则可以存储给退出组合状态时所处的子状态,则返回组合状态时可以直接回到相应的子状态;,26,6-8 带有历史指示器的软件安装过程状态图,27,状态的顺序迁移,顺序状态表示状态的顺序迁移,也称为不相交状态,表明状态图中的状态没有迁移现象,

9、状态之间的迁移是串行的,即一个接一个顺序迁移。,28,状态的并发迁移与同步,一个状态也可以有多个并发的子状态,并发子状态之间用虚线分隔。,29,6-7 采用同步并发迁移图符描述的并发子状态图,30,状态图小结,为什么要对状态图进行建模? 对象可能会有不同的状态,某些行为依赖于这些状态。例如,按下开关按钮时,电灯将改变当前的状态(由关变开或由开变关),因此: 需要记录对象当前的状态 发生了某种事件才会引起状态间的转移 由一个状态转到另一个状态的过程通常通过方法调用实现 状态图通常作为对类图的补充,31,状态图的建模,建模步骤: 找出适合用模型描述其行为的类。 确定对象可能存在的状态。 确定引起状

10、态转换的事件。 确定转换进行时对象执行的相应动作。 对建模的结果进行相应的精化和细化。,32,书的状态图:,33,借阅证的状态图:,34,6.4 活动图,活动图(Activity Diagram)的应用非常广泛,它既可用来描述操作(类的方法)的行为,也可以描述用例和对象内部的工作过程,并可用于表示并行过程。 活动图是由状态图变化而来的,它们各自用于不同的目的。活动图描述了系统中各种活动的执行的顺序。刻化一个方法中所要进行的各项活动的执行流程。 活动图中一个活动结束后将立即进入下一个活动(在状态图中状态的变迁可能需要事件的触发)。,35,活动图用来建模某个过程的活动序列,以活动为中心; 状态图用

11、来建模对象生命周期中的所有阶段,以状态为中心,36,存款,37,一个简单的出库单发放活动图,6-12 检查合同、核对付款单并发放出库单的活动图,38,6.4.1 活动图中的几个基本概念,构成活动图的模型元素有:活动、转移、对象、信号、泳道等。 、活动 是构成活动图的核心元素,是具有内部动作的状态,由隐含的事件触发活动的转移。 活动的解释依赖于作图的目的和抽象层次,在概念层描述中,活动表示要完成的一些任务;在说明层和实现层中,活动表示类中的方法。 活动用圆角框表示,标注活动名。,39,动作状态 指执行原子的、不可中断的动作; 并在此动作完成后通过完成转换转向另一个状态的状态; 动作状态使用平滑的

12、圆角矩形表示,动作状态所表示的动作写在圆角矩形内部。,40,41,理解: 动作状态是原子的; 不可中断的状态; 瞬时的行为,它所占用的处理事件极短; 动作状态和状态图中的状态不同,它不能有入口动作和出口动作,更不能有内部转移; 在一张活动图中,动作状态允许多处出现,42,活动状态 用于表达状态机中的一个非原子的运行; 可以给出入口动作和出口动作等信息;,43,理解: 分解成其他子活动或动作状态; 可以被中断; 活动状态的内部活动可以用另一个活动图来表示; 和动作状态不同,活动状态可以有入口动作和出口动作,也可以有内部转移; 动作状态是活动状态的一个特例,如果某个活动状态只包括一个动作,那么它就

13、是一个动作状态。,44,2.转移 转移描述活动之间的关系,描述由于隐含事件引起的活动变迁,即转移可以连接各活动及特殊活动(初态、终态、判断、同步线)。 转移用带箭头的直线表示,可标注执行该转移的条件,无标注表示顺序执行。,45,在活动图中,使用一个称为同步条的水平粗线可以将一条转移分为多个并发执行的分支,或将多个转移合为一条转移。此时,只有输入的转移全部有效,同步条才会触发转移,进而执行后面的活动,如图所示。,46,理解: 汇合代表两个或多个并发控制流同步发生,当所有的控制流都达到汇合点后,控制才能继续往下进行。每个汇合可以有两个或多个输入转换和一个输出转换; 分叉可以用来描述并发线程,每个分

14、叉可以有一个输入转换和两个或多个输出转换,每个转换都可以是独立的控制流;,47,48,3 泳道 泳道进一步描述完成活动的对象,并聚合一组活动。活动图是另一种描述交互的方式,描述采取何种动作,做什么(对象状态改变),何时发生(动作序列),以及在何处发生(泳道)。 泳道也是一种分组机制。 泳道区分了负责活动的对象,明确地表示了哪些活动是由哪些对象进行的; 每个活动只能明确地属于一个泳道; 泳道没有顺序,不同泳道中的活动既可以顺序进行也可以并发进行,动作流和对象流允许穿越分隔线。,49,活动图说明了代表一般销售流程的业务用例工作流程。在此示例中,泳道代表组织中的各个部门。,50,6-14 销售合同从

15、签订到履约的活动图,51,4 对象流 对象流是动作状态或者活动状态与对象之间的依赖关系,表示动作使用对象或者动作对对象的影响。 活动图中可以出现对象,对象作为活动的输入输出,用虚箭头表示。 对象流中的对象特点: 一个对象可以由多个动作操纵; 一个动作输出的对象可以作为另一个动作输入的对象; 在活动图中,同一个对象可以多次出现,它的每一次出现表明该对象正处于对象生存期的不同时间点;,52,53,6-15 活动图中的对象及对象流,54,5 发送和接收信号 活动图中可发送和接收信号,发送符号对应于与转移联系在一起的发送短句。接收符号也同转移联系在一起。 转移又分两种:发送信号的转移和接收信号的转移。

16、发送和接收信号可以和消息的的发送对象和接收对象联系在一起。,55,56,aPrinter:Printer,Print(file),Print(file),打印,创建PS文件,在屏幕上的 报文框中显示“打印”,删除报文框,CustomerWindow. PrintAll Customers(),57,描述学生注册入学用例的活动图,58,活动图建模技术,识别要对其工作流描述的类或对象。 确定工作流的初始状态和终止状态,明确工作流的边界。 对动作状态或活动状态建模。 对动作流建模。 对对象流建模。 对建立的模型进行精化和细化。,59,实例,60,实例 “餐馆订餐”系统的用例图,61,“记录预约”用例的事件路径如下:,1接待员输入要预约的日期 2系统显示该日的预约 3有一张合适的餐桌可以使用,接待员输入顾客的姓名和电话号码、预约的时间、用餐人数和餐桌号 3a) 没有合适的餐桌可以使用 3a1) 用例终止 4系统记录

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

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

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