简介这份UML试题合集面向正在学习统一建模语言、准备课程考试或面试复习的计算机专业学生与软件设计初学者围绕用例图、顺序图、协作图等核心图形梳理交互图差异、高内聚度、对象可见性、领域模型、统一过程阶段划分等高频考点帮助读者在短时间内集中突破概念辨析与简答题。压缩包内为1个doc文档约62KB按试题与参考答案对照编排涵盖选择题、填空题与简答分析题便于边看边记、自测查漏。已有11269人学习下载说明其题目覆盖面与解析方式经受了较多读者检验。读者可从中获得交互图对比的答题框架、统一过程四阶段与核心工作流的记忆线索、领域建模步骤的完整表述以及用况描述方式等易混知识点的辨析思路适合作为考前冲刺与知识点串联的辅助材料。1. 从一张“外卖订单”看懂 UML它到底在画什么你有没有过这种经历打开一份软件设计文档满屏都是方框、箭头、小人头和虚线看着像电路图又像流程图每个字都认识连起来却不知道在说什么。这些图背后其实是一套叫 UML 的东西全称统一建模语言。通俗地说它就是软件行业里的一套“标准图纸语言”——盖房子有建筑图纸造汽车有工程图纸写软件之前也得先把脑子里的想法画成大家都能看懂的图UML 就是干这个的。打个比方你要开一家奶茶店。你会先画一张“顾客、店员、收银机之间怎么互动”的图这就是用例图再画一张“点单时先扫码、再付款、最后出杯”的先后顺序图这就是顺序图。UML 里的用例图和顺序图本质上就是把“谁用系统、按什么顺序做事”讲清楚。搞懂它你看需求文档、跟开发沟通、甚至面试答题都不会再被一堆术语绕晕。这份 UML 试题大集合正是把这些高频概念用题目形式串起来的资料下面我们一层层拆开讲。2. 用例图与顺序图系统“做什么”和“怎么做”的两张脸2.1 用例图到底在描述什么用例图回答的是一个非常朴素的问题这个系统对外提供哪些功能谁在用这些功能。图里通常有一个个小人叫参与者代表使用系统的人或外部系统中间一个大方框代表系统边界方框里一个个椭圆就是用例也就是系统能完成的一件事。拿奶茶店举例“顾客”是参与者“下单”“付款”“查询订单”是三个用例。注意用例图只告诉你系统有这些能力它不告诉你下单内部是先扣库存还是先算钱。这一点特别容易被误解——很多人以为用例图画得细就能当设计图用其实它只是需求层面的“功能清单可视化”。用例之间还有两种常见关系包含和扩展。比如“创建新订单”和“更新订单”都要“检查用户账号”那“检查用户账号”就是被包含的公共步骤而“使用优惠券”是在下单基础上的可选动作属于扩展。这两个关系在试题里出现频率极高记住一句话包含是必须走的公共流程扩展是可有可无的附加动作。2.2 顺序图为什么强调“时间轴”顺序图换了个视角它不关心系统有哪些功能而是关心一次具体交互里消息是按什么先后顺序在对象之间传递的。图的上方是一排对象每个对象下面垂一条虚线叫生命线虚线上有竖条叫激活期表示这个对象正在干活横向的箭头就是消息从上往下读越靠上越早发生。还是奶茶店顺序图会画出顾客对象先发“下单”消息给收银系统收银系统再发“扣款”消息给支付模块支付模块返回“成功”收银系统才发“出杯”给制作台。你看时间顺序一目了然。这也是顺序图最大的优点——消息谁先谁后、什么时候返回画得清清楚楚。代价是它特别占横向空间对象一多图就拉得很宽这也是它被吐槽的地方。2.3 为什么需要两种图而不是一种有人会问既然都是描述交互画一种不就够了不行因为两者回答的问题不同。用例图站在系统外面看“有哪些服务”顺序图钻进一次交互里看“消息怎么走”。前者是需求阶段的产物后者更偏设计阶段。打个比方用例图是餐厅门口的菜单告诉你有哪些菜顺序图是后厨的一张出菜流程单告诉你这道菜先切配、再下锅、最后装盘。菜单不能替代流程单流程单也不该拿去当菜单用。这份资料把两类图放在一起出题正是为了让你分清它们各自的职责边界。3. 顺序图与协作图一对最容易混淆的“双胞胎”3.1 协作图强调的“空间组织”是什么UML 的交互图其实有两种顺序图和协作图。顺序图按时间从上往下排协作图则按空间来布——对象像撒在一张桌子上谁和谁有消息往来就在两者之间连一条线线上标消息。它不画生命线也不靠上下位置表示先后而是靠消息编号比如 1、2、3 或者 1、1.1、1.2 来表示顺序。通俗地说顺序图像“时间轴录像”协作图像“关系网络图”。协作图的强项是展示对象之间的整体组织关系哪些对象彼此关联、消息在谁和谁之间流动一眼能看出结构。它在增加对象时比较方便分支也少画起来紧凑。但缺点同样明显——消息一多编号就乱你很难一眼看出第 7 条消息到底在第 3 条之前还是之后顺序感被削弱了。3.2 两者差别用一张表说清对比维度顺序图协作图布局依据时间顺序从上到下空间组织对象间连线顺序表达垂直位置天然表示先后依赖消息编号空间占用横向占位大对象多时很宽布局紧凑增对象方便强项消息时序清晰对象组织结构清晰弱项对象多时横向爆炸消息多时顺序难读这张表基本覆盖了试题里反复考的那道“分析两者主要差别和优缺点”。记住核心一句顺序图强在时间协作图强在结构。两者描述的是同一件事的不同侧面不是谁替代谁。3.3 什么时候该选哪一张如果这次交互的重点是“先干什么后干什么”比如支付流程、登录校验选顺序图。如果重点是“哪些对象参与、它们怎么组织在一起”比如梳理一个模块里各对象的协作关系选协作图。实际工作中顺序图用得更普遍因为它读起来门槛低协作图更像辅助视图帮你从结构角度补一刀。资料里还提到在某些建模工具中协作图可以由顺序图转换生成这也说明两者本质描述的是同一份交互只是呈现方式不同。4. 高内聚、可见性、领域模型几个绕不开的基础概念4.1 高内聚度不是“东西多”而是“关系紧”高内聚度衡量的是一个类内部各个职责之间的相关程度和集中程度。一个类如果职责高度相关、工作量又不至于大到离谱就算高内聚。它包含两层意思第一别给一个类塞太多职责第二不相关的职责不要硬塞进同一个类该分给别的类就分出去。打个比方一个“订单类”负责算总价、生成订单号这算相关如果它还顺手负责发短信通知、打印小票那就职责发散、内聚度下降。初学者常把“类写得大而全”当成能力强其实恰恰相反那是低内聚的信号。试题里考高内聚考的就是你能否判断“哪些职责该留、哪些该拆”。4.2 对象间的可见性谁能“看见”谁可见性指的是一个对象能够看到或者引用另一个对象的能力。通俗地说A 对象能不能给 B 对象发消息取决于 A 对 B 是否可见。这就像你手机通讯录里有对方号码才能打电话没有号码就是不可见。顺序图里消息箭头能从 A 指向 B前提就是 A 对 B 可见。这个概念常和封装一起考理解它有助于你判断一张交互图画得对不对——画了箭头却没有可见性依据就是设计上的漏洞。4.3 领域模型画的是“真实世界的概念”不是代码领域模型是一组表示真实世界概念类的模型它用来启发设计软件对象而不是软件部件本身的模型。找概念类常用两种方法概念类类别表和标识名词短语。前者是按类别去套比如人、地点、事物后者是从需求文字里把名词挑出来再筛掉不是概念的词。这里有个高频误区很多人把领域模型画成了数据库表结构或者类图。其实领域模型停留在“业务概念”层面比如“订单”“顾客”“商品”它不关心主键、外键、方法。试题里专门考“领域模型表示真实世界的概念类不是软件部件的模型”就是在纠这个偏。5. 常见误区这五个坑初学者几乎都会踩5.1 误区一把用例图当成设计图易混点以为用例图画得越细越专业。为什么混用例图里有系统边界和功能看起来很像设计。怎么区分用例图只回答“系统做什么、谁来做”不描述内部实现一旦你开始画消息顺序和内部对象就该换顺序图了。5.2 误区二顺序图和协作图可以互相替代易混点觉得两者都是交互图画一个就行。为什么混它们确实描述同一份交互。怎么区分顺序图强在时间顺序协作图强在对象组织消息多时看顺序图对象关系复杂时看协作图二者是互补而非替代。5.3 误区三高内聚就是类越大越好易混点把“职责多”误当成“功能强”。为什么混大而全的类看起来什么都能干。怎么区分高内聚要求职责相关且工作量适中不相关职责要拆出去类越大越可能低内聚。5.4 误区四领域模型等于类图或数据库表易混点一画领域模型就开始加属性和方法。为什么混两者都有一堆方框和连线。怎么区分领域模型只表达真实世界概念类及其关联不涉及软件部件、主键和方法它是启发设计的素材不是最终代码结构。5.5 误区五状态图和活动图是一回事易混点两者都描述行为容易混着用。为什么混都涉及状态和流转。怎么区分状态图侧重单个反应型对象的生命周期活动图侧重多个对象参与的活动流程对反应型对象建模一般用状态图别拿活动图硬套。6. 统一过程与建模原则什么时候用、什么时候别用统一过程把软件生命周期分成四个阶段初始、细化、构造、提交。初始阶段做愿景文档、业务案例、确定范围、粗略评估成本细化阶段细化愿景、迭代实现核心架构、解决高风险问题、定义大多数需求和范围构造阶段实现其余部分并准备部署提交阶段做测试和部署。试题里反复考的一个点定义大多数需求和范围是在细化阶段完成的不在初始阶段。这个边界要记牢初始阶段只做粗略评估别把细化阶段的活提前干。那什么时候该用这套东西什么时候别用如果你做的是需求相对明确、规模不大的小工具硬套完整统一过程和全套 UML 图就是杀鸡用牛刀画图的时间比写代码还长纯属翻车。反过来如果系统涉及多个角色、交互复杂、需求还在变用例图帮你圈定功能边界顺序图帮你理清关键流程领域模型帮你对齐业务概念这套组合就非常值。我的血泪经验是图是给人看的不是给工具交差的。画之前先问一句“这张图要回答谁的什么问题”答不上来就别画。提示建模的基本原则之一是“对一个重要系统用一个模型就可以充分描述”这种说法是错的重要系统需要多视角、多精度的模型配合别指望一张图打天下。从那以后我每次拿到一份 UML 试题或者设计文档都会先强制走一遍“这是需求视图还是设计视图、它回答的是时间还是结构”的判断再动笔。希望这份梳理帮到你资料里的完整题目和答案值得你对着上面这些概念逐条过一遍。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?