武汉软件工程职业学院教案(理论教学首页)
(第1页)
《软件工程与UML》
武汉软件工程职业学院教案(附页)
(第NUMPAGES2页)
装订线章节名称
装订线
单元4系统的动态建模
任务:建模单个对象的状态转移过程
授课安排
授课
时数
2
授课时间
第8周第2次课
授课
方法
讲练结合
授课教具
机房,StarUML、ROSE或VISIO
教学目标
知识目标:掌握UML中状态图。
能力目标:状态图的建模方法,状态图映射到代码。
思政目标:培养追求卓越、精益求精的精神。
教学重点
UML中状态图的建模过程
教学
难点
状态图映射成代码
【教学环境】
多媒体机房
软件需求:机房,StarUML、ROSE或VISIO
【教学过程】
一、复习导入
(1)通过提问的形式复习上一节知识,引入本节课内容。
在讲解本节课内容前,首先回顾一下上节课中讲过的UML协作图。
本节将学习UML中状态图。
(2)明确学习目标。
熟练地掌握UML中状态图。
二、授新课
(一)布置任务
根据教材中的描述,对“图书馆管理系统”中的“Book”对象进行建模,描述其所有可能的状态以及状态间的转移过程。
(二)知识要点
状态图通常作为对类图的补充,完善类中依赖于状态的各种行为。然而,在使用上并不需要为所有的类画状态图,而仅需要针对那些有多个状态,及行为会受状态取值影响而发生改变的类画状态图。
状态图中需要着重表示以下信息:
(1)对象当前的状态;
(2)发生了某种事件才会引起状态间的转移;
(3)由一个状态转到另一个状态的实现过程(通常通过方法调用实现)。
地铁十字转门的状态图
当前处于Locked状态,若发生coin事件,则变迁到Unlocked状态,调用Unlock方法。
当前处于Unlocked状态,若发生pass事件,则变迁到Locked状态,调用Lock方法。
当前处于Unlocked状态,若发生coin事件,则变迁到Unlocked状态,调用Thankyou方法。
当前处于Locked状态,若发生pass事件,则继续停留在Locked状态,调用Alarm方法。
状态图的基本符号
状态图的建模过程通常如下:
(1)识别出对象所有可能的状态;
(2)识别引起对象转移的所有触发因素(事件或条件);
(3)表示状态转移的实现过程(方法或行为);
(4)完善类模型。在完成了上述步骤以后,还需要把状态图映射到类,从而完善类中相关的属性和操作。
另外,在建模状态图的过程中可以进行必要的分组,即将具有共性的简单状态置于合成状态中,让他们成为子状态,从而对状态模型进行简化。
状态图映射成代码
将不同状态作为常数枚举,把当前状态存储在适当的数据成员中。
依赖于状态的操作可以用开关语句对每个状态分别设一个case实现。每个case表示来自特定状态,用相应的消息表示转换。
需求用专门的数据成员存储对象的历史状态。
(三)任务实施
1.识别出对象所有可能的状态;
2.识别引起对象转移的所有触发因素(事件或条件);
3.表示状态转移的实现过程(方法或行为);
4.完善类模型。
三、归纳总结
回顾上课前的学习目标,对本节课知识点进行总结:
状态图的基本概念。
状态图的建模过程
状态图映射成代码
【课后作业】
拓展训练一:建立“用户使用手机拨打电话”过程的状态模型。
拓展训练二:建立“某媒体播放器”的状态模型。
拓展训练三:建立“电梯”的状态模型。