文档库 最新最全的文档下载
当前位置:文档库 › 软件工程复习题目+答案

软件工程复习题目+答案

软件工程复习题目+答案
软件工程复习题目+答案

一、选择题

1、软件是一种(2)性工业产品。

(1)理论(2)知识(或逻辑)(3)消耗(4)体力

2、需求分析是在(2)进行的。

(1)用户(2)用户和分析人员之间

(3)开发人员内部(4)使用和维护人员之间

3、在软件的可行性研究中经常从不同角度对系统进行可行性研究,其中从功能角度对

系统进行研究属于(2)的研究。

(1)经济可行性(2)技术可行性(3)操作可行性(4)法律可行性

4、在软件工程项目中,不随参与人员的增加而使软件的生产率增加的主要问题是(4)。

(1)工作阶段的等待时间(2)生产原型的复杂性

(3)参与人员所需的工作站数(4)参与人员之间的沟通困难

5、需求分析阶段的研究对象是(1)。

(1)用户需求(2)分析员要求(3)系统需求(4)软硬件需求

6、对某公司进行调查分析,确定是否值得开发一个新系统的工作是进行(4)。

(1)系统设计(2)系统分析(3)系统详细调查(4)系统初步调查

7、系统分析员应当(4)。

(1)善于使用户接受自已的观点(2)善于使自已获得成就

(3)是用户与计算机技术人员的有效协调与组织者(4)满足上述所有条件

8、数据流图的绘制过程,是对新系统的需求进行综合分析和形成新系统(1)的过程。

(1)逻辑模型(2)物理模型(3)总体方案(4)可行性报告

9、系统测试的目的是(4)。

(1)找出编码错误(2)找出数据错误

(3)要证明程序无错(4)发现软件错误

10、一个模块内部各程序段都在同一张表上操作,这个操作的内聚性称为(3)。

(1)时间内聚(2)功能内聚(3)通信内聚(4)顺序内聚

11、对象是面向对象开发的基本成分,每个对象可用它的一组(3)和它可以执行的一组操作来定义。(1)服务(2)参数(3)属性(4)调用

12、最高程度也是最差的耦合是(2)。

(1)公共耦合(2)内容耦合(3)控制耦合(4)数据耦合

13、概要设计阶段产生的文档不包括(4)。

(1)概要设计说明书(2)数据库设计说明书(3)用户手册(4)开发进度报告

14、汽车有一个发动机,汽车和发动机之间的关系是(2)。

(1)一般具体关系(2)整体部分关系(3)分类关系(4)is a 关系

15、覆盖准则最强的是(4)。

(1)语句覆盖(2)判定覆盖(3)条件覆盖(4)路径覆盖

16、下面对数据流图描述不正确的是(4)。

(1)是组织中信息运动的抽象(2)是系统模型的主要形式

(3)它与对系统的物理描述无关(4)所描述的内容是面向管理员的

17、在基本的数据加工中,决策树适合于表达(2)。

(1)决策或判断步骤较多的加工问题

(2)决策或判断条件较多,各条件又相互组合的问题

(3)非结构化决策问题

(4)半结构化决策问题

18、调试应该由(2)完成。

(1)与源程序无关的程序员(2)编制该源程序的程序员

(3)不了解软件设计的机构(4)设计该软件的机构

19、导出模块结构图的基础是(2)

(1)系统结构图(2)数据流图(3)数据结构图(4)控制结构图

20、程序员进行程序设计的主要文档依据是(2)

(1)模块说明书(2)系统流程图(3)控制流程图(4)数据流图

21、面向对象程序设计语言不同于其它语言的最主要特点是(3)。

(1)模块性(2)抽象性(3)继承性(4)共享性

22、软件部件的内部实现与外部可访问性分离,这是指软件的(3)。

(1)继承性(2)共享性(3)封装性(4)抽象性

23、在确定类时,候选的类是所有的(1)。

(1)名词(2)形容词(3)动词(4)代词

24、在面向对象方法中,信息隐蔽的实现是通过对象的(3)。

(1)分类性(2)继承性(3)封装性(4)共享性

25、每个对象可用它自已的一组属性和它可以执行的一组(3)来表示。

(1)行为(2)功能(3)操作(4)数据

26、面向对象的主要特征除对象唯一性、封装、继承外,还有(1)。

(1)多态性(2)完整性(3)可移植性(4)兼容性

27.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)

A.软件工程

B.软件周期

C.软件危机

D.软件产生

28.研究开发所需要的成本和资源是属于可行性研究中的(B)研究的一方面。

A.技术可行性

B.经济可行性

C.社会可行性

D.法律可行性

29.黑盒测试在设计测试用例时,主要需要研究(A)

A.需求规格说明与概要设计说明

B.详细设计说明

C.项目开发计划

D.概要设计说明与详细设计说明

30.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是(C)

A.条件覆盖法

B.等价分类法

C.边界值分析法

D.错误推测法

31.下列属于维护阶段的文档是(C)

A.软件规格说明

B.用户操作手册

C.软件问题报告

D.软件测试分析报告

32.快速原型模型的主要特点之一是(D)

A.开发完毕才见到产品

B.及早提供全部完整的软件产品

C.开发完毕后才见到工作软件

D.及早提供工作软件

33.因计算机硬件和软件环境的变化而作出的修改软件的过程称为( B)

A.改正性维护

B.适应性维护

C.完善性维护

D.预防性维护

34.软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为(B)

A.可用性

B.可靠性

C.正确性

D.完整性

35.下列文档与维护人员有关的有(C)

A.软件需求说明书

B.项目开发计划

C.概要设计说明书

D.操作手册

36.在结构化方法中全面指导模块划分的最重要的原则是(D)

A.程序模块化

B.模块高内聚

C.模块低耦合

D.模块独立性

二、填空题

1、可行性研究的目的不是去开发一个软件项目,而是研究这个项目是否值得去开发,其中的问题能否解决。

2、软件结构的设计是以模块为基础的。

3、软件设计阶段,是把软件“做什么”的逻辑模型变换为“怎么做”的物理模型。

4、需求分析的关键是必须准确理解用户的要求,同时要满足用户的要求。最终解决目标系统“做什么”的问题。

5、数据流图一般可分为变换型和事务型两类。

6、HIPO图中H图用于描述软件总的模块层次结构,IPO图用于说明模块间的信息传递及模块内部的处理。

7、详细设计也称过程设计,它是软件设计的第二阶段,主要确定每个模块的具体执行过程。

8、处理过程设计中最典型的方法是结构化程序设计(SP)方法,其基本要点是采用的程序设计方法是自顶向下、逐步求精。

9、测试用例由输入数据和预期的输出数据两部分组成。

10、白盒法必须考虑程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能对的逻辑路径进行测试。

11、软件测试过程中需要3类信息:软件配置、测试配置和测试工具。

12、在详细设计阶段,需要对处理过程的模块和数据库的物理结构做评审。

13、对象具有状态,对象用数据值来描述它的状态。

14、数据流图描述系统的分解,即描述系统由哪几部分组成,各部分之间有什么联系等。

15、任何程序都可由顺序、选择和重复3种基本控制结构构造。这3种基本结构的共同点是单入口、单出口。

16、测试的目的就是发现程序中的错误,而不是调试程序没有错误。

17、面向数据流的设计又称结构化程序设计(SP),它是以需求分析阶段产生的数据流图为基础,按一定的步骤映射成软件结构。

18、可行性分析包括技术可行性、经济上的可行性和社会可行性。

19. 纯收入是指在整个生存周期之内的累计经济效益与投资之差。

20. 软件概要设计的主要任务就是软件结构的设计。

21. 在单元测试中,需要为被测模块设计驱动模块和存根模块。驱动模块用来模拟被测模块的上

级调用模块,存根模块用来代替被测模块所调用的模块。

三、名词解释

1、软件测试

软件测试是指为了发现软件中的错误而执行软件的过程。它的目标是尽可能多地发现软件中存在的错误,将测试结果作为纠错的依据。

2、详细设计

详细设计又称过程设计,“怎样实现”这个软件系统,对系统中的每个模块给出具体的执行过程。详细设

计主要包括代码设计、数据库设计、输入/输出设计、人机对话设计等。

3、数据耦合

如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦合称为数据耦合。

4、模块化

模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。

5、信息隐蔽

信息隐蔽是指在设计模块时,应让一个模块内包含的信息(过程和数据)对于其他不需要这些信息的模块来说是不能访问的。

6、耦合

耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。

7、功能内聚

如果模块内所处理的元素属于一个整体,完成一个单一的功能,则称为功能内聚。

8、事务流

事务流是指数据流图中输入流被分离成许多数据流,形成许多加工路径,并根据输入值选择其中一条路径来执行。

9、集成测试

集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如结构图)组装成为子系统或系统,进行集成测试。模块相互间的协调和通信是这个测试过程中的主要问题,因此,这个步骤着重测试模块的接口。

10、需求分析

需求分析是开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。需求分析的第一步是进一步了解用户当前所处的情况,发现用户所面临的问题和对目标系统的基本需求;接下来应该与用户深入交流,对用户的基本需求反复细化逐步求精,以得出对目标系统的完整、准确和具体的需求。

11、白盒测试

白盒测试指把测试对象看成一个透明的白盒子,测试人员需了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致,又称为结构测试。

12、黑盒测试

黑盒测试指把测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求,又称为功能测试。

13、渐增式测试

渐增式测试是把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合起来进行测试。

14、非渐增式测试

非渐增式测试是先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序。

15、软件概要设计

在需求分析的基础上通过抽象和分解将系统分解成模块,确定系统功能实现,即把软件需求转换为软件表示(只是描述软件总的体系结构)的过程。

16、模块

模块是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识符代表它。

17、路径覆盖

路径覆盖是指选取足够多测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次)。

18、条件覆盖

条件覆盖是指不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。19、判定/条件覆盖

判定/条件覆盖是指选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。

20、条件组合覆盖

条件组合覆盖是更强的逻辑覆盖标准,它要求选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。

四、简述题

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

软件设计的基本原理: (1)模块化(四个属性:接口、功能、逻辑、状态)(2)抽象(3)信息隐蔽(4)模块独立性(两个定性的度量标准:耦合性与内聚性)

2、需求分析应遵循的原则是什么?

所有这些分析方法都遵守下述准则:(1) 必须理解并描述问题的信息域,根据这条准则应该建立数据模型。

(2) 必须定义软件应完成的功能,这条准则要求建立功能模型。(3) 必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。(4) 必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。

3、为什么说软件测试是软件开发中不可缺少的重要一环,但不是软件质量保证的安全网?

①软件测试是软件开发中不可缺少的重要一环,原因是:A、测试的工作量约占整个项目开发工作量的40%左右,几乎一半。如果是关系到人的生命安全的软件,测试的工作量还要成倍增加。B、软件测试代表了需求分析、设计、编码的最终复审。②软件测试不是软件质量保证的安全网,因为软件测试只能发现错误,不能保证没有错误。

4、软件测试的目的是什么?为什么把软件测试的目标定义为只是发现错误?

软件测试的目的有:①软件测试是为了发现错误而执行程序的过程。②一个好的测试用例能够发现至今尚未发现的错误。③一个成功的测试是发现了至今尚未发现的错误。

软件测试的目标定义为只是发现错误,原因是软件测试可以有两个目标,一个是预防错误,另一个是发现错误。由于软件开发是人的创造性劳动,人的活动不可能完美无缺,错误可能发生在任何一个阶段,因此预防错误这一目标几乎是不可实现的,所以软件测试的目标定义为只是发现错误。

5、增量开发和原型开发有什么相同和不同的地方?

增量模型和原型模型都是从概要的需求出发进行开发的,但两者有明显的不同。

增量模型是从一些不完整的系统需求出发开始开发,在开发过程中逐渐发现新的需求规格说明,并进一步充实完善该系统,使之成为实际可用的系统。

原型开发的目的是为了发现并建立一个完整的经过证实的需求规格说明,并以此作为正式系统的开发基础。因此,原型开发阶段的输出是需求的规格说明,是为了降低整个软件生成期的费用而拉大需求分析阶段的一种方法,大部分原型是“用完就扔”的类型。

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

(1)采用自顶向下,逐步求精的程序设计方法。(2)使用三种基本控制结构构造程序,分别是顺序,选择和重复。(3)采用主程序员组的组织形式。(4)采用单入口单出口的模块形式。

7、简述文档在软件工程中的作用。

(1)提高软件开发过程的能见度;(2)提高开发效率;(3)作为开发人员阶段工作成果和结束标志;(4)记录开发过程的有关信息便于使用与维护;(5)提供软件运行、维护和培训有关资料;(6)便于用户了解软件功

能、性能。

8、简述提高可维护性的方法。

(1)建立明确的软件质量目标;(2)利用先进的软件开发技术和工具;(3)建立明确的质量保证工作;(4)选择可维护的程序设计语言;(5)改进程序文档。

9、什么是模块的影响范围?什么是模块的控制范围?他们之间应该建立什么关系?

模块的影响范围:受该模块内的一个判定影响的所有模块的集合。模块的控制范围:模块本身及其所有下属模块(直接或间接从属于它的模块)的集合。一个模块的影响范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近。

10、可行性研究的任务是什么?

首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,把他们清楚地列举出来。然后,分析员进行简要的需求分析,抽象出该项目的逻辑结构,建立逻辑模型。从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的主要解决方法,对每种解决方法都要研究它的可行性,可从以下三个方面分析研究每种解决方法的可行性。㈠技术可行性:对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。㈡经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。㈢社会可行性:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。

11、什么是软件详细设计?该阶段的基本任务是什么?

详细设计是软件设计的第二阶段,主要确立每个模块的实现算法、局部数据结构,用适当方法表示算法和数据结构的细节。其基本任务有:为每个模块进行详细的算法设计;为模块内的数据结构进行设计;对数据库进行物理设计,即确定数据库的物理结构;其他设计,根据软件系统类型,还可能要进行代码设计、输入/输出格式设计、人机对话设计;编写详细设计说明书;评审。

12、什么是模型?开发软件时为什么要建立模型?

所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念。为了开发出复杂的软件系统,系统分析员应该从不同角度抽象出目标系统的特性,使用精确的表示方法构造系统的模型,验证模型是否满足用户对目标系统的需求,并在设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程序实现模型,对于那些因过分复杂而不能直接理解的系统,特别需要建立模型。

模型可以帮助我们思考问题、定义术语、在选择术语时作出适当的假设,并且可以帮助我们保持定义和假设的一致性。建立模型的目的主要是为了降低复杂性。

五、应用题

1、研究生入学考试的科目为英语、数学、政治,录取规则是:

a)总分200分以下(不含200分)不录取。

b)总分200分以上(含200分)时:

i.英语、数学均为60分以上(含60分)录取。

ii.数学55分以上(含55分),英语70分以上(含70分)需参加复试。

iii.其它情况不录取。

用决策树表达此项处理逻辑。

2、某银行发放贷款原则如下:

(1)对于贷款未超过限额的客户,允许立即贷款;

(2)对于贷款已超过限额的客户,若过去还款记录好且本次贷款额在2万元以下,可作出贷款安排,否则拒绝贷款。

请用结构化语言描述该原则。

3、银行确定储蓄类型部分数据流图如下:

存款单

试作出事务分析结构的控制结构图。

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

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

(2) 计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。 试根据要求画出该系统的数据流图。

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

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

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

确定业务类型 整存整取 零存整取 活期储蓄

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

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

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

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

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

并给学生注销单。

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

要求:

1).对以上问题画出数据流程图。

2).画出该培训管理的软件结构图的主图。

7.阅读以下说明和数据流图,回答问题1至问题3。

[说明]

学生住宿服务系统帮助学生在就学的城市内找以所需的住房,系统对出租的房屋信息、房主信息、需要租房的学生信息以及学生和房主的会面住处进行管理和维护。

房主信息包括姓名、地址、电话号码以及系统分配的唯一身份标识(ID)和密码;房屋信息包括房屋地址、类型(单间/套间)、适合住宿的人数、房租、房主的ID以及现在是否可以出租(例如由于装修原因,需等到装修后才可出租或者房屋已被租出)。每当房房屋信息发生变化时,房主须通知系统,系统将更新房到文件以便学生能够获得准确的可租用房屋信息,房主向系统中加入可租用的房屋信息时,需交纳一定的费用,由系统自动给出费用信息。房主可随时更新房屋的各种属性。

学生可通过系统查询现有的可租用的房屋,但必须先在系统中注册。学生信息包括姓名、现住址、电话号码、出生日期、性别以及系统分配的唯一身份标识(ID)和密码。若学生希望租用某房屋,则需要发出租房请求,请求中包含房屋的详细信息,系统将安排学生与房主会面的时间和地点,并将会面信息通知学生和房主,会面信息包括会面时间、地点以及会面双方的基本信息,系统将记录会面信息。

学生住宿服务系统的顶层图如图1-1所示;学生住宿服务系统的第0层DFD图如图1-2所示,其中,加工3的细化图如图1-3所示。

[问题1](6分)

(1)数据流图1-1缺少了一条数据流(在图1-2中也未给出该数据流),请给出此数据流的起点和终点,并采用说明中的词汇给出此数据流名。

起点:学生住宿服务系统终点:房主数据流名称:费用信息

(2)数据流图1-2中缺少了与"查询房屋"加工相关的数据流,请指出此数据流的起点和终点。

起点:房屋文件终点:查询房屋(或者4)

[问题2](4分)

"安排会面"加工除需要写入会面文件外,还需要访问哪些文件?房主文件学生文件

[问题3](5分)

请补齐下列数据字典条目:

登录信息=学生ID+密码

注册信息=姓名+现住址+电话号码+出生日期+性别

[数据流图1-1]

[数据流图1-2]

[数据流图1-3]

8. 乘客可以免费携带50kg的行李。超过50kg,国内乘客,坐头等舱,超重部分按每千克8元收费;乘坐经济舱,超重部分按每千克12元收费;对国外乘客,坐头等舱,超重部分按每千克16元收费;坐经济舱,超重部分按每千克24元收费;残疾乘客费用减半。

请用结构化语言、判定树、判定表中的任一种对行李费用计算进行描述。(257页)

9、在一栋m层楼的大厦里,用电梯内的和每个楼层的按钮来控制n部电梯的运动。当按下电梯按钮请求在指定楼层停下时,按钮指示灯亮;当电梯到达指定楼层时,指示灯熄灭。除了大厦的最低层和最高层之外,每层楼都有两个按钮分别指示电梯上行和下行。当这两个按钮之一被按下时相应的指示灯亮,当电梯到达此楼层时灯熄灭,电梯向要求的方向移动。当电梯无升降动作时,关门并停在当前楼层。

(1)请分别写出电梯系统基本事件流和扩展事件流。(提示:起点在中间的某一层)

(2)画出电梯控制类的动态模型(仅考虑一部电梯的情况)。

10、下面是某程序的流程图:

(1)计算独立路径数;

(2)给出一组独立路径。

(1)独立路径数=判断数+1=6+1=7

(2)路径1:1-2-14-20

路径2:1-3-4-15-20

路径3:1-3-5-6-16-20

路径4:1-3-5-7-8-17-20

路径5:1-3-5-7-9-10-18-20

路径6:1-3-5-7-9-11-12-19-20

路径7:1-3-5-7-9-11-13-20

一 选择题

1. 一切软件开发都毫无例外地必须从(4)。

①软件功能出发 ②用户出发 ③软件性能出发 ④需求出发

2. 在分析阶段通常包含两个方面的工作:建立一个以类图表示的反映问题域静

态关系的(4);建立一个以用例模型表示的反映(3)的动态模型。

① 用户需求 ②关系模型 ③系统行为 ④概念模型

3. 发现类的基本方法不包括(4)。

① 确定客户 ② 跟踪资金流 ③ 事件是潜在的类 ④ 系统是潜在的类

4. 继承的基本技巧和技术不包括(3)。

① 寻找相似之处 ② 寻找已有的类 ③ 选择性继承 ④ 遵循单句规则

5. 关联的多重性可用来表达一个(4)、特定值、无限定的范围或者一组(1)。 t=a;a=b;b=t; a>b

a>c

a>d

b>c

b>d

c>d

t=a;a=c;c=t; t=a;a=d;d=t; t=b;b=c;c=t; t=b;b=d;d=t; t=c;c=d;d=t; 排序结果输出 ⑴

T ⑵ F ⑶

T ⑷ F ⑸

T ⑹ F ⑺

T ⑻ F ⑼

T ⑽ F ⑾

T ⑿ F ⒀ ⒁ ⒂ ⒃ ⒄ ⒅ ⒆

①取值范围②属性③对象④离散值

6. 当一个类没有足够的(1)去完成它的职责时,就要依靠与其它类的协作来完成工作。

①信息②操作③功能④数据

7. 一般情况下,区分主要参与者与次要参与者应该以使用系统时的(2)为依据,或者以一个(4)是谁发起的作为主要依据。

①重要程度②业务量③业务过程④交互过程

8. 前置条件描述了(2)之前系统必须满足的条件。

①系统运行②执行用例③系统启动④成功执行

9. 用例之所以被广泛采用的主要原因是,用例详细地描述了系统被使用时的(3),使得用户能够明白新系统到底是什么样的。

①执行过程②操作细节③行为细节④功能细节

10. 顺序图描述了对象之间传递消息的(2),它用来表示用例中的(4)。

①执行顺序②时间顺序③操作顺序④行为顺序

11. RUP是重型方法论的典型代表,它的核心理念是:“(2)、以架构为中心、迭代和增量的软件开发过程。”

①测试驱动②用例驱动③模型驱动④功能驱动

12. 如果说用例图显示(2)应该做什么,活动图则指明了(2)将如何实现它的目标。

①对象②系统③用例④参与者

13.基本事件流是参与者在用例中所遵循的(3)。

①基本原则②执行路径③逻辑路径④执行步骤

二填空题

1. 需求调研是(了解问题),分析是(定义问题),而设计则是(解决问题)。

2. 建立概念模型的目的是帮助开发团队理解(问题域)的各种概念、各种名词、以及它们之间的各种关系。而建立用例模型的目的是帮助开发团队(理解)用户对系统的各种功能需求。

3.类图包含(类名)、(属性)和操作等信息。

4. 子类应该从父类继承所有的东西,这种概念叫做(纯粹)继承。如果不这样的话,代码将很难(理解)和维护。

5. 关联通过组合属性和方法来实现。属性(存储)维护关系的信息,方法(保证)信息是当前可用的。

6. 类的职责是类知道或要完成的(事情)。类所知道的事情是它的(数据),它要完成的事情就是它的(功能)。

7.概念模型是“帮助开发团队了解并在此基础上理解用户所处的环境”,而用例模型则是“帮助开发团队弄清楚用户具体想解决什么问题”。前者是(静态模型),为后者工作的展开建立了一个总体框架;后者是(动态模型),为实现前者注入了活力。两者相辅相成,一般情况下,其(工作顺序)不分先后,而是以一种(迭代的)方式向前推进。

8. 首先,用例是由一组(用例实例)组成的,用例实例也就是常说的“使用场景”,就是用户使用系统的一个特定的、实际的场景;其次,用例应该给参与者带来(可见)价值,即参与者的参与应该能得到好处;最后,用例是在(系统中)的,而不是(系统外)的东西。

9. 用例是满足需求的(过程),而需求则是过程背后所实现的(价值)。这正是用例建模的(核心思想)。

10. 假设描述的是系统在使用用例之前必须满足的状态,这些(条件)并没有经过用例的检测,(用例)只是假设它们为真。

11. 识别用例时的一个常见错误是把用例当成是(单独)的步骤、操作或事务的处理。

12. 构建用例模型需要经历三个阶段:确定系统的(参与者)、合并(需求)获得用例、细化用例描述。

13. 用例图显示了系统的(一组用例)、用例的参与者以及用例和参与者之间的(关系)。

14. 顺序图主要有4个标记符:对象、(生命线)、消息和(激活)。

15. 状态图用来描述一个(特定)对象的所有可能状态及其引起状态(转移)的事件。

16. 活动图是用来对不同区域的工作如何(彼此交互)进行建模,而状态图用来表示单个对象,以及对象

的行为如何(改变)其状态。

17. 框架和类库最重要的区别是:框架是一个(半成品)的应用程序,而类库只包含一系列可被应用程序(调用的类)。

18. 我们可以说,类库是(死的),而框架是(活的)。应用程序通过调用类库来完成特定的功能,而框架则通过调用应用程序来实现整个操作流程。

19. 依赖倒置原则对我们的启发是:依赖于抽象。因此,要针对(接口)编程,不针对(实现)编程。

20. 通常来说,“接口”就是(一种特殊的抽象类)。针对接口编程的组件不需要知道(对象)的具体类型和实现,只需要知道抽象类定义了哪些接口,这减少了实现上的(依赖关系)。

三问答题

1.分析工作的主要内容及结果是什么?

分析工作的主要内容是研究问题域和用户需求,运用面向对象的观点和原则发现问题域中与系统责任有关的对象,以及对象的特征和相互关系。分析的结果是确定描述问题域与系统责任所需的对象,定义对象的属性、服务以及它们之间的关系。

2.类与对象之间有什么区别?

类是对资源的定义,它所包含的信息主要用来描述某种类型实体的特征以及对该类型实体的使用方法。对象是具体的实体,它遵守类制定的规则。从软件的角度看,程序通常包含的是类的集合以及类所定义的行为,而实际创建信息和管理信息的是遵守类的规则的对象。

3.组合与聚合有什么异同?

同:两者都可表示类之间整体和部分的关系,整体类都是由部分类组成。

异:聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。

4.建立概念模型有哪些步骤?

1、找出问题域中候选概念。用概念类分类列表和名词短语分别识别的方法找出当前需求中的候选概念类。

2、将概念绘制到概念模型中。在概念模型中描述找出的概念类。

3、在概念之间加入必要的关联来记录概念之间需要保持的联系。在概念类之间添加必要的关联来记录那些需要保存记忆的关系。

4、为概念添加必要的属性,来满足需求信息。

5.什么是参与者?

参与者(actor)是系统外部的一个实体,它以某种方式参与了用例的执行过程。参与者用于表示使用系统的对象,或者说,参与者由它们参与用例时所担当的角色来代表。

6.用例有什么特征?

(1)用例总是由参与者启动。用例所代表的功能必须由参与者激活,而后才能执行。一般情况下,参与者可能没有意识到启动了一个用例。换句话,参与者需要系统完成的功能,其实都是通过用例具体完成的,参与者一定会直接或间接的命令系统执行用例。

(2)用例为参与者提供结果值。用例必须为参与者提供实在的结果值,虽然这个值并不总是重要的,但是能被参与者识别。

(3)用例具有完整性。用例是一个完整的描述。虽然编程实现时,一个用例可以被分解成几个小用例(函数),每个小用例之间互相调用执行,一个小用例可以先执行完毕,但是该小用例执行结束并不能说这个用例执行结束。也就是说,不管用例内部的小用例是如何通信工作的,只有最终产生了返回给参与者的结果值,才能说用例执行完毕。

7.什么是基本事件流?举例说明。

参与者在用例中所遵循的逻辑路径。因为它描述了当各项工作都正常进行时用例的工作方式,所以通常称为基本路径。事件流描述了用户和执行用例之间交互的每一步。例如,图书馆借出图书用例的基本事件流:

①管理员输入借书证信息②系统要确保借书证信息的有效性③检查是否有超期的借阅信息④管理员输入要借阅的图书信息⑤系统将借阅者的借阅信息添加到数据库中⑥系统显示该借阅者的所有借阅信息

8.什么是边界类?什么是实体类?什么是控制类?

边界类:用于建立系统与其参与者之间交互的模型。这种交互通常包括接收来自用户和外部系统的信息与请求以及将信息与请求提交到用户和外部系统。

实体类:实体类通常用于对持久的信息建模,即主要对诸如个体、实际对象或实际事件的某些现象或概念的信息及相关行为建模。

控制类:代表协调、排序、事务处理以及其他对象的控制,经常用于封装与某个具体用例有空的控制。9.顺序图有什么作用?

顺序图的主要用途之一是为用例构建逻辑模型,任何用例都可以使用顺序图进行进一步的阐明和实现,即把用例所表达的需求,转化为进一步的、更加正式层次的精细表达。

10.请对顺序图和通信图进行比较。

顺序图主要描述特定用例时系统各组成部分之间交互的次序,强调的是交互的时间顺序,而通信图则从另一个角度描述系统对象之间的链接,强调的是交互的情况和参与交互的对象的整体组织。

11.什么是过程?为什么需要过程?

一个过程定义了为达到某个确定的目标,需要什么人在什么时间以何种方式做何种工作。

一个有效的过程为有效地开发高质量的软件提供准则,它获取并提出当前技术条件下可行的最佳实践方案。因此,它可降低风险并增强预见性。

12.统一软件开发过程分为哪几个阶段?各个阶段主要完成哪些工作?

分四个阶段:初始(先启)、精化、构建、交付(产品化)。

先启阶段:明确项目目标和范围,其主要任务是理解与分析需求,生成用例模型框架,对优先级较高的用例进行细化。

精化阶段:确立系统架构和技术方向,完成部分优先级最高的用例开发,并完善所有的用例模型。

构建阶段:大规模并行实施设计、开发、单元测试,即经多次迭代,逐渐完成不同优先级的用例开发。

产品化阶段:产品验收、部署、发布,即进行各种功能、性能测试,对其进行产品化、部署,完成整个系统的开发工作。

13.简述面向对象各种模型的演化过程。

(1)从需求出发,创建问题域一静一动两个模型:概念模型和用例模型。首先利用“名词动词法”从需求描述中提取相应的类来建立概念模型,并添加主要属性及识别它们之间的关联关系;对于较复杂的应用系统,则必须首先进行业务分析,建立业务模型后再建立概念模型。其次根据用户需求编写用例描述、绘制用例图,建立包括用例描述和用例图在内的用例模型,此时可以进行用户界面原型的创建,从中发现用户的使用场景,建立开发人员与用户之间进行沟通的共同基础。用户界面模型的创建既可以使用可视化语言,也可以简单地使用绘制草图的方式来实现。

(2)在用例模型的基础上,进行健壮性分析,目的是发现实体类、控制类和边界类,并绘制健壮性分析图,从而较平滑地从分析阶段向设计阶段过渡。如果用例较复杂,则我们在描述事件流时,可以借助活动图来表示。

14.识别用例和描述用例有什么区别?

识别用例和描述用例并不是一回事。识别是指对系统需要做的事情进行界定、探索和发现。描述用例则是指对用例中的流程和步骤进行细化。描述用例贯穿了项目的整个生命周期,而识别用例则必须尽可能早地完成。

15.组件与类有什么异同?

共同点:两者都具有自己的名称、都可以实现一组接口、都可以具有依赖关系、都可以被嵌套、都可以参与交互,并都可以拥有自己的实例。

不同点:组件描述了软件设计的物理实现,即代表了系统设计中特定类的实现;而类则描述了软件设计的逻辑组织和意图。另外,每个组件可能包含很多的类,并实现很多的接口。

16.什么是开闭原则?如何理解?

开闭原则是指一个软件实体应当对扩展开放,对修改关闭,也就是说在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,即实现在不修改源代码的情况下改变这个模块的行为。在开闭原则的定义中,软件实体可以指一个软件模块、一个由多个类组成的局部结构或一个独立的类。开闭原则中“开”,是指对于组件功能的扩展是开放的,是允许对其进行功能扩展的;“闭”,是指对于原有代码的修改是封闭的,即不应该修改原有的代码。

17.什么是接口隔离原则?如何理解?

接口隔离原则是指使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。根据接口隔离原则,当一个接口太大时,我们需要将它分割成一些更细小的接口,使用该接口的客户端仅需知道与之相关的方法即可。每一个接口应该承担一种相对独立的角色,不干不该干的事,该干的事都要干。使用接口隔离原则拆分接口时,首先必须满足单一职责原则,将一组相关的操作定义在一个接口中,且在满足高内聚的前提下,接口中的方法越少越好。可以在进行系统设计时采用定制服务的方式,即为不同的客户端提供宽窄不同的接口,只提供用户需要的行为,而隐藏用户不需要的行为。

18.为什么说要为人写代码,而不是为机器写代码?

现代软件工程理论更强调人在项目中的作用,因为开发的程序首先是给人看的,而不是给机器看的。开发程序时应尽可能的提高可读性,才有利于提高可维护性和可扩展性,而程序的可读性,不仅仅是注释的规范,更多的还有规范的标识符命名方式、清晰的的代码格式和简洁的算法等,也是为了让开发人员更好地理解以便往后更深入的开发,所以说要为人写代码,而不是为机器写代码。

19.什么是里氏替换原则?如何理解?

里氏代换原则是指所有引用基类(父类)的地方必须能透明地使用其子类的对象。在软件中如果能够使用基类对象,那么一定能够使用其子类对象。把基类都替换成它的子类,程序将不会产生任何错误和异常,反过来则不成立,如果一个软件实体使用的是一个子类的话,那么它不一定能够使用基类。里氏代换原则是实现开闭原则的重要方式之一,由于使用基类对象的地方都可以使用子类对象,因此在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象。

20.对分析和设计模型进行测试有什么优点?

(1)测试用例可在过程中更早的确定,甚至在需求确定之前。

(2)漏洞可在开发过程的早期检测出来,从而节省了时间、金钱和精力。

(3)可以在项目的早期检查测试用例的正确性。

四应用题

1. 考虑以下对习题管理系统的需求,识别候选类并说明理由:

该系统的需求陈述为:在一个公共习题库的支持下,使各科教师可以在系统中编写习题及其标准答案,并将编写的习题及答案加入题库;或者从题库中选取一组习题,组成一份向学生布置的作业,并在适当的时候公布答案。学生可以在系统中完成教师布置的作业,也可以在题库中选择更多的习题作练习。教师可以通过系统检查学生的作业,学生也可以在教师公布答案后对自己的练习进行核对。系统维持对题库的管理,并对教师及学生的权限进行检查:只有本课程的教师可以提交或修改习题,并指定哪些习题的答案可以向学生公开。

候选类:教师、学生、班级、习题、习题板、考试题板、练习本、答案、题库服务器

2.超市销售管理系统的需求描述如下,请识别候选类并说明理由:

该系统是超市业务管理系统的一个子系统。为了简化问题,我们对它的功能作了适当的限制:只负责前台的销售管理,而且不处理信用卡付款或会员优惠等业务。其功能需求是:

(1)为顾客选购的商品计价、收费、打印清单;

(2)记录每一种商品的编号、单价及现有数量;

(3)帮助供货员发现哪些商品将要脱销,以便及时补充货源;

(4)随时按上级系统的要求报告当前的款货数量、增减商品种类或修改商品价格;

(5)交接班时结算货款数目,报告上级系统。

对这个系统而言,与系统进行交互的活动者有收款员、供货员和它的上级系统。由此我们会发现如下一些对象:

收款机:该对象直接与收款员进行交互,模拟收款员的登录、售货和结算等行为。

供货员:此类对象用来与实际的供货员进行交互(提醒他们及时补充货物)并模拟他们的行为(在增加货物时修改) (系统中货物的数量)。

上级系统接口:用来处理与上级系统的交互。

考虑到该系统问题域内部的事物和系统责任可以发现如下对象:

商品:这是系统中最显著的对象,每一个对象的实例表示一种具体的商品,记录该商品的名称、价格、数量等信息,并通过相应的服务动态地保持这些信息的准确性。

销售事件:顾客购买商品时,只要通过一次计价收款就能完成所有的购买,每一次这样的事件都需要在系统中保存一段时间,以便在汇成账目时进行必要的复查,因此要建立“销售事件对象”。

账册:记录一个收款员在一个班次内经手的所有销售事件的款、货账目,负责向上级系统报账,并在交接班时进行账目交接。它的一个对象实例只针对一个收款员的一个班次,不是总账(总账在上级系统中)。

按照常识,我们可能会觉得超级市场的管理人员,例如“经理”和“保安人员”也是系统的对象,但是我们会发现这两个对象对本系统来说是不需要的,因此我们可以删除这些对系统来说无用的对象。

3.写出图书馆中借阅图书的用例描述。

用例名称:图书借阅

用例描述:图书馆工作人员输入借阅证编号和图书编号来完成图书借阅

参与者:图书馆工作人员

前置条件:图书馆工作人员点击“图书借阅”

主事件流:

1、输入借阅证编号

2、输入图书编号

3、点击“借阅”

4、显示当前借阅信息(书名,ISBN,借阅时间,应归还时间)

备选事件流:

1、点击“重填”实现借阅证和图书编号重新填写

4.写出图书馆中归还图书的用例描述。

用例名称:图书归还

用例描述:图书馆工作人员输入图书编号进行图书归还

参与者:图书馆工作人员

前置条件:图书馆工作人员点击“图书归还”

主事件流:

1、输入图书编号

2、点击“查询”

3、显示该书借阅信息(书名ISBN,借阅时间,应归还时间)

4、点击“归还”

5、提示“归还成功”

备选事件流:

1、点击重新填写,实现图书编号重新填写

5. 音像商店的问题陈述如下:

一个新的音像商店准备向比较广泛的人群销售录像带和光碟。该商店的管理决定在计算机系统的支持

下来运作。对这种管理方式已经有许多小规模业务软件包,适合于用户化和进一步开发。为了帮助对软件包的选择,该商店雇用了一个业务分析员,他的任务就是确定和表示这个需求。

该音像商店一开始将存有大约1000盘录像带和500张光碟,这些库存已经向一个供应商订购,但在未来的订购中将接触更多的供应商。所有的录像带和光碟都具有一个条形码,以便可以集成一个条形码扫描仪来支持销售和返还。客户会员卡也同时条形码化。

现存的客户能够预定录像带和光碟并指定某天来取。系统必须拥有灵活的搜索机制来回答客户的询问,包括这个音像商店还没有进货的电影(但可以是已经请求订购了的)。

客户最多可租借8盒带子(光碟),如果有拖欠记录,则需为每盒带子(光碟)交纳相当于其成本的押金,否则,不能租借。

请建立该音像商店的用例模型(含用例图和租借音像制品用例的用例描述)。

用例名称:租借音像制品

用例描述:店员扫描输入会员卡信息和音像制品信息进行音像制品租借

参与者:店员

前置条件:成功登录,进入系统界面

后置条件:存储租借音像制品记录,所借音像制品状态为不可借

主事件流:

1、店员用扫描仪扫描输入会员的会员卡信息并提交给系统

2、系统验证会员身份

3、店员用扫描仪扫描输入会员所要租借音像制品信息并提交给系统

4、系统获取并显示音像制品的详细信息

5、系统记录租借的音像制品信息,并且修改音像制品的状态

6、系统显示该音像制品的租借记录

备选事件流:

1、点击重新输入,实现会员卡信息和音像制品信息重新扫描输入

6. 建模“借阅图书”的顺序图。

7. 建模“归还图书”的顺序图。

软件工程复习试题及答案.

一、填空题(在下划线上填写正确的答案,每题2分,共20分) 1.等价划分是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数。 2.数据流图和数据字典共同构成了系统的逻辑模型。 3.盒图也称为N-S图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。 4.软件有效性,指软件系统的时间和空间效率。 6.数据流图有四种基本成分:源、终点,处理,存储,数据流。 7 中数据项是组成数据流和数据存储的最小元素。 8.软件工程中的结构化分析SA是一种面向数据流的分析方法。 9.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个由下而上的过程。 10.耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚、低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。 1.常用的软件开发模型有瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型。2.软件生存周期一般可分为问题定义、可行性研究、需求分析、设计、编码、单元测试、运行与维护阶段。 3.软件测试的步骤:单元、集成、系统、验收。 4.数据流图的基本符号包括加工、数据流、数据存储文件、汇点。5.IPO图由输入、处理和输出三个框组成。这个图的特点是能够直观的显示三者之间的关系。 6.面向对象方法是一种运用类、实例、属性、重载、消息传送、多态性等概念来构造系统的软件开发方法。 7.分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的逆向工程。8.程序测试是对编码阶段的语法错、语义错和运行错进行查找的编码执行活动。 9.为了获得较高的模块独立性,尽量设计出具有高内聚和低藕合性能的模块。10.常用的测试方法有黑盒测试和白盒测试。 1.可行性研究,应从技术可行性、经济可行性、运行可行性和法律和社会效益

软件工程试题及答案34385

软件工程期末试卷(A) 说明:本试卷为04级计算机专业(专升本)软件工程期末试卷,总计100分,时间100分钟 一、选择题:(每题1分,共20分)(将答案写在题号前的()中) ( C )1. 软件是()。 A. 处理对象和处理规则的描述 B. 程序 C. 程序及其文档 D. 计算机系统 ( B )2. 软件需求规格说明的内容不应包括()。 A. 主要功能 B. 算法的详细描述 C. 用户界面及运行环境 D. 软件的性能 ( B )3. 程序的三种基本控制结构是()。 A. 过程、子程序和分程序 B. 顺序、选择和重复 C. 递归、迭代和回溯 D. 调用、返回和转移 ( D) 4. 面向对象的分析方法主要是建立三类模型,即( )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) E-R模型、对象模型、功能模型 D) 对象模型、动态模型、功能模型 ( C ) 5. 在E-R模型中,包含以下基本成分( )。 A) 数据、对象、实体 B) 控制、联系、对象 C) 实体、联系、属性 D) 实体、属性、操作 ( A ) 6. 各种软件维护的类型中最重要的是( )。 A) 完善性维护B) 纠错性维护C) 适应性维护D) 预防性维护 ( B ) 7.软件测试的目标是()。 A. 证明软件是正确的 B. 发现错误、降低错误带来的风险 C. 排除软件中所有的错误 D. 与软件调试相同 ( D )8.软件生命周期中所花费用最多的阶段是() A.详细设计 B.软件编码 C.软件测试 D.软件维护 ( C )9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0, 1.0],现从输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001.设计这组测试用例的方法是()A.条件覆盖法 B.等价分类法 C.边界值分析法 D.错误推测法 ( D )10、详细设计的基本任务是确定每个模块的( )设计 A.功能 B.调用关系 C.输入输出数据 D.算法 ( A )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.模块化的根据B.逐步求精的根据C.抽象的根据D.信息隐藏和局部化的根据 ( D )12.下面几种白箱测试技术,哪种是最强的覆盖准则() A.语句覆盖B.条件覆盖C.判定覆盖D.条件组合覆盖

软件工程 简答题复习题(带答案)

n n g a r 第一章 1,与计算机硬件相比,计算机软件有哪些特点? 软件的特点如下。 1)无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来 了解它的功能、特性和质量等。 2)人们在分析、设计、开发、测试软件产品,以及在软件开发项目的管理过 程中,渗透了大量的脑力劳动。 3)不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问 题。 4)软件的开发和运行必须依赖于特定的计算机系统环境。 5)具有可复用性。 3,什么是软件危机?什么原因导致了软件危机? 软件危机的现象如下。 1)预算,项目一再拖延。 2)需求,开发的软件不能满足用户的要求,项目成功率低。 3)软件工程方法,软件可维护性差、软件质量差、可靠性差。 4)开发工具落后,手工方式,开发效率低。 所有导致软件危机的原因,都与软件本身的产品特点相关。 1)软件是一个复杂的逻辑产品。如果没有解决复杂问题的有效方法,以及软 件产品的结构、质量、可维护性得不到保障,开发与维护费用就会持续升 高。 2)软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。 3)软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等都无法 做到准确估算,生产过程不易控制。 4)软件成本主要是由研发成本构成;而硬件的生产成本主要是材料和制造成 本,分摊的研发成本很少,即软件研发过程与硬件制造过程相比要复杂得 多。 5,请简述软件工程研究的内容。

n d A i 软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。 软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实 施、系统维护、版本升级等。 常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。软件支持过程由所支持的CASE 工具组成,常用的CASE 工具有Power Designer 和Rational Rose 等。 7,请简述软件工程的目标、过程和原则。 目标、过程和原则是一切工程的三维框架,这里是以工程的观点来看待软件开 发。 1)软件工程的目标:降低成本、及时交付高质量的软件产品(高质量、高效 率、高效益)。2)实现目标的过程即完成产品加工的过程,包括:基本过程、支持过程和组 织过程。 3)进行过程应遵守的原则:原则就是过程中的轨道约束,包括:选取适宜的 开发范型、采用合适的设计方法、提供高质量的工程支持、重视开发过程 的管理。 9,请简述现代软件工程与传统软件工程显著的区别和改进。 1)传统的软件工程是基于结构化的软件开发方法,而现代软件工程是以面向 对象技术为标志。 2)不仅在编程技术上有很大的改进,而且在分析、设计等整个开发过程中, 采用面向对象的思维方式,更加完整、自然地反映客观世界。3)采用架构技术,开发效率、产品质量得到了极大提高。 4)更注重团队开发和管理,融入更多、更新的管理理念和手段,如RUP 模型、 XP 模型、过程改进、能力成熟度模型、配置管理等。 第二章 1,如何理解软件生命周期的内在特征?

2010软件工程复习题及参考答案

中南大学现代远程教育课程考试复习题及参考答案 软件工程 一、选择题: 1.下面哪些UML图描述系统行为() A.用例图 B.类图 C.对象图 2.属于概要设计活动的是() A.软件结构设计 B.数据结构设计 C.算法设计 3.属行为型设计模式的是() A.组合模式 B.工厂方法模式 C.观察者模式 4.下列说法正确的是() A.UML是软件开发方法 B.UML是系统描述语言 C.UML是软件开发过程 5. 根据程序流程图划分的模块通常是() A. 信息内聚的模块 B. 过程内聚的模块 C.逻辑内聚的模块 6.如果某程序中的比较个数是m,则其McCabe环形复杂度为() A.m-1 B.m C.m+1 7.按ISO9000-3的说明,下列属软件配置项的是() A.软件开发方法 B.软件开发组织管理制度 C.软件开发合同 8. 软件测试的目的是() A.证明软件无错 B.发现软件中的所有错误 C.尽可能发现软件系统中的错误 9.软件重构关注的是() A. 软件体系结构 B. 模块细节 C.软件性能 10.软件项目开发计划的内容有() A. 数据分析 B.风险分析 C.功能分析 11.在UML的类图中,描述整体与部分关系的有() A.泛化关系 B.聚合关系 C.依赖关系 12.软件过程能力成熟度模型CMM用以评价() A.软件过程能力 B.组织能力 C.学习能力 13. 因计算机硬件和软件环境的变化而作出的修改软件的过程称为() A. 完善性维护 B. 改正性维护 C.适应性维护 14. 对项目软件而言,软件功能需求信息主要由谁提供() A.软件用户 B.软件开发人员 C.软件项目管理人员 15. IDEF0图反映不出() A.系统做什么 B.系统功能由谁做 C.系统如何做 16. 原型模型是一种什么开发过程模型() A.自顶向上 B. 由外至内 C.增量式 17. 系统流程图描述() A.物理系统 B.逻辑系统 C.软件体系结构 18.需求规格说明书的内容不应该包括() A.软件确认准则 B.软件的性能描述 C.算法过程的详细描述 19.适合需求模糊或需求不确定系统开发的软件开发模型有() A. 瀑布模型 B. RAD模型 C.原型模型 20.UML图中描述系统结构的有() A. 组件图 B. 顺序图 C.状态图 21.面向对象方法是一种什么软件开发方法() A.层次化 B.迭代增量式 C.逐步求精 22.不可以用来衡量软件可维护性的有() A.可靠性 B.可用性 C.可行性 23. 系统分析员在需求分析最后负责编写()

软件工程试题及答案

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、软件重用的效益是什么?

软件工程试题及答案(B)

B卷 一、选择题(每题2分,共40分) 1.软件项目的可行性研究要进行一次( C )需求分析。 A.详细的B.全面的C.简化的、压缩的D.彻底的 2、系统流程图用于可行性分析中的( A )的描述。 A.当前运行系统B.当前逻辑模型C.目标系统D.新系统 3、程序的三种基本控制结构的共同特点是( D ) A.不能嵌套使用B.只能用来写简单程序 C.已经用硬件实现D.只有一个入口和一个出口 4、维护中,因误删除一个标识符而引起的错误是( C )副作用。 A.文档B.数据C.编码D.设计 5、( D )是以提高软件质量为目的的技术活动。 A.技术创新B.测试C.技术创造D.技术评审 6、面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和 实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。因此面向对象方法有许多特征,如软件系统是由对象组成的;( C );对象彼此之间仅能通过传递消息互相联系;层次结构的继承。 A.开发过程基于功能分析和功能分解B.强调需求分析重要性 C.把对象划分成类,每个对象类都定义一组数据和方法D.对既存类进行调整 7、原型化方法是用户和设计者之间执行的一种交互构成,适用于( A )系统。 A.需求不确定性高的B.需求确定的C.管理信息D.实时 8、为了提高测试的效率,应该( D )。 A.随机地选取测试数据B.取一切可能的输入数据作为测试数据

C.在完成编码以后制定软件的测试计划D.选择发现错误可能性大的数据作为测试数据 9、使用白盒测试方法时,确定测试数据应根据( A )和指定的覆盖标准。 A.程序的内部逻辑B.程序的复杂结构C.使用说明书D.程序的功能 10、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( C ) A.软件工程 B.软件周期 C.软件危机 D.软件产生 11、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性 称为( B )。 A.可用性 B.可靠性 C.正确性 D.完整性 12、瀑布模型的关键不足在于( B ) A.过于简单 B.不能适应需求的动态变更 C.过于灵活 D.各个阶段需要进行评审 13、软件维护的副作用主要有以下哪几种( C ) A.编码副作用、数据副作用、测试副作用 B.编码副作用、数据副作用、调试副作用 C.编码副作用、数据副作用、文档副作用 D.编码副作用、文档副作用、测试副作用 14、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高( B)。 A、结构化方法 B、原型化方法 C、面向对象的方法 D、控制流方法 15、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主 要保证是( C)。 A、硬件环境 B、软件开发的环境 C、软件开发工具和软件开发的环境 D、开发人员的 素质 16、软件开发模型是指软件开发的全部过程、活动和任务的结构框架。主要的开发模型有瀑 布模型、演化模型、螺旋模型、喷泉模型和智能模型。螺旋模型将瀑布模型和演化模型相结合,并增加了(1),它建立在(2)的基础上,沿着螺线自内向外每旋转一圈,就得到(2)的一个新版本。喷泉模型描述了(3)的开发模型,它体现了这种开发方法创建软件的过程所固有的(4)和(5)的特征。 B(1) A、系统工程 B、风险分析 C、设计评审 D、进度控制 D(2) A、模块划分 B、子程序分解 C、设计; D、原型 A(3) A、面向对象 B、面向数据流 C、面向数据结构 D、面向事件驱动 D(4) A、归纳 B、推理 C、迭代 D、递归 A(5) A、开发各阶段之间无“间隙” B、开发各阶段分界明显 C、部分开发阶段分界明显 D、开发过程不分段 二、判断题(每题2分,共30分) 1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活 动。( T ) 2.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。 ( F ) 3.JAVA语言编译器是一个CASE工具。( T )。

软件工程练习题目及答案

1.某厂对部分职工重新分配工作的政策是:年龄在20岁以下者,初中文化程度脱 产学习,高中文化程度当电工;年龄在20岁至40岁之间者,中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员;年龄在40岁以上者,中学文化程度当材料员,大学文化程度当技术员。请用PDL语言、判定表和判定树分别描述上述问题。 答:PDL语言描述: If(年龄<20){ If(文化程度=”初中”){ 脱产学习; } Else if (文化程度=”高中”){ 当电工; } } Else if (年龄<40){ If(文化程度=”初中” ||文化程度=”高中”){ If(性别=”男”){ 当钳工; } Else { 当车工; } }

Else{ 当技术员; } } Else{ If(文化程度=”初中” ||文化程度=”高中”){当材料员; } Else { 当技术员; } } 判定表

判定树 ---20<=<40----???? ?? ???????????? ?? ??????? 初中文化程度脱产学习 年龄<20高中文化程度电工女性车工中学文化程度年龄男性钳工大学文化程度技术员中学文化程度材料员年龄>=40大学文化程度技术员 2. 某考务管理系统有如下要求: (1)对考生送来的报名表进行检查; (2)对合格的报名表编好准考证号码后将准考证送给考生,并将汇总后的考生 名单送给阅卷站; (3)对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合 格者; (4)填写考生通知单(内容包含考试成绩及合格∕不合格标志),送给考生; (5)按地区、年龄、文化程度、职业、考试级别等进行成绩分类统计及试题难 度分析,产生统计分析表。 画出该系统的分层数据流图。

《软件工程》试题及参考答案(第6套)

第一部分选择题 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1、()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。 A 软件过程 B 软件工具 C 质量保证 D 软件工程 2、在各种不同的软件需求中,功能需求描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,()是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。 A 业务需求 B 功能要求 C 非功能需求 D 用户需求 3、软件测试计划开始于需求分析阶段,完成于()阶段。 A 需求分析 B 软件设计 C 软件实现 D 软件测试 4.下面关于面向对象方法中消息的叙述,不正确的是( )。 A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息 B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息 C. 应用程序之间可以相互发送消息 D.发送与接收消息的通信机制与传统的子程序调用机制不同 5.美国卡内基—梅隆大学SEI提出的CMM模型将软件过程的成熟度分为5个等级,以下选项中,属于可管理级的特征是( )。 A.工作无序,项目进行过程中经常放弃当初的计划 B.建立了项目级的管理制度 C.建立了企业级的管理制度 D.软件过程中活动的生产率和质量是可度量的 6.在McCall软件质量度量模型中,()属于面向软件产品修改。 A.可靠性B.可重用性C.适应性 D.可移植性 7.软件生命周期中所花费用最多的阶段是() A.详细设计 B.软件编码 C.软件测 试 D.软件维护 8.需求分析阶段的任务是确定() A.软件开发方法 B.软件开发工具 C.软件开发费 D.软件系统的功能

软件工程复习题及答案

一、画出实际的瀑布模型p16 三、画出增量模型p18 五、可行性研究的工作过程及内容p36 答:1).复查系统规模和目标; 2).研究目前正在使用的系统; 3).导出新系统的高层逻辑模型; 4).进一步定义问题; 5).导出和评价供选择的解法; 6).推荐行动方针;7).草拟开发计划;8.书写文档提交审查。 六、可行性研究的目的是什么?要如何进行?p35 答:目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。 首先,需要进一步分析和澄清问题定义。之后,分析员应该导出系统的逻辑模型。从系统逻辑模型出发,探索若干可供选择的主要解决方法(即系统实现方案)。对每种解法都应该仔细研究它的可行性,一般来说,至少应该从下述三方面研究每种解法的可行性:(1)技术可行性;(2)经济可行性;(3)操作可行性。必要时还应该从法律、社会效益等更广泛的方面研究每种解法的可行性。 二、画出快速原型模型p17 四、画出简化的螺旋模型p20 软件工程考试复习题

七、需求分析的任务是什么?进行需求分析时要重点考虑哪些方面的问题?p56 答:1、确定对系统的综合要求:1).功能需求——指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能。2).性能需求——性能需求指定系统必须满足的定时约束或容量约束,如速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等。3).可靠性和可用性需求——可靠性是指确保各应用及其相关的所有交易的完整性和一致性的能力;可用性是指一个系统应确保一项服务或者资源永远都可以被访问到。4).出错处理需求——说明系统对环境错误应该怎样响应。5).接口需求——描述应用系统与它的环境通信格式。6).约束——在设计或实现应用系统时应遵守的限制条件。常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。7).逆向需求——说明软件系统不应该做什么。8).将来可能提出的要求——应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。 2、分析系统的数据要求。 3、导出系统的逻辑模型。 4、修正系统开发计划。 八、典型的总体设计过程包括哪些步骤?p92 答:典型的总体设计过程包括九个步骤: 1)、设想供选择的方案;2)、选取合理的方案;3)、推荐最佳方案;4)、功能分解;5)、设计软件结构;6)、设计数据库;7)、制定测试计划;8)、书写文档;9)审查和复查。 九、总体设计的主要任务是什么?总体设计的主要过程有哪些?p91 答:主要任务: 总体设计又称为概要设计或初步设计。通过这个阶段的工作将划分出组成系统的物理元素—程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。总体设计的另一项重要的任务是设计软件的结构,也就是要确定系统中每个程序是由哪个模块组成,以及这些模块相互间的关系。 主要过程: ①寻找实现目标系统的各种不同的方案。②从这些供选择的方案中选取若干个合理的方案,为每个合理的方案都准备一份系统流程图,列出组成系统的所有物理元素。③进行成本/效益分析,并且制定实现这个方案的进度计划。从中选出一个最佳方案。④进一步为这个最佳方案设计软件结构。⑤进行必要的数据库设计,确定测试要求并且制定测试计划。 十、何谓耦合?有哪些类型?软件设计应该取哪种类型?p97 答:耦合是对一个软件结构内不同模块之间互连程度的度量。 类型:数据藕合、控制藕合、公共环境藕合、内容耦合 设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。 十一、何谓内聚?有哪些类型?软件设计应该取哪种类型?p98 答:内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。 低内聚有如下几类:偶然内聚、逻辑内聚、时间内聚。中内聚主要有两类:过程内聚、通信内聚。高内聚也有两类:顺序内聚、功能内聚。 设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。

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

软件工程考试题 简答题 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、瀑布模型本质上是一种() 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、开发完毕才见到产品 B、及早提供全部完整的软件产品 C、开发完毕后才见到工作软件 D、及早提供工作软件 7、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( ) A、条件覆盖法 B、等价分类法 C、边界值分析法 D、错误推测法 8、软件详细设计主要采用的方法是( ) A、模块设计 B、结构化设计 C、PDL语言 D、结构化程序设计 9、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( ) A、.软件工程 B、软件周期 C、软件危机 D、软件产生 10、按软件生命周期方法设计软件的过程中,画数据流图属于下面哪个阶段的工作() A、需求分析 B、概要设计 C、详细设计 D、软件维护 11、在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是() A、探索型模型 B、演化型模型 C、实验型模型 D、提交型模型 12、程序设计语言的工程特性之一为( ) A、软件的可重用性 B、数据结构的描述性 C、抽象类型的描述性 D、数据库的易操作性 13、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( ) A、可用性 B、可靠性 C、正确性 D、完整性 14、模块设计中,最不希望的内聚是() A、功能内聚 B、通信内聚 C、过程内聚 D、偶然内聚 15、实施快速原型模型方法开发软件的关键在于() A、CASE工具的支持 B、如何开发演化型模型 C、项目主管的支持 D、开发人员的素质 16、程序流程图(框图)中的箭头代表( )。 A、数据流 B、控制流 C、调用关系 D、组成关系 17、一个只有顺序结构的程序,其环形复杂度是( )。 A、0 B、1 C、3 D、不确定的

软件工程试题及答案

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

高级软件工程师月考试试题A卷带答案

高级软件工程师考试试题(A卷)1、下哪种命名空间中的类型用于创建Windows GUI应用程序。(选择1项) D、 2、判断这PL/SQL 代码块:(选择1项) BEGIN FOR i IN 1..6 LOOP IF i = 2 OR i = 3 THEN null; ELSE INSERT INTO example(one) VALUES (i); END IF; ROLLBACK; END LOOP; COMMIT; END; 有多少行被插入到表 EXAMPLE ? A、0 B、1 C、2 D、3 3、链表具有的特点是:(选择3项) A、不必事先估计存储空间 B、可随机访问任一元素 C、插入删除不需要移动元素 D、所需空间与线性表长度成正比 4、序列图描述对象是如何交互的并且将重点放在消息序列上。(选择1项) A、正确 B、不正确

5、一个XML必须有DTD或Schemas。(选择1项) A、正确 B、不正确 6、动态网站需要的技术为。(选择3项) A、CGI B、HTTP C、ASP D、PHP 7、Linux 文件名的长度不得超过( )个字符?(选择1项)。 A、64 B、128 C、256 D、512 8、在Struts中实现页面跳转主要通过什么方法来实现?(选择1项) A、 B、 C、 D、 9、EJB的优点有哪些?(选择2项) A、技术领先 B、价格低廉 C、性能优越 D、强大的容器支持 10、在使用匿名登录ftp时,用户名为( )? (选择1项) A、login users B、anonymous C、root D、guest 11、你判断下面语句,有什么作用?(选择1项)

软件工程习题(附(附答案))

第一章概述 1.软件产品具有哪些特性? 答:软件是一种逻辑案件,而不是具体的物理实体,具有抽象性 软件是通过人的智力活动,将知识和技能转化成为信息的一种产品,是在研制,开发中被创造出来的 a.软件产品是一种逻辑产品. b.软件产品的生产主是研制,软件产品的成本主要体现在软件的... c.开发的软件可维护性差. d. 开发的软件可靠性差 ⑴是一种逻辑产品,与物质产品有很大的区别. ⑵软件产品的生产主要是研制,成本主要在开发和研制,开发完成后,通过复制就产生了大量软件产品. ⑶软件产品不会用坏,不存在磨损,消耗. ⑷生产主要是脑力劳动,还末完全摆脱手工开发方式,大部分产品是"定做"的 ⑸开发软件的费用不断增加,致使生产成本相当昂贵. (6)其质量往往靠不住,缺乏可见性 2.简述什么是软件工程? 答: 软件工程软件工程是开发、运行、维护和修复软件的系统方法,其中“软件” 的定义为计算机程序、方法、规则、相关的文档资料以及计算机上运行时所必须 的数据;软件工程是一门科学,其目的是生产无故障的、软件,且交付及时,不 超过预算,并满足用户要求; 3.软件生命周期可分为哪三个时期?GB 8567中规定可分为哪几个阶段? 答:定义时期:问题的定义(客户需求)、可行性研究(为什么做); 开发时期:需求分析(做什么)、总体设计(怎么做—抽象)、详细设计(怎么实现—具体)、编码(程序设计语实现)测试.。 运行时期:软件维护。 4.依下列叙述确定软件生命周期模型。 M公司的软件产品以开发实验型的新软件为主。用瀑布模型进行软件开发已 经有近十年了,并取得了一些成功。若你作为一名管理员刚加入M公司,你认 为快速原型法对公司的软件开发更加优越,请向公司副总裁写一份报告简要阐 明你的理由。 答:瀑布模型的缺点在于只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。另外瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要,它已不适宜开发实验型的软件。根据快速原型法的特点,原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。开发人员通过建立原型系统已经学到了许多东西,因此,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。说明它特别适合于开发探索型、实验型的软件。 5.依下列叙述确定软件生命周期模型。 假设要求你开发一个软件,该软件的功能是

软件工程试题库集及答案

综合练习一答案 选择题: 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分,共20 分) 1. “软件危机”是指( ) A. 计算机病毒的出现 B. 利用计算机进行经济犯罪活动 C. 软件开发和维护中出现的一系列问题 D. 人们过分迷恋计算机系统 2. DFD 中的每个加工至少需要( ) A. 一个输入流 B. 一个输出流 C. 一个输入或输出流 D. 一个输入流和一个输出流 3. 为了提高模块的独立性,模块之间最好是( ) A. 控制耦合 B. 公共耦合 C. 内容耦合 D. 数据耦合 4. 下面关于PDL语言不正确的说法是() A. PDL 是描述处理过程怎么做 B. PDL 是只描述加工做什么 C. PDL 也称为伪码 D. PDL 的外层语法应符合一般程序设计语言常用的语法规则 5. 详细设计与概要设计衔接的图形工具是( ) A. DFD 图 B. 程序图 C. PAD 图 D. SC 图 6. 不适合作为数据处理与数据库应用的语言是( ) A. SQL B. Cobol C. 4GL

D. Lisp 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. 可理解性与可读性

软件工程试题及答案

1. 软件生命期各阶段的任务是什么? 答:软件生命期分为7个阶段: 1、问题定义:要解决的问题是什么 2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性 3、需求分析:系统必须做什么 4、总体设计:系统如何实现,包括系统设计和结构设计 5、详细设计:具体实现设计的系统 6、实现:编码和测试 7、运行维护:保证软件正常运行。 2、软件重用的效益是什么? 答:1、软件重用可以显著地改善软件的质量和可靠性。 2、软件重用可以极大地提高软件开发的效率。 3、节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。 3、自顶而下渐增测试与自底而上渐增测试各有何优、缺点? 答: ①自顶而下渐增测试 优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能够尽早发现上层模块的接口错误。 缺点:需要存根程序,底层错误发现较晚。 ②自底而上渐增测试 优点与缺点和自顶而下渐增测试相反。 4 、提高可维护性的方法有哪些? 答:在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束前

的审查和复审中,应着重对可维护性进行复审。 在需求分析阶段的复审中,应对将来要扩充和修改的部分加以注明。在讨论软件可移植性问题时,要考虑可能要影响软件维护的系统界面。 在软件设计的复审中,因从便于修改、模块化和功能独立的目标出发,评价软件的结构和过程,还应对将来可能修改的部分预先做准备。 在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素。 在软件系统交付使用前的每一测试步骤中都应给出需要进行预防性维护部分的提示。 在完成每项维护工作后,都应对软件维护本身进行仔细认真的复审。 为了从根本上提高软件系统的可维护性,人们正试图通过直接维护软件规格说明来维护软件,同时也在大力发展软件重用技术。 简述软件测试要经过哪几个步骤,每个步骤与什么文档有关。 【解答】 测试过程按 4 个步骤进行,即单元测试(模块测试)、集成测试(子系统测试和系统测试)、确认测试(验收测试)和平行运行。 单元测试集中对用源代码实现的每一个程序单元进行测试,与其相关的文档是单元测试计划和详细设计说明书。 集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。与其相关的文档是集成测试计划和软件需求说明书。 确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。与其相关的文档是确认测试计划和软件需求说明书。 平行运行把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。与其相关的文档:用户指南、使用手册等。 36.简述容错技术的四种主要手段,并解释。

相关文档