武汉软件工程职业学院教案(理论教学首页)
(第1页)
《软件工程与UML》
武汉软件工程职业学院教案(附页)
(第NUMPAGES2页)
装订线章节名称
装订线
单元3系统的静态建模
任务2:表示类之间的关系
授课安排
授课
时数
2
授课时间
第3周第2次课
授课
方法
讲练结合
授课教具
机房,StarUML、ROSE或VISIO
教学目标
知识目标:UML中类之间的关系表示。
能力目标:类的设计,类之间关系的设计。
思政目标:培养反复迭代、逐步完善的工匠精神。
教学重点
UML中类之间的关系表示
教学
难点
UML中类之间的关系表示
【教学环境】
多媒体机房
软件需求:机房,StarUML、ROSE或VISIO
【教学过程】
一、复习导入
(1)通过提问的形式复习上一节知识,引入本节课内容。
回顾一下上节课中讲过的类图的基本概念、类的基本组件。
本节将详细讲解UML中类之间的关系表示。
(2)明确学习目标。
掌握UML中类之间的关系表示。
二、授新课
(一)布置任务
某“饮料自动售货机系统”具有“设置”、“购物”、“上货”三个主要功能,请根据文中描述建模系统类图。
(二)知识要点
类之间的关系
泛化关系:一个类(子类)继承另外的一个类(超类)的同一功能,并增加它自己的新功能。泛化关系就是用来表示类与类、接口与接口之间的继承关系的。关系中的实线空心封闭箭头由子类指向父类
实现关系:实现关系指定两个实体之间的一个合同。换言之,一个实体定义一个合同,而另一个实体保证履行该合同。关系中的箭头由实现接口的类指向被实现的接口。
在Java中,实现关系可以直接用接口,implements关键字表示。
在有些程序语言中不支持接口,但支持类之间的多重继承。在UML中,可以使用泛化关系表示。
依赖关系:依赖是类与类之间的连接,并且依赖总是单向的。实体之间的“依赖”关系暗示一个实体的值发生变化后可能影响依赖于它的其他实例。
在面向对象的系统中,作为方法的一个部分,一个对象可能创建另一个对象,让它执行一定的功能。也可以一个对象还可能在一个方法中创建另一个对象,对它进行配置,然后将它作为方法的返回值传给方法的调用者。
关联关系:在对系统建模时,特定的对象间将会彼此关联,我们称这种关系为关联关系,它反映了对象之间相互依赖、相互作用的关系。
双向关联
关联总是被假定是双向的。这意味着,两个类彼此知道它们间的联系。一个双向关联用两个类间的实线表示。在线的任一端,可以放置角色名和多重值
单向关联
虽然两个类是相关的,但是只有一个类知道这种联系的存在。一个单向的关联表示为一条带有指向已知类的开放箭头的实线。
单向关联只包含已知类的角色名和多重值描述
聚集关联
聚集是关联的一种形式,代表两个类之间的整体/局部关系。
组成关联
组成关联表明一个对象是被一个更大的整体所拥有。这个被包含的对象可能不能参与更多的组成关联,并且不能独立于这个整体而存在。在整体创建的时候创建这个部分,并在整体销毁的时候销毁。在UML中,组成的表示是在关联线上靠近“整体”类的一端加上一个实心的菱形。
自身关联
类也可以使用自身关联与它本身相关联。当一个类关联到它本身时,并不意味着类的实例与它本身相关,而是类的一个实例与类的另一个实例相关。
关联关系的不同重数与代码的映射
(1)单向关联(0..1)
(2)单向关联(1..1)
(3)单向关联(1..*)
(4)双向关联(1,0..1)
(三)任务实施
要点提示:
1.注意识别实体类
2.注意方法体现的内聚性
3.初始建模简化关系
三、归纳总结
回顾上课前的学习目标,对本节课知识点进行总结:
类之间的关系:泛化关系、实现关系、关联关系
关联关系又可以分为:双向关联、单向关联、聚集关联、组成关联、自身关联
【课后作业】
课本拓展顺练:
拓展训练一:书写关联关系的代码映射
拓展训练二:用类图描述邮件及其组件之间的关系