软件工程例题

软件工程例题
软件工程例题

1.某旅馆的电话服务如下:可以拨分机号和外线号码。分机号是从7201至7299。外线号

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

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

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

分机号=7201 (7299)

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

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

区号=100 (300)

市话号码=局号+分局号

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

分局号=4{数字}4

数字=[0|1|2|3|4|5|6|7|8|9]

2.为以下程序流程图分别设计语句覆盖和判定覆盖测试用例,并标明程序执行路径。

(1)语句覆盖测试用例

令x=2,y=0,z=4作为测试数据,程序执行路径为abcde。

(2)判定覆盖

可以设计如下两组数据以满足判定覆盖:

x=3,y=0,z=1(1分)(通过路径abce);

x=2,y=1,z=2(1分)(通过路径acde)。

或者

x=2,y=1,z=1;覆盖路径acde

x=1,y=1,z=1;覆盖路径ace

x=3,y=0,z=1;覆盖路径abce

(注意:本题也还可以有其他答案)

3.请用判定表画出以下问题的行为逻辑。

人们往往根据天气情况决定出门时的行装。天气可能下雨,也可能不下雨;下雨或不下雨天气可能变冷,也可能不变冷。如果天气要下雨,出门时带上雨伞;如果天气变冷,出门时要穿上大衣。

4.对下列子程序进行调试:

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. (注:也可有其它答案)

5.选择排序的伪代码如下,请根据代码画出其PAD图。

select_sort(a[1],a[2],…,a[n])

{

for(i=1;i

{

k=i;

for(j=i+1;j<=n;j++)

{

if(a[j]

if(k!=i) exchange(a[i],a[k]);

}

}

}

6. 一本书有一个封面、一个目录、一个前言、若干章、每章有若干节、每节有若干段,有若干句子,有0个或多个插图,还有0个或多个表格,书最后有一个附录。试建立该书的对象模型。

目录

封面

前言

附录

句子

插图表格

1+

1+

1+

1+**

7. 根据伪码画出N -S 图和PAD 图。

START IF A THEN

X1

DO UNTIL B

ELSE X2 Y END IF Z STOP N-S 图:

B

F

B

O

PAD 图:

T

F

UNTIL B

START

STOP

Z

X2Y

X1

8. 某报社采用面向对象技术实现报刊征订的计算机管理系统,该系统基本需求如下: (1)报社发行多种刊物,每种刊物通过订单来征订,订单中有代码,名称,订期,单价,份数等项目,订户通过填写订单来订阅报刊。

(2)报社下属多个发行站,每个站负责收集登陆订单、打印收款凭证等事务。 (3)报社负责分类并统计各个发行站送来的报刊订阅信息。 请就此需求建立对象模型。

9. 指出下列数据流图中存在的问题。

Z

1 2

3

3.1 3.2

3.3 3.4

C

E

D

E

D

F

P

Q

父图子图

(1)父图没有输入数据流;

(2)子图的输入数据流应该是C,而不是B;

(3)子图的输出数据流应该只有D和E,而不应有F。

10.某公司为本科以上学历的人重新分配工作,分配原则如下:

(1)如果年龄不满18岁,学历是本科,男性要求报考研究生,女性则担任行政工作;

(2)如果年龄满18岁不满50岁,学历本科,不分男女,任中层领导职务;

(3)如果年龄满50岁,学历本科,男性任科研人员,女性则担任资料员;

(4)学历是硕士,任课题组组长。

要求:画出分析过程,得出判定表,并进行化简。

(1)判定条件可能取值表:

(2)计算条件组合数2*3*2=12;

(3)初步判定表

(4)简化后的判定表

11.建立以下有关“微机”的对象模型。

一台微机有一个显示器,一个主机,一个键盘,一个鼠标,汉王笔可有可无。主机包括一个机箱,一个主板,一个电源及储存器等部件。储存器又分为固定储存器和活动存储器两种,固定存储器为内存和硬盘,活动存储器为软盘和光盘。

微机

显示器主机键盘鼠标汉王笔

机箱主板存储器电源

固定存储器活动存储器

内存硬盘软盘光盘

12.某商场在“五一”期间,顾客购物时付款有4种情况:普通顾客一次购物累计少于100

元,按A类标准付款(不打折),一次购物累计多于或等于100元,按B类标准付款(打9折);会员顾客一次购物累计少于1000元,按C类标准付款(打8折),一次购物累计等于或多于1000元,按D类标准付款(打7折)。

(1)请使用程序流程图来设计付款算法。

(2)按照路径覆盖法设计一组测试用例。

程序流程图

(2)按照路径覆盖法设计测试用例如下:(注:累计消费可取其它值)

是会员,累计消费900元,覆盖路径1-2-6-8

是会员,累计消费2000元,覆盖路径1-2-7-9

不是会员,累计消费80元,覆盖路径1-3-4

不是会员,累计消费300元,覆盖路径1-3-5-10

13. 试将下面程序流程图用N-S 图和PAD 图表示,并计算它的McCabe 环路复杂度。

START

P

A B

Q END

T F F

T

Q=T

A

F

Q=T

A

Until NOT P

N-S 图

Q=T

Q

T

B

B

PAD 图

Q

T

Until NOT P

END

START

MCCABe 环路复杂度=2+1=3

14.图表示下图所示的二维表格:

姓名 性别 年龄 学号

…… …… …… ……

该学生名册由表头和表体两部分组成。其中表头又顺序包括表名和字段名。表体可由任

意行组成,每行包括学生的姓名、性别、年龄和学号。

表头

表体

15.某培训中心要研制一个计算机管理系统。它的业务是:

将学员发来的信件收集分类后,按几种不同的情况处理。

(1)如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,查

该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。

(2)如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件

上做相应的修改,并给学生注销单。

(3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费收据。

要求:对以上问题画出数据流程图。

16.已知被测试模块流程图如下,按照条件覆盖法,在表格中填入满足测试要求的数据。

(A>3) AND (B=1)?

(A=1) OR (M>1)?

M=M/2

M=M-5

F

F

T

T

begin

Return

M=M+5

b c

d e

题44图

假设几种可能的条件是:

T1: A>3 F1:A<=3 T2: B=1 F2: B ≠1 T3: A=1 F3: A ≠1 T4: M>1 F4: M<=1

17. 设计一个软件的开发成本为50000元,寿命为3年。未来3年的每年收益预计为22000元﹑24000元﹑226620元。银行年利率为10%,不计复利。试对此项目进行成本效益分析,以决定其经济可行性。 解:三年后,50000万的价值为

50000*(1+3*10%)=65000元 三年软件总获利为

22000*(1+2*10%)+24000*(1+1*10%)+26620=79420元 而 79420元>65000元

所以此项目盈利,经济可行。

18. 如图1和图2所示是某公司员工工资管理的一部分,他们分别是同一功能的两个不同设计方案,你认为那种设计方案较好?请陈述理由。

如图2所示的设计方案2好。利用衡量模块独立性的两个标准耦合性和内聚性(模块划分时应尽量做到高内聚、低耦合,提高模块独立性)判断设计方案优劣。图1中模块B 的功能是取平均工资或最高工资,可见模块B 包含两个功能,故模块B 内聚弱,而模块B 与模块A 的耦合是控制耦合,耦合程度较高,模块的相对独立性差。而在图2中,模块B 分解成两个相对独立的模块B1和B2,模块B1和B2内聚程度高,模块B1和B2与模块A 之间的耦

题42 图1 设计方案1

题42 图2 设计方案2

合是数据耦合,耦合程度较低,因此模块的独立性好,所以图2的设计方案2好。

19.某“调整工资”处理模块接受一个“职称”的变量,根据职称的不同(助教,讲师,副

教授,教授)作不同的处理,其中若是助教还必须输入工龄,只有工龄超过两年才能调整工资。请用等价类划分法设计测试用例。

划分等价类:

输入条件合理等价类不合理等价类

职称①教授

②副教授

③讲师

⑤四种职称之外任意

一种

职称兼工龄④助教兼工龄大于2年⑥助教兼工龄等于两年

⑦助教兼工龄小于两年

设计测试用例:

输入数据预期结果覆盖范围

教授输入有效,进行调整工资处理①

副教授输入有效,进行调整工资处理②

讲师输入有效,进行调整工资处理③

助教 3 输入有效,进行调整工资处理④

助教 2 输入有效,不调整工资处理⑥

助教 1 输入有效,不调整工资处理⑦

工程师输入无效⑤

20.试用判定表描述下列加工逻辑。加工逻辑为:如果申请者的年龄在21岁以下,要额外

收费;如果申请者是21岁以上并是26岁以下的女性,适用于A类保险;如果申请者是26岁以下的已婚男性,或者是26岁以上的男性,适用于B类保险;如果申请者是21岁以下的女性或是26岁以下的单身,适用于C类保险。附此之外的其他申请者都适用于A 类保险。

21. 假设对顾客的订货单按如下原则处理: 将顾客的信用度分三个档次: 欠款时间不超过30天;

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

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

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

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

情况之三(欠款时间>100天),则通知先付欠款,再考虑是否发货。 试用判定树的形式予以描述(设欠款时间D

,需求数N ,库存量Q)。

22. 有一过程,其流程如下图所示。

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

答:

b1 F F F F T T T T b2 F F T T F F T T b3 F T F T F T F T s1 × × × × s2

×

×

×

×

或者

T

T T F

F F

b1 F T F T b2 / T / F b3 F / T / s1 × × s2

×

×

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

24.对一个长度为48000条机器指令的程序进行测试,第一个月由甲、乙二人分别测试它。甲改正20个错误,使程序的平均无故障时间为8小时。乙在测试该程序副本时改正了24个错误,其中6个错误与甲改正的下同。然后,由甲继续测试该程序。根据上述数据完成下列各题:( 每题5分,共15 分) 1.程序中固有的错误总数是多少?

2.为使MTTF 达到240小时,如果甲不利用乙的工作成果,则他还需改正多少个错误? 3.为使MTTF 达到480小时,如果甲利用乙的工作成果,则他还需改正多少个错误?

附:()()t E E K I MTTF C T T -=

E T = B 2 * B 1 / b c

E T :测试前程序的错误总数 I T :程序长度(机器指令总数)E c (t):t 时间内改正的错误数

B 1、B 2 分别为测试员1、测试员2发现的错误数,b c 为测试员1、测试员2发现的相同错误数

解:1.E T =80 2.58 3.41

25.计算出如下工程网络图中各节点的最早开始时刻和最迟开始时刻(10分)

1

2

3

4

5

6

7

9

10

8

5

7

4

11

9

3

4

9

2

3

6

3

00

1

2

3

4

5

6

7

9

10

8

5

7

4

11

9

3

4

9

2

3

6

3

00

55

12122121

2424

282837373131

3939

2828

1 2 3 4 条件

b1 F T T T b2 … F F T b3

… F T … 结果

s1 √ √ √ s2

简答题

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

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

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

完成后,复制就产生了大量软件产品。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

d.软件开发技术落后。

e.生产方式落后。

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

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

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

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

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

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

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

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

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

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

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

软件工程的内容:

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

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

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

软件工程面临的问题:a.软件费用。b.软件可靠性。c.软件维护。d.软件生产率。e.软件重用。

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

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

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

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

a.技术可行性:

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

b.经济可行性。

c.社会可行性。

7.可行性研究有哪些步骤?

a.确定项目规模和目标

b.研究正在运行的系统

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

d.导出和评价各种方案

e.推荐可行的方案

f.编写可行性研究报告

8.可行性研究报告有哪些就要内容?

a.引言

b.可行性研究前提

c.对现有系统的分析

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

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

f.社会因素可行性分析

g.其他可供选择方案

h.结论意见

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

有形效益度量:

a.货币的时间价值

b.投资回收期

c.纯收入

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

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

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

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

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

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

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

(3) 编写文档

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

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

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

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

结构化分析方法步骤:

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

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

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

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

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

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

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

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

3)它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分. 条目:数据流、数据项、数据存储、基本加工。

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

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

基本任务:

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

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

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

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

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

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

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

a.数据结构设计

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

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

(4)评审

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

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

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

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

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

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

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

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

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

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

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

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

模块间的内聚性有6种:偶然内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚、功能内聚。偶然内聚:一个模块内的各处理元素之间没有任何联系。

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

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

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

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

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

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

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

软件结构设计优化准则:

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

软件结构。

b.一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在

层次上尽量靠近

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

d.模块的大小要适中。

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

维护。

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

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

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

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

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

变换流由输入、变换(或处理)、输出三部分组成。某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入选择其中一个路径来执行这种特征的DFD称为事物流。

21.在结构化设计过程中,要将数据流图(DFD)映射成系统结构图(SC),分别画出变换型数据

流和事物型数据流的映射方式。

答:

变换型事务型

22.详细设计的基本任务是什么?

详细设计的基本任务:

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

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

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

(4)其他设计:

a.代码设计

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

c.人机对话设计。

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

(6)评审。

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

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

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

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

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

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

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

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

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

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

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

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

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

e.用伪码写出程序。

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

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

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

26.软件测试的目的是什么?测试中要注意那些原则?

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

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

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

28.什么是黑盒法?有那些测试方法?特点?

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

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

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

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

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

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

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

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

32.调试的目的是什么?调试的技术有那些?

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

33.软件维护有哪些内容?

a、校正性维护

b、适应性维护

c、完善性维护

d、预防性维护

34.软件维护的特点是什么?

a、非结构化维护和结构化维护

b、维护的困难性

c、软件强维护的费用

35.软件维护的流程是什么?

a、制定申请维护报告

b、审查申请报告并批准

c、进行维护并作详细记录

d、覆审

36.软件维护的副作用有哪些?

编码、数据、文档副作用

37.什么是软件的可维护性?可维护性的度量的特性是什么?

软件的可维护性:软件能够被理解、校正、适应及增强功能的容易程度。

可维护性的度量的特性是:可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。

38.提高可维护性的方法有哪些?

A、建立明确的软件质量目标。

B、利用先进的软件开发技术和工具。

C、建立明确的质量保证工作。

D、选择可维护的程序设计语言。

E、改进程序文档。

39.说明对象模型的特征?

对象模型表示了静态的、结构化的、系统数据性质,描述了系统的静态结构,表现了对象间的相互关系,模型主要关心系统中对象的结构、属性和操作使用对象图来描述。

40.说明动态模型的特征。

动态模型描述了与时间和变化有关的系统性质,描述的是系统的控制结构,表示了瞬间的系统控制性质,它关心系统的控制,操作顺序,从对象的状态角度出发表现对象的相互行为。

41.功能模型的特征。

功能模型描述了系统的所有计算。

42.三种模型的建立过程?

对象模型:确定类、准备数据字典、确定联系、确定属性、完善对象模型。

动态模型:准备脚本、准备事件跟踪、构造状态图。

功能模型:确定输入输出值、建立DFD。

软件工程习题及详细答案

个人收集整理勿做商业用途 软件工程习题及答案 一、选择题: 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. 注释是提高程序可读性的有效手段,好的程序注释占到程序总量的。 A、1/6 B、1/5 C、1/4 D、1/3 7. 变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于。 A、变换型 B、事务型 8. PAD(Problem Analysis Diagram)图是一种工具。 A、系统描述 B、详细设计 C、测试 D、编程辅助 9. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。 A、总貌 B、细节 C、抽象 D、软件的作者 10. 数据流图中,当数据流向或流自文件时,。 A、数据流要命名,文件不必命名 B、数据流不必命名,有文件名就足够了 C、数据流和文件均要命名,因为流出和流进数据流是不同的 D、数据流和文件均不要命名,通过加工可自然反映出

软件工程试题与答案 (6)

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

软件工程习题及参考答案

软件工程习题及部分参考答案 判断题 ?软件也会磨损和老化。(X) ?完善性维护是提高或完善软件的性能。(√) ?数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。 (X) ?软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。(X) ?软件模块之间的耦合性越弱越好。(√) ?如果通过软件测试没有发现错误,则说明软件是正确的。(X) ?快速原型模型可以有效地适应用户需求的动态变化。(√) ?模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高聚,低耦合度的软件产品。(√) ?集成测试主要由用户来完成。(X) ?确认测试计划应该在可行性研究阶段制定(X) ?白盒测试无需考虑模块部的执行过程和程序结构,只要了解模块的功能即可。(X) ?软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(√) ?软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。(√) ?系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。(╳)?模块越多,开发成本越小。(╳) ?软件测试的目的就是证明软件没有错。(╳) ?PAD图在设置了五种基本的控制结构后,还允许递归使用。(√) ?在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。(×) ?SA法是面向数据流,建立在数据封闭原则上的需求分析方法。(√) ?HIPO 法既是需求分析方法,又是软件设计方法。(√) ?在面向对象的需求分析方法中,建立动态模型是最主要的任务。(×) ?加工小说明是对系统流程图中的加工进行说明。(×) ?判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。(×) ?需求分析的主要方法有SD 法、OOA 法及HIPO 法等。(×) ?分层的DFD 图可以用于可行性分析阶段,描述系统的物理结构。(×) ?信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R 图。(√) ?用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。(√) ?PDL经常表现为一种"混杂"的形式,他不允许自然语言如英语的词汇与某种结构化程序设计语言(如Pascal,C,Ada等)的语法结构交织在一起.(X) ?设计阶段的输出是编码阶段的输入.(√) ?通过软件测试,可以发现软件中所有潜伏的错误.(X) ?非结构化维护用于软件的配置中只有源代码维护.(√) ?系统规格说明是系统分析和定义阶段生成的一种文档.(√) ?数据流图的分解速度应保持较高.通常一个加工每次可分解为10~20个子加工.(X)

软件工程(习题与参考答案)

第1章概述(习题与参考答案) [判断题] 1. 由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。(×) 2. 由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。(×) 3. 购买大多数计算机系统所需的硬件比软件更昂贵。(×) 4. 大多数软件产品在其生命周期中不需要增强功能。(×) 5. 大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。(√) 6. 一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。(×) [选择题] 1. ()因素促使计算机系统越来越复杂。(D) A. 计算机内存和存储容量上的巨大增长 B. 外部输入/输出选项的更加多样性 C. 计算机体系结构方面的深刻变化 D. 以上所有选项 2. 下面的()不再是现代软件工程师关注的问题。(A) A. 为什么计算机硬件的成本这么高? B. 为什么软件需要很长时间才能完成? C. 为什么开发一个软件的成本这么高? D. 为什么不能在产品发布前去除软件错误? 3. 软件会逐渐退化而不会磨损,其原因在于()。(C) A. 软件通常暴露在恶劣的环境下 B. 软件错误通常发生在使用之后 C. 不断的变更使组件接口之间引起错误 D. 软件备件很难订购 4. 大多数软件仍然是定制开发的,其原因在于()。(C) A. 软件组件重用是十分普遍的 B. 可重用的组件太昂贵而无法使用 C. 软件在不使用其他组件的情况下很容易构造出来 D. 商业组件在很多应用领域中可以得到 5. 下面的()说法是正确的。(C) A. 软件危机在20世纪70年代末期全面爆发

B. 当前先进的软件工程方法已经解决了软件危机的问题 C. 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题 D. 软件危机是指在软件产品中存在一系列的质量问题 6. 软件工程的基本目标是()。(B) A. 消除软件固有的复杂性 B. 开发高质量的软件 C. 努力发挥开发人员的创造性潜能 D. 更好地维护正在使用的软件产品 7. ()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方 法、工具和过程三个要素。(D) A. 软件产品 B. 软件过程 C. 软件测试 D. 软件工程 8. 软件工程的基本要素包括方法、工具和()。(C) A. 软件系统 B. 硬件环境 C. 过程 D. 人员 9. 软件工程师在从事软件工作时应使用下面的()准则。(E) A. 从来不为个人获利而窃取数据 B. 从来不散布或出售项目中自己工作的信息 C. 从来不故意毁坏或修改别人的程序、文件或数据 D. 从来不侵犯个人、小组或组织的隐私 E. 以上所有选项 第2章软件过程(习题与参考答案) [选择题] 1. ()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、 软件确认、软件改进等活动组成。(A) A. 软件过程 B. 软件工具 C. 软件产品 D. 软件工程 2. 软件过程的基本活动是()。(A) A. 分析、设计、实现、测试、演化 B. 沟通、计划、建模、构造、部署 C. 计划、分析、设计、实现、调试 D. 沟通、风险管理、度量、产品化、评审 3. ()软件需求规格说明书在软件开发过程中具有重要的作用,它是软件可行性分析的依据。(B) A. 真 B. 假

软件工程综合练习题

《软件工程》课程练习题 第一章软件工程概述 一、选择题 1、瀑布模型本质上是一种()。 A、线性迭代模型 B、顺序迭代模型 C、线性顺序模型 D、及早见产品模型 2、计算机辅助软件工程,简称()。 A、SA B、SD C、SC D、CASE 3、以下判断正确的是()。 A、所谓软件开发就是编写程序。 B、利用软件工程的思想,已成功的解决了软件危机。 C、完成软件测试工作以后,为了缩短程序的长度应删除程序中的注释。 D、一般来说,程序中存在错误的概率与在该段程序中已发现的错误数成正比。 4、_____是以提高软件质量为目的的技术活动。 A.技术创新 B.测试 C.技术创造 D.技术评审 5、瀑布模型的存在问题是()。 A.用户容易参与开发 B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求 6、软件生命周期中所花费用最多的阶段是()。 A.详细设计 B.软件编码 C.软件测试 D.软件维护 7、计算机系统就是() A.主机,显示器,硬盘,软驱,打印机等。 B.CPU,存储器,控制器,I/O接口及设备。 C.计算机硬件系统和软件系统。 D.计算机及其应用系统。 8、产生软件危机的原因主要与两个方面的问题有关: A.软件在计算机中很难识别,存在磁盘中也看不到。

B.软件设计对人的智商要求很高,也要求很高的资金投入。 C.软件产品本身的特点与其它工业产品不一样,而且在软件的开发和维护过程中用的方法不正确。 D.软件很难理解,硬件也很复杂。 9、软件开发瀑布模型中的软件定义时期各个阶段依次是() A.可行性研究,问题定义,需求分析。 B.问题定义,可行性研究,需求分析。 C.可行性研究,需求分析,问题定义。 D.以上顺序都不对。 10、下列选项中()是软件开发中存在不正确的观念、方法。 A.重编程、轻需求 B.重开发,轻维护 C.重技术,轻管理 D.以上三条都是 二、填空题 1、软件工程的三个基本要素包括()、()和()。 2、一般软件应该有三部分组成:()、()和()。 3、按软件的功能可将软件分成()、()和()等三类。 4、计算机软件的生存期可以分为六个步骤,它们是()、()()、()、软件测试和运行/维护。 5、软件质量是与软件产品满足规定的和隐含的需求的能力有关的()的全体。 6、软件危机是指在()所遇到的一系列严重问题。 7、程序设计时代的生产方式是个体手工,程序系统时代的生产方式是作坊式小团体,软件工程时代的生产方式是()。 8、喷泉模型是一种以需求分析为动力,以()为驱动的模型。 三、名词解释 1、CASE 2、软件工程 3、计算机软件 2、软件生存期 四、简答题 1、什么是软件危机?其主要表现有那些? 2、程序的可移植性 3、为什么说“CASE领域是一个应用、集成和综合的领域”?

软件工程练习题

一.填空题 1.软件生命周期分为、需求分析、概要设计、详细设计、软件实现、软件测试及运行维护7个阶段。 2. 是最早的软件生存周期开发模型,它将软件开发过程中的各项活动规定为依固定顺序连接的若干阶段工作,形如瀑布流水,最终得到软件系统或软件产品。 3. 是一种软件开发模型,在这种模型的每一个阶段,都要编码产生一个新的构件,并将新构件集成到先前已经构成的产品中并作为一个整体进行测试,直到满足用户需求为止。 4.当没有足够的人员在规定的期限内开发完整的产品或者由于不可克服的客观原因而把交付期限规定的太短时应选用软件开发模型。 5. 是一种软件开发模型,由需求定义、风险分析、实施开发和计划评审4个部分组成,主要适用于大型软件项目开发。 6. 文档说明该软件开发项目的实现在技术上、经济上和社会因素上等方面的可行性,评述为了合理地达到开发目的可供选择的各种可能实施的方案,说明并论证所选定实施方案的理由。 7.可行性分析的目的是。 8. 用于描述系统的物理模型,用物理符号以黑盒子的形式描绘系统里的每个部件,仅表达信息在系统个部件之间流动的情况。 9. (一种图)可以用来进行项目进度管理。 10. 结构化分析与设计是一种面向的分析设计方法。 11. 常见的需求获取方式有、情景分析技术等。 12. 在结构化分析中,用于描述加工逻辑的工具主要有结构化语言、判定树和。 13. 数据字典中的条目主要有、数据流、文件和加工四种。 14. 结构化软件开发方法贯穿始终的八字方针为。 15. 在软件生命周期中的每一个阶段结束后必须进行,这是为了能尽早发现项目开发中的错误。 16. 是软件生命周期中重要的一步,是软件定义阶段的最后一个阶段,是关系到软件开发成败的关键步骤。 17. 数据流图分为变换型和两种类型。 18. 衡量不同模块彼此之间相互依赖的紧密程度。 19. 衡量不同模块彼此之间相互依赖的紧密程度。 20.在软件模块设计时应该采取的设计原则是。 21.内聚性与模块独立性的关系为内聚性越高,模块独立性越。

-软件工程习题答案参考

软件工程 绪论 1.什么是软件危机?为什么会产生软件危机? 答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。 (2).软件生产技术进步缓慢 2.什么是软件生产工程化?工程化生产方法与早期的程序设计方法 主要差别在哪里? 答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。 3.分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管 理的相互关系。 答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。新方法在推行初期,总有人不愿接受和采用。若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。所以对于一

个理想的软件工程环境,应该同时具备技术和管理两个方面。 4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。 答:用C++开发一个软件,是校园一卡通的模块。首先,要在编辑程序支持下在计算机中输入源程序。然后编译程序,把源程序翻译成目标程序。如果发现错误,就重新调入编辑程序对源程序进行修改。编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。 5.什么是软件工程环境?谈谈你对环境重要性的认识。答:方法与工具相结合,再加上配套的软、硬件支持就形成环境。例如在批处理时代,用户开发的程序是分批送入计算机中心的计算机的,有了错误,就得下机修改。程序员对自己写的程序只能继续地跟踪,思路经常被迫中断,效率难于提高。分时系统的使用,使开发人员从此能在自己的终端上跟踪程序的开发,仅此一点,就明显提高了开发的效率。 6. 何谓面向对象软件工程?简述它与传统软件工程在各型软件开发中的作用。 答:以面向对象程序设计为基础。 7. 软件按规模大小可分成哪几类?简述软件工程中各型软件开发中的作用。 答:按规模分为极小、小、中、大、甚大、极大。(1)中小型软件:

软件工程考试题(含答案)

软件工程考试题 简答题 1、什么叫软件? 软件就是计算机系统中与硬件相互依存的另一部分,它就是包括程序,数据及其相关文档的完整集合 2、什么叫软件危机?软件危机包含哪两点?软件危机产生的原因就是什么? 软件危机就是指在计算机软件开发与维护过程中所遇到的一系列严重问题。包括两点: (1)如何开发软件,以满足对软件日益增长的需求; (2)如何维护数量不断膨胀的已有软件。 软件开发与维护过程中存在的许多严重问题,一方面与软件本身的特点有关,另一方面也与软件开发与维护的方法不正确有关。具体表现如下: (1)软件就是逻辑部件而不就是物理部件。 (2)软件的规模越来越大,复杂性越来越大。 (3)轻视需求分析的重要性,轻视软件维护的错误观点与方法。 3、什么叫软件工程? 1968年在第一届NATO会议上的早期定义: “建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法”。 1993年IEEE的定义: “①软件工程就是:把系统的、规范的、可度量的途径应用于软件开发、运行与维护过程,也就就是把工程应用于软件;②进而研究①实现的途径”。 我们国家最近定义:软件工程就是指导计算机软件开发与维护的工程学科。它采用工程的概念、原理、技术与方法来开发与维护软件,把经过时间考验而证明正确的管理技术与当前能够得到的最好的技术方法结合起来。 4、两种软件工程方法学开发软件时要建立哪些模型? 软件工程方法学包括:传统方法学与面向对象方法学。常用的开发模型有: 瀑布模型(需求稳定,而且可以预先指定) 原型模型(需求模糊或者随时间变化) 增量模型(分析员先作出需求分析与概要设计,用户参与逐步完善) 螺旋模型(将瀑布模型与原型化模型结合起来,并加入了风险分析) 喷泉模型(使开发过程具有迭代性与无间隙性) 5、软件过程模型有哪些?简述它们的特点。 过程模型分为五大类:1、管理过程模型。2、瀑布模型(又称为生命周期模型)。3、增量过程模型:包括增量模型,,RAD模型。4、烟花过程模型:包括原型开发模型,螺旋模型,协同开发模型。5、专用过程模型:包括机遇构建的开发模型,形式化方法模型,面向方面的软件开发模型。 6、什么就是软件生命周期? 一个软件从定义,开发,使用与维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长时期称为生命周期 7、软件生命周期有哪几个阶段与步骤? 三个阶段:定义、开发、维护 八个步骤:问题定义、可行性研究、需求分析;总体设计、详细设计、编码与单元测试、综合测试;运行维护。 8、计算机软件的开发经过哪三个大阶段? 三个阶段:定义、开发、维护 9、软件开发的各阶段的任务就是什么? 定义阶段:问题定义--任务:关于规模与目标的报告书;可行性研究--任务:系统的高层逻辑模型:数据流图,成本/效益分析;需求分析--任务:系统的逻辑模型:数据流图,数据字典,算法描述。 开发阶段:总体设计--任务:系统流程图,成本/效益分析,推荐的系统结构:层次图/结构图;详细设计--任务:HIPO图或PDL 图;编码与单元测试--任务:源程序清单,单元测试方案与结果;综合测试--任务:综合测试方案,结果集成测试,验收测试,完整一致的软件配置。 维护阶段:软件维护--任务:维护记录以及改正性维护,适应性维护,完整性维护与预防性维护

软件工程习题

软件工程习题 CH1 一、填空题 1、软件工程需要解决的问题包括:、、、和。 2、到目前为止,软件生产的发展经历了三个阶段,即、和。 3、计算机科学中的研究曾国均可用于软件工程,但计算机科学侧重于,而软件工程侧重于。 4、软件工程有用管理科学的方法和原理进行。 5、软件工程是用科学知识和技术原理来、、软件的一门科学。 6、软件工程研究的主要内容包括软件开发技术和软件开发管理技术两个方面。在软件开发技术方面,主要研究、、。在软件开发管理技术方面主要研究、、。 7、作为一门交叉学科,软件工程具有很强的综合性,它涉及、、、等领域。 8、软件生产周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。通常包括、、、、、、、等活动,可以将这些活动以适当方式分配到不同阶段去完成。 9、开发软件工具的主要目的是为了提高软件生产效率和改善。 10、描述软件开发过程中各种活动如何执行的模型称为模型。 11、从软件工程诞生以来,已经提出了多种软件开发方法,如、、 ,它们对软件工程及软件产业的发展起到了不可估量的作用。 12、结构化方法由、和构成。它是一种面向的开发方法。 13、模型是一种非整体开发方法的模型。软件在该模型中是“逐渐”开发出来的,开发一部分向用户展示一部分,可让用户及早看到部分软件,及早发现问题。或者先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。 14、喷泉模型是一种以为动力,以作为驱动的模型,适合于的开发方法。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。喷泉模型使开发过程具有和。 15、结构化方法总的指导思想是。它的基本原则是功能的和。它是软件工程中最早出现的开发方法,特别适用于的问题。 16、螺旋模型将模型和模型结合起来,加入了两种模型均忽略了的风险分析,弥补了这两种模型的不足。 17、螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内分为4个工作步骤。第一步,确定目标,选定实施方案,明确开发限制条件。第二步,分析所选方案、识别风险,通过原型消除风险。第三步,实施软件开发。第四步,评价开发工作,提出修改意见,建立下一周期的计划。 18、面向对象开发方法包括、、三部分。

软件工程试题及答案

综合练习一答案 一.选择题: 1.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。 A.50年代末 B.60年代初C.60年代末 D.70年代初 A.运筹学B.工程学 C.软件学 D.软件学 E.数字 2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。 A.软件投机B.软件危机C.软件工程D.软件产生 3.产生软件危机的原因有如下几点,除了______。 A、软件开发过程未经审查 B、软件开发不分阶段,开发人员没有明确的分工 C、所开发的软件,除了程序清单外,没有其他文档 D、采用工程设计的方法开发软件,不符合软件本身的特点 4.软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是____。 A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件 C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用 5.请按顺序写出软件生命期的几个阶段____,____ ,____,____,____,____。 A.维护 B.测试 C.详细设计 D.概要设计 E.编码 F.需求分析6.瀑布模型把软件生存周期划分为软件定义、软件开发和____三个阶段,而每一阶段又可细分为若干个更小的阶段。 A.详细设计B.可行性分析C.运行及维护D.测试与排错7.划分软件生存周期的阶段时所应遵循的基本原则是_____。 A、各阶段的任务尽可能相关性 B、各阶段的任务尽可能相对独立 C、各阶段的任务在时间上连续 D、各阶段的任务在时间上相对独立 8.一个软件项目是否进行开发的结论是在______文档中作出的。 A、软件开发计划 B、可行性报告 C、需求分析说明书 D、测试报告 9.分析员是____。 A.用户中系统的直接使用者B.用户和软件人员的中间人 C.软件的编程人员 D。用户和软件人员的领导 10.下列叙述中,_______不属于数据字典的作用。 A、作为编码阶段的描述工具 B、为用户与开发人员之间统一认识 C、作为概要设计的依据 D、为需求分析阶段定义各类条目 11.使用结构化分析方法时,采用的基本手段是____。 A.分解和抽象 B.分解和综合C.归纳与推导D.试探与回溯12.结构化系统分析主要是通过____进行分析的。 A.算法分解B.控制结构分解 C.数据结构分解D.处理功能分解13.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的____。 总貌B.细节C.抽象D.软件的作者 13.变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于____。 A.变换型 B 事务型 14.需求分析说明书不能作为______。

软件工程部分课后练习题答案

第一章 1.计算机系统是由计算机硬件系统和软件系统这两个密不可分的部分组成的。 2.计算机软件系统通过运行程序来实现各种不同应用,包括用户为自己的特定目的编写的程序、检查和诊断机器系统的程序、支持用户应用程序运行的系统程序、管理和控制机器系统资源的程序等。 3.在软件工程学中,软件开发技术包括软件开发方法学、软件工具和软件工程环境。 4.在软件工程层次结构中,包括工具层、方法层、过程、技术层和质量保证层。 5.在面向对象概念中,消息传递是其与外部世界相互关联的唯一途径。 第三章 1.软件需求分析,可以把软件功能和性能的总体概念描述为具体的软件需求规格说明,进而建立软件开发的基础。 2.软件需求工作基本上包括收集用户、市场等方面对项目的需要,经过分析建立解题模型,细化模型,抽取需求。 3.结构化分析方法的基本步骤是采用由顶向下对系统进行功能分解,画出分层数据流图;由后向前定义系统的数据和加工,绘制数据词典和加工说明;最终写出软件需求和规格说明书。 4.面向对象分析方法总是从理解系统的“使用实例”开始,基本步骤是:定义系统的用例,在领域分析的基础上建立问题域的类(对象模型),然后开始建立对象——关系和对象——行为模型。 5.需求分析评审过程由以下5个步骤组成:规划、准备、召开审查大会、修改缺陷、重审。第四章 1.与软件需求分析一样,软件设计也有两种主要设计方法:以结构化设计为基础的结构化软件设计和面向对象方法指导的面向对象软件设计。 2.传统的软件设计任务通常分两个阶段完成。第一个阶段是概要设计,包括体系结构设计

和接口设计,并编写概要设计文档;第二阶段是详细设计,其任务是确定各个软件的数据结构和操作,产生描述各软件组件的详细设计文档。 3.结构化的软件设计方法是一种面向数据流的设计方法,在面向数据流的方法中,数据流是考虑一切问题的出发点。 4.在数据流图中所代表的结构化设计模型中,所有系统均可纳入两种典型的形式,因此系统结构图也有两种类型:变换型系统结构图,事务型系统结构图。 5.Jackson表示法包括图形描述(Jackson图)和文本描述(Jackson伪代码)两种形式。 第五章 1.与结构化设计一样,面向对象设计也是将分析阶段所建立的分析模型转变为软件设计模型,应用数据设计(对象属性设计)、接口设计(消息模型开发)以及过程设计(子系统级设计)。 2.当两个子系统相互通信时,可以建立客户机/服务器连接或端对端连接。 3.系统设计不仅包括主要的业务需求子系统设计,还包括用户界面子系统设计、任务管理子系统设计、数据管理子系统设计。 4.对象设计强调从问题域的概念转换成计算机领域的概念,通过对象的描述、算法和数据结构设计、程序构件和接口,实现相关的类、关联、属性和操作。 5.在面向对象设计中系统设计的主要目标是表示软件体系结构。对象设计着重于对象及其交互的描述 第八章 1.软件程序测试的目的是发现程序中的错误,其主要任务是通过在计算机上执行程序,暴露程序中潜在的错误。

软件工程试题库集及答案

综合练习一答案 选择题: 1.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。 A.50年代末B.60年代初C.60年代末D.70年代初 A.运筹学B.工程学C.软件学D.软件学E.数字2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。 A.软件投机B.软件危机C.软件工程D.软件产生 3.产生软件危机的原因有如下几点,除了______。 A、软件开发过程未经审查 B、软件开发不分阶段,开发人员没有明确的分工 C、所开发的软件,除了程序清单外,没有其他文档 D、采用工程设计的方法开发软件,不符合软件本身的特点 4.软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是____。 A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件 C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用5.请按顺序写出软件生命期的几个阶段____,____ ,____,____,____,____。 A.维护B.测试C.详细设计D.概要设计E.编码F.需求分析6.瀑布模型把软件生存周期划分为软件定义、软件开发和____三个阶段,而每一阶段又可细分为若干个更小的阶段。 A.详细设计B.可行性分析C.运行及维护D.测试与排错7.划分软件生存周期的阶段时所应遵循的基本原则是_____。 A、各阶段的任务尽可能相关性 B、各阶段的任务尽可能相对独立 C、各阶段的任务在时间上连续 D、各阶段的任务在时间上相对独立 8.一个软件项目是否进行开发的结论是在______文档中作出的。 A、软件开发计划 B、可行性报告 C、需求分析说明书 D、测试报告 9.分析员是____。 A.用户中系统的直接使用者B.用户和软件人员的中间人 C.软件的编程人员D。用户和软件人员的领导

软件工程习题参考答案

《软件工程》习题参考答案 概述 1.什么是软件危机,它有哪些典型表现 所谓“软件危机”就是,在计算机软件的开发和维护过程中所遇到的一系列严重的问题,概括起来归纳为:如何开发软件,以满足日益增长、日趋复杂的需要;如何维护数量不断膨胀的已有软件。 软件危机的典型表现主要有: a. 开发成本和进度不能准确估计 b. 开发出来的软件不能满足用户的要求 c. 软件的可维护性差 d. 软件质量不可靠 e. 软件成本在系统中的比重逐年上升 f. 软件开发生产率的提高速度不够 2.简述产生软件危机的原因和解决的思路。 软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。 解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。 3.什么是软件工程它有哪些本质特性 软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法进行软件开发和维护的学科。 其实质就是用工程的概念、原理、技术和方法,结合有效的管理方法和先进的开发技术,开发与维护软件,以解决软件危机。 4.软件工程是如何用来消除软件危机的 软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。 6.简述软件的定义。 软件=程序+ 数据+ 文档 7.软件工程的目的是什么 为高质量的软件开发提供一个科学的体系框架。 8.什么是软件工程方法学软件工程是一种什么样的技术包括哪三大要素分为哪三个分支 软件工程方法学就是指在软件生命周期全过程中使用的一整套管理和开发技术方法的集合。目前,使用最广泛的软件工程方法学分别是传统方法学和面向对象方法学。

软件工程综合习题及答案样本

软件工程综合习题( 1) 及答案 一、选择题 1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾, 这种现象称做( C) 。 A.软件工程 B.软件周期 C.软件危机 D.软件产生 2.瀑布模型本质上是一种( A ) 模型。 A.线性顺序 B.顺序迭代 C.线性迭代 D.早期产品 3.瀑布模型存在的问题是( B ) 。 A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求4.螺旋模型是一种将瀑布模型和( A) 结合起来的软件开发模型。 A.增量模型B.专家系统C.喷泉模型D.变换模型 5.原型化方法是用户和设计者之间执行的一种交互构成, 适用于( A) 系统。 A.需求不确定性高的B.需求确定的 C.管理信息D.实时 6.下列有关软件工程的标准, 属于国际标准的是(D ) A.GB B.DIN C.ISO D.IEEE 7.结构化方法是一种基于( D) 的方法。 A.数据结构 B.程序结构 C.算法 D.数据流 8.软件可行性研究实质上是要进行一次( A)需求分析、设计过程。 A、简化、压缩的 B、详细的 C、彻底的 D、深入的 9.可行性研究的目的是( D) A、分析开发系统的必要性 B、确定系统建设的方案 C、分析系统风险 D、确定是否值得开发系统 10.设年利率为i, 现存入p元, 不计复利, n年后可得钱数为( C) 。 A、 P×(1+i*n) B、 P× (i+1)*n C、 p×(1+i)n D、 p×(i+n) 11.可行性研究是在( A) 之前 A、系统开发 B、测试 C、试运行 D、集成测试 12.可行性研究需要的时间长短取决于系统的规模, 一般来说, 可行性研究的成本只是

软件工程练习题&答案

软件工程练习题 一. 选择题(单选或多选) (1)需求分析阶段最重要的技术文档是( C )。 A)项目开发计划B) 设计说明书C)需求规格说明书D) 可行性分析报告 (2)在软件工程中,白盒测试法可用于测试程序的内部结构。此方法将程序看作是(A ) A) 路径的集合B) 循环的集合C) 目标的集合 D) 地址的集合 (3)在以下模块耦合性类型中,模块之间独立性最差的类型是( D ) A) 非直接耦合B) 标记耦合C)控制耦合D)内容耦合 (4)软件详细设计的主要任务是对(A)进行的详细设计。 A) 算法和数据结构B) 外部接口C)软件编码D)功能 (5)Jackson方法是一种面向(C)的结构化方法。 A) 数据流B) 对象C)数据结构D)控制流 (6)一个成功的测试可以( D )。 A) 表明程序没有错误B) 发现所有错误C)提高软件可靠性D)发现尚未发现的错误 (7)下述陈述中,哪一个不是软件健壮性的度量指标?(C )。 A)失败后重新启动所需的时间B)引起失败的时间所占的百分比 C)失败前的平均工作时间D)在一次失败中数据恶化的概率 (8)黑盒技术设计测试用例的方法之一为( A )。 A)因果图B)逻辑覆盖C)循环覆盖D)基本路径测试 (9)CMM模型将软件过程的成熟度分为5个等级,以下选项中,属于可管理级的特征是(D )。 A)工作无序,项目进行过程中经常放弃当初的计划 B)建立了项目级的管理制度 C)建立了企业级的管理制度 D)软件过程中活动的生产率和质量是可度量的 (10)在面向数据流的软件设计方法中,一般将信息流分为( A )。 A)变换流和事务流B)变换流和控制流 C)事务流和控制流D)数据流和控制流 (11)软件设计中一般将用到图形工具,下述哪种工具可用作设计的图形工具。( ABCDEF ) A)结构图B)实体关系图C)IPO图D)流程图E) N-S图F) 判定树(12)软件需求分析阶段建立原型的主要目地是( C )。 A)确定系统的性能要求B)确定系统的运行要求 C)确定系统是否满足用户需要D)确定系统是否满足开发人员需要 (13)要显示描绘软件开发项目各作业的依赖关系,应选择(B )。 A)Gantt图B)工程网络图C)CoCoMo模型D)数据流图 (14)软件开发中需求分析的主要任务是( D )。 A)给出软件解决方案B)给出系统模块结构 C)定义模块算法D)定义需求并建立系统模型

软件工程综合应用例题解析

软件工程综合应用例题 第一部分 《结构化软件开发方法》 1、根据下列描述,画出教材征订系统的第一层数据流图。学生入学后到教材科订书,教材科根据教材库存情况分析是否需要买书,如需购买,则向书店购买。各种资金往来通过学校的会计科办理。 解: 2、高考录取统分子系统有如下功能: (1) 计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件; (2) 计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。 试根据要求画出该系统的数据流程图,并将其转换为软件结构图。 解:(1)数据流图: (2)软件结构图: ① 原始分 ② 标准分 ③ 招生计划 ④ 录取线 3、有下列伪码程序: START INPUT (M,N) IF M>=10 THEN X:=10 ELSE X:=l ENDIF IF N>=20 THEN Y:=20 ELSE Y:=2 ENDIF PRINT(X,Y) STOP

设计该程序的语句覆盖和路径覆盖测试用例。 解: 语句覆盖测试用例为 ①M=9(或=10),N=20(或>=20) 路径覆盖的测试用例为 ①M=9,N=19; ②M=9、N=20; ③M=l0,N=l9; ④M=10,N=20 4、画出下列伪码程序的程序流程图、盒图(N-S图)、PAD图。 START IF p THEN WHILE q DO F END DO ELSE BLOCK g n END BLOCK END IF STOP 解: 5、根据下面程序流程图,给出测试用例: 解:路径覆盖可使用测试用例: ⑴【A=1,B=1,X=1】 ⑵【A=1,B=1,X=2】

软件工程综合应用例题(题)

综合应用例题 第一部分传统软件开发方法 1、某一8位计算机,其十六进制常数的定义为:以0x或0X开头的数是十六进制整数,其值的 围是-7f至7f(大小写字母不加区别),如0x13,0X6A,-0x3c 。 请用等价类划分法设计测试用例。 2、下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。 int GetMax(int n, int datalist[ ]) { int k=0; for ( int j=1; j datalist[k] ) k=j; return k; } 画出该程序的程序流程图,并计算其McCabe复杂度。 3、有下列伪码程序: START INPUT (M,N) IF M>=10 THEN X:=10 ELSE X:=l ENDIF IF N>=20 THEN Y:=20 ELSE Y:=2 ENDIF PRINT(X,Y) STOP 设计该程序的语句覆盖和路径覆盖测试用例。 4、根据伪码程序画出程序流程图,盒图(N-S图)。 START a IF x1 THEN REPEAT UNTIL x2 b END REPEAT ELSE BLOCK c d END BLOCK

END IF STOP 5、根据下列描述,画出教材征订系统的第一层数据流图。学生入学后到教材科订书,教材科根据教材库存情况分析是否需要买书,如需购买,则向书店购买。各种资金往来通过学校的会计科办理。 6、画出下列伪码程序的程序流程图,盒图(N-S图)。 START IF p THEN WHILE q DO F END DO ELSE BLOCK g n END BLOCK END IF STOP 7、画出下面PDL伪码程序的程序流程图、N-S图、PAD图和程序流图,并计算其McCabe复杂度。 WHILE P DO IF A>O THEN A1 ELSE A2 ENDIF; IF B>0 THEN B1; IF C>0 THEN C1 ELSE C2 ENDIF ELSE B2 ENDIF; B3 ENDWHILE; 8、根据下面伪码程序,设计语句覆盖、路径覆盖、边覆盖、判定覆盖、条件覆盖、点覆盖的测试用例。 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 9、某培训中心要研制一个计算机管理系统。它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。 如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。 如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件上做相应的修改,并给学生注销单。 如果是付款的,则由财务人员在帐目文件上登记,也给学生一收费收据。

软件工程习题1及答案

第一章概论 一.选择题 1.软件是计算机系统中与硬件相互依存的另一部分,它包括文档,数据以及() A 数据 B 软件 C 文档 D 代码 2.软件工程中描述生存周期的瀑布模型一般包括计划、()、设计、编码、测试、维护等几个阶段。 A 需求分析 B 需求调查 C 可行性分析 D 问题定义 3.在结构化的瀑布模型中,()阶段定义的标准将成为软件测试中的系统测试阶段的目标。 A 需求分析 B 详细设计 C 概要设计 D 可行性研究 4.从结构化的瀑布模型看,在它的生命周期的8个阶段中,下面的几个选项中()环节出错,对软件的影响最大。 A 详细设计阶段 B 概要设计阶段 C 需求分析阶段 D 测试和运行阶段 5.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是()。 A 硬件环境 B 软件开发的环境 C 软件开发工具和软件开发的环境 D 开发人员的 素质 6.软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为()。 A 相互排斥 B 相互补充 C 独立使用 D 交替使用 7.软件开发的瀑布模型一般都将开发过程划分为分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是()。 A 分析阶段 B 设计阶段 C 编码阶段 D 测试阶段 答案:1、D 2、A 3、D 4、C 5、C 6、B 7、D 第二章软件计划 一、选择题 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 判定表与判定树 答案:1、B 2、ABCD 3、A 4、AB 5、A 第三章需求分析 一、选择题 1.进行需求分析可使用多种工具,但()是不适用的。 A 数据流图 B 判定表 C PAD图 D 数据字典 2.在软件的需求分析中,开发人员要从用户那里解决的最重要的问题是()。

相关文档
最新文档