《UML面向对象建模基础》课后习题答案

更新时间:2024-04-29 04:27:01 阅读量: 综合文库 文档下载

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

第1章 UML概述

1. 请指出UML的三个主要的特性。 1)UML是一种语言 2)UML是用来建模的 3)UML是统一的标准

2. 请指出三种以上现实生活中的常用模型,并说明它们分别在各自的领域中发挥了什么样的作用。

1)电路图:电子产品设计、生产、维修

2)园区沙盘:直观、立体化地展示园区的景观、布局 3)地图:导航、指路等

3. 请简要说明建模的意义和建模的原则。

建议能够帮助我们按照实际情况或按我们需要的样式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文档化

在建模时应遵循以下原则:选择要创建什么模型对如何动手解决问题和如何形成解决方案有着意义深远的影响;每一种模型可以在不同的精度级别上表示;最好的模型是与现实相联系的;单个模型是不充分的。对每个重要的系统最好用一组几乎独立的模型去处理

4. 请说明蓝图和草图的区别,并简单描述其适用的场景。

蓝图一般是指采用CASE工具绘制的、正式的、规范的UML模型;而草图则通常是指手工绘制的、规范度较低的在纸张的UML模型。

对于局部的、重要性不高的、共享范围较小的UML模型,直接将草图扫描到电脑存档即可;对于全局的、重要性高的、高度共享的,在草图的基础上用CASE工具绘制成为正式的蓝图,并将其纳入统一的模型管理中

5. 说明UML适用的建模领域,以及其作用和主要的参与人员。 ?

业务建模,用来加强对业务领域的了解,以领域专家为主,需求分析人员是主力,系统分析员、架构师可参与。 ?

需求模型,用来加强需求了解,便于技术决策,以需求分析人员为主,系统分析员是主力,领域专家提供指导,架构师和资深开发人员参与。 ?

设计模型:包括高层设计模型和详细设计模型。高层设计模型以架构师为主,系统分析员从需求方面提供支持,资深开发人员从技术实现方面提供支持。详细设计模型则以资深开发人员为主,架构师提供指导。 ?

实现模型:架构师、资深开发人员(设计人员);以资深开发人员(设计人员)为主,架构师提供总体指导。 ?

数据库模型:架构师、数据库开发人员、资深开发人员(设计人员);以数据库开发人员为主,架构师提供指导,资深开发人员(设计人员)予以配合。 6. UML是一种方法论吗?并简要说明理由。

UML不是方法论。它仅仅是一种描述模型的标准语言,虽然渗透了许多方法论的基础概念,但是却没有在标准中给出完整的方法指南。

7. 请简要说明UML和面向软件开发之间的关系。

UML和面向对象软件开发之间有很强的关联关系,甚至可以说是面向对象软件开发催生了UML。但是由于在UML的标准化和发展过程,有机地吸纳了业务建模、工作流建模、数据库建模等领域的标准规范,形成了一个适用性很强的标准。

8. 请简要阐述在软件开发过程中使用UML的必要性以及好处。

软件开发是一个很复杂的工程,而采用统一的建模语言来对软件进行描述能够使客户、涉众、开发人员对软件能够有更好的共识,也能够有效地降低复杂性。

第2章 UML世界的构成

1. UML是由哪三个部分组成的,请分别说明它们的作用。 ? ? ?

基本构造块:也就是建模元素,是模型的主体

UML规则:也就是支配基本构造块如何放在一起的规则 公共机制:运用于整个UML模型中的公共机制、扩展机制

2. 请列举出三个以上UML中的事物构造块,并说明适合用来表示“系统向用户提供的功能”的构造块是什么。

结构事务、行为事物、分组事物、注释事务。

适合用来表示“系统向用户提供的功能”的构造块是用例。

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

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

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

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

B. 规格描述

C. 注释

D.构造型

图2-26 示例符号

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

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

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

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

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

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

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

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

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

10. 约束有两种表示法,它们分别是什么?

约束的内容可以以自由形式的文本来表示,也可以使用UML的OCL(对象约束语言)来精确定义。

11. UML 2.0在UML 1的基础上新增了三种图,请指出它们的名称和作用。 1)复合结构图:描述类的运行时刻的分解 2)定时图:描述对象之间的交互,重点在于定时 3)交互概观图:是一种顺序图与活动图的混合

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

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

14. 请绘制出类、用例和协作的图形符号。

图形位置颜色Draw()

15. 在RUP的“4+1”视图中,这个1表示的是什么,它有什么作用。

这个1是用例视图。它是最基本的需求分析模型,是可被最终用户看到的系统行为的用例组成。常用的模型包括用例图、交互图、状态图、活动图等

16. 适用于模型管理的是哪张图。 包图

第3章 UML概述

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

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

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

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

操作名的命名格式与属性名类似,不过通常是动词词组。 3. 假设类ClassB是ClassA的子类,其中ClassA的属性和方法如图3-30所示,则ClassB能够访问的有哪些?

子类只有private的成员无法访问,因此可以访问的属性有mem02和mem03,可以访问的方法有op1。

4. 在图3-31中,是一个仓库管理系统的类模型局部,其中

IncomeOrder是指入库单,OrderItem是指入库中的每一项,Product则是产品信息。请指出模型中的错误,说明原因并改正错误。

IncomeOrder11

图3-30 ClassA表示

ProductOrderItem

图3-31 仓库管理系统类模型局部

根据题意和模型不难得知,一个入库单是由多个入库单项(OrderItem)组成的,因此不可能只涉及一个产品,合理的方式应该是入每个入库单项(OrderItem)与产品一对一关联。即应该绘制为:

IncomeOrderOrderItem11Product

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

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

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

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

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

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

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

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

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

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

8. 根据对象所表示的内容不同,可以将对象分为哪两

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

大类?请分别举出几个例子。

引用对象和值对象。客户、产品、订单都是引用对象的

例子,日期、重量、高度等对象都是典型的值对象。

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

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

private class Score {

… }

}

1)当用户删除后,还要自动完成该用户数据的备份,并从系统中清除,假设我们可以调用deleteAllData(username)方法来实现。

2)假设用户在“已激活”状态,可以响应“备份”命令,并调用backData()方法来完成。 3)假设用户在进入“已禁用”状态,将调用lockData()方法将其所属的信息设置为禁止访问,而将其解禁后,则调用unlockData()方法将其恢复。

7. 在状态机图中,自身转换和内部转换的区别是什么?请举例说明。 8. 复合状态可以分为哪两种类型,在图形表示时它们的主要区别是什么。

9. 假设我们要将图10-17中状态“用户已禁用”和“用户已激活”合并为“用户生效”状态,这时使用的是哪种类型的复合状态?请用嵌套的复合状态绘制出新的状态机图。

10. 在图10-18所示的状态机图中,描述了学习驾照的过程。在该图采用的复合状态是什么类型?请说明该图所表示的含义。

学习理论学习已报名理论考试自主练车教练专人指导驾驶考试获得驾照 图10-18 学习驾照过程状态机图

11. 在图10-18中,什么时候才能够从复合状态“学习”转换到“获得驾照”中。 12. 在状态“理论考试”和“驾驶考试”与其相应的终态连接的线上,应该有什么样的描述?

13. 如果要表示必须在“理论考试”通过之后,才能够安排“教练专人指导”,那么应该如何建模。

14. 阅读图10-19所示的状态机图,并说明其含义。

查看订单详情查看客户信息查看订单H列表 图10-19 页面跳转状态机图

15. 在图10-19中符号“要说明它们的区别。

16. 绘制状态机图的常用的步骤是什么?请简要说明。

H”表示的含义是什么?那么符号“

H*”又表示什么?请简

17. 某销售POS机,它的工作流程是:当客户到收银台后,收银员逐一输入用户购买的商品,输入完之后,计算出总金额,然后等待用户付款,确定支付成功之后,完成收银,等待下一个客户。请为其绘制出相应的状态机图。

18. 状态机图适用于什么场景。请分别举例说明。

第11章 构件图

1. 请简要说明构件的五要素,并举一个例子来说明。

2. 请阐述类与构件之间的主要异同点,并指出在UML中构件主要包括哪三种。 3. 构件相关的接口有哪两种类型?它们的图示法分别是什么样的?从关联关系的角度来看,构件与这两种类型的接口之间是什么关系?

4. 在一张基本构件图中,构件之间最常见的关系是什么?

5. 图11-10是对callcenter.exe的结构进行建模的结果,请说明该图所表示的含义。

《file》config.ini《executeable》callcenter.exe《library》shp_a3.dll{version=4.6.0.6}《library》sh_ttsu.dll《library》libtts.dll 图11-10 基本构件图

6. 请阅读图11-11所示的构件图,说明它表述的含义。

短信发送短信接收工商注册短信查重程序收取短信短信网关接口数据查询发送短信查重业务处理工商局系统接口数据查询 图11-11 嵌套构件图

7. 请简要说明嵌套构件图的绘制过程。 8. 请简要说明构件图适用于哪些建模需求。

第12章 部署图

1. 什么是节点,处理器和设备这两种节点有什么区别? 2. 节点包含的元素主要是什么?请展开说明。 3. 请简要说明部署图的阅读步骤。

4. 请阅读图12-7所示的部署图,说明其所表示的含义:

{OS=Windows}《artifact》ReservationApp客户端{OS=Windows}{100M以太网}《artifact》Scheduler.exe《database》Reservation{SQL Server}图12-7 示例部署图

服务器 5. 请简要说明部署图绘制的两个阶段的主要任务。

6. 用部署图来对嵌入式系统进行建模的最大好处是什么?在建模时,应该遵循哪些要点?

第13章 需求建模基础与实例

1. 需求有三个层次,请分别举例说明。

2. 对于一个软件系统而言,我们说需求可以分为三类,请指出这三类,并分别举例说明。 3. 需求开发主要包括哪些关键活动,请按顺序指出,并说明各自的主要任务。 4. 需求管理活动主要包括哪些?请分别说明其主要任务。 5. 阅读以下描述,找出所有不正确的说法,并说明理由。 (1)用例分析技术是一种需求捕获最佳实践。

(2)设计约束不属于需求阶段考虑的内容,它是设计阶段要捕获的信息。 (3)用户访谈的优点是不够深入、信息易失真。

(4)如果要对数据流细节进行研究,应该采用现场观摩法。

(5)需求基线一旦确立,在基线内包含的内容开发完之前,开发工作不响应变更。 (6)在需求调查之前,需要明确2W1H,其中1H指的是“How(如何实现)”。

(7)需求是由用户需求、功能需求、非功能需求三个部分组成的。 (8)业务需求是软件系统开发的最为本质目标。

6. 请解释用例的WAVE测试中各个字母所表示的含义。请根据这一测试标准衡量以下用例是否符合要求,如果不符合要求,请说明存在的问题。

(1)管理库存(对公司的库存进行优化配置) (2)输入搜索项

(3)送货(通过EMS将订单内的商品寄给用户)

(4)网络连接测试(定时对网络连接进行活动测试,确保连接正常) (5)发送站内短信

7. 请说明在编写用例规格描述时可以采用哪些模型或方法,并分别说明其适用的场景及优缺点。

8. 请对图13-7中的用例“填写任务计划”编写相应的规格描述。

第14章 设计建模基础与实例

1. 请简述设计建模的目的和意义。

2. 在RUP中,设计工作流主要包括哪些活动,请简要说明这些活动的内容,以及将产生的结果。

3. 请简要说明架构建模的意义。

4. 以下关于架构建模的描述中,不正确的有哪些,请简要说明理由,并指正正确的说法。 (1)根据RUP的建议,架构设计应该包括逻辑视图和物理视图。 (2)架构设计的主要工作就是确定类与类之间的关联关系。 (3)分层模式是最常见的架设模式。 5. 请简要说明架构建模常用的步骤。 6. 构件建模主要应从哪两个角度进行设计?

7. 如果你要开发一个类似于“新浪点点通”的应用系统,那么应该采用哪一种架构模式比较理想,请简要阐述选择的理由。

(1)两层模式 (2)三层模式 (3)N层模式 (4)代理模式 (5)管道模式 (6)出版者/订阅者模式 (7)网状模式 8. 请简要说明网状模式的特点,并说明它适用的领域。 9. 请针对用例“UC01.填写任务计划”进行构件建模。

第15章 数据库建模基础与实例

1. 请简单地说明数据库模型与类模型的异同点。

2. 以下关于数据模型三种形式的说法中,不正确的有哪些?请说明其错误的原因,并修正其说法。

(1)数据库建模中的逻辑数据模型和面向对象软件开发中的概念模型十分类似。 (2)在逻辑模型中,一般只标识出数据实体,而不考虑实体之间的关系。 (3)只有在物理模型中,才会列出数据实体的属性。

(4)除了概念模型之外,另外两种模型都是与具体的数据库管理系统相关的。 (5)对于实体属性的数据类型和数据长度,一般只在物理模型中体现。 3. 阅读以下数据列描述中,说明其含义:

(1)Order_ID:Varchar2(16)《PK》《FK》《AK》{table=Order}

(2)Item_ID:Integer《FK》《AK》{key=AK-1,order=1}{key=FK,table=item} (3)Order_ID:Varchar2(16)《PK》

(4)Order_Item_ID:Integer《AK》{key=AK-2} (5)Order_Item_Sequence:Integer《PK》{order=2}

4. 阅读图15-9所示的物理数据模型,并说明其表示的含义。并试着写出相应的DDL。

《table》CustomerCustomerNo:Integer 《PK》GivenName:Varchar(20)Surname:Varchar(20)deleteCustomer()《Trigger》{before delete}《table》Address1AddressID:Integer《PK》Street:Varchar(20)City:Varchar(20)provinceCode:Varchar(2)《FK》Postcode:Varchar(6)1..n111..n《Associative table》CustomerAddressCustomerNo:Integer 《PK》《FK》1..nAddressID:Integer《PK》《FK》《table》provinceprovinceCode:Varchar(2)《PK》provinceName:Varchar(20)

图15-9 物理数据模型实例

5. 在图15-10中,该类元表示的是什么,请简要解释其用途。

《Stored Procedures》Order_DatabasegetOrderTotal(orderID:Varchar(10)):FLOATgetOrders(customer_POID:Varchar(16)):RESULTSET

第16章 UML模型管理

1. 请简要说明UML模型可以分为哪几种元素,它们之间的关系是什么? 2. 请简要说明分析模型的内容。

3. 请说明逻辑视图中一般包括哪些内容。

4. 请简要说明建模过程中各个视图的完成顺序和工作任务。 5. 结合本章所说的方法,找一个真实的开发例子对其进行建模。

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

Top