软考中级软件设计师(下午题)--- UML建模

用户通过了操作仿真系统中的机器人来探索虚拟世界,系统中共有2个主要功能,分别是机器人探索虚拟世界(Run Robots)与手动控制机器人(Manipulate Robots),所以U1、U2分别为Run Robots与Manipulate Robots

U3、U4 处于 Run Program 用例下,所以是自动控制(Run)与单步控制(Step)

U5与show errors关联,表示U5与该行为是同级的,就像丈夫与妻子,所以应该为Write

U6、U7、U8就是剩下的3种手动控制方式


如果把 Run Program 看为一个一般的父类,那么 Run与Step 就是两个特殊的子类,所以是泛化关系;之所以不是扩展关系是因为U3、U4执行是 Run Program的具体方式,而非不同场景所产生的行为

extend表示的是扩展关系:如果一个用例明显混合了两种或两种以上的不同场景,那么就可以把这个用例分为一个基本用例和一个或多个扩展用例。最一开始的Select Robot用例应该是选中一个机器人,然后手动控制它;目前Select Robot 用例中只保留了"选中一个机器人"(基本用例)及其相关操作的触发条件,而相关操作的实现通过不同的子用例Move、Left、Read、Write(扩展用例)来实现

include表示的是包含关系:当可以从两个或两个以上用例中提取公共行为时,应该使用包含关系来表示他们与该公共行为之间的联系


Interpreter、parser用于解析文件,所以C1为文件

文件是由虚拟世界的描述与机器人行为聚合的,所以C2为机器人在虚拟世界中的行为

Interpreter、parser还用于解析指令集,说明Interpreter、parser和Instruction Set之间有关联关系,所以C4为Instruction Set

C3聚合而成了C4,所以C3为Instuction

用Editor来编写文件,Editor与文件之间有关联关系,所以C5为Editor

不难发现,关联关系很多都是用xxx来做yyy,xxx与yyy之间就有了关联关系;依赖关系是xxx的变化会影响yyy

注:问题1作答只能用说明中给的英文词汇

Person lives at 1个address,所以C1为Address;C2与registration相互关联,所以是Riding

Person 是 C3、C4 的泛化,C4才和registration相互关联,所以C3为无效选民(Ineligible),C4为合法选民(Eligible)


每个人只有1个住址,M1为1;无论是Town还是City都住了非常多人,所以M2为*;一个选区肯定有非常多人注册,所以M3为*;每个合法选民只能注册一个选取,所以M4为1;一个选取(例如德克萨斯州)肯定包含了非常多的City与Town,所以M5为*;纽约只能属于一个选区,所以M6为1


至少选择一个选区,至少住在一个居住地,所以将M1、M4从1改为1...*即可

排序是U1、U2的一个泛化,所以U1为按姓氏的字典排序,U2为按邮政编码排序

创建与修改地址簿都包含了保存地址簿这一操作,所以U6为保存地址簿,U3、U4为创建地址簿与修改地址簿

U5为U4的扩展关系,把U4、U5的组合看作是创建地址簿这一行为整体用例,那么打开地址簿就不对了(没有地址簿打开什么);所以U4只可能是修改地址簿,修改地址簿之前得要先打开地址簿;U5为打开地址簿


属性是类中的变量,方法是类中的函数

AddressBook(地址簿管理类)属性:PersonAddress中的所有属性都要有1个(要不然怎么增删改查),部门编号

AddressBook方法:添加、创建、打开、修改、删除、保存

PersonAddress属性:姓名、地址、城市、省份、邮政编码、联系电话、员工号(没有主码,自己搞一个出来)

选择元素后,可以移动元素或调整元素大小,所以U1、U2分别为移动元素与调整元素大小

U1、U2与选择元素视作一个整体(操作元素)时,U1、U2开始前都得先要选择元素,所以构成了扩展关系


C1与工具形成了泛化关系,C2与元素有selected关联所以是选择元素,C1也就只能是创建工具

C1是文本工具、C3、C4、C5的泛化,所以C3为线条工具,C4为矩形工具,C5为椭圆工具,C

C6、C7、C8和元素形成泛化关系,所以是具体的xx元素,那么只可能是线条、矩形和椭圆了

一个Category当中可以有某件商品,也可一件商品都没有,所以(1)为 0...*;一件商品仅属于一种分类,所以(2)为 1

一件商品可以有多个促销活动(淘宝里,商品A和不同种类商品搭配一起买,促销力度不一样),也可以完全没有促销,所以(3)为 0...*;一个促销活动肯定有一件及以上的商品,所以(4)为 1...*

一个账号可以买一单,也可以一单也不买,所以(6)为 0...*;用户选择某一促销活动,系统生成一个促销订单,所以(5)为 1


category读取了商品信息,categoryManager从category中读取分类信息,所以是(8)是getCategories

businessman(商人)从categorymanager那获取所有商品信息,即getCommodities(9)

先是createPromotion(10),然后再addCommodities(11)


聚合关系是一种特殊的关联关系。

关联关系不强调整体与部分间的结构关系,两个对象在概念上处于一个级别;而聚合关系是一种"has-a"的关系,一个对象明确拥有另一个对象,这种拥有关系可以松散也可以强烈

相关推荐
希赛网18 小时前
倒计时两天!软考网络工程师案例分析模拟题
网络·网络工程师·软考·案例分析题·考前复习
YAY_tyy1 天前
“IP 地址” 咋分类?用 “电话号码分区” 讲透 A/B/C 类地址
软考·软件设计师
星云数灵1 天前
【计算机软件资格考试】软考综合知识题高频考题及答案解析6
软考·信息系统项目管理师·系统集成项目管理工程师·软考高项·计算机软件资格考试·综合知识·软考综合知识
奥尔特星云大使2 天前
《系统规划与管理师教程(第2版)》方法篇 第10章 云原生系统规划 知识点总结
云原生·软考·高级·系规
yours_Gabriel3 天前
【设计模式】UML和设计原则
java·设计模式·uml
星云数灵5 天前
【计算机软件资格考试】软考综合知识题高频考题及答案解析2
软考·信息系统项目管理师·系统集成项目管理工程师·软考高项·软考中级·计算机软件资格考试·软考综合分析
庄小焱6 天前
【2025软考高级架构师】——2025年5月架构真题解析
软考·系统架构真题·软件架构师考试
PengShuaiD59 天前
【网络工程师】NAT网络地址转换技术
网络·网络工程师·软考
又见野草9 天前
软件设计师知识点总结:面向对象技术(面向对象基础+UML)
uml