软件设计师备考笔记(十六)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各种状态变迁的情况; 功能:计算飞行里程数,并判断是否需要调级别;
经验分享 程序员 微信小程序 职场和发展