概述
-
必考一题;但是UML图比较多;所以难度高一些;
-
知识面要求比较广;
-
一般考 用例图、类图;
- 再加上其他图
目录
-
用例图
-
类图与对象图
-
顺序图
-
活动图
-
状态图
-
通信图
-
构件图
用例图
两种考法
-
题干里面有关项目的详细描述;考试时把参与者和用例扣掉;
-
根据题干和已有结构分析哪个用例叫什么;
-
哪个地方的参与者对应什么角色;
-
-
根据题目意思;分析两个用例图是什么关系;包含、拓展、泛化;
符号及其含义
·* 人形符号:参与者;
·* 人形符号开始的箭头指向的用例:表示参与者使用这些用例
技巧
-
对于参与者和用例的识别,通过分析题干进行匹配;
- 前提:知道图例表达的含义;
-
分析用例之间的关系,判断用例表示的具体功能;
包含和拓展
-
包含用include表达、扩展关系用extend;
-
包含:A用例必然会使用B用例则表示包含;
-
扩展:A用例不一定每次都使用B用例;
-
查询书籍时很多次都没问题,某一次发现书籍信息错误那么修改书籍信息,
- 此时修改书籍信息时查询书籍信息的拓展
-
-
例子:
- 以前ATM取钱后一定会吐凭条;现在可以选择是否打印;
-
类图与对象图
考法
-
填类名、方法名、属性名
-
填多重度
-
填关系
多重度
- 0…* 和 * 等价:多个对象都可以是0个和多个;
关系
-
需要了解到:泛化、组合、聚合;
- 记得泛化就记得实现了,实现是对接口的,泛化是对类的
顺序图
-
特点:表现出来处理事务时的时间顺序;
-
考点:
-
扣掉消息,分析消息是干嘛的
- 如 第六个空
-
-
已经是动态图,重点表现对象的交互关系
活动图
-
结构上和程序流程图非常接近;
- 能表现整个处理流程的基本情况、分支状况;
-
注意事项
-
粗横线,表示从该处产生了多个并行线程;
-
带泳道的活动图(下下张图);
- 能更明确哪个活动归属于谁;
-
-
考点:
-
一个流程和图的对应,扣出一些空出来是否能还原;
-
根据描述自己画图;再跟图例匹配;
-
状态图
-
表现状态的变迁;也是动态图;
-
注意事项
-
以状态为结点;
-
箭线表示触发事件;
-
-
考试方法:
- 给系统描述,涉及多种变迁;然后把图扣掉,填写状态和触发事件;
-
技巧:
- 识别有哪几种状态;状态转换的条件;
通信图
-
又称为协作图;
- 是顺序图的另一种表达方式;
-
结点表示对象;对象的交互用箭头;
-
消息标注在箭头上;
-
除了不强调时间和顺序图一样;
-
-
顺序图和通信图统称为交互图
-
考试方法:
- 扣掉对象、消息、做成填空题
试题1
问题1、2
-
艺术家分为歌手和乐队;
-
所以艺术家(父类)和歌手乐队有继承关系;
-
所以A表示艺术家;
-
-
多个歌手聚成一个乐队;聚合关系;
-
菱形代表整体的部分;
-
所以C表示乐队D表示歌手;
-
-
被演奏和被编写的肯定是歌曲;
- B是歌曲
-
音轨包含歌曲、唱片包含音轨;
- 歌曲不可能分布在0条音轨上,所以(4)是1…*;
问题3
- 音轨要和上下音轨建立关联,所以音轨和自己有一条关系;
问题4
- 按任意键、选择歌曲、播放
试题2
- 利用状态模式:把每一个状态抽象为一个类;
问题3:
-
状态模式;
-
CLevel的对象,因为操作的就是Clevel各种状态变迁的情况;
-
功能:计算飞行里程数,并判断是否需要调级别;