贵州师范大学
易理解,易于测试和调试,因而也有助于提高软件的可靠性。 10. 模块分解应该遵循什么样的标准?
答:按照“降低块间联系,提高块内联系”的设计总则对模块进行分解。具体从以下方面考虑:
(1) 尽可能建立功能模块; (2) 消除重复功能;
(3) 模块的作用范围与控制范围,即当作用范围为控制范围的子集时,才能获得较低的块间联系;
(4) 模块的大小适当;
(5) 模块的扇入/扇出数不宜太多。
也可以用软件独立性的两个定性指标来度量模块分解的标准:
一是耦合性。用于描述模块之间联系的紧密程度。从三个方面衡量块间联系大小:①方式 (直
接或间接)②类型(数据型、控制型、混合型)③数量(数量越大,块间联系越紧密。 二是内聚性。用于描述模块内部联系的紧密程度。它是从功能的角度来度量模块内的联系。
《软件工程——理论与实践》(第2 版)习题答案
显然,块内联系愈紧,即内聚性愈强,模块独立性愈好。功能型模块独立性最好。
11~17 题答案略。
习题四答案
一、选择题
1. 面向对象程序设计的基本机制是(ABC)。
A) 继承 B) 消息 C) 方法 D) 结构 2. 下列属于面向对象的要素有(BCD)。
A) 分类性 B) 抽象 C) 共享 D) 封装 3. 下列选项中属于面向对象开发方法的有(ACD)。
A) Booch B) CAD C) Coad D) OMT
4. 下列属于Coad/Yourdon 方法中面向对象的分析模型的层次有(AB)。 A) 主题层 B) 对象层 C) 应用层 D) 接口层 5. 一个类属性依其特征划分,其类型有(ABCD)。
A) 描述型 B) 定义型 C) 派生型 D) 参考型 6. 在进行面向对象分析时,所采用的模型有(ABC)。
A) 对象模型 B) 动态模型 C) 静态模型 D) 功能模型 7. 状态是对象属性的值的一种抽象,它的性质有(AB)。
A) 时间性 B) 持续性 C) 有序性 D) 有穷性
8. 数据流图中的处理必须用对象中的操作来实现,常见的操作有(ABCD)。 A) 查询 B) 动作 C) 活动 D) 访问
08级计算机科学与技术专业
贵州师范大学
9. 建立继承关系时所采用的方式有(AC)。
A) 自顶向下 B) 从内到外 C) 自底向上 D) 从复杂到简单 10. 对象是人们要研究的任何事物,主要的对象类型有(ABCD)。 A) 有形实体 B) 作用 C) 事件 D) 性能说明
二、判断题
1. 面向对象的的方法是以类作为最基本的元素,它是分析问题和解决问题的核心。( ×) 2. 类是指具有相同或相似性质对象的抽象,对象是抽象的类,类的具体化就是对象。( ×) 3. 继承性是父类和子类之间共享数据结构和消息的机制,这是类之间的一种关系( ×)。 4. 多态性增强了软件的灵活性和重用性,允许用更为明确、易懂的方式去建立通用软件,多态性和
继承性相结合使软件具有更广泛的重用性和可扩充性。(√)
5. 面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。(√) 6. 面向对象设计的主要目标是提高生产效率,提高质量和提高可维护性。(√)
7. 对象模型表示了静态的、结构化的系统数据性质,描述了系统的静态结构,它是从客观世界实体
的对象关系角度来描述,表现了对象的相互关系。(√)
8. 面向对象的分析是用面向对象的方法对目标系统的问题域空间进行理解、分析和反映。通过对象
层次结构的组织确定解空间中应存在的对象和对象层次结构。(√)
9. 类的设计过程包括:确定类,确定关联类,确定属性,识别继承关系。(√)
10. 复用也叫重用或再用,面向对象技术中的“类”是比较理想的可重用软构件,它有三种重用方
式:实例重用、继承重用、多态重用。(√)
11. 主题是一种关于模型的抽象机制,它是面向对象模型的概貌,也是关于某个模型要同时考虑和
理解的内容,主题起一种控制作用。(√)
《软件工程——理论与实践》(第2 版)习题答案
12. 面向对象的分析由对象、结构、继承性和基于消息的通信构成。( ×)
13. 支持继承性是面向对象程序设计语言和传统程序设计语言在语言机制方面的根本区别。(√)
14. 面向对象的分析过程主要包括三项内容:理解、表达和验证。(√)
三、 简答题
1.消息传递机制与传统程序设计模式中的过程调用相比,有何本质区别? 答:(1) 消息传递必须给出信道的信息,通常要指出明确的接收方。
(2) 由于接收方是一通信实体,具有保持状态的能力,所以同一发送方在不同时刻向同一接收
方发送同样的信息,可因接收方的当前状态不同而得到不同的结果。 (3) 消息传递可以是异步的,发送方可以不必等待接收方返回信息就可以继续执行后
08级计算机科学与技术专业
贵州师范大学
面的操
作,因而支持程序的并发和分布执行,而过程调用只能是同步的,本质上是串行的。 2.比较面向对象方法与结构化方法的特点,说明为什么面向对象方法比结构化方法更加优越。
答:结构化方法是以数据流和数据封闭性为基础的,由 SA、SD 和 SP 三部分构成。该方法: ①无法实现从问题空间到解空间的直接映射。开发方法求解过程是先对应用领域(问题空间)
进行分析,建立起问题空间的逻辑模型,再通过一系列复杂的转换和算法,构造计算机系统,获得 解空间。 ②无法实现高效的软件复用。结构化方法是面向过程的,将数据和处理过程(操作)分离,不
仅增加了软件开发的难度,也难于支持软件复用。 ③开发方法难以实现从分析到设计的直接过渡,从 SA 到SD 要经过一系列复杂的变换。
而面向对象的方法以对象为核心,强调模拟现实世界中的概念而不是算法,尽量用符合人类认
识世界的思维方式来渐进地分析、解决问题。 ①使问题空间与解空间具有一致性,便于对软件开发过程所有阶段进行综合考虑,能有效地降
低软件开发的复杂度,提高软件质量。 ②软件开发各个阶段有机集成,有利于系统的稳定性。 ③具有良好的重用性。面向对象的技术在利用可重用的软件成分构造新软件系统上具有很大的
灵活性,由于对象所具有的封装性和信息隐蔽,使得对象的内部实现与外界隔离,具有较强的独立
性。继承性本身就是一种重用机制。
综上,显然面向对象方法比结构化方法更加优越。 3. Coad/Yourdon 方法主要有面向对象分析(OOA)和面向对象设计(OOD)。OOA 概念模型由 5
个层次组成,请简述这 5 个层次。
答:OOA 概念模型的 5 个层次分别是: (1) 发现类及对象。描述如何发现类及对象。从应用领域开始识别类及对象,形成整 个应用的
基础,然后,据此分析系统的责任。
(2) 识别结构。该阶段分为两个步骤。第一,识别“一般-特殊”结构,该结构捕获了识别出的类
的层次结构;第二,识别“整体-部分”结构,该结构用来表示一个对象如何成为另一个对象的一部
分,以及多个对象如何组装成更大的对象。
(3) 定义属性。其中包括定义类的实例(对象)之间的实例连接。 (4) 定义服务。其中包括定义对象之间的消息连接。
(5) 定义主题。主题由一组类及对象组成,用于将类及对象模型划分为更大的单位,以
08级计算机科学与技术专业
贵州师范大学
便于理解。
4.面向对象的分析包括哪些主要活动?所建立的分析模型包括哪些类型的模型?
答:面向对象的分析过程分为论域分析和应用分析。论域分析过程是抽取和整理用户需求并建
立问题域精确模型的过程。应用分析是将论域分析建立起来的问题论域模型,用某种基于计算机系
统的语言来描述。面向对象的分析具体包括以下活动: ①获取用户基本需求。通常使用用例(User Case )来收集和描述。 ②标识类和对象。包括标识类及对象的属性和操作。
《软件工程——理论与实践》(第2 版)习题答案
③定义类的结构和层次。通常有一般与特殊 ( Generalization—Specialization)结构,整体与部分
(Whole—Part)结构。
④ 建立类(对象)之间的关系,用“对象-关系模型”描述系统的静态结构。 ⑤ 建立对象—行为模型,描述系统的动态行为。 所建立的分析模型包括: ①基本模型。是一个类图(class diagram),是以直观的方式表达系统最重要的信息。OOA 基本模
型的三个层次分别描述了:系统中应设哪几类对象,每类对象的内部构成,对象与外部的关系。 ②主题图(subject)。又称为子系统(subsystem),是将一些联系密切的类组织在一起的类的集合。
按照粒度控制原则,将系统组成几个主题,便于理解。 ③交互图(interaction diagram) 是用例与系统成分之间的对照图。 主题图和交互图又称为补充模型。
5.面向对象设计的主要任务是什么? 答:面向对象的设计(Object-Oriented Design,OOD)是面向对象开发方法(OOSD)的核心
阶段。是在OOA 的基础上解决系统“如何做”的问题。主要任务包括: ⑴系统设计
系统设计的任务包括:将分析模型中紧密相关的类划分为若干子系统(也称为主题),子系统应
该具有良好的接口,子系统中的类相互协作;标识问题本身的并发性,将各子系统分配给处理器,
建立子系统之间的通信。 ⑵对象设计
通过对象的认定和对象层次结构的组织,确定解空间中应存在的对象和对象层次结构,
08级计算机科学与技术专业
相关推荐: