1、 软件工程期末 考试试题及参考答案 一、单向选择题 1、软件的发展经历了( D)个发展阶段。 A. 一 B. 二 C. 三 D. 四 2、需求分析的任务不包括( B)。 A. 问题分析 B. 系统设计 C. 需求描述 D. 需求评审。 3、一个软件的宽度是指其控制的( C)。 A. 模块数 B. 层数 C. 跨度 D. 厚度 4、当模块中包含复杂的条件组合,只有( A)能够清晰地表达出各种动作之间的对应关系。 A. 判定表和判定树 B. 盒图 C. 流程图 D. 关系图 5、以下不属于逻辑覆盖的是( D) A. 语句覆盖 B. 判定覆盖 C. 条件覆盖 D. 基本路径 6、为适应软件运行环境的
2、变化而修改软件的活动称为( B) A. 纠错性维护 B. 适应性维护 C. 改善性维护 D. 预防性维护 二、填空题 1. 软件可靠性是指在给定的时间间隔内,程序成功运行的(概率) 2. 高级语言:独立于机器,面向过程或面向(对象) 3. 软件项目管理的范围主要集中于 3个 P上,即: People人员、Problem问题和(过程) 4. 人机界面的风格第一代界面是命令和(询问)方式 5. 由于维护或 在维护过程中其他一些不期望的行为引入的错误称为维护的(副作用) 6. 在公式 V( G) = E N + 2中: E为程序图 G中边的总数; N 为程序图中结点的总数。 V( G)又称为图 G的
3、环形(复杂度) 7. 任何一个基于计算机系统都可以用输入 -处理 -输出( IPO)图来描述,它将该系统转换成一个信息变换模型 8. 为提高可交互性一般对所有可能造成损害的用户操作动作,应坚持要求用户(确认),例如,提问 “你确实要删除 ? ” 9. 文档是一种数据媒体和其上所记录的(数据) 三、判断题(每小题 2分,共 24分,错误打 X、正确打) 1. 用户对软件需求的描述不精确,往往是产生软件危机的原因之一。() 2. 目前,软件项目的进度安排的两种比较常用的方法是程序评估与审查技术( PERT)和关键路径法( CPM)。() 3. 一个好的开发人员应具备的素质和能力包括善于与周围人员团
4、结协作,建立良好的人际关系,善于听取别人的意见。() 4. 目前的绝大多数软件都不适合于快速原型技术。( X 5. 面向数据的设计方法适用场合是具有明显的层次信息结构的应用如:企事业的信息管理系统;系统软件(如操作系统)等。( ) 6. 缺乏处理大型软件项目的经验。是产生软件危机的唯一原因。( X) 7. 通常紧致性好的语言一致性就好。( X) 8. 测试计划、测试用例、出错统计和 有关的分析报告一般不用长期保存。( X) 1401 9. 数据输入的一般准则中包括保证信息显示方式与数据输入方式的协调一致;允许用户定做输入格式等内容。() 10. 软件也会磨损和老化。( X) 11. 完善性维护
5、是提高或完善软件的性能。() 12. McCabe建议模块规模应满足: V( G) 20。( X) 四、简答题(每小题 4分,共 20分) 1、程序设计语言的三种类型和特点是什么? 1) 机器语言、汇编语言:依赖于机器,面向机器 2) 高级语言:独立于机器,面向过程或面向对象 3) 面向问题语言:独立于机器,非过程式语言( 4GL)( 2分) 2、软件危机 是 指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题 3、软件项目的质量管理 制定软件质量保证计划,按照质量评价体系控制软件质量要素,对阶段性的软件产品进行评审,对最终软件产品进行确认,确保软件质量 4、好的编程风格应遵循哪四
6、条规则? 1)节简化 2)模块化 3)简单化 4)文档化 5、软件测试中按照错误的性质和范围进行分类可分为:“功能错误”及其它哪些错误? 1) 系统错误 2) 加工错误(算法错误) 3) 数据错误 4) 代码错误 五、综合题(每小题 10分,共 20 分) 1、选择语言时要考虑的因素有:项目的应用领域、项目中算法、计算的复杂性和其余哪些内容? 答: 1)项目中数据结构的复杂性 2)用户的性能需求 3)软件运行的环境 4)软件开发人员开发水平 5)可用的编译器和交叉编译器 2、已知一个软件项目的记录,开发人员 M=3 人,其代码行数=12.1KLOC,工作量 E=24PM,成本 S=168000
7、美元,错误数 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 软件工程试题
8、及 参考答案 一、单向选择题(四选一、每小题 3分,共 18 分) 1、对在数据流图中每一个命令的图形元素均给以定义是( B) 、条目定义 、数据字典 、数据定义 、数据说明 2、软件的可行性研究中不包括( D) 、法律可行性 、技术可行性 、经济可行性 、政治可行性 3、根据用户在软件使用过程中提出的建设性意见而进行的维护活动称为( C) A. 纠错性维护 B. 适应性维护 C. 改善性维护 D. 预防性维护 4、人机界面的风格大致经过了( B)代的演变 三 四 五 六 5、以下不属于白盒测试技术的是( D) 逻辑覆盖 基本路径测试 循环覆盖测试 等价类划分 6、为改正软件系统中潜藏的错误而
9、进行的维护活动称为( A) 纠错性维护 适应性维护 改善性维护 预防性维护 二、填空题(每空 2分,共 18 分) 1. 文档( document) 一种数据媒体和其上所记录的(数据) 2. 机器语言、汇编语言:依赖于机器,面向(机器) 3. 软件有效性( efficiency),指软件系统的时间和(空间)效率 4. 软件定义过程可通过软件系统的 (可行性研究 )和需求分析两个阶段来完成 5. 软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么” 6. 为了 使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术) 7. 一个软件的深度是指其控制的(层数) 8. 以详细
10、设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并最终可运行的代码的过程叫(编码)过程 9. 软件维护是软件生命周期的(最后)一个阶段 三、判断题(每小题 2分,共 24分,错误打 X、正确打) 1. 缺乏有力的方法学的指导和有效的开发工具的支持,这往往是产生软件危机的原因之一。() 2. 一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。( X) 3. 在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取出有价值的需求。() 4. 快速原型技术适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂
11、的算法等场合。() 5. 流程图也称为程序(框图)是最常用的一种表示法。() 6. 面向数据设计方法一般都包括下列任务:确定数据结构特征;用顺序、选择和重复三种基本形式表示数据等步骤。() 7. 理想的人机界面应针对具有典型个性的特定的一类用户设计。() 8. 数据输入的一般准则中包括尽量(增加)用户输入的动作。( X) 9. 用穷 举测试是较现实的测试方法。( X) 10、编码时应尽可能使用全局变量( X) 11、重视程序结构的设计,能使程序具有较好的层次结构() 12、程序中的注解越少越好( X ) 四、简答题(每小题 4分,共 20分) 1、计算机软件 与计算机系统操作有关的程序、规程、
12、 规则及任何与之有关的文档和数据 2、需求分析的任务是什么? 需求分析的任务是确定待开发的软件系统“做什么”。具体任务包括确定软件系统的功能需求、性能需求和运行环境约束,编制软件需求规格说明书、软件系统的验收测试准则和初步的用户手册。 3、软件项目的成本管理 估算软件项目的成本,作为立项和签合同的依据之一,并在软件开发过程中按计划管理经费的使用。 4、快速原型技术的基本思想是什么? 在软件开发的早期,快速开发一个目标软件系统的原型,让用户对其进行评价并提出修改意见,然后开发人员根据用户的意见对原型进行改进。 5、程序设计语言有哪些特点? 1)一致性 2)二义性 3)紧致性 4)局部性 五、综合题(每小题 10分,共 20 分) 1、可将软件生存周期划分为哪 3个过程和哪 9个阶段。 ( 1) 3 个过程是:软件定义过程、软件开发过程、软件使用与维护过程。 ( 2) 9 个阶段有:可行性研究、需求分析、概要设计、详细设计、实现、组装测试、验收测试、使用与维护、退役。 2、画出与 图 1所示的程序流程图对应 的流 图,并试计算其 环形复杂度 V(G)。 解:( 1)流 图如(图 2)所示: ( 2)计算其 环形复杂度 : V( G) =E N +2=13 10 +2=5 (图一 ) 开始abcd ej结束fghi