软件开发生命周期与统一建模语言UML06_第1页
软件开发生命周期与统一建模语言UML06_第2页
软件开发生命周期与统一建模语言UML06_第3页
软件开发生命周期与统一建模语言UML06_第4页
软件开发生命周期与统一建模语言UML06_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、动态模型动态模型软件开发生命周期与统一建模语言UML第第6章章 动态模型动态模型 v 6.1 动态模型概述动态模型概述 v 6.2 活动图活动图 6.2.1 定义活动图 6.2.2 如何建模活动图 6.2.3 实例活动图在用例模型中的作用 6.2.4 活动图与其它模型v 6.3 顺序图顺序图 6.3.1 定义顺序图 6.3.2 关于消息 6.3.3 对象的创建和销毁 6.3.4 顺序图的主要用途 6.3.5 顺序图实例动态模型动态模型软件开发生命周期与统一建模语言UML第第6章章 动态模型动态模型 v6.4 协作图协作图 6.4.1 定义协作图 6.4.2 综合实例v6.5 状态图状态图 6.

2、5.1 定义状态图 6.5.2 为什么要建模状态图 6.5.3 状态图映射成代码 6.5.4 状态图实例动态模型动态模型软件开发生命周期与统一建模语言UML6.1 动态模型概述v 一个完整的模型必然描述系统的静态和动态两个方面一个完整的模型必然描述系统的静态和动态两个方面 v 静态模型重在描绘系统的组成结构静态模型重在描绘系统的组成结构 v 动态模型描述系统的行为动态模型描述系统的行为 v UML提供如下动态模型:交互图(顺序图和协作图)、状态图、活动图提供如下动态模型:交互图(顺序图和协作图)、状态图、活动图 状态图用来描述某一特定对象所有可能的状态及状态间的转移,是对类图的补充 顺序图用来

3、描述对象间的动态交互关系,着重体现对象间消息传递的时间顺序 协作图用来描述相互协作的对象的交互关系和关联关系,着重体现对象间的静态关联关系 活动图主要用于描述用例内部的工作流程 动态模型动态模型软件开发生命周期与统一建模语言UML6.2 活动图v本节教学要求 理解:活动图的作用 掌握:活动图建模的方法动态模型动态模型软件开发生命周期与统一建模语言UML6.2.1 定义活动图v活动图用于描述系统、子系统、用例、程序模块活动图用于描述系统、子系统、用例、程序模块中的工作流,帮助理解系统高层活动的执行过程中的工作流,帮助理解系统高层活动的执行过程动态模型动态模型软件开发生命周期与统一建模语言UML活

4、动图的符号活动图的符号v 一个活动图必然有一个开一个活动图必然有一个开始状态始状态 v 至少有一个结束状态至少有一个结束状态 v 转移用来表示活动或状态转移用来表示活动或状态间的控制流间的控制流 v 有分支时要在分支路径中有分支时要在分支路径中注明分支条件注明分支条件 v 分岔用来开始并行处理分岔用来开始并行处理 v 联结用于把并行处理转联结用于把并行处理转换为单个处理换为单个处理 动态模型动态模型软件开发生命周期与统一建模语言UMLvATM机“登录”用例的活动图动态模型动态模型软件开发生命周期与统一建模语言UML游泳道v游泳道将活动图的活动状态分组,每一组表示负游泳道将活动图的活动状态分组,

5、每一组表示负责那些活动的业务组织,直接显示动作在哪一个责那些活动的业务组织,直接显示动作在哪一个业务组织中执行业务组织中执行v每一个活动都只能明确地属于一个泳道每一个活动都只能明确地属于一个泳道 动态模型动态模型软件开发生命周期与统一建模语言UML6.2.2 如何建模活动图(1)定义活动图范围,确定开始、结束状态。)定义活动图范围,确定开始、结束状态。(2)添加活动,建模主路径。)添加活动,建模主路径。(3)寻找分支和并行的情况,建模扩展路径。)寻找分支和并行的情况,建模扩展路径。(4)根据需要划分游泳道。)根据需要划分游泳道。动态模型动态模型软件开发生命周期与统一建模语言UML“餐馆订餐”系

6、统的用例图动态模型动态模型软件开发生命周期与统一建模语言UML“记录预约”用例的事件路径如下: 1接待员输入要预约的日期接待员输入要预约的日期2系统显示该日的预约系统显示该日的预约3有一张合适的餐桌可以使用,接待员输入顾客的姓名和有一张合适的餐桌可以使用,接待员输入顾客的姓名和电话号码、预约的时间、用餐人数和餐桌号电话号码、预约的时间、用餐人数和餐桌号 3a 没有合适的餐桌可以使用没有合适的餐桌可以使用 3a1 用例终止用例终止4系统记录并显示该预约系统记录并显示该预约 4a 输入的预约人数多于餐桌能容纳的人数输入的预约人数多于餐桌能容纳的人数 4a1 系统发出一个警告信息,询问用户是否想要继

7、系统发出一个警告信息,询问用户是否想要继续预约续预约 4a1a 如果回答如果回答“否否”,用例将不进行预约而终止,用例将不进行预约而终止 4a1b 如果回答如果回答“是是”,预约将被输入,并附有一,预约将被输入,并附有一个警告标志个警告标志动态模型动态模型软件开发生命周期与统一建模语言UML建模主事件流动态模型动态模型软件开发生命周期与统一建模语言UML建模扩展事件流动态模型动态模型软件开发生命周期与统一建模语言UML划分游泳道后的活动图动态模型动态模型软件开发生命周期与统一建模语言UML练习:1画活动图表示如下“自动售货机”的工作过程:顾客向机器投币;系统检查钱币的数量;系统显示可购买的饮料

8、种类;顾客选择想买的饮料;如果机器无法送出饮料,则系统提示顾客想购买的饮料缺货,要求顾客重新选择饮料,否则系统送出饮料;最后,顾客得到饮料。2试画出ATM自动取款机“取款”用例的活动图(参见4.5节的用例文档)。3画出春游的活动图,确定开始、结束状态,考虑天气、费用等因素,设计出分支、分岔。4对选课系统中的Add Course(添加课程)设计和制作活动图,将管理员输入课程信息作为起始的活动,内容如下:(1)管理员输入信息。(2)系统验证是否和已有课程冲突。(3)如果没有冲突,则系统添加新课程,提示课程添加成功。(4)系统重新进入管理主界面,显示所有课程。(5)结束。动态模型动态模型软件开发生命

9、周期与统一建模语言UML6.3 顺序图v本节教学要求 理解:顺序图如何表达对象间的交互关系,顺序图与类图的关系。 掌握:顺序图建模的方法,顺序图和类图之间的映射,顺序图与代码的映射。动态模型动态模型软件开发生命周期与统一建模语言UML6.3.1 定义顺序图v软件系统中的任务是通过对象之间的合作来完成的,这种合作称为交互。交互模型可以用来描述软件系统中的类、接口、组件、节点的实例的动态行为。交互模型包括顺序图和协作图。v顺序图用来建模对象间的交互,强调按时间顺序展开的信息的传递。它与活动图的相似之处是可以表示流程,但顺序图能进一步地将活动分配给对象。通常,一个顺序图只显示一个控制流 动态模型动态

10、模型软件开发生命周期与统一建模语言UMLATM机“登录成功”的顺序图动态模型动态模型软件开发生命周期与统一建模语言UML6.3.2 关于消息v1消息的类型(1)同步消息(Synchronous):表示该消息完成之前,同一个对象不能再发送下一条消息。(2)返回消息(Return):表示控制流返回到调用的活动对象。(3)异步消息(Asychronous):表示不必等待来自该消息的响应,同一个对象即可发出下一条消息。(4)简单消息(Flat):表示不区分同步或异步。同步消息异步消息返回消息简单消息动态模型动态模型软件开发生命周期与统一建模语言UMLv2消息的传入和传出消息传入某个对象,表示该对象是消

11、息的承担者;消息由某消息传入某个对象,表示该对象是消息的承担者;消息由某个对象传出,表示该对象是消息的发起者、调用者个对象传出,表示该对象是消息的发起者、调用者 动态模型动态模型软件开发生命周期与统一建模语言UML消息的传入和传出动态模型动态模型软件开发生命周期与统一建模语言UMLv 在在“订单订单”对象执行对象执行“结账结账”方方法的过程中传出了法的过程中传出了5条消息,说条消息,说明这个方法体中作了明这个方法体中作了5处方法调处方法调用:用:订单订单 . 结账结账()订单项订单项. 计算价钱计算价钱();订单项订单项. 计算税金计算税金();订单项订单项. 寻找最近的供应商寻找最近的供应商

12、();订单项订单项. 计算税金计算税金();(订单订单). 合计总价钱合计总价钱(); v 有有4条消息传入条消息传入“订单订单”对象,对象,说明说明“订单订单”类有以下方法:类有以下方法:订单订单 . 结账结账()订单订单 . 合计总价钱合计总价钱()订单订单 . 付款付款()订单订单 . 校验信用卡校验信用卡()动态模型动态模型软件开发生命周期与统一建模语言UML6.3.3 对象的创建和销毁v将将create消息发送给对象实例,从而即时创建消息发送给对象实例,从而即时创建对象,对象创建之后才具有生命线对象,对象创建之后才具有生命线 vdestroys消息用于销毁对象,给需要销毁的对消息用于

13、销毁对象,给需要销毁的对象发送这个消息,同时在该对象的生命线上放一象发送这个消息,同时在该对象的生命线上放一个个“”符号,表示对象的生命终止符号,表示对象的生命终止 动态模型动态模型软件开发生命周期与统一建模语言UML6.3.3 对象的创建和销毁教师试图修改学生的成绩,但该学生的成绩信息在系统中不存在动态模型动态模型软件开发生命周期与统一建模语言UML6.3.4 顺序图的主要用途 顺序图的主要用途之一是表示用例中的行为顺序 在系统开发的早期阶段,顺序图可以应用在高层场景的表达上;后续阶段,则可以确切地表示对象间的消息传递过程。 动态模型动态模型软件开发生命周期与统一建模语言UML6.3.5 顺

14、序图实例v一家民营企业希望开发一套网上报销系统,在系一家民营企业希望开发一套网上报销系统,在系统设计要求中规定:员工出差时必须填写出差申统设计要求中规定:员工出差时必须填写出差申请,每张出差申请上标注了报销限额。因而填写请,每张出差申请上标注了报销限额。因而填写报销时需填写出差申请编号,以便检查是否超过报销时需填写出差申请编号,以便检查是否超过限额。限额。 动态模型动态模型软件开发生命周期与统一建模语言UML6.3.5 顺序图实例v报销系统的类图动态模型动态模型软件开发生命周期与统一建模语言UML6.3.5 顺序图实例v报销成功的顺序图报销成功的顺序图动态模型动态模型软件开发生命周期与统一建模

15、语言UML练习:1现已有现已有4个类:客户、订单、订单行、零件目录,分别画出下个类:客户、订单、订单行、零件目录,分别画出下列工作流的顺序图:列工作流的顺序图:(1)创建订单行。客户对象向订单发送一个消息说明要订购的)创建订单行。客户对象向订单发送一个消息说明要订购的零件和数量,创建一个新的订单行对象,订单行对象向零件目零件和数量,创建一个新的订单行对象,订单行对象向零件目录对象获得零件价格。录对象获得零件价格。(2)删除订单行。客户对象向订单发送一个消息说明要删除的)删除订单行。客户对象向订单发送一个消息说明要删除的订单行对象,订单行对象被删除。订单行对象,订单行对象被删除。2画出画出ATM

16、系统系统“取款成功取款成功”的顺序图,表示出如下过程:某的顺序图,表示出如下过程:某人将卡插入读卡机,读卡机读卡,初始化屏幕;屏幕提示输入人将卡插入读卡机,读卡机读卡,初始化屏幕;屏幕提示输入用户密码,该用户输入其密码,屏幕向账户对象验证密码,发用户密码,该用户输入其密码,屏幕向账户对象验证密码,发出相符合的消息;屏幕向该用户提供选项,该用户选择取钱,出相符合的消息;屏幕向该用户提供选项,该用户选择取钱,并在屏幕的提示下输入提取金额;并在屏幕的提示下输入提取金额;ATM机验证用户账户金额,机验证用户账户金额,验证通过后在其账户中扣除相应金额并提供现金;屏幕提示是验证通过后在其账户中扣除相应金额

17、并提供现金;屏幕提示是否打印凭条,用户选择是,打印机打印凭条;屏幕提供选项,否打印凭条,用户选择是,打印机打印凭条;屏幕提供选项,用户选择退卡,系统退卡。用户选择退卡,系统退卡。动态模型动态模型软件开发生命周期与统一建模语言UML练习:3假设学生已经成功登录选课系统,假设学生已经成功登录选课系统,“成功选课(成功选课(Select Course)”的顺序图如下,请写出其含义,并画出相关的类图。的顺序图如下,请写出其含义,并画出相关的类图。动态模型动态模型软件开发生命周期与统一建模语言UML6.4 协作图v本节教学要求 理解:协作图和顺序图的区别与联系。 掌握:协作图和顺序图之间的转换。动态模型

18、动态模型软件开发生命周期与统一建模语言UML6.4.1 定义协作图v 协作图可以看做是对象图和顺序图的结合,它能表达对协作图可以看做是对象图和顺序图的结合,它能表达对象间的交互过程及对象间的关联关系象间的交互过程及对象间的关联关系 教师修改学生成绩的协作图教师修改学生成绩的协作图 动态模型动态模型软件开发生命周期与统一建模语言UML6.4.1 定义协作图v协作图和顺序图是一对孪生兄弟,它们都能表示协作图和顺序图是一对孪生兄弟,它们都能表示对象间的交互过程。但是它们的侧重点不同对象间的交互过程。但是它们的侧重点不同v顺序图清楚地表示了交互作用中的时间顺序,但顺序图清楚地表示了交互作用中的时间顺序

19、,但没有明确表示对象间的关系没有明确表示对象间的关系v协作图清楚地表示了对象间的关联关系,但时间协作图清楚地表示了对象间的关联关系,但时间顺序必须从顺序号获得顺序必须从顺序号获得 动态模型动态模型软件开发生命周期与统一建模语言UML6.5 状态图v本节教学要求 理解:状态图的作用。 掌握:状态图的建模方法,状态图到代码的映射。动态模型动态模型软件开发生命周期与统一建模语言UML6.5 状态图v 当前处于当前处于Locked状态,若发生状态,若发生coin事件,则变迁到事件,则变迁到Unlocked状态,状态,调用调用Unlock方法。方法。v 当前处于当前处于Unlocked状态,若发生状态,

20、若发生pass事件,则变迁到事件,则变迁到Locked状态,状态,调用调用Lock方法。方法。v 当前处于当前处于Unlocked状态,若发生状态,若发生coin事件,则变迁到事件,则变迁到Unlocked状态,状态,调用调用Thankyou方法。方法。v 当前处于当前处于Locked状态,若发生状态,若发生pass事件,则继续停留在事件,则继续停留在Locked状态,状态,调用调用Alarm方法方法 地铁十字转地铁十字转门的状态图门的状态图动态模型动态模型软件开发生命周期与统一建模语言UML状态图的基本符号 动态模型动态模型软件开发生命周期与统一建模语言UML为什么要建模状态图 v对象可能会

21、有不同的状态,某些行为依赖于这些状对象可能会有不同的状态,某些行为依赖于这些状态。例如,按下开关按钮时,电灯将改变当前的状态。例如,按下开关按钮时,电灯将改变当前的状态(由关变开或由开变关),因此:态(由关变开或由开变关),因此: 需要记录对象当前的状态 发生了某种事件才会引起状态间的转移 由一个状态转到另一个状态的过程通常通过方法调用实现 v状态图通常作为对类图的补充状态图通常作为对类图的补充 动态模型动态模型软件开发生命周期与统一建模语言UML状态图映射成代码状态图映射成代码 v将不同状态作为常数枚举,把当前状态存储在适将不同状态作为常数枚举,把当前状态存储在适当的数据成员中。当的数据成员

22、中。v依赖于状态的操作可以用开关语句对每个状态分依赖于状态的操作可以用开关语句对每个状态分别设一个别设一个case实现。每个实现。每个case表示来自特定状表示来自特定状态,用相应的消息表示转换。态,用相应的消息表示转换。v需求用专门的数据成员存储对象的历史状态需求用专门的数据成员存储对象的历史状态 动态模型动态模型软件开发生命周期与统一建模语言UML银行账户对象的状态图对应的代码参见教材对应的代码参见教材 动态模型动态模型软件开发生命周期与统一建模语言UML练习练习 v1对用户使用手机拨打电话的过程建立状态模对用户使用手机拨打电话的过程建立状态模型。手机开机时,处于空闲状态,当用户开始使型。手机开

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论