软件设计师备考笔记(十六)UML建模及习题
概述
-
必考一题;但是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各种状态变迁的情况; 功能:计算飞行里程数,并判断是否需要调级别;