软件工程习题.docx

上传人:b****6 文档编号:4491580 上传时间:2022-12-01 格式:DOCX 页数:22 大小:568.81KB
下载 相关 举报
软件工程习题.docx_第1页
第1页 / 共22页
软件工程习题.docx_第2页
第2页 / 共22页
软件工程习题.docx_第3页
第3页 / 共22页
软件工程习题.docx_第4页
第4页 / 共22页
软件工程习题.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

软件工程习题.docx

《软件工程习题.docx》由会员分享,可在线阅读,更多相关《软件工程习题.docx(22页珍藏版)》请在冰豆网上搜索。

软件工程习题.docx

软件工程习题

一、选择题:

1、在结构化设计(SD)方法中全面指导模块划分的最重要的原则是(D)

A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性

2、软件维护产生的副作用,是指(C)

A.开发时的错误B.隐含的错误C.因修改软件而带来的错误D.运行时误操作

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

A.算法和使用的数据结构B.外部接口C.功能D.编程

4、为了提高模块的独立性,模块内部最好是(C)

A.逻辑内聚B.时间内聚C.功能内聚D.通信内聚

5、软件是一种(C)

A.程序B.数据C.逻辑产品D.物理产品

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

A.纠正性维护B.适应性维护C.完善性维护D.预防性维护

7、只有单重继承的类层次结构是(C)层次结构。

A.网状型B.星型C.树型D.环型

8、下列属于维护阶段的文档是(C)

A.软件规格说明B.用户操作手册C.软件问题报告D.软件测试分析报告

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

A.技术可行性B.经济可行性C.社会可行性D.法律可行性

10、下列那个模型不是面向对象的分析中建立的模型(B)

A.对象模型B.瀑布模型C.动态模型D.功能模型

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

A.PADB.SAC.SCD.DFD

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

A.集成测试B.恢复测试C.验收测试D.单元测试

13、采用Gantt图表示软件项目进度安排,下列说法中正确的是(D)。

A.能够反映多个任务之间的复杂关系

B.能够直观表示任务之间相互依赖制约关系

C.能够表示哪些任务是关键任务

D.能够表示子任务之间的并行和串行关系

14、需求分析阶段的任务是确定(D)

A.软件开发方法B.项目开发计划C.概要设计说明书D.操作手册

15、程序的三种基本控制结构是(B)

A.过程、子过程和分过程B.顺序、选择和重复

C.递归、堆栈和队列D\调用、返回和转移

16、软件生存周期中时间最长的是(D)阶段

A.总体设计B.需求分析C.软件测试D.软件维护

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

A.需求说明B.概要设计C.软件文档D.测试计划

18、软件部件的内部实现和外部可访问性的分离,是指软件的(C)。

A.继承性B.共享性C.封装性D.抽象性

19、单元测试是发现编码错误,集成测试时发现模块的接口错误,确认测试是为了发现功能

错误,那么系统测试是为了发现(C)错误。

A.接口错误B.编码错误C.性能、质量不合要求D.功能测试

20、软件工程管理对软件项目的开发管理,即对整个软件(B)的一切活动的管理。

A.软件项目B.生存期C.软件开发计划D.软件开发

21、系统流程图是描绘(D)的传统工具

A.逻辑系统B.数据结构C.状态变迁D.物理系统

22、下列模块独立性最强的是(A)

A.非直接耦合B.数据耦合C.公共耦合D.内容耦合

23、下列关于模块的描述错误的是(D)

A.具有独立的模块软件比较容易开发出来

B.独立的模块的维护和测试比较容易

C.模块的独立程度可以通过内聚和耦合标定

D.独立的模块一般不能完成一个相对独立的特定子功能

24、进行需求分析可使用多种工具,但(C)是不适用的

A.数据流图B.E-R图C.PAD图D.数据字典

25、常见的软件概要设计方法分为3大类,其中以数据流图为基础构造模块结构的是(B)

A.Jackson方法和LCP(wanier)逻辑构造方法B.结构化设计方法

C.面向对象设计方法D.快速原型法

26、在考察系统的一些涉及时序和改变的状态时,要用动态模型来表示。

动态模型着重于系统的控制逻辑,它包括两个图:

一个是事件追踪图,一个是(A)

A、状态图B.数据流图C.系统结构图D.时序图

27、结构化分析方法就是面向(B)自顶向下逐步求精进行需求分析的方法

A.目标B.数据流C。

功能D.对象

28、在对数据流的分析中,主要是找到中心变换,这是从(C)导出结构图的关键。

A.数据结构B.实体关系C.数据流图D.E-R图

29、模块(B)定义为受该模块内一个判定影响的所有模块集合

A.控制域B.作用域C.宽度D.接口

30、以下不属于白盒测试技术的是(D)

A.逻辑覆盖B.基本路径测试C.循环覆盖D.等价类划分

31、.软件复杂性度量的参数包括(B)。

A.效率B.规模C.完整性D.容错性

32、对象实现了数据和操作的结合,使数据和操作(C)于对象的统一体中。

A.结合B.隐藏C.封装D.抽象

33、瀑布模型的存在问题是(B)。

A.用户容易参与开发B.缺乏灵活性

C.用户与开发者易沟通D.适用可变需求

34、面向对象的主要特征除唯一性、继承性、多态性外,还具有 A 。

A.封装性B.移植性C.完整性D.兼容性

35、制定进度计划的两个重要工具和方法是(A)和(C)。

A.Gantt图B、CoCoMoC、工程网络图D、HIPO图

36、软件测试的目的是(B)。

A.评价软件的质量B.发现软件的错误

C.找出软件的所有错误D.证明软件是正确的

37、复杂的数据流图(D)。

A.只有变换型B.只有事务型

C.无规律D.既有变换型又有事务型

38、在面向对象的分析中,需要建立对象模型、(D)、功能模型。

A、逻辑模型B、生命周期模型C、子功能模型D、动态模型

39、在面向对象设计中,设计实现服务的方法有:

(A)、选择适当的数据结构、定义内部类和内部操作。

A、设计实现服务的算法B、设计算法之间的关系

C、设计类的层次结构D、设计对象

40、面向对象实现的工作包括:

(B)。

A、编码与调试

B、把面向对象设计结果翻译成面向对象程序以及测试并调试面向对象程序

C、编制源代码的全过程;

D、编码及维护的过程

41、面向对象语言有下述几个重要特点:

(B)、可重用性、可维护性。

A、具有设计类和对象的功能B、一致的表示方法

C、具有封装性、继承性和多态性D、支持面向对象概念的实现

42、结构化程序设计的一种基本方法是 D 。

A.筛选法B.递归法C.迭代法D.逐步求精法

43、应用执行对象的操作可以改变该对象的 D 。

A.属性B.功能C.行为D.数据

44、常用动词或动词词组来表示 C 。

A.对象B.类C.关联D.属性

45、以下说法正确的是 D 。

A.功能模型不包括对象模型中值的约束条件

B.功能模型说明对象模型中操作的含义

C.功能模型说明对象模型中约束的含义

D.功能模型说明对象模型中动作的含义

46、面向对象的开发方法中。

C将是面向对象技术领域内占主导地位的标准建模语言。

A.Booch方法B.Coad方法C.UML语言D.OMT方法

47.数据字典是对数据定义信息的集合,它所定义的对象都包含于(A)

A.数据流图B.程序框图C.软件结构D.方框图

48、结构化设计是一种面向( A )的设计方法。

A.数据流 B.数据库  C.数据结构D.程序

49、下列哪个组件不是用例图的基本组件(D)

A.参与者 B.用例 C.系统 D.文档

50、用例图中用例之间存在各种关系,但不包括(B)

A.包含 B.关联 C.泛化 D.扩展

51、逆向工程是什么过程(C)

A.模型到代码  B.设计到实现

C.代码到模型 D.类图到包图

二、填空题:

1、软件生存周期一般定义为问题定义、(可行性分析)、(需求分析)、设计、(编码)、单元测试、运行与维护阶段。

2、HIPO图是由一组 IPO和一张HC图组成。

3、UML的定义包括UML语句和UML表示法两个部分.

4、软件测试的方法有结构测试和功能测试(又称黑盒法)

5、成本估算方法主要有专家判断法、类比法和参数模型法三种类型.

6、详细设计的工具有图形工具、表格工具和语言工具

7、为了使用流程图描述结构化程序,限制流程图有五种基本的控制结构,即顺序型、选择型、while循环、until循环、多情况选择。

8、详细设计的工具有三种类型分别为图形工具、表格工具和语言工具。

9、软件工程是从管理和技术两个方面研究如何运用工程学的基本原理和方法来更好地开发和维护计算机软件的一门学科。

10、把程序从一个硬件或软件环境转移到另一种配置环境称为软件的可移植性

11、Jackson图除了可以表达程序结构外,还可以表达数据结构,它首先要分析数据结构,并用适当的工具来描述。

12、在软件开发过程中要产生大量的信息,要进行大量的修改,软件配置管理能协调软件开发,并使混乱减到最低程度。

13、通常,联合使用gantt图和工程网络来制定进度计划并监督项目进展状况。

14、软件概要设计的主要任务就是设计软件结构。

15、为了便于对照检查,测试用例应由输入数据和预期的测试结果两部分组成。

16、软件开发是一个自顶向下逐步细化和求精过程,而软件测试是一个自底向上集成的过程。

17、软件结构是以模块为基础而组成的一种控制层次结构。

18、在结构化分析中,用于描述加工逻辑的主要工具有三种,即结构化语言、判定表、判定树。

19、结构化语言是介于自然语言和形式语言之间的一种半形式语言。

20、若年利率为i,不计复利,n年后可得钱数为F,则现在的价值P=F/(1+n*i)。

21、软件是计算机程序及其说明程序的各种文档。

文档是有关计算机程序功能、设计、编制、使用的文字或图形资料。

22、软件生存周期是指一个软件从提出开发要求开始直到该软件报废不止的整个时期。

通常,软件生存周期包括问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试、软件维护活动,可以将这些活动以适当方式分配到不同阶段去完成。

23、可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。

24、模块的耦合性分为四种类型:

数据耦合、控制耦合、公共环境耦合、内容耦合。

25、内聚性有七种类型,最强的是功能内聚,最弱的是偶然内聚。

26、结构图的深度指结构图控制的层数,结构图宽度指同一个层数。

27、对于变换型的数据流图,按照软件设计思想,要将一个大型复杂的软件进行分解,要确定数据流图的交换中心、逻辑输入、逻辑输出。

28、假设使用代码行技术进行费用估计,某软件中共6000行程序,每行平均成本20元,则该软件的成本为120000。

29、在Jackson系统开发方法中,使用顺序、选择和重复三种结构就可以组合出各种复杂的结构体系。

30、在面向对象方法中,事物的静态特征用对象的属性表示,动态特征用对象的服务表示。

31、软件总体设计时应该遵循模块化、抽象、逐步求精、 信息隐藏 、局部化和模块独立等6条基本原理。

32、复杂问题的对象模型通常由主题层、类与对象层、结构层、属性层和服务层5个层次组成。

33、软件工程方法学包含3个要素:

方法、工具和过程。

其中,方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

34、面向对象方法用对象 分解取代了传统方法的功能分解

35、UML中的 泛化 关系就是通常所说的继承关系。

36、复杂问题的对象模型通常由主题层、类与对象层、 结构层 、属性层和服务层5个层次组成。

37、度量软件规模的常用技术主要有代码行技术和功能点技术  。

38、检查软件产品是否符合需求定义的过程称为  确认 测认。

39、UML中的泛化关系就是通常所说的继承关系。

三、判断题:

1、测试是为了验证该软件已正确地实现了用户的要求F

2、为了符合程序设计风格指导原则,应尽可能把程序编得短些。

F

3、模块化程序设计时,只要模块之间的接口关系不变,各模块内部实现细节的修改不会

影响别的模块。

T

4、在主存储器能够容纳得下的前提下,应使模块尽可能大,以减少模块个数。

F

5、当验收测试通过,软件开发就完成了F

6、操作手册的编写工作应该在软件测试阶段之前完成T

7、软件的开发与运行经常受到硬件的限制和制约。

T

8、模块内的高内聚往往意味着模块间的松耦合。

T

9、软件的质量好坏主要由验收人员负责,其他开发人不必关心。

F

10、判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。

T

11、应该尽量使用机器语言编写代码,提高程序运行效率,而减少高级语言的使用。

F

12、UML只能应用于软件系统模型的建立。

(F)

13、软件测试的目的是为了无一遗漏的找出所有的错误。

F

14、确认也称为验收测试,它的目标就是验证软件的有效性T

15、确认也称为验收测试,它的目标就是验证软件没有错误F

16、发现错误多的程序模块,残留在模块中的错误也多。

F

17、在可行性研究中最难决断和最关键的问题是经济可行性。

F

18、完成测试后,为缩短源程序长度而删去程序中的注解。

F

19、模块化程序设计中,模块越小,模块化的优点越明显。

一般来说,模块的大小都在10行以下。

T

20、质量保证是为了保证产品和服务充分满足消费者要求的质量而进行的有计划,有组织的活动.T

21、GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁。

T

22、在做程序的单元测试时,桩(存根)模块比驱动模块容易编写。

F

23、Jackson方法是面向数据结构的设计方法T

24、编码时尽可能使用全局变量。

F

25、面向对象方法只支持过程抽象,不支持数据抽象F

26、面向对象分析(OOA)的关键是识别出问题域内的类与对象,并分析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。

T

27、聚集关系是关联的一种形式,表示两个类之间的一般与特殊关系F

28、基本路径测试是黑盒技术设计测试用例的方法之一。

F

29、耦合是指一个模块内各个元素彼此结合的紧密程度。

F

30、一笔交易、一个动作、甚至操作人员按一个按钮都可以看做是一次事物。

T

31、随着软件技术的发展,人们逐渐认识到阅读程序的重要性,编码不仅要强调效率还要强调清晰。

T

32、白盒法是一种静态测试方法,主要用于模块测试。

F

33、软件工程过程应该以软件设计为中心,关键是编写程序。

F

34、类是对具有共同特征的对象的进一步抽象。

T

35、基于情景的测试是面向对象系统确认测试的主要方法。

T

36、重用是提高软件生产率和目标系统质量的重要途径,它基本上始于设计。

T

37、类图用来表示系统中类和类与类之间的关系,它是对系统动态结构的描述。

F

38、软件项目管理始于项目计划,而第一项计划活动就是估算。

T

39、总体设计阶段要设计软件体系结构。

T

40、软件即程序。

F

41、采用对象设计系统时,首先建立系统的物理模型。

F

42、状态图是对多个对象建模。

F

43、软件开发的主要任务是写程序。

F

44、测试只能证明程序有错误,不能证明程序没有错误。

T

45、在编制程序时,首先应该对程序的结构充分考虑,不要急于开始编码,而要像写软件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排,等等。

F

46、程序设计风格指导原则提出,尽量多使用临时变量。

F

47、进行概要设计时尽量加强模块之间的联系。

F

48、为了加快软件维护作业的进度,应尽可能增加维护人员的数目F

49、软件维护就是改正软件中的错误。

F

 

四、简答题:

1、简述结构化范型和面向对象范型的要点,并分析它们的优缺点。

结构化泛型:

结构化泛型把软件生命周期的全过程一次划分为若干个阶段,然后顺序地完成每个阶段的任务。

对问题的抽象逻辑分析开始,一个阶段一个阶段地顺序进行开发。

优点:

把软件生命周期划分成若干个阶段,便于不同人员分工协作,降低了软件开发的困难程度;结构化泛型以一种有条不紊的方式进行,保证了软件的质量,提高了软件的可维护性。

缺点:

当软件规模庞大或对软件的需求模糊易变时,采用结构化泛型开发往往不成功。

面向对象泛型:

(1)把对象作为融合了数据及在数据上的操作性能更为统一的软件构件;

(2)把所有对象都划分成类;

(3)按照父类与子类的关系,把若干个相关类组成一个层次结构的系统;

(4)对象彼此间仅能通过发送消息互相练习。

优点:

面向对象方法简化了软件开发和维护,降低了软件产品的复杂性,提高了软件的可重用性。

缺点:

程序的处理效率相比结构化要低

2、简述软件工程的定义

软件工程是指导计算机软件开发和维护的一门工程学科。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过实践考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

3、软件工程的基本原理

(1)用分阶段的生命周期计划严格管理;

(2)坚持进行阶段评审,

(3)实行严格的产品控制,

(4)采用现代程序设计技术,

(5)结果应能清楚的审查,

(6)开发小组的人员应该少而精,

(7)承认不断改进软件工程实践的必要性。

4、面向对象方法学的要点

(1)面向对象的软件系统是由对象组成的,软件中的任何元素都是对象,复杂的软件对象由简单的软件对象组合而成。

(2)所有对象划分成各种对象类,每个对象都定义了一组数据和一组方法。

(3)按照子类(派生类)和父类(基类)的关系,把若干个对象类组成一个层次结构的系统(类等级)。

在派生类中对某些特性又做了重新描述,则在派生类中的这些特性将以新描述为准,也就是说,低层的特性将屏蔽高层的同名特性

(4)对象彼此之间仅能通过传递消息互相联系。

5、面向对象方法学的出发点和基本原则

数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经过的变换。

基本符号:

正方形(立方体)表示数据的源点或终点;圆角矩形(或圆形)代表变换数据的处理;开口矩形(或两条平行横线)代表数据存储;箭头表示数据流,即特定数据的流动方向。

6、为什么说喷泉模型较好地体现了面向对象软件开发过程无缝和迭代的特性?

软件开发通常会划分明显的阶段,而喷泉模型的不同阶段是相互重叠的,表明了两个活动之间存在迭代;并且面向对象方法在概念和表示方法上的一致性,保证了在各项开发活动之间的无缝过渡。

7、可行性研究的目的和任务?

目的:

就是用最小的代价在尽可能短的时间内确定问题是否能够解决。

任务:

1.进一步分析和澄清问题;2.导出系统的逻辑模型;3.从逻辑模型出发,提出若干种系统实现方案4.研究每种实现方案的可行性

8、数据流图的作用?

数据字典的用途?

流图:

1、便于用户表达功能需求和数据需求及其联系;

2、便于两类人员共同理解现行系统和规划系统的框架;

3、清晰表达数据流的情况;

4、有利于系统建模。

字典:

数据字典最重要的用途是作为分析阶段的工具

有助于改进分析员,发小组之间的通信。

有助于改进不同开发人员,不同开发小组之间的通信

有助于要求所有开发人员根据公共数据字典描述数据和设计模块,避免许多麻烦口问题

9、软件开发成本的三种估算技术

专家估算法

专家估算法是依靠一个或多个专家对项目做出估计,它要求专家具有专门知识和丰富的经验,是一种近似的猜测。

类推估算法

类推估算法是比较科学的一种传统估算方法,它适合评估一些与历史项目在应用领域、环境和复杂度的相似的项目,通过新项目与历史项目的比较得到规模估计。

算式估算法

算式估算法利用经验模型进行成本估算,它通常采用经验公式来预测软件项目计划所需要的成本、工作量和进度数据。

10、假设只有SEQUENCE和IF-THEN-ELSE两种控制结构,怎样利用它们完成DO-WHILE

操作?

答:

转化如下;

label:

IF(条件)THEN

程序块

GOTOlabel

ELSE

程序块

ENDIF

11、假设只有SEQUENCE和DO-WHILE两种控制结构,怎样利用它们完成IF-THEN-ELSE操作?

答:

转化如下:

K=1

DOWHILE(条件.AND.K.EQ.1)

程序块1

K=K+1

ENDDO

DOWHILE((.NOT.条件).AND.K.EQ.1)

程序块2

K=K+1

ENDDO

12、什么是数据流图?

其中的基本符号各表示什么含义?

数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。

数据流图有四种基本图形符号:

“→”箭头表示数据流,即特定数据的流动方向;圆角矩形代表变换数据的处理;开口矩形/“=”双杠表示数据存储;正方形表示数据的源点或终点

13、非渐增式测试与渐增式测试有什么区别?

1)非渐增式需要较多的人工

2)渐增式可以较早地发现模块界面之间的错误,非渐增式则要到最后将所有模块连接起来时才能发现这类错误

3)渐增式有利于排错。

4)渐增式比较彻底

5)渐增式需要较多的机器时间

6)使用非渐增方式,在开始时允许几个测试人员并行工作,这对大型系统来说,是很有意义的

14、分别解释对象模型、动态模型及功能模型的概念

对象模型:

对象模型表示静态的,结构化的系统的“数据”性质。

它是对模拟客观世界实体的对像及对象彼此间的关系的映射,描述了系统的静态结构。

动态模型:

表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列。

功能模型:

表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。

15、面向对象的集成测试主要有哪几种不同的测试策略?

1)基于线程的测试

2)基于使用的测试

16、简述面向对象的集成测试的主要测试策略?

(1)基于线程的测试。

这种策略把响应系统的一个输入或一个事件所需要的那些类集成起来。

分别集成并测试每个线程,同时应用回归测试以保证没有产生副作用。

(2)基于使用的测试。

这种方法首先测试几乎不使用服务器类的那些类(称为独立类),把独立类都测试完之后,再测试使用独立类的下一个层次的类(称为依赖类)。

对依赖类的测试一个层次一个层次地持续进行下去,直至把整个软件系统构造完为止。

17、在面向对象的系统开发过程中,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1