软件工程复习试题及答案

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

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

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

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

3?盒图也称为 _ N-S图 ________ 。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。

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

5. IPO图的中文意思是结构化设计中变换型结构的输入(In put )、加工

(Processing )、输出(Output )__________________ 。

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

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

7 .数据字典有以下四种条目:数据流、数据项、数据存储、基本加工,其

中数据项是组成数据流和数据存储的最小元素。

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

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

的过程。

10.耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到

高内聚、_低 _________ 耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。

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

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

3. 软件测试的步骤:单元、集成、系统、验收。

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

5. IPO图由—输入_________ 、处理和输出三个框组成。这个图的特点是能够直

观的显示三者之间的关系。

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

7?分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的_逆向工程________ 。&程序测试是对编码阶段的语法错、语义错和运行错____________ 进行查找的编码执行活

动。

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

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

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

可行性等方面研究。

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

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

4. 需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是______ 功能需求 _。7?分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的逆向工程_。&程序测试是对编码阶段的语法错、语义错和运行错__________ 进行查找的编码执行活动进行查找的编码执行活动。

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

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

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

3 ?软件测试的步骤:制定测试计划、设计测试用例、实施测试、测试后调试、做测试报告

4.自顶向下结合的渐增测试法,在组合模块时有两种组合策略:深度优先策落和 _____ 宽度优先策略]。

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

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

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

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

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

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

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

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

& UML中的泛化关系就是通常所说的________ 继承—关系。

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

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

1 ?软件危机具有下列表现( D )。

1、对软件开发成本估计不准确

2、软件产品的质量往往靠不住

3、软件常常不可维护

4、软件成本逐年上升

A、1、2和3

B、1、3和4

C、2、3和4

D、以上都正确

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

是(A )。

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、开发阶段

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

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 )。

24. 下列哪种方法不是度量效益的方法(

A 、货币的时间价值 C 、投资回收期

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

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

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

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

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

26. 软件是(C )

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

B 、程序

23 .对于下列各图,有关描述中正确的是(

A )。

A 、数据A 和

B 同时输入变成 C

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

C

D 、数据A 变换成B 和C

B )。

B 、算法模型估计 D 、纯收入

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)

三、判断题(正确的在括号内打上,错误的打上“X”。每小题 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 )

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

( 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 )值越高的程序往往是越不复杂、越不容易出问题的程序。

A . mdl

B . vsd 15.逆向工程是什么过程

A .模型到代码 C .代码到模型

C . pdf

D . swf

B ?设计到实现 D .类图到包图

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

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

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

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

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

T )48、面向数据设计方法一般都包括下列任务:确定数据结构特征;用顺序、选择和循环三种基本形式表示数据等步骤。

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

(F ) 50、McCabe建议模块规模应满足:V (G)w 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. 测试用例

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

2. 模块化

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

3. 对象

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

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

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

1、问题定义:要解决的问题是什么

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

3、需求分析:系统必须做什么

4、总体设计:系统如何实现,包括系统设计和结构设计

5、详细设计:具体实现设计的系统

6、实现:编码和测试

7、运行维护:保证软件正常运行。

扎眩讖件生胡删射性鍋輔?稱?

答耒抽蛉删,捉料蛀第既驀列誌件撷勵團槪■■卿肛

蛀曲种邸懈仏诚日飙漪腓报的书齢珂幅谕二禅,+獅

樹鮭的叶鵬:斛阶凯箔飙愼体的黯,懸戢魅懈册就各彌

碗底蓋做雜坦臓甘沁la&twmA

曲L跆为訓曲轩M般定瀚段詢朋便戕1B需求断默旅有讓

射:駁O畴此删萌恥U时

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

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

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

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

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

1?采用自顶向下、逐步求精的程序设计方法:在需求分析、概要设计中,都采用了自定向下、逐层细化的方法。

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

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

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

&简述什么是回归测试?

回归测试-----在集成测试过程中每当一个新模块结合进来时,程序就发生了变化:建立了新的数据流路径,可能出现新的I/O操作,激活新的控制逻辑。这样变化有可能使原来正

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

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

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

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

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

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

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

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

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

(7 )软件价格昂贵。

10. 什么是软件工程?

(Software Engineering,简称为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岁以上者

则中学文化当材料员

大学文化当技术员

初中------- ?脱产学习

Z

年龄<20 - * 高中----- ?电工

男 ----- ?钳工

/中学女—?车工

工作分配规则;”年龄20-40二

*高中 -------- ?技术员

年龄>40 >中学------- 村料员

高中技术员

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

过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的乘客超重部分每公

斤收费6元,对国外乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公

斤收费比正常乘客少一半。用判定表表示每种条件组合相对应的计算行李费的算法。

表6.1用判定表表示计算行李费的算法

_______________ 规JM

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

行李费 算法 行李重量

职 30kg

行李重量

rr>30kg

国内乘客

免费

——头等舱

——其他舱

外国乘客

![他舱

残疾乘客一 —附-30)X2 正常乘客一

(FF-30)X4

残疾乘客一 —(肝一 30)X3

E 常乘容

(Fl r -30)X6 残按乘客一

((F-30)X4 正常乘客一 (ff-30)X8 残疾乘客 —(F<-30)X6 正常乘客

(ff r -30)X 12

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

相关主题
相关文档
最新文档