UML复习

更新时间:2023-11-05 20:23:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1. 如果你想对一个类的意义进行描述,那么应该采用 ?请简要说明原因。 A. 标记值 C

标记值是用来为事物添加新特性的;规格描述用来对构造块的语法和语义进行文字叙述,使得可视化视图和文字视图的分离;构造型是用来增加新事物的。

而对于类的意义进行简单描述,最合适的显然还是注释。

2. 图2-26所示的符号表示的是什么?它是关系构造块还是事物构造块?

B. 规格描述

C. 注释

D.构造型

图2-26 示例符号

扩展关系,是关系构造块。

3. 可以包含其它事物构造块的构造块是什么?它属于什么类型的事物构造块? 可以包含其它事物构造块的构造块是包,它属于分组事物构造块。 4. 在UML中定义了哪几种可见性规则?其中package的含义是什么?

定义了public、private、protected、package,package是指只有声明在同一个包中的元素才能够看到该元素。

5. 规格描述是一种事物构造块吗?如果不是,它是什么?它的作用是什么?

规格描述不是事物构造块,它是UML四种公共机制之一,用来对构造块的语法和语义进行文字叙述,使得可视化视图和文字视图的分离。

6. 标记值的作用是什么?它的表示法和约束的表示法有什么异同?在UML模型中如何区分它们?

标记值是用来为事物添加新特性的。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过它是不能够放在元素中的,而是放在相关的元素附近。

7. 构造型的作用是什么?如果我们采用一个自定义的图标来表示它,那么可能遇到的主要问题是什么?

构造型用来定义一些特定于某个领域或某个系统的构造块。用自定义的图标有两个问题:一是容易产生歧义,二是建模工具难以支持。

8. 在UML 2.0中定义了四种交互图,其中强调对象调用顺序的是什么图? 顺序图

9. 交互概观图是哪两种图的综合。 顺序图与活动图

10. 绘制一个表示类的UML元素,并指出它主要包含哪三个部分。 类名、属性、操作

11. 在对类名、属性/方法名时,通常会遵循什么样的规则?请举例说明。

对于类名通常采用CamelCase格式(大写字线开头、混合大小写,每个单词以大写开始,避免使用特殊符号),尽可能避免使用缩写,例如OrderDetail。

属性名也采用CamelCase格式,但为了与类名进行区别,通常首字母以小写开头,例如productId。

操作名的命名格式与属性名类似,不过通常是动词词组。

12. 在图3-32中是一个“涉税服务管理效能管理系统”中类模型的一个局部,请根据该图回答以下问题。

窗口人员核查人员审批人员处理人11流转记录0..n0..n110..n受理资料受理提示1纳税人10..n税务审批服务申请受理告知10..n行政许可类申请行政审批类申请涉税服务类申请 图1 涉税服务效能管理系统类模型局部

? 在描述“税务审批服务申请”时,它主要包含哪几个方面的内容?它有几种不同的类别?

受理资料、受理提示、受理告知、纳税人、流转记录。

包括行政许可类申请、涉税服务类申请和行政审批类申请三类。 ?

对于每一条流转记录,可能与几个“税务审批服务申请”相关?与几个处理人相关?

每条流转记录只和一个“税务审批服务申请”相关,只与一个处理人相关。

13. 在图1中,对于每个流转记录的处理人它的类型(窗口人员、核查人员、审批人员)是唯一的,也就是只可能取一种值。请在图中加上表示这种规则的约束。

窗口人员核查人员审批人员{xor}处理人11流转记录0..n0..n110..n受理资料受理提示1纳税人10..n税务审批服务申请受理告知10..n行政许可类申请行政审批类申请涉税服务类申请 14. 后来,开发人员又在图3-32的基础上进行了一些修改,其中有一个局部修改成了如图3-33的内容。请说明这些新增加的元素分别表示什么含义。

has是关联名称,表示这种关联是“拥有”关系。 “申请ID”是限定符,表示每一个流转记录只能用一个“申请ID”。

图3-33 修改后的模型局部

15. 嵌套类的概念是什么意思?如果类Student包含类Score,请使用你学过的、支持嵌套类的面向对象编程语言

将其表示出来。

将一个类的定义放在另一个类定义的内部。 public class Student {

private class Score {

… }

}

15. 请简要解释主动类的概念,并说明它建模的意义,并通过1-2个实例来说明,主动类可以用来表示哪些设计元素。

主动类的实例称为主动对象,一个主动对象拥有一个控制线程并且能够发起控制活动;它不在别的线程、堆栈或状态机内运行,具有独立的控制期。从某种意义上说,它就是一个线程。

例如Socket服务器的监听线程就可以表示为主动类。

16. 请简要说明类图的应用领域,并重点说明在软件系统建模应用时的三种模型的关键点及区别。

类图主要可以应用于业务性模型、软件系统模型和数据库逻辑模型。类图应用于软件系统模型时,主要是用来构建领域模型、分析模型和设计模型:

?

领域模型是从面向对象的视角看待现实世界的结果,也就是通过类图来描述现实世界中各种事物的关系。因此在构建这个模型时,最主要的工作是找出相关的类,然后明明类之间的关联关系,必要时加入一些多重性描述和业务规则约束。 ?

分析模型和领域模型是很相近的,甚至可以说领域模型是一种全局的业务分析模型。而在RUP中,分析模型主要是针对软件系统的分析,领域模型则更多是偏重对业务领域的分析。 ?

设计模型则是在分析模型的基础上添加设计元素的结果。与分析模型相比,设计模型中的类的属性集更趋完善;更重要的是,它将加入模板类、参数类、抽象类/接口等设计元素,以及框架类的使用、设计模式的使用等。总的来说,设计模型是一种详细设计模型,将能够直接对编程予以指导。

17. 图3-34是小张绘制的一张关于网上商城用户管理的领域类图,但其中存在一些问题,请指出错误并说明理由。

LoginManagerArrayListUserAccountUserPreferencesAccountInfoUserPreferencesInfoSystem.Data.Oracleclient

图3-34 网上商城用户管理领域类图局部

作为领域类图不应该涉及到实现类,因此不应该引入诸如System.Data.Oracleclient和ArrayList之类与程序实现直接相关的类。

18. 在绘制类图时,第一步就是发现类,最常用的方法是什么?请简要说明它的使用方法。 发现类的方法有很多种,其中最广泛应用的莫过于“名词动词法”,其主要规则是从名词与名词短语中提取对象与属性;从动词与动词短语中提取操作与关联;而所有格短短语通常表明名词应该是属性而不是对象。

19. “书”、“购物车”、“我的UML参考手册(第二版)”、“银行卡”、“号码为13600000000的手机卡”中,哪些是对象,哪些是类。光从这些名字是否一定可以确定为是对象?

“我的UML参考手册(第二版)”、“号码为13600000000的手机卡”应该是对象。 20. 在图4-5中最上面的对象的名称是什么?该图表示的意思是什么?请绘制出与其相应的类图。

China:CountryfuJian:ProvincesiChuan:Province

图4-5 对象图实例

China。该图的意思是福建、四川等省份组成中国。

CountryProvince

21. 请说明对象图的适用场景以及它的优缺点。

对象图适用于论证类模型的设计以及对源代码进行分析和说明。其优点是能够直观理解出系统运行时的实时状态,缺点是比较复杂,工作量大。

22. 假设有一个温度监控系统,用户在MonitorGUI(监控界面)上输入查询指令,然后QueryState包的程序将与温感探头连接,获取当前的状态信息,并存入数据库,再返回给用户界面。根据这一描述,小张绘制了如图5-9所示的包图。你认为其中存在什么问题,请试着修改?

MonitorGUIQueryState

图5-9 温度监控系统包图的局部

在包图中应该避免出现这种循环依赖的情况。可以修改为:

MonitorGUIDataBaseQueryState

?

特性:就是一个小的,具有客户价值的功能

23. 在用例图中参与者是什么,它属于系统范围之内吗?

参与者是为了完成一个事件而与系统交互的实体,它不属于系统范围之内。 24. 用例和使用场景之间是什么关系?与协作又是什么关系?

用例是由一组用例实例组成的,用例实例也就是常说的“使用场景”,而协作是用例的实现。

25. 用例之间的扩展、泛化、包含三种关系有什么异同,请分别举例说明。 ?

扩展关系:基用例是可以独立于扩展用例存在的,只是在特定的条件下,它的行为可以被另一个用例的行为所扩展 ?

包含关系:被包含的用例(此例中的检查座位详情)不是孤立存在的,它仅作为某些包含它的更大的基用例(此例中的预订座位、安排座位)的一部分出现 ?

泛化关系:用来表示参与者与参与者之间,用例与用例之间的特殊/一般化关系

26. 一个用例的描述,最基本的部分有哪些。

用户描述、用例名称、用例概述、主参与者、基本事件流

27. 对于一个电子商务网站而言,以下哪些不是合适的用例,指出并说明理由。 输入支付信息 将商品放入购物车 结账 预订商品 用户登录 邮寄商品 查看商品详情 输入支付信息:太小 邮件商品:系统功能之外 查看商品详情:太小

28. 为了满足物业中介行业的信息化要求,甲公司基于详尽的需求调研与分析,准备研发一套符合市场需要的、实用的信息管理系统。主要将实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用

户管理、房源组合查询等功能。该公司小王,通过多次的与潜在客户的交流与沟通,完成了最初的用例模型的开发,图6-14是一个用例模型的局部:

打开房源信息页面<>登录信息房产经纪人录入房源信息确认提交信息修改房源信息

图6-14 物业管理系统用例模型局部

(1)但小李认为该模型不符合“用例建模”的思想,存在明显的错误。请用200字以内说明错误所在,并说明应该如何修改。

1)主要错误:用例的分解太细,并没有遵从每个用例为用户传递一个有价值的结果的原则。在原设计中“打开房源信息页面”、“录入房源信息”、“确认提交信息”都只是一个操作步骤,因此不适合作为用例。

2)修改方法:将“打开房源信息页面”、“录入房源信息”、“确认提交信息”合并为“新增房源信息”。

(2)在上图中构造型“《include》”表示的是什么意思,它与“《extent》”之间的区别是什么?

在用例模型中,构造型“《include》”是用来表示包含关系。它通常用来表示被包含用例是被多包含用例使用的一个可复用模块,而《extent》且通常用来表示对用例的扩展。

29. 在顺序图中和在通信图中,分别应该如何表示“循环”结构的? 在顺序图中,循环结构可以使用一个交互片断来表示

在通信图中,使用迭代标记来表示循环。迭代是通过在顺序编号前加上一个迭代符“*”和一个可选的迭代表达式来表示的。对于迭代表达式,UML没有强制规定什么语法,因此你可以使用任何可读的、有意义的表达式来表示

30. 在交互图中,表示返回消息的符号是什么?表示异步消息符号是什么,异步消息指的是什么意思?

返回消息符号:

异步消息:

异步模式:对象A发送了一个信号给对象B,那么A在发送完信号之后,就会继续执行,不会等待

31. 假设有一系统的协作图局部如图7-29所示,print方法的功能是将传入参数的值打印在屏幕上;fact方法是用来计算阶乘的,test的初值为1。那么将打印出什么?

1: print(test)*[i=1..3]1.1: test=test+fact(test):A:B 图7-29 协作图局部

打印的值是9。将执行三次迭代,因此test的值是1!+2!+3!=9.

本文来源:https://www.bwwdw.com/article/rnr2.html

Top