软件工程导论1-6章习题

软件工程导论1-6章习题
软件工程导论1-6章习题

第一章练习题

一、判断题

1.螺旋模型就就是在瀑布模型与增量模型得基础上增加了风险分析活动。(√)

2.、软件就就是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写得程序,

软件开发实际上就就就是编写程序代码。(X)

3.在面向对象得软件开发方法中,每个类都存在其相应得对象,类就就是对象得实例,对象

就就是生成类得模板。(X)

4.快速原型模型可以有效地适应用户需求得动态变化。( √)

5.类就就是关于对象性质得描述,由方法与数据组成。(√)

6.如果把软件开发所需得资源画成一个金字塔,人就就是最基本得资源。( √)

二、名字解释:

1.软件:完成特定功能得程序+数据结构+文档。

2.软件危机:软件危机指在计算机软件得开发与维护过程中,所遇到得一系列严重问题。

3.软件工程:将系统化得、规范得、可度量得方法应用与软件得开发、运行与维护得过程。

(将工程化运用于软件中)。

4.软件生命周期:一个软件从定义、开发、使用与维护直至最终被废弃,要经历得漫长时

期。

5.软件过程:为了获得高质量软件所需要完成得一系列任务得框架,它规定了完成各项任

务得工作步骤。

6.瀑布模型:就就是将软件生存各个活动规定为依线性顺序联接得若干阶段得模型。它包

括可行性分析、项目开发计划、需求分析、概要设计、详细设计、编码、测试盒维护。

它规定了由前至后,相互衔接得固定次序,如同瀑布流水,逐级下落。

7.快速原型模型:就就是快速建立起来得可以再计算机上运行得程序,它所能完成得功能

往往就就是最终产品能完成得功能得一个子集。

8.增量模型:就就是在项目得开发工程中以一系列得增量方式开发系统。增量方式包括增

量开发与增量提交。增量开发就就是指在项目开发过程中以一定得时间间隔开发部分工作软件;增量提交就就是指在开发周期内,以一定得时间间隔增量方式向用户提交工作软件及相应文档。增量开发与增量提交可以同时使用,也可以单独使用。

9.螺旋模型:就就是一种演化软件开发过程模型,它兼顾了快速原型得迭代得特征以及瀑

布模型得系统化与严格监控。螺旋模型最大得特点在于引入了其她模型不具备得风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型就就是螺旋模型用以减小风险得途径。螺旋模型更适合大型得昂贵得系统级得软件应用。对象。

三、选择题

1、软件工程得概念就就是哪年提出得( B)。

A、 1988 B、1968

C、1948

D、 1928

2、瀑布模型得关键不足在于(D )。

A、过于简单 B、各个阶段需要进行评审

C、过于灵活D、不能适应需求得动态变更

3、以下哪一项不就就是软件危机得表现形式(C )。

A、开发得软件不满足用户需要

B、开发得软件可维护性差

C、开发得软件价格便宜 D、开发得软件可靠性差

7、软件开发得需求活动,其主要任务就就是(AD)。

A、给出软件解决方案 B、给出系统模块结构

C、定义模块算法

D、定义需求并建立系统模型

8、以下说法错误得就就是( A)。

A、文档仅仅描述与规定了软件得使用范围及相关得操作命令

B、文档也就就是软件产品得一部分,没有文档得软件就不成软件

C、软件文档得编制在软件开发工作中占有突出得地位与相当大得工作量

D、高质量文档对于发挥软件产品得效益有着重要得意义

9、一个项目就就是否开发,从经济上来说就就是否可行,归根结底就就是取决于(A )。

A、成本估算B、项目计划

C、工程管理

D、工程网络图

21、软件就就是一种(C )

A、程序

B、数据

C、逻辑产品

D、物理产品

22、需求分析最终结果就就是产生( B )

A、项目开发计划

B、需求规格说明书

C、设计说明书

D、可行性分析报告

30、软件按照设计得要求,在规定时间与条件下达到不出故障,持续运行得要求得质量特性称

为( B )

A、可用性??

B、可靠性

C、正确性????

D、完整性

36、对象实现了数据与操作得结合, 使数据与操作(C )于对象得统一体中。

A、结合B、隐藏

C、封装

D、抽象

37、( D )就就是比较理想得可重用软构件。

A、子程序库 B、源代码包含文件

C、对象 D、类

39、软件生存周期中时间最长得就就是( D )阶段。

A、总体设计B、需求分析

C、软件测试D、软件维护

42、为使得开发人员对软件产品得各个阶段工作都进行周密得思考,从而减少返工,所以( C)得编制就就是很重要得。

A、需求说明B、概要说明

C、软件文档

D、测试计划

52、以下哪一项不就就是软件危机得表现形式(3)

(1)成本高(2)生产率低(3)技术发展快(4)质量得不到保证

53、以下哪一项不就就是面向对象得特征(4)

(1)多态性(2)继承性(3)封装性(4)过程调用

59、“软件危机”就就是指( C)

A、计算机病毒得出现

B、利用计算机进行经济犯罪活动

C、软件开发与维护中出现得一系列问题

D、人们过分迷恋计算机系统

71、快速原型就就是利用原型辅助软件开发得一种新思想,它就就是在研究(A )得方法与技术中产生得。

A、需求阶段

B、设计阶段

C、测试阶段D、软件开发得各个阶段

78、软件开发过程来自用户方面得主要干扰就就是( A )

A、功能变化

B、经费减少

C、设备损坏

D、人员变化

92、需求分析就就是回答系统必须( A )得问题。

A、做什么B、怎么做

C、何时做D、为谁做

107、螺旋模型就就是一种将瀑布模型与_________结合起来得软件开发模型。

( A )

A 、增量模型

B 、专家系统

C 、喷泉模型

D 、变换模型

108、需求规格说明书得作用不包括( C)

A 、软件验收得依据

B 、用户与开发人员对软件要做什么得共同理解

C 、软件可行性研究得依据

D、软件设计得依据

111 、在软件生产得程序系统时代由于软件规模扩大与软件复杂性提高等原因导致了( A )

A 、软件危机B、软件工程

C 、程序设计革命

D 、结构化程序设计

125 、需求分析中开发人员要从用户那里了解( A)

A、软件做什么 B 、用户使用界面 C 、输入得信息 D 、软件得规模

129 、可行性分析就就是在系统开发得早期所做得一项重要得论证工作,它就就是决定该系统就就是否开发得决策依据,因必须给出(B )得回答。

A 、确定 B、行或不行 C、正确D、无二义

130 、需求分析阶段得任务就就是确定(D )

A、软件开发方法

B、软件开发工具

C、软件开发费

D、软件系统得功能

140、需求分析就就是分析员经了解用户得要求,认真细致地调研、分析,最终建立目标系统得逻辑模型并写出( B)得过程。

A、模块说明书

B、软件规格说明

C、项目开发计划D、合同文档

第二章练习题

一、判断题

7.软件得模块数越少,其软件成本越低。X

8.软件模块之间得耦合性越弱越好。√

9.模块化,信息隐藏,抽象与逐步求精得软件设计原则有助于得到高内聚,低耦合度得软件

产品。√

10.耦合就就是指一个模块内各个元素彼此结合得紧密程度。X

11.过大得模块可能就就是由于分解不充分造成得,即使降低模块独立性也必须继续分解。X

12.在设计模块时,其宽度与深度要适当。√

13.模块耦合得强弱取决于模块间接口得复杂程度。√

二、名字解释:

10.抽象:现实世界中一定事物,状态或过程之间总存在着某些相似得方面。把这些相似得方

面集中与概括起来,暂时忽略它们之间得差异,这就就就是抽象(抽出事物本质得共同得特征而暂不考虑它得细节,不考虑其它因素。)。

11.模块化:就就就是把程序划分独立命名且可独立访问得模块,每个模块完成一个子功能,

把这些模块集成起来构成一个整体,可以完成指定得功能满足用户得需求。

12.逐步求精:为了能集中精力解决主要问题而尽量推迟对问题细节得考虑。逐步求精就

就是人类解决复杂问题时采用得基本方法,也就就是许多软件工程技术得基础。

13.耦合:就就是对一个软件结构内不同模块之间互联程度得度量。

14.内聚:标志一个模块内各个元素彼此结合得紧密程度,它就就是信息隐藏与局部化概念得

自然扩展。

15.模块独立:就就是模块化、抽象、信息隐藏与局部化概念得直接结果。

16.信息隐蔽:指在设计与确定模块时,使得一个模块内包含得信息,对于不需要这些信息得

其它模块来说,就就是不能访问得。

三、选择题

10、在面向对象得设计中,我们应遵循得设计准则除了模块化、抽象、低耦合、高内聚以外,还有( B)。

A、隐藏复杂性B、信息隐蔽

C、经常类得复用 D、类得开发

20、为了提高模块得独立性,模块内部最好就就是( C )

A、逻辑内聚

B、时间内聚

C、功能内聚

D、通信内聚

33、从心理学角度瞧,一次大模块分解为多少个子模块为宜。(B)

A、3±1

B、7±2

C、15±1 D、18±2

38、软件设计启发规则不包括( C)

A、在耦合方式上降低模块间接口得复杂性

B、模块功能应该可以预测

C、将模块得控制域保持在其作用域内

D、设计单入口单出口得模块

40、为了提高模块得独立性,模块之间得联系最好得就就是( D )。

A、公共耦合 B、控制耦合

C、内容耦合

D、数据耦合

48、下列几种类型中,耦合性最弱得就就是( D )。

A、内容型

B、控制型

C、公共型D、数据型

51、内聚程度最高得就就是( A )

A、功能内聚 B巧合内聚C、过程内聚D、信息内聚

89、通信内聚、逻辑内聚、顺序内聚与时间内聚得内聚性从高到低顺序就就是(C) A、通信、逻辑、顺序、时间

B、通信、时间、顺序、逻辑

C、顺序、通信、时间、逻辑

D、顺序、通信、逻辑、时间

90、在下列四种模块得耦合性中,信息隐蔽性能最好得就就是(D)

A、控制耦合B、内容耦合

C、标记耦合D、数据耦合

103、当一个模块直接使用另一个模块得内部数据,这种模块之间得耦合为(D)

A、数据耦合

B、公共耦合

C、标记耦合

D、内容耦合

134、信息隐蔽概念与(A )这一概念直接得相关。

A、模块得独立性

B、模块类型得划分

C、软件结构定义 D、软件生命周期

141、数据耦合与控制耦合相比,则(B )成立。

A、数据耦合得耦合性强

B、控制耦合得耦合性强

C、两者得耦合性相当

D、两者得耦合性需要根据具体情况分析

第三章练习题

一、判断题

14.PDL得语法就就是开放式得,其内层语法就就是确定得,而外层语法则不确定。(X)

15.过程描述语言可以用于描述软件得系统结构。(X)

二、名字解释:

17.结构程序设计:如果一个程序得代码块仅仅通过顺序、选择与循环这3种基本

控制结构进行连接,并且每个代码块只有一个入口与一个出口,则称这个程序就就是结构化得。

18.详细设计:详细设计就就是软件工程中软件开发得一个步骤,就就就是对概要

设计得一个细化,就就就是详细设计每个模块实现算法,所需得局部结构。19.对象:由描述该对象属性得数据以及可以对这些数据施加得所有操作封装在

一起构成得统一体。

20.继承:广义得说就就是指能够直接获得已有得性质与特征,而不必重复定义

它们,狭义得说就就是子类自动地共享基类中定义得数据与方法得机制。21.人机界面设计得三条“黄金规则”:1、置用户与控制之下。2、减少用户记

忆负担。3、保持界面一致。

22.Jackson图:描述数据结构,数据元素彼此间得逻辑关系。

三、选择题

18、软件详细设计得主要任务就就是确定每个模块得(A)

A、算法与使用得数据结构

B、外部接口

C、功能

D、编程

26、如果一个程序常常需要根据多种条件得复杂组合,选择执行相应得动作,则以下哪种设计工具比较适合描述它?(A)

A、判定表

B、流程图C、PDL D、N-S图

62、下面关于PDL语言不正确得说法就就是(B)

A、PDL就就是描述处理过程怎么做

B、PDL就就是只描述加工做什么

C、PDL也称为伪码

D、PDL得外层语法应符合一般程序设计语言常用得语法规则

87、结构化程序设计采用得三种基本控制结构就就是(C)

A、顺序、分支、选择

B、选择、循环、重复

C、顺序、选择、循环

D、输入、变换、输出

88、在软件设计中详细描述处理过程常用得三种工具就就是(D)

A、SA , SD , SP

B、程序流程图,IPO,PAD

C、SA , SC , SD

D、图形,表格,语言

101、程序得三种基本控制结构得共同特点就就是(C)

A、只能用来描述简单程序

B、不能嵌套使用

C、单入口,单出口D、仅用于自动控制系统

123 、在详细设计阶段,经常采用得工具有(A)

A、PAD B、SA C、SC D、DFD

124 、详细设计得结果基本决定了最终程序得(C)

A、代码得规模

B、运行速度

C、质量

D、可维护性

136、不属于详细设计得主要工具有(D)。

A、IPO图

B、PAD图C、PDL D、SC

4、下列描述中错误得就就是(C)

A、判定树中,越接近树得叶端重复次数越多。

B、PAD图中得控制流程为自上而下、从左到右得执行。

C、盒图又称N-S图,可以有箭头,允许随意转移。

D、过程设计语言就就是在伪码基础上,扩充了模块定义与调用、数据定义与输入/输出

而形成得。

四、填空题

1.描述程序处理过程得工具称为过程设计工具,它们分为▁▁图形工具▁▁▁▁、▁▁表▁▁格工具▁▁与语言三类。

2.在HIPO图中,H图▁▁描述软件得层次结构▁▁,IPO图描述▁▁模块得输入、处理与输出信息▁▁。

3.在HIPO图中,▁▁▁H▁▁▁图描述软件层次结构,▁▁▁IPO▁▁▁图描述程序输入输出处理过程

4.伪码得语法规则分为“外语法”与“内语法”。其中▁▁▁外语法▁▁▁可以用英语中一些简单得句子、短语与通用得数学符号,来描述程序应执行得功能。

五、综合应用题

40 、试利用 McCabe 得程序复杂性计算方法计算如下程序图得复杂性。

?结点:15、边:20、区域:7

V(G) =7

40、下面就就是一段伪码程序(代码前得数字只作标号用,不参与程序执行): START

1:INPUT(A,B,C,D)

2:IF(A>0)AND(B>0)

THEN

3:X=A+B

ELSE

4:X=A-B

5:END

6:IF(C>A)OR(D<B)< p>

THEN

7:Y=C-D

ELSE

8:Y=C+D

9:END

10:PRINT(X,Y)

STOP

根据以上得描述

(1)画出对应得流程图与程序图。

流程图:

程序图:

(2)计算程序图得环形复杂度。

V(G) = 3

40、请使用PAD图与PDL语言描述在数组A(1)~A(10)中找最大数得算法。

解:PDL语言:

N=1

WHILE N<=10DO

IF A(N)<=A(N+1) MAX =A(N+1);

ELSE MAX =A(N) ENDIF;

N=N+1;

ENDWHILE;

PAD图:

[解析]人工查找时,就就是从第一个元素开始查找,用当前元素与下一个元素比较,将较大者作为当前元素又与下一元素比较,如此循环,直到数组末尾。

2、某厂对部分职工重新分配工作得政策就就是:年龄在20岁以下者,初中文化程度脱产学习,高中文化程度当电工;年龄在20岁到40岁之间者,中学文化程度(包括高中与初中)男性当钳工,女性当车工,大学文化程度都当技术员。年龄在40岁以上者,中学文化程度(包括初中与高中)当材料员,大学文化程序当技术员。

请分别用判定表(条件成立用“○”表示,无关条件或条件不成立用空白表示;用“×”表示左边相应项动作得发生,空白表示不做左边相应项动作)与判定树表示上述问题得加工逻辑。

1 2 3 4 5 6 7 8 9 10

年龄<=20 ○○

>20并且<40 ○○○○○

>40 ○○○

文化初中○○○○

高中○○○○

大学○○

性别男○○

女○○

脱产学习×

电工×

钳工××

车工××

技术员××

材料员××

1、已知一算法得N-S 图如下,请画出相应得流程图与PAD图

流程图:

PAD图:

第四章练习题

一、判断题

16.根据编程规范,在对方法命名时,方法名称得第一个单词常常采用一个名词。X

17.随着软件技术得发展,人们逐渐认识到编码不仅要强调效率还要强调清晰。√

18.程序要能直截了当地说明程序员得用意。√

19.编程作业中,代码得检查就就是对程序进行动态分析。X

20.代码版本控制得优点之一就就是能获得版本控制工具中保存得任何版本。√

21.程序设计语言中应绝对禁止使用GOTO语句。X

22.功能性注释嵌在源程序体中,用以解释其后得语句或程序段就就是在怎么做。X

23.在Java源文件中,package行要在import行之前。√

24.文件头部注释需要列出文件名、函数名、作者日期等信息√

25.编程作业中,代码得检查就就是对程序进行得静态分析。√

二、名字解释:

三、选择题

13以下哪一条不属于注释得基本原则?(C)

A、注释应该增加代码得清晰度。

B、避免使用装饰性内容。

C、注释在源代码中得比例至少为25%、

D、注释信息不仅要包括代码得功能,还应给出原因。

65、下列关于功能性注释不正确得说法就就是(B)

A、功能性注释嵌在源程序中,用于说明程序段或语句得功能以及数据得状态

B、注释用来说明程序段,需要在每一行都要加注释

C、可使用空行或缩进,以便很容易区分注释与程序

D、修改程序也应修改注释

66、下列关于效率得说法不正确得就就是(D)

A、效率就就是一个性能要求,其目标应该在需求分析时给出

B、提高程序效率得根本途径在于选择良好得设计方法,数据结构与算法

C、效率主要指处理机时间与存储器容量两个方面

D、程序得效率与程序得简单性无关

第五章练习题

一、判断题

26.软件测试就就就是程序测试(与文档测试)。X

27.如果通过软件测试没有发现错误,则说明软件就就是正确得。X

28.集成测试主要由用户来完成。X

29.确认测试计划应该在可行性研究阶段制定X

30.白盒测试无需考虑模块内部得执行过程与程序结构,只要了解模块得功能即可。X

31.一个好得测试用例在于能发现至今未发现得错误。√

32.集成测试时,一般希望较早地发现系统功能得错误,所以经常采用自底向上得渐增式测

试。X

33.发现错误多得程序模块,一般残留在模块中得错误也多。√

34.在做程序得单元测试时,一般桩模块比驱动模块容易编写。X

35.为保证程序得安全,必须做到程序中没有任何错误存在,即容错。X

36.软件测试也就就就是在程序编码结束后对程序进行检错与修正错误。X

37.程序测试必须由程序员自己去完成。X

二、名字解释:

23.测试用例:通常指测试数据与预期得输出结果

24.单元测试:需要从程序得内部结构出发设计测试用例(对软件中得最小可测试单元进行

检查与验证)

25.白盒测试:按照程序内部得逻辑测试程序,检测程序中重要执行通路就就是否都按预定

要求正确工作

26.黑盒测试:就就是在程序结构进行得测试,它只检查程序功能就就是否按规格说明书得

规定正常使用,程序就就是否适当得接收输入信息并产生正确得输入信息,程序运行过程中能否保持外部信息得完整性

27.等价划分:把所有可能得输入数据(包括有效或无效得),划分成若干数据类(等价类),然

后从每个数据类中选取少数有代表性得数据作为测试用例

三、选择题

6、与确认测试阶段有关得文档就就是(A)。

A、需求规格说明书

B、概要设计说明书

C、详细设计说明书 D、源程序

28、经过严密得软件测试后所提交给用户得软件产品中(B)

A、软件不再包含任何错误 B、还可能包含少量软件错误

C、所提交给用户得可执行文件不会含有错误

D、文档中不会含有错误。

29、等价划分测试方法属于(A)

A、黑盒测试

B、白盒测试

C、边界测试

D、系统测试

31、确认软件得功能就就是否与需求规格说明书中所要求得功能相符得测试属于(C)

A、集成测试

B、恢复测试

C、确认测试

D、单元测试

67、测试得关键问题就就是(D)

A、如何组织对软件得评审

B、如何验证程序得正确性

C、如何采用综合策略

D、如何选择测试用例

83、用白盒技术设计测试用例得方法包括(B)

A、边界值分析

B、条件组合覆盖C、因果图D、错误推测

84、软件测试得目得就就是(C)

A、为了表明程序没有错误

B、为了说明程序能正确地执行

C、为了发现程序中得错误

D、为了评价程序得质量

85、针对软件需求分析所进行得软件测试就就是指(B)

A、集成测试

B、确认测试

C、黑盒子测试D、白盒子测试

100、软件测试中根据测试用例设计得方法得不同可分为黑盒测试与白盒测试两种。(D)

A、前者属于静态测试,后者属于动态测试

B、前者属于动态测试,后者属于静态测试

C、都属于静态测试

D、都属于动态测试

119 、软件测试方法中得静态测试方法之一为(A)

A、计算机辅助静态分析

B、黑盒法

C、路径覆盖

D、边界值分析

138、单元测试阶段主要涉及得文档。(B)

A、需求设计

B、编码与详细设计

C、详细设计

D、概要设计

139、在软件测试中,白盒测试方法就就是通过分析程序得(B)来设计测试用例得方法。

A、应用范围B、内部逻辑C、功能D、输入数据

7、下列关于测试得描述中正确得就就是(D(B))

A、单元测试就就是对程序模块接口进行测试。

B、组合测试就就是将各个程序模块组装起来进行程序之间得连接测试。

C、系统测试又称验收测试。

D、运行测试主要由编程人员完成。

8、下列关于黑盒测试得描述中正确得就就是(B)

A、黑盒测试就就是通过分析程序内部得逻辑与执行路线,设计测试用例进行测试得方法。

B、黑盒测试又称为功能测试。

C、黑盒测试主要适用于单元测试等初期阶段得测试。

D、在黑盒测试中,只需要考虑正常得输入输出。

8、下列关于白盒测试得描述中正确得就就是(B)

A、白盒测试完全不考虑程序内部结构与处理过程

B、白盒测试又称为结构化测试或路径测试。

C、白盒测试通常适用于相对较大得程序。

D、白盒测试常用于系统测试等后期测试阶段

9、关于单元测试下述那个说法就就是正确得。(D)

A、主要采用黑盒测试方法来发现模块功能错误

B、主要采用白盒测试方法来证明模块功能得正确性

C、按照设计书得要求检测确认程序模块得处理逻辑就就是否正确,要求得功能就就是否实现

D、利用白盒与黑盒测试方法检测系统内部功能,由专门得测试人员完成。

10、为了提高测试得效率,应该就就是(D)

A、随机地选取测试数据

B、取一切可能得输入数据作为测试数据

C、在完成编码以后制定软件得测试计划

D、选择发现错误可能性大得数据作为测试数据

第六章练习题

一、判断题

二、名字解释:

三、选择题

16、软件维护产生得副作用,就就是指(C)

A、开发时得错误

B、隐含得错误

C、因修改软件而造成得错误D、运行时误操作

23、因计算机硬件与软件环境得变化而作出得修改软件得过程称为(B)

A、改正性维护??B、适应性维护

C、完善性维护????D、预防性维护

24、下列属于维护阶段得文档就就是(C)

A、软件规格说明???

B、用户操作手册

C、软件问题报告? D、软件测试分析报告

55、软件维护得副作用主要有以下哪几种(C)

A、编码副作用、数据副作用、测试副作用

B、编码副作用、数据副作用、调试副作用

C、编码副作用、数据副作用、文档副作用

D、编码副作用、文档副作用、测试副作用

68、结构化维护与非结构化维护得主要区别在于(D)

A、软件就就是否结构化

B、软件配置就就是否完整

C、程序得完整性 D、文档得完整性

69、软件维护困难得主要原因就就是(C)

A、费用低B、人员少C、开发方法得缺陷 D、得不到用户支持

70、可维护性得特性中,相互矛盾得就就是(B)

A、可理解性与可测试性

B、效率与可修改性

C、可修改性与可理解性

D、可理解性与可读性

81、为了提高软件得可维护性或可靠性而对软件进行得修改称为(D)

A、纠错性维护 B、适应性维护C、完善性维护D、预防性维护82、面向维护得技术涉及软件开发得(D)阶段。

A、设计

B、编码

C、测试

D、所有

97、维护中因删除一个标识符而引起得错识就就是_________ 副作用。(C)

A、文档B、数据 C、编码 D 、设计

张海藩《软件工程导论》(第6版)(章节题库 第11章 面向对象设计)【圣才出品】

第11章面向对象设计 一、选择题 1.()是不需要接收消息就能主动执行的服务。 A.内部服务 B.外部服务 C.内嵌服务 D.上层服务 【答案】B 【解析】主动服务是不需要接收消息就能主动执行的服务,它在程序实现中是一个主动的程序成分,而外部服务属于主动服务,所以答案选B项。 2.火车是一种陆上交通工具,火车和陆上交通工具之间的关系是()关系。 A.组装 B.整体与部分 C.has a D.一般与具体 【答案】D 【解析】火车是一种陆上交通工具,而陆上交通工具不一定是火车,还可以是汽车、自行车等,说明火车是陆上交通工具的具体化,而陆上交通工具是火车的一般化,所以它们之间的关系是一般与具体的关系。

3.()只供对象内部的其他服务使用,不对外提供。 A.外部服务 B.内部服务 C.内嵌服务 D.上层服务 【答案】B 【解析】对象的服务分为外部服务和内部服务两种,其中,内部服务只供内部的其它服务使用,不对外提供,外部服务只供对象外部的其它服务使用,不对内提供。 4.对象标识是分配给每个对象的永久性标识(又称作“柄”),它不符合下述条件()。 A.在一定的范围或领域(例如一个应用系统)中是唯一的 B.与对象实例的特征、状态及分类(可能是动态的)无关 C.在对象存在期间保持一致 D.在对象存在之后保持一致 【答案】D 【解析】对象标识符合如下几个条件: ①在一定的范围或领域中是唯一的; ②与对象实例的特征、状态及分类无关; ③在对象期间保持一致。 5.对象或者类的整体行为(例如响应消息)的某些规则所不能适应的(对象或类的)()。

A.状况 B.情态 C.条件 D.问题 【答案】D 【解析】对象或者类的整体行为(例如响应消息)的某些规则所能适应的(对象或类的)状况、情况、条件、形式或生存周期阶段。 二、填空题 1.对象的服务可分为_____、_____。 【答案】外部服务;内部服务 2._____不同取值所构成的组合都可看作对象的一种新的状态。 【答案】对象的每个属性 3.如果在一个服务中包括了多项可独立定义的功能,则它是_____,应尝试把它分解为多个服务。 【答案】低内聚的 4._____应尽可能准确地反映该服务的职能。 【答案】服务名

软件工程导论期末考试试题和答案

1.软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__ 测试________、运行与维护阶段。 2.按软件的功能进行划分,软件可以划分为系统软件、支撑软件 和应用软件。 3.可行性研究主要集中在以下四个方面经济可行性、技术可行 性、法律可行性和抉择。 4.用户界面的可使用性是用户界面设计最重要的也是最基本的目标。 5.常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的___结构化设计 方法_________,以数据结构为基础构造模块的__jackson方法__________,以对象、类、继承和通信为基础的__面向对象设计方法__________。 6.__数据流图________和__数据字典___共同构成系统的逻辑模型。 7.软件测试的方法有__分析方法________和___非分析方法_______(即黑盒法)。 8.单元测试一般以___白盒_____________测试为主,___黑盒______测试为辅。 9.成本估计方法主要有__自底向上估计________、_自顶向下估计_________和算法模型估 计三种类型。 1.下列哪个阶段不属于软件生存周期的三大阶段( C )。 A、计划阶段 B、开发阶段 C、编码阶段 D、维护阶段 2.需求分析是(A )。 3.A、软件开发工作的基础B、软件生存周期的开始 4.C、由系统分析员单独完成的D、由用户自己单独完成的 5.原型化方法是软件开发中一类常用的方法,它与结构化方法相比较,更需要(B )。 6.A、明确的需求定义B、完整的生命周期 7.C、较长的开发时间D、熟练的开发人员 8.软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归 测试过程称为( A )。 9.A、改正性维护B、适应性维护 10.C、完善性维护D、预防性维护 11.一般说来,投入运行的软件系统中有错误(A )。

软件工程导论基础试题

一、填空 1、计算机软件不仅仅是程序,还应该有一整套(文档资料). 2、软件定义时期的最后一个工作阶段是(需求分析)阶段。 3、(快速原型)模型的基本特性是“快速”和“容易修改”。 4、信息流的类型主要包括(事务流)和(变换流)。 5、(判定表)适用于表示多重嵌套的条件选择。 6、我们通常采用的调试途径包括(蛮干法,回溯法和原因消除法)。 7、程序流程图中的箭头代表(控制流) 8、内聚程度较低的是(偶然)内聚。 9、软件工程方法学三要素(方法,工具,过程). 10、可行性分析至少应从(经济,技术,操作)三方面研究每种解法的可行性。 11、(可行性研究)的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否 能够开发,是否值得开发。

12、在大型数据处理系统的功能分析与设计中,同时进行数据分析和数据设计。数据 库的“概念设计”与“逻辑设计”分别对应于系统开发中的(总体设计)和(需求分析 )阶段,而数据库的物理与模块的(详细设计)相对应。 13、模块之间联系越紧密,其耦合性就越(高),模块的独立性就越(低) 。 14、要把数据流图转换成软件结构,必须首先研究数据流图的类型,一般可分为事务 流和变换流两类。 15、动态测试方法中,根据测试用例设计方法的不同,分为(白盒测试和黑盒测试)。 16、软件产品在交付使用前一般要经过以下四步测试:(单元测试,集成测试,确认测 试和系统测试).对一些关系重大的系统,交付后并不立即投入生产性运行,还要经过 (平行运行)阶段

17、驱动模块的作用是用来模拟被测试模块的(上级调用模块),它只完成接收测试数 据,并把这些测试数据传送给被测试的模块,并且接收测试模块的(结果) 并输出。 18、桩(存根)模块用来代替被测试模块(所调用的模块),它的作用是返回被测试模 块所需信息。 19、软件结构是以(模块)为基础而组成的一种控制层次结构。 20.软件维护的内容包括(改正性维护,适应性维护,完善性维护和预防性维护). 二、选择 1.需求规格说明书的作用不应该包括(D )。 A、软件设计的依据 B、用户与开发人员对软件要做什么的共同理解 C、软件验收的依据 D、软件可行性研究的依据 2.软件测试方法中的静态测试方法之一为(A )A.计算机辅助静态分析B.黑盒法C.路径覆盖D.边界值分析

软件工程导论试题集46172(1)

第一章:软件工程学概述 一.填空题 1. 计算机科学中的研究成果均可用于软件工程,但计算机科学更侧重于(原理和理论)、而 软件工程侧重于(如何建造一个软件系统) 2. 计算机程序及其说明程序的各种文档称为(文件)。计算任务的处理图像对象和处 理规则的描述称为(程序)。有关计算机程序功能、设计、编制、使用的文字或图形资 料称为(文档)。 3. 软件开发环境是相关一组(软件工具)的集合,它支持一定的软件开发方法或按照一定 的软件开发模型组织而成的。 4. CASE这一术语的英文是(Computer Aided Software Engineering)。 5. (平台集成)是指工具运行在相同的硬件/操作系统平台上。(数据集成)是指工具使 用共享数据模型来操作。(表示集成)是指工具提供相同的用户界面。 6. 根据支持的范围,CASE工具可分为(窄支持)、(较宽支持)和(一般支持)工具。 7. 软件危机的主要原因有(软件本身的特点)和(缺乏好的开发方法和手段)。 8. (增量)模型是一种非整体开发的模型。软件在该模型中是“逐渐”开发处理的, 开发出一部分,向用户展示一部分,可让用户及早看到部分软件,及早发现问题。或者先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。 9.结构化方法总得指导思想是(自顶而下逐步求精)。它的基本原则是功能的(分解)与(抽象)。它是软件工程中最早出现的开发方法,特别适用于数据处理领域的问题。 10. 面向对象开发方法包括(面向对象分析)、(面向对象设计)、(面向对象实现)、三部分。 11. 瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。它包括(可行性分析)、项目开发计划、(需求分析)、(概要设计) 、(详细设计)、_ (编码)、(测试)、(维护),它规定了由前至后、相互衔接的固定次序 ,如同瀑布流水,逐级下落。 12. 瀑布模型本质上是一种(线性)顺序模型。 13. 构造原型时,必须注意(功能性能)取舍,忽略一切暂时不关心的部分。 14. 属性指的是类中对象所具有的(性质(数据值))。不同对象的同一属性可以具有相同或不同的(属性值)。 15. 结构化方法和原型化方法是软件开发中常使用的两种方法,在实际的应用中,它们之间的关系表现为(相互补充)。 二.判断题 1. 瀑布模型的存在问题是缺乏灵活性。(√) 2. 软件是一种逻辑产品。(√) 3. 软件工程学科出现的主要原因是程序设计方法学的影响。(× ) 4. 有关计算机程序功能、设计、编制、使用的文字或图形资料称为文档。(√) 5. CASE开放式工作台或者提供控制集成机制,或者可剪裁,其数据集成或协议是独立的。(× ) 6. 在软件的开发与维护过程中,用来存储、更新、恢复和管理一个软件的多版本,它是版本控制工具。(√) 7. 平台集成是指工具运行在相同的硬件/操作系统平台上。(√) 8. 软件生存周期模型有多种,功能模型是软件生存周期模型。(× ) 9. 从结构化的瀑布模型看,在软件生命周期中得8个阶段中,详细设计阶段出错,对软件

软件工程导论第六章课后答案

计算机科学与技术 第六章习题答案 4、图6.18给出的程序流程图代表一个非结构化的程序,问: (1)为什么说它是非结构化的? (2)设计一个等价的结构化程序。 (3)在(2)题的设计中使用附加的标志变量flag了吗?若没有,再设计一个使用flag的程序;若用了,再设计一个不用flag的程序。 图6.18 一个非结构化程序 答:(1)图示程序的循环控制结构有两个出口,不符合结构程序的定义,因此是非结构化的程序。 (2)设计的等价结构化程序盒图如下所示:

(3)在第(2)题中没有使用标志变量flag,设计使用附加的标志变量flag,将上述程序改成等价的结构化程序,如下盒图所示: 7、某交易所规定给经纪人的手续费计算方法如下:总手续费等于基本手续费加上与交易中的每股价格和股数有关的附加手续费。如果交易总金额少于1000元,则等于手续费为交易金额的8.4%;如果交易总金额在1000元到10000元之间,则基本手续费为交易金额的5%,再加34元;如果交易总金额超过10000元,则基本手续费为交易金额的4%加上134元。当每股售价低于14元时,附加手续费为基本手续费的5%,除非买进、卖出的股数不是100的倍数,在这种情况下

附加手续费为基本手续费的9%。当每股售价在14元到25元之间时,附加手续费为基本手续费的2%,除非交易的股数不是100的倍数,在这种情况下附加手续费为基本手续费的6%。当每股售价超过25元时,如果交易的股数零散(即,不是100的倍数),则附加手续费为基本手续费的4%,否则附加手续费为基本手续费的1%。

要求: (1)用判定表表示手续费的计算方法。(2)用判定树表示手续费的计算方法。答:(1)用判定表表示手续费的计算方法如下所示: (2)用判定树表示手续费的计算方法如下所示:

软件工程导论课后习题答案

第一章 一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。 软件危机的典型表现: (1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 (2) 用户对已完成的软件不满意的现象时有发生。 (3) 软件产品的质量往往是靠不住的。(4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。 (6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。 软件危机出现的原因: (1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。 二、假设自己是一家软件公司的总工程师,当把图给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是 整体构架的错误。 三、什么是软件工程?它有哪些本质特征?怎样用软件工程消除软件危机? 1993年IEEE的定义:软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。 软件工程的本质特征: (1) 软件工程关注于大型程序(软件系统)的构造(2) 软件工程的中心课题是分解问题,控制复杂性(3) 软件是经 常变化的,开发过程中必须考虑软件将来可能的变化 (4) 开发软件的效率非常重要,因此,软件工程的一个重要课题就是,寻求开发与维护软件的更好更有效的方法和工具 (5) 和谐地合作是开发软件的关键(6) 软件必须有效地支持它的用户 (7) 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人(完成一些工作)消除软件危机的途径: (1) 对计算机软件有一个正确的认识(软件≠程序) (2) 必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目 (3) 推广使用在实践中总结出来的开发软件的成功技术和方法 (4) 开发和使用更好的软件工具 四、简述结构化范型和面向对象范型的要点,并分析他们的优缺点。 1. 传统方法学:也称为生命周期方法学或结构化范型。优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。 2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。 五、1-5 根据历史数据可以做出如下的假设: 对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=(Y-1960) 存储器的价格按下面公式描述的趋势逐年下降:P1=×(美分/位) 如果计算机字长为16位,则存储器价格下降的趋势为:P2=×(美元/字) 在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。

2019最新软件工程导论期末考试题库及答案

2019最新软件工程导论期末考试题库及答案 1.填空题 1.一般来说,可以从__一致性__、_完整性___、_现实性____和_有效性___四个方面验证软件需求的正确性。 2.IPO图是_输入、处理和输出图_的简称,它是美国IBM 公司发展完善起来的一种图形工具。 3.系统流程图是描述__物理模型__的传统工具,用图形符 号表达了系统中各种元素之间的_____信息流动_____情况。4.数据流图中的箭头表示数据流,椭圆或圆形表示数据处理,矩形表示数据的源点/终点。5.软件测试的步骤按顺序分别是:___单元测试_____、子系统测试、系统测试(子系统和系统测试通常称为集 成测试)、__确认测试__和_____系统测试(集成测试)____ 6.软件生命周期一般可分为_问题定义_、可行性研究、_需求分析_、设计编码、_测试_、运行与维护阶段。 7.可行性研究主要集中在以下四个方面_经济可行性_、__技术可行性____、__法律可行性___和抉择。 8.在结构化设计中,HIPO图应用在总体设计阶段,由IPO图和_层次图_两部分组成。 9.复杂问题的对象模型通常由下述五个层次组成:主题层、___类与对象_层、__结构___层、_属性_层和__服务_层。 10.实施精化设计的目标是基于模块的“高内聚低耦合” 的原则,提高模块的_独立性。 11.软件生命周期一般可分为___问题定义_、可行性研究、__需求分析__、概要设计__、详细设计、编码、__软件测试_、运行与维护阶段。 12.面向对象的数据存储管理模式分为__文件__、_关系数据库__和__面向对象数据库___三种。 13.单元测试一般以_白盒_测试为主,__黑盒__测试为辅。

软件工程导论(第五版)课后习题测验答案

《软件工程导论》课后习题答案 第一章软件工程概论 1-1 1.什么是软件危机? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面: (1)用户对开发出的软件很难满意。 (2)软件产品的质量往往靠不住。 (3)一般软件很难维护。 (4)软件生产效率很低。 (5)软件开发成本越来越大。 (6)软件成本与开发进度难以估计。 (7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。 2.软件危机有那些典型表现? (1)对软件开发成本和进度的估计常常很不准确。 (2) 用户对“已完成的”软件系统不满意的现象经常发生。 (3)软件产品的质量往往靠不住。 (4)软件常常是不可维护的。 (5)软件通常没有适当的文档资料。 (6) 软件成本在计算机系统总成本中所占的比例逐年上升。 (7) 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 3.为什么会产生软件危机? (1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。 (3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。 4.怎样克服软件危机? (1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。 总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。 1-3、

软件工程导论期末考试题

一、单项选择题 1.适合于面向对象方法学的软件生存周期模型是( B ) A.瀑布模型 B.喷泉模型 C.螺旋模型 D.增量模型 2.从实用角度看,数据规范化程度在大多数场合选用第( C )范式。 A. 1 B.2 C.3 D.5 3. 可行性分析研究的目的是( A )。 A.项目值得开发否 B.争取项目 C.开发项目 D.规划项目 4. 模块的内聚性最高的是 ( D ) A.逻辑内聚 B.时间内聚 C.偶然内聚 D.功能内聚 5.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做 ( B ) A. 软件工程 B. 软件危机 C. 软件周期 D. 软件产生 6. 需求分析阶段的任务是确定( D ) A.软件开发方法 B.软件开发工具 C.软件开发费 D.软件系统的功能 7. 完整的软件结构通常用( B )图来表示。 A. IPO 图 B. HIPO 图 C.PAD 图 D.DFD 图 8. 在白盒法技术测试用例的设计中( A )是最弱的覆盖标准。 A.语句 B.路径 C.条件组合 D.判定 9?对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。 A.结合 B.隐藏 C.封装 D.抽象 10. 在数据流图中,圆代表( C )。 A.源点 B.终点 C.加工 D.模块 11. 模块内聚度越高,说明模块内各成分彼此结合的程度越( B )。 A.松散 B.紧密 C.无法判断 D.相等 12. 软件测试方法中,黑盒、白盒测试法是常用的方法,其中黑盒测试主要用于测试( B )。 A.结构合理性 B.软件外部功能 C.程序正确性 D.程序内部逻辑 13. 面向对象开发方法中, ( C )是占主导地位的标准建模语言。 A.Booch 方法 B.Coad 方法 C.UML 语言 D.OMT 方法 14. 软件需求分析的主要任务是准确地定义出要开发的软件系统是( C ) A.如何做 B.怎么做 C.做什么 D.对谁做 15. 结构化程序设计的一种基本方法是( C ) A.筛选法 B.迭代法 C.逐步求精法 D.递归法 二、填空题 1. 目前使用最广泛的软件工 程学方法分别是传统方法学和(面向对象方法学 ) )和事务流。 文档 ) 。 ( 重复 )三种结构。 自顶向下 的集成测试方法,对软件结构中下层使 6. 软件维护包括 ( 改正性维护 )、适应性维护、完善性维护、预防性维护。 7. 面向对象方法学建模得到的三个基本子模型是 (对象建模 ) .动态模型、功能模型。 8. 复杂大型问题的对象模型通常由主题 2. 数据流图中信息流的类型有(变换流 3. 软件的定义是:软件 =程序+数据+ 4. 经典结构程序设计包括顺序、选择和 5. 集成测试时对软件结构中上层使用 用 ( 自底向上 ) 的集成测试方法。

软件工程导论》期末考试试题与答案

《软件工程导论》期末考试-试题与答案 一、填空题 1.软件工程中的结构化分析 SA 是一种面向________的分析方法。 2.软件模块独立性的两个定性度量标准是_________________。 3.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个________的过程。 4. ________和数据字典共同构成了系统的逻辑模型 5. ___________是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数据类,据此导出测试用例。二、单选 题 1.在软件危机中表现出来的软件质量差的问题,其原因是_______。A.软件 研发人员素质太差B.用户经常干预软件系统的研发工作C.没有软件质量标 准 D.软件开发人员不遵守软件质量标准2.在软件质量因素中,软件在异常条件下仍能运 行的能力成为软件的_____。A.安全性B.健壮性C.可用性D.可靠性 3.在下列测试技术中,______不属于黑盒测试技术。A.等价 划分B.边界值分析C.错误推测D.逻辑覆盖 4.软件工程方法是在实践中不断发展着的方法,而早期的软件工程方法主要是指______。A.原型化方法B.结构化方法C.功能化方法D.面向对象方法 5. ______是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是 隐蔽的,外界只能通过有限的接口与对象发生联系。A.多态 B.继承C.封装D.消息 6. Jackson 方法是在软件开发过程中常用的方法,使用 Jackson 方法时可以实现______。A.从数据结构导出程序结构B.从数据流图导出初始结构图C.从模块结构导出数据结构D.从模块结构导出程序结构 7.软件测试时为了________而执行程序的过程。A.纠正 错误B.发现错误 C.避免错误 D.证明错误 8.在软件系统中,一个模块应具有什么样的功能,这是由_____决定的。A.总体 设计B.需求分析C.详细设计D.程序设计 9.面向对象分析是对系统进行_________的一种方法。A.需求 分析B.程序设计C.设计评审D.测试验收 10.软件文档是软件工程实施中的重要部分,它不仅是软件开发各阶段的重要依据,而 且影响软件的_______。A.可理解 性B.可维护性C.可扩展性D.可 移植

软件工程导论复习试题库完整

a(1)在软件工程中,白盒测试法可用于测试程序的内部结构。此方法将程序看作是 A) 路径的集合 B)循环的集合C)目标的集合D)地址的集合 c(2)在下述哪一种测试中,测试程序的设计者必须接触到源程序 I.功能测试Ⅱ. 结构测试 A)均不须B)只有ⅠC)只有ⅡD)Ⅰ和Ⅱ a(3)检查软件产品是否符合需求定义的过程称为 A)确认测试B)集成测试C)验证测试D)验收测试 c(4)下述陈述中,哪一个不是软件健壮性的度量指标? A)失败后重新启动所需的时间B)引起失败的时间所占的百分比 D)失败前的平均工作时间D)在一次失败中数据恶化的概率 b(5)对软件是否能达到用户所期望的要求的测试称为 A) 集成测试B) 有效性测试C) 系统测试D) 验收测试 a(6)在面向数据流的软件设计方法中,一般将信息流分为 A)变换流和事务流B)变换流和控制流 C)事务流和控制流D)数据流和控制流 d(7)软件需求说明书是软件需求分析阶段的重要文件,下述哪个(些)是其应包含的内容 I.数据描述Ⅲ. 模块描述 II.功能描述Ⅳ. 性能描述 A)ⅡB)Ⅲ和ⅣC)Ⅰ、Ⅱ和ⅢD)Ⅰ、Ⅱ和Ⅳ (8)软件测试一般分为三类,即 I.静态测试Ⅱ. 动态测试Ⅲ. 正确性测试 设计测试用例对程序进行测试,应属于 A)ⅠB)ⅡC)Ⅰ和ⅡD)Ⅲ (9)模块独立性是由内聚性和耦合性来度量的,其中内聚性是度量____,耦合性是度量____。 A)模块间联系程度B)模块的功能强度 C)信息隐蔽程度D)模块的复杂程度 (10)软件设计中一般将用到图形工具,下述哪种(些)工具可用作设计的图形工具 I.结构图Ⅱ. 实体关系图Ⅲ. IPO图 II.Ⅳ. 流程图Ⅴ. N-S图 A)Ⅰ和ⅡB)Ⅲ和ⅣC)Ⅰ、Ⅲ、Ⅳ和ⅤD)全部 A (2)C (3)A (4)C (5) B (6)A (7)D (8)B (10)C (11)试判断下列论述中哪个(些)是正确的 I.软件系统中所有的信息流都可以认为是变换流 II.软件系统中所有的信息流都可以认为是事务流 III.事务分析和变换分析的设计步骤基本类似 A)ⅠB)ⅡC)ⅢD)Ⅰ和Ⅲ (12)软件的有效性测试是验证软件的运行是否达到用户的期望,用户的期望应体现于A)详细设计报告B)软件需求说明书 C)总体设计报告D)有效性测试要求 (13)软件设计中的软件过程其主要描述的是 A)模块间关系B)模块操作细节 C)模块控制方法D)模块类型 (14)软件测试是软件件开发过程的重要阶段,是软件质量保证的重要手段,下列哪个(些)是软件测试的任务?

软件工程导论张海蕃 课后习题答案

第一章 1-1 什么是软件危机 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 1-3 什么是软件工程 是指导计算机软件开发和维护的一门工程学科。 1-4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。 目前使用得最广泛的软件工程方法学(2 种): 1. 传统方法学:也称为生命周期方法学或结构化范型。优点:把软件生命周期划分 成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。 2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了 软件的开发和维护工作;促进了软件重用。 1-6 什么是软件过程它与软件工程方法学有何关系 z软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤 z软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型 1-7什么是软件生命周期模型,试比较瀑布模型,快速原型模型,增量模型,和螺旋模型的优缺点,说明每种模型的适用范围。 软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。 瀑布模型的优点:1.可强迫开发人员采用规范的方法;2.严格规定了每个阶段必须提交的文档;3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 瀑布模型的缺点:1.在软件开发初期,指明用户全部需求是困难的;2.需求确定后,经过一段时间才得到软件最初版本;3.完全依赖规格说明,导致不能满足用户需求。 适用中小型项目。 快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少快速原型模型的优点:不适用大型软件的开发适用于小型项目。 增量模型的优点:1短期内可以交付满足部分用户需求的功能产品;2逐步增加功能可以让用户去适应新产品;3开放式的软件可维护性比较好;4开始第一构件前,已经完成需求说明。 增量模型的缺点:1对现有产品功能造成破坏;2意义上的矛盾适用于中型软件的开发

软件工程导论期末试题

软件工程导论期末考试试题 一.选择(20分) 1、瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和( C)。 A、详细计划 B、可行性分析 C、运行阶段 D、测试与排错 2、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大(C )。 A、详细设计阶段 B、概要设计阶段 C、需求分析阶段 D、测试和运行阶段 3、在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标(A )。 A、需求分析阶段 B、详细设计阶段 C、概要设计阶段 D、可行性研究阶段 4、软件工程的出现主要是由于(C )。 A.程序设计方法学的影响 B.其它工程科学的影响 C. 软件危机的出现 D.计算机的发展 5、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是(C ) A、硬件环境 B、软件开发的环境 C、软件开发工具和软件开发的环境 D、开发人员的素质 6、软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为 ( B) A、相互排斥 B、相互补充 C、独立使用 D、交替使用 7、UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C ) A、基于瀑布模型的结构化方法 B、基于需求动态定义的原型化方法 C、基于对象的面向对象的方法 D、基于数据的数据流开发方法

8、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B ) A、结构化方法 B、原型化方法 C、面向对象的方法 D、控制流方法 9、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的(B ) A、控制流 B、数据流 C、程序流 D、指令流 10、软件开发的结构化生命周期方法将软件生命周期划分成(A ) A、计划阶段、开发阶段、运行阶段 B、计划阶段、编程阶段、测试阶段 C、总体设计、详细设计、编程调试 D、需求分析、功能定义、系统设计 二.填空(20分) 21.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素 表达了系统中各种元素之间的(信息流动)情况。 22.成本效益分析的目的是从(经济)角度评价开发一个项目是否可行。 23.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先 策略和(宽度优先策略) 。 24.独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图 来看,一条独立路径是至少包含有一条(在其他独立路径中未有过)的边的路径。 25.汇编语言是面向(机器) 的,可以完成高级语言无法完成的特殊功能,如与外部设备之间的一些接口工作。 26.在JSP方法中解决结构冲突的具体办法是(中间数据结构或中间文件)。 27.详细设计的任务是确定每个模块的内部特性,即模块的算法、(使用的数据)。 28.所有软件维护申请报告要按规定方式提出,该报告也称( 软件问题)报告。 29.有两类维护技术:在开发阶段使用来减少错误、提高软件可维护性的面向 维护的技术;在维护阶段用来提高维护的效率和质量的(维护支援)技术。 30.科学工程计算需要大量的标准库函数,以便处理复杂的数值计算,可供选 择的语言有:(FORTRAN语言)、PASCAL语言、C语言和PL/1语言。三.判断(10分)

软件工程导论试题

软件工程导论试题 一.选择 1、瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和(C)。 A、详细计划 B、可行性分析 C、运行阶段 D、测试与排错 2、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大(C)。 A、详细设计阶段 B、概要设计阶段 C、需求分析阶段 D、测试和运行阶段 3、在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标(A)。 A、需求分析阶段 B、详细设计阶段 C、概要设计阶段 D、可行性研究阶段 4、软件工程的出现主要是由于(C)。 A.程序设计方法学的影响 B.其它工程科学的影响 C.软件危机的出现 D.计算机的发展 5、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是(C) A、硬件环境 B、软件开发的环境 C、软件开发工具和软件开发的环境 D、开发人员的素质 6、软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为(B) A、相互排斥 B、相互补充 C、独立使用 D、交替使用 7、UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C) A、基于瀑布模型的结构化方法 B、基于需求动态定义的原型化方法 C、基于对象的面向对象的方法 D、基于数据的数据流开发方法 8、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B) A、结构化方法 B、原型化方法 C、面向对象的方法 D、控制流方法 9、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的(B)A、控制流B、数据流C、程序流D、指令流 10、软件开发的结构化生命周期方法将软件生命周期划分成(A) A、计划阶段、开发阶段、运行阶段 B、计划阶段、编程阶段、测试阶段 C、总体设计、详细设计、编程调试 D、需求分析、功能定义、系统设计11、软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A) A、瀑布模型 B、对象模型 C、螺旋模型 D、层次模型 12、软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(C) A、分析阶段 B、设计阶段 C、编码阶段 D、测试阶段 二.填空 21.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的(信息流动)情况。 [解析]系统流程图是描述物理系统的传统工具,用图形符号表示系统中的各个元素,如人工处理、数据处理、数据库、文件、设备等,表达了元素之间的信息流动的情况。 22.成本效益分析的目的是从(经济)角度评价开发一个项目是否可行。 [解析]成本效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡,其目的是从经济角度评价开发一个新的软件项目是否可行。 23.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和(宽度优先策略)。 [解析]渐增式测试法有自顶向下结合和自底向上结合两种组装模块的方法,其中自顶向下集成是构造程序结构的一种增量式方式,不需要编写驱动模块,只需要编写桩模块。它从主控模块开始,按照软件的控制层次结构,以深度优先或宽度优先的策略,逐步把各个模块集成在一起。 24.独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条(在其他独立路径中未有过)的边的路径。 [解析]在基本路径测试中,以详细设计或源程序为基础,导出控制流程图的拓扑结构——程序图,在计算了程序图的环路复杂性之后,确定只包含独立路径的基本路径图,其中独立路径是包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径。 25.汇编语言是面向(机器)的,可以完成高级语言无法完成的特殊功能,如与外部设备之间的一些接口工作。 [解析]汇编语言属于低级语言,是一种面向机器的语言,它与高级语言相比有许多优越性:如操作灵活,可以直接作用到硬件的最下层,完成与外部设备的接口工作等,是能够利用计算机硬件特性直接控制硬件设备的唯一语言。 26.在JSP方法中解决结构冲突的具体办法是(中间数据结构或中间文件)。 [解析]JSP方法是面向数据结构的设计方法。它定义了一组以数据结构为指导的映射过程,根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,在JSP方法中解决结构冲突的具体办法是引入中间数据结构或中间文件,将冲突部分分隔开来,建立多个程序结构,再利用中间文件把它们联系起来,构成一个系统的整体。 27.详细设计的任务是确定每个模块的内部特性,即模块的算法、(使用的数据)。 [解析]详细设计的基本任务是为每个模块进行详细的算法设计,为模块内的数据结构进行设计,确定每个模块的内部特性,包括模块的算法和使用的数据。对数据库进行物理设计等。 28.所有软件维护申请报告要按规定方式提出,该报告也称(软件问题)报告。 [解析]在软件维护的流程中,第一步就是制定维护申请报告,也称为软件问题报告,它是维护阶段的一种文档,由申请维护的用户填写。

(完整word版)软件工程导论(第6版)

第一章、软件工程学概述 软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 软件危机包含下述两个方面的问题:1.如何开发软件,以满足对软件日益增长的需求。 2.如何维护数量不断膨胀的已有软件。 具体的说,软件危机主要有以下一些典型表现:1.对软件开发成本的进度的估计常常很不准确。 2.用户对“已完成的”软件系统不满意的现象经常发生 3.软件产品的质量往往靠不住。 4.软件常常是不可维护的。 5.软件通常没有适当的文档材料。 6.软件成本在计算机系统总成本中所占的比例逐年上升。 7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 软件生命周期:一个软件从定义、开发、使用和维护,知道最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。 软件配置:程序、文档和数据。 软件工程学的一个重要的目标:就是提高软件的可维护性,减少软件维护的代价。 软件:是程序、数据及相关文档的集合。 程序:是能够完成预定功能和性能的可执行的指令序列。 数据:是使程序能够适当地处理信息的数据结构。 文档:是开发、使用和维护程序所需要的图文资料。 软件工程:指导计算机软件开发和维护的一门工程学科。 软件工程具有下属的本质特性:1.软件工程关注于大型程序的构造。2.软件工程的中心课题是控制复杂性。3.软件经常变化。4.开发软件的效率非常重要。5.和谐地合作是开发软件的关键。6.软件必须有效地支持它的用户。7.在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。 软件工程的7条基本原理:1.用分阶段的生命周期计划严格管理。2.坚持进行阶段评审。3.实行严格的产品控制4.采用现代程序设计技术。5.结构应能清楚的审查。6.开发小组的人员应该少而精。7.承认不断改进软件工程实践的必要性。软件工程:包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。 通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为泛型。 软件工程方法学(包括传统方法学、面向对象方法学)包含三个要素:方法、工具和过程。 方法:是完成软件开发的各项任务的技术方法,回答“怎样做”的问题。 工具:是为运用方法而提供的自动的或半自动的软件工程支撑环境。 工程:是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 面向对象方法学:把数据和行为看成是同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。 面向对象方法学具有下述四个要点:1.把对象作为融合了数据及在数据上的操作行为的统一的软件构件。 2.把所有对象都划分成类。 3.按照父类与子类的关系,把若干个相关类组成一个层次结构的系统。 4.对象彼此间仅能通过发送消息互相联系。 面向对象方法学的优点:降低了软件产品的复杂性,提高了软件的可理解性,简化了软件的开发和维护工作。 软件生命周期:软件定义、软件开发和运行维护。软件定义:问题定义、可行性研究和需求分析。软件开发:总体设计,详细设计,编码和单元测试,综合测试。 1.问题定义:问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”。 2.可行性研究:这个阶段回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?” 3.需求分析:确定目标系统必须具备哪些功能。 4.总体设计:这个阶段必须回答的关键问题是:“概括地说,应该怎样实现目标系统?”总体设计又称为概要设计。 5.详细设计:这个阶段应回答的关键问题是:“应该怎样具体地实现这个系统呢?” 6.编码和单元测试:这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。 7.综合测试:这个阶段的关键任务是通过各种类型的测试使软件达到预定的要求。 8.软件维护:关键任务是通过各种必要的维护活动使系统持久地满足用户的需要。

《软件工程导论》期末考试试题和答案2

得分评卷人 一、填空题(每空1分,共20分) 1.软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__ 测试________、运行与维护阶段。 2.按软件的功能进行划分,软件可以划分为系统软件、支撑软件 和应用软件。 3.可行性研究主要集中在以下四个方面经济可行性、技术可行 性、法律可行性和抉择。 4.用户界面的可使用性是用户界面设计最重要的也是最基本的目标。 5.常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的___结构化设计 方法_________,以数据结构为基础构造模块的__jackson方法__________,以对象、类、继承和通信为基础的__面向对象设计方法__________。 6.__数据流图________和__数据字典___共同构成系统的逻辑模型。 7.软件测试的方法有__分析方法________和___非分析方法_______(即黑盒法)。 8.单元测试一般以___白盒_____________测试为主,___黑盒______测试为辅。 9.成本估计方法主要有__自底向上估计________、_自顶向下估计_________和算法模型估 计三种类型。 得分评卷人 二、单项选择题(每小题2分,共10分) 1.下列哪个阶段不属于软件生存周期的三大阶段( C )。 A、计划阶段 B、开发阶段 C、编码阶段 D、维护阶段 2.需求分析是(A )。 A、软件开发工作的基础 B、软件生存周期的开始 C、由系统分析员单独完成的 D、由用户自己单独完成的 3.原型化方法是软件开发中一类常用的方法,它与结构化方法相比较,更需要(B )。 A、明确的需求定义 B、完整的生命周期 C、较长的开发时间 D、熟练的开发人员

相关文档
最新文档