软件工程试题一
一.单项选择题
1. 以下不是软件危机的典型表现的是: ( D ) 。
A. 对软件开发成本和进度的估计常常很不准确
B. 用户对“已完成的”软件系统不满意的现象经常发生
C. 软件产品的质量往往靠不住
D. 采用面向对象方法开发软件
3. 下列哪个不是软件工程方法学中的要素( C )。
A. 方法 B. 工具 C. 程序 D. 过程
4. 下列模块的独立性的耦合方式中,最好的是( C )
A.公共耦合 B. 控制耦合 C. 数据耦合 D. 内容耦合
5.概要设计中,开发人员要解决的最重要的问题是 ( D ) 。
A. 要让软件做什么 B. 要给该软件提供哪些信息
C. 要求软件工作效率怎样 D. 要让该软件模块具有何种结构
6. 为了提高模块的独立性,模块内部最好是 ( C ) 。
A. 逻辑内聚 B. 时间内聚 C. 功能内聚 D. 通信内聚
7. 程序的三种基本控制结构的共同特点是 ( C ) 。 A. 不能嵌套使用 B. 只能用来写简单程序
C. 只能一个入口和一个出口 D. 已经用硬件实现
8. 以下说法错误的是 ( ) 。 A
A. 面向对象分析与面向对象设计的定义没有明显区别
B. 从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程
C. 在实际的软件开发过程中,面向对象分析与面向对象设计的界限是模糊的
D. 面向对象分析和面向对象设计活动是一个多次反复迭代的过程
9. 软件测试过程中的确认测试主要是为了发现 ( A ) 阶段的错误。
A. 需求分析 B. 概要设计 C. 详细设计 D. 编码
10. 在面向对象的高层设计体系结构中, ( C ) 是用来描述用户一般使用软件习惯的部分
A. 人机交互界面 B. 问题论域 C. 系统交互界面 D. 数据管理
11. 为适应软硬件环境变化而修改软件的过程是 ( B ) 。
A. 校正性维护 B. 适应性维护
C. 完善性维护 D. 预防性维护
12. 在UML的各类图中,( A )图是描述软件功能的。
A 用例图 B 类图 C 活动图 D 顺序图
13. ( D )不属于OO三要素。
A.对象 B. 继承 C.封装 D.多态
14.(C )在ATM机系统中,下列哪个不能在面向对象设计中被定义为类。 C
A 中央计算机 B 柜台事务 C 拨号 D 营业厅
15.在黑盒测试中,作为相关黑盒测试有效补充的测试方法是 ( B ) 。 A. 等价类划分法 B. 边界值分析法 C. 错误推测法 D. 因果图法
二.判断题(本大题共__15__题,每题___1___分,共___15_____分。
1. 软件简单的说就是程序和相关的数据及文档。 T
2. 测试用例由一系列输入和实际的输出组成。 F
3. 软件工程的集成测试都是自顶向下的。 F
4. 编码是尽可能采用局部变量。 T
5. 在进行需求分析时需同时考虑维护性问题。 T
6. 顺序图描述了对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。 T
7. 在进行概要设计时应加强模块间的联系。 F
8. 模块越小,模块化的优点越明显。一般来说,模块的大小都在10行以下。 F
9. 模块间的联系越紧密越好。 F
10. 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。 F
11. 维护就是在软件交付使用后进行的修改。 T
12. 一组测试用例是判定覆盖,则一定是语句覆盖。 T
13. 面向对象软件工程方法就是至上而下、逐步求精的方法。 F
14. 向一个已经延期的项目增加人手,往往不会加快其开发进程。 T
15. 应尽可能多用GOTO语句。 F
四.简答题
1.简述螺旋模型。
螺旋模型(Spiral Model)采用一种周期性的方法来进行系统开发。这会导致开发出众多的中间版本。使用它,项目经理在早期就能够为客户实证某些概念。该模型是快速原型法,以进化的开发方式为中心,在每个项目阶段使用瀑布模型法。这种模型的每一个周期都包括需求定义、风险分析、工程实现和评审4个阶段,由这4个阶段进行迭代。软件开发过程每迭代一次,软件开发又前进一个层次
2.简述你对模块独立性的理解。 模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单,模块内部各部分及模块间的关系的一种衡量标准,由内聚和耦合来度量。 模块独立性的重要性:具有独立的模块的软件比较容易开发出来。这是由于能够分割功能而且接口可以简化;独立的模块比较容易测试和维护。这是因为相对说来,修改设计和程序需要的工作量比较小,错误传播范围小,需要扩充功能时能够"插入"模块。总之,模块独立是优秀设计的关键,而设计又是决定软件质量的关键环节。
五.综合题(本大题共__3__题,每题___10___分,共___30_____分。)
1、 问题陈述:为更好的管理食堂工作,某公司拟开发食堂管理系统,食堂管理员将所有菜式信息输入到系统中,并提前录入每日菜谱信息到系统中,员工通过系统进行网上订餐,从而得到本人的相关订餐信息,
员工可以通过系统了解每日菜谱信息和自己的消费情况,每月,食堂管理员得到所有
员工的消费情况和每个菜式的订餐统计信息(10分)
(1) 以结构化方法建立该问题的数据流图(至少2层,即顶层和0层) (7分)
(2) 描述数据流图中的主要数据字典(3分)
软件工程试题二
一、 填空题(每空1分,共25分)
1. 软件生存周期一般可以划分为,____、_____、计 、编码 、测试 和_ _运行与维护_。
2、 基于软件的功能划分,软件可以划分成___、____、___件___三种。
3、可行性研究,应从开放方案可行性 等方面研究。
4和存储文件
5、结构化分析方法是面向______数据流__进行需求分析的方法。结构化分析方法使用____与_____来描述。
6、为了在软件开发过程中保证软件的质量,主要采取下述措施:_审、测试
7、大型软件测试包括个步骤。
二、 单项选择题(每小题2分,共20分)
1、 软件设计中划分模块的一个准则是( C )。
A、 低内聚低耦合 B、低内聚高耦合
C、 高内聚低耦合 D、内聚高耦合
2. Jackson设计方法是由英国的M. Jackson提出的,它是一种面向( C )的软件设
计方法。
A、 对象 B 数据流 C 数据结构 D 控制结构
3. 试判断下列叙述中,哪 个(些)是正确的( C )。
a、软件系统中所有的信息流都可以认为是事务流
b、软件系统中所有的信息流都可以认为是变换流
c、事务分析和变换分析的设计步骤是基本相似的
A、a B、b C、c D、b和c
4. ( A )是用户和设计交换最频繁的方法。
A、 原型化方法 B、瀑布模型方法
C、 螺旋模型方法 D、构件组装模型
5. 软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施
的主要保证是( C )。
A、 硬件环境 B、软件开发的环境
C软件开发工具和软件开发的环境 D、 开发人员的素质
6. 软件测试的目的是?( D )
A、 证明软件的正确性
B、 找出软件系统中存在的所有错误
C、 证明软件系统中存在错误
D、 尽可能多的发现软件系统中的错误
7. 使用白盒测试方法时,确定测试数据应根据( A )和指定的覆盖标准。
A、程序的内部逻辑 B、程序的复杂程度
C、该软件的编辑人员 D、程序的功能
8. 软件维护工作的最主要部分是( C )。
A、 校正性维护 B、适应性维护 C、完善性维护 D、预防性维护
9. PDL是( B )语言。
A、 高级程序设计语言 B、伪码式
C、中级程序设计语言 D、低级程序设计语言
三、 判断题(正确的在括号内打上“√”,错误的打上“×”。每题2分,共20分)
1. 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。( × )
2. 发现错误多的程序模块,残留在模块中的错误也多。( √ )
3. 为了加快软件维护作业的进度,应尽可能增加维护人员的数目。( × )
4. 软件维护就是改正软件中的错误。( × )
5. 质量保证是为了保证产品和服务充分满足消费者要求的质量而进行的有计划,有组
织的活动。( √ )
6. 软件开发的主要任务是写程序。 ( × )
7. 测试只能证明程序有错误,不能证明程序没有错误。( √ )
8. 模块化程序设计中,模块越小,模块化的优点越明显。一般来说,模块的大小都在
10行以下。( × )
9. 在编制程序时,首先应该对程序的结构充分考虑,不要急于开始编码,而要像写软
件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排,等等。( × )
10. 程序设计风格指导原则提出,尽量多使用临时变量。( × )
四、 简答题(每题5分,共20分)
1.什么是软件工程?
软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
2.耦合性和内聚性有几种类型? 其耦合度、内聚强度的顺序如何?
答:低:非直接耦合 数据耦合标记耦合 控制耦合外部耦合 公共耦合内容耦合 :高
强:功能内聚 信息内聚 通信内聚 过程内聚 时间内聚 逻辑内聚 巧合内聚:弱
3.简述需求分析工作可以分成哪四个方面?软件需求分析的有哪三个基本原则?
答:需求分析阶段分成四个方面:对问题的识别、分析与综合、制定规格说明和评审。三个基本原则:必须能够表达和理解问题的数据域和功能域;必须按自顶向下、逐步分解的方式对问题进行分解和不断细化;要给出系统的逻辑视图和物理视图。
4、什么是黑盒测试法?
答:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据,产生正确地输出信息。
五、 程序设计与算法描述题(共15分)
1. 有下列伪码程序:
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(或
② M=l0(或>=10),N=20(或>=20)
路径覆盖的测试用例为
① M=9,N=19;
② M=9、N=20;
③ M=l0,N=l9;
④ M=10,N=20;
软件工程试题三
一、选择题:(每题1分,共20分)(将答案写在题号前的()中)
( C )1. 软件是( )。
A. 处理对象和处理规则的描述 B. 程序
C. 程序及其文档 D. 计算机系统
( B )2. 软件需求规格说明的内容不应包括( )。
A. 主要功能 B. 算法的详细描述
C. 用户界面及运行环境 D. 软件的性能
( B )3. 程序的三种基本控制结构是( )。
A. 过程、子程序和分程序
C. 递归、迭代和回溯 B. 顺序、选择和重复 D. 调用、返回和转移
( D ) 4. 面向对象的分析方法主要是建立三类模型,即( )。
A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型
C) E-R模型、对象模型、功能模型 D) 对象模型、动态模型、功能模型 ( C ) 5. 在E-R模型中,包含以下基本成分( )。
A) 数据、对象、实体 B) 控制、联系、对象
C) 实体、联系、属性 D) 实体、属性、操作
( A ) 6. 各种软件维护的类型中最重要的是( )。
A) 完善性维护 B) 纠错性维护 C) 适应性维护
( B ) 7.软件测试的目标是( )。
A. 证明软件是正确的 B. 发现错误、降低错误带来的风险
D. 与软件调试相同 D) 预防性维护 C. 排除软件中所有的错误
( 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.条件组合覆盖
( A )13.面向数据流的设计方法把( )映射成软件结构。
A.数据流 B.系统结构 C.控制结构 D.信息流
( A )14.内聚程度最低的是( )内聚
A.偶然 B.过程 C.顺序 D.时间
( A )15.确定测试计划是在( )阶段制定的.
A.总体设计 B.详细设计 C.编码 D.测试
( D )16.需求分析的产品是( )
A.数据流程图案 B.数据字典 C.判定表 D.需求规格说明书 ( C )17.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( )
A.数据库设计 B.数据通信 C.数据定义 D.数据维护
( D )18.( )引入了“风险驱动”的思想,适用于大规模的内部开发项目。
A.增量模型 B.喷泉模型 C.原型模型 D.螺旋模型 ( D )19.模块的内聚性最高的是( )
A.逻辑内聚 B.时间内聚 C.偶然内聚 D.功能内聚
( D )20.提高测试的有效性非常重要,成功的测试是指( )
A.证明了被测试程序正确无误 B. 说明了被测试程序符合相应的要求
C.未发现被测程序的错误 D.发现了至今为止尚未发现的错误
二.判断题(每题1分,共10分)将答案写在题号前的( )中,正确用√, 错误用χ。
( × )1、开发软件就是编写程序。
( × )2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性
测试及可靠性等 测试。
( × )3、编程序时应尽可能利用硬件特点以提高程序效率.
( × )4、软件需求分析的任务是建立软件模块结构图。
( √ )5、尽可能使用高级语言编写程序
( × )6、以结构化分析方法建立的系统模型就是数据流图。
( × )7、进行总体设计时加强模块间的联系。
( × )8、编码时尽量多用全局变量.
( √ )9、用CASE环境或程序自动生成工具来自动生成一部分程序.
( × )10、软件测试是要发现软件中的所有错误。
三、简答题:(每题5分,共25分)
1. 软件生命期各阶段的任务是什么? 软件定义、软件开发、软件运行
答:软件生命期分为7个阶段:
1、问题定义:要解决的问题是什么
2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性
3、需求分析:系统必须做什么
4、总体设计:系统如何实现,包括系统设计和结构设计
5、详细设计:具体实现设计的系统
6、实现:编码和测试
7、运行维护:保证软件正常运行。
2、软件重用的效益是什么?
答:1、软件重用可以显著地改善软件的质量和可靠性。
2、软件重用可以极大地提高软件开发的效率。
3、节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。
3、 自顶而下渐增测试与自底而上渐增测试各有何优、缺点?
答:① 自顶而下渐增测试
优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,
而且能够尽早发现上层模块的接口错误。
缺点:需要存根程序,底层错误发现较晚。
② 自底而上渐增测试
优点与缺点和自顶而下渐增测试相反。
4 、 提高可维护性的方法有哪些?
答:(1)在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束 前的审查和复审中,应着重对可维护性进行复审。(2)在需求分析阶段的复审中,应对将来要扩充和修改的部分加以注明。(3)在讨论软件可移植性问题时,要考虑可能要影响软件维护的系统界面。
(4)在软件设计的复审中,因从便于修改、模块化和功能独立的目标出发,评价软件的结构和过程,还应对将来可能修改的部分预先做准备。(5)在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素。(6) 在软件系统交付使用前的每一测试步骤中都应给出需要进行预防性维护部分的提示。(7)在完成每项维护工作后,都应对软件维护本身进行仔细认真的复审。 (8) 为了从根本上提高软件系统的可维护性,人们正试图通过直接维护软件规格说明来维护软件 ,同时也在大力发展软件重用技术。
5、简述软件测试要经过哪几个步骤,每个步骤与什么文档有关。
【解答】
测试过程按 4 个步骤进行,即单元测试、集成测试、确认测试和系统测试。 单元测试集中对用源代码实现的每一个程序单元进行测试,与其相关的文档是单元测试计划和详细设计说明书。
集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。与其相关的文档是集成测试计划和软件需求说明书。
确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。与其相关的文档是确认测试计划和软件需求说明书。
系统测试把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。与其相关的文档:用户指南、使用手册等。
四、应用题(每题8分,共40分)
1、假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。要求:画出系统的数据流图。 答:
软件工程试题一
一.单项选择题
1. 以下不是软件危机的典型表现的是: ( D ) 。
A. 对软件开发成本和进度的估计常常很不准确
B. 用户对“已完成的”软件系统不满意的现象经常发生
C. 软件产品的质量往往靠不住
D. 采用面向对象方法开发软件
3. 下列哪个不是软件工程方法学中的要素( C )。
A. 方法 B. 工具 C. 程序 D. 过程
4. 下列模块的独立性的耦合方式中,最好的是( C )
A.公共耦合 B. 控制耦合 C. 数据耦合 D. 内容耦合
5.概要设计中,开发人员要解决的最重要的问题是 ( D ) 。
A. 要让软件做什么 B. 要给该软件提供哪些信息
C. 要求软件工作效率怎样 D. 要让该软件模块具有何种结构
6. 为了提高模块的独立性,模块内部最好是 ( C ) 。
A. 逻辑内聚 B. 时间内聚 C. 功能内聚 D. 通信内聚
7. 程序的三种基本控制结构的共同特点是 ( C ) 。 A. 不能嵌套使用 B. 只能用来写简单程序
C. 只能一个入口和一个出口 D. 已经用硬件实现
8. 以下说法错误的是 ( ) 。 A
A. 面向对象分析与面向对象设计的定义没有明显区别
B. 从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程
C. 在实际的软件开发过程中,面向对象分析与面向对象设计的界限是模糊的
D. 面向对象分析和面向对象设计活动是一个多次反复迭代的过程
9. 软件测试过程中的确认测试主要是为了发现 ( A ) 阶段的错误。
A. 需求分析 B. 概要设计 C. 详细设计 D. 编码
10. 在面向对象的高层设计体系结构中, ( C ) 是用来描述用户一般使用软件习惯的部分
A. 人机交互界面 B. 问题论域 C. 系统交互界面 D. 数据管理
11. 为适应软硬件环境变化而修改软件的过程是 ( B ) 。
A. 校正性维护 B. 适应性维护
C. 完善性维护 D. 预防性维护
12. 在UML的各类图中,( A )图是描述软件功能的。
A 用例图 B 类图 C 活动图 D 顺序图
13. ( D )不属于OO三要素。
A.对象 B. 继承 C.封装 D.多态
14.(C )在ATM机系统中,下列哪个不能在面向对象设计中被定义为类。 C
A 中央计算机 B 柜台事务 C 拨号 D 营业厅
15.在黑盒测试中,作为相关黑盒测试有效补充的测试方法是 ( B ) 。 A. 等价类划分法 B. 边界值分析法 C. 错误推测法 D. 因果图法
二.判断题(本大题共__15__题,每题___1___分,共___15_____分。
1. 软件简单的说就是程序和相关的数据及文档。 T
2. 测试用例由一系列输入和实际的输出组成。 F
3. 软件工程的集成测试都是自顶向下的。 F
4. 编码是尽可能采用局部变量。 T
5. 在进行需求分析时需同时考虑维护性问题。 T
6. 顺序图描述了对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。 T
7. 在进行概要设计时应加强模块间的联系。 F
8. 模块越小,模块化的优点越明显。一般来说,模块的大小都在10行以下。 F
9. 模块间的联系越紧密越好。 F
10. 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。 F
11. 维护就是在软件交付使用后进行的修改。 T
12. 一组测试用例是判定覆盖,则一定是语句覆盖。 T
13. 面向对象软件工程方法就是至上而下、逐步求精的方法。 F
14. 向一个已经延期的项目增加人手,往往不会加快其开发进程。 T
15. 应尽可能多用GOTO语句。 F
四.简答题
1.简述螺旋模型。
螺旋模型(Spiral Model)采用一种周期性的方法来进行系统开发。这会导致开发出众多的中间版本。使用它,项目经理在早期就能够为客户实证某些概念。该模型是快速原型法,以进化的开发方式为中心,在每个项目阶段使用瀑布模型法。这种模型的每一个周期都包括需求定义、风险分析、工程实现和评审4个阶段,由这4个阶段进行迭代。软件开发过程每迭代一次,软件开发又前进一个层次
2.简述你对模块独立性的理解。 模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单,模块内部各部分及模块间的关系的一种衡量标准,由内聚和耦合来度量。 模块独立性的重要性:具有独立的模块的软件比较容易开发出来。这是由于能够分割功能而且接口可以简化;独立的模块比较容易测试和维护。这是因为相对说来,修改设计和程序需要的工作量比较小,错误传播范围小,需要扩充功能时能够"插入"模块。总之,模块独立是优秀设计的关键,而设计又是决定软件质量的关键环节。
五.综合题(本大题共__3__题,每题___10___分,共___30_____分。)
1、 问题陈述:为更好的管理食堂工作,某公司拟开发食堂管理系统,食堂管理员将所有菜式信息输入到系统中,并提前录入每日菜谱信息到系统中,员工通过系统进行网上订餐,从而得到本人的相关订餐信息,
员工可以通过系统了解每日菜谱信息和自己的消费情况,每月,食堂管理员得到所有
员工的消费情况和每个菜式的订餐统计信息(10分)
(1) 以结构化方法建立该问题的数据流图(至少2层,即顶层和0层) (7分)
(2) 描述数据流图中的主要数据字典(3分)
软件工程试题二
一、 填空题(每空1分,共25分)
1. 软件生存周期一般可以划分为,____、_____、计 、编码 、测试 和_ _运行与维护_。
2、 基于软件的功能划分,软件可以划分成___、____、___件___三种。
3、可行性研究,应从开放方案可行性 等方面研究。
4和存储文件
5、结构化分析方法是面向______数据流__进行需求分析的方法。结构化分析方法使用____与_____来描述。
6、为了在软件开发过程中保证软件的质量,主要采取下述措施:_审、测试
7、大型软件测试包括个步骤。
二、 单项选择题(每小题2分,共20分)
1、 软件设计中划分模块的一个准则是( C )。
A、 低内聚低耦合 B、低内聚高耦合
C、 高内聚低耦合 D、内聚高耦合
2. Jackson设计方法是由英国的M. Jackson提出的,它是一种面向( C )的软件设
计方法。
A、 对象 B 数据流 C 数据结构 D 控制结构
3. 试判断下列叙述中,哪 个(些)是正确的( C )。
a、软件系统中所有的信息流都可以认为是事务流
b、软件系统中所有的信息流都可以认为是变换流
c、事务分析和变换分析的设计步骤是基本相似的
A、a B、b C、c D、b和c
4. ( A )是用户和设计交换最频繁的方法。
A、 原型化方法 B、瀑布模型方法
C、 螺旋模型方法 D、构件组装模型
5. 软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施
的主要保证是( C )。
A、 硬件环境 B、软件开发的环境
C软件开发工具和软件开发的环境 D、 开发人员的素质
6. 软件测试的目的是?( D )
A、 证明软件的正确性
B、 找出软件系统中存在的所有错误
C、 证明软件系统中存在错误
D、 尽可能多的发现软件系统中的错误
7. 使用白盒测试方法时,确定测试数据应根据( A )和指定的覆盖标准。
A、程序的内部逻辑 B、程序的复杂程度
C、该软件的编辑人员 D、程序的功能
8. 软件维护工作的最主要部分是( C )。
A、 校正性维护 B、适应性维护 C、完善性维护 D、预防性维护
9. PDL是( B )语言。
A、 高级程序设计语言 B、伪码式
C、中级程序设计语言 D、低级程序设计语言
三、 判断题(正确的在括号内打上“√”,错误的打上“×”。每题2分,共20分)
1. 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。( × )
2. 发现错误多的程序模块,残留在模块中的错误也多。( √ )
3. 为了加快软件维护作业的进度,应尽可能增加维护人员的数目。( × )
4. 软件维护就是改正软件中的错误。( × )
5. 质量保证是为了保证产品和服务充分满足消费者要求的质量而进行的有计划,有组
织的活动。( √ )
6. 软件开发的主要任务是写程序。 ( × )
7. 测试只能证明程序有错误,不能证明程序没有错误。( √ )
8. 模块化程序设计中,模块越小,模块化的优点越明显。一般来说,模块的大小都在
10行以下。( × )
9. 在编制程序时,首先应该对程序的结构充分考虑,不要急于开始编码,而要像写软
件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排,等等。( × )
10. 程序设计风格指导原则提出,尽量多使用临时变量。( × )
四、 简答题(每题5分,共20分)
1.什么是软件工程?
软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
2.耦合性和内聚性有几种类型? 其耦合度、内聚强度的顺序如何?
答:低:非直接耦合 数据耦合标记耦合 控制耦合外部耦合 公共耦合内容耦合 :高
强:功能内聚 信息内聚 通信内聚 过程内聚 时间内聚 逻辑内聚 巧合内聚:弱
3.简述需求分析工作可以分成哪四个方面?软件需求分析的有哪三个基本原则?
答:需求分析阶段分成四个方面:对问题的识别、分析与综合、制定规格说明和评审。三个基本原则:必须能够表达和理解问题的数据域和功能域;必须按自顶向下、逐步分解的方式对问题进行分解和不断细化;要给出系统的逻辑视图和物理视图。
4、什么是黑盒测试法?
答:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据,产生正确地输出信息。
五、 程序设计与算法描述题(共15分)
1. 有下列伪码程序:
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(或
② M=l0(或>=10),N=20(或>=20)
路径覆盖的测试用例为
① M=9,N=19;
② M=9、N=20;
③ M=l0,N=l9;
④ M=10,N=20;
软件工程试题三
一、选择题:(每题1分,共20分)(将答案写在题号前的()中)
( C )1. 软件是( )。
A. 处理对象和处理规则的描述 B. 程序
C. 程序及其文档 D. 计算机系统
( B )2. 软件需求规格说明的内容不应包括( )。
A. 主要功能 B. 算法的详细描述
C. 用户界面及运行环境 D. 软件的性能
( B )3. 程序的三种基本控制结构是( )。
A. 过程、子程序和分程序
C. 递归、迭代和回溯 B. 顺序、选择和重复 D. 调用、返回和转移
( D ) 4. 面向对象的分析方法主要是建立三类模型,即( )。
A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型
C) E-R模型、对象模型、功能模型 D) 对象模型、动态模型、功能模型 ( C ) 5. 在E-R模型中,包含以下基本成分( )。
A) 数据、对象、实体 B) 控制、联系、对象
C) 实体、联系、属性 D) 实体、属性、操作
( A ) 6. 各种软件维护的类型中最重要的是( )。
A) 完善性维护 B) 纠错性维护 C) 适应性维护
( B ) 7.软件测试的目标是( )。
A. 证明软件是正确的 B. 发现错误、降低错误带来的风险
D. 与软件调试相同 D) 预防性维护 C. 排除软件中所有的错误
( 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.条件组合覆盖
( A )13.面向数据流的设计方法把( )映射成软件结构。
A.数据流 B.系统结构 C.控制结构 D.信息流
( A )14.内聚程度最低的是( )内聚
A.偶然 B.过程 C.顺序 D.时间
( A )15.确定测试计划是在( )阶段制定的.
A.总体设计 B.详细设计 C.编码 D.测试
( D )16.需求分析的产品是( )
A.数据流程图案 B.数据字典 C.判定表 D.需求规格说明书 ( C )17.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( )
A.数据库设计 B.数据通信 C.数据定义 D.数据维护
( D )18.( )引入了“风险驱动”的思想,适用于大规模的内部开发项目。
A.增量模型 B.喷泉模型 C.原型模型 D.螺旋模型 ( D )19.模块的内聚性最高的是( )
A.逻辑内聚 B.时间内聚 C.偶然内聚 D.功能内聚
( D )20.提高测试的有效性非常重要,成功的测试是指( )
A.证明了被测试程序正确无误 B. 说明了被测试程序符合相应的要求
C.未发现被测程序的错误 D.发现了至今为止尚未发现的错误
二.判断题(每题1分,共10分)将答案写在题号前的( )中,正确用√, 错误用χ。
( × )1、开发软件就是编写程序。
( × )2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性
测试及可靠性等 测试。
( × )3、编程序时应尽可能利用硬件特点以提高程序效率.
( × )4、软件需求分析的任务是建立软件模块结构图。
( √ )5、尽可能使用高级语言编写程序
( × )6、以结构化分析方法建立的系统模型就是数据流图。
( × )7、进行总体设计时加强模块间的联系。
( × )8、编码时尽量多用全局变量.
( √ )9、用CASE环境或程序自动生成工具来自动生成一部分程序.
( × )10、软件测试是要发现软件中的所有错误。
三、简答题:(每题5分,共25分)
1. 软件生命期各阶段的任务是什么? 软件定义、软件开发、软件运行
答:软件生命期分为7个阶段:
1、问题定义:要解决的问题是什么
2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性
3、需求分析:系统必须做什么
4、总体设计:系统如何实现,包括系统设计和结构设计
5、详细设计:具体实现设计的系统
6、实现:编码和测试
7、运行维护:保证软件正常运行。
2、软件重用的效益是什么?
答:1、软件重用可以显著地改善软件的质量和可靠性。
2、软件重用可以极大地提高软件开发的效率。
3、节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。
3、 自顶而下渐增测试与自底而上渐增测试各有何优、缺点?
答:① 自顶而下渐增测试
优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,
而且能够尽早发现上层模块的接口错误。
缺点:需要存根程序,底层错误发现较晚。
② 自底而上渐增测试
优点与缺点和自顶而下渐增测试相反。
4 、 提高可维护性的方法有哪些?
答:(1)在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束 前的审查和复审中,应着重对可维护性进行复审。(2)在需求分析阶段的复审中,应对将来要扩充和修改的部分加以注明。(3)在讨论软件可移植性问题时,要考虑可能要影响软件维护的系统界面。
(4)在软件设计的复审中,因从便于修改、模块化和功能独立的目标出发,评价软件的结构和过程,还应对将来可能修改的部分预先做准备。(5)在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素。(6) 在软件系统交付使用前的每一测试步骤中都应给出需要进行预防性维护部分的提示。(7)在完成每项维护工作后,都应对软件维护本身进行仔细认真的复审。 (8) 为了从根本上提高软件系统的可维护性,人们正试图通过直接维护软件规格说明来维护软件 ,同时也在大力发展软件重用技术。
5、简述软件测试要经过哪几个步骤,每个步骤与什么文档有关。
【解答】
测试过程按 4 个步骤进行,即单元测试、集成测试、确认测试和系统测试。 单元测试集中对用源代码实现的每一个程序单元进行测试,与其相关的文档是单元测试计划和详细设计说明书。
集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。与其相关的文档是集成测试计划和软件需求说明书。
确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。与其相关的文档是确认测试计划和软件需求说明书。
系统测试把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。与其相关的文档:用户指南、使用手册等。
四、应用题(每题8分,共40分)
1、假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。要求:画出系统的数据流图。 答: