软件工程期末复习题(含答案)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程必备期末复习题
选择题
1.软件设计中划分模块的一个准则是( C )。

A 低内聚低耦合
B低内聚高耦合
C高内聚低耦合
D.高内聚高耦合
2.( A )是用户和设计交换最频繁的方法。

A、原型化方法
B、瀑布模型法
C、螺旋模型方法
D、构件组装模型
3. 试判断下列叙述中,哪个些是正确的( C )。

a、软件系统中所有的信息流都可以认为是事务流
b、软件系统中所有的信息流都可以认为是变换流
c、事务分析和变换分析的设计步骤是基本相似的
A、a
B、b
C、c
D、b和c
4.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是( C )
A、硬件环境
B、软件开发的环境
C、软件开发工具和软件开发的环境
D、开发人员的素质
5.20世纪50年代以来,出现了许多不同的程序设计语言,下列语言中哪个语言是低级语言( D )
A、PASCAL
B、VISUAL BASIC
C、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、低级程序设计语言
10.软件的结构化设计(SD)方法中,一般分为概要设计和详细设计两阶段,其中详细设计主要是要建立( C )。

A、软件结构
B、软件过程
C、软件模型
D、软件模块
11.在数据流图中,○(椭圆)代表( B )
A、数据流
B、转换
C、数据源
D、外部实体
12.总体设计目的是确定整个系统的( D )。

A、规模
B、测试方案
C、费用
D、功能及模块结构
13. 检查软件产品是否符合需求定义的过程称为( A )。

A、确认测试
B、集成测试
C、验收测试
D、验证测试
14、在七种偶合中,最低偶合是( C )。

A、内容偶合
B、公共偶合
C、数据偶合
D、非直接偶合
15. 以下不属于白盒测试技术的是( D )
A.逻辑覆盖
B.基本路径测试
C、循环覆盖测试
D、等价类划分
16. 软件的发展经历了( D )个发展阶段
A.1
B. 2
C.3
D.4
17. 需求分析的任务不包括( B )
A.问题分析
B.系统设计
C.需求描述
D.需求评审。

18.从事物的组成部件及每个部件的属性、功能来认识事物。

这种方法被称为(A)的方法。

A、面向对象
B、面向数据
C、面向过程
D、面向属性
19.将软件组装成系统的一种测试技术叫(A)
A.集成测试
B.单元测试
C.集合测试
D.系统测试
20. 技术可行性是可行性研究的关键,其主要内容一般不包括( C )
A.风险分析
B.资源分析
C.人员分析
D.技术分析
21.一个模块的( B )是指能直接控制该模块的模块数。

A.扇出数
B.扇入数
C.宽度
D.深度
22.下列模型属于成本估算方法的是( A )
A、COCOMO模型
B、McCall模型
C、McCabe度量法
D、时间估算法
23.在衡量软件质量时,最重要的标准是( B )。

A、成本低
B、可维护性好
C、符合要求
D、界面友好
24.瀑布模型的关键不足在于( B )
A、过于简单
B、不能适应需求的动态变更
C、过于灵活
D、各个阶段需要进行评审
25.软件生命周期中所花费用最多的阶段是( D )
A、详细设计
B、软件编码
C、软件测试
D、软件维护
26. 软件开发时,一个错误发现得越晚,为改正它所付出的代价( A )
A、越大
B、越小
C、越不可捉摸
D、越接近平均水平
27. 程序的三种基本控制结构是( B )
A、过程、子程序和分程序
B、顺序、选择和循环
C、递归、堆栈和队列
D、调用、返回和转移
28. 结构化程序设计主要强调的是( D )
A程序的规模
B程序的效率
C程序设计语言的先进性
D易读性
29. 为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础
的软件维护称为( D )
A.纠错性维护
B、适应性维护
C、改善性维护
D、预防性维护
30. 模块的内聚性最高的是( D )
A、逻辑内聚
B、时间内聚
C、偶然内聚
D、功能内聚
问答题
1.什么是软件?
计算机软件是与计算机系统操作有关的程序、规程、规则及任何与之有关的文档及数据;
2.什么是软件工程?
软件工程是一门指导软件开发的工程学科,以计算机理论及其他相关学科的理论为指导,采用工程化的概念、原理、技术和方法进行软件的开发和维护,把经实践证明的科学的管理措施与最先进的技术方法结合起来。

3.快速原型技术的基本思想是什么?
花费少量代价建立一个可运行的系统,使用户及早获得学习的机会,最终提高软件质量。

4.快速开发原型的途径有哪些?
废弃型:快速建立需求规格原型;
追加型:快速建立渐进原型法采用循环渐进;
步骤:快速分析、构造原型、运行和评价原型、修改与改进
5.什么是软件危机?
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

主要是两个问题:(1)如何开发软件,怎样满足对软件的日益增长的需求;(2)如何维护数量不断膨胀的已有软件;
6.什么是软件生存周期?
软件生存周期是软件的产生直到报废的整个生命周期
7.什么是软件的可靠性?
指在给定时间内,在规定的环境条件下系统完成所指定功能的概率
8.如何识别用例?
明确以下4个问题即可:
1、与系统实现有关的主要问题是什么;
2、系统需要哪些输入/输出,这些输入/输出从何而来,到哪里;
3、执行者需要系统提供哪些功能;
4、执行者是否需要对系统中的信息进行读、创建、修改、删除或存储
9.如何识别角色?
1、谁使用系统的主要功能?
2、谁需要系统的支持以完成日常工作任务?
3、谁负责维护,管理并保持系统正常运行?
4、系统需要应付(或处理)哪些硬设备?
5、系统需要和哪些外部系统交互?
6、谁(或什么)对系统运行产生的结果(值)感兴趣?
10.如何识别类?
常用的方法有:1. 名词识别法;2. 系统实体识别法;3. 从用例中识别类;
4. 利用分解与抽象技术;关键是要定义类的“属性”及“操作”
11.耦合性和内聚性有几种类型? 其耦合度、内聚强度的顺序如何?
(1)非直接耦合;(2)数据耦合;(3)标记耦合;(4)控制耦合;(5)外部耦合;
(6)公共耦合;(7)内容耦合;
(1)偶然内聚;(2)逻辑内聚;(3)时间内聚;(4)过程内聚;(5)通信内聚;(6)顺序内聚;(7)功能内聚;
12.什么是黑盒测试法?
也称功能测试或数据驱动测试,测试时把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,只根据需求规格说明书,测试程序的功能或程序的外部特性。

13.等价类划分方法中,划分好等价类后设计测试用例的步骤是什么?
1) 为每个等价类编号;2) 使一个测试用例尽可能覆盖多个有效等价类;3) 特别要注意:一个测试用例只能覆盖一个无效等价类;
15.什么是白盒测试?
分析程序的内部逻辑结构,注意选择适当的覆盖标准,设计测试用例,对主要路径进行尽可能多的测试;
16.什么叫综合测试?
一般都应该先进行静态测试,再考虑动态测试,最后进行验收测试;选择最少量的高效测试用例,从而尽可能多地发现软件中的问题。

17.什么叫改善性维护?
扩充原有系统的功能,提高原有系统的性能,满足用户的实际需要
18什么叫预防性维护?
为了进一步改善软件的可靠性和易维护性,或者为将来的维护奠定更好的基础而对软件进行修改。

19什么叫适应性维护?
要使运行的软件能适应运行环境的变动而修改软件的过程。

20.什么是内聚度?
模块内部各成分彼此结合的紧密程度
21.什么是耦合度?
软件结构中模块间关联程度的一种度量
22.面向对象软件测试基本步骤是什么?
1、测试用例模型
2、测试某些用例中的典型场景
3、类及对象模型
4、某些类测试其状态模型
23.什么是软件体系结构?
为软件系统提供一个结构、行为和属性的高级抽象,确定了系统的组织结构和拓扑结构,显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。

24典型软件体系结构有哪些,其优缺点是什么?
仓库模型、分布式模型、客户机/服务器模型、抽象机模型、控制摸型;
仓库模型,优点:
1.共享大数据量的有效方法。

2.子系统不必关心其它的子系统如何使用它所产生的数据。

3.易于将新子系统集成,若新子系统也采用相同。

缺陷:
1.为了共享数据,各子系统必须有一致的数据视图,不可避免地会影响了整
个系统的性能;
2.子系统的改变,使产生的数据结构也可能发生改变;
3.统一的数据库结构(备份、安全、访问控制和恢复的策 ),将影响子系统
的效率。

分布式模型,优点:资源共享;开放性高;可伸缩性好;容错能力强;透明性高;
缺点:复杂性;安全性;可管理性;不可预知性;
抽象机模型又称为分层模型:
优点:支持增量式开发。

缺点:系统构成,性能保证较困难。

25.黑盒测试的典型方法有哪些?
等价类划分、边界值分析、错误推测、因果图和综合策略
26.白合测试的典型方法有哪些?
1、逻辑覆盖
①语句覆盖:选择足够的测试用例,使得程序中每个语句至少都能被执行一次;
②判定覆盖:执行足够的测试用例,使得程序中每个判定至少都获得一次“真”值和“假”值;
③条件覆盖:执行足够的测试用例,使得判定中的每个条件获得各种可能的结果;
④判定/条件覆盖:执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果;
⑤条件组合覆盖:执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次;
2、循环覆盖
3、基本路径测试
4、代码检查法
5、静态结构分析
6、静态质量度量法
27.静态分析中的数据流分析图基本思想是什么?
数据流分析则侧重于对变量在控制结构下的定值,使用以及传播情况的分析检查分析变量的定义和引用情况。

列出源代码中的变量并且报告任何异常的使用。

28.软件设计阶段的任务与目标是什么?
任务:将分析阶段获得的需求说明转换为计算机中可实现的系统;
即:软件体系结构的设计、用户界面的设计、数据结构的设计、算法的设计目标:构造一个高内聚低耦合的软件模型。

29.软件设计的准则是什么?
1、软件结构的准则:顶部宽度小,中部宽度最大,底部宽度次之;在结构
顶部有较高的扇出数,在底部有较高的扇入数
2、模块化准则:将系统划分成若干模块,每个模块完成一个子功能,把这
些模块集中起来组成一个整体,以满足所要求的整个系统的功能。

3、软件独立性准则:开发具有功能专一,模块之间无过多相互作用的模块。

30.需求获取的方法有哪些?
1.面谈法重要而直接,简单的需求获取技术。

2. 问卷法调查法是对面谈法的补充。

3.需求专题讨论会最有力的需求获取技术。

有利于培养高效团队。

4.观察用户的工作流程适用于用户无法准确表达需求的情况。

5. 原型化方法
6. 基于用例的方法
应用题:
一、已知一个软件项目的记录,开发人员M=3人,其代码行数L=12.1KLOC,工作量E=24PM,成本S=168000美元,错误数N=29,文档页数Pd=365页。

试计算开发该软件项目的生产率P、平均成本C、代码出错率EQR和文档率D。

解:1.软件开发的生产率P为:
P = L / E = 12.1×103LOC / 24PM = 504 LOC/PM
2.开发每行代码的平均成本C为:
C = S / L = 168000美元/ 12100LOC=13.9美元/LOC
3.代码出错率EQR为:
EQR = N / L = 29个/12.1KLOC=2.4个/KLOC
4.软件的文档率D为:
D = Pd / L = 365页/ 12.1KLOC = 30页/ KLOC
二、某考务处理系统主要功能是考生管理和成绩管理:
1.对考生送来的报名表进行检查。

2.对合格的报名表编好准考证号码后将准考证送给考生,将汇总后的考生名单送给阅卷站。

3.对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合格者。

4.填写考生通知单(内容包含该考生的准考证号、姓名、各课程成绩及最终合格/不合格标志),送给考生。

5.根据考生信息及考试成绩,按地区、年龄、文化程度和职业进行成绩分类统计及试题难度分析,产生统计分析表。

画出分层的数据流图
顶层图
0层图
加工2子图。

相关文档
最新文档