您的当前位置:首页正文

软件系统开发技术模拟题参考答案1-3

来源:个人技术集锦
软件系统开发技术试题(一) 答案

一、单项选择题(本大题共10小题,每小题1分,共10分) 1. 设计软件结构一般不.

确定( D ) A.模块之间的接口 B.模块间的调用关系

C.模块的功能 D.模块内的局部数据

2. 软件结构化设计中,好的软件结构应该力求做到( B )

A.顶层扇出较少,中间扇出较高,底层模块低扇入 B.顶层扇出较高,中间扇出较少,底层模块高扇入 C.顶层扇入较少,中间扇出较高,底层模块高扇入 D.顶层扇入较少,中间扇入较高,底层模块低扇入

3. 两个模块都使用同一张数据表,模块间的这种耦合称为( A )

A.公共耦合 B.内容耦合 C.数据耦合 D.控制耦合

4. 划分模块时,下列说法正确的是( A )

A.作用范围应在其控制范围之内 B.控制范围应在其作用范围之内 C.作用范围与控制范围互不包含 D.作用范围与控制范围不受限制

5. 重用率高的模块在软件结构图中的特征是( B )

A.扇出数大 B.扇入数大 C.扇出数小 D.内聚性高

6. 面向对象建模得到的三个模型,其中核心的模型是( A )

A.对象模型 B.功能模型 C.逻辑模型 D.动态模型

7. 从结构化的瀑布模型看,在软件生存周期的几个阶段中,对软件的影响最大是( C )

A.详细设计阶段 B.概要设计阶段 C.需求分析阶段 D.测试和运行阶段

8.对UML的叙述不正确...的是( D ) A.UML统一了Booch方法、OMT方法、OOSE方法的表示方法。

B.UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。 C.UML融入了软件工程领域的新思想、新方法和新技术。

D.UML仅限于支持面向对象的分析与设计,不支持其它的软件开发过程。 9.以下哪个软件生存周期模型是一种风险驱动的模型( C )

A.瀑布模型 B.增量模型 C.螺旋模型 D.喷泉模型 10.以下哪一项对模块耦合性没有..影响( D ) A.模块间接口的复杂程度

B.调用模块的方式 C.通过接口的信息

D.模块内部各个元素彼此之间的紧密结合程度 二、填空题(本大题共10小题,每空2分,共20分)

1

1.数据流图描绘数据在系统中___流动和处理_______的过程。P40

2.为了便于对照检查,测试用例应由输入数据和预期的__输出结果(输出数据)____两部分组成。P162 3.面向对象分析的目的是对_____目标系统______进行建模。 4. 结构化方法总的指导思想是__自顶向下_____逐层分解。

5. 在一段程序中,将多次出现的一组语句设计为一个子程序,供多个部分调用,这种情况出现的内聚称为___偶然内聚_____。

6. 用来模拟被测模块的上级调用模块的模块称为__驱动模块_____

7.一个模块的作用域指受该模块内一个__判定____影响的所有模块的集合。 8. 在用况图中,关联是参与者和用况(USE CASE)之间的唯一关系。

9. RUP的突出特点是一种以用况(Use Case)为驱动的、以体系结构为中心的、迭代增量式开发。 10. 在RUP中,规定了四个开发阶段:初始阶段、精化阶段、构造阶段和移交阶段。 三、名词解释题(本大题共6小题,每小题3分,共18分) 1.软件生存周期模型

答:从概念上来讲,软件生存周期模型是一个包括软件产品开发、运行和维护中有关过程、活动和任务的框架,覆盖了从该系统的需求定义到系统的使用终止。

从应用的角度来说,软件生存周期模型为组织软件开发活动提供了有意义的指导。 2.系统模型

答:简单地说,模型是任一抽象,其中包括所有的基本能力、特性或一些方面,而没有任何冗余的细节。进一步地说,模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述,给出系统内个模型元素以及它们之间的语义关系。 3.白盒测试法

答:该方法把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检查内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。白盒法也不可能进行穷举测试。 4.信息隐蔽

答:信息隐蔽是指在每个模块中所包含的信息(包括具有特定语义的数据和处理过程)不允许其他不需要这些信息的模块访问。 5. 测试用例

答:为了发现程序中的故障而专门设计的一组或多组测试数据。 6. 类

答:类是一组具有相同属性、操作、关系和语义的对象的描述。 四、简答题(本大题共5小题,每小题6分,共30分) 1. 简述演化模型以及可适应的情况,为什么? 答:简述演化模型如图所示:

演化模型主要是针对事先不能完整定义需求的软件开发。在用户提出待开发系统的核心需求的基础上,软

件开发人员按照这一需求,首先开发一个核心系统,并投入运行,以便用户能够有效地提出反馈,接

2

着,软件开发人员根据用户的反馈,实施开发的迭代过程。

2. 结构化分析方法为了表达系统模型,给出了几个基本概念?它们是如何表示的? 答:结构化分析方法给出了5个术语:数据流:加工,数据存储、数据源、数据潭, 数据流是数据的流动,数据流表示为

加工是对数据进行变换的单元,即它接受输入的数据,对其进行处理,并产生输出。 数据存储是数据的静态结构。

数据源是数据流的起点; 数据潭是数据流的归宿地。数据源和数据潭是系统之外的实体,可以是人、物

或其他软件系统。

表示。

3. 简述衡量模块独立性的两个标准及其含义。

答:衡量模块的独立性的标准是两个定性的度量标准:耦合性和内聚性。

(1)耦合性。也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越

紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。

(2)内聚性。又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的

度量。若一个模块内各元素(语句之间、程序段之间)的联系越紧密,则它的内聚性就越高。

耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高

模块的独立性,为设计高质量的软件结构奠定基础。 4.说明用况之间有哪几种关系,说明每种关系的含义。 答:用况之间可以具有三种关系,即泛化、扩展和包含。

泛化: 泛化是用况之间的一般/特殊关系。USE CASE A到USE CASE B的泛化,指出A是B的特殊情况。 扩展:记为《extend》,USE CASE A到USE CASE B的一个扩展关系,指出了USE CASE B的一个实例可以

由A说明的行为予以扩展(根据该扩展所说明的特定条件),并依据该扩展点定义的位置,A说明的行为被插入到B中。 包含:记为《include》,USE CASE A到USE CASE B的一个包含,指出A的一个实例将包含B说明的行为,

即这一行为将包含在A定义的那部分中。

5. 结构化设计中总体设计和详细设计的目标和任务是什么? 答:结构化设计分为总体设计和详细设计。

总体设计的目标是:建立系统的模块结构,即系统实现所需要的软件模块—系统中可标识的软件成分,以

及这些模块之间的调用关系。 总体设计的具体任务是:将DFD转化为MSD

详细设计的目标是将总体设计阶段所产生的系统高层结构,映射为以这些术语所表达的低层结构,也是系

统的最终结构。详细设计的主要任务是: 给出软件模块结构中各个模块的内部过程描述,也就是模块内部的算法设计。

五、应用题(本大题共2小题,第1小题10分,第2小题12分,共22分) 1.根据下列变换型的数据流图,设计出初始软件结构图。

3

答:

主模块 get f5 由f5变为f9 put f9 get f3 get f4 C D E F Put f10 G get f1 A get f2 B 2.下列是某程序的N-S图

(1) 请将其转换成PAD图 (2)请将其转换成伪码表示。 答:

(1)PAD图

4

(2)

伪码表示: begin

if L1 then

Begin S1; while L2 do

begin S2;

if L3 then S3

else S4;

end

end else S5; end;

5

软件系统开发技术试题(二) 答案

一、单项选择题(本大题共10小题,每小题1分,共10分) 1.以下哪个软件生存周期模型是一种风险驱动的模型( C )

A.瀑布模型 B.增量模型 C.螺旋模型 D.喷泉模型 2.结构化分析建立功能模型的工具是( B )

A.DFD B.判定树/判定表 C.DD D.结构化语言

3.模块中所有成分结合起来完成一项任务,该模块的内聚性是( A )

A.功能内聚 B.顺序内聚 C.通信内聚 D.逻辑内聚 4.以下哪一项对模块耦合性没有..影响( D ) A.模块间接口的复杂程度

B.调用模块的方式 C.通过接口的信息

D.模块内部各个元素彼此之间的紧密结合程度

5.检查软件产品是否符合需求定义的过程称为( A )

A.确认测试 B.集成测试 C.系统测试 D.单元测试 6.下面关于详细设计的叙述中,错误..的是( B ) A.程序流程图可以描述结构化程序

B.程序流程图不能描述结构化程序

C.NS图描述的程序一定是结构化的 D.PAD图描述的程序一定是结构化的 7.集成测试是为了发现( A )

A.接口错误

B.编码错误 C.性能、质量不合要求

D.功能错误 8.结构化程序设计,主要强调的是( C

A.程序的执行效率 B.模块的内聚 C.程序的可理解性 D.模块的耦合 9.下面关于文档的叙述,错误..

的是( A )

A.文档是仅用于说明使用软件的操作命令,不包括软件设计和实现细节 B.文档是软件产品的一部分,没有文档的软件就不成为软件

C.高质量文档对于转让、变更、修改、扩充和使用有重要的意义

D.软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量

10.面向对象开发方法中,将在面向对象技术领域内占主导地位的标准建模语言是( C )

A.Booch方法 B.Coad方法 C.UML语言 D.OMT方法 二、填空题(本大题共10小题,每小题2分,共20分)

1.为了克服软件危机,1968年北大西洋公约组织的工作会议上首先提出了____软件工程___的概念。2.变换型数据流图是由输入、_____变换(或处理)________和输出三部分组成的。

6

3.软件产品在交付使用之前一般要经过______单元测试______、集成测试、确认测试和系统测试。 4.子类自动共享父类数据结构和方法的机制是_____继承性____,这是类之间的一种关系。 5.G.J.Myers提出:软件测试是为了发现__程序错误____而执行程序的过程。 6. 状态图反映了状态与_____事件与状态____________的关系。

7.两个或两个以上的模块共同引用一个全局数据项,这种耦合被称为公共耦合。

8. 用况之间可以具有三种关系,即泛化、扩展和包含。 泛化是用况之间的一般/特殊关系。

9. RUP的突出特点是一种以用况(Use Case)为驱动的、以体系结构为中心的、迭代增量式开发。 10. 在RUP中,规定了四个开发阶段:初始阶段、精化阶段、构造阶段和移交阶段。

三、名词解释题(本大题6小题,每小题3分,共18分) 1.软件工程

答:软件工程定义为:软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实

现满足用户要求的软件产品的工程,或以此为研究对象的学科。 2.软件生存周期

答:软件生存周期是软件产品或系统的一系列相关活动的全周期。从形成概念开始,历经开发、交付使用、在使用中不断修订和演化,直到最后被淘汰,让位于新的软件产品” 。 3.用况

答:用况(use case)是对一组动作序列的描述,系统执行这些动作应产生对特定的参与者有值的、可观察的结果。

4. 软件需求分析:

答:就软件需求分析而言,即为:系统化地使用问题域术语,给出该问题的模型 5. 模块化:

答:把一个待开发的软件分解成若干简单的、具有高内聚低耦合的模块,这一过程称为模块化。 6. 类的操作

答:操作是服务的一个实现,由该类的任意对象为其行为所要求的。 四、简答题(本大题共5小题,每小题6分,共30分) 1. 简述瀑布模型以及可适应的情况,为什么? 答:瀑布模型如图所示:

(1)软件生存周期分为若干规定阶段并规定了各开发阶段的活动,项目的开发依次经过:需求、设计、编码和单元测试、集成以及维护—这一基本路径。

(2)在每一阶段提交以下产品:软件需求规约、设计文档、实际代码、测试用例、最终产品等。工作产品(又称可提交的产品)流经“正向”开发的基本步骤路径。

(3)“反向”步骤流表示对前一个可提交产品的重复变更(又称为“返工”)。

瀑布模型可适应的情况

在开发中,向下、渐进的路径占支配地位。也就是说,需求已被很好地理解;

❖过程设计人员也很清楚:开发组织非常熟悉为实现这一模型

所需要的过程(或经过培训后,熟悉什么时候来支持这一项目,以实现这一模型所需要的过程)。 2.数据字典的作用是什么,它有哪些条目?

答:数据字典,主要用来描述数据流程图中的数据流、数据存储、处理过程和和数据源点/终点。 作用:数据流程图描述了系统的逻辑结构,其中的四个基本图形元素的含义无法在数据流程图中详细说明,

7

因此数据流程图需要与其他工具配合使用,数据字典就是这样的工具之一。

包括的条目:数据流词条,数据元素词条,数据存储词条,数据加工处理词条,数据源点及终点词条 3. 简述结构化设计中总体设计的任务,说明实现该任务的基本步骤。 答:总体设计的具体任务是:将DFD转化为MSD 基本步骤

(1)将系统的DFD图转化为初始的模块结构图MSD

变换型数据流图—变换设计 事务型数据流图—事务设计

(2)基于“高内聚低耦合”这一软件设计原理,通过模块化,将初始的模块结构图转化为最终的、可供详

细设计使用的模块结构图

4.简述结构化程序设计方法的基本要点。

答:(1)采用自顶向下,逐步求精的程序设计方法 (2)使用三种基本控制结构构造程序,分别是顺序,选

择和循环 (3)采用主程序员组的组织形式 (4)采用单入口单出口的模块形式。 5. 简述面向对象中的继承性和多态性。

答:继承性。继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。 .

继承性是面向对象程序设计语言不同于其他语言的最主要的特点,是其他语言所没有的。在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承o

多态性(多形性)。多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。

多态性允许每个对象以适合自身的方式去响应共同的消息。这样就增强了操作的透明性、可理解性和可维护性。用户不必为相同的功能操作但作用于不同类型的对象而费心去识别。 五、应用题(本大题共2小题,第1小题10分,第2小题12分,共22分)

1.一个软件公司有许多开发部门,每个部门由部门名字唯一确定。每个开发部门开发多个软件产品。开发部门有许多员工,分为经理和开发人员。每个开发人员可参加多个开发项目,每个开发项目需要多个开发人员,开发人员使用语言开发项目。每位经理可主持多个开发项目。请在该公司的对象模型中填入相应的名称。

软件公司 部门名 1..* 开发 1..* 有 1..* 语言

参加 1..* 主持 1..*

8

答:

软件公司 部门名 开发项目 1..* 开发部门 1..* 员工 开发 有 1..* 开发人员 经理 语言 参加 主持 1..* 开发项目 1..*

2.某个程序的伪码如下: begin

if L1 then

Begin S1; while L2 do

begin S2;

if L3 then S3

else S4;

end

end else S5; end;

(1) 将其转换为PAD图; (2) 将其转换为N-S图;

答:(1)PAD图

9

(3) N-S图

10

软件系统开发技术试题(三) 答案

一、单项选择题(本大题共10小题,每小题1分,共10分)

1.软件生存周期中,准确地确定软件系统必须做什么的阶段是( B )

A.可行性分析和项目开发计划 B.需求分析 C.概要设计 D.详细设计

2.使用数据流图来表示系统逻辑模型的是( D )

A.Jackson B.VDM C.OOA D.SA

3.用于描述结构化分析中数据流加工逻辑的是( A )

A.判定树 B.ER图 C.状态图 D.用例图

4.若一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功

能元素的输入,则该模块的内聚性类型是( C )

A.时间内聚 B.偶然内聚 C.顺序内聚 D.功能内聚

5.下列几种耦合类型,耦合性最高的是( A )

A.公共耦合 B.控制耦合 C.标记耦合 D.数据耦合

6.程序流程图的优点不包括( B ) ...A.历史最悠久,使用最广泛

C.支持程序的三种基本控制结构

7.确认测试也称为( A )

A.有效性测试 C.静态测试

8.黑盒测试技术不包括( B ) ...

B.容易表示逐步求精的过程

D.直观清晰,易于使用 B.无效性测试 D.动态测试

A.等价类划分 B.路径覆盖 C.边界值分析 D.错误推测

9.瀑布模型与增量模型之间的本质区别是( B )

A.瀑布模型属于非整体开发模型,增量模型属于整体开发模型 B.瀑布模型属于整体开发模型,增量模型属于非整体开发模型 C.瀑布模型容易适应需求变化,增量模型不容易适应需求变化 D.瀑布模型减少技术、应用风险,增量模型增大技术、应用风险

10.面向对象分析中,对象模型描述了系统的( A )

A.静态结构 B.动态结构 C.控制结构 D.顺序结构

二、填空题(本大题共10小题,每小题2分,共20分) 1.结构化分析方法是一种面向_数据流____的开发方法。

2.过程设计语言是用于描述模块___算法设计_____和处理细节的语言。

3. 描述加工逻辑一般用以下三种工具:结构化语言、判定表和___判定树_________。

11

4. 若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径执行,这种特征的DFD称为____事务性________的数据流图。 5. 测试用例应由输入数据和___输出数据____________两部分组成。

6. 测试的模块往往不是独立程序,需要为被测试模块设计若干辅助模块,其中用来模拟被测模块的下级调用模块称为_____桩模块_____模块。

7. RUP的突出特点是一种以用况(Use Case)为驱动的、以体系结构为中心的、迭代增量式开发。 8. RUP的迭代增量式开发,是演化模型的一个变体

9. 在RUP中,规定了四个开发阶段:初始阶段、精化阶段、构造阶段和移交阶段。 10.PAD图是日本日立公司提出的一种_ 详细设计_____工具。 三、名词解释(本大题共6小题,每小题3分,共18分) 1. 软件需求:

答:需求是一个“要予构造”的陈述,描述了待开发产品(或项)功能上的能力、性能参数或者其他性质。 2. 数据字典:

答:简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的、无二义性的说明方式

为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述. 3.模块化

答:所谓模块化是指按照“ 高内聚低耦合” 的设计原则,形成一个相互独立但又有较少联系的模块结构的过程,使每个模块具有相对独立的功能/过程。 4. 测试覆盖率

答:测试覆盖率定量地描述了一个或一组测试的效率(或称测试完成程度)。几种测试覆盖存在以下基本关系:

语句覆盖≤分支覆盖≤条件组合覆盖≤⋯⋯≤路径覆盖 5. 模块的控制域

答:模块的控制域是指这个模块本身以及所有直接或间接从属于它的模块的集合。 6. 过程成熟度

答:一个特定软件过程被明确和有效地定义、管理、测量和控制的程度。

四、简答题(本大题共5小题,每小题6分,共30分) 1. 简述需求的基本性质

答:需求必须具有5个基本性质:

必要的(Necessary)。是要求的吗?

无歧义的(Unambiguous)。只能用一种方式解释吗? 可测试的(testable)。可以对它进行测试吗?

可跟踪的(Traceable)。可以从一个开发阶段到另一个阶段对它进行跟踪吗? 可测量的(Measurable)。可以对它进行测量吗?

2. 以结构化分析方法建立的系统模型由哪些部分组成?每一部分的基本作用是什么? 答:结构化分析方法给出了一种表达功能模型的工具,即数据流图(dataflow diagram),简称DFD图。数据流图就是一种表达待建系统功能模型的工具。

数据字典: 依据系统的数据流图,定义其中包含的所有数据流和数据存储的结构,直到给出构成以上数据的各数据项的基本数据类型。

加工小说明:依据系统的数据流图,给出其中每一加工的小说明。对DFD中的每一加工只需给出加工的输入数据和输出数据之间的关系,即从外部来“视察”一个加工的逻辑。 3.说明用况之间有哪几种关系,说明每种关系的含义。 答:用况之间可以具有三种关系,即泛化、扩展和包含。

12

泛化: 泛化是用况之间的一般/特殊关系。USE CASE A到USE CASE B的泛化,指出A是B的特殊情况。 扩展:记为《extend》,USE CASE A到USE CASE B的一个扩展关系,指出了USE CASE B的一个实例可以由A说明的行为予以扩展(根据该扩展所说明的特定条件),并依据该扩展点定义的位置,A说明的行为被插入到B中。

包含:记为《include》,USE CASE A到USE CASE B的一个包含,指出A的一个实例将包含B说明的行为,即这一行为将包含在A定义的那部分中。

4. 结构化设计中总体设计和详细设计的目标和任务是什么? 答:结构化设计分为总体设计和详细设计。

总体设计的目标是:建立系统的模块结构,即系统实现所需要的软件模块—系统中可标识的软件成分,以及这些模块之间的调用关系。 总体设计的具体任务是:将DFD转化为MSD

详细设计的目标是将总体设计阶段所产生的系统高层结构,映射为以这些术语所表达的低层结构,也是系统的最终结构。详细设计的主要任务是: 给出软件模块结构中各个模块的内部过程描述,也就是模块内部的算法设计。

5. 简述测试过程模型。

答:测试过程模型如图所示:

环境模型是对程序运行环境的抽象。 对象模型是从测试的角度对程序的抽象。 错误模型是对错误及其分

类的抽象。

五、应用题(本大题共2小题,第1小题12分,第2小题10分,共22分) 1.根据下列事务型的数据流图,设计出初始软件结构图。

答:

13

2.根据下列程序流程图,设计测试用例,使之满足语句覆盖,对每组测试数据给出执行路径、两个判定

(1)和(3)的判定结果。

答:语句覆盖在测试时应该执行到程序中的每一个语句 2组测试用例:

x=10 ,y=8 执行路径: 1 2 5 (1)的判定结果为假,(3)的判定不执行 X=7 y=1执行路径: 1 3 4 5 (1)的判定结果为真,(3)的判定结果为假

14

软件系统开发技术试题(四) 答案

一、单项选择题(本大题共10小题,每小题1分,共10分)

1.以下最适合于面向对象的软件开发的软件生存周期模型是( D )

A.瀑布模型 B.增量模型 C.螺旋模型 D.喷泉模型

2.以下不适用于需求分析的工具是( C ) .

A.数据流图 B.判定表

C.PAD图 D.数据字典

3.以下几种模块内聚类型中,内聚性最低的是( B )

A.时间内聚 B.逻辑内聚 C.顺序内聚 D.功能内聚

4.数据流图中的每个加工至少有( D )

A.一个输入流或一个输出流 B.一个输出流 C.一个输入流 D.一个输入流和一个输出流

5.过程设计语言(PDL),又称为( A )

A.伪码 B.高级程序设计语言 C.中级程序语言 D.低级程序设计语言

6.汽车是一种交通工具,汽车类和交通工具类之间的关系是( A )

A.一般具体 B.has a C.整体部分 D.组成

7.瀑布模型本质是一种( B )

A.顺序迭代模型 B.线性顺序模型 C.线性迭代模型 D.非线性模型

8. SD(结构化设计)方法设计的结果是( B )

A.模块 B.模块结构图 C.模块的算法 D.数据流图

9. 在进行软件测试时,首先应当进行以下哪项测试,然后再进行组装测试,最后再进行有效性测试( A )

A.单元测试 B.系统测试 C.集成测试 D.确认测试

10. 软件详细设计阶段的任务是( A )

A.算法与数据结构设计 B.功能设计

C.调用关系设计 D.输入/输出设计

二、填空题(本大题共10小题,每空2分,共20分)

1.在软件结构的设计中,各个模块之间要力求降低耦合性,提高___内聚性__________。 2.在类的层次结构中,通常上层类称为父类或超类,下层类称为____子类_______。 3.数据流图(DFD)一般可分为变换型和_____事务型______两类。 4.状态图反映了__事件与状态_____________的关系。

5.需求分析的基本任务是准确地定义新系统的目标,回答“系统做什么”______的问题。 6. 数据流图中描述加工逻辑一般使用三种工具,分别是___DFD_____、判定表、判定树。 7. 数据字典有四类条目,分别是数据流、___数据项_____、数据存储和基本加工。

8. 软件产品在交付使用之前一般要经过以下四步测试:___单元测试__、集成测试、确认测试和系统测

15

试。

9. 两个模块至少有一个通过界面传递的公共有结构的参数, 两个模块之间的耦合称为 标记耦合。 10. 在RUP中,规定了四个开发阶段:初始阶段、精化阶段、构造阶段和移交阶段。 三、名词解释题(本大题共6小题,每小题3分,共18分) 1.变换型数据流图

答:具有较明显的输入部分和变换(或称主加工)部分之间的界面、变换部分和输出部分之间界面的数据流图,称为变换型数据流图。 2. 耦合性

答:用于衡量不同模块彼此间互相依赖(连接)的紧密程度。 3. 多态性

答:指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。不同的对象,收到同一消息可以产生不同的结果。 4. 模块的作用域

答:模块的作用域是指受该模块内一个判定所影响的所有模块的集合。 5. 关联

答:关联是类目之间的结构关系,描述了一组链(links),链是对象之间的连接 6.集成测试

答:集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。

四、简答题(本大题共5小题,每小题6分,共30分) 1. 简述需求规约的基本性质

答:IEEE标准规定需求规约应具有以下4个基本性质:

重要性和稳定性程度(Ranked for importance and stability)。即可按需求的重要性和稳定性,对需求进行分级,例如:基本需求、可选的需求和期望的需求。

可修改的(Modifiable)。在不过多地影响其它需求的前提下,可以容易地修改一个单一需求。 完整的(Complete)。没有被遗漏的需求。 一致的(Consistent)。不存在互斥的需求。 2.简述结构化分析的步骤。

答:结构化分析过程属于一种“自顶向下,功能分解”风范。建模的基本步骤: 1:建立系统环境图,确定系统语境(系统边界)

2:自顶向下,逐步求精,建立系统的层次数据流图(注:第一步和第二步共同完成使用数据流图DFD,建立系统的功能模型)

3:定义数据字典,用于表达系统中数据结构;

4:描述加工,给出加工小说明,用于表达每个加工输入与输出之间的逻辑关系。 3.什么是模块化?软件结构设计的优化准则是什么?

答:模块化是按规定的原则将一个大型软件划分为一个个较小的、相对独立但又相关的模块。 模块设计的准则:

(1) 改进软件结构, 提高模块独立性。在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的内聚,降低藕合。

(2) 模块大小要适中。大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模块中。

(3) 软件结构图的深度、宽度、扇入和扇出要适当。一般模块的调用个数不要超过5个。 (4) 尽量降低模块接口的复杂程度。

16

(5) 设计单入口、单出口的模块。 (6) 模块的作用域应在控制域之内。 4.简述详细设计的基本任务。

答:(1)为每个模块确定采用的算法;(2)确定每一模块使用的数据结构;(3)确定模块接口的细节;(4)编写过程设计说明书;(5)设计每一模块的测试用例。 5.简述软件测试的任务、目的与测试方法类型。

答:(1)软件测试是一个为了寻找软件错误而运行程序的过程。

(2)目的就是为了发现软件中的错误。一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。 (3)软件测试主要分为白盒测试和黑盒测试两大类。

五、应用题(本大题共2小题,第1小题10分,第2小题12分,共22分) 1.某个程序的PAD表示如下:

(1) 将其转换成伪码表示 (2) 将其转换成N-S图表示 答:(1)伪码表示 begin

if L1 then

Begin S1; while L2 do

begin S2;

if L3 then S3

else S4;

end

end else S5; end;

(2)N-S图表示

17

2.根据下列程序流程图,设计测试用例,使之满足分支覆盖,对每组测试数据给出执行路径、两个判定

(1)和(3)的判定结果。

答:分支覆盖在测试时应该至少执行程序中每一分支一次。 3组测试用例:

x=10 ,y=8 执行路径: 1 2 5 (1)的判定结果为假,(3)的判定结果不执行 X=7 y=4 执行路径: 1 3 5 (1)的判定结果为真,(3)的判定结果为真 X=7 y=1执行路径: 1 34 5 (1)的判定结果为真,(3)的判定结果为假

18

因篇幅问题不能全部显示,请点此查看更多更全内容