当前位置:文档之家› 软件工程习题解答 第一章 概述

软件工程习题解答 第一章 概述

软件工程习题解答 第一章 概述
软件工程习题解答 第一章 概述

软件工程习题解答

第一章概述

1.软件产品的特性是什么?

a.软件产品是一种逻辑产品。

b.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成后,复制就

产生了大量软件产品。

c.软件产品不会用坏,不存在磨损、消耗问题。

d.软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且碰分是"定做"的。

e.软件费用不断增加,成本相当昂贵。

2.软件产品有几个阶段?各有何特征?

阶段 A.程序设计时代(1946-1956) B.程序系统时代(1956-1968) C.软件工程时代(1968-今)

生产方式个体手工劳动小集团合作生产工程化的生产

工具机器语言、汇编高级语言数据库、开发工具、开发环境、

网络、分布式、面向对象技术开发方法追求编和技巧,追求程序运

行效率

个人技巧,开始提出结构化方法

硬件特征价格贵、存储容量小、运行

可靠性差速度、容量、工作可靠性有明显提

高,价格降低,销售有爆炸性增长

向超高速、大容量、微型化以

及网络化方

软件特征只有程序、程序设计概念,

不重视程序设计方法程序员数量猛增,已意识到软件开

发的重要性,开发技术没有新的突

破,大量软件开发的需求已提出,

开发人员的素质和工程兵的开发技

术不适应规模大、结构复杂的软件

开发,产生了尖锐矛盾,导致软件

危机的产生

开发技术有很大进步,但未能

获得突破性进展,软件价格不

断上升,没有完全摆脱软件危

3.什么是软件危机?其产生的原因是什么?

软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。

在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。主要表现在以下几个方面:

a.经费预算经常突破,完成时间一再拖延。

b.开发的软件不通满足用户要求。

c.开发的软件可维护性差。

d. 开发的软件可靠性差。

软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:

a.软件的规模越来越大,结构越来越复杂。

b.软件开发管理困难而复杂。

c.软件开发费用不断增加。

d.软件开发技术落后。

e.生产方式落后。

f.开发工具落后,生产率提高缓慢。

4.什么是软件工程?它的目标和内容是什么?

软件工程:用科学知识和技术原理来定义、开发、维护软件的一门学科。

软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:

a.付出较低的开发成本;

b.面到要求的软件功能;

c.取得较好的软件性能;

d.开发的软件易于移植;

e.需要较低的维护费用;

f.能按时完成开发任务,及时交付使用;

g.开发的软件可靠性高;

软件工程的内容:

1)软件开发技术:软件开发方法、软件开发过程、软件开发工具和环境。

2)软件开发管理:软件管理学、软件经济学、软件心理学。

5.软件工程面临的问题是什么?

软件工程面临的问题:

a.软件费用。

b.软件可靠性。

c.软件维护。

d.软件生产率。

e.软件重用。

6.什么是软件生存周期?它有哪几个活动?

软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。

软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等.

7.什么是软件生存周期模型?有哪些主要模型?

软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。(模型:是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。)

软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等

9.什么是软件开发的方法?有哪些主要方法?

软件开发的方法:是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。

主要方法:结构方法、Jackson方法、维也纳开发方法(VDM)、面向对象的开发方法。

第二章可行性研究

1.可行性研究的任务是什么?

a.技术可行性:

考虑的因素(1).开发的风险(2)资源的有效性(3)技术(4)开发人员在主段技术可行性时,一旦估计错误,将会出现灾难性后果。

b.经济可行性。

c.社会可行性。

2、可行性研究有哪些步骤?

a.确定项目规模和目标

b.研究正在运行的系统

c.建立新系统的高层逻辑模型

d.导出和评价各种方案

e.推荐可行的方案

f.编写可行性研究报告

3、可行性研究报告有哪些就要内容?

a.引言

b.可行性研究前提

c.对现有系统的分析

d.所建议系统的技术可行性分析

e.所建议系统的经济可行性分析

f.社会因素可行性分析

g.其他可供选择方案

h.结论意见

4.成本---效益分析可用哪些指标进行度量?

有形效益度量:

a.货币的时间价值

b.投资回收期

c.纯收入

无形效益:主要从性质上、心理上进行衡量,很难直接进行量的比较。

通常以有形效益度量作为成本---效益分析的度量。

5.项目开发计划有哪些内容?

a.项目概述

b.实施计划

c.人员组织及分工

d.交付期限

第三章需求分析

1.什么是需求分析?需求分析阶段的基本任务是什么?

需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。

需求分析阶段的基本任务是:

(1) 问题识别:双方对问题的综合需求:a.功能需求b.性能需求c.环境需求d.用户界面需求.

(2) 分析与综合,导出软件的逻辑模型.

(3) 编写文档

2.什么是结构化分析方法?该方法使用什么描述工具?

结构化分析方法:是面向数据汉进行需求分析的方法。

描述工具:a、数据流图b、数据字典c、描述加工逻辑的结构化语言、判定表、判定树。

3.结构化分析方法通过哪些步骤来实现?

结构化分析方法步骤:

a.了解当前系统的工作流程,获得当前系统的物理模型.

b.抽象出当前系统的逻辑模型.

c.建立上标系统的逻辑模型.

d.作进一步补充和优化.

4.什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?

数据流图:简称DFD,是SA(结构化分析)方法中用于表示系统逻辑模型的一种工具,是一种功能模型。

作用:它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能.

基本符号有四种:

→,箭头,表示数据流; ○,圆或椭圆,表示加工; =,双杠,表示数据存储;□,方框,表示数据的源点或终点.

5.画数据流图应该注意什么事项?

画数据流图注意事项:

a.命名.不论是数据流\数据存储还是加工,合适的命名使人们易于理解基含义.

b.画数据流而不是控制流.

c.一般不画物质流.

d.每个加工到少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果.

e.编号.

f.父图与子图的平衡.

g.局部数据存储.

h.提高数据流图的易理解性.

6.什么是字据字典?其作用是什么?它有哪些条目?

字据字典:简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的\无二义性的说明方式为系统的分析\设计及维护提供了有关元素的一致的定义和详细的描述.

作用:1)为系统的分析\设计及维护提供了有关元素的一致的定义和详细的描述.

2)为分析人员查找数据流图中有关名字的详细定义而服务的.

3)它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分.

条目:数据流、数据项、数据存储、基本加工。

7.描述加工逻辑有哪些工具?

a,结构化语言b,判定表c.判定树

8.什么是IDEF方法?IDEF0方法有什么特点?

IDEF方法:是美国空军在1981年针对集成化计算机辅助制造(Integrated Computer Aided Manufacturing,简称ICAM)工程项目中用于进行复杂系统分析和设计的方法,是在结构化分析与设计技术的基础上提出来的。

IDEF是ICAM Definition的缩写。

IDEF0方法特点:

a.采用方框和箭头等简单的图形符号描述系统的活动和数据流,描述活动所受到的约束及实现机制。

b.采用严格的自顶向下、逐层分解的方式建立系统功能模型。

9、简述SA方法的优缺点。

优点:

1)公认的、有成效的、技术成熟、使用广泛的一种方法,比较适合于开发数据处理类型软件的需求分析。

2)该方法利用图形等半形式化工具表达需求,简明、易读,也易于使用,为后一阶段的设计、测试、评价提供了有利条件。

缺点:

1)传统的SA方法主要用于数据处理方面的问题,主要工具DFD体现了系统"做什么"的功能,但它仅是一

个静态模型,没有反映处理的顺序,即控制流程。因此,不适合描述实时控制系统。

2)SA方法在使用DFD在分析与描述"数据要求"方面是有局限的。

3) DFD不适合描述人机界面系统的要求。

4)为了更精确地描述软件包需求,提高软件系统的可靠性、安全性,也便于实现自动化,SA方法可与形式方法结合起来。

10.某银行的计算机储蓄系统功能是:将储户填写的存款单或取款单输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并打印出存款单给储户;如果是取款,系统计算清单储户。请用DFD和IDEF0描绘该功能的需求,并建立相应的数据字典。

(1)数据流条目:

数据流名称:存款单

别名:无

简述:储户存款时填写的项目

来源:储户

去向:记帐

数据流量:未知

组成:姓名+住址+存款类型+存款日期+利率

数据流名称:取款单

别名:无

简述:储户取款时填写的项目

来源:储户

去向:统计

数据流量:未知

组成:姓名+住址+取款类型+取款日期+利率

数据流名称:清单

别名:无

简述:储户取款后得到的项目

来源:记录

去向:储户

数据流量:未知

组成:姓名+住址+取款类型+取款日期+利率+余额

(2)数据存储条目:

数据存储名称:账单

别名:无

简述:存放储户信息及其账目

组成:姓名+住址+余额+存款类型+最后修改日期+利率

组织方式:未知

查询要求:能立即查询

(3)数据项条目:

未知

(4)加工条目:

加工名:分类检查

编号:无

激发条件:接收到存/取款单

优先级:优先

输入:存/取款单

输出:存/取款单

加工逻辑:IF 存款单THEN 把存款单输出到统计

ELSE

把取款单输出到统计

ENDIF

加工名:统计

编号:无

激发条件:取款单

优先级:无

输入:取款单

输出:清单

加工逻辑:根据账单检查此储户是否存在,不存在输出错误{

IF 取款数<余额THEN 余额=余额-取款数输出清单到储户,输出现金到储户

ELSE

输出错误清单到储户

ENDIF

}

加工名:记录

编号:无

激发条件:存款单

优先级:无

输入:存款单

输出:存款单

加工逻辑:根据账单检查此储户是否存在,不存在则建立此储户{

余额=余额+存款数

输出存款单到储户

}

11.某图书管理系统工程有以下功能:

(1)借书:输入读者借书证。系统首先检查借书证是否有效,对于第一次借书的读者,在借书文件建立档案。否则,查阅借书文件,检查该读者所借图书是否超过10本,若已达10本,拒借,未达10本,办理借书(检查库存、修改库存目录并将读者借书情况登入借书文件).

(2)还书:从借书文件中读出与读者有关的记录,查阅所借日期,如果超期(3个月)作罚款处理。否则,修改库存目录与借书文件。

(3)查询:可通过借书文件、库存目录文件查询读者情况、图书借阅情况及库存情况,打印各种统计表。请就以上系统功能画出分层的DFD图,并建立重要条目的数据字典。

12.某厂对部分职工重新分配工作的政策是:

年龄在伙岁以下者,初中文化程度脱产学习。高中文化程度当电工;年龄在20岁到40岁之间者,中学中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员。年龄在40岁以上者,中学文化程度当材料员,大学文化程序当技术员。请用结构化语言、判定表或判定树描述上述问题的加工逻辑。

(1)结构化语言:

根据职工年龄和文化程序:

REPEAT

If 年龄<=20

If 初中文化 Then 脱产学习 endif

else if 高中文化 Then 电工 endif

endif

If 20<年龄<40

If 中学文化

If 男性 Then 钳工

Else

车工

Endif

else if 大学文化 Then 技术员endif

endif

endif

If 年龄>=40

If 中学文化 Then 材料员

else if 大学文化 Then 技术员endif

endif

endif

Until 没有剩余未分配员工

判定表

1 2 3 4 5 6 7 8 9 10 11

年龄 C C D D D D D E E E

文化G H H G G H I G H I

性别-- -- M M F F -- -- -- --

脱产学习√

电工√

钳工√√

车工√√

技术员 √ √ 材料员

√ √

条件取值表

条件名 取值 符号 取值数 年龄

<=20 C M1=3

>20,<40 D >=40 E 文化程度

中学 G M2=3

高中 H 大学 I 性别

男 M M3=2

F

附加题:

1、自学考试报名过程中有个“记录报名单”的加工。该加工主要是根据报名表(姓名、 性别、身份证号、课程名)和开考课程(课程名、开考时间)、经校核,编号、填写、输出准考证给报名者,同时记录到考生名册中(准考证号、姓名、课程)。请绘制该加工的DFD 图,并写出数据词典中的数据流条目。 答:

2、“决定比赛名单”这个加工,根据“运动员名单”和“比赛项目”产生 “项目参加者”,如下图所示,运

动员名单要包括所在队名,运动员编号号,运动员姓名,及参加的所有项目。请写出这三个数据流条目。

答:

运动员名单=队名+运动员号+姓名+{项目}

项目=项目名

项目参加者=项目名+{运动员号}

3、某旅馆的电话服务如下:

可以拨分机号和外线号码。分机号是从7201至7299。外线号码先拨9,然后是市话号码或长话号码。长话号码是以区号和市话号码组成。区号是从100到300中任意的数字串。市话号码是以局号和分局号组成。局号可以是455,466,888,552中任意一个号码。分局号是任意长度为4的数字串。

要求:写出在数据字典中,电话号码的数据条目的定义(即组成)。

答:

电话号码=分机号|外线号码

分机号=7201 (7299)

外线号码=9+[市话号码|长话号码]

长话号码=区号+市话号码

区号=100 (300)

市话号码=局号+分局号

局号=[455|466|888|552]

分局号=4{数字}4

第四章概要设计

1.什么是软件概要设计?该阶段的基本任务是什么?

软件概要设计:在需求分析的基础上通过抽象和分解将系统分解成模块,确定系统功能是实现,即把软件需求转换为软件包表示的过程。

基本任务:

(1)设计软件系统结构(简称软件结构)

a.采用某种设计方法,将一个复杂的系统按功能划分成模块(划分)

b.确定模块的功能。(功能)

c.确定模块之间的调用关系。(调用)

d.确定模块之间的接口,即模块之间传递的信息。(接口)

e.评价模块结构的质量。(质量)

(2)数据结构及数据库设计

a.数据结构设计

b.数据库设计:(概念设计、逻辑设计、物理设计)

(3)编写概要设计文档(文档主要有:概要设计说明书、数据库设计说明书、用户手册、修订测试计划)

(4)评审

2.软件设计的基本原理包括哪些内容?

软件设计的基本原理:

(1)模块化(四个属性:接口、功能、逻辑、状态)

(2)抽象

(3)信息隐蔽

(4)模块独立性(两个定性的度量标准:耦合性与内聚性)

3.衡量模块独立性的两个标准是什么?它们各表示什么含义?

两个定性的度量标准:耦合与内聚性

耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。

内聚性:也称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。模块内元素联系越紧密,内聚性越高。

4.模块间的耦合性有哪几种?它们各表示什么含义?

耦合性有六种:无直接耦合、数据耦合、标记耦合、控制耦合、公共耦合、内容耦合

无直接耦合:两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。(无直接关系)

数据耦合:指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。(数据值)

标记耦合:指两个模块之间传递的是数据结构。(数据结构)

控制耦合:指控制模块调用另一个模块时,传递的是控制变量,被调用块通过该控制变量的值有选择地执行块内某一功能(控制变量)

公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合。(一个公式数据环境)

内容耦合:一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部(内部数据)

5.模块的内聚性有哪几种?各表示什么含义?

模块间的内聚性有6种:偶然内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚、功能内聚。

偶然内聚:一个模块内的各处理元素之间没有任何联系。

逻辑内聚:模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。

时间内聚:把需要同时执行的动作组合在一起。

通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或产生相同的输出数据。

顺序内聚:一个模块中各处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出是下一功能元素的输入。

功能内聚:最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。

6.什么是软件结构?简述软件结构设计优化准则。

软件结构:软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制体系。

软件结构设计优化准则:

a.划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性,以此为原则优化初始的软件结构。

b.一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近

c.软件的深度、宽度、扇入、扇出应适当。

D.模块的大小要适中。

E.模块的控制范围模块的接口要简单、清晰、含义明确,便于理解,易于实现、测试与维护。

7.什么是模块的影响范围?什么是模块的控制范围?它们之间应该建立什么关系?

模块的影响范围:受该模块内的一个判定影响的所有模块的集合。

模块的控制范围:模块本身及其所有下属模块(直接或间接从属于它的模块)的集合。

一个模块的影响范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近。

8.什么是"变换流"?什么是"事务流"?试将相应形式的数据流图转换成软件结构图。

变换流由输入、变换(或处理)、输出三部分组成。某个加工将它的输入流分离成许多发散

的数据流,形成许多加工路径,并根据输入选择其中一个路径来执行这种特征的DFD称为事物流。

9.试述"变换分析","事务分析"的设计步骤。

变换分析:

a.确定DFD中的变换中心。

b.设计软件结构的顶层和第一层-------变换结构。

c.设计中下层模块。(输入模块下属模块的设计,输出模块下属模块的设计,变换模块下属模块的设计,设计的优化)

事务分析:

a.确定DFD中的事务中心和加工路径。

b.设计软件结构的顶层和第一层------事务结构。(接收、发送给支)

c.事务结构中、下层模块的设计、优化工作同变换结构。

附加:

2、已知模块C中的一个判定影响到模块B,如图所示,它违反了SD的设计原则。试问: 可以采用哪些手段对结构图作改进,请说明改进办法并画出改进的结构图。

答:

4、高考录取统分子系统有如下功能:

(1) 计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件;

(2) 计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。试根据要求画出该系统的数据流程图,并将其转换为软件结构图。

答:

(1) 数据流图:

(2) 软件结构图:

5、图书馆的预定图书子系统有如下功能:

(1) 由供书部门提供书目给订购组。

(2) 订书组从各单位取得要订的书目。

(3) 根据供书目录和订书书目产生订书文档留底。

(4) 将订书信息(包括数目,数量等)反馈给供书单位。

(5) 将未订书目通知订书者。

(6) 对于重复订购的书目由系统自动检查,并把结果反馈给订书者。

试根据要求画出该问题的数据流程图,并把其转换为软件结构图。

答:

(1) 数据流图:

(2) 软件结构图:

6、在结构化设计过程中,要将数据流图(DFD)映射成系统结构图(SC),分别画出变换型数据流和事物型数据流的映射方式。

答:

变换型事务型

第五章详细设计

1.详细设计的基本任务是什么?有哪几种描述方法?

详细设计的基本任务:

(1)为每个模块进行详细的算法设计。

(2)为每个模块内的数据结构进行设计。

(3)对数据库进行设计,即确定数据库的物理结构。

(4)其他设计:

a.代码设计

b.输入/输出格式设计。

c.人机对话设计。

(5)编写详细设计说明书。

(6)评审。

描述方法(三种):

a.程序流程图

b.PAD图

C.过程设计语言

2.结构化程序设计基本要求要点是什么?

a.采用自顶向下、逐步求精的程序设计方法

b.使用三种基本程序控制结构构造程序

1).用顺序方式对过程分解,确定各部分的执行顺序。

2).用选择方式对过程分解,确定某个部分的执行条件。

3).用循环方式对过程分解,确定某个部分重复的开始和结束的条件。

c.主程序员组的组织形式。

3.简述Jackson 方法的设计步骤。

Jsp 方法一般通过以下5个步骤来完成设计:

a.分析并确定输入/出数据的逻辑结构,并用Jackson 结构图表示这些数据结构。

b.找出输入数据结构和输出数据结构中有对应关系的数据单元。

c.按一定的规则由输入、输出的数据结构导出程序结构。

d.列出基本操作与条件,并把它们分配到程序结构图的适当位置。

e.用伪码写出程序。

4.请使用流程图、PAD图各PDL语言描述下列程序的算法。

(1)在数据A(1)-A(10)中求最大数和次大数。

(2)输入三个正整数作为边长、判断该三条边构成的三角形是等边、等腰或一般三角形。答:

(1)

1)流程图:

2)PAD图

3)PDL语言

定义n1=n2=0

输入A(1).......A(10)

n1=n2=A(1)

while i>10

if A(i)>=n1

n2=n1

n1=A(i)

end while

5.用PAD图描述下面问题的控制结构。

有一个表A(1)、A(2)、........A(n),按递增顺序排列。给定一个Keyw值,在表中用折半查找。若找到将表位置i送入x,否则将零送到x,同时将Key值插入表中。

算法:1)置初值H=1(表头),T=N(表尾)。

2)置i=[(H+T)/2](取整).

3)若Key=A(i),则找到,i送到x;若Key>A(i),则Key在表的后半部分,i+1送入H;

若KeyT为止。

4)查不到时,将A(i),....,A(N)移到A(i+1),.....A(N+1),Key 值送入A(i)中。

6.一个正文文件由若干记录组成,每个记录是一个字符串,要求统计每个记录中空格字符的个数及文件中空格字符的总个数。要求输出数据格式是每复制一行这符串后,另起一行打印出这个字符中的空格数,最后打印出文件空格的总个数,用Jackson方法设计该程序结构。

附加题:

1、假设对顾客的订货单按如下原则处理:

将顾客的信用度分三个档次:

欠款时间不超过30天;

欠款时间超过30天但不超过100天;

欠款时间超过100天。

对于上述三种情况,分别根据库存情况来决定对顾客订货的态度。

情况之一(欠款时间≤30天),如果需求数≤库存量,则立即发货,如果需求数>库存量,则只发现有库存,不足部分待进货后补发。

情况之二(30天<欠款时间≤100天),如果需求数≤库存量,则要求先付款再发货,如果需求数>库存量,则不发货。

情况之三(欠款时间>100天),则通知先付欠款,再考虑是否发货。

试用判定树的形式予以描述(设欠款时间D,需求数N,库存量Q)。

答:

2、用Jackson 图表示下图所示的二维表格:

答:

3、有一过程,其流程如下图所示。

其中b1 、b2、 b3为判定的逻辑条件,s1、 s2为加工处理。试用判定表给予描述。

答:

4、1、有一过程如下图所示的流程,试用判定表予以描述。

1 2 3 4 条件

b1 F T T T b2 … F F T b3 … F T … 结果

s1 √ √ √ s2

第六章实现

1、程序语言有哪些共同特征?

答:程序语言的共同特征(似为特性更符合题意)是指程序设计语言的语言特性,包括心理特性、工程特性和技术特性三个方面。语言的心理特性对人机通信的质量有主要的影响;语言的工程特性对软件开发成功一否有重要的影响,此外,语言的技术特性也会影响软件设计的质量。

2、在项目开发时选择程序设计语言通常考虑哪些因素?

答:通常要考虑的因素有:

项目的应用领域、软件开发的方法、软件执行的环境、算法和数据结构的复杂性以及软件开发人员的知识等。

3、第4代语言(4GL)有哪些主要特征?

答:4GL的主要特征是:

(1)友好的用户界面

(2)兼有过程性和非过程性双重特性

(3)高效的程序代码

(4)完备的数据库

(5)应用程序生成器

4、举例说明各种程序设计语言的特点及适用范围?

答:以常见的一些编程语言为例:

FORTRAN语言,它不仅面向科学计算,数据处理能力也极强。适用于科学工程计算

Pascal语言,具有很强的数据和过程结构化能力,它语言简明,数据类型丰富,程序结构严谨。它是第一个体现结构化编程思想的语言。用于描述结构化算法和科学计算,操作系统的编写

C语言:功能强大,支持复杂的数据结构,可大量运用指针,具有丰富灵活的操作运算符及数据处理操作符,它还具有汇编语言的某些特征,使程序运行效率高。可用于许多领域,特别是在操作系统等方面有较大优势。

Coble语言,它具有极强的数据定义能力,程序说明与硬件环境说明分开、数据描述与算法描述分开。结构严谨层次分明,广泛用于商业数据处理。

SQL:结构化查询语言,用于对数据库进行存取管理。

汇编语言和Ada语言,主要用于实时处理和编写系统软件。

Prolog、Lisp语言。Lisp是一种函数型语言,特别适用于组合问题中符号运算和表处理,用于定理证明、树的搜索和其他问题的求解。Prolog是一种逻辑型语言,它提供了支持知识表示的特性,每一个程序由一组表示事实、规则和推理的句子组成,比较接近与自然语言。这两种语言主要用于人工智能系统开发。

C++、Java语言,是面向对象的设计语言,用于面向对象的方开发软件。

5、什么是程序设计风格?为了具有良好的设计风格,应注意哪些方面的问题?

答:程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。

要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出和追求效率几个方面加以注意。

第七章软件测试

1、软件测试的目的是?测试中要注意那些原则?软件测试

答:软件测试的目的是的发现软件中存在错误的活动。好的测试用例可以发现至今没有发现的错误、好的测试用例可以发现至今没有发现的错误测试。要提供输入数据还要提供输出数据、保留测试用例、检查它是否做了应该做的还要检查它是否做了不该做的、避免自己测试自己的程序、多错误多的地方要更严格的测试。

2、什么是白盒法?有那些覆盖标准?比较他们的检错能力。

答:将程序看成是白盒子,认真的分析程序的结构和功能制定测试用例来测试。有逻辑覆盖(语句覆盖、判断覆盖、条件覆盖、判断/条件覆盖、条件组合覆盖、路径覆盖)

3、什么是黑盒法?有那些测试方法?特点?

答:将程序当成是黑盒子以设计中的功能为标准在程序的接口出进行测试看它能否达到功能要求。等价类划分、边界值分析、因果图、错误推测。

4、软件测试要经过那些步骤?这些步骤和开发那些阶段对应?

答:单元测试对应详细设计和编码、集成测试对应概要设计、确认测试对应需求分析。

5、单元测试有那些内容?

答:测试模块的接口、数据结构、重要的执行路径、错误处理、边界条件。

6、什么是集成测试?非渐增式和渐增式有什么区别?渐增式如何组装模块?

答:将模块组合起来成为一个完整的系统对其进行测试。非渐增式是将模块先进行单元测试然后组装在一起进行测试。渐增式是逐个将未测试的模块组装到已经测试过的模块上去进行集成测试,每加入一个就测试一次。非渐增式需要桩模块和驱动模块、非渐增式开始可以并行测试、渐增式可以及时的发现接口错误,非渐增式很难发现接口发现错误、渐增式开始不能并行测试、渐增式测试比较彻底。

渐增式组装模块有自顶向下和自底向上两种组装方式。

7、什么是确认测试?该阶段有那些工作?

答:按照需求规格说明书中的确定指标对系统进行功能与性能的测试。进行确认测试(对照需求规格说明书用黑盒法进行测试)、软件配置检查。(文档的完整性、正确性,发现遗漏和错误及时补充和修改)

8、调试的目的是什么?调试的技术有那些?

答:调试的目的是发现错误的位置并改正错误。简单调试、演绎调试、递归调试、回溯调试。

附加题:

1、对下列子程序进行调试:

procedure example(y,z: real; var x: real)

begin

if (y>1) and (z=0) then x:=x/y;

if (y=2) or (x=l) then x:=x+l;

end.

该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。答题要求:

(1)画出流程图。

(2)用白盒法设计测试用例,并写出它所满足的是何种覆盖标准、预期结果以及路径。

答:(1)流程图

(2)用白盒法中条件组合覆盖设计测试用例:

①y=2, z=0, x=4;

②y=2, z=1, x=1;

③y=1, z=0, x=2;

④y=1, z=1, x=1.

2、某报表处理系统要求用户输入处理报表的日期,日期限制在2003年1月至2008年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。系统日期规定由年、月的6位数字字符组成,前四位代表年,后两位代表月。现要求用黑盒测试法中的边界值法写出测试用例。

答:

输入条件测试用例说明测试数据

报表日期的1个数字字符 5

类型及长度5个数字字符20035

7个数字字符2003005

有1个非数字字符2003.5

全部是非数字字符MAY---

6个数字字符200305

日期范围在有效范围200301

边界上选取200812

数据200300

200813

月份范围月份为1月200301

月份为12月200312

月份<1 200300

月份>12 200313

3、对以下程序进行测试:

PROCEDURE EX(A,B:REAL;VAR X:REAL);

BEGIN

IF(A=3)OR(B> 1)THEN X:=A×B

IF(A>2)AND(B=0)THEN X:=A-3

END

先画出程序流程图。再按不同逻辑覆盖法设计一种(写出名称)测试数据。

答:

语句覆盖A=3 B=0

4、程序功能说明书指出,某程序的输入条件为:每个学生可以选修1至3门课程,试用黑盒法设计测试用例。

(1)按等价分类法设计测试用例(要求列出设计过程)

(2)按边缘值分析法设计测试用例。

答:

1)合理等价类

选修1门

选修2门

选修3门

不合理等价类

没选课

选3门以上

测试用例

选修=2

选修=0

选修>3

2) 边缘值法

0,1,3,4

5、设被测试的程序段为:

begin

s1 ;

if (x=0) and (y>2)

then s2;

if (x<1) or (y=1)

then s3 ;

s4 ;

end

可供选择的测试数据组为:

x y

软件工程课后题答案

第一章 1 简述软件的发展过程。 共经历了四个阶段; 第一阶段:(20世纪50年代初期到60年代初期的十余年)计算机系统开发的初期。 第二阶段:(20世纪60年代中期到70年代中期的十余年)软件产品与“软件作坊”的概念开始出现。软件开发人员不再像早期阶段那样只因个人工作需要而开发,而就是为了用户更好地使用计算机。 第三阶段:(20世纪70年代中期到80年代末期)分布式系统嵌入“智能”;硬件价格下降,软件价格急剧上升,导致了软件危机的加剧。 第四阶段:(20世纪80年代末期开始)强大的桌面系统与计算机网络迅速发展。 2 简述软件的定义与特点。 定义:软件就是计算机程序、规程以及运行计算机系统可能需要的相关文档与数据。 特点:(1)就是一种逻辑实体,具有抽象性; (2)软件的生产不存在明显的制造过程; (3)在软件的运行与使用的过程中,不会存在像硬件那样的机械磨损及老化问题; (4)由于对计算机系统的依赖性,对软件的通用性造成了一定的影响; (5)软件的开发方式还没有完全脱离手工开发方式,还不能完全采用组装的方式进行软件开发; (6)作为提高工作效率的逻辑产品,本身具有复杂性; (7)成本相当昂贵; (8)相当多的软件工作设计社会因素。 3 软件有哪些种类 1、按功能特征进行划分 (1)系统软件。(2)支撑软件。(3)应用软件 2、按规模大小进行划分 微型、小型、中型、大型、甚大型、、极大型 4 什么就是软件危机? 答:就是指在计算机软件的开发与维护过程中所遇到的一系列严重问题。 5 什么就是软件工程?有哪些本质特性?怎样用软件工程消除软件危机? 答:就是指导计算机软件开发与维护的一门工程学科。 特性略。 技术措施与管理措施消除软件危机。 6 软件工程的三要素; 方法、工具与过程。 7、结合自己的亲身经历,谈谈软件工具在软件开发过程中的作用。 使软件开发更加模式化,工程化,从而提高软件开发的效率与封装性。 8、CASE 的研究与CASE 产品的开发就是近年来软件工程领域的特点之一。请列举数种您所熟悉的CASE 工具或环境,综述它们的概念与优缺点,并分析其实现方法。 rose、“数据字典”(工具)

软件工程考试题库

软件工程考试题库 Final approval draft on November 22, 2020

一填空题 1.用原型过程代替全部开发阶段,这种快速原型是(实验型或演化型)原型。 2.可行性研究实质上是进行一种简化、压缩了的(需求分析和设计)。 3.结构图的主要内容有(模块)、(模块的控制关系)、(模块的信息传递)。 4.模块之间的联系越紧密,其耦合性就越(强),模块的独立性就越(差)。 5.软件工程研究的主要内容包括软件开发技术和软件开发管理两个方面,在软件开发技术方面,主要是研究(软件开发方法)、(软件开发过程)、(软件开发工具和环境),在软件开发管理方面,主要是研究(软件管理学)、(软件经济学)、(软件心理学)。 6.状态图反映了(状态)与(事件)的关系,状态图确定了由事件序列引起的(状态序列)。 7.可行性研究实质上是进行一种简化、压缩了的(需求分析和设计)。 8.在数据流图中,(数据流)是数据在系统内传播的路径,因此由一组(成分固定的数据项)组成,加工(又称为数据处理)是对数据流进行某些(操作或交换)。 9.(偶然内聚)指一个模块内的各处理元素之间没有任何联系,这是内聚程度最(差)的内聚。 10假如n个相同的系统(硬件或软件)进行测试,它们的失效时间分别是t1,t2,tn,则平均失效等待时间MTTF=(1/n )。 11(维护申请报告)是一种由用户产生的文档,它用作计划维护任务的基础。 12在软件开发和维护过程中,一个软件往往有许多版本,版本控制工具用来存储、更新、恢复和管理一个软件的(多个版本)。 13软件工具通常由工具、(工具接口)和用户工具三个部分组成。 14类的实例化是(对象)。 15形式化规约语言由(语法)、(语义)和(一组关系)组成。 16 软件质量保证应从(产品计划和设计)开始,直到投入使用和售后服务的软件生存期的每一个阶段中的每一步骤。 17 为了提高软件的质量,软件质量保证的任务大致可归结为以下8类:(正确定义用户要求)、(技术方法的应用)、(提高软件开发的工程能力)、(软件的复用)、(发挥每个开发者的能力)、(组织外部力量协作)、(排除无效劳动)、(提高计划和管理质量)。 18 软件测试时需要的三类信息,分别是(软件配置)、(测试配置)、(测试工具)。 19 在面向对象方法中,信息隐蔽通过对象的(封装性)来实现,类结构分离了(接口)与(实现),从而支持了信息隐蔽。 20 增量模型在开发工程中以一系列(增量方式)开发系统,推迟某阶段的(细节),从而(尽早)产生工作软件。 二选择题 1.(A)是计算机程序及其说明程序的各种文档。 A 软件 B文档 C 数据 D 程序 2.软件生存周期包括可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、(B)和维护等活动。 A 应用 B 测试 C 检测 D 以上答案都不正确 3.建立原型的目的不同,实现原型的途径也有所不同,下列不正确的类型是(B)。 A 用于验证软件需求的原型 B 垂直原型 C 用于验证设计方案的原型 D 用于演化出目标系统的原型

最新软件工程试题和答案

一、选择 1、在软件开发的各种资源中,(B)是最重要的资源。 A开发工具B方法C硬件环境D人员 2、软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。 A固有的B人为的C可消除的D不可降低的 3、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A )系统。 A需求不确定的B需求确定的C管理信息D决策支持 4、单元测试的测试用例主要根据( D )的结果来设计。 A需求分析B源程序C概要设计D详细设计 5、(A )是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。 A软件过程B软件工具C软件生存周质量保证D软件工程 6、(A )意味着一个操作在不同的类中可以有不同的实现方式。 A多态性B类的复用C封装 7、软件测试计划开始于需求分析阶段,完成于(D )阶段。 A需求分析B软件设计C软件实现D软件测试 8、在软件生存周期的瀑布模型中一般包括计划、(C )、设计、编码、测试、维护等阶段。 A可行性分析B需求采集C需求分析D问题定义 9. 软件需求分析阶段的测试手段一般采用( C )。 A总结B阶段性报告C需求分析评审D不测试 10. (C )是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。 A多态性B继承C封装D消息 11. 软件测试是为了(B )而执行程序的过程。 A纠正错误B发现错误C避免错误D证明正确 12. 在结构化分析方法中,(C )表达系统内部数据运动的图形化技术。 A数据字典B实体关系图C数据流图D状态转换图 13. 软件工程的基本要素包括方法、工具和( A )。 A过程B软件系统C硬件环境D人员 14. TURBO PASCAL是(A)软件。

第1章_软件工程学概述练习题

第一章练习题 一、判断题 1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(√) 2..软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开 发实际上就是编写程序代码。(X) 3.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是 生成类的模板。(X) 4.快速原型模型可以有效地适应用户需求的动态变化。(√) 5.类是关于对象性质的描述,由方法和数据组成。(√) 6.如果把软件开发所需的资源画成一个金字塔,人是最基本的资源。(√) 二、名字解释: 1.软件:完成特定功能的程序+数据结构+文档。 2.软件危机:软件危机指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。 3.软件工程:指导计算机软件开发和维护的一门工程学。 4.软件生命周期:一个软件从定义、开发、使用和维护直至最终被废弃,要经历的漫长时 期。 5.软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任 务的工作步骤。 6.瀑布模型:是将软件生存各个活动规定为依线性顺序联接的若干阶段的模型。它包括可 行性分析、项目开发计划、需求分析、概要设计、详细设计、编码、测试盒维护。它规定了由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。 7.快速原型模型:是快速建立起来的可以再计算机上运行的程序,它所能完成的功能往往 是最终产品能完成的功能的一个子集。 8.增量模型:是在项目的开发工程中以一系列的增量方式开发系统。增量方式包括增量开 发和增量提交。增量开发是指在项目开发过程中以一定的时间间隔开发部分工作软件; 增量提交是指在开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应文档。增量开发和增量提交可以同时使用,也可以单独使用。 9.螺旋模型:是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模 型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。 对象。

软件工程作业第一章

1-1什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。 典型表现:软件总是超出预算、落后于进度表,而且产品质量不可靠、维护困难等。 危机原因: 1、软件受其自身特点的影响,生产过程不象硬件那样规范,受人的因素和外界影响很大,在软件生产的各阶段都会引入不同程度的错误,造成不能预期完成任务,致使成本上升,甚至导致软件失败。 2、主客观不相适应。 ●客观上:软件规模增大、功能要求越来越复杂,需求不断变化等; ●主观上:传统的个体化开发观念和方法的影响,无开发过程指导,无开发过程管理;由于主客观矛盾,必然产生软件质量差、开发超期、超预算、维护困难等现象。 1-3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机? ?基本思想:是强调在软件开发过程中应用工程化原则,解决软件的整体质量较低、最后期限和费用没有保证等问题。 ?软件工程定义:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它. ?软件工程的根本在于提高软件的质量与生产率,最终实现软件的工业化生产。 本质特性:P6 消除软件危机:软件工程基本原理7条。 1-6 什么是软件过程?它与软件工程方法学有何关系? ?软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任

务的工作步骤。

?过程定义了运用方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。 关系:是软件工程方法学包含3个要素(方法、工具和过程)之一。 1-7 什么是软件生命周期模型?试比较瀑布模型、(快速)原型模型、增量模型和螺旋模型、喷泉模型的优缺点,说明每种模型的适用范围。 生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。 瀑布模型:它将软件生命周期划分为需求分析、软件设计、程序编写、软件测试和运行维护等基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。优点:文档驱动。 强迫开发人员采用规范的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。遵守瀑布模型的文档约束,将使软件维护变得比较容易一些。 缺点:系统可能不满足需求,用户仅仅通过写在纸上的静态的规格说明,很难全面正确地认识动态的软件产品 适用范围:软件需求明确。 原型模型:在初步调查了解的基础上,提供快速的软件建造工具,开发出一个功能并不十分完善的可实际运行的系统,即原型。需求分析入手快速、表达直观、容易交流。重点解决瀑布模型需求分析入手难的问题。 优点:关注满足需求。

软件工程考试题库

软件工程概述 一单项选择 1.软件生命周期一般包括:软件开发期和软件运行期,下述(D)不是软件开发期所应包含的内容。 A需求分析B结构设计C程序编制D软件维护 2.软件是一种逻辑产品,它的开发主要是(A)。 A研制B拷贝C再生产D复制 3.以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是(C)。 A喷泉模型B增量模型C瀑布模型D螺旋模型 4.在软件生存周期中,(B)阶段必须要回答的问题是“要解决的问题是做什么?”。 A详细设计B可行性分析和项目开发计划C概要设计D软件测试 5.软件产品与物质产品有很大区别,软件产品是一种(C)产品 A有形B消耗C逻辑D文档 6.(C)把瀑布模型和专家系统结合在一起,在开发的各个阶段上都利用相应的专家系统来帮助软件人员完成开发工作。 A原型模型B螺旋模型C基于知识的智能模型D喷泉模型 7.(B)阶段是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。 A概要设计B详细设计C编码D测试 8.下列软件开发模型中,适合于那些不能预先确切定义需求的软件系统的开发的模型是(A)。 A原型模型B瀑布模型C基于知识的智能模型D变换模型 9.下列软件开发模型中,以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是(C)。 A原型模型B瀑布模型C喷泉模型D螺旋模型 10.下列软件开发模型中,支持需求不明确,特别是大型软件系统的开发,并支持多种软件开发方法的模型是(D)。 A原型模型B瀑布模型C喷泉模型D螺旋模型 11.软件特性中,使软件在不同的系统约束条件下,使用户需求得到满足的难易程度称为(C)。 A可修改性B可靠性C可适应性D可重用性 12.软件特性中,一个软件能再次用于其他相关应用的程度称为(B)。 A可移植性B可重用性C容错性D可适应性 13.软件特性中,(A)是指系统具有清晰的结构,能直接反映问题的需求的程度。 A可理解性B可靠性C可适应性D可重用性 14.软件特性中,软件产品交付使用后,在实现改正潜伏的错误、改进性能、适应环境变化等方面工作的难易程度称为(B)。 A可理解性B可维护性C可适应性D可重用性 15.软件特性中,软件从一个计算机系统或环境移植到另一个上去的难易程度指的是(C). A可理解性B可修改性C可移植性D可重用性 16.软件特性中,在给定的时间间隔内,程序成功运行的概率指的是(D)。 A有效性B可适应性C正确性D可靠性 17.软件特性中,允许对软件进行修改而不增加其复杂性指的是(A)。 A可修改性B可适应性C可维护性D可移植性 18.软件特性中,多个软件元素相互通讯并协同完成任务的能力指的是(B)。 A可理解性B可互操作性C可维护性D可追踪性 19.软件特性中,根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行逆向

软件工程复习题库(挂答案)

一、选择题 1、白盒测试法是通过分析程序的(C)来设计测试用例的。 A.应用范围 B.功能 C.内部逻辑 D.输入数据 2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。 A.风险产生的原因 B.风险监控技术 C.风险能否消除 D.风险发生所产生的后果 3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。 A.好的计划 B.不断的发布 C.反馈和勇气 D.持续集成 4、等价分类法的关键是(C)。 A.确定等价类的边界条件 B.按照用例来确定等价类 C.划分等价类 D.确定系统中相同和不同的部分 5、下列不属于黑盒测试的技术是(A)。 A.程序段或语句的功能 B.模块的接口 C.数据的名称和用途 D.模块的功能 6、为了提高模块的独立性,模块之间最好是(D)耦合。 A.控制耦合 B.公共耦合 C.内容耦合 D.数据耦合 7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。 A.角色 B.活动 C.制品 D.工作流 8、功能性注释嵌入在源程序内部,它是用来说明(A)。 A.程序段或语句的功能 B.模块的接口 C.数据的名称和用途 D.模块的功能 9、在结构化分析方法中,数据字典是重要的文档。对加工的描述是数据字典的组成内容之一,常用的加工描述方法有( C )。 A.只有结构化语言 B.有结构化语言和判定树 C.有结构化语言、判定树和判定表 D.有判定树和判定表 10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行( B )维护。 A.正确性 B.适应性 C.完善性 D.预防性 11、软件危机的主要原因是(A)。 A软件本身特点与开发方法B对软件的认识不够 C软件生产能力不足D软件工具落后 12、DFD是常用的进行软件需求分析的图形工具,其基本符号是(C)。 A.输入、输出、外部实体和加工

软件工程题库

软件工程单元一(概述) 一单项选择 1.软件是一种逻辑产品,它的开发主要是(A )。 A研制B拷贝C再生产D复制 2.软件生命周期一般包括:软件开发期和软件运行期,下述(D )不是软件开发期所应包含的内容。 A需求分析 B 结构设计C程序编制D软件维护 3.以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是( C )。 A喷泉模型 B 增量模型C瀑布模型D螺旋模型 4.在软件生存周期中,(B )阶段必须要回答的问题是“要解决的问题是做什么?”。 A详细设计 B 可行性分析和项目开发计划C概要设计D软件测试 5.软件产品与物质产品有很大区别,软件产品是一种(C )产品 A有形 B 消耗C逻辑D文档 6.(C )把瀑布模型和专家系统结合在一起,在开发的各个阶段上都利用相应的专家系统来帮助软件人员完成开发工作。 A 原型模型 B 螺旋模型 C 基于知识的智能模型 D 喷泉模型 7.( B )阶段是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。A概要设计 B 详细设计 C 编码 D 测试 8.下列软件开发模型中,适合于那些不能预先确切定义需求的软件系统的开发的模型是(A )。 A 原型模型 B 瀑布模型 C 基于知识的智能模型 D 变换模型 9.下列软件开发模型中,以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是( C )。 A 原型模型 B 瀑布模型 C 喷泉模型 D 螺旋模型 10.下列软件开发模型中,支持需求不明确,特别是大型软件系统的开发,并支持多种软件开发方法的模型是(D )。 A 原型模型 B 瀑布模型 C 喷泉模型 D 螺旋模型 11.软件特性中,使软件在不同的系统约束条件下,使用户需求得到满足的难易程度称为(C )。 A可修改性B可靠性C可适应性 D 可重用性 12.软件特性中,一个软件能再次用于其他相关应用的程度称为(B )。 A可移植性B可重用性 C 容错性 D 可适应性 13.软件特性中,(A )是指系统具有清晰的结构,能直接反映问题的需求的程度。 A可理解性B可靠性C可适应性 D 可重用性 14.软件特性中,软件产品交付使用后,在实现改正潜伏的错误、改进性能、适应环境变化等方面工作的难易程度称为(B )。 A可理解性 B 可维护性C可适应性 D 可重用性 15.软件特性中,软件从一个计算机系统或环境移植到另一个上去的难易程度指的是(C ). A可理解性B可修改性C可移植性 D 可重用性 16.软件特性中,在给定的时间间隔内,程序成功运行的概率指的是( D )。 A有效性B可适应性C正确性 D 可靠性 17.软件特性中,允许对软件进行修改而不增加其复杂性指的是(A )。 A可修改性B可适应性C可维护性 D 可移植性 18.软件特性中,多个软件元素相互通讯并协同完成任务的能力指的是(B )。 A可理解性B可互操作性C可维护性 D 可追踪性 19.软件特性中,根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行逆向追踪的能力指的是(C )。 A 可理解性 B 可互操作性C可追踪性 D 可维护性 20.软件的可修改性支持软件的(D )。 A 有效性 B 可互操作性C可追踪性 D 可维护性 21.软件的可移植性支持软件的(A )。 A 可适应性 B 可互操作性C可追踪性 D 有效性 22.软件的可理解性支持软件的(B )。

软件工程试题及答案

4. 面向对象的分析方法主要是建立三类模型,即( D )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) E-R模型、对象模型、功能模型D) 对象模型、动态模型、功能模型 5. 在E-R模型中,包含以下基本成分( )。 A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性 D) 实体、属性、操作 9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[, ],现从输入的角度考虑一组测试用例:, , , . 设计这组测试用例的方法是( c ) A.条件覆盖法 B.等价分类法C.边界值分析法 D.错误推测法 10、详细设计的基本任务是确定每个模块的( d )A.功能B.调用关系C.输入输出数据 D.算法 11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( a ) A.模块化的根据 B.逐步求精的根据 C.抽象的根据 D.信息隐藏和局部化的根据13.面向数据流的设计方法把( D )映射成软件结构。 A.数据流 B.系统结构 C.控制结构 D.信息流 14.内聚程度最低的是( A.偶然 )内聚A.偶然 B.过程 C.顺序 D.时间 15.确定测试计划是在( D )阶段制定的.A.总体设计 B.详细设计 C.编码 D.测试 16.需求分析的产品是( D ) A.数据流程图案 B.数据字典 C.判定表D.需求规格说明书 17.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( C ) A.数据库设计 B.数据通信 C.数据定义 D.数据维护 18.( D )引入了“风险驱动”的思想,适用于大规模的内部开发项目。 A.增量模型 B.喷泉模型 C.原型模型D.螺旋模型 (×)2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。 (×)4、软件需求分析的任务是建立软件模块结构图。 (√)5、尽可能使用高级语言编写程序(×)6、以结构化分析方法建立的系统模型就是数据流图。 (×)7、进行总体设计时加强模块间的联系。(×)8、编码时尽量多用全局变量. (√)9、用CASE环境或程序自动生成工具来自动生成一部分程序.(×)10、软件测试是要发现软件中的所有错误。 1. 软件生命期各阶段的任务是什么答:软件生命期分为7个阶段:1、问题定义:要解决的问题是什么 2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性 3、需求分析:系统必须做什么 4、总体设计:系统如何实现,包括系统设计和结构设计 5、详细设计:具体实现设计的系统 6、实现:编码和测试 7、运行维护:保证软件正常运行。 2、软件重用的效益是什么?

软件工程概述习题及答案

第一章软件工程概述 一. 填空题 1. 软件的发展过程, , , . 2. 基于软件的工作方式,软件可以划分为, , , . 3. 在软件发展的第四阶段计算机体系结构迅速地从环境转变为环境. 4. 在计算机系统中,软件是, 而硬件是. 5. 软件危机是在软件发展第阶段末期,随着第代计算机和诞而产生。 6. 文档一般可分为面向的文档,面向的文档,面向的文档和面向的文档。 7. 软件生存期若分为三个大的阶段,,. 8. 它是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。 9. 在软件的生存周期开发阶段要经三个步骤, , 。 10. 瀑布模型是以文档为驱动、适合于的软件项目的模型。 11. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内为,, 和四个步骤。 12. 软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了____。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对____ 进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个____ 。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。 13. 软件开发模型, , , , , . 14. 软件工程面临的问题有, , , . 15. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和. 16.基于软件的功能划分可以把软件划分为, ,和。 17.计算机系统发展的早期所形成的一系列错误概念和做法,已经严重地阻碍了计算机软件的开发,甚至有的根本无法维护,只能提前报废,造成大量人力、物力的浪费,从而导致软件危机。为了研究解决的方法,计算机科学技术领域中的一门新兴的学科逐步形成了,这就是。18.软件工程是指导的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。 19.为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原则:, ,和, 。 20.原型模型是从需求分析开始。软件开发者和用户在一起定义,说明需求,并规划出定义的区域。然后快速设计软件中对用户/客户可见部分的表示。快速设计导致了原形的建造,原形由用户/客户评估,并进一步求精。

软件工程课后习题答案

软件工程课后习题答案 第一章 一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。软件危机的典型表现: (1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 (2) 用户对已完成的软件不满意的现象时有发生。 (3) 软件产品的质量往往是靠不住的。 (4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。

(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。软件危机出现的原因: (1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。 二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

软件工程考试题(带答案)..

一、选择题 1.软件开发瀑布模型中的软件定义时期各个阶段依次是:(B) A) 可行性研究,问题定义,需求分析。 B) 问题定义,可行性研究,需求分析。 C) 可行性研究,需求分析,问题定义。 D) 以上顺序都不对。 2.可行性研究主要从以下几个方面进行研究:(A) A)技术可行性,经济可行性,操作可行性。 B)技术可行性,经济可行性,系统可行性。 C)经济可行性,系统可行性,操作可行性。 D)经济可行性,系统可行性,时间可行性。 3 耦合是对软件不同模块之间互连程度的度量。各种耦合按从强到弱排列如下:(C) A) 内容耦合,控制耦合,数据耦合,公共环境耦合。 B) 内容耦合,控制耦合,公共环境耦合,数据耦合。 C) 内容耦合,公共环境耦合,控制耦合,数据耦合。 D) 控制耦合,内容耦合,数据耦合,公共环境耦合。4.在详细设计阶段所使用到的设计工具是:(A) A) 程序流程图,PAD图,N-S图,HIPO图,判定表, 判定树. B) 数据流程图,Yourdon 图,程序流程图,PAD图, N-S图,HIPO图。 C) 判定表,判定树,PDL,程序流程图,PAD图,N- S图。 D) 判定表,判定树,数据流程图,系统流程图,程序 流程图,层次图。 5 按照软件工程的原则,模块的作用域和模块的控制域之间的关系

是:(A) A)模块的作用域应在模块的控制域之内。 B)模块的控制域应在模块的作用域之内。 C)模块的控制域与模块的作用域互相独立。 D)以上说法都不对。 6在软件生命周期中,能准确确定软件系统的体系结构的功能阶段是(C) A.概要设计 B.详细设计 C.需求分析 D.可行性分析 7下面不是软件工程的3个要素的是(C) A过程 B.方法 C.环境 D.工具 8.下面不属于软件的组成的是(B) A程序 B.记录 C.文档 D.数据 9在瀑布模型中,将软件分为若干个时期,软件项目的可行性研究一般归属于(C) A.维护时期 B.运行时期 C.定义时期 D.开发时期 10.在瀑布模型中,下面(C)是其突出的缺点。 A.不适应平台的变动 B.不适应算法的变动 C.不适应用户需求的变动 D.不适应程序语言的变动 11下面不属于软件的特点的是(D)。 A软件是一种软件产品 B软件产品不会用坏,不存在磨损、消耗问题 C软件产品的生产主要是研制 D软件产品非常便宜 12 软件开发工具是协助开发人员进行软件开发活动所使用的软件或环境。下面不是软件开发工具的是(A)。

软件工程题库及答案

一、选择题 软件(2) 1.在软件开发的各种资源中,( D )是最重要的资源。 A 开发工具 B 方法 C 硬件环境 D 人员 2.软件的复杂性是(A ),它引起人员通信困难、开发费用超支、开发时间超时等问题。 A 固有的 B 人为的 C 可消除的 D 不可降低的 3.3:软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是(D )。 A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档 4.软件是一种(B )产品。 A、有形 B、逻辑 C、物质 D、消耗 软件危机(1) 5.1:开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( C ) A.软件工程 B.软件周期 C.软件危机 D.软件产生 6.2:在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了 ( A ) A.软件危机B.软件工程C.程序设计革命D.结构化程序设计 7.3:以下哪一项不是软件危机的表现形式( C ) (A)成本高(B)生产率低 (C) 技术发展快(D)质量得不到保证 8.4:“软件危机”产生的主要原因是( A )。 A.软件日益庞大 B.开发方法不当 C.开发人员编写程序能力差 D.没有维护好软件 9.5:软件危机是指在软件开发和( C )过程中遇到的一系列严重问题。 A 开发 B 使用C维护D更新 软件工程(2) 10.1:为了解决软件危机人们提出了用(B )的原理来设计软件,这就是软件工程诞生 的基础。 (A) 运筹学(B) 工程学(C) 软件学(D) 数学 11.2.在软件工程时期,决定软件质量的主要因素是( A )

A.管理水平 B.个人程序技术C.小组技术水平 D.硬件的发展 12. 3. 软件管理工作涉及到的直接对象不包括( B )。 A.软件开发人员 B.硬件设备 C.项目经费 D.软件项目 13. 4. 软件工程方法学有三个要素,它们是(A ) A.方法、工具和过程 B.质量、进度和成本 C.顺序、分支和循环 D.入口、过程、出口生命周期及模型(5) 14.1:软件工程中描述生命周期的瀑布模型一般包括计划、( A )、设计、编码、测试、维 护等几个阶段。 A.需求分析 B.需求调查 C.可行性分析 D.问题定义 15. 2.瀑布模型把软件生存周期划分为软件计划、软件开发与(C )三个阶段,而每一阶 段又可分为若干更小的阶段。 A. 详细设计 B. 可行性分析 C. 运行与维护 D. 测试与排错 16.3:下列哪个模型没有采用迭代的思想(A ) A.瀑布模型 B.渐增模型C.螺旋模型 D.RUP模型 17.4:下列关于瀑布模型的描述正确的是( D )。 A.利用瀑布模型,如果发现问题修改的代价很低 B.瀑布模型的核心是按照软件开发的时间顺序将问题简化 C.瀑布模型具有良好的灵活性 D.瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开 18.5:瀑布模型本质上是一种(A )模型。 A.线性顺序 B.顺序迭代 C.线性迭代 D.早期产品 19. 6. 快速原型模型的主要特点之一是( D ) A.开发完毕才见到产品 B.及早提供全部完整的软件产品 C.开发完毕后才见到工作软件 D.及早提供工作软件 20.7:瀑布模型的关键不足在于( B ) (A)过于简单(B)不能适应需求的动态变更 (C)过于灵活(D)各个阶段需要进行评审 21.8:瀑布模型存在的问题是( D )。 A.用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求 问题定义(1)

软件工程李爱萍作业参考答案-最终版修改

第一章 1.1什么是软件?软件和程序的区别是什么? 答:⑴软件是程序、数据以及开发、使用和维护程序需要的所有文档的完整集合。软件的定义是:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必须的数据。 ⑵软件不是程序,程序是软件的一部分。程序是为了解决某个特定问题而用程序设计语言描述的适合计算机处理的语句序列。它是由软件开发人员设计和编码的。程序执行时一般要输入一定的数据,也会输出运行的结果。没有相关文档,仅有程序是不能称之为软件产品的。 1.2什么是软件生存周期?划分生存周期的主要原则是什么? 答:(1)软件的生存周期是指某一软件项目被提出并着手实现开始,直到该软件报废或停止使用为止所经历的时间。 (2)主要原则:各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理。 1.3什么是软件危机?它有哪些主要表现?为什么会产生软件危机? 答:(1)软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 (2)主要表现:对软件开发成本和研制进度的估计常常很不精确,导致经费预算经常突破,进度超时完成;由于开发人员常常对用户需求只有模糊的了解以及开发人 员和用户又未能及时交换意见,导致已完成的软件不能满足用户的需要;软件产品 质量差,可靠性得不到保证;软件产品可维护性差;软件成本在计算机系统总成本 中所占的比例逐年上升,软件的发展跟不上硬件的发展;软件开发生产率提高的速 度远远跟不上计算机应用速度普及深入趋势,软件发展跟不上用户的要求。 (3)产生软件危机的原因:造成软件危机的原因与软件自身的特点有关,也与软件开发人员在开发和维护时采用的生产方式、方法、技术有关。软件是计算机系统中 的逻辑部件,软件产品往往规模庞大,结构复杂。给软件的开发和维护带来客观的 困难;软件开发的管理困难。由于软件规模大、结构复杂、又具有无形性,导致管 理困难,进度控制困难,可靠性无法保证;软件开发费用不断增加,维护费用急剧 上升,直接威胁计算机应用的扩大;软件开发技术落后;生产方式落后;开发工具 落后,生产效率提高缓慢。另外软件开发人员忽视需求分析的重要性,轻视软件维 护也是造成软件危机的原因。 1.4什么是软件工程?怎样利用软件工程消除软件危机? 答:(1)软件工程是指导计算机软件开发和维护的一门学科 (2)首先应该对计算机软件有一个正确的认识,彻底清除“软件就是程序” 的错误观念;要使用好的开发技术和方法,并且要不断研究探索更好更有效的技术和方法;要有良好

软件工程题库

软件工程题库 一单项选择 1.软件是一种逻辑产品,它的开发主要是(A )。 A研制B拷贝C再生产D复制 2.软件生命周期一般包括:软件开发期和软件运行期,下述(D )不是软件开发期所应包含的内容。 A需求分析 B 结构设计C程序编制D软件维护 3.以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是( C )。 A喷泉模型 B 增量模型C瀑布模型D螺旋模型 4.在软件生存周期中,(B )阶段必须要回答的问题是“要解决的问题是做什么?”。 A详细设计 B 可行性分析和项目开发计划C概要设计D软件测试 5.软件产品与物质产品有很大区别,软件产品是一种(C )产品 A有形 B 消耗C逻辑D文档 6.(C )把瀑布模型和专家系统结合在一起,在开发的各个阶段上都利用相应的专家系统来帮助软件人员完成开发工作。 A 原型模型 B 螺旋模型 C 基于知识的智能模型 D 喷泉模型 7.( B )阶段是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。A概要设计 B 详细设计 C 编码 D 测试 8.下列软件开发模型中,适合于那些不能预先确切定义需求的软件系统的开发的模型是(A )。 A 原型模型 B 瀑布模型 C 基于知识的智能模型 D 变换模型 9.下列软件开发模型中,以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是( C )。 A 原型模型 B 瀑布模型 C 喷泉模型 D 螺旋模型 10.下列软件开发模型中,支持需求不明确,特别是大型软件系统的开发,并支持多种软件开发方法的模型是( D )。 A 原型模型 B 瀑布模型 C 喷泉模型 D 螺旋模型 11.软件特性中,使软件在不同的系统约束条件下,使用户需求得到满足的难易程度称为(C )。 A可修改性B可靠性C可适应性 D 可重用性 12.软件特性中,一个软件能再次用于其他相关应用的程度称为(B )。 A可移植性B可重用性 C 容错性 D 可适应性 13.软件特性中,(A )是指系统具有清晰的结构,能直接反映问题的需求的程度。 A可理解性B可靠性C可适应性 D 可重用性 14.软件特性中,软件产品交付使用后,在实现改正潜伏的错误、改进性能、适应环境变化等方面工作的难易程度称为( B )。 A可理解性 B 可维护性C可适应性 D 可重用性 15.软件特性中,软件从一个计算机系统或环境移植到另一个上去的难易程度指的是(C ). A可理解性B可修改性C可移植性 D 可重用性 16.软件特性中,在给定的时间间隔内,程序成功运行的概率指的是( D )。 A有效性B可适应性C正确性 D 可靠性 17.软件特性中,允许对软件进行修改而不增加其复杂性指的是(A )。 A可修改性B可适应性C可维护性 D 可移植性 18.软件特性中,多个软件元素相互通讯并协同完成任务的能力指的是(B )。 A可理解性B可互操作性C可维护性 D 可追踪性 19.软件特性中,根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行

软件工程第1章习题

软件工程第1章例题分析与解答 一、填空题 1.软件与物质产品有很大的区别,软件是一种____逻辑___产品。 2.软件工程是一门综合性交叉学科,计算机科学着重于理论和原理,软件工程着重于___建造一个软件系统____。 3.概要设计主要是把各项功能需求转换成系统的__体系结构______。 4.最基本、应用广泛、以文档为驱动、适用于开发功能明确的软件项目生存期模型是__瀑布模型_____。 5.简单实用、应用广泛、技术成熟的开发方法是__结构化方法______。 二、选择题 1.同一软件的大量软件产品的生产主要是通过( B )而得到。 A.研究 B.复制 C.开发 D.研制 2.作坊式小团体合作生产方式的时代是( C )时代。 A.程序设计 B.软件生产自动化 C.程序系统 D.软件工程 3.软件工程与计算机科学性质不同,软件工程着重于( C )。 A.理论研究 B.原理探讨 C.建造软件系统 D.原理的理论 4.将每个模块的控制结构转换成计算机可接受的程序代码是( A )阶段的任务。 A.编码 B.需求分析 C.详细设计 D.测试 5.软件生存周期中时间最长的是( D )阶段。 A.需求分析 B.概要设计 C.测试 D.维护

一、填空题答案 1.逻辑 2.建造一个软件系统 3.体系结构 4.瀑布模型 5.结构化方法 二、选择题答案 1.B 2.C 3.C 4.A 5.D

第1章自测题及参考答案 一、名称解释 1.软件 2.文档 3.软件工程 4.软件生存周期 5.软件工程过程 6.软件生存周期模型 7.软件开发方法 8.软件工具 二、填空题 1.构成一个完整计算机系统的两部分是硬件与_____软件___。 2.程序设计时代的生产方式是___个体手工劳动_____。 3.软件工程涉及到几个学科,它是一门__综合性交叉___学科。 4.软件开发划分的各阶段任务尽可能独立,同一阶段任务性质尽可能_____相同___。 5.将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是_瀑布_______模型。 6.喷泉模型是一种以用户需求为动力,以____对象___为驱动的模型。 7.结构化方法是一种面向数据流的开发方法。由结构化分析、__结构化设计_____、结构化程序设计构成。 8.软件工程研究的主要内容是软件开发管理和___软件开发技术____两个方面。 9.软件工具是支持软件开发人员的开发和维护活动而使用的____软件____。 10.一个软件项目的开发中,要采用一种生存周期模型,要按照某种_开发方法_______,使用相应的工具来进行。 三、选择题 1.软件是一种( B )产品。 A.物质 B.逻辑 C.有形 D.消耗

软件工程习题解答第一章概述

软件工程习题解答 第一章概述 1.软件产品的特性是什么? a.软件产品是一种逻辑产品。 b.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成 后,复制就产生了大量软件产品。 c.软件产品不会用坏,不存在磨损、消耗问题。 d.软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且碰分是"定做"的。 e.软件费用不断增加,成本相当昂贵。 2.软件产品有几个阶段?各有何特征? 阶段 A.程序设计时代(1946-1956) B.程序系统时代(1956-1968) C.软件工程时代(1968-今) 生产方式个体手工劳动小集团合作生产工程化的生产 工具机器语言、汇编高级语言数据库、开发工具、开发环境、 网络、分布式、面向对象技术开发方法追求编和技巧,追求程序运 行效率 个人技巧,开始提出结构化方法 硬件特征价格贵、存储容量小、运行 可靠性差速度、容量、工作可靠性有明显提 高,价格降低,销售有爆炸性增长 向超高速、大容量、微型化以 及网络化方 软件特征只有程序、程序设计概念, 不重视程序设计方法程序员数量猛增,已意识到软件开 发的重要性,开发技术没有新的突 破,大量软件开发的需求已提出, 开发人员的素质和工程兵的开发技 术不适应规模大、结构复杂的软件 开发,产生了尖锐矛盾,导致软件 危机的产生 开发技术有很大进步,但未能 获得突破性进展,软件价格不 断上升,没有完全摆脱软件危 机 3.什么是软件危机?其产生的原因是什么? 软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。 在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。主要表现在以下几个方面: a.经费预算经常突破,完成时间一再拖延。 b.开发的软件不通满足用户要求。 c.开发的软件可维护性差。 d. 开发的软件可靠性差。 软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的: a.软件的规模越来越大,结构越来越复杂。 b.软件开发管理困难而复杂。 c.软件开发费用不断增加。 d.软件开发技术落后。 e.生产方式落后。 f.开发工具落后,生产率提高缓慢。

相关主题
文本预览
相关文档 最新文档