基本信息
文件名称:软件工程与UML(第2版)教案-教学设计 单元4-6 状态图.docx
文件大小:154.83 KB
总页数:5 页
更新时间:2025-06-08
总字数:约1.46千字
文档摘要

武汉软件工程职业学院教案(理论教学首页)

(第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.完善类模型。

三、归纳总结

回顾上课前的学习目标,对本节课知识点进行总结:

状态图的基本概念。

状态图的建模过程

状态图映射成代码

【课后作业】

拓展训练一:建立“用户使用手机拨打电话”过程的状态模型。

拓展训练二:建立“某媒体播放器”的状态模型。

拓展训练三:建立“电梯”的状态模型。