软考中级软件设计师(下午题)--- 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"的关系,一个对象明确拥有另一个对象,这种拥有关系可以松散也可以强烈

相关推荐
未可知7771 天前
软件设计师(上午题4)、面向对象、uml、设计模式
设计模式·职场和发展·uml
zzjjiaa1 天前
2026上半年软考高级系统架构设计师备考攻略
系统架构·软考
_Minato_3 天前
计算机系统知识总结——指令系统
经验分享·软考·计算机系统
xiezhr12 天前
不会画图的程序员不是好的设计师
程序设计·前端开发·画图·软件设计师·后端开发
思成不止于此17 天前
软考中级软件设计师备考指南(二):计算机体系结构与指令系统
笔记·学习·软件设计师
rolt18 天前
[pdf、epub]350道《软件方法》强化自测题业务建模需求分析共298页(202511更新)
产品经理·架构师·uml
庄小焱20 天前
【2025软考高级架构师】——2024年11月架构真题解析
软考高级·软考·系统架构师·软考真题解析
oscar99920 天前
再看软考与职称及软考的价值
软考·资格
程序员古德20 天前
25年11月软考架构真题《论云原生数据库》考后复盘总结
软考高级·软考·系统架构设计师·软考论文
这不小天嘛23 天前
万字整理:软考中级软件设计师错题本
软考·软件设计师