《UML课后题答案解析》由会员分享,可在线阅读,更多相关《UML课后题答案解析(15页珍藏版)》请在金锄头文库上搜索。
1、第 6 章 用例图3. 简答题(1)试述识别用例的方法。答:识别用例的最好方法就是从分析系统参与者开始, 在这个过程中往往会发现新 的参与者。当找到参与者之后, 我们就可以根据参与者来确定系统的用例, 主要是看各参与者 如何使用系统,需要系统提供什么样的服务。对于这个被选出的用例模型, 不仅要做到易于理解, 还要做到不同的涉众对于它的 理解是一致的(4)请简述为何在系统设计时要使用用例图及其对用户有什么帮助? 答:用例图是从软件需求分析到最终实现的第一步, 它显示了系统的用户和用户希 望提供的功能,有利于用户和软件开发人员之间的沟通。借助于用例图,系统用户、系统分析人员、系统设计人员、领域专家
2、能够以可视化 的方式对问题进行探讨,减少了大量交流上的障碍,便于对问题达成共识。第 7 章 类图与对象图3. 简答题 (3)简述使用类图和对象图的原因。答:在面向对象分析方法中,类和对象的图形表示法是关键的建模技术之一。它们 能够有效的对业务领域和软件系统建立可视化的对象模型, 使用强大的表达能力来表示 出面向对象模型的主要概念。UML中的类图和对象图显示了系统的静态结构, 其中的类、对象是图形元素的基础。 (4)请简要说明类图和对象图的关系和异同。答:在类中包含三个部分,分别是类名、类的属性和类的操作。类的名称栏只包含 类名。类的属性栏定义了所有属性的特征。类中列出了操作类中使用了关联连接,
3、关联 中使用名称、角色以及约束等特征定义。类是一类的对象的抽象,类不存在多重性。对象包含两个部分: 对象的名称和对象的属性。 对象的名称栏包含 “对象名:类名” 对象的属性栏定义了属性的当前值。对象图中不包含操作内容,因为对属于同一个类的 对象,其操作是相同的。对象使用链进行连接,链中包含名称、角色。对象可以具有多 重性。类与类之间的主要关系有几种?它们的含义是什么? 答:a. 泛化关系:泛化是一种继承关系,表示一般与特殊的关系,它指定了子类如何特 化父类的所有特征和行为。b. 实现关系:用于规定规格说明与其实现之间的关系,换句话说,就是指定两个实 体之间的一个合同,一个实体定义一个合同,而另
4、一个实体保证履行该合同。c. .关联关系:对象之间的关系准则。聚合关系:它是一种特殊的关联关系, 它表示整体与部分的关系,且部分可以离开 整体而单独存在。组合关系:它是一种特殊的聚合关系,它表示整体与部分的关系,但部分不能离开 整体而单独存在,当整体类被销毁时部分类将同时被销毁。d. 依赖关系:当两个元素处于依赖关系中时, 其中一个元素的改变可能会影响或提 供消息给另一个元素,即另一个元素以某种形式依赖于另一个元素。第 8 章 序列图3. 简答题(1)请简述序列图的用途。答:序列图的用途包括:a 确认和丰富一个使用语境的逻辑表达。 一个系统的使用情境就是系统潜在的使用 方式的描述, 也就是它的
5、名称所要描述的。 一个使用情境的逻辑可能是一个用例的一部 分,或是一条控制流。b. 细化用例的表达。序列图的主要用途之一,就是把用例表达的需求,转化为进 一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。c 有效地描述如何分配各个类的职责以及各类具有相应职责的原因。 我们可以根据 对象之间的交互关系来定义类的职责, 各个类之间的交互关系构成一个特定的用例。 例 如,“Customer 对象向 Address 对象请求其街道名称”指出 Customer 对象应该具有“知 道其街道名”这个职责。(3)简述在项目开发中使用序列图的原因及其作用。答:序列图显示不同的业务对象如何交互,
6、对于交流当前业务如何进行很有用。 除 记录组织的当前事件外, 一个业务级的序列图能被当作一个需求文件使用, 为实现一个 未来系统传递需求。在项目的需求阶段, 分析师能通过提供一个更加正式层次的表达, 把用例带入下一 层次。那种情况下, 用例常常被细化为一个或者更多的序列图。组织的技术人员也能通 过序列图在记录一个未来系统的行为应该如何表现。在设计阶段,架构师和开发者能使用该图, 挖掘出系统对象间的交互,这样充实整 个系统设计第 9 章 协作图3. 简答题(1)请简述使用协作图的原因。答:协作图的作用:a 通过描绘对象之间消息的传递情况来反映具体的使用语境的逻辑表达。 一个使用 情境的逻辑可能是
7、一个用例的一部分,或是一条控制流。这和序列图的作用类似。b 显示对象及其交互关系的空间组织结构。 协作图显示了在交互过程中各个对象之 间的组织交互关系以及对象彼此之间的链接。 与序列图不同, 协作图显示的是对象之间 的关系,并不侧重交互的顺序, 它没有将时间作为一个单独的维度,而是使用序列号来 确定消息及并发线程的顺序。c 协作图的另外一个作用是表现一个类操作的实现。 协作图可以说明类操作中使用 到的参数、局部变量以及返回值等。 当使用协作图表现一个系统行为时,消息编号对应 了程序中嵌套调用结构和信号传递过程。(4)请说明序列图和协作图的异同。 协作图和序列图都是交互图,它们既是等价的,又有所
8、区别。 序列图表示了时间消息序列, 但没有表示静态对象关系。 序列图可以有效的帮助我 们观察系统的顺序行为。协作图用于表示一个协同中的对象之间的关系和消息以及描述一个操作或分类符 的实现。在对系统进行行为建模时, 通常做法是用序列图按时间顺序对控制流建模, 用协作 图按对象组织对控制流建模。第 10 章 活动图3. 简答题(1)试述活动图在软件系统开发中起到的作用。 活动图描述一个操作执行过程中所完成的工作, 活动图对用例描述尤其有用, 它可 建模用例的工作流,显示用例内部和用例之间的路径。活动图可以说明用例的实例是如何执行动作以及如何改变对象状态。 活动图显示如何执行一组相关的动作,以及这些
9、动作如何影响它们周围的对象。 活动图对理解业务处理过程十分有用。( 3)请简要说明分叉和分支的区别 。 答:分叉用来表示将一个控制流分成两个或者多个并发运行的分支, 分叉具有一个 输入转换,两个或者多个输出转换,每个转换都可以是独立的控制流。分支是转换的一部分, 它将转换路径分成多个部分, 每一部分都有单独的监护条件 和不同的结果。当动作流遇到分支时,会根据监护条件(布尔值)的真假来判定动作的 流向。分支的每个路径的监护条件应该是互斥的, 这样可以保证只有一条路径的转换被 激发。(4)请简要阐述活动状态和动作状态的异同点。 答:动作状态是原子性的动作或操作的执行状态,它不能被外部事件的转换中断
10、。动作状态的原子性决定了动作状态要么不执行, 要么就完全执行, 不能中断。动作状态 不能有入口动作和出口动作, 也不能有内部转移。 动作状态是一种特殊的活动状态。可 以把动作状态理解为一种原子的活动状态。活动状态是非原子性的, 用来表示一个具有子结构的纯粹计算的执行。 活动状态可 以分解成其他子活动或动作状态, 可以被使转换离开状态的事件从外部中断。 活动状态 可以有内部转换,可以有入口动作和出口动作。活动状态具有至少一个输出完成转换, 当状态中的活动完成时该转换激发。第 11 章 包图3. 简答题( 2)简述包图的概念和作用 。答:包图是一种维护和描述系统总体结构的模型的重要建模工具, 通过
11、对图中各个 包以及包之间关系的描述,展现出系统的模块与模块之间的依赖关系。通过包图可以描述需求的高阶概况、 描述设计的高阶概况、 在逻辑上把一个复杂的 系统模块化、组织源代码,它是维护和控制系统总体结构的重要工具。 (4)请简要阐述包和包图之间的关系。答:包是包图中最重要的概念, 是最重要的组成部分。 包图是由包和包之间的联系 构成的,没有包就没有包图。第 12 章 构件图和部署图3. 简答题(1)请简要说明构件图适用于哪些建模需求。 答:构件图适用于下列建模需求:系统源代码、系统的发布版本、物理数据库、自 适应系统、用于建立业务模型和用于系统的开发管理等。(3)在一张基本构件图中,构件之间最
12、常见的关系是什么? 答:在一张基本构件图中,构件之间最常见的关系是依赖关系和实现关系。( 4)请说出在 UML中主要包括哪三种构件。答:在 UML中,构件主要包括配置构件、工作产品构件和可执行构件。第 13 章 状态图3. 简答题(1)试述状态图是由哪些要素构成的。 答:状态图是由状态、初始状态、终止状态、转换和判定这几个要素构成的(3)请回答在软件开发中使用状态图建模的好处。 答:在软件开发中使用状态图建模的作用: 状态图清晰的描述了状态之间的转换顺序, 通过状态的转换顺序也就可以清晰的看 出事件的执行顺序;清晰的事件顺序有利于程序员在开发程序时避免出现事件错序的情况; 状态图清晰的描述了状
13、态转换时所必须的触发事件、 监护条件和动作等影响转换的 因素,有利于程序员避免程序中非法事件的进入;状态图通过判定可以更好的描述工作流因为不同的条件发生的分支。第 14 章 UML 应用题1. 网上选课系统是一个高等院校用来进行对学生选修课程管理的管理信息系统(MIS)该信息系统能够为学生提供方便的选课功能, 也能够提高高等院校对学生和教学管理 的效率。网上选课系统的功能性需求包括以下内容: (1)系统管理员负责系统的管理维护工作, 维护工作包括课程的添加、 删除和修改, 对学生基本信息的添加、修改、查询和删除。(2)学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行查 询已选
14、课程、指定自己的选修课程以及对自己基本信息的查询。满足上述需求的系统主要包括以下几个小的系统模块:(1)基本业务处理模块。基本业务处理模块主要用于实现学生通过合法认证登录到 该系统中进行网上课程的选择和确定。(2)信息查询模块。信息查询模块主要用于实现学生对选课信息的查询和自身信息 的查询。(3)系统维护模块。系统维护模块主要用于实现系统管理员对系统的管理和对数据库的维护, 系统的管理包括学生信息、 课程信息等信息的维护。 数据库的维护包括数 据库的备份、恢复等数据库管理操作。回答下列问题:( 1) 创建系统用例模型( 2) 创建系统的静态模型( 3) 创建系统的动态模型答: (2)系统中的主
15、要业务实体类通常需要在数据库中进行存储。学生要选择选修课,因 此需要一个课程类;系统管理员要对数据库的数据进行添加、删除、查询和删除操作, 必须有一个和数据库中的数据进行交互通信的类来控制系统的业务逻辑; 还需要设计出 处理业务的界面类。这些业务实体类的表示如图:(3)学生选择课程用例的工作流程: (1)学生进入选修课程界面,在界面中确定选修的课程并提交请求(2)选修课程界面将学生所选课程的信息传递到控制对象,控制对象将课程信息与数 据库中的课程信息进行比较,判断是否可以选课(3)如果可以,则执行选课操作,将选课结果保存到数据库中(4)控制对象返回选课成功信息到选修课程界面。(5)学生从界面得到选课成功的信息。: StudentSelectFormControlCourse1: 进入选择课程界面2: 选择需修课程3: 查询课程信息4: 判断是否可选课5: 执行选课6: 返回选课成功信息7: 显示选课成功信息2. 某小型虚拟超市管理系统的需求要求如下。(1)商品预订管理:根据商品库存量,生成预订单。(2)商品进货管理:根据进货单,将到达的商品登记入库。同时修改预