贵州师范大学
并确定
外部接口和主要的数据结构。 ⑶设计优化
对设计进行优化,主要涉及提高效率的技术和建立良好的继承结构的方法。
6.为什么面向对象的方法能够有效地解决软件需求中存在的问题?
需求过程中存在两大难题,一是需求的确定是困难的,二是需求是不断变动的。尤其是对于一
些大型软件系统,开发周期长,系统规模大,复杂性高。
面向对象的方法中,由于对象所具有的封装性和信息隐蔽,使得对象的内部实现与外界隔离,
具有较强的独立性。而且面向对象的方法是以对象为中心构造软件系统,而不是基于对系统功能进
行分解来构造系统,当系统功能需求改变时不会引起系统结构的变化,使软件系统具有良好的稳定
性和可适应性。
软件生存期各阶段所使用的方法、技术具有高度的连续性,对软件开发过程所有阶段进行综合
考虑,能有效地降低软件开发的复杂度,提高软件质量,也便于需求的确定。
7. OMT 方法明确提出了建模的概念,为什么在软件开发过程中需要进行建模? 答:OMT 方法从不同而又相关的角度建立三类模型:对象模型、动态模型和函数模型,并为每
一类模型提供了图形表示。
软件模型一般包括数学模型、描述模型和图形模型。在软件开发过程中进行建模,一是由于软
件系统的复杂性和规模的不断增大,需要建立不同的模型对系统的各个层次更好地进行描述。模型
具有的直观性及丰富的信息描述,便于开发人员与用户的交流。建立的模型为以后的系统维护和升
级提供了文档。鉴于上述原因,在软件开发过程中建模,能够提高软件开发的效率和质量。
8.为什么说面向对象的方法为软件复用提供了良好的环境?
答:软件复用是将已有的软件成分用于构造新的软件系统,以达到提高软件系统的开发质量与
效率,降低开发成本的目的。复用的软件成分也称为可复用构件(Reusable Component)。
《软件工程——理论与实践》(第2 版)习题答案
对可复用组件一般有以下的要求:具有功能上的独立性与完整性;具有较高的通用性;具有较高的
灵活性;具有严格的质量保证;具有较高的标准化程度。面向对象的方法对复用的支持主要反映在:
08级计算机科学与技术专业
贵州师范大学
⑴面向对象方法可以保护在整个软件生存周期概念、原则、术语及表示法达到高度一致。这使
面向对象方法不但能在各个级别支持软件复用,而且能对各个级别的复用形成统一、高效的支持,
达到良好的全局效果。 ⑵OOA 基本模型体现了更高的抽象,更容易成为一个可复用的系统构架。 ⑶所有的对象都用类作为其抽象描述。类作为一种可复用构件,在运用于不同系统时,不会出
现因该类对象实例不同而使系统模型有所不同的情况。
所以面向对象方法的主要概念及原则与软件复用的要求十分吻合。OO 方法中的对象和类是系
统的基本构成单位,它符合可复用构件所应具备的那些特性,如完整性、独立性、可标识性、一般
性、抽象、封装等。尤其是面向对象方法的对象封装性,为软件复用技术提供了良好的条件。而继
承机制本质上就是一种复用机制,因此面向对象方法为软件复用提供了一个良好的环境。
习题五答案
一、选择题
1. 下列不是模型元素的是(D )。
A) 关联 B) 聚合 C) 依赖 D) 笔记 2. UML 具有扩展性,常见的扩展机制有(BCD )。
A) 修饰 B) 版类 C) 加标签值 D) 约束 3. UML 语言支持的建模方式有(ABD )。
A) 静态建模 B) 动态建模 C) 模块化建模 D) 功能建模 4. 下列各种图可用于动态建模的有(ACD )。
A) 状态图 B) 类图 C) 序列图 D) 活动图 5. 下列属于状态的组成部分的有(AB )。
A) 名称 B) 活动 C) 条件 D) 事件 6. UML 中包括的事件有(ABCD )。
A) 条件为真 B) 收到另一对象的信号 C) 收到操作调用 D) 时间表达式 7. 属性的可见性有(ABD )。
A) 公有的 B) 私有的 C) 私有保护的 D) 保护的 8. 用例之间的关系有(BCD )。
A) 友元 B) 扩展 C) 使用 D) 组合 9. 应用于通用化约束的方式有(ABCD )。
A) 完整 B) 不相交 C) 不完整 D) 覆盖 10. 消息的类型有(ABC )
08级计算机科学与技术专业
贵州师范大学
A) 同步 B) 异步 C) 简单 D) 复杂
二、 判断题
1. UML 建模语言是由视图、图、模型元素和通用机制构成的层次关系来描述的。 (√) 2. UML 是一种建模语言,是一种标准的表示,是一种方法。 ( ×)
《软件工程——理论与实践》(第2 版)习题答案
3. 泳道是一种分组机制,它描述了状态图中对象所执行的活动。 ( ×)
4. 同步消息和异步消息的主要区别是:同步消息的发送对象在消息发送后,不必等待消息处理,
可立即继续执行,而异步消息则发送对象必须等待接收对象完成消息处理后,才能继续执行。( ×)
5. 类图中的角色是用于描述该类在关联中所扮演的角色和职责的。 (√)
6. 类图用来表示系统中类和类与类之间的关系,它是对系统动态结构的描述。 ( ×) 7. 用例模型的基本组成部件是用例、角色和用例之间的联系。 (√) 8. 用例之间有扩展、使用、组合等几种关系。 (√)
9. 顺序图描述对象之间的交互关系,重点描述对象间消息传递的时间顺序。 (√) 10. 活动图显示动作及其结果,着重描述操作实现中所完成的工作以及用例实例或类中的活动。
( ×)
三、 简答题
1. 以图1 (一个在学校首次报名的 UML 活动图)为例,说明如何绘制活动图。
图1 学校首次报名的UML 活动图
答:要创建一个UML 活动图,需要反复执行下列步骤。
(1) 定义活动图的范围。首先应该确定建模的范围,是对整个系统建模,还是一个子系统。一旦
定义了作图的范围,应该在其顶部,用一个注释指明该图的标题和惟一的标识符,还可标注该图的
时间及作者姓名。本题的建模范围是一个学校管理系统中的“报名”部分。
(2) 添加活动。活动是活动图的核心,活动是完成系统任务所必须执行的处理步骤。可从用例
模型出发,对每个角色(actor)所驱动的主要用例引入一个活动,如果是对整个系统建模,应对每个主
要流程引入一个活动。在“报名”的活动图中确定了“Fill out enrollment ”(填写报名表)、“Enroll in
university”(登记入学)、“Obtain help to fill out forms”(帮助填写报名表)、“Attend university overview
08级计算机科学与技术专业
贵州师范大学
presentation”(参加介绍学校会议)等6 个活动。
(3) 添加起点和结束点。每个活动图只能有一个起始点和多个结束点,结束点可以是所有活动
的结束,也可以是对执行过程的终止。
(4) 添加活动间的转变。当一个活动结束时将进入下一个活动,称为活动转移。可标明活动转
移的条件、引起活动转移的事件。如活动“填写报名表”有两个活动转移,当填写报名表不正确时,
则转移到活动“帮助填写报名表”;当填写正确时,则转移到活动“登记入学 ” 。
(5) 添加判断点。当对建模的逻辑需要做出一个判断时,需要添加判断点。例如,在图 1 中 ,
在“Enroll in university”活动之后,还必须按照入学条件进行判断,满足条件的继续执行入学报到的活
动,而不满足入学条件的则结束。
(6) 找出并行活动。若两个活动间没有直接的联系,而且它们都必须在第三个活动开始前结束,
则它们是可以并行运行的。在图 1 中,用同步线描述系统任务中的并发活动,活动“Attend university
《软件工程——理论与实践》(第2 版)习题答案
overview presentation”(参加介绍学校会议)和“Enroll in seminars” (注册研讨班)及“Make initial tuition
payment”(交付初始的学费)可并行执行,使用同 步线表示它们都要在结束整个流程前完成。
2. 简述扩展、包含和细化三种UML 依赖关系的异同。
答:扩展、包含和细化都是描述了元素之间的依赖关系,但具体含义不同。
扩展(extend)关系是对基本用例在对某些“扩展点”的功能的增加。通过向被扩展的用例添加动
作来扩展用例。
包含(include)关系表示一个元素为了实现或完成其全部的功能,需要用到已存在的另一个模
型元素,本质上是一种使用关系。
细化关系是不同语义层(如分析和设计)之间模型元素的依赖关系,表示一个元素对另一个因
此细化关系可描述的语义范围较广,包括模型的逐步细化、优化、变换、模板、模型合成、框架组 成等。
3. 软件开发为什么要使用UML 建模?它有何特点?
答:软件开发的过程犹如雕琢一件工艺品,由无形到有形,由粗到细。鉴于软件系统的复杂性
和规模的不断增大,项目失败的可能性也相应增加。需要建立不同的模型对系统的各个层次进行描
08级计算机科学与技术专业
相关推荐: