软件建模技术教学课件 曹静 第6章动态模型

上传人:w****i 文档编号:94568115 上传时间:2019-08-08 格式:PPT 页数:44 大小:753.50KB
返回 下载 相关 举报
软件建模技术教学课件 曹静 第6章动态模型_第1页
第1页 / 共44页
软件建模技术教学课件 曹静 第6章动态模型_第2页
第2页 / 共44页
软件建模技术教学课件 曹静 第6章动态模型_第3页
第3页 / 共44页
软件建模技术教学课件 曹静 第6章动态模型_第4页
第4页 / 共44页
软件建模技术教学课件 曹静 第6章动态模型_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《软件建模技术教学课件 曹静 第6章动态模型》由会员分享,可在线阅读,更多相关《软件建模技术教学课件 曹静 第6章动态模型(44页珍藏版)》请在金锄头文库上搜索。

1、软件建模技术,中国水利水电出版社,高职高专计算机类专业“十二五”规划教材,主编 曹静,软件建模技术,第二部分 实 践 篇,2,第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 顺序图实例,第6章 动态模型,6.4 协作图 6.4.1 定义协作图 6.4.2 综合实例 6.5 状态图 6.5.1 定义状态图 6.5.2 为什么要建模状态

2、图 6.5.3 状态图映射成代码 6.5.4 状态图实例,第6章 动态模型,教学要求 理解:动态建模在软件开发中的作用,动态模型与静态模型的关系。 掌握:动态建模的方法。,一个完整的模型必然描述系统的静态和动态两个方面 静态模型重在描绘系统的组成结构 动态模型描述系统的行为 UML提供如下动态模型:交互图(顺序图和协作图)、状态图、活动图 状态图用来描述某一特定对象所有可能的状态及状态间的转移,是对类图的补充 顺序图用来描述对象间的动态交互关系,着重体现对象间消息传递的时间顺序 协作图用来描述相互协作的对象的交互关系和关联关系,着重体现对象间的静态关联关系 活动图主要用于描述用例内部的工作流程

3、,6.1 动态模型概述,本节教学要求 理解:活动图的作用 掌握:活动图建模的方法,6.2 活动图,活动图用于描述系统、子系统、用例、程序模块中的工作流,帮助理解系统高层活动的执行过程,6.2 活动图,6.2.1 定义活动图,活动图的符号,一个活动图必然有一个开始状态 至少有一个结束状态 转移用来表示活动或状态间的控制流 有分支时要在分支路径中注明分支条件,分岔用来开始并行处理 联结用于把并行处理转换为单个处理,6.2 活动图,6.2.1 定义活动图,ATM机“登录”用例的活动图,6.2 活动图,6.2.1 定义活动图,游泳道将活动图的活动状态分组,每一组表示负责那些活动的业务组织,直接显示动作

4、在哪一个业务组织中执行 每一个活动都只能明确地属于一个泳道,6.2 活动图,6.2.1 定义活动图,(1)定义活动图范围,确定开始、结束状态。 (2)添加活动,建模主路径。 (3)寻找分支和并行的情况,建模扩展路径。 (4)根据需要划分游泳道。,6.2 活动图,6.2.2 如何建模活动图,“餐馆订餐”系统的用例图,6.2 活动图,6.2.3 实例活动图在用例模型中的作用,“记录预约”用例的事件路径如下:,1接待员输入要预约的日期 2系统显示该日的预约 3有一张合适的餐桌可以使用,接待员输入顾客的姓名和电话号码、预约的时间、用餐人数和餐桌号 3a 没有合适的餐桌可以使用 3a1 用例终止 4系统

5、记录并显示该预约 4a 输入的预约人数多于餐桌能容纳的人数 4a1 系统发出一个警告信息,询问用户是否想要继续预约 4a1a 如果回答“否”,用例将不进行预约而终止 4a1b 如果回答“是”,预约将被输入,并附有一个警告标志,6.2 活动图,6.2.3 实例活动图在用例模型中的作用,建模主事件流,6.2 活动图,6.2.3 实例活动图在用例模型中的作用,建模扩展事件流,6.2 活动图,6.2.3 实例活动图在用例模型中的作用,划分游泳道后的活动图,6.2 活动图,6.2.4 活动图与其他模型,1画活动图表示如下“自动售货机”的工作过程:顾客向机器投币;系统检查钱币的数量;系统显示可购买的饮料种

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

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

8、 顺序图,6.3.1 定义顺序图,1消息的类型 (1)同步消息(Synchronous):表示该消息完成之前,同一个对象不能再发送下一条消息。 (2)返回消息(Return):表示控制流返回到调用的活动对象。 (3)异步消息(Asychronous):表示不必等待来自该消息的响应,同一个对象即可发出下一条消息。 (4)简单消息(Flat):表示不区分同步或异步。,6.3 顺序图,6.3.2 关于消息,2消息的传入和传出 消息传入某个对象,表示该对象是消息的承担者;消息由某个对象传出,表示该对象是消息的发起者、调用者,6.3 顺序图,6.3.2 关于消息,消息的传入和传出,6.3 顺序图,6.3

9、.2 关于消息,在“订单”对象执行“结账”方法的过程中传出了5条消息,说明这个方法体中作了5处方法调用: 订单 . 结账() 订单项. 计算价钱(); 订单项. 计算税金(); 订单项. 寻找最近的供应商(); 订单项. 计算税金(); (订单). 合计总价钱(); ,有4条消息传入“订单”对象,说明“订单”类有以下方法: 订单 . 结账() 订单 . 合计总价钱() 订单 . 付款() 订单 . 校验信用卡(),6.3 顺序图,6.3.2 关于消息,将create消息发送给对象实例,从而即时创建对象,对象创建之后才具有生命线 destroys消息用于销毁对象,给需要销毁的对象发送这个消息,同

10、时在该对象的生命线上放一个“”符号,表示对象的生命终止,6.3 顺序图,6.3.3 对象的创建和销毁,教师试图修改学生的成绩,但该学生的成绩信息在系统中不存在,6.3 顺序图,6.3.3 对象的创建和销毁,顺序图的主要用途之一是表示用例中的行为顺序 在系统开发的早期阶段,顺序图可以应用在高层场景的表达上;后续阶段,则可以确切地表示对象间的消息传递过程。,6.3 顺序图,6.3.4 顺序图的主要用途,一家民营企业希望开发一套网上报销系统,在系统设计要求中规定:员工出差时必须填写出差申请,每张出差申请上标注了报销限额。因而填写报销时需填写出差申请编号,以便检查是否超过限额。,6.3 顺序图,6.3

11、.5 顺序图实例,报销系统的类图,6.3 顺序图,6.3.5 顺序图实例,报销成功的顺序图,6.3 顺序图,6.3.5 顺序图实例,练习:,1现已有4个类:客户、订单、订单行、零件目录,分别画出下列工作流的顺序图: (1)创建订单行。客户对象向订单发送一个消息说明要订购的零件和数量,创建一个新的订单行对象,订单行对象向零件目录对象获得零件价格。 (2)删除订单行。客户对象向订单发送一个消息说明要删除的订单行对象,订单行对象被删除。 2画出ATM系统“取款成功”的顺序图,表示出如下过程:某人将卡插入读卡机,读卡机读卡,初始化屏幕;屏幕提示输入用户密码,该用户输入其密码,屏幕向账户对象验证密码,发

12、出相符合的消息;屏幕向该用户提供选项,该用户选择取钱,并在屏幕的提示下输入提取金额;ATM机验证用户账户金额,验证通过后在其账户中扣除相应金额并提供现金;屏幕提示是否打印凭条,用户选择是,打印机打印凭条;屏幕提供选项,用户选择退卡,系统退卡。,6.3 顺序图,6.3.5 顺序图实例,3假设学生已经成功登录选课系统,“成功选课(Select Course)”的顺序图如下,请写出其含义,并画出相关的类图。,6.3 顺序图,6.3.5 顺序图实例,本节教学要求 理解:协作图和顺序图的区别与联系。 掌握:协作图和顺序图之间的转换。,6.4 协作图,协作图可以看做是对象图和顺序图的结合,它能表达对象间的

13、交互过程及对象间的关联关系,教师修改学生成绩的协作图,6.4 协作图,6.4.1 定义协作图,协作图和顺序图是一对孪生兄弟,它们都能表示对象间的交互过程。但是它们的侧重点不同 顺序图清楚地表示了交互作用中的时间顺序,但没有明确表示对象间的关系 协作图清楚地表示了对象间的关联关系,但时间顺序必须从顺序号获得,6.4 协作图,6.4.1 定义协作图,本节教学要求 理解:状态图的作用。 掌握:状态图的建模方法,状态图到代码的映射。,6.5 状态图,当前处于Locked状态,若发生coin事件,则变迁到Unlocked状态,调用Unlock方法。 当前处于Unlocked状态,若发生pass事件,则变

14、迁到Locked状态,调用Lock方法。 当前处于Unlocked状态,若发生coin事件,则变迁到Unlocked状态,调用Thankyou方法。 当前处于Locked状态,若发生pass事件,则继续停留在Locked状态,调用Alarm方法,地铁十字转门的状态图,6.5 状态图,6.5.1 定义状态图,状态图的基本符号,6.5 状态图,6.5.1 定义状态图,对象可能会有不同的状态,某些行为依赖于这些状态。例如,按下开关按钮时,电灯将改变当前的状态(由关变开或由开变关),因此: 需要记录对象当前的状态 发生了某种事件才会引起状态间的转移 由一个状态转到另一个状态的过程通常通过方法调用实现 状态图通常作为对类图的补充,6.5 状态图,6.5.2 为什么要建模状态图,将不同状态作为常数枚举,把当前状态存储在适当的数据成员中。 依赖于状态的操作可以用开关语句对每个状态分别设一个case实现。每个case表示来自特定状态,用相应的消息表示转换。 需求用专门的数据成员存储对象的历史状态,6.5 状态图,6.5.3 状态图映射成代码,银行账户对象的状态图,对应的代码参见教材,6.5 状态图,6.5.4 状态图实例,本章小结,1UML中的图及其相互关系 2面向对象分析设计的主要原则,Thank You !,中国水利水电出版社,

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

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

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