当前位置:文档之家› 软件开发生命周期与统一建模语言UML06

软件开发生命周期与统一建模语言UML06


软件开发生命周期与统一建模语言UML
银行账户对象的状态图
动态模型
对应的代码参见教材
软件开发生命周期与统一建模语言UML
练习
动态模型
1.对用户使用手机拨打电话的过程建立状态模 型。手机开机时,处于空闲状态,当用户开始使 用电话呼叫某人时,手机进入拨号状态。如果呼 叫成功,即电话接通,手机就处于通话状态;如 果呼叫不成功,如对方线路问题、关机、拒接等, 这时手机停止呼叫,重新进入空闲状态。手机在 空闲状态被呼叫。如果用户接听电话,用户处于 通话状态;如果用户未做出任何反应,可能他没 有听见铃声,手机一直处于空闲状态。
软件开发生命周期与统一建模语言UML
6.3 顺序图
动态模型
本节教学要求
理解:顺序图如何表达对象间的交互关系,顺序图与类图 的关系。
掌握:顺序图建模的方法,顺序图和类图之间的映射,顺
序图与代码的映射。
软件开发生命周期与统一建模语言UML
6.3.1 定义顺序图
动态模型
软件系统中的任务是通过对象之间的合作来完成 的,这种合作称为交互。交互模型可以用来描述 软件系统中的类、接口、组件、节点的实例的动 态行为。交互模型包括顺序图和协作图。 顺序图用来建模对象间的交互,强调按时间顺序 展开的信息的传递。它与活动图的相似之处是可 以表示流程,但顺序图能进一步地将活动分配给 对象。通常,一个顺序图只显示一个控制流
活动图的符号
动态模型
一个活动图必然有一个开 始状态 至少有一个结束状态 转移用来表示活动或状态 间的控制流 有分支时要在分支路径中 注明分支条件
分岔用来开始并行处理 联结用于把并行处理转 换为单个处理
软件开发生命周期与统一建模语言UML
动态模型
ATM机“登录”用例的活动 图
软件开发生命周期与统一建模语言UML
6.5 状态图
动态模型
本节教学要求
理解:状态图的作用。 掌握:状态图的建模方法,状态图到代码的映射。
软件开发生命周期与统一建模语言UML
6.5 状态图
动态模型
地铁十字转 门的状态图
当前处于Locked状态,若发生coin事件,则变迁到Unlocked状态, 调用Unlock方法。 当前处于Unlocked状态,若发生pass事件,则变迁到Locked状态, 调用Lock方法。 当前处于Unlocked状态,若发生coin事件,则变迁到Unlocked状态, 调用Thankyou方法。 当前处于Locked状态,若发生pass事件,则继续停留在Locked状态, 调用Alarm方法
软件开发生命周期与统一建模语言UML
6.3.3 对象的创建和销毁
动态模型
将create消息发送给对象实例,从而即时创建 对象,对象创建之后才具有生命线 destroys消息用于销毁对象,给需要销毁的对 象发送这个消息,同时在该对象的生命线上放一 个“×”符号,表示对象的生命终止
软件开发生命周期与统一建模语言UML
软件开发生命周期与统一建模语言UML
ATM机“登录成功”的顺序图
动态模型
软件开发生命周期与统一建模语言UML
6.3.2 关于消息
动态模型
1.消息的类型
同步消息 返回消息 异步消息 简单消息
(1)同步消息(Synchronous):表示该消息完成之前, 同一个对象不能再发送下一条消息。 (2)返回消息(Return):表示控制流返回到调用的活 动对象。 (3)异步消息(Asychronous):表示不必等待来自该 消息的响应,同一个对象即可发出下一条消息。 (4)简单消息(Flat):表示不区分同步或异步。
软件开发生命周期与统一建模语言UML
建模主事件流
动态模型
软件开发生命周期与统一建模语言UML
建模扩展事件流
动态模型
软件开发生命周期与统一建模语言UML
划分游泳道后的活动图
动态模型
软件开发生命周期与统一建模语言UML
练习:
动态模型
1.画活动图表示如下“自动售货机”的工作过程:顾客向机器 投币;系统检查钱币的数量;系统显示可购买的饮料种类; 顾客选择想买的饮料;如果机器无法送出饮料,则系统提示 顾客想购买的饮料缺货,要求顾客重新选择饮料,否则系统 送出饮料;最后,顾客得到饮料。 2.试画出ATM自动取款机“取款”用例的活动图(参见4.5节 的用例文档)。 3.画出春游的活动图,确定开始、结束状态,考虑天气、费用 等因素,设计出分支、分岔。 4.对选课系统中的Add Course(添加课程)设计和制作活动 图,将管理员输入课程信息作为起始的活动,内容如下: (1)管理员输入信息。 (2)系统验证是否和已有课程冲突。 (3)如果没有冲突,则系统添加新课程,提示课程添加成功。 (4)系统重新进入管理主界面,显示所有课程。 (5)结束。
6.3.3 对象的创建和销毁
ห้องสมุดไป่ตู้动态模型
教师试图修改学生的成绩,但该学生的成绩信息在系统中不存在
软件开发生命周期与统一建模语言UML
6.3.4 顺序图的主要用途
动态模型
顺序图的主要用途之一是表示用例中的行为顺序
在系统开发的早期阶段,顺序图可以应用在高层场景
的表达上;后续阶段,则可以确切地表示对象间的消
(2)添加活动,建模主路径。
(3)寻找分支和并行的情况,建模扩展路径。
(4)根据需要划分游泳道。
软件开发生命周期与统一建模语言UML
“餐馆订餐”系统的用例图
动态模型
软件开发生命周期与统一建模语言UML
“记录预约”用例的事件路径如下:
动态模型
1.接待员输入要预约的日期 2.系统显示该日的预约 3.有一张合适的餐桌可以使用,接待员输入顾客的姓名和 电话号码、预约的时间、用餐人数和餐桌号 3a 没有合适的餐桌可以使用 3a1 用例终止 4.系统记录并显示该预约 4a 输入的预约人数多于餐桌能容纳的人数 4a1 系统发出一个警告信息,询问用户是否想要继 续预约 4a1a 如果回答“否”,用例将不进行预约而终止 4a1b 如果回答“是”,预约将被输入,并附有一 个警告标志
状态图通常作为对类图的补充
软件开发生命周期与统一建模语言UML
状态图映射成代码
动态模型
将不同状态作为常数枚举,把当前状态存储在适
当的数据成员中。
依赖于状态的操作可以用开关语句对每个状态分
别设一个case实现。每个case表示来自特定状
态,用相应的消息表示转换。
需求用专门的数据成员存储对象的历史状态
6.1 动态模型概述
动态模型
一个完整的模型必然描述系统的静态和动态两个方面
静态模型重在描绘系统的组成结构
动态模型描述系统的行为
UML提供如下动态模型:交互图(顺序图和协作图)、状态图、活动图
状态图用来描述某一特定对象所有可能的状态及状态间的转移,是对类 图的补充 顺序图用来描述对象间的动态交互关系,着重体现对象间消息传递的时 间顺序 协作图用来描述相互协作的对象的交互关系和关联关系,着重体现对象 间的静态关联关系 活动图主要用于描述用例内部的工作流程
软件开发生命周期与统一建模语言UML
第 6章
动态模型
动态模型
6.4 协作图
6.4.1 定义协作图
6.4.2 综合实例
6.5 状态图
6.5.1 定义状态图 6.5.2 为什么要建模状态图
6.5.3 状态图映射成代码
6.5.4 状态图实例
软件开发生命周期与统一建模语言UML
第 6章
动态模型
动态模型
6.1 动态模型概述 6.2 活动图
6.2.1 定义活动图 6.2.2 如何建模活动图
6.2.3 实例——活动图在用例模型中的作用
6.2.4 活动图与其它模型
6.3 顺序图
6.3.1 定义顺序图
6.3.2 关于消息 6.3.3 对象的创建和销毁 6.3.4 顺序图的主要用途 6.3.5 顺序图实例
软件开发生命周期与统一建模语言UML
练习:
动态模型
3.假设学生已经成功登录选课系统,“成功选课( Select Course)” 的顺序图如下,请写出其含义,并画出相关的类图。
软件开发生命周期与统一建模语言UML
6.4 协作图
动态模型
本节教学要求
理解:协作图和顺序图的区别与联系。 掌握:协作图和顺序图之间的转换。
息传递过程。
软件开发生命周期与统一建模语言UML
6.3.5 顺序图实例
动态模型
一家民营企业希望开发一套网上报销系统,在系 统设计要求中规定:员工出差时必须填写出差申 请,每张出差申请上标注了报销限额。因而填写 报销时需填写出差申请编号,以便检查是否超过 限额。
软件开发生命周期与统一建模语言UML
软件开发生命周期与统一建模语言UML
6.4.1 定义协作图
动态模型
协作图可以看做是对象图和顺序图的结合,它能表达对 象间的交互过程及对象间的关联关系
教师修改学生成绩的协作图
软件开发生命周期与统一建模语言UML
6.4.1 定义协作图
动态模型
协作图和顺序图是一对孪生兄弟,它们都能表示 对象间的交互过程。但是它们的侧重点不同 顺序图清楚地表示了交互作用中的时间顺序,但 没有明确表示对象间的关系 协作图清楚地表示了对象间的关联关系,但时间 顺序必须从顺序号获得
软件开发生命周期与统一建模语言UML
状态图的基本符号
动态模型
软件开发生命周期与统一建模语言UML
为什么要建模状态图
动态模型
对象可能会有不同的状态,某些行为依赖于这些状
态。例如,按下开关按钮时,电灯将改变当前的状
相关主题