软件工程期末复习
软件工程期末复习
单选题
- 从功能的角度来定义,软件是
- A. 为人类提供普适计算的逻辑产品
- B. 为人类提供逻辑计算的逻辑产品
- C. 为人类提供数值计算的逻辑产品
- D. 为人类提供计算服务的逻辑产品✅
- 下面关于软件的描述,不正确的是
- A. 软件不同于硬件,不存在磨损,可以永久使用,不需要升级也不存在报废✅
- B. 软件是客观世界中问题空间与解空间的具体描述,是追求表达能力强、更符合人类思维模式的计算模型
- C. 软件是具有构造性和演化性的逻辑产品
- D. 软件是由程序、构造数据和相关文档组成的
- 下列软件按照工作方式来分类的是
- A. 通用软件和定制软件
- B. 系统软件、中间件和应用软件
- C. 微型软件、小型软件、中型软件、大型软件、甚大型软件和极大型软件
- D. 实时处理软件、分时处理软件、交互式处理软件和批处理软件✅
- 下列软件按照服务对象来分类的是
- A. 通用软件和定制软件✅
- B. 系统软件、中间件和应用软件
- C. 微型软件、小型软件、中型软件、大型软件、甚大型软件和极大型软件
- D. 实时处理软件、分时处理软件、交互式处理软件和批处理软件
- 下列软件按照服务层次来分类的是
- A. 通用软件和定制软件
- B. 系统软件、中间件和应用软件✅
- C. 微型软件、小型软件、中型软件、大型软件、甚大型软件和极大型软件
- D. 实时处理软件、分时处理软件、交互式处理软件和批处理软件
- 下列软件按照规模来分类的是
- A. 通用软件和定制软件
- B. 系统软件、中间件和应用软件
- C. 微型软件、小型软件、中型软件、大型软件、甚大型软件和极大型软件✅
- D. 实时处理软件、分时处理软件、交互式处理软件和批处理软件
- 下列关于软件危机的描述,不正确的是
- A. 软件危机是软件开发和维护过程中所遇到的一系列严重问题
- B. 软件危机的表现是开发成本高、软件质量不高、软件交付经常延期
- C. 软件工程是为了解决软件危机而产生的
- D. 软件工程的出现彻底解决了软件危机✅
- 下列关于软件工程的描述,不正确的是
- A. 软件工程是为了经济地获得能够在实际机器上高效运行的可靠软件而建立和使用的一系列好的工程化原则
- B. 软件工程是指导计算机软件开发和维护的工程学科
- C. 软件工程是指导计算机软件构造和演化的工程学科
- D. 软件工程是从方法和工具两个方面来研究如何提高软件生产效率和质量,降低生产成本的✅
- 下列关于计算模型的描述,不正确的是
- A. 软件工程不关注计算模型✅
- B. 计算模型是软件体系结构的另一种描述
- C. 计算模型的发展也就是软件体系结构的发展
- D. 分布式计算、并行计算、网格计算、普适计算和云计算都是多机计算模型
- 下列关于软件过程的描述,不正确的是
- A. 软件过程是指软件的整个生命周期,包括需求获取、需求分析、设计、实现、测试、发布和维护等阶段
- B. 软件过程和软件生命周期是相同的概念
- C. 软件过程和软件工程是相同的概念,定义了软件开发的方法、工具和管理✅
- D. 软件过程可以分为基本过程类、支持过程类和组织过程类三大类
- 下列属于软件开发期的活动是
- A. 现场维护、远程维护
- B. 概要设计、详细设计✅
- C. 可行性分析
- D. 投标和签订合同
- 下列关于瀑布型方法的描述,不正确的是
- A. 瀑布型方法是一种软件过程的固化,也称为软件生命周期模型
- B. 在众多的软件开发方法中,瀑布型方法是最著名和最有影响力的模型,其他模型往往是对它的补充或者改进
- C. 瀑布型方法是一种文档驱动的模型,每个阶段结束之后形成文档,待文档经双方签字确认后,再进入下一个阶段的活动
- D. 瀑布型方法是一种柔性灵活的软件开发方法✅
- 列属于瀑布型方法缺点的是
- A. 将软件过程进行僵化划分,缺少灵活性✅
- B. 强调了文档的作用,保护了软件开发商的利益
- C. 促进了软件开发的工程化
- D. 加强了软件开发的管理过程
- 瀑布型方法适合应用于____项目。
- A. 需求了解非常清楚的✅
- B. 需求易变的
- C. 人员比较少的
- D. 经费比较少的
- 下列不属于快速原型方法不足的是
- A. 管理困难
- B. 维护困难
- C. 由于文档不明确,合同范围不好确定
- D. 用户早接触到系统✅
- 软件需求一般分为
- A. 功能需求、性能需求、领域需求、服务需求
- B. 功能需求、性能需求、领域需求✅
- C. 功能需求、性能需求、界面需求
- D. 逻辑需求、性能需求、领域需求
- 软件需求分析的过程主要包括____等几个阶段。
- A. 需求评审、分析用户需求、编写需求文档
- B. 可行性分析、获取用户需求、分析用户需求、编写需求文档、需求评审
- C. 获取用户需求、分析用户需求、编写需求文档
- D. 获取用户需求、分析用户需求、编写需求文档、需求评审✅
- “下面不属于软件需求分析所使用的方法或工具的是”
- A. 数据流图
- B. 数据字典
- C. 结构化语言
- D. PARKINSON方法✅
- 下列不属于软件需求分析基本要求的是
- A. 可维护性✅
- B. 完整性
- C. 可验证性
- D. 可跟踪性
- 下列不属于模块间耦合的是
- A. 数据耦合
- B. 控制耦合
- C. 特征耦合
- D. 结构耦合✅
- “下列关于模块间的耦合强弱排序(从弱到强)正确的是”
- A. 数据耦合、控制耦合、特征耦合、公共环境耦合✅
- B. 公共环境耦合、数据耦合、控制耦合、特征耦合
- C. 控制耦合、数据耦合、特征耦合、公共环境耦合
- D. 数据耦合、特征耦合、控制耦合、公共环境耦合
- “下列关于模块的内聚强弱排序(从弱到强)正确的是”
- A. 偶然内聚、逻辑内聚、功能内聚、时间内聚
- B. 偶然内聚、过程内聚、时间内聚、功能内聚
- C. 顺序内聚、逻辑内聚、时间内聚、功能内聚
- D. 偶然内聚、逻辑内聚、时间内聚、功能内聚✅
- 下列属于详细设计任务的是
- A. 确定模块内部的具体逻辑流程✅
- B. 确定数据库的概念结构
- C. 设计软件模块间的控制结构
- D. 设计用例图
- 下列属于黑盒测试法的是
- A. 等价划分✅
- B. 语句覆盖
- C. 判定覆盖
- D. 路径覆盖
- 在软件测试时,下列描述不正确的是
- A. 所有测试都应该能追溯到用户需求
- B. 应该从“小规模”测试开始,并逐步进行“大规模”测试
- C. 为了达到最佳的测试效果,应该由独立的第三方从事测试工作
- D. 应该尽量进行穷举测试✅
- 下列不属于黑盒测试法的是
- A. 等价划分
- B. 边界值分析法
- C. 错误推测法
- D. 路径覆盖✅
- 下列不属于白盒测试法的是
- A. 语句覆盖法
- B. 判定覆盖法
- C. 错误推测法✅
- D. 路径覆盖法
- 软件测试的过程依次是
- A. 验收测试、子系统测试、系统测试
- B. 集成测试、子系统测试、系统测试
- C. 单元测试、确认测试、系统测试
- D. 单元测试、子系统测试、系统测试✅
- 软件维护可以分为若干种,这不包括
- A. 改正性维护
- B. 适应性维护
- C. 完善性维护
- D. 强制性维护✅
- 合同一旦签署了就具有法律约束力,除非
- A. 一方不愿意履行义务
- B. 合同违反了法律✅
- C. 一方宣布合同无效
- D. 一方没有能力负担财务结果
- “在项目初期,进行竞标合同时,一般采用的成本估算方法是”
- A. 参数估算法
- B. 类比估算法✅
- C. 专家估算法
- D. 功能点估算
- “软件项目必须进行风险管理,项目管理者应该预见风险,了解这些风险对项目、产品和亚务的冲击,并采取措施规避这些风险。下面不是风险管理过程的是”
- A. 风险评估
- B. 风险识别
- C. 风险识别✅
- D. 风险收集
- “对于风险比较大的项目,最好选择___生存期模
型。”
- A. 瀑布模型
- B. 原型
- C. 螺旋模型✅
- D. V 模型
- 购买保险是_____,类型的风险处理策略。
- A. 风险转移✅
- B. 风险规避
- C. 风险抑制
- D. 风险自担
- 项目质量管理的最终责任由___来承担
- A. 风险自担
- B. 采购经理
- C. 质量经理
- D. 项目经理✅
判断题
- “过程、函数、子程序和宏等,都可作为模块,但对象或类不能作为模块” ❌
- 模块间的耦合越高越好。 ❌
- 模块间的耦合越低越好。 ✅
- 模块的内聚越高越好 ✅
- 模块的内聚越低越好。 ❌
- 内聚和耦合都应该适中。 ❌
- “在进行总体设计时,应当力争降低模块接口的复杂程度” ✅
- 在进行总体设计时,模块的扇出越高越好。 ❌
- 模块的作用域可以在控制城之外。 ❌
- 模块的规模越大越好。 ❌
- “人机界面的设计质量对整个软件的竞争力影响不大。” ❌
- 软件测试就是要向用户证明软件是正确的。 ❌
- “软件维护就是要改正软件中残留的错误,而不是其他,” ❌
- 适应性维护要占到维护工作量的50%。 ❌
- 软件的模块化就是尽可能地将模块设计小。 ❌
- “软件设计时应该把一些关系密切的软件元素物理地放得彼此靠近。” ✅
- “设计软件结构时应使每个模块完成一个相对独立的特定子功能,并且和其他模块之间的关系很简单。” ✅
- “界面设计时应该尽可能地多使用各种色彩以显示信息,以便引起用户的注意。” ❌
- “在信息显示时,应使用“模拟”显示方式表示信息,以使信息更容易被用户提取,” ✅
- 边界值分析法可以认为是黑盒测试法的一种。 ✅
- 软件测试的目的就是尽可能地发现程序中的错误 ✅
- 测试用例就是测试程序时输入的数据。 ❌
- “软件测试的工作量往往占软件开发总工作量的40%以上。” ✅
- “好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案” ✅
- “成功的测试是发现了至今为止尚未发现的错误的测试。” ✅
- 软件测试时,应该尽量进行穷举测试。 ❌
- 黑盒测试又称为功能测试,完全不考虑程序的内部结构和处理过程 ✅
- 条件覆盖一定可以满足判定覆盖的要求。 ❌
- 完善性维护占全部维护活动一多半的工作量 ✅
- 瀑布模型的顺序在实际项目中难以遵循。 ❌
- 瀑布模型让用户无法提前接触到系统。 ✅
- 快速原型方法可以降低开发的成本。 ✅
- “在实际的软件开发过程中,人们往往只采用单一的开发方法,比如只采用瀑布型方法” ❌
- “增量方法可以在较短时间内向用户提交可完成部分工作的产品。” ✅
- 项目是一类特殊任务,因为在进行过程中可能会有难以预见的技术、规模等方面的问题,所以项目的目标是不确定的。 ❌
- 项目具有暂时的特征。 ✅
- “增量式模型可以避免因一次性投资太多而带来的风险。” ✅
- 在甲乙合同项目中,提出需求的一方是乙方。 ❌
- 间接成本是与一个具体的项目相关的成本。 ❌
- 软件项目的估算结果是比较准确的。 ❌
- “在项目管理过程中,沟通是项目管理者的一部分工作,而且是很少的一部分工作,” ❌
- “进度和成本是关系最为密切的两个目的,几乎成了对立关系,进度的缩短一定依靠增加成本实现,而成本的降低也一定以牺牲工期进度为代价。” ✅
- “为了节约成本,可以适当降低项目过程中的质量标准,” ❌
- “项目管理过程是一个集成的过程,人员管理、计划进度管理、风险管理、成本管理质量管理是相互联系的。” ✅
- 项目的范围发生变化,也必然会影响项目的工期进度、成本、项目的质量 ✅
- 项目结束过程主要包括合同的终止和项目的终止。 ✅
- 项目成功完成了,才说明项目结束了。 ❌
- “在质量保证过程中要制定两种类型的标准:产品标准和过程标准” ✅
- 风险管理过程一般包括以下阶段:风险识别、风险分析、风险规划、风险监控 ✅
填空题
软件需求的过程主要为获取用户需求、分析用户 需求、编写需求文档、需求评审 |
---|
模块间的耦合可分为数据耦合、控制耦合、特征 耦合、公关环境耦合 |
模块的内聚可分为偶然内聚、逻辑內聚、时间內 聚、过程內聚、通讯內聚、顺序內聚、功能內聚 |
软件维护可具分为 改正性维护、适应性维护、完善性维护、预防性维护这几项活动。 |
软件开发单位如果有意参加一个招标软件项目的 开发,就必须准备相应的投标书并参加投标,投标 书一般包括商务标部分和技术标部分。 |
软件项目管理是一个庞大的系统工程,它是为了使软件项目能够按照预定的成本进度、质量顺利完成,软件项目管理的主要内容包括人员管理、计划进度管理、风险管理、成本管理、质量管理 |
软件项目的成本管理包括 成本估算、成本预算 成本控制 |
风险识别可以通过项目组集体讨论完成,为完成这一过程,需要列出可能的风险类型。其中影响项目进度或项目资源的风险是项目风险,影响正被开发的软件的质量或性能的风险是产品风险,影响软件开发机构或软件产品购买机构的风险是 业务风险 |
软件质量的度量主要是根据软件生存周期中对软件质量的要求所进行的一项活动主要分为外部度量、内部度量、使用度量三方面 |
简答题
1为什么要进行软件需求分析?请叙述软件需求分 析的主要过程 | 软件需求分析在软件开发过程中具有举足轻重的地位,它是开发出正确的、高质量的件系统的重要保证。有数据表明,更正需求分析阶段的一个错误所花费的工作量是更正试阶段的一个错误的100倍。软件需求分析的主要过程:获取用户需求、分析用户需求、编写需求文档、进行需求评审 |
---|---|
软件需求规格说明书由哪几部分组成? | 软件需求规格说明书由引言、任务概述、需 求规定、运行环境规定四部分组成 |
衡量模块独立性的两个标准是什么?它们各表示什么含义? | 模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和合。合是对一个软件结构内不同模块之间互连程度的度量。内聚标志一个块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。 |
什么是模块化? | 模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。 模块化是为了使一个复杂的大型程序能被人的智力所管理。 |
用户需求内容主要包括哪几方面? | 物理环境、软件系统界面、软件系统功能及性能、数据要求、导出系统的逻辑模型、文档规格、维护要求。 |
试述信息隐蔽的原理。 | 信息隐藏原理指出:应该这样设计和确定模块使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说是不能访问的。 |
试述软件模块设计的启发式规则。 | 模块规模应该适中、深度、宽度、扇出和扇 人都应适当、模块的作用域应该在控制域之 内、力争降低模块接口的复杂程度、设计单 入口单出口的模块、模块功能应该可以预测 |
软件测试的目的是什么?为什么把软件测试的目的定义为只是发现错误? | 测试的目的是找出整个软件开发周期中各个 阶段的错误,如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试方案从而提高测试效率。 |
白盒测试的方法有哪些? | 白盒测试方法有逻辑覆盖,逻辑覆盖又可分为语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖 |
维护分为哪几类? | 维护分为改正性维护、适应性维护、完善性 维护、预防性维护 |
本文由作者按照
CC BY 4.0
进行授权