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

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