当前位置:文档之家› UML面向对象设计与分析复习资料

UML面向对象设计与分析复习资料

第1章UML概述

1. 请指出UML的三个主要的特性。

1)UML是一种语言

2)UML是用来建模的

3)UML是统一的标准

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

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

2)园区沙盘:直观、立体化地展示园区的景观、布局

3)地图:导航、指路等

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

建模能够帮助我们按照实际情况或按我们需要的样式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文档化在建模时应遵循以下原则:选择要创建什么模型对如何动手解决问题和如何形成解决方案有着意义深远的影响;每一种模型可以在不同的精度级别上表示;最好的模型是与现实相联系的;单个模型是不充分的。对每个重要的系统最好用一组几乎独立的模型去处理

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

?业务建模,用来加强对业务领域的了解,以领域专家为主,需求分析人员是主力,系统分

析员、架构师可参与。

?需求模型,用来加强需求了解,便于技术决策,以需求分析人员为主,系统分析员是主力,

领域专家提供指导,架构师和资深开发人员参与。

?设计模型:包括高层设计模型和详细设计模型。高层设计模型以架构师为主,系统分析员

从需求方面提供支持,资深开发人员从技术实现方面提供支持。详细设计模型则以资深开

发人员为主,架构师提供指导。

?实现模型:架构师、资深开发人员(设计人员);以资深开发人员(设计人员)为主,架

构师提供总体指导。

?数据库模型:架构师、数据库开发人员、资深开发人员(设计人员);以数据库开发人员

为主,架构师提供指导,资深开发人员(设计人员)予以配合。

5. UML是一种方法论吗?并简要说明理由。

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

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

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

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

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

8. UML的体系包括那三个部分

UML基本构造块,UML的规则和UML公共机制

9. 在UML中,有3种基本构造块,分别是什么?

事物、关系和图

10 状态图的基本概念

11 协作图的基本概念

12 顺序图的基本概念

13 泳道的基本概念

14 对象图类图的基本概念

15 组件、规范、接口、接点的概念

第2章用例图

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

参与者是为了完成一个事件而与系统交互的实体,它不属于系统范围之内。

2. 用例和使用场景之间是什么关系?与协作又是什么关系?

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

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

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

另一个用例的行为所扩展

?包含关系:被包含的用例(此例中的检查座位详情)不是孤立存在的,它仅作为某些包含

它的更大的基用例(此例中的预订座位、安排座位)的一部分出现

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

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

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

5. 对于一个电子商务网站而言,以下哪些不是合适的用例,指出并说明理由。

输入支付信息将商品放入购物车结账预订商品

用户登录邮寄商品查看商品详情

输入支付信息:太小

邮件商品:系统功能之外

查看商品详情:太小

6. 用例分析技术和结构化分析相比,最大的区别是什么?请简要地说明它们之间的关系。

用例分析技术最大的特点是从用户的角度来分析、组织需求。而结构化分析更多是从系统的结构上进行分析。

7. 为了满足物业中介行业的信息化要求,甲公司基于详尽的需求调研与分析,准备研发一套符合市场需要的、实用的信息管理系统。主要将实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。该公司小王,通过多次的与潜在客户的交流与沟通,完成了最初的用例模型的开发,图2-1是一个用例模型的局部:

修改房源信息

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

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

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

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

(2)在上图中构造型“《

include 》”表示的是什么意思,它与“《extent 》”之间的区别

是什么?

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

8.一台自动售货机能提供6种不同的饮料,售货机上有6个不同的按钮,分别对应这6种不同的饮料,顾客通过这些按钮选择不同的饮料。售货机有一个硬币槽和找零槽,分别用来收钱和找钱。现在为这个系统设计一个用例图?

顾客

9.现有一个产品销售系统,其总体需求如下:

系统允许管理员生成存货清单报告。

管理员可以更新存货清单。

销售员记录正常的销售情况。

交易可以使用信用卡或支标,系统需要对其进行验证。

每次交易后都需要更新存货清单。

分析其总体需求,并绘制出其用例图?

10.绘制用例图,为如下的每个事件显示酒店管理系统中的用例,并描述各用例的基本操作流程。

客人预订房间。

客人登记。

客人的承担服务费用。

生成最终账单

客人结账

客人支付账单

第3章对象图

1. 对象特性的三要素是什么,请通过一个实际的例子来说明三要素的内容。

对象特性的三要素是状态、行为和标识。

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

“我的UML参考手册(第二版)”、“号码为136********的手机卡”应该是对象。

3. 在图3-1中最上面的对象的名称是什么?该图表示的意思是什么?请绘制出与其相应的类图。

图3-1 对象图实例

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

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

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

第4章类图

1.创建一个类图。下面给出创建类图所需的信息。

●学生(student)可以是在校生(undergraduate)或者毕业生(graduate)。

●在校生可以是助教(tutor)。

●一名助教指导一名学生。

●教师和教授属于不同级别的教员。

●一名教师助理可以协助一名教师和一名教授,一名教师只能有一名教师助理,一名

教授可以有5名教师助理。

●教师助理是毕业生。

创建类图的步骤如下:

(1)将学生可以是在校生或者毕业生建模为3个类:Student、UnderGraduate和Graduate,其中,后两个类是Student类的子类。

(2)为“在校生可以是助教的一种”建立模型,即建立UnderGraduate类的另一个超类Tutor。

(3)通过创建从Tutor到Student的关联(名为tutors),建立一名助教指导一名学生的模型。

(4)将“教师和教授属于不同级别的教员”建模为3个类:Instructor、Teacher和Professor,其中,后两个类是Instructor类的子类。

(5)建立“一名教师助理可以协助一名教师和一名教授,一名教师只能有一名教师助理,一名教授可以有5名教师助理”的模型。创建TeacherAssistant类,并使其与Teacher 类和Professor类都建立关联。

(6)将TeacherAssistant类建模为Graduate类的派生类。

2.根据用例图和系统需求描述创建类图。本练习将根据如下所示的系统需求和如图4-1所示的用例图建模一个类图。

系统需求描述:

(1)系统允许管理员通过从磁盘加载存货数据来运行存货清单报告。

(2)管理员通过从磁盘加载存货数据、向磁盘保存存货数据来更新存货清单。

(3)售货员做销售记录。

(4)电话操作员是处理电话订单的特殊售货员。

(5)任何类型的销售都需要更新存货清单。

(6)如果交易使用了信用卡,那么售货员需要核实信用卡。

(7)如果交易使用了支票,那么售货员需要核实支票。

telephone operator sales clerk

图4-1 用例图示例

创建类图的步骤如下所示:

(1)确定可以在用例图中找到的类。 (2)建模类与类之间的关系。

(3)为类图中的关联关系添加合适的角色名。 (4)为已被封装到类中的独立功能建模类。 (5)为类图中的类添加必要的特性和操作。

第5章 活动图

2.运用本书前面介绍有关活动图的相关知识,根据图5-1的图书馆管理系统还书用例建模该用例的活动图。综合运用所学到的标记符,包括活动、转移、控制点、泳道、分叉和汇合

等。并使用建模活动图的五个步骤,逐步为用例建模活动图。

图5-1 还书用例

第6章顺序图

1.下面列出了打印文件时的工作流:

●用户通过计算机指定要打印的文件。

●打印服务器根据打印机是否空闲,操作打印机打印文件。

●如果打印机空闲,则打印机打印文件;

●如果打印机忙,则将打印消息存放在队列中等待。

经分析人员分析确认,该系统共有四个对象Computer、PrintServer、Printer和Queue。请给出对应用于该工作流的顺序图。

2.下面是一个客户在A TM机上取款工作流。

●客户选择取款功能选项。

●系统提示插入IC卡。

●客户插入IC卡后,系统提示用户输入密码。

●客户输入自己的密码。

●系统检查用户密码是否正确。

●如果密码正确;则系统显示用户账户上的剩余金额,并提示用户输入想要提取的金

额。

●用户输入提取金额后,系统检查输入数据的合法性。

●在获取用户输入的正确金额后,系统开始一个事条处理,减少账户上的余额,并输

出相应的现金。

从该工作流中分析求出所涉及到的对象,并用顺序图描述这个过程。

第7章包图

1. 包在UML中属于哪一类?它的主要作用是什么?

属于用例视图。通过“包”就可以把类、用例、构件等元素聚集在一起,构成更高层的单位。这样就可以将它们作为一个成组的元素来进行可视化。

2. 包之间的依赖关系主要包括哪几种,请分别举个例子说明。

《use》:DAO程序使用System.Data.SqlClient包完成对SQL服务器的访问

《import》:页面与被引用的用户控件之间的关系

《access》:两个相互之间可以访问的包

《trace》:不同版本的包

3. 包之间的各种依赖关系中,客户包将把提供者包并入自己的命名空间的是哪个?

《import》关系

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

图7-1 温度监控系统包图的局部

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

5. 请解释体系结构建模和对成组元素建模有什么区别,并试着给一个你开发过的系统绘制表示其体系结构的包图。

对体系结构建模关键在于描述出系统采用的体系结构模式;而对成组元素建模,主要是将建模元素组织成能作为一个集合进行命名和处理的分组。

第8章状态图

1.建模状态图,建模一个销售系统。对于其中的实体sale类创建一个状态机图,用来描述如何接受订单、处理订单、记入货存清单并且成功完成处理。这里给出以下主要状态:

●EmptyOrder

●ValidOrder

●Processing

●Processed

●Canclled

依据状态机图创建步骤,利用上面状态组成完成的状态机图,并检测是否需要组成状态来完成完整功能。建模状态机图时需要注意,状态机图和活动图在外观上有相似之处,一定要注意区分两种图形之间的区别。

第9章 UML实现与部署

1、书店借书系统的UML实现与部署

部署图

C/S版本

B/S版本

2、家教网上发布系统的UML实现与部署参考答案

部署图

包图

组件图(管理教师信息相关的组件图)

组件图(管理学生信息相关的组件图)

组件图(管理公告信息相关的组件图)

相关主题
文本预览
相关文档 最新文档