软件工程例题分解

软件工程例题分解
软件工程例题分解

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 图:

PAD 图:

T

F

UNTIL B

START

STOP

Z

X2Y

X1

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

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

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

父图 子图

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

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

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

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

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

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

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

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

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

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

(3)初步判定表

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 环路复杂度。

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. 用Jackson 图表示下图所示的二维表格:

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

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

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

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

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

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

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

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

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

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

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

题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 之间的耦合是数据耦合,耦合程度较低,因此模块的独立性好,所以图2的设计方案2好。

题42 图1 设计方案1

题42 图2 设计方案2

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

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

划分等价类:

设计测试用例:

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为加工处理。试用判定表给予描述。

答:

或者

T

T T F

F F

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.软件产品的特性是什么?

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。

软件测试工程师笔试题及答案

测试工程师笔试题 一、计算机知识(30分) 1、在Linux系统中,一个文件的访问权限是755,其含义是什么? 参考答案: 755表示该文件所有者对该文件具有读、写、执行权限,该文件所有者所在组用户及其他用户对该文件具有读和执行权限。 2、Linux中,如何从root用户切换到普通用户? 参考答案:su su user1 切换到user1,但切换后的当前目录还是root访问的目录 su – user1 切换到user1,并且当前目录切换到user1的根目录下(/home/user1/) 3、简述一下C/S模式和B/S模式的区别? 参考答案: c/s 是客户端/服务器架构 b/s 是浏览器/服务器架构 C/S模式有以下特点: 1.C/S模式将应用与服务分离,系统具有稳定性和灵活性 2.C/S模式配备的是点对点的结构模式,适用于局域网,有可靠的安全性 3.由于客户端实现与服务器端的直接连接,没有中间环节,因此响应速度快 4.在C/S模式中,作为客户机的计算机都要安装客户机程序,一旦软件系统升级,每台客户机都要安装客户机程序,系统升级和维护较为复杂 B/S模式有以下特点: 1.系统开发、维护、升级方便 每当服务器应用程序升级时,只要在服务器上升级服务应用程序即可,用户计算机上的浏览器软件不需要修改,系统开发和升级维护方便 2.B/S模式具有很强的开放性 在B/S模式下,用户通过通用的浏览器进行访问,系统开放性好 3.B/S模式的结构易于扩展 由于Web的平台无关性,B/S模式的结构可以任意扩展,可以从包含一台服务器和几个用户的小型系统扩展成为拥有成千上万个用户的大型系统 4.用户使用方便 B/S模式的应用软件都是基于Web浏览器的,而Web浏览器的界面是类似的。对于无用户交换功能的页面。用户接触的界面都是一致的,用户使用方便 4、Windows操作系统中PATH环境变量的作用是什么? 参考答案: PATH是Windows操作系统环境变量,PATH作用是用户在命令行窗口执行一个命令,则在PATH变量设置的目录下依次寻找该命令或对应的执行文件,若找到,则执行,若没有找到,则命令行窗口返回无效命令。 5、TCP和UDP有什么区别? 参考答案: TCP-有连接,所以握手过程会消耗资源,过程为可靠连接,不会丢失数据,适合大数据量交换

软件工程复习题库带答案完整版

一、选择题 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.输入、输出、外部实体和加工 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)软件。

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

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

软件工程试题库集及答案

综合练习一答案 选择题: 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、及早见产品模型 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.软件测试的目的是尽可能多的找出软件的缺陷。(Y) 2.Beta测试是验收测试的一种。(Y) 3.验收测试是由最终用户来实施的。(N) 4.项目立项前测试人员不需要提交任何工件。(Y) 5.单元测试能发现约80%的软件缺陷。(Y) 6.代码评审是检查源代码是否达到模块设计的要求。(N) 7.自底向上集成需要测试员编写驱动程序。(Y) 8.负载测试是验证要检验的系统的能力最高能达到什么程度。(N) 9.测试人员要坚持原则,缺陷未修复完坚决不予通过。(N) 10.代码评审员一般由测试员担任。(N) 11.我们可以人为的使得软件不存在配置问题。(N) 12.集成测试计划在需求分析阶段末提交。(N) 二、选择题 1.软件验收测试的合格通过准则是:(ABCD) A.软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。B.所有测试项没有残余一级、二级和三级错误。 C.立项审批表、需求分析文档、设计文档和编码实现一致。 D.验收测试工件齐全。 2.软件测试计划评审会需要哪些人员参加?(ABCD) A.项目经理 B.SQA负责人

D.测试组 3.下列关于alpha测试的描述中正确的是:(AD) A.alpha测试需要用户代表参加 B.alpha测试不需要用户代表参加 C.alpha测试是系统测试的一种 D.alpha测试是验收测试的一种 4.测试设计员的职责有:(BC) A.制定测试计划 B.设计测试用例 C.设计测试过程、脚本 D.评估测试活动 5.软件实施活动的进入准则是:(ABC) A.需求工件已经被基线化 B.详细设计工件已经被基线化 C.构架工件已经被基线化 D.项目阶段成果已经被基线化 三、填空题 1.软件验收测试包括:正式验收测试,alpha测试,beta测试。 2.系统测试的策略有:功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试,(有的可以合在一起,分开写只要写出15就满分哦) 3.设计系统测试计划需要参考的项目文挡有:软件测试计划,软件需求工件和迭代计划。

软件工程题库及答案

一、选择题 软件(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)

软件工程试题及答案

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

软件工程试题及答案

软件工程 一、选择题 1、软件需求规格说明的内容不包括(B) A、主要功能 B、算法的详细描述 C、用户界面及运行环境 D、软件的性能 2、面向对象的分析方法主要是建立三类模型,即(D) A、系统模型、ER模型、应用模型 B、对象模型、动态模型、应用模型 C、ER模型、对象模型、功能模型 D、对象模型、动态模型、功能模型 3、在ER模型中,包括以下基本成分(C) A、数据、对象、实体 B、控制、联系、对象 C、实体、联系、属性 D、实体、属性、操作 4、各种软件维护的类型中最重要的是(A) A、完善性维护 B、纠错性维护 C、适应性维护 D、预防性维护 5、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-2.0,2.0],现从输入的角度考虑一组测试用列-2.001,-2,20,2.001,设计这组测试用列的方法是(C) A、条件覆盖法 B、等价分类法 C、边界值分析法 D、错误推测法 6、下列白盒测试法,哪种是最强的覆盖准则(D) A、语句覆盖 B、条件覆盖 C、判定覆盖 D、条件组合覆盖 7、确定测试计划是在(A)阶段制定的。 A、总体设计 B、详细设计 C、编码 D、测试 8、数据字典是软件需求分析阶段最重要的工具之一,其最基本的功能是(C) A、数据库设计 B、数据通信 C、数据定义 D、数据维护 9、软件开发当中,抽取和整理用户需求并建立问题域精确模型的过程(D) A、生成期 B、软件意向 C、结构化程序设计 D、面向对象分析 10、以下不属于IT企业当中过程管理和过程改进模型的是(D) A、ISO9001 B、CMMI C、软件企业文化 D、UML 11、适合互联网上编程并可供不同平台运行的面向对象程序设计的语言是(java) 12、软件结构图中,模块之间用直线连接,则表示他们之间存在(A )。 A、调用关系 B、组成关系 C、链接关系 D、顺序执行关系 13、生命周期方法设计软件的过程中,画用例图属于(A)阶段的工作。 A、需求分析 B、概要设计 C、详细设计 D、软件维护 14、PDL属于(B)语言。 A、高级程序设计语言 B、伪码 C、中级程序设计语言 D、低级程序设计语言 15、成功的测试是(发现至今尚未发现的错误) 16、软件开发的瀑布模型典型的刻画了软件生成周期的阶段划分,与其想适应的软件开发方法是(即瀑布模型采用什么样的软件开发方法?)(B)。 A、构建化方法 B、结构化方法 C、面向对象方法 D、快速原型方法 17、软件结构图的形态特征能反应程序重用率的是(C) A、深度 B、宽度 C、扇入 D、扇出 18、维护过程的本质是(D)的过程。 A、修改程序 B、修改文档 C、修改位置 D、压缩的修改软件定义和开发 19、软件危机的表现: 答:由于软件特点和长期以来一直没有发明一种高校的开发方法,导致软件生产效率非常低,交付期一拖再拖,最终交付的软件产品在质量上很难保障。这种现象早在20世纪60年代被定义为“软件危机”。它的具体表现如下:

软件工程试题及答案

综合练习一答案 一.选择题: 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.需求分析说明书不能作为______。

2020年软件测试工程师资料与面试题

开发思想,逻辑能力 目录 测试用例 (2) 测试用例的设计 (3) (一)白盒技术 (3) (二)黑盒技术 (4) 面试题 (9)

测试用例 测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。测试用例构成了设计和制定测试过程的基础。 编制测试用例的具体做法: 1、测试用例文档 2、测试用例的设置 3、设计测试用例 测试用例在软件测试中的作用: 1、指导测试的实施。测试用例主要适用于集成测试、系统测试和回归测试。 2、规划测试数据的准备 3、编写测试脚本的"设计规格说明书" 4、评估测试结果的度量基准。完成测试实施后需要对测试结果进行评估,并且编制测试报告。判断软件测试是否完成、衡量测试质量需要一些量化的结果。例:测试覆盖率是多少、测试合格率是多少、重要测试合格率是多少,等等。 5、分析缺陷的标准 测试用例的设计 (一)白盒技术

(二)黑盒技术 黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。 1.等价类划分 (1)划分等价类。 ①如果某个输入条件规定了取值范围或值的个数。则可确定一个合理的等价类(输入值或数在此范围内)和两个不合理等价类(输入值或个数小于这个范围的最小值或大于这个范围的最大值)。 ②如果规定了输入数据的一组值,而且程序对不同的输入值做不同的处理,则每个允许输入值是一个合理等价类,此处还有一个不合理等价类(任何一个不允许的输入值)。

软件工程考试题库完整

类型一: 1. 软件定义时期包括两个阶段,它们是(可行性研究)和(需求分析)两个阶段。 2. 数据流图有(4)种基本符号,数据流图中,箭头表示(数据流)。 3. 数据流图有变换型结构和(事务)型结构两种类型。 4. 4个人之间的通信量是(6) 5. 评定模块的独立性的标准是耦合和聚。(耦合)是对软件部块间联系的度量, 按照由弱到强的顺序,可以把它分为(7)类。其中,最弱的是(非直接耦合), 最强的是(容耦合) 6.程序结构的复杂性度量值V(G)取决于程序控制流的复杂程度。顺序结构的V(G)值为(1),选择结构的为(2)。 7. 在模块结构图中,(扇入)是指直接调用该模块的模块数 8.模块的独立性可用耦合和聚的高低来评定,设计较好的模块要求(聚)高、耦合(低)。 9. 语句覆盖测试技术是(白盒测试)方法的一种 10. 等价类划分技术是属于(黑盒测试)方法的 11. 按维护的起因,可以将维护活动分为4类:(改正性维护)、(适应性维护)、完善性维护和预防性维护。完善性维护占总维护量的(50%以上)。 12.软件项目的可行性研究要进行一次(简化的、压缩的)需求分析。 13、系统流程图用于可行性分析中的(当前运行系统)的描述。 14、程序的三种基本控制结构的共同特点是(只有一个入口和一个出口) 15、维护中,因误删除一个标识符而引起的错误是(编码)副作用。 16、(技术评审)是以提高软件质量为目的的技术活动。 17、面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。因此面向对象方法有许多特征,如软件系统是由对象组成的;(把对象划分成类,每个对象类都定义一组数据和方法);对象彼此之间仅能通过传递消息互相联系;层次结构的继承。 18、原型化方法是用户和设计者之间执行的一种交互构成,适用于(需求不确定性高的)系统。 19.在下列工具与环境中(结构的基于图形CASE )属于较早期的CASE。 20.Putnam成本估算模型是一个(动态多变量)模型。 21.在McCall软件质量度量模型中,(适应性)属于面向软件产品修改。 22.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是(SQDC )23.软件复杂性度量的参数包括(规模) 24.对象实现了数据和操作的结合,使数据和操作(封装)于对象的统一体中。25.软件调试技术包括(演绎法) 26.瀑布模型的存在问题是(缺乏灵活性) 27.软件测试方法中的静态测试方法之一为(计算机辅助静态分析) 28.软件生命周期中所花费用最多的阶段是(软件维护) 29.第一个体现结构化编程思想的程序设计语言是(PL/1语言) 30.程序的三种基本控制结构是(顺序、选择和重复) 31.在详细设计阶段,经常采用的工具有(PAD ) 32.详细设计的结果基本决定了最终程序的(质量) 33.需求分析中开发人员要从用户那里了解(软件做什么) 34.结构化程序设计主要强调的是(程序易读性)

软件测试工程师笔试题

一、判断题 1.软件测试就是为了验证软件功能实现的是否正确,是否完成既定目标的活动,所以软件测试在软件工程的后期才开始具体的工作。(?) 分析:软件测试人员应在需求阶段就加入到开发过程中。因为软件的质量问题会随着软件开发周期的不断展开而不断放大的,而更正质量问题的成本也是不断放大的,也就是说在需求阶段出现的小问题,到开发完成后缺陷可能成几何倍数放大,而修改所需要的成本也会不断的放大,如果测试工程师能够尽早的加入其中的话可以尽早的找出问题,及时发现,避免问题最后放大到不可收拾。 2.发现错误多的模块,残留在模块中的错误也多。(?) 分析:开发人员能力参差不齐,当发现某模块bug数越多,修改的bug越多,则引入新的bug就会越多,那么这些新的bug发现的难度要比修改前发现bug要大的多,其隐藏未发现的bug数量就越多,那么相应的模块质量也就越差。代码复用也可能造成该模块的bug比较多。 3.测试人员在测试过程中发现一处问题,如果影响不大,而自己又可以修改,应立即将此问题正确修改,以加快、提高开发的进程。(?) 分析:正确流程应提交错误缺陷,此时开发组人员会有记录,并修改此问题。如果测试人员自己修改,会导致开发人员无记录,容易出现冗余系统版本,并不清楚哪个为最终版本。 4.单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试。(?) 5.功能测试是系统测试的主要内容,检查系统的功能、性能是否与需求规格说明相同。(?) 6.软件质量管理即QM是由QA和QC构成,软件测试属于QC的核心工作内容。(?) 补充:
QA(QualityAssurance)品质保证;
QC(QualityConterller)品质控制员 7.软件测试只能发现错误,但不能保证测试后的软件没有错误。(?) 8.软件就是程序。(?) 概念:软件是计算机程序,程序所用的数据以及相关文档资料的结合。软件又分为系统软件和应用软件两大类。 9.测试只要做到语句覆盖和分支覆盖,就可以发现程序中的所有错误。(?) 分析:白盒测试用例设计6种覆盖方法: a.语句覆盖 b.判定覆盖 c.条件覆盖 d.判定/条件覆盖 e.组合覆盖 f.路径覆盖 软件测试的目的是发现软件中的错误,但不能保证软件没有错误。 10.I18N测试是指对产品做出具有国际性的规划,而L10N测试则是指软件做出符合本地的工作。(?)

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

软件工程综合习题( 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、根据下列描述,画出教材征订系统的第一层数据流图。学生入学后到教材科订书,教材科根据教材库存情况分析是否需要买书,如需购买,则向书店购买。各种资金往来通过学校的会计科办理。 解: 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、怎么来设计测试方案 根据测试需求(包括功能需求和非功能性需求),识别测试要点,识别测试环境要求,安排测试轮次,根据项目计划和开发计划做整体的测试安排。 被测试的特性:通过对需求规格说明书进行分析,列出本次测试需要进行测试的各部分特性(如要测试的功能需求、性能需求、安全性需求等等)。 不被测试的特性:由于资源、进度等方面原因,本次测试不列入测试范围的特性。 测试组网图:进行本次系统测试所需要的软硬件设备、配置数据及相互间的逻辑、物理连接。今后测试执行时需要依据这个组网图来进行环境的搭建。 2、如果给你一个B/S系统你怎么来进行测试 此题答案还可用于回答测试流程,测试流程题亦可参考15题。 阅读系统需求,充分理解需求,记录问题,并与项目需求人员充分沟通。 编写测试需求,包括系统功能和非功能测试要点、罗列测试类型、测试进度、质量要求等。 制定测试计划,包括熟悉测试业务、设计测试用例、执行测试用例、进行测试小结、编写测试报告,任务颗粒度一般应小于5人天 编写测试用例,根据测试方案设计用例,即便没有明确的性能和安全测试要求,也应识别进行此两项测试。 执行软件测试。 进行测试小结,如果测试持续时间较长,每个版本间隙总结本轮测试。 编写测试报告,总结测试过程,汇总度量数据。 3、怎么进行工作流的测试 把握需求,找准结点,理清流程,画出流转图,弄清节点间的数据流转,设计测试用例的时候必须覆盖所有可能的流程。 工作流: 如果问到有没有做过,根据对工作流的了解情况回答,如果比较了解,可以把参与的某个项目中说上一些有工作流的,如果不是很了解就说没有做过,但是学习过相关知识。 4、做性能测试的时候都需要关注哪些参数 并发访问量,服务器响应时间(最小、平均、最大) 并发性能测试的过程是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。 负载测试(Load Testing)是确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统组成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等来决定系统的性能。 负载测试是一个分析软件应用程序和支撑架构、模拟真实环境的使用,从而来确定能够接收的性能过程。压力测试(Stress Testing)是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。 疲劳测试是采用系统稳定运行情况下能够支持的最大并发用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程。疲劳强度测试可以采用工具自动化的方式进行测试,也可以手工编写程序测试,其中后者占的比例较大。 一般情况下以服务器能够正常稳定响应请求的最大并发用户数进行一定时间的疲劳测试,获取交易执行指标数据和系统资源监控数据。如出现错误导致测试不能成功执行,则及时调整测试指标,例如降低用户数、缩短测试周期等。还有一种情况的疲劳测试是对当前系统性能的评估,用系统正常业务情况下并发用户数为基础,进行一定时间的疲劳测试。 大数据量测试可以分为两种类型:针对某些系统存储、传输、统计、查询等业务进行大数据量的独立数据量测试;与压力性能测试、负载性能测试、疲劳性能测试相结合的综合数据量测试方案。大数据量测试的关键是测试数据的准备,可以依靠工具准备测试数据。 5、客户没给性能指数,怎么开展性能测试 如果客户没有提出明确的性能指标,可以按照惯例和经验设置,需要和项目经理协商,一般由项目经理确认,质量保证负责给出建议。 举例说一个Server端程序,要求峰值时CPU和MEM消耗在75%以下,而一个页面的访问响应时间一般认为

相关文档
最新文档