软件工程复习题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2006-2007-2软件工程复习
一、单项选择题(20选10)
1. 结构化分析的主要描述手段有( B )。
A. 系统流程图和模块图
B. DFD图、数据词典、加工说明
C. 软件结构图、加工说明
D. 功能结构图、加工说明
2. 用于表示模块间的调用关系的图叫( D )。
A.PAD B.SC C.N-S D.HIPO
3. 在( B )模型中是采用用例驱动和架构优先的策略,使用迭代增量建造方法,软件“逐渐”被开发出来的。
A.快速原型 B. 统一过程 C.瀑布模型 D. 螺旋模型
4. 常用的软件开发方法有面向对象方法、面向( A )方法和面向数据方法。
A. 过程
B. 内容
C. 用户
D. 流程
5 从工程管理的角度来看,软件设计分两步完成( D )。
A. ①系统分析②模块设计
B. ①详细设计②概要设计
C. ①模块设计②详细设计
D. ①概要设计②详细设计
6. 程序的三种基本结构是( B )。
A. 过程、子程序、分程序 B.顺序、条件、循环
C.递归、堆栈、队列 D.调用、返回、转移
7. 程序的三种基本结构是( B )。
A. 过程、子程序、分程序 B.顺序、条件、循环
C.递归、堆栈、队列 D.调用、返回、转移
8. SD方法衡量模块结构质量的目标是( C )。
A. 模块间联系紧密,模块内联系紧密
B. 模块间联系紧密,模块内联系松散
C. 模块间联系松散,模块内联系紧密
D. 模块间联系松散,模块内联系松散
9.为提高软件测试的效率,应该( C )。
A.随机地选取测试数据 B.取一切可能的输入数据作为测试数据
C.在完成编码后制定软件测试计划 D.选择发现错误可能性大的数据作为测试数据
10.( D )测试用例发现错误的能力较大。
A.路径覆盖
B.条件覆盖
C.判断覆盖
D.条件组合覆盖
11.软件需求分析应确定的是用户对软件的( A )。
A. 功能需求和非功能需求
B. 性能需求
C. 非功能需求
D. 功能需求
12.下列各种图可用于动态建模的有( C )。
A.用例图 B. 类图 C. 序列图 D. 包图
13.软件过程模型有瀑布模型、( B )、增量模型等。
A. 概念模型
B. 原型模型
C. 逻辑模型
D. 物理模型
14.面向对象的分析方法主要是建立三类模型,即( D )。
A. 系统模型、ER模型、应用模型
B. 对象模型、动态模型、应用模型
C. E-R模型、对象模型、功能模型
D. 对象模型、动态模型、功能模型
15.测试的分析方法是通过分析程序( B )来设计测试用例的方法。
A.应用范围 B.内部逻辑 C.功能 D.输入数据
16. 软件工程是研究软件( B )的一门工程学科。
A. 数学
B. 开发与管理
C. 运筹学
D. 工具
17. 需求分析可以使用许多工具,但( C )是不适合使用的。
A.数据流图 B.判定表 C.PAD图 D.数据字典
18.划分模块时,一个模块内聚性最好的是( A )。
A. 功能内聚
B. 过程内聚
C. 信息内聚
D. 逻辑内聚
19.软件可移植性是用来衡量软件的( D )的重要尺度之一。
A.效率 B. 质量 C. 人机关系 D. 通用性
20.软件配置管理是在软件的整个生存周期内管理( D )的一组活动。
A.程序 B.文档 C.变更 D.数据
二、判定题(20选10)
1统一过程是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。(×)
2当模块中所有成分结合起来完成一项任务,该模块的内聚是偶然内聚。(×)
3SD方法衡量模块结构质量的目标是模块间联系松散,模块内联系紧密(√)
4当模块中所有成分结合起来完成一项任务,该模块的内聚是功能内聚。(√)
5在进行需求分析时,就应该同时考虑软件的可维护性问题。(√)
6需求分析可以使用许多工具,但数据流图是不适合使用的。(×)
7用白盒法测试时,测试用例是根据程序内部逻辑设计的。(√)
8一组测试用例是条件覆盖,则一定是语句覆盖。(√)
9用黑盒法测试时,测试用例是根据程序内部逻辑设计的。( ×)
10因果图法可以用于系统地设计测试用例。(√)
11在了解被测试模块的内部结构或算法的情况下进行测试叫白盒测试。(√)
12为提高软件可移植性,应注意提高软件的设备独立性。(×)
13在完成测试作业之后,为缩短源程序长度,应删去源程序中的注解。(×)
14有GOTO语句的程序一般无法机械地变成功能等价的无GOTO语句的程序。(×)
15快速原型模型是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。(√)
16好的程序不仅处理速度要快,而且易读、易修改。(√)
17应多使用GOTO语句。(×)
18系统模块的内聚度应尽可能地小。(×)
19信息隐藏原则禁止在模块外使用在模块接口说明中所没有说明的、关于该模块的信息。(√)
20在完成测试作业之后,为缩短源程序长度,应删去源程序中的注解。(×)
三、名词解释(十选5)
四、简答题(十选5)
1可行性研究有哪些步骤?
1)确定项目规模和目标;
2)研究现行系统(如果存在);
3)建立系统的高级逻辑模型,用系统流程图或数据流图(DFD图)描述;
4)提高实现高层逻辑模型的各种方案,并对各方案进行评价;
5)推荐可行的方案;
6)编写可行性报告;
2什么是软件生存周期?软件生存周期模型有哪些?
答:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。主要模型包括:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型。
3软件质量保证措施有那些?
1)以客户对于质量的需求为基础,对项目开发周期的各个阶段,建立质量目标;
2)定义质量度量以衡量项目活动的结果,协助评价有关的质量目标是否达到;
3)确定质量活动;
4)执行已经确定的质量活动;
5)评价质量
4什么是软件开发方法?有哪些主要方法?
答:软件开发方法是一种使用早已定义好的技术集及符号表示习惯来组织软件生产过程的方法,其方法一般描述成一系列的步骤,每一个步骤都与相应的技术和符号相关。主要方法有:
1)结构化开发方法
2)面向数据结构的开发方法
3)原型化开发方法
4)面向对象的开发方法
5结构化分析的步骤有哪些?
1)建立当前系统的具体模型
2)抽象出当前系统的逻辑模型
3)建立目标系统的逻辑模型
4)为了对目标系统进行完整的描述,考虑人机界面和其他一些问题
6什么是软件维护?它有哪些类型?
软件维护是指软件系统交付使用以后,为了改正软件运行错误,或者因新的需求而加入新功能的修改软件的过程。它的类型有:完善性维护,适应性维护,纠错性维护,预防性维护。
7软件测试的步骤有哪些?
1单元测试,分别完成每个单元的测试任务,以确保每个模块能正常工作2集成测试,把已测试的模块组装起来,进行集成测试3确认测试,完成集测试以后,要对开发工作初期制定的确认准则进行检验4系统测试,完成确认测试以后,给出的应该是合格的软件产品,为了检验能否与系统的其他部分协调工作,需要进行系统测试5验收测试,检验软件产品