课程内容提要
面向对象问题解决的核心是构建一个模型。该模型从其通常复杂的现实世界中抽象出基本问题的基本细节。几个建模工具被包裹在UML ™ 的标题下,代表统一建模语言™。本课程的目的是介绍UML的重要亮点。
UML的中心是我们在这里描述的八种建模图。
这里总结一个规律是:如果图中箭头存在空三角,虚线之类的就是类图与对象图
如果带有状态和监护条件以及动作等的图就是状态图
图带有强烈的时间顺序的就是顺序图
用例图
include:包含关系,即一个用例必然会包含(使用到)该用例。如登记外借信息需要用户先登录
extend:扩展关系,即衍生关系。如查询书籍信息可以修改也可以不修改书籍信息,但是修改书籍信息必须先查询数据信息。
【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性
泛化即抽取子类的共性生成父类。
包含和扩展的区别是是否必须。
类图与对象图
上面列表表示考题类型有这三种,其中填多重度标识代表的意义如下图:
`软件工程UML中关联的多重度是指一个类的实例能够与另一个类的多少个实例相关联。
这里不仅仅包括 0..*
1..*
, m..n
代表一个集合中的一个对象对应另一个集合中的m到n个对象。*
表示多个对象
关系类型有:
顺序图
表现了处理事务时的时间顺序。
活动图
粗线代表该位置划分出多线程
状态图
表示状态的变迁
通信图(协作图)
也是一种顺序图,每个节点是一个对象。顺序图和通信图的差异是通信图时间上的划分没有那么细
试题1
问题1:
这题首先需要明确箭头的含义,如下图:
x —> y 可以翻译成 x依赖于
y, 其他关系类似。如x聚合成
y,x组成成
y,x泛化为
y。
因此很容易根据题干得到如下答案(上面题目包含了这个):
问题2:
按照另一个对象的角度来填写(重点)
(1)0..* 一个歌手对应0个或多个乐队
(2)2..* 一个乐队对应2个或2个以上的歌手
(3)0..1 一条音轨对应0首或1首歌曲
(4)1..* 一首歌曲对应多个音轨(注意这里不能是0)
(5)1..* 一个唱片对应一个或多个音轨
(6)1 一个音轨对应一个唱片
问题3:
这里缺失了音轨之间的联系,故填:Track(0..1)Track(0..1)
我的答案:
软件工程UML中关联的多重度是指一个类的实例能够与另一个类的多少个实例相关联。
这里缺失的在题干中对应:同一首歌曲在一张唱片中最多只能出现一次
故: Song(1..*)Album(1)
问题4:
事件序列有:
- 连接电脑 -> 断开连接 -> 选择歌曲 -> 播放
- 按任意键(电量不为0)-> 选择歌曲 -> 播放
故最短事件路径是2.
本文链接: http://www.ionluo.cn/blog/posts/f2614c72.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!