1、第 1 章 UML 概述1. 请指出 UML 的三个主要的特性。1)UML 是一种语言2)UML 是用来建模的3)UML 是统一的标准2. 请指出三种以上现实生活中的常用模型,并说明它们分别在各自的领域中发挥了什么样的作用。1)电路图:电子产品设计、生产、维修2)园区沙盘:直观、立体化地展示园区的景观、布局3)地图:导航、指路等3. 请简要说明建模的意义和建模的原则。建模能够帮助我们按照实际情况或按我们需要的样式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文档化在建模时应遵循以下原则:选择要创建什么模型对如何动手解决问题和如何形成
2、解决方案有着意义深远的影响;每一种模型可以在不同的精度级别上表示;最好的模型是与现实相联系的;单个模型是不充分的。对每个重要的系统最好用一组几乎独立的模型去处理4. 说明 UML 适用的建模领域,以及其作用和主要的参与人员。 业务建模,用来加强对业务领域的了解,以领域专家为主,需求分析人员是主力,系统分析员、架构师可参与。 需求模型,用来加强需求了解,便于技术决策,以需求分析人员为主,系统分析员是主力,领域专家提供指导,架构师和资深开发人员参与。 设计模型:包括高层设计模型和详细设计模型。高层设计模型以架构师为主,系统分析员从需求方面提供支持,资深开发人员从技术实现方面提供支持。详细设计模型则
3、以资深开发人员为主,架构师提供指导。 实现模型:架构师、资深开发人员(设计人员);以资深开发人员(设计人员)为主,架构师提供总体指导。 数据库模型:架构师、数据库开发人员、资深开发人员(设计人员);以数据库开发人员为主,架构师提供指导,资深开发人员(设计人员)予以配合。5. UML 是一种方法论吗?并简要说明理由。UML 不是方法论。它仅仅是一种描述模型的标准语言,虽然渗透了许多方法论的基础概念,但是却没有在标准中给出完整的方法指南。6. 请简要说明 UML 和面向软件开发之间的关系。UML 和面向对象软件开发之间有很强的关联关系,甚至可以说是面向对象软件开发催生了UML。但是由于在 UML
4、的标准化和发展过程,有机地吸纳了业务建模、工作流建模、数据库建模等领域的标准规范,形成了一个适用性很强的标准。7. 请简要阐述在软件开发过程中使用 UML 的必要性以及好处。软件开发是一个很复杂的工程,而采用统一的建模语言来对软件进行描述能够使客户、涉众、开发人员对软件能够有更好的共识,也能够有效地降低复杂性。8. UML 的体系包括那三个部分UML 基本构造块,UML 的规则和 UML 公共机制9. 在 UML 中,有 3 种基本构造块,分别是什么?事物、关系和图10 状态图的基本概念11 协作图的基本概念12 顺序图的基本概念 13 泳道的基本概念 14 对象图类图的基本概念 15 组件、
5、规范、接口、接点的概念第 2 章 用例图1. 在用例图中参与者是什么,它属于系统范围之内吗?参与者是为了完成一个事件而与系统交互的实体,它不属于系统范围之内。2. 用例和使用场景之间是什么关系?与协作又是什么关系?用例是由一组用例实例组成的,用例实例也就是常说的“使用场景”,而协作是用例的实现。3. 用例之间的扩展、泛化、包含三种关系有什么异同,请分别举例说明。 扩展关系:基用例是可以独立于扩展用例存在的,只是在特定的条件下,它的行为可以被另一个用例的行为所扩展 包含关系:被包含的用例(此例中的检查座位详情)不是孤立存在的,它仅作为某些包含它的更大的基用例(此例中的预订座位、安排座位)的一部分
6、出现 泛化关系:用来表示参与者与参与者之间,用例与用例之间的特殊/一般化关系4. 一个用例的描述,最基本的部分有哪些。用户描述、用例名称、用例概述、主参与者、基本事件流5. 对于一个电子商务网站而言,以下哪些不是合适的用例,指出并说明理由。输入支付信息 将商品放入购物车 结账 预订商品用户登录 邮寄商品 查看商品详情输入支付信息:太小邮件商品:系统功能之外查看商品详情:太小6. 用例分析技术和结构化分析相比,最大的区别是什么?请简要地说明它们之间的关系。用例分析技术最大的特点是从用户的角度来分析、组织需求。而结构化分析更多是从系统的结构上进行分析。7. 为了满足物业中介行业的信息化要求,甲公司
7、基于详尽的需求调研与分析,准备研发一套符合市场需要的、实用的信息管理系统。主要将实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。该公司小王,通过多次的与潜在客户的交流与沟通,完成了最初的用例模型的开发,图 2-1 是一个用例模型的局部:录 入 房 源 信 息确 认 提 交 信 息房 产 经 纪 人修 改 房 源 信 息打 开 房 源 信 息 页 面登 录 信 息图 6-14 物业管理系统用例模型局部(1)但小李认为该模型不符合“用例建模”的思想,存在明显的错误。请用 200 字以内说明错误所在,
8、并说明应该如何修改。1)主要错误:用例的分解太细,并没有遵从每个用例为用户传递一个有价值的结果的原则。在原设计中“打开房源信息页面”、“录入房源信息”、“确认提交信息”都只是一个操作步骤,因此不适合作为用例。2)修改方法:将“打开房源信息页面”、“录入房源信息”、“确认提交信息”合并为“新增房源信息”。(2)在上图中构造型“include”表示的是什么意思,它与“extent”之间的区别是什么?在用例模型中,构造型“include”是用来表示包含关系。它通常用来表示被包含用例是被多包含用例使用的一个可复用模块,而extent且通常用来表示对用例的扩展。8一台自动售货机能提供 6 种不同的饮料,
9、售货机上有 6 个不同的按钮,分别对应这 6 种不同的饮料,顾客通过这些按钮选择不同的饮料。售货机有一个硬币槽和找零槽,分别用来收钱和找钱。现在为这个系统设计一个用例图?选择饮料投币找零顾客9现有一个产品销售系统,其总体需求如下:系统允许管理员生成存货清单报告。管理员可以更新存货清单。销售员记录正常的销售情况。交易可以使用信用卡或支标,系统需要对其进行验证。每次交易后都需要更新存货清单。分析其总体需求,并绘制出其用例图?管理员 销售员生成存货清单报告更新存货清单记录销售情况验证账号交易10绘制用例图,为如下的每个事件显示酒店管理系统中的用例,并描述各用例的基本操作流程。客人预订房间。客人登记。
10、客人的承担服务费用。生成最终账单客人结账客人支付账单服务员预订房间登记计算费用打印账单结账第 3 章 对象图1. 对象特性的三要素是什么,请通过一个实际的例子来说明三要素的内容。对象特性的三要素是状态、行为和标识。2. “书”、“购物车”、“我的 UML 参考手册(第二版)”、“银行卡”、“号码为 13600000000的手机卡”中,哪些是对象,哪些是类。光从这些名字是否一定可以确定为是对象?“我的 UML 参考手册(第二版)”、“号码为 13600000000 的手机卡”应该是对象。3. 在图 3-1 中最上面的对象的名称是什么?该图表示的意思是什么?请绘制出与其相应的类图。fuJian:P
11、rovinceChina:CountrysiChuan:Province图 3-1 对象图实例China。该图的意思是福建、四川等省份组成中国。C o u n t r yP r o v i n c e4. 请说明对象图的适用场景以及它的优缺点。对象图适用于论证类模型的设计以及对源代码进行分析和说明。其优点是能够直观理解出系统运行时的实时状态,缺点是比较复杂,工作量大。第 4 章 类图1创建一个类图。下面给出创建类图所需的信息。 学生(student)可以是在校生(undergraduate )或者毕业生(graduate) 。 在校生可以是助教(tutor ) 。 一名助教指导一名学生。 教师
12、和教授属于不同级别的教员。 一名教师助理可以协助一名教师和一名教授,一名教师只能有一名教师助理,一名教授可以有 5 名教师助理。 教师助理是毕业生。创建类图的步骤如下:(1)将学生可以是在校生或者毕业生建模为 3 个类:Student 、UnderGraduate 和Graduate,其中,后两个类是 Student 类的子类。(2)为“在校生可以是助教的一种”建立模型,即建立 UnderGraduate 类的另一个超类 Tutor。(3)通过创建从 Tutor 到 Student 的关联(名为 tutors) ,建立一名助教指导一名学生的模型。(4)将“教师和教授属于不同级别的教员”建模为
13、3 个类:Instructor 、Teacher 和Professor,其中,后两个类是 Instructor 类的子类。(5)建立“一名教师助理可以协助一名教师和一名教授,一名教师只能有一名教师助理,一名教授可以有 5 名教师助理”的模型。创建 TeacherAssistant 类,并使其与 Teacher类和 Professor 类都建立关联。(6)将 TeacherAssistant 类建模为 Graduate 类的派生类。S t u d e n tU n d e r G r a d u a t e G r a d u a t eT u t o r11I n s t r u c t o
14、rT e a c h e r P r o f e s s o rT e a c h e r A s s i s t a n tn1112根据用例图和系统需求描述创建类图。本练习将根据如下所示的系统需求和如图 4-1 所示的用例图建模一个类图。系统需求描述:(1)系统允许管理员通过从磁盘加载存货数据来运行存货清单报告。(2)管理员通过从磁盘加载存货数据、向磁盘保存存货数据来更新存货清单。(3)售货员做销售记录。(4)电话操作员是处理电话订单的特殊售货员。(5)任何类型的销售都需要更新存货清单。(6)如果交易使用了信用卡,那么售货员需要核实信用卡。(7)如果交易使用了支票,那么售货员需要核实支票。
15、A d m i n i s t r a t o rr u n i n v e n t o r y r e p o r t su p d a t e i n v e n t o r yl o a d i n v e n t o r y d a t as a v e i n v e n t o r y d a t as a l ev e r i f y c r e d i t c a r dv e r i f y c h e c kp h o n e o r d e rw a l k - i n s a l et e l e p h o n e o p e r a t o r s a l e s
16、c l e r k图 4-1 用例图示例创建类图的步骤如下所示:(1)确定可以在用例图中找到的类。(2)建模类与类之间的关系。(3)为类图中的关联关系添加合适的角色名。(4)为已被封装到类中的独立功能建模类。(5)为类图中的类添加必要的特性和操作。+ L o a d ( )+ S a v e ( )+ U p d a t e ( )i n v e n t o r y+ U p d a t e ( )s a l e+ V e r i f y ( )c r e d i t c a r d+ v e r i f y ( )c h e c k0 . . *n0 . . *n1 n第 5 章 活动图2运
17、用本书前面介绍有关活动图的相关知识,根据图 5-1 的图书馆管理系统还书用例建模该用例的活动图。综合运用所学到的标记符,包括活动、转移、控制点、泳道、分叉和汇合等。并使用建模活动图的五个步骤,逐步为用例建模活动图。L i b r a r i a nR e t u r n B o o kO v e r t i m e P r o c e s sD i s p l a y L o a n s图 5-1 还书用例系统用户输入图书信息查找该图书的借阅关系查看是否有过期的借阅关系 T r u e 显示过期信息删除该图书的借阅关系 F a l s e 确定归还显示借阅关系第 6 章 顺序图1下面列出了打印
18、文件时的工作流: 用户通过计算机指定要打印的文件。 打印服务器根据打印机是否空闲,操作打印机打印文件。 如果打印机空闲,则打印机打印文件; 如果打印机忙,则将打印消息存放在队列中等待。经分析人员分析确认,该系统共有四个对象 Computer、PrintServer、Printer 和Queue。请给出对应用于该工作流的顺序图。C o m p u t e r P r i n t S e r v e r P r i n t e rQ u e u e打印文件请求打印文件判断队列是否为空打印文件添加到队列2下面是一个客户在 ATM 机上取款工作流。 客户选择取款功能选项。 系统提示插入 IC 卡。 客
19、户插入 IC 卡后,系统提示用户输入密码。 客户输入自己的密码。 系统检查用户密码是否正确。 如果密码正确;则系统显示用户账户上的剩余金额,并提示用户输入想要提取的金额。 用户输入提取金额后,系统检查输入数据的合法性。 在获取用户输入的正确金额后,系统开始一个事条处理,减少账户上的余额,并输出相应的现金。从该工作流中分析求出所涉及到的对象,并用顺序图描述这个过程。读卡机 显示屏 输入设备 客户管理 点钞机 事务管理插入 I C 卡接爱 I C 卡查询密码显示输入密码请求输入密码传送密码消息 1确认密码合法性查询服务类型显示服务类型请求输入取款请求传递取款请求查询取款金额显示可选的取款金额请求输
20、入取款金额传送金额修改账号金额出钞请求出钞取钞第 7 章 包图1. 包在 UML 中属于哪一类?它的主要作用是什么?属于用例视图。通过“包”就可以把类、用例、构件等元素聚集在一起,构成更高层的单位。这样就可以将它们作为一个成组的元素来进行可视化。2. 包之间的依赖关系主要包括哪几种,请分别举个例子说明。use:DAO 程序使用 System.Data.SqlClient 包完成对 SQL 服务器的访问import:页面与被引用的用户控件之间的关系access :两个相互之间可以访问的包trace:不同版本的包3. 包之间的各种依赖关系中,客户包将把提供者包并入自己的命名空间的是哪个?impor
21、t关系4. 假设有一个温度监控系统,用户在 MonitorGUI(监控界面)上输入查询指令,然后 QueryState 包的程序将与温感探头连接,获取当前的状态信息,并存入数据库,再返回给用户界面。根据这一描述,小张绘制了如图 7-1 所示的包图。你认为其中存在什么问题,请试着修改?M o n i t o r G U I Q u e r y S t a t e图 7-1 温度监控系统包图的局部在包图中应该避免出现这种循环依赖的情况。可以修改为:M o n i t o r G U IQ u e r y S t a t eD a t a B a s e5. 请解释体系结构建模和对成组元素建模有什么
22、区别,并试着给一个你开发过的系统绘制表示其体系结构的包图。对体系结构建模关键在于描述出系统采用的体系结构模式;而对成组元素建模,主要是将建模元素组织成能作为一个集合进行命名和处理的分组。第 8 章 状态图1建模状态图,建模一个销售系统。对于其中的实体 sale 类创建一个状态机图,用来描述如何接受订单、处理订单、记入货存清单并且成功完成处理。这里给出以下主要状态: EmptyOrder ValidOrder Processing Processed Canclled依据状态机图创建步骤,利用上面状态组成完成的状态机图,并检测是否需要组成状态来完成完整功能。建模状态机图时需要注意,状态机图和活动
23、图在外观上有相似之处,一定要注意区分两种图形之间的区别。E m p t y O r d e rV a l i d O r d e rP r o c e s s i n gP r o c e s s e dC a n c l l e d第 9 章 UML 实现与部署1、书店借书系统的 UML 实现与部署部署图C/S 版本客 户 机 MySQL数 据 库 服 务 器 Printer B/S 版本Web浏 览 器 Apache服 务 器 MySQL数 据 库 服 务 器 Printer 2、家教网上发布系统的 UML 实现与部署参考答案部署图客 户 端 Web服 务 器 srvlet MySQL 数 据 库 包图JSP DAO MO servlet 组件图(管理教师信息相关的组件图)comon DAO MO servlet TeacherDAO.java TeacherServlet.java Teacher.java 组件图(管理学生信息相关的组件图)comon DAO MO servlet StudentDAO.java StudentServlet.java Student.java 组件图(管理公告信息相关的组件图)comon DAO MO servlet Board DAO.java fbgServlet.java xggServlet.java Board.java