软件工程练习题一. 选择题(单选或多选)(1)需求分析阶段最重要的技术文档是( C )。
A)项目开发计划B) 设计说明书C)需求规格说明书D) 可行性分析报告(2)在软件工程中,白盒测试法可用于测试程序的内部结构。
此方法将程序看作是(A )A) 路径的集合B) 循环的集合C) 目标的集合 D) 地址的集合(3)在以下模块耦合性类型中,模块之间独立性最差的类型是( D )A) 非直接耦合B) 标记耦合C)控制耦合D)内容耦合(4)软件详细设计的主要任务是对(A)进行的详细设计。
A) 算法和数据结构B) 外部接口C)软件编码D)功能(5)Jackson方法是一种面向(C)的结构化方法。
A) 数据流B) 对象C)数据结构D)控制流(6)一个成功的测试可以( D )。
A) 表明程序没有错误B) 发现所有错误C)提高软件可靠性D)发现尚未发现的错误(7)下述陈述中,哪一个不是软件健壮性的度量指标?(C )。
A)失败后重新启动所需的时间B)引起失败的时间所占的百分比C)失败前的平均工作时间D)在一次失败中数据恶化的概率(8)黑盒技术设计测试用例的方法之一为( A )。
A)因果图B)逻辑覆盖C)循环覆盖D)基本路径测试(9)CMM模型将软件过程的成熟度分为5个等级,以下选项中,属于可管理级的特征是(D )。
A)工作无序,项目进行过程中经常放弃当初的计划B)建立了项目级的管理制度C)建立了企业级的管理制度D)软件过程中活动的生产率和质量是可度量的(10)在面向数据流的软件设计方法中,一般将信息流分为( A )。
A)变换流和事务流B)变换流和控制流C)事务流和控制流D)数据流和控制流(11)软件设计中一般将用到图形工具,下述哪种工具可用作设计的图形工具。
( ABCDEF )A)结构图B)实体关系图C)IPO图D)流程图E) N-S图F) 判定树(12)软件需求分析阶段建立原型的主要目地是( C )。
A)确定系统的性能要求B)确定系统的运行要求C)确定系统是否满足用户需要D)确定系统是否满足开发人员需要(13)要显示描绘软件开发项目各作业的依赖关系,应选择(B )。
A)Gantt图B)工程网络图C)CoCoMo模型D)数据流图(14)软件开发中需求分析的主要任务是( D )。
A)给出软件解决方案B)给出系统模块结构C)定义模块算法D)定义需求并建立系统模型(15)结构化方法的详细设计,其主要任务是( A )。
A)定义模块的算法B)给出加工说明C)给出模块结构图D)设计处理对象(16)软件过程是( C )。
A)特定的开发模型B)一种软件求解的计算逻辑C)活动的集合D)软件生存周期模型(17)软件可用性意指( D )。
A)用户界面友好的程度B)符合用户使用习惯的程度C)修改软件错误的难易程度D)软件结构、实现及文档为用户可用的程度(18)软件文档既是软件的重要组成部分,也是软件开发阶段的基础,它还影响到软件的(B )。
A)可复用性B)可维护性C)可扩展性D)可移植性(19)数据流图是用于软件需求分析的工具,下列元素哪些是其基本元素?( ABCD )A)数据流B)加工C)数据存储D)外部实体(源或潭)(20)软件设计中,设计复审是和设计本身一样重要的环节,其主要目的和作用是(B )。
A) 减少测试工作量B) 避免后期付出高代价C) 保证软件质量D) 缩短软件开发周期(21)Gantt Chart和CPM体现对项目进度安排和跟踪的共性有(BDE )。
A) 反映出项目的分解情况;B)反映子任务的完成时间;C)体现人员的配置;D)反映各子任务的启动时间;E)反映子任务的工作量;(22)下述哪个不是白盒测试法的概念? ( B )A)应该执行边界条件下的所有循环B) 应该执行边界条件下的所有接口C)应该执行所有逻辑判断的真假情况D) 应该至少执行一次模块中的所有独立路径(23)数据流程图(DFD)是用于描述结构化方法中哪一个工作阶段的工具? ( B )A) 可行性分析B) 需求分析C) 详细设计D) 程序编码(24)判定树和判定表是用于描述结构化分析方法中哪一环节的工具? ( B )A) 功能说明B) 加工逻辑C) 流程描述D) 结构说明(25)在结构化方法中,软件功能分解应属于软件开发中的哪一阶段? ( C )A) 详细设计B) 需求分析C) 总体设计D) 编程调试(26)结构化程序流程图中一般包括三种基本结构,下述结构中哪一种不属于其基本结构?( D )A) 顺序结构B) 重复结构C) 选择结构D) 嵌套结构(27)软件评审时其主要的评审对象是(A )。
A) 软件结构B) 软件文档C) 程序编码D) 文档标准(28)软件需求规格说明书不应包含的内容是(BFGH )。
A) 系统输入/输出的描述B) 质量控制方案C) 数据字典D) 用户界面需求描述E) 系统可靠性需求描述F) 测试方案G) 需求分析阶段进度安排H) 人员需求(29)黑盒测试法和白盒测试法用于软件测试阶段,其中白盒测试法主要用于测试软件的( D )。
A)结构合理性B)程序正确性C)程序外部功能D)程序内部逻辑(30)软件计划是软件开发的早期和重要阶段,此阶段要求交互和配合的是( B )。
A)设计人员和用户B)分析人员和用户C)分析人员和设计人员D)编码人员和用户(31)结构化程序设计主要强调的是( D )。
A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(32)在详细设计阶段,经常采用的工具有( A )。
A)PAD B)SA C)SC D)DFD(33)以下测试方法是白盒测试方法的是(C )。
A)判定覆盖和边界值分析法B)等价划分和错误推测法C)路径覆盖和判定/条件覆盖法D)条件覆盖和错误推测法(34)评审是对软件进行静态测试的一种方法,下述结论中哪个是与软件评审无关的内容? ( D )A) 尽量发现错误B) 检查软件文档C) 根据评审标准D) 依靠测试信息(35)软件维护是软件得以正常运行的重要环节,按照软件工程方法的理解,一般软件维护应该开始于( C )A) 阅读设计文档B) 理解程序代码C) 分析软件结构D) 查阅测试记录(36)在McCall质量度量模型中,不属于面向软件产品修改的特性是(CD )。
A) 可维护性B) 可测试性C) 可靠性D) 适应性(37)软件需求分析阶段建立原型的主要目地是(C )。
A) 确定系统的性能要求B) 确定系统的运行要求C) 确定系统是否满足用户需要D) 确定系统是否满足开发人员需要(38)软件过程是( C )。
A) 特定的开发模型B) 一种软件求解的计算逻辑C) 活动的集合D) 软件生存周期模型(39)不能作为项目规模的估算单位的是( D )。
A) LOC(代码行) B) FP (功能点) C) 人月D) 元/人月(40)McCall质量度量模型中,不属于面向软件产品运行的特性是( CD )。
A) 正确性B) 完整性C) 可重用性 D) 效率二. 基本概念与简答题(1)软件。
软件工程。
软件测试。
1、软件:在计算机系统中,与硬件相互依存的逻辑部件,它由程序、数据及相关文档组成。
2、软件工程:是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
3、软件测试:利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。
执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
(2)什么是软件过程?ISO软件基本过程及其划分。
1、软件过程是软件生存期中的一系列相关软件工程活动的集合。
活动是任务的一个集合。
任务是将输入变换为输出的操作,软件过程可分为三类,基本过程、支持过程、组织过程。
2、基本过程类是指那些与软件生产直接相关的过程。
包括:获取过程、供应过程、开发过程、运行过程、维护过程。
(3)数据流图及其组成和作用。
1、数据流图(DFD)是一种描述数据变换的图形工具,是结构化分析方法最普遍采用的表示手段。
2、组成:由加工(转换)、数据流、存储文件(数据源)及潭/源组成。
3、作用:描述数据处理过程的工具,支持功能建模,刻画数据流从输入到输出的变换过程;(4)软件测试和调试的异同点。
答:软件测试与调试在目的、技术和方法等方面存在很大的区别,主要表现在如下方面:1、测试是为了发现软件中存在的错误;调试是为了证明软件开发的正确性。
2、测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。
3、测试是有计划的,需要进行测试设计;调试是不受时间约束的。
4、测试经历发现错误、改正错误、重新测试的过程;调试是一个推理的过程。
5、测试的执行是有规程的;调试的执行往往要求开发人员进行必要推理以至知觉的"飞跃"。
6、测试经常是由独立的测试组在不了解软件设计的条件下完成的;调试必须由了解详细设计的开发人员完成。
7、大多数测试的执行和设计可以由工具支持;调式时,开发人员能利用的工具主要是调试器。
(5)什么是模块的作用域和模块的控制域?答:1、模块的作用域定义为受该模块内一个判定影响的所有模块的集合。
2、模块的控制域是这个模块本身以及所有直接或间接从属于它的模块的集合。
(6)软件详细设计的主要任务是什么?答:这一阶段的主要任务有:1、为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述。
2、确定每一模块使用的数据结构,为以后的编写程序做好充分的准备。
3、确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其他模块的接口,以及模块输入数据、输出数据及局部数据的全部细节。
在详细设计结束时,应该把上述结果写入详细设计说明书,并且通过复审形成正式文档,交付作为下一阶段(编码阶段)的工作依据。
4、要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试,模块的测试用例是软件测试计划的重要组成部分,通常应包括输入数据、期望输出等内容。
负责过程设计的软件人员对模块的情况了解得最清楚,由他们完成过程设计后接着对各个模块进行测试最为合适。
(7)软件工程框架及其内容。
软件工程的框架可概括为:目标、活动和原则,分别如下:1、软件工程目标:生产具有正确性、可用性以及开销合宜的产品。
2、软件工程活动:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。
软件工程过程主要包括开发过程、运作过程、维护过程。
它们覆盖了需求、设计、实现、确认以及支持等活动。