UML面向对象建模基础答案(徐峰、陈暄-中国水利水电出版社)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6. UML是一种方法论吗?并简要说明理由。
UML不是方法论。它仅仅是一种描述模型的标准语言,虽然渗透了许多方法论的基础概念,但是却没有在标准中给出完整的方法指南。
7. 请简要说明UML和面向软件开发之间的关系。
UML和面向对象软件开发之间有很强的关联关系,甚至可以说是面向对象软件开发催生了UML。但是由于在UML的标准化和发展过程,有机地吸纳了业务建模、工作流建模、数据库建模等领域的标准规范,形成了一个适用性很强的标准。
4. 请说明蓝图和草图的区别,并简单描述其适用的场景。
蓝图一般是指采用CASE工具绘制的、正式的、规范的UML模型;而草图则通常是指手工绘制的、规范度较低的在纸张的UML模型。
对于局部的、重要性不高的、共享范围较小的UML模型,直接将草图扫描到电脑存档即可;对于全局的、重要性高的、高度共享的,在草图的基础上用CASE工具绘制成为正式的蓝图,并将其纳入统一的模型管理中
8. 标记值的作用是什么?它的表示法和约束的表示法有什么异同?在UML模型中如何区分它们?
标记值是用来为事物添加新特性的。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过它是不能够放在元素中的,而是放在相关的元素附近。
9. 构造型的作用是什么?如果我们采用一个自定义的图标来表示它,那么可能遇到的主要问题是什么?
UML面向对象建模基础(徐峰、陈暄)
第1章 UML概述
1. 请指出UML的三个主要的特性。
1)UML是一种语言
2)UML是用来建模的
3)UML是统一的标准
2. 请指出三种以上现实生活中的常用模型,并说明它们分别在各自的领域中发挥了什么样的作用。
1)电路图:电子产品设计、生产、维修
* 基本构造块:也就是建模元素,是模型的主体
* UML规则:也就是支配基本构造块如何放在一起的规则
* 公共机制:运用于整个UML模型中的公共机制、扩展机制
2. 请列举出三个以上UML中的事物构造块,并说明适合用来表示“系统向用户提供的功能”的构造块是什么。
结构事务、行为事物、分组事物、注释事务。
AfterBill xor BeforBill
12. 请简要说明类图的应用领域,并重点说明在软件系统建模应用时的三种模型的关键点及区别。
类图主要可以应用于业务性模型、软件系统模型和数据库逻辑模型。类图应用于软件系统模型时,主要是用来构建领域模型、分析模型和设计模型:
* 领域模型是从面向对象的视角看待现实世界的结果,也就是通过类图来描述现实世界中各种事物的关系。因此在构建这个模型时,最主要的工作是找出相关的类,然后明明类之间的关联关系,必要时加入一些多重性描述和业务规则约束。
5. 说明UML适用的建模领域,以及其作用和主要的参与人员。
* 业务建模,用来加强对业务领域的了解,以领域专家为主,需求分析人员是主力,系统分析员、架构师可参与。
* 需求模型,用来加强需求了解,便于技术决策,以需求分析人员为主,系统分析员是主力,领域专家提供指导,架构师和资深开发人员参与。
13. 图3-34是小张绘制的一张关于网上商城用户管理的领域类图,但其中存在一些问题,请指出错误并说明理由。
图3-34 网上商城用户管理领域类图局部
作为领域类图不应该涉及到实现类,因此不应该引入诸如System.Data.Oracleclient和ArrayList之类与程序实现直接相关的类。
2)园区沙盘:直观、立体化地展示园区的景观、布局
3)地图:导航、指路等
3. 请简要说明建模的意义和建模的原则。
建议能够帮助我们按照实际情况或按我们需要的样式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文档化
在建模时应遵循以下原则:选择要创建什么模型对如何动手解决问题和如何形成解决方案有着意义深远的影响;每一种模型可以在不同的精度级别上表示;最好的模型是与现实相联系的;单个模型是不充分的。对每个重要的系统最好用一组几乎独立的模型去处理
6. 在UML中定义了哪几种可见性规则?其中package的含义是什么?
定义了public、private、protected、package,package是指只有声明在同一个包中的元素才能够看到该元素。
7. 规格描述是一种事物构造块吗?如果不是,它是什么?它的作用是什么?
规格描述不是事物构造块,它是UML四种公共机制之一,用来对构造块的语法和语义进行文字叙述,使得可视化视图和文字视图的分离。
8. 请简要阐述在软件开发过程中使用UML的必要性以及好处。
软件开发是一个很复杂的工程,而采用统一的建模语言来对软件进行描述能够使客户、涉众、开发人员对软件能够有更好的共识,也能够有效地降低复杂性。
第2章 UML世界的构成
1. UML是由哪三个部分组成的,请分别说明它们的作用。
has是关联名称,表示这种关联是“拥有”关系。
“申请ID”是限定符,表示每一个流转记录只能用一个“申请ID”。
8. 根据对象所表示的内容不同,可以将对象分为哪两大类?请分别举出几个例子。
引用对象和值对象。客户、产品、订单都是引用对象的例子,日期、重量、高度等对象都是典型的值对象。
操作名的命名格式与属性名类似,不过通常是动词词组。
3. 假设类ClassB是ClassA的子类,其中ClassA的属性和方法如图3-30所示,则ClassB能够访问的有哪些?
子类只有private的成员无法访问,因此可以访问的属性有mem02和mem03,可以访问的方法有op1。
4. 在图3-31中,是一个仓库管理系统的类模型局部,其中IncomeOrder是指入库单,OrderItem是指入库中的每一项,Product则是产品信息。请指出模型中的错误,说明原因并改正错误。
9. 嵌套类的概念是什么意思?如果类Student包含类Score,请使用你学过的、支持嵌套类的面向对象编程语言将其表示出来。
将一个类的定义放在另一个类定义的内部。
public class Student {
private class Score {
…
* 设计模型:包括高层设计模型和详细设计模型。高层设计模型以架构师为主,系统分析员从需求方面提供支持,资深开发人员从技术实现方面提供支持。详细设计模型则以资深开发人员为主,架构师提供指导。
* 实现模型:架构师、资深开发人员(设计人员);以资深开发人员(设计人员)为主,架构师提供总体指导。
* 数据库模型:架构师、数据库开发人员、资深开发人员(设计人员);以数据库开发人员为主,架构师提供指导,资深开发人员(设计人员)予以配合。
15. 在RUP的“4+1”视图中,这个1表示的是什么,它有什么作用。
这个1是用例视图。它是最基本的需求分析模型,是可被最终用户看到的系统行为的用例组成。常用的模型包括用例图、交互图、状态图、活动图等
16. 适用于模型管理的是哪张图。
包图
第3章 UML概述
1. 绘制一个表示类的UML元素,并指出它主要包含哪三个部分。
1)复合结构图:描述类的运行时刻的分解
2)定时图:描述对象之间的交互,重点在于定时
3)交互概观图:是一种顺序图与活动图的混合
12. 在UML 2.0中定义了四种交互图,其中强调对象调用顺序的是什么图?
顺序图
13. 交互概观图是哪两种图的综合。
顺序图与活动图
14. 请绘制出类、用例和协作的图形符号。
构造型用来定义一些特定于某个领域或某个系统的构造块。用自定义的图标有两个问题:一是容易产生歧义,二是建模工具难以支持。
10. 约束有两种表示法,它们分别是什么?
约束的内容可以以自由形式的文本来表示,也可以使用UML的OCL(对象约束语言)来精确定义。
11. UML 2.0在UML 1的基础上新增了三种图,请指出它们的名称和作用。
图3-32 涉税服务Байду номын сангаас能管理系统类模型局部
* 在描述“税务审批服务申请”时,它主要包含哪几个方面的内容?它有几种不同的类别?
受理资料、受理提示、受理告知、纳税人、流转记录。
包括行政许可类申请、涉税服务类申请和行政审批类申请三类。
* 对于每一条流转记录,可能与几个“税务审批服务申请”相关?与几个处理人相关?
每条流转记录只和一个“税务审批服务申请”相关,只与一个处理人相关。
6. 在图3-32中,对于每个流转记录的处理人它的类型(窗口人员、核查人员、审批人员)是唯一的,也就是只可能取一种值。请在图中加上表示这种规则的约束。
7. 后来,开发人员又在图3-32的基础上进行了一些修改,其中有一个局部修改成了如图3-33的内容。请说明这些新增加的元素分别表示什么含义。
* 分析模型和领域模型是很相近的,甚至可以说领域模型是一种全局的业务分析模型。而在RUP中,分析模型主要是针对软件系统的分析,领域模型则更多是偏重对业务领域的分析。
* 设计模型则是在分析模型的基础上添加设计元素的结果。与分析模型相比,设计模型中的类的属性集更趋完善;更重要的是,它将加入模板类、参数类、抽象类/接口等设计元素,以及框架类的使用、设计模式的使用等。总的来说,设计模型是一种详细设计模型,将能够直接对编程予以指导。
而对于类的意义进行简单描述,最合适的显然还是注释。
4. 图2-26所示的符号表示的是什么?它是关系构造块还是事物构造块?
图2-26 示例符号
扩展关系,是关系构造块。
5. 可以包含其它事物构造块的构造块是什么?它属于什么类型的事物构造块?
可以包含其它事物构造块的构造块是包,它属于分组事物构造块。
图3-31 仓库管理系统类模型局部
根据题意和模型不难得知,一个入库单是由多个入库单项(OrderItem)组成的,因此不可能只涉及一个产品,合理的方式应该是入每个入库单项(OrderItem)与产品一对一关联。即应该绘制为:
5. 在图3-32中是一个“涉税服务管理效能管理系统”中类模型的一个局部,请根据该图回答以下问题。
例如Socket服务器的监听线程就可以表示为主动类。
11. 以使用OCL语言来表示以下含义:
* 在类examinee(考生)中,字段result(成绩)的值大于零,小于75分(满分)。
examinee:result>0 and result<75
* 在类Order中,其包含的支付信息是用其它类来表示,要么是表示货到付款的类AfterBill,要么是网上转账的类BeforeBill。
}
}
10. 请简要解释主动类的概念,并说明它建模的意义,并通过1-2个实例来说明,主动类可以用来表示哪些设计元素。
主动类的实例称为主动对象,一个主动对象拥有一个控制线程并且能够发起控制活动;它不在别的线程、堆栈或状态机内运行,具有独立的控制期。从某种意义上说,它就是一个线程。
类名、属性、操作
2. 在对类名、属性/方法名时,通常会遵循什么样的规则?请举例说明。
对于类名通常采用CamelCase格式(大写字线开头、混合大小写,每个单词以大写开始,避免使用特殊符号),尽可能避免使用缩写,例如OrderDetail。
属性名也采用CamelCase格式,但为了与类名进行区别,通常首字母以小写开头,例如productId。
适合用来表示“系统向用户提供的功能”的构造块是用例。
3. 如果你想对一个类的意义进行描述,那么应该采用 ?请简要说明原因。
A. 标记值 B. 规格描述 C. 注释 D.构造型
C
标记值是用来为事物添加新特性的;规格描述用来对构造块的语法和语义进行文字叙述,使得可视化视图和文字视图的分离;构造型是用来增加新事物的。
UML不是方法论。它仅仅是一种描述模型的标准语言,虽然渗透了许多方法论的基础概念,但是却没有在标准中给出完整的方法指南。
7. 请简要说明UML和面向软件开发之间的关系。
UML和面向对象软件开发之间有很强的关联关系,甚至可以说是面向对象软件开发催生了UML。但是由于在UML的标准化和发展过程,有机地吸纳了业务建模、工作流建模、数据库建模等领域的标准规范,形成了一个适用性很强的标准。
4. 请说明蓝图和草图的区别,并简单描述其适用的场景。
蓝图一般是指采用CASE工具绘制的、正式的、规范的UML模型;而草图则通常是指手工绘制的、规范度较低的在纸张的UML模型。
对于局部的、重要性不高的、共享范围较小的UML模型,直接将草图扫描到电脑存档即可;对于全局的、重要性高的、高度共享的,在草图的基础上用CASE工具绘制成为正式的蓝图,并将其纳入统一的模型管理中
8. 标记值的作用是什么?它的表示法和约束的表示法有什么异同?在UML模型中如何区分它们?
标记值是用来为事物添加新特性的。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过它是不能够放在元素中的,而是放在相关的元素附近。
9. 构造型的作用是什么?如果我们采用一个自定义的图标来表示它,那么可能遇到的主要问题是什么?
UML面向对象建模基础(徐峰、陈暄)
第1章 UML概述
1. 请指出UML的三个主要的特性。
1)UML是一种语言
2)UML是用来建模的
3)UML是统一的标准
2. 请指出三种以上现实生活中的常用模型,并说明它们分别在各自的领域中发挥了什么样的作用。
1)电路图:电子产品设计、生产、维修
* 基本构造块:也就是建模元素,是模型的主体
* UML规则:也就是支配基本构造块如何放在一起的规则
* 公共机制:运用于整个UML模型中的公共机制、扩展机制
2. 请列举出三个以上UML中的事物构造块,并说明适合用来表示“系统向用户提供的功能”的构造块是什么。
结构事务、行为事物、分组事物、注释事务。
AfterBill xor BeforBill
12. 请简要说明类图的应用领域,并重点说明在软件系统建模应用时的三种模型的关键点及区别。
类图主要可以应用于业务性模型、软件系统模型和数据库逻辑模型。类图应用于软件系统模型时,主要是用来构建领域模型、分析模型和设计模型:
* 领域模型是从面向对象的视角看待现实世界的结果,也就是通过类图来描述现实世界中各种事物的关系。因此在构建这个模型时,最主要的工作是找出相关的类,然后明明类之间的关联关系,必要时加入一些多重性描述和业务规则约束。
5. 说明UML适用的建模领域,以及其作用和主要的参与人员。
* 业务建模,用来加强对业务领域的了解,以领域专家为主,需求分析人员是主力,系统分析员、架构师可参与。
* 需求模型,用来加强需求了解,便于技术决策,以需求分析人员为主,系统分析员是主力,领域专家提供指导,架构师和资深开发人员参与。
13. 图3-34是小张绘制的一张关于网上商城用户管理的领域类图,但其中存在一些问题,请指出错误并说明理由。
图3-34 网上商城用户管理领域类图局部
作为领域类图不应该涉及到实现类,因此不应该引入诸如System.Data.Oracleclient和ArrayList之类与程序实现直接相关的类。
2)园区沙盘:直观、立体化地展示园区的景观、布局
3)地图:导航、指路等
3. 请简要说明建模的意义和建模的原则。
建议能够帮助我们按照实际情况或按我们需要的样式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文档化
在建模时应遵循以下原则:选择要创建什么模型对如何动手解决问题和如何形成解决方案有着意义深远的影响;每一种模型可以在不同的精度级别上表示;最好的模型是与现实相联系的;单个模型是不充分的。对每个重要的系统最好用一组几乎独立的模型去处理
6. 在UML中定义了哪几种可见性规则?其中package的含义是什么?
定义了public、private、protected、package,package是指只有声明在同一个包中的元素才能够看到该元素。
7. 规格描述是一种事物构造块吗?如果不是,它是什么?它的作用是什么?
规格描述不是事物构造块,它是UML四种公共机制之一,用来对构造块的语法和语义进行文字叙述,使得可视化视图和文字视图的分离。
8. 请简要阐述在软件开发过程中使用UML的必要性以及好处。
软件开发是一个很复杂的工程,而采用统一的建模语言来对软件进行描述能够使客户、涉众、开发人员对软件能够有更好的共识,也能够有效地降低复杂性。
第2章 UML世界的构成
1. UML是由哪三个部分组成的,请分别说明它们的作用。
has是关联名称,表示这种关联是“拥有”关系。
“申请ID”是限定符,表示每一个流转记录只能用一个“申请ID”。
8. 根据对象所表示的内容不同,可以将对象分为哪两大类?请分别举出几个例子。
引用对象和值对象。客户、产品、订单都是引用对象的例子,日期、重量、高度等对象都是典型的值对象。
操作名的命名格式与属性名类似,不过通常是动词词组。
3. 假设类ClassB是ClassA的子类,其中ClassA的属性和方法如图3-30所示,则ClassB能够访问的有哪些?
子类只有private的成员无法访问,因此可以访问的属性有mem02和mem03,可以访问的方法有op1。
4. 在图3-31中,是一个仓库管理系统的类模型局部,其中IncomeOrder是指入库单,OrderItem是指入库中的每一项,Product则是产品信息。请指出模型中的错误,说明原因并改正错误。
9. 嵌套类的概念是什么意思?如果类Student包含类Score,请使用你学过的、支持嵌套类的面向对象编程语言将其表示出来。
将一个类的定义放在另一个类定义的内部。
public class Student {
private class Score {
…
* 设计模型:包括高层设计模型和详细设计模型。高层设计模型以架构师为主,系统分析员从需求方面提供支持,资深开发人员从技术实现方面提供支持。详细设计模型则以资深开发人员为主,架构师提供指导。
* 实现模型:架构师、资深开发人员(设计人员);以资深开发人员(设计人员)为主,架构师提供总体指导。
* 数据库模型:架构师、数据库开发人员、资深开发人员(设计人员);以数据库开发人员为主,架构师提供指导,资深开发人员(设计人员)予以配合。
15. 在RUP的“4+1”视图中,这个1表示的是什么,它有什么作用。
这个1是用例视图。它是最基本的需求分析模型,是可被最终用户看到的系统行为的用例组成。常用的模型包括用例图、交互图、状态图、活动图等
16. 适用于模型管理的是哪张图。
包图
第3章 UML概述
1. 绘制一个表示类的UML元素,并指出它主要包含哪三个部分。
1)复合结构图:描述类的运行时刻的分解
2)定时图:描述对象之间的交互,重点在于定时
3)交互概观图:是一种顺序图与活动图的混合
12. 在UML 2.0中定义了四种交互图,其中强调对象调用顺序的是什么图?
顺序图
13. 交互概观图是哪两种图的综合。
顺序图与活动图
14. 请绘制出类、用例和协作的图形符号。
构造型用来定义一些特定于某个领域或某个系统的构造块。用自定义的图标有两个问题:一是容易产生歧义,二是建模工具难以支持。
10. 约束有两种表示法,它们分别是什么?
约束的内容可以以自由形式的文本来表示,也可以使用UML的OCL(对象约束语言)来精确定义。
11. UML 2.0在UML 1的基础上新增了三种图,请指出它们的名称和作用。
图3-32 涉税服务Байду номын сангаас能管理系统类模型局部
* 在描述“税务审批服务申请”时,它主要包含哪几个方面的内容?它有几种不同的类别?
受理资料、受理提示、受理告知、纳税人、流转记录。
包括行政许可类申请、涉税服务类申请和行政审批类申请三类。
* 对于每一条流转记录,可能与几个“税务审批服务申请”相关?与几个处理人相关?
每条流转记录只和一个“税务审批服务申请”相关,只与一个处理人相关。
6. 在图3-32中,对于每个流转记录的处理人它的类型(窗口人员、核查人员、审批人员)是唯一的,也就是只可能取一种值。请在图中加上表示这种规则的约束。
7. 后来,开发人员又在图3-32的基础上进行了一些修改,其中有一个局部修改成了如图3-33的内容。请说明这些新增加的元素分别表示什么含义。
* 分析模型和领域模型是很相近的,甚至可以说领域模型是一种全局的业务分析模型。而在RUP中,分析模型主要是针对软件系统的分析,领域模型则更多是偏重对业务领域的分析。
* 设计模型则是在分析模型的基础上添加设计元素的结果。与分析模型相比,设计模型中的类的属性集更趋完善;更重要的是,它将加入模板类、参数类、抽象类/接口等设计元素,以及框架类的使用、设计模式的使用等。总的来说,设计模型是一种详细设计模型,将能够直接对编程予以指导。
而对于类的意义进行简单描述,最合适的显然还是注释。
4. 图2-26所示的符号表示的是什么?它是关系构造块还是事物构造块?
图2-26 示例符号
扩展关系,是关系构造块。
5. 可以包含其它事物构造块的构造块是什么?它属于什么类型的事物构造块?
可以包含其它事物构造块的构造块是包,它属于分组事物构造块。
图3-31 仓库管理系统类模型局部
根据题意和模型不难得知,一个入库单是由多个入库单项(OrderItem)组成的,因此不可能只涉及一个产品,合理的方式应该是入每个入库单项(OrderItem)与产品一对一关联。即应该绘制为:
5. 在图3-32中是一个“涉税服务管理效能管理系统”中类模型的一个局部,请根据该图回答以下问题。
例如Socket服务器的监听线程就可以表示为主动类。
11. 以使用OCL语言来表示以下含义:
* 在类examinee(考生)中,字段result(成绩)的值大于零,小于75分(满分)。
examinee:result>0 and result<75
* 在类Order中,其包含的支付信息是用其它类来表示,要么是表示货到付款的类AfterBill,要么是网上转账的类BeforeBill。
}
}
10. 请简要解释主动类的概念,并说明它建模的意义,并通过1-2个实例来说明,主动类可以用来表示哪些设计元素。
主动类的实例称为主动对象,一个主动对象拥有一个控制线程并且能够发起控制活动;它不在别的线程、堆栈或状态机内运行,具有独立的控制期。从某种意义上说,它就是一个线程。
类名、属性、操作
2. 在对类名、属性/方法名时,通常会遵循什么样的规则?请举例说明。
对于类名通常采用CamelCase格式(大写字线开头、混合大小写,每个单词以大写开始,避免使用特殊符号),尽可能避免使用缩写,例如OrderDetail。
属性名也采用CamelCase格式,但为了与类名进行区别,通常首字母以小写开头,例如productId。
适合用来表示“系统向用户提供的功能”的构造块是用例。
3. 如果你想对一个类的意义进行描述,那么应该采用 ?请简要说明原因。
A. 标记值 B. 规格描述 C. 注释 D.构造型
C
标记值是用来为事物添加新特性的;规格描述用来对构造块的语法和语义进行文字叙述,使得可视化视图和文字视图的分离;构造型是用来增加新事物的。