【真题9】有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是________。(2010年9月) -36-A)投影 B)并
C)自然连接
D)交
解析:由“自然连接”运算的定义可知,此题中关系R和S通过自然连接运算得 到关系T。
答案:C疑难解答→http://www.51pass.org/kwkzqh Point4:软件设计阶段 出题趋势
考试日期05-405-906-406-907-307-908-409-309-910-3出题次数1113113131
考点精讲
1、软件设计是软件工程的重要阶段,是一个把软件需求持换为软件表示的过程。软件设计的基本目标是用比较抽象慨括的方式确定目标系统如何完成预定的任务,即软件设计是确定系统的物理模型。
(1)需求分析主要解决“做什么”问题,软件设计解决“怎么做”的问题。
从技术观点来看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。 ①结构设计:定义软件系统各主要部件之间的关系。
②数据设计:将分析时创建的模型转化为数据结构的定义。
③接口设计:描述软件内部、软件和协作系统之间以及软件与人之间如何通信。 ④过程设计:把系统结构部件转换成软件的过程描述。
(2)从工程管理角度来看,软件设计包括:概要设计和详细设计。 2、软件设计中应该遵循的基本原理和与软件设计有关的概念
(1)抽象:就是把事物本质的共同特征提取出来而不考虑其他细节。
(2)模块化:是指把一个待开发的软件分解成若干小的简单的部分。但划分模块不是越多越好。
(3)信息隐蔽:是指在一个模块中包含的信息,对于不需求这些信息的其他模块来说是不能访问的。
(4)模块独立性:每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。这是评价设计好坏的重要度量标准。
3、衡量软件模块独立性使用耦合性和内聚性两个定性的度量标准:
(1)内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量。内聚是从功能角度来度量模块内的联系。
(2)耦合性:耦合性是模块间互相连接的紧密程度的度量。耦合性的强弱取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。在程序结构中各模块的内聚性越强,则耦合性越弱。优秀软件应高内聚、低耦合。
4、软件概要设计
(1)概要设计的基本任务是:设计软件系统结构;数据结构及数据库设计;编写概要设 -37-计文档;概要设计文档评审。 (2)结构图(SC),是概要设计阶段的工具。其图形元素为:
①矩形表示一般模块。
②箭头表示模块间的调用关系。在结构图中还可以用带注释的箭头表示模块调用过程中来回传递的信息。
26
③用带实心圆的箭头表示传递的是控制信息。
④空心圆箭心表示传递的是数据。
结构图的基本形式:基本形式、顺序形式、重复形式、选择形式。
结构图有四种模块类型:传入模块、传出模块、变换模块和协调模块。 结构图的形态特征:包括深度、宽度、扇出、扇入。 ①深度:表示控制的层数 ②宽度:表示整体控制跨度
③扇入:调用一个给定模块的模块个数。 ④扇出:一个模块直接调用的其他模块数。 (3)面向数据流的设计方法:
典型的数据流类型有两种:变换型和事务型。
变换型系统结构图由输入、中心变换、输出三部分组成。
事务型数据流的特点是:接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。
5、软件详细设计
(1)是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。 (2)常见的过程设计工具有:
①图形工具:程序流程图(PDF),N-S,PAD(问题分析图),HIPO ②表格工具:判定表
③语言工具:PDL(伪码)
真题分析
【真题1】软件详细设计产生图如下:软件详细设计产生图如下:
该图是________。(2009年9月) A)程序流程图 B)E-R图
-38-C)N-S图 D)PAD图
解析:程序流程图是一种传统的、应用,广泛的软件过程设计表示工具,通常 也称为程序框图。
答案:A疑难解答→http://www.51pass.org/sduzvj
【真题2】程序流程图中带有箭头的线段表示的是________。(2008年4月) A)控制流 B)调用关系 C)图元关系 D)数据流
解析:程序流程图是一种传统的、应用广泛的软件过程设计工具,通常也称为 程序框图。其中,用带箭头的线段表示控制流,用矩形表示加工步骤,用菱形 表示逻辑条件。
答案:A疑难解答→http://www.51pass.org/vwszym
【真题3】在软件开发中,需求分析阶段产生的主要文档是________。(2008年4月) A)概要设计说明书 B)集成测试计划
27
C)可行性分析报告
D)软件需求规格说明书
解析:需求分析的最终结果是生成软件需要规格说明书,可以为用户、分析 人员和设计人员之间的交流提供方便,可以直接支持目标的确认,又可以作为 控制软件开发进程的依据。
答案:D疑难解答→http://www.51pass.org/tpqzpf
【真题4】软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的是__【1】__。(2007年9月)
解析:软件需求规格说明书是确保软件质量的有力措施,是需求分析阶段的最 终成果。其质量好坏的标准、标准的优先级及标准的内涵是:正确性、无歧义 性、完整性、可验证性、一致性、可理解性、可修改性和可追踪性等。其中最 重要的特性是无歧义性,即需要规格说明书应该是精确的、无二义的,需求说 明书越精确,以后出现错误、混淆、反复的可能性越小。 答案:无歧义性疑难解答→http://www.51pass.org/nrezov
【真题5】下列选项中不属于软件生命周期开发阶段任务的是________。(2006年9月) A)软件维护 B)详细设计 -39-C)软件测试 D)概要设计
解析:软件生命周期由软件定义、软件开发和软件维护三个时期组成,每个时 期又进一步划分为若干个阶段。软件定义时期的基本任务是确定软件系统的工 程需求。软件定义可分为软件系统的可行性研究和需求分析两个阶段。
1、软件开发时期是具体设计和实现在前一时期定义的软件,它通常由下面五个 阶段组成:概要设计、详细设计、编写代码、组装测试和确认测试。
2、软件维护时期的主要任务是使软件持久地满足用户的需要。即当软件在使用 过程中发现错误时应加以改正;当环境改变时应该修改软件,以适应新的环 境;当用户有新要求时应该及时改进软件,以满足用户的新要求。
根据上述对软件生命周期的介绍,可知软件维护不是软件生命周期开发阶段的 任务。
答案:A疑难解答→http://www.51pass.org/kaqzvb
【真题6】软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于________。(2010年3月) A)维护阶段 B)上述三个阶段 C)定义阶段 D)开发阶段
解析:详细设计属于软件生命周期中开发阶段的第一步骤,即设计。
答案:D疑难解答→http://www.51pass.org/ytfzio
【真题7】软件开发过程主要分为需求分析、设计、编码与测试四个阶段,其中__【3】__阶段产生“软件需求规格说明书”。(2009年9月)
解析:软件开发过程为:需求确认-->概要设计-->详细设计-->编码-->单元 测试-->集成测试-->系统测试-->维护。其中,需求分析阶段产生需求规格说 明书;概要设计阶段产生系统用例图和用例场景;详细设计阶段产生系统设计 报告和数据库设计报告;测试阶段产生测试用例报告。
28
答案:需求分析疑难解答→http://www.51pass.org/uzrzsr
【真题8】从工程管理角度,软件设计一般分为两步完成,它们是________。(2006年9月) A)软件结构设计与数据设计 B)过程设计与数据设计 C)概要设计与详细设计
D)数据设计与接口设计
解析:从工程管理的角度,软件设计可分为概要设计和详细设计两大步骤。 1、概要设计是根据需求确定软件和数据的总体框架;
2、详细设计是将其进一步细化成软件的算法、数据结构和接口。
-40-而在技术上,概要设计和详细设计又由若干活动组成,包括总体结构设计、数 据设计和过程设计。
答案:C疑难解答→http://www.51pass.org/xkhzfc
【真题9】在软件设计中,不属于过程设计工具的是________。(2005年9月) A)N-S图
B)DFD图
C)PDL(过程设计语言)
D)PAD图
解析:数据流图DFD,是结构化分析方法最主要的一种图形工具,不属于过程 设计工具。
答案:B疑难解答→http://www.51pass.org/gdbzyg
【真题10】下列软件系统结构图的宽度为__【1】__。
(2006年9月)
解析:题目中的图形是倒置的树状结构,这是用层次图表示的软件结构。结构 图中同一层次模块的最大模块个数称为结构的宽度,它表示控制的总分布。根 据上述结构图宽度的定义,从图中可以看出,第二层的模块个数最多,即为3。 因此,这个系统结构图的宽度就为3。
答案:3疑难解答→http://www.51pass.org/scyzva
【真题11】软件设计中划分模块的一个准则是________。(2009年9月) A)低内聚高耦合 B)高内聚高耦合 C)低内聚低耦合
D)高内聚低耦合
解析:模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以 此为依据开发出的软件系统可靠性强,易于理解和维护。模块之间的耦合应尽 可能的低,模块的内聚度应尽可能的高。 答案:D疑难解答→http://www.51pass.org/zvezjh
【真题12】耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是________。(2009年3月) -41-A)耦合性是指一个模块内部各个元素间彼此结合的紧密程度 B)内聚性是指模块间互相连接的紧密程度
C)提高耦合性、降低内聚性有利于提高模块的独立性 D)降低耦合性、提高内聚性有利于提高模块的独立性
解析:耦合性是反映模块间互相连接的紧密程度,内聚性是指一个模块内部各
29
个元素间彼此接合的紧密程度。提高模块的内聚性,降低模块的耦合性有利于 提高模块的独立性。
答案:D疑难解答→http://www.51pass.org/jnizng
【真题13】软件设计中模块划分应遵循的准则是________。(2008年4月) A)低内聚高耦合 B)高内聚高耦合 C)低内聚低耦合
D)高内聚低耦合
解析:耦合性和内聚性是模块独立性的两个定性标准,各模块的内聚性越强, 则耦合性越弱。软件设计应该遵循高内聚低耦合。 答案:D疑难解答→http://www.51pass.org/wnlzdo
【真题14】在结构化程序设计中,模块划分的原则是________。(2007年3月) A)各模块之间的联系应尽量紧密
B)模块内具有高内聚度、模块间具有低耦合度 C)各模块应包括尽量多的功能 D)各模块的规模应尽量大
解析:内聚性是对一个模块内部各个元素间彼此结合的紧密程度的度量。耦合 性是对模块间互相连接的紧密程度的度量。在结构化程序设计中,模块划分应 遵循高内聚、低耦合的原则,即减弱模块之间的耦合性和提高模块内聚性,有 利于提高软件模块的独立性。
答案:B疑难解答→http://www.51pass.org/mwnzxm
【真题15】为了使模块尽可能独立,要求________。(2005年4月) A)模块的内聚程度要尽量低,且各模块间的紧密程度要尽量弱 B)模块的内聚程度要尽量低,且各模块间的紧密程度要尽量强 C)模块的内聚程度要尽量高,且各模块间的紧密程度要尽量强
D)模块的内聚程度要尽量高,且各模块间的紧密程度要尽量弱
解析:系统设计的质量主要反映在模块的独立性上。系统设计的质量主要反映 在模块的独立性上。
1、评价模块独立性的主要标准有两个:
一是模块之间的耦合,它表明两个模块之间互相独立的程度;
二是模块内部之间的关系是否紧密,称为内聚。
-42-2、一般来说,要求模块之问的耦合尽可能地弱,即模块尽可能独立,而要求模 块的内聚程度尽量地高。
答案:D疑难解答→http://www.51pass.org/ddnzdd
【真题16】两个或两个以上模块之间关联的紧密程度称为________。(2006年4月)A)复杂度 B)数据传输特性 C)耦合度 D)内聚度
解析:本题考核模块独立性的评价。评价模块独立性的主要标准有两个:一是 模块之间的耦合,它表明两个模块之间互相独立的程度,也可以说是两个或两 个以上模块之间关联的紧密程度;二是模块内各部分之间的关系是否紧密,称 为内聚。一般来说,要求模块内各部分之间的耦合尽可能地弱,即模块尽可能 独立,而要求模块的内聚程度尽量地高。
30