第6章-动态模型课件_第1页
第6章-动态模型课件_第2页
第6章-动态模型课件_第3页
第6章-动态模型课件_第4页
第6章-动态模型课件_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

软件建模技术中国水利水电出版社高职高专计算机类专业“十二五”规划教材主编曹静软件建模技术第一部分基础篇1第二部分实践篇2第三部分工具篇

3gelishfw/gybcny/hd8go/sj93/mdwxz88/oemgc/189288/hzp580yjoem/oemdg/oemfy/xcdnpx/yanjigz/189286/xcdnpx/dgxcdndgxcpx/xcwxpx/xunchi-px/donghuijc/oemfy/0759mz/lczx188/189287/ystdzkj/023gree/glwxz/023midea/023chigo/023aux/023haier/023xiu/51/023vatti/meidix/ystdzkj/ystmach/ystcode/hthqdb/023midea/bbs/gz-bestally/gz-bestally/cwb1024..163/manage/#m=0&t=0.sina/gz-bestally/gzdzbjbw/adminbeat/index.aspystmach/bbs/forum.phpystcode/bbs/forum.php第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为什么要建模状态图6.5.3状态图映射成代码6.5.4状态图实例第6章动态模型教学要求理解:动态建模在软件开发中的作用,动态模型与静态模型的关系。掌握:动态建模的方法。一个完整的模型必然描述系统的静态和动态两个方面静态模型重在描绘系统的组成结构动态模型描述系统的行为UML提供如下动态模型:交互图(顺序图和协作图)、状态图、活动图

状态图用来描述某一特定对象所有可能的状态及状态间的转移,是对类图的补充顺序图用来描述对象间的动态交互关系,着重体现对象间消息传递的时间顺序协作图用来描述相互协作的对象的交互关系和关联关系,着重体现对象间的静态关联关系活动图主要用于描述用例内部的工作流程6.1动态模型概述本节教学要求理解:活动图的作用掌握:活动图建模的方法6.2活动图活动图用于描述系统、子系统、用例、程序模块中的工作流,帮助理解系统高层活动的执行过程6.2活动图6.2.1定义活动图

活动图的符号一个活动图必然有一个开始状态至少有一个结束状态转移用来表示活动或状态间的控制流有分支时要在分支路径中注明分支条件分岔用来开始并行处理联结用于把并行处理转换为单个处理6.2活动图6.2.1定义活动图

ATM机“登录”用例的活动图6.2活动图6.2.1定义活动图

游泳道将活动图的活动状态分组,每一组表示负责那些活动的业务组织,直接显示动作在哪一个业务组织中执行每一个活动都只能明确地属于一个泳道6.2活动图6.2.1定义活动图

(1)定义活动图范围,确定开始、结束状态。(2)添加活动,建模主路径。(3)寻找分支和并行的情况,建模扩展路径。(4)根据需要划分游泳道。6.2活动图6.2.2如何建模活动图

“餐馆订餐”系统的用例图6.2活动图6.2.3实例——活动图在用例模型中的作用

gelishfw/gybcny/hd8go/sj93/mdwxz88/oemgc/189288/hzp580yjoem/oemdg/oemfy/xcdnpx/yanjigz/189286/xcdnpx/dgxcdndgxcpx/xcwxpx/xunchi-px/donghuijc/oemfy/0759mz/lczx188/189287/ystdzkj/023gree/glwxz/023midea/023chigo/023aux/023haier/023xiu/51/023vatti/meidix/ystdzkj/ystmach/ystcode/hthqdb/023midea/bbs/gz-bestally/gz-bestally/cwb1024..163/manage/#m=0&t=0.sina/gz-bestally/gzdzbjbw/adminbeat/index.aspystmach/bbs/forum.phpystcode/bbs/forum.php“记录预约”用例的事件路径如下:

1.接待员输入要预约的日期2.系统显示该日的预约3.有一张合适的餐桌可以使用,接待员输入顾客的姓名和电话号码、预约的时间、用餐人数和餐桌号

3a没有合适的餐桌可以使用

3a1用例终止4.系统记录并显示该预约

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.画活动图表示如下“自动售货机”的工作过程:顾客向机器投币;系统检查钱币的数量;系统显示可购买的饮料种类;顾客选择想买的饮料;如果机器无法送出饮料,则系统提示顾客想购买的饮料缺货,要求顾客重新选择饮料,否则系统送出饮料;最后,顾客得到饮料。2.试画出ATM自动取款机“取款”用例的活动图(参见4.5节的用例文档)。3.画出春游的活动图,确定开始、结束状态,考虑天气、费用等因素,设计出分支、分岔。4.对选课系统中的AddCourse(添加课程)设计和制作活动图,将管理员输入课程信息作为起始的活动,内容如下:(1)管理员输入信息。(2)系统验证是否和已有课程冲突。(3)如果没有冲突,则系统添加新课程,提示课程添加成功。(4)系统重新进入管理主界面,显示所有课程。(5)结束。6.2活动图6.2.4活动图与其他模型本节教学要求理解:顺序图如何表达对象间的交互关系,顺序图与类图的关系。掌握:顺序图建模的方法,顺序图和类图之间的映射,顺序图与代码的映射。6.3顺序图软件系统中的任务是通过对象之间的合作来完成的,这种合作称为交互。交互模型可以用来描述软件系统中的类、接口、组件、节点的实例的动态行为。交互模型包括顺序图和协作图。顺序图用来建模对象间的交互,强调按时间顺序展开的信息的传递。它与活动图的相似之处是可以表示流程,但顺序图能进一步地将活动分配给对象。通常,一个顺序图只显示一个控制流

6.3顺序图6.3.1定义顺序图

gelishfw/gybcny/hd8go/sj93/mdwxz88/oemgc/189288/hzp580yjoem/oemdg/oemfy/xcdnpx/yanjigz/189286/xcdnpx/dgxcdndgxcpx/xcwxpx/xunchi-px/donghuijc/oemfy/0759mz/lczx188/189287/ystdzkj/023gree/glwxz/023midea/023chigo/023aux/023haier/023xiu/51/023vatti/meidix/ystdzkj/ystmach/ystcode/hthqdb/023midea/bbs/gz-bestally/gz-bestally/cwb1024..163/manage/#m=0&t=0.sina/gz-bestally/gzdzbjbw/adminbeat/index.aspystmach/bbs/forum.phpystcode/bbs/forum.phpATM机“登录成功”的顺序图6.3顺序图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.2关于消息

在“订单”对象执行“结账”方法的过程中传出了5条消息,说明这个方法体中作了5处方法调用:订单.结账(){

订单项.计算价钱();

订单项.计算税金();

订单项.寻找最近的供应商();

订单项.计算税金();

… (订单).合计总价钱();

}有4条消息传入“订单”对象,说明“订单”类有以下方法:订单.结账()订单.合计总价钱()订单.付款()订单.校验信用卡()6.3顺序图6.3.2关于消息

将create消息发送给对象实例,从而即时创建对象,对象创建之后才具有生命线destroys消息用于销毁对象,给需要销毁的对象发送这个消息,同时在该对象的生命线上放一个“×”符号,表示对象的生命终止6.3顺序图6.3.3对象的创建和销毁

教师试图修改学生的成绩,但该学生的成绩信息在系统中不存在6.3顺序图6.3.3对象的创建和销毁

顺序图的主要用途之一是表示用例中的行为顺序在系统开发的早期阶段,顺序图可以应用在高层场景的表达上;后续阶段,则可以确切地表示对象间的消息传递过程。6.3顺序图6.3.4顺序图的主要用途一家民营企业希望开发一套网上报销系统,在系统设计要求中规定:员工出差时必须填写出差申请,每张出差申请上标注了报销限额。因而填写报销时需填写出差申请编号,以便检查是否超过限额。6.3顺序图6.3.5顺序图实例

gelishfw/gybcny/hd8go/sj93/mdwxz88/oemgc/189288/hzp580yjoem/oemdg/oemfy/xcdnpx/yanjigz/189286/xcdnpx/dgxcdndgxcpx/xcwxpx/xunchi-px/donghuijc/oemfy/0759mz/lczx188/189287/ystdzkj/023gree/glwxz/023midea/023chigo/023aux/023haier/023xiu/51/023vatti/meidix/ystdzkj/ystmach/ystcode/hthqdb/023midea/bbs/gz-bestally/gz-bestally/cwb1024..163/manage/#m=0&t=0.sina/gz-bestally/gzdzbjbw/adminbeat/index.aspystmach/bbs/forum.phpystcode/bbs/forum.php报销系统的类图6.3顺序图6.3.5顺序图实例

报销成功的顺序图6.3顺序图6.3.5顺序图实例

练习:1.现已有4个类:客户、订单、订单行、零件目录,分别画出下列工作流的顺序图:(1)创建订单行。客户对象向订单发送一个消息说明要订购的零件和数量,创建一个新的订单行对象,订单行对象向零件目录对象获得零件价格。(2)删除订单行。客户对象向订单发送一个消息说明要删除的订单行对象,订单行对象被删除。2.画出ATM系统“取款成功”的顺序图,表示出如下过程:某人将卡插入读卡机,读卡机读卡,初始化屏幕;屏幕提示输入用户密码,该用户输入其密码,屏幕向账户对象验证密码,发出相符合的消息;屏幕向该用户提供选项,该用户选择取钱,并在屏幕的提示下输入提取金额;ATM机验证用户账户金额,验证通过后在其账户中扣除相应金额并提供现金;屏幕提示是否打印凭条,用户选择是,打印机打印凭条;屏幕提供选项,用户选择退卡,系统退卡。6.3顺序图6.3.5顺序图实例

3.假设学生已经成功登录选课系统,“成功选课(SelectCourse)”的顺序图如下,请写出其含义,并画出相关的类图。6.3顺序图6.3.5顺序图实例

本节教学要求理解:协作图和顺序图的区别与联系。掌握:协作图和顺序图之间的转换。6.4协作图协作图可以看做是对象图和顺序图的结合,它能表达对象间的交互过程及对象间的关联关系

教师修改学生成绩的协作图6.4协作图6.4.1定义协作图

协作图和顺序图是一对孪生兄弟,它们都能表示对象间的交互过程。但是它们的侧重点不同顺序图清楚地表示了交互作用中的时间顺序,但没有明确表示对象间的关系协作图清楚地表示了对象间的关联关系,但时间顺序必须从顺序号获得6.4协作图6.4.1定义协作图

本节教学要求理解:状态图的作用。掌握:状态图的建模方法,状态图到代码的映射。6.5状态图当前处于Locked状态,若发生coin事件,则变迁到Unlocked状态,调用Unlock方法。当前处于Unlocked状态,若发生pass事件,则变迁到Locked状态,调用Lock方法。当前处于Unlocked状态,若发生coin事件,则变迁到Unlocked状态,调用Thankyou方法。当前处于Locked状态,若发生pass事件,则继续停留在Locked状态,调用Alarm方法地铁十字转门的状态图6.5状态图6.5.1定义状态图

状态图的基本符号

6.5状态图6.5.1定义状态图

gelishfw/gybcny/hd8go/sj93/mdwxz88/oemgc/189288/hzp580yjoem/oemdg/oemfy/xcdnpx/yanjigz/189286/xcdnpx/dgxcdndgxcpx/xcwxpx/xunchi-px/donghuij

温馨提示

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

评论

0/150

提交评论