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

上传人:b****9 文档编号:26095044 上传时间:2023-06-17 格式:DOCX 页数:20 大小:117.92KB
下载 相关 举报
软件工程复习试题及答案.docx_第1页
第1页 / 共20页
软件工程复习试题及答案.docx_第2页
第2页 / 共20页
软件工程复习试题及答案.docx_第3页
第3页 / 共20页
软件工程复习试题及答案.docx_第4页
第4页 / 共20页
软件工程复习试题及答案.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

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

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

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

软件工程复习试题及答案

一、填空题(在下划线上填写正确的答案,每题2分,共20分)

1.等价划分是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数。

2.数据流图和数据字典共同构成了系统的逻辑模型。

3.盒图也称为N-S图。

这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。

4.软件有效性,指软件系统的时间和空间效率。

5.IPO图的中文意思是结构化设计中变换型结构的输入(Input)、加工(Processing)、输出(Output)。

6.数据流图有四种基本成分:

源、终点,处理,存储,数据流。

7.数据字典有以下四种条目:

数据流、数据项、数据存储、基本加工,其中数据项是组成数据流和数据存储的最小元素。

8.软件工程中的结构化分析SA是一种面向数据流的分析方法。

9.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个由下而上的过程。

10.耦合性与聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高聚、低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。

1.常用的软件开发模型有瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型。

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

3.软件测试的步骤:

单元、集成、系统、验收。

4.数据流图的基本符号包括加工、数据流、数据存储文件、汇点。

5.IPO图由输入、处理和输出三个框组成。

这个图的特点是能够直观的显示三者之间的关系。

6.面向对象方法是一种运用类、实例、属性、重载、消息传送、多态性等概念来构造系统的软件开发方法。

7.分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的逆向工程。

8.程序测试是对编码阶段的语法错、语义错和运行错进行查找的编码执行活动。

9.为了获得较高的模块独立性,尽量设计出具有高聚和低藕合性能的模块。

10.常用的测试方法有黑盒测试和白盒测试。

1.可行性研究,应从技术可行性、经济可行性、运行可行性和法律和社会效益可行性等方面研究。

2.构化程序设计中程序主要的3种基本控制结构是顺序结构、选择结构、循环结构。

3.软件生存周期中时间最长、花费精力和费用最多的一个阶段是维护阶段。

4.需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功能需求。

7.分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的逆向工程。

8.程序测试是对编码阶段的语法错、语义错和运行错进行查找的编码执行活动进行查找的编码执行活动。

9.为了获得较高的模块独立性,尽量设计出具有低耦合和高聚性能的模块。

1.若年利率为i,n年后可得钱数为F则现在的价值F/(1+N*i)。

2.在结构化分析中用来描述加工逻辑的主要工具是结构化语言、判定表、

判定树。

3.软件测试的步骤:

制定测试计划、设计测试用例、实施测试、测试后调试、做测试报告

4.自顶向下结合的渐增测试法,在组合模块时有两种组合策略:

深度优先策落和宽度优先策略。

7.结构化方法总的指导思想是自顶向下逐层分解。

1.软件工程的三要素包括方法、工具和过程。

2.面向对象方法用对象行为和属性的分解取代了传统方法的功能分解。

3.HIPO图是由一组IPO图和一 H 图组成。

4.在前期需求明确、资料完整的情况下尽量采用 瀑布 模型。

5.用例图中,如果在完成某个功能时,偶而会执行另一个功能,则用 扩展关系来表示。

6.UML中用一端为空心三角形的连接表示泛化关系。

7.类是类图的主要的主要部件,由类名、  属性 、操作3部分组成。

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

9.部署图用连接实线关系表示各节点之间的通信路径。

10.选择 关系命令,可以看到Rose中对应图形的分类。

 

1.软件危机具有以下表现(D)。

1、对软件开发成本估计不准确2、软件产品的质量往往靠不住

3、软件常常不可维护4、软件成本逐年上升

A、1、2和3B、1、3和4C、2、3和4D、以上都正确

2.软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是(A)。

A运行和维护阶段B、设计阶段C、代码实现阶段D、测试阶段

3.以下属于软件的特点的是(D)。

A、软件是一种逻辑实体,具有抽象性

B、软件在使用过程中没有磨损、老化

C、软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高

D、以上都正确

4.软件开发技术不包含(D)。

A、软件开发方法学B、软件工程环境C、软件工具D、软件质量度度量

5.需求分析阶段最重要的技术文档是(B)。

A、设计说明书B、需求规格说明书

C、可行性分析报告D、用户手册

6.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是(C)

A、数据库设计B、数据通信C、数据定义D、数据维护

7.需求分析阶段的研究对象是(C)。

A、系统分析员要求B、用户要求

C、软硬件要求D、系统要求

8.结构化方法的基本原则是(B)。

A、模块化B、抽象与分解C、信息隐藏D、逐步求精

9.耦合度最高的是(B)耦合。

A、环境耦合B、容耦合C、控制耦合D、数据耦合

10.画软件结构图时应注意调用关系只能是(B)

A、从下到上B、从上到下

C、从左到右D、从右到左

11.软件设计中划分模块的一个准则是(C)

A、低聚低耦合B、低聚高耦合

C、高聚低耦合D高聚高耦合

12.Jackson设计方法是由英国的M.Jackson提出的,它是一种面向(C)的软件设计方法。

A、对象B、数据流C、数据结构D、控制结构

13.使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准。

A、程序部逻辑B、程序的复杂程度

C、该软件的编辑人员D、程序的功能

14.软件维护工作的最主要的部分是(A)。

A、校正性维护B、适应性维护C、完善性维护D、预防性维护

15.PDL是(B)语言。

A、高级程序设计语言B、伪码式

C、中级程序设计语言D、低级程序设计语言

16.以下哪个阶段不属于软件生存期的三大阶段(C)。

A、定义阶段B、开发阶段

C、编码阶段D、维护阶段

17.可维护性的特性中相互促进的是(A)

A、可理解性和可测试性B、效率和可移植性

C、效率和可修改性D、效率和结构好

18.软件测试的目标是(B)

A、证明软件是正确的B、发现错误、降低错误带来的风险

C、排除软件中所有的错误D、与软件调试相同

19.软件生命周期中所花费用最多的阶段是(D)

A、详细设计B、软件编码C、软件测试D、软件维护

20.详细设计的基本任务是确定每个模块的(D)设计。

A、功能B、调用关系C、输入输出数据D、算法

22.以下哪个图不是N-S图的构件(C)。

 

23.对于以下各图,有关描述中正确的是(A)。

A、数据A和B同时输入变成C

 

B、数据A变换成B和C

 

C、数据A或数据B(不能同时)输入,变换成C

 

D、数据A变换成B和C

 

24.以下哪种方法不是度量效益的方法(B)。

A、货币的时间价值B、算法模型估计

C、投资回收期D、纯收入

25.以下描述错误的是(D)。

A、数据流图将各种信息流抽象成数据流的形式

B、数据流图不反映控制关系、调用关系

C、数据流图不反映处理逻辑的先后顺序

D、数据流图不反映数据的流向

26.软件是(C)

A、处理对象和处理规则的描述B、程序

C、程序与文档D、计算机系统

27.软件需求规格说明的不应包括(B)。

A、主要功能B算法的详细描述

C、用户界面与运行环境D、软件性能

28.程序的三种基本控制结构是(B)。

A、过程、子程序和分程序B、顺序、选择和循环

C、递归、迭代和回溯D、调用、返回和转移

29.面向对象的分析方法主要是建立三类模型,即(D)。

A、系统模型、ER模型、应用模型B、对象模型、动态模型、应用模型

B、ER模型、对象模型、功能模型D、动态模型、功能模型、对象模型

30.ER模型中,包含以下基本成分(C)。

A、数据、对象、实体B、控制、联系、对象

C、实体、联系、属性D、实体、属性、操作

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

A.开发完毕才见到产品   B.与早提供工作软件

C.与早提供全部完整软件  D.开发完毕才见到工作软件

2.软件工程学的一个重要目标是( D)

A.提高程序的执行效率    B.降低程序对存储空间的要求

C.定义各种软件开发过程模型 D.提高软件的可维护性

3.需求分析最终结果是产生(B)

A.项目开发计划B.需求规格说明书

C.设计说明书  D.可行性分析报告

4.数据存储和数据流都是处于不同状态的( D )

A.分析结果B.事件C.动作D.数据

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

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

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

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

7.以下可哪个组件不是用例图的基本组件( D )

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

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

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

9.常用动词或动词词组来表示( C)

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

10.组件图常不包括以下哪个元素( A )

A.对象B.组件 C.接口 D.依赖

11.好的软件结构应该是( B)

A.高耦合、高聚 B.低耦合、高聚

C.高耦合、低聚 D.低耦合、低聚

12.静态模型不包括( C)

A.类图 B.组件图 C.状态图 D.部署图

13.动态模型不包括( D )

A.交组图 B.活动图  C.状态图 D.部署图

14.Rose模型文件的扩展名为( A )

A.mdlB.vsd  C.pdf D.swf

15.逆向工程是什么过程(C)

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

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

 

三、判断题(正确的在括号打上“√”,错误的打上“×”。

每小题2分,共20分)

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

(F)

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

(T)

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

一般来说,模块的大小都在10

行以下。

(F)

4在编制程序时,首先应该对程序的结构充分考虑,不要急于开始编码,而要写软件文

档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排等等。

(F)

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

(F)

6用黑盒法测试时,测试用例是根据程序部逻辑设计的。

(F)

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

(T)

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

(F)

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

(F)

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

的活动。

(T)

11螺旋模型是利用笛卡尔坐标的四个象限分别代表四个方面的活动来表示。

(F)

12模块越多,开发成本越小。

(F)

13聚是指一个软件结构各个模块之间互连程序的度量。

(F)

14结构化设计属于面向数据流的设计方法。

(T)

15详细设计是在概要设计之后进行的。

它利用概要设计的结果,对系统中的每个模块给出足够的过程性描述。

(T)

16程序运行过程中出现错误叫做容错。

(F)

17软件测试的目的是证明程序没有错误。

(F)

18白盒测试法是将程序看成一个透明的盒子,不需要了解程序的部结构和处理过程。

(F)

19PAD图在设置了五种基本的控制结构后,还允许递归调用。

(T)

20独立编译是指一个大程序的不同程序单元分别编译,然后重新连接整个程序段。

(T)

31开发软件就是编写程序(F)

32系统测试的主要方法是白盒测试法,主要进行功能、性能测试、安全性测试与可靠性测试等(F)

33编程时应尽可能利用硬件特点以提高程序效率(F)。

34软件需求分析的任务是建立软件模块结构图(F)。

35尽可能使用高级语言编写程序(T)。

36以结构化方法建立的系统模型就是数据流图(F)。

37进行总体设计时加强模块间的联系(F)。

38编码时尽量多用全局变量(F)。

39用CASE环境或程序自动化生成工具来自动生成一部分程序(T)

40软件测试是要发现软件中所有错误(F)

(T)41、软件开发、设计几乎都是从头开始,成本和进度很难估计。

(F)42、V(G)值越高的程序往往是越不复杂、越不容易出问题的程序。

(F)43、适应性维护是改进软件未来的可维护性和可靠性。

(F)44、软件是逻辑产品,软件质量较容易直接度量。

(T)45、随着软件复杂性的不断提高,软件的维护难度越来越大。

(F)46、软件也会磨损和老化。

(F)47、用穷举法测试是较现实的测试方法。

(T)48、面向数据设计方法一般都包括以下任务:

确定数据结构特征;用顺序、选择和循环三种基本形式表示数据等步骤。

(F)49、测试计划、测试用例,出错统计和有关的分析报告一般不用长期保存。

(F)50、McCabe建议模块规模应满足:

V(G)≤20。

(T )61.总体设计阶段要设计软件体系结构。

( F)62、软件即程序。

( T)63.采用对象设计系统时,首先建立系统的物理模型。

(T )64.用例图中,扩展关系表示为虚线箭头加“《extend》”。

( T)65.实现关系指定两个实体之间的一个合同。

( T)66.状态图通常作为对类图的补充。

( F)67.聚集关系是关联的一种形式,表示两个类之间的一般与特殊关系。

( T)68.一个完整的模型必然描述系统的静态和动态两个方面。

(F )69.状态图是对多个对象建模。

(T )70.在UML中,组件是指系统中可替换的物理部分。

四简述题(每小题5分,共10分)

1.测试用例

测试用例(TestCase)是为某个特殊目标而编制的一组测试输入、执行条件以与预期结果,以便测试某个程序路径或核实是否满足某个特定需求。

2.模块化

模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其部特性。

3.对象

指行动或思考时作为目标的事物

4.软件生命周期各阶段的任务是什么?

 答:

软件生命期分为7个阶段:

1、问题定义:

要解决的问题是什么

2、可行性研究:

确定问题是否值得解,技术可行性、经济可行性、操作可行性

3、需求分析:

系统必须做什么

4、总体设计:

系统如何实现,包括系统设计和结构设计

5、详细设计:

具体实现设计的系统

6、实现:

编码和测试

7、运行维护:

保证软件正常运行。

5.软件重用的效益是什么?

答:

1、软件重用可以显著地改善软件的质量和可靠性。

2、软件重用可以极提高软件开发的效率。

3、节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。

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

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

在需求分析、概要设计中,都采用了自定向下、逐层细化的方法。

2.使用三种基本控制结构构造程序,分别是顺序、选择和循环,这三种基本结构的共同点是、单入口、单出口,为自顶向下、逐步求精的设计方法提供了具体的实施手段。

3.采用主程序员的组织形式:

指开发程序的人员组织方式应用由一个主程序员、一个后备程序员和一个程序管理员三人为核心,再加上一些专家、其他技术人员组成小组。

7.什么是软件生命周期?

 

8.简述什么是回归测试?

回归测试-----在集成测试过程中每当一个新模块结合进来时,程序就发生了变化:

建立了新的数据流路径,可能出现新的I/O操作,激活新的控制逻辑。

这样变化有可能使原来正常的功能出现了问题;所谓回归测试是指重新执行已经做过的测试的某个子集,以保证上述变化没有带来非预期的错误。

 

9.简述软件危机有哪几种表现?

软件开发和维护的过程中常遇到的问题

(1)对于软件开发的成本和进度的估计很不准确。

(2)开发的软件产品不能完全满足用户要求。

(3)开发的软件可靠性差,软件产品质量差。

(4)软件通常没有适当的文档资料。

(5)软件的可维护性差。

(6)软件开发生产率提高的速度,远远跟不上计算机应用普与深入的趋势,效率低。

(7)软件价格昂贵。

10.什么是软件工程?

(SoftwareEngineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。

它涉与到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。

11.简述需求分析的任务?

需求分析的任务就是:

确定待开发的软件系统“做什么”。

具体任务包括确定软件系统的功能需求、性能需求和运行环境约束,编制软件需求规格说明书、软件系统的验收测试准则和初步的用户手册

12.详细设计的主要任务是什么?

答:

详细设计的基本任务包括:

1、为每个模块进行详细的算法设计

2、为模块的数据结构进行设计

3、对数据库进行物理设计

4、其他设计

5、编写详细设计说明书

6、评审

 

13.自顶而下渐增测试与自底向上渐增测试各有何优缺点

答:

① 自顶而下渐增测试

    优点:

不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能够尽早发现上层模块的接口错误。

    缺点:

需要存根程序,底层错误发现较晚。

    ② 自底而上渐增测试

    优点与缺点和自顶而下渐增测试相反。

14.软件生存期各阶段的主要任务。

15.简述需求分析工作可以分成哪四个方面?

软件需求分析有三个基本原则?

需求分析阶段的基本过程包括四个方面:

对问题的识别,分析与综合,制定规格说明以与评审。

(1)问题识别,系统分析人员要研究计划阶段产生的可行性分析报告和软件项目实施计划。

然后进行功能需求、性能需求、环境需求、可靠性需求安全需求、用户界面需求、资源使用需求等方面的工作。

(2)分析与综合,分析员需从数据流和数据结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的限制,分析他们是否满足功能需求,是否合理。

(3)制定规格说明,编写需求分析的文档。

(4)需求分析评审。

为保证软件需求定义的质量,评审应以专门指定的人员负责,并按规程严格执行。

需求分析的原则

1.必须能够传达和理解问题的数据域和功能域

2.必须按自顶向下、逐层分解的方式对问顺进行分解和不断细化

3.给出系统的逻辑模型和物理模型

16.以G.J.Myers的观点,简述对软件测试的目的。

1、为了发现错误而执行程序的过程

2、一个好的用例能够发现至今尚未发现的错误的测试

3、一个成功的测试是发现至今尚未发现的错误的测试

 

17.在面向对象的系统开发过程中,每个阶段需要建造的模型各有什么作用?

1、在面向对象的系统开发过程中,每个阶段要建造不同的模型

2、需求分析阶段建造的模型用来捕获系统需求分析

3、设计阶段的模型是分析模型的扩充,为实现阶段作指导性和技术性的解决方案

4、实现阶段的模型是真正的源代码与编译后的组件

5、发布阶段是描述系统物理上的架构

18.软件工程的原则是什么?

软件工程的原则是指围绕工程设计、工程支持以与工程管理在软件开发过程中必须遵循的原则。

五、应用题(20分)

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

年龄有20岁以下者,初中文化程度脱产学习,高中文化程度当电工;年龄有20岁至40岁之间者,中学文化程度男性当钳工,女性当车工,大学文化程度者当技术员;年龄有40岁以上者,中学文化程度当材料员,大学文化程度当技术员。

请用结构化语言,判定树或判定表描述上述问题的加工逻辑。

 

职工重新分配工作的政策可描述为:

若年龄在20岁以下

则初中文化程度脱产学习

高中文化程度当电工

若年龄在20-40岁之间

则中学文化程度

男性当钳工

女性当车工

大学文化程度都当技术员

若年龄在40岁以上者

则中学文化当材料员

大学文化当技术员

 

年龄

条件

<20

20-40

>40

初中

高中

中学

大学

中学

大学

 

操作

脱产学习

电工

钳工

车工

技术员

材料员

初中脱产学习

年龄<20高中电工

男钳工

中学女车工

工作分配规则年龄20-40

高中技术员

年龄>40中学村料员

高中技术员

 

2.假设某航空公司规定,乘客可以免费托运重量不超过30kg的行。

当行重量超过30kg时,对头等舱的国乘客超重部分每公斤收费4元,对其他舱的乘客超重部分每公斤收费6元,对国外乘客超重部分每公斤收费比国乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。

用判定表表示每种条件组合相对应的计算行费的算法。

 

用判定树表示计算行费的算法用判定树表示计算行费的算法

3.以自己开发软件(可以是C、C++、VC++、VF、甚至是汇编、等其他语言)的一个自选项目为背景,应用软件工程方法进行策划,要求必须给出项目描述,主要的软件工程过程的描述以与各阶段的主要容

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

当前位置:首页 > 求职职场 > 笔试

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

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