大家好,欢迎来到IT知识分享网。
软件过程模型(软件开发模型)
软件过程模型(软件开发模型)详细内容请见
模型 | 要点 |
---|---|
瀑布模型 | 适用于需求明确的项目,一般表述为需求明确、或二次开发,或者对于数据处理类型的项目。 |
V模型 | 强调测试贯穿项目始终,而不是集中在测试阶段。是一种测试的开发模型。 |
原型模型 | 典型的原型开发方法模型。适用于需求不明确的场景,构造简易系统,可以帮助用户明确需求。 |
增量模型 | 融合了瀑布模型的基本成分和原型实现的迭代特征,可以有多个可用版本的发布,核心功能往往最先完成,在此基础上,每轮迭代会有新的增量发布,核心功能可以得到充分测试。强调每一个增量均发布一个可操作的产品。 |
螺旋模型 | 典型特点是引入了风险分析。结合了瀑布模型和演化模型的优点,最主要的特点在于加入了风险分析。它是由制定计划、风险分析、实施工程、客户评估这一循环组成的,它最初从概念项目开始第一个螺旋。属于面向对象开发模型,强调风险引入。 |
喷泉模型 | 典型的面向对象的模型。特点是迭代、无间隙。会将软件开发划分为多个阶段,但各个阶段无明显界限,并且可以迭代交义。 |
统一过程模型 | 典型特点是用例驱动、以架构为中心、迭代和增量。统一过程把一个项目分为四个不同的阶段: 构思阶段:包括用户沟通和计划活动两个方面,强调定义和细化用例,并将其作为主要模型。 细化阶段:包括用户沟通和建模活动,重点是创建分析和设计模型,强调类的定义和体系结构的表示。 构建阶段:将设计转化为实现,并进行集成和测试。 移交阶段:将产品发布给用户进行测试评价,并收集用户的意见,之后再次进行迭代修改产品使之完善 |
敏捷开发 | 敏捷开发是一种以人为核心、迭代、循序渐进的开发方法,适用于小团队和小项目,具有小步快跑的思想。常见的敏捷开发方法有极限编程法、水晶法、并列争球法和自适应软件开发方法。 (1)极限编程是一种轻量级的开发方法,它提出了四大价值观:沟通、简单、反馈、勇气。五大原则:快速反馈、简单性假设、逐步修改、提倡更改、优质工作。十二个最佳实践:计划游戏、隐喻、小型发布、简单设计、测试先行、重构、结对编程、集体代码所有制、持续集成、每周工作40小时、现场客户和编码标准。 (2)水晶法强调经常交付,认为每一种不同的项目都需要一套不同的策略、约定和方法论。 (3)并列争球法的核心是迭代、增量交付,按照30天进行迭代开发交付可实际运行的软件。 (4)自适应软件开发的核心是三个非线性的,重叠的开发阶段:猜测、合作、学习。 |
基于构件的开发模型 | 构件的复用 |
软件开发方法
- 结构化开发方法
- 用户至上
- 严格区分工作阶段,每阶段有任务与成果
- 强调系统开发过程的整体性和全局性
- 系统开发过程工程化,文档资料标准化
- 自顶向下,逐步分解(求精)
- 原型开发方法
- 适用于需求不明确的开发
- 包括抛弃式原型和演化式原型
- 面向对象的开发方法
- 更好的复用性
- 关键在于建立一个全面、合理、统一的模型
- 分析、设计、实现三个阶段,界限不明确
- 面向服务的开发方法
- 面向对象更高标准的抽象。
- SO方法有三个主要的抽象级别:操作、服务、业务流程
- SOAD分为三个层次:基础设计层(底层服务构件)、应用结构层(服务之间的接口和服务级协定)和业务组织层(业务流程建模和服务流程编排)
- 服务建模:分为服务发现、服务规约和服务实现三个阶段
软件设计
软件设计的原则:高内聚、低耦合
内聚类型 | 描述 |
---|---|
偶然聚合 | 模块完成的动作之间没有任何关系,或者仅仅是一种非常松散的关系。 |
逻辑聚合 | 模块内部的各个组成在逻辑上具有相似的处理动作,但功能用途上彼此无关。 |
时间聚合 | 模块内部的各个组成部分所包含的处理动作必须在同一时间内执行。 |
过程聚合 | 模块内部各个组成部分所要完成的动作虽然没有关系,但必须按特定的次序执行。 |
通信聚合 | 模块的各个组成部分所完成的动作都使用了同一个数据或产生同一输出数据。 |
顺序聚合 | 模块内部的各个部分,前一部分处理动作的最后输出是后一部分处理动作的输入。 |
功能聚合 | 模块内部各个部分全部属于一个整体,并执行同一功能,且各部分对实现该功能都必不可少 |
耦合类型 | 描述 |
---|---|
非直接耦合 | 两个模块之间没有直接关系,它们的联系完全是通过主模块的控制和调用来实现的。 |
数据耦合 | 两个模块彼此间通过数据参数交换信息。 |
标记耦合 | 一组模块通过参数表传递记录信息,这个记录是某一个数据结构的子结构,而不是简单变量。 |
控制耦合 | 两个模块彼此间传递的信息中有控制信息。 |
外部耦合 | 一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息。 |
公共耦合 | 两个模块之间通过一个公共的数据区域传递信息。 |
内容耦合 | 一个模块需要涉及到另一个模块的内部信息。 |
软件测试
黑盒测试:等价类划分、边界值分析、错误推测、因果图。
白盒测试:语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、路径覆盖。
灰盒测试
各类测试详细内容见链接。
各测试阶段的任务:
(1)验收测试:有效性测试、软件配置审查、验收测试。
(2)系统测试:恢复测试、安全性测试、强度测试、性能测试、可靠性测试和安装测试。
(3)集成测试:模块间的接口和通信。
(4)单元测试:模块接口、局部数据结构、边界条件、独立的路径、错误处理。
(5)其他测试:回归测试(修改软件后进行的测试,防止引入新的错误)。负载测试(对软件负载能力的测试)。压力测试(对软件超负荷条件下运行情况的测试)。
McCabe复杂度计算
基本每年都有一个选择题。
- McCabe复杂度计算公式:V(G)=m-n+2,其中m是有向弧的条数,n是结点数。
- 对于伪代码可以先转换为程序流程图,对程序流程图可以最终转换为结点图处理,转换时注意将交点的地方标注为新的结点,以最终的结点图带入公式结算其McCabe复杂度。
详细McCabe复杂度计算方法请见。
软件维护类型
维护类型 | 描述 |
---|---|
更正性维护 |
针对真实存在并已经发生的错误进行的维护行为。 |
预防性维护 |
针对真实存在但还未发生的错误进行的维护。 |
适应性维护 |
指使应用软件适应信息技术变化和管理需求变化而进行的修改。企业的外部市场环境和管理需求的不断变化也使得各级管理人员不断提出新的信息需求。 |
完善性维护 |
扩充功能和改善性能而进行的修改。对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。 |
软件质量保证
类型 | 内容 |
---|---|
功能性 | 适用性、准确性、互操作性、安全保密性 |
可靠性 | 成熟性、容错性、易恢复性 |
易用性 | 易理解性、易学性、易操作性、吸引性 |
效率 | 时间特性、资源利用性 |
维护性 | 易分析性、稳定性、易测试性、易改变性 |
可移植性 | 适应性、易安装性、共存性、易替换性 |
(1)功能性(Functionality)。与一组功能及其指定的性质的存在有关的一组属性,功能是指满足规定或隐含需求的那些功能。
- 适应性(Suitability)。与对规定任务能否提供一组功能以及这组功能是否适合有关的软件属性。
- 准确性(Accurateness)。与能够得到正确或相符的结果或效果有关的软件属性。
- 互用性(Interoperability)。与其他指定系统进行交互操作的能力相关的软件属性。
- 依从性(Compliance)。使软件服从有关的标准、约定、法规及类似规定的软件属性。
- 安全性(Security)。与避免对程序及数据的非授权故意或意外访问的能力有关的软件属性。
(2)可靠性(Reliability)。与在规定的一段时间内和规定的条件下软件维持在其性能水平有关的能力。
- 成熟性(Maturity)。与由软件故障引起失效的频度有关的软件属性。
- 容错性(Fault tolerance)。与在软件错误或违反指定接口的情况下维持指定的性能水平的能力有关的软件属性。
- 易恢复性(Recoverability)。,与在故障发生后,重新建立其性能水平并恢复直接受响数据的能力,以及为达到此目的所需的时间和努力有关的软件属性。
(3)易使用性(Usability)。与为使用所需的努力和由一组规定或隐含的用户对这样使用所做的个别评价有关的一组属性。
- 易理解性(Understandability)。与用户为理解逻辑概念及其应用所付出的劳动有关的软件属性。
- 易学性(Learnability)。与用户为学习其应用(例如操作控制、输入、输出)所付出的努力相关的软件属性。
- 易操作性(Operability)。与用户为进行操作和操作控制所付出的努力有关的软件属性。
(4)效率(Efficiency)。在规定条件下,与软件的性能水平与所用资源量之间的关系有关的软件属性。
- 时间特性(Time behavior)。与响应和处理时间以及软件执行其功能时的吞吐量有关的软件属性。
- 资源特性(Resource behavior)。与软件执行其功能时,所使用的资源量以及使用资源的持续时间有关的软件属性。
(5)可维护性(Maintainability)。与进行规定的修改所需要的努力有关的一组属性。
- 易分析性(Analyzability)。与为诊断缺陷或失效原因,或为判定待修改的部分所需努力有关的软件属性。
- 易改变性(Changeability)。与进行修改、排错或适应环境变换所需努力有关的软件属性。
- 稳定性(Stability)。与修改造成未预料效果的风险有关的软件属性。
- 易测试性(Testability)。为确认经修改软件所需努力有关的软件属性。
(6)可移植性(Portability)。与软件可从某一环境转移到另一环境的能力有关的一组属性。
- 适应性(Adaptability)。与软件转移到不同环境时的处理或手段有关的软件属性。
- 易安装性(Installability)。与在指定环境下安装软件所需努力有关的软件属性。
- 一致性(Conformance)。使软件服从与可移植性有关的标准或约定的软件属性。
- 易替换性(Replaceability)。与一软件在该软件环境中用来替代指定的其他软件的可能和努力有关的软件属性。
软件过程改进
CMMI 能力成熟度模型集成 |
描述 |
---|---|
初始级 | 杂乱无章,甚至混乱,几乎没有明确定义的步骤,项目的成功完全依赖个人的努力和英雄式核心人物的作用。 |
可重复级 | 建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性,有必要的过程准则来重复以前在同类项目中的成功。 |
已定义级 | 管理和工程两方面的软件过程已经文档化、标准化,并综合成整个软件开发组织的标准过程。 |
已管理级 | 制定了软件过程和产品质量的详细度量标准。 |
优化级 | 加强了定量分析,通过来自过程质量反馈和来自新观念、新技术的反馈使过程能不断持续地改进。 |
CMMI阶段式模型 | 描述 |
---|---|
初始的 | 过程不可预测且缺乏控制 |
已管理的 | 过程为项目服务 |
已定义的 | 过程为组织服务 |
定量管理的 | 过程已度量和控制 |
优化的 | 集中于过程改进 |
CMMI连续式模型 | 描述 |
---|---|
CL0(未完成的) | 过程域未执行或未得到CL1中定义的所有目标 |
CL1(已执行的) | 其共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标 |
CL2(已管理的) | 其共性目标是集中于已管理的过程的制度化。根据组织级政策规定过程的运作将使用哪个过程,项目遵循已文档化的计划和过程描述,所有正在工作的人都有权使用足够的资源,所有工作任务和工作产品都被监控、控制、和评审。 |
CL3(已定义级的) | 其共性目标集中于已定义的过程的制度化。过程是按照组织的裁剪指南从组织的标准过程中裁剪得到的,还必须收集过程资产和过程的度量,并用于将来对过程的改进 |
CL4(定量管理的) | 其共性目标集中于可定量管理的过程的制度化。使用测量和质量保证来控制和改进过程域,建立和使用关于质量和过程执行的质量目标作为管理准则 |
CL5(优化的) | 使用量化(统计学)手段改变和优化过程域,以满足客户的改变和持续改进计划中的过程域的功效 |
CMM模型 | 描述 |
---|---|
初始级 | 杂乱无章,甚至混乱,几乎没有明确定义的步骤,项目的成功完全依赖个人的努力和英雄式核心人物的作用 |
可重复级 | 建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性,有必要的过程准则来重复以前在同类项目中的成功 |
已定义级 | 管理和工程两方面的软件过程已经文档化、标准化,并综合成整个软件开发组织的标准过程。 |
已管理级 | 制定了软件过程和产品质量的详细度量标准 |
优化级 | 加强了定量分析,通过来自过程质量反馈和来自新观念、新技术的反馈使过程能不断持续地改进 |
题目举例
若用户需求不清晰且经常发生变化,但系统规模不太大且不太复杂,则最适宜采用()开发方法,对于数据处理领域的问题,若系统规模不太大且不太复杂,需求变化也不大,则最适宜采用()开发方法。
问题一
- A. 结构化
- B. Jackson
- C. 原型化
- D. 面向对象
问题二
- A. 结构化
- B. Jackson
- C. 原型化
- D. 面向对象
【试题解析】∶在本题的两个空中,第1个空比较容易,由于题目明确说明”用户需求不清晰且经常发生变化”所以只有原型化方法适用。而第2空需求变化不大的情况下,其实多种模型都可用,所以另一条线索成为解题关键,即”数据处理领域问题”。结构化方法的基本特征是:自顶向下,逐层分解,也适合于大型的数据处理系统,所以用他最合适。
以下关于结构化开发方法的叙述中,不正确的是()。
- A. 总的指导思想是自顶向下,逐层分解
- B. 基本原则是功能的分解与抽象
- C. 与面向对象开发方法相比,更适合于大规模、特别复杂的项目
- D. 特别适合于数据处理领域的项目
【试题解析】∶结构化开发方法是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。结构化开发方法又称生命周期法,是迄今为止最传统、应用最广泛的一种信息系统开发方法。结构化开发方法采用系统工程的思想和工程化的方法,按用户至上的原则,结构化、模块化、自顶向下地对信息系统进行分析与设计。该方法严格按照信息系统开发的阶段性开展设计工作,每个阶段都产生一定的设计成果,通过评估后再进入下一阶段开发工作。因此,结构化开发方法具有以下优点:
- 开发工作的顺序性、阶段性适合初学者参与软件的开发
- 开发工作的阶段性评估可以减少开发工作重复性和提高开发的成功率
- 该方法有利于提高系统开发的正确性、可靠性和可维护性
- 具有完整的开发质量保证措施
结构化开发方法存在的不足主要是开发周期太长,个性化开发阶段的文档编写工作量过大或过于烦琐,无法发挥开发人员的个性化开发能力。一般来说,结构化开发方法主要适用于组织规模较大、组织结构相对稳定的企业,这些大型企业往往业务处理过程规范、信息系统数据需求非常明确,在一定时期内需求变化不大。
以下关于结构化开发方法的叙述中,不正确的是()。
- A. 将数据流映射为软件系统的模块结构
- B. —般情况下,数据流类型包括变换流型和事务流型
- C. 不同类型的数据流有不同的映射方法
- D. 一个软件系统只有一种数据流类型
极限编程(extreme Programming)是一种轻量级软件开发方法,()不是它强调的准则。
- A. 持续的交流和沟通
- B. 用最简单的设计实现用户需求
- C. 用测试驱动开发
- D. 关注用户反馈
【试题解析】∶极限编程( extreme Programming.XP)是1998年由Kent Beck首先提出的一种轻量级的软件开发方法,同时也是一种非常严谨和周密的方法。这种方法强调交流、简单、反馈和勇气4项原则,也就是说一个软件项目可以从4个方面进行改善:加强交流;从简单做起;寻求反饿;勇于实事求是。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期。通过积极的交流、反馈以及其他一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和可能存在的困难等,并根据实际情况及时地调整开发过程。
面向对象开发方法的基本思想是尽可能按照人类认识客观世界的方法来分析和解决问题,()方法不属于面向对象方法。
- A. Booch
- B. Coad
- C. OMT
- D. Jackson
【试题解析】∶本题考查面向对象开发方法。面向对象开发方法有Booch方法、Coad方法和OMT方法。Jackson方法是一种面向数据结构的开发方法。
若某模块内所有处理元素都在同一个数据结构上操作,则该模块的内聚类型为()。
- A. 逻辑
- B. 过程
- C. 通信
- D. 功能
【试题解析】∶
某模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一处理元素的输出就是下一处理元素的输入,则该模块的内聚类型为()内聚。
- A. 过程
- B. 时间
- C. 顺序
- D. 逻辑
某模块内涉及多个功能,这些功能必须以特定的次序执行,则该模块的内聚类型为()内聚。
- A. 过程
- B. 时间
- C. 信息
- D. 功能
【试题解析】∶要求功能是以特定的次序执行,所以是过程内聚。
模块A、B和C有相同的程序块,块内的语句之间没有任何联系,现把该程序块取出来,形成新的模块D,则模块D的内聚类型为()内聚。以下关于该内聚类型的叙述中,不正确的是()。
问题一
- A. 巧合
- B. 逻辑
- C. 时间
- D. 过程
问题二
- A. 具有最低的内聚性
- B. 不易修改和维护
- C. 不易理解
- D. 不影响模块间的耦合关系
某模块中有两个处理 A 和 B,分别对数据结构X写数据和读数据,则该模块的内聚类型为()内聚。
- A. 逻辑
- B. 过程
- C. 通信
- D. 内容
模块A执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能,则该模块具有()内聚
- A. 顺序
- B. 过程
- C. 逻辑
- D. 功能
内聚是—种指标,表示一个模块()。
- A. 代码优化的程度
- B. 代码功能的集中程度
- C. 完成任务的及时程度
- D. 为了与其他模块连接所要完成的工作量
模块A通过非正常入口转入模块B内部,则这两个模块之间是()耦合。
- A. 数据
- B. 公共
- C. 外部
- D. 内容
已知模块 A 给模块 B 传递数据结构 X,则这两个模块的耦合类型为()。
- A. 数据耦合
- B. 公共耦合
- C. 外部耦合
- D. 标记耦合
某企业管理信息系统中,采购子系统根据材料价格、数量等信息计算采购的金额,并给财务子系统传递采购金额、收款方和采购日期等信息,则这两个子系统之间的耦合类型为()耦合。
- A. 数据
- B. 标记
- C. 控制
- D. 外部
耦合是模块之间的相对独立性(互相连接的紧密程度)的度量。耦合程度不取决于()。
- A. 调用模块的方式
- B. 各个模块之间接口的复杂程度
- C. 通过接口的信息类型
- D. 模块提供的功能数
【试题解析】∶耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块之间越独立则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。
模块A将学生信息,即学生姓名、学号、手机号等放到一个结构体中,传递给模块B。模块A和B之间的耦合类型为()耦合。
- A. 数据
- B. 标记
- C. 控制
- D. 内容
模块A直接访问模块B的内部数据,则模块A和模块B的耦合类型为()。
- A. 数据耦合
- B. 标记耦合
- C. 公共耦合
- D. 内容耦合
下图中的程序由A、B、C、D、E5个模块组成,下表中描述了这些模块之间的接口,每一个接口有一个编号。此外,模块A、D和E都要引用一个专用数据区。那么 A 和 E 之间耦合关系是()。
- A. 公共耦合
- B. 数据耦合
- C. 内容耦合
- D. 无耦合
【试题解析】∶由于模块A和模块E都引用了专用数据区的内容,所以是公共耦合。
耦合度描述了()。
- 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. 将父模块下移,使判定处于较高层次
Theo Mandel 在其关于界面设计所提出的三条”黄金准则”中,不包括()。
- 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. 严格按照测试计划进行,避免测试的随意性
【试题解析】∶测试人员应该在系统设计阶段介入,根据概要设计说明书开始制定测试计划:测试过程要求用户参与,特别是提交阶段要通过用户的验收测试;设计测试用例时不但要选择合理的输入数据作为测试用例,还要选择不合理的输入数据作为测试用例。
两个小组独立地测试同一个程序,第一组发现25个错误,第二组发现30个错误,在两个小组发现的错误中有15个是共同的,那么可以估计程序中的错误总数是()个。
- A. 25
- B. 30
- C. 50
- D. 60
在某大学学生学籍管理信息系统中,假设学生年龄的输入范围为16~40,则根据黑盒测试中的等价类划分技术,下面划分正确的是()。
- A. 可划分为2个有效等价类,2个无效等价类
- B. 可划分为1个有效等价类,2个无效等价类
- C. 可划分为2个有效等价类,1个无效等价类
- D. 可划分为1个有效等价类,1个无效等价类
【试题解析】∶根据等价类划分的原则,如果规定了输入数据的范围,则可划分为1个有效等价类和2个无效等价类。学生年龄的输入范围为16~40,则有效等价类为16s年龄≤40,两个无效等价类为年龄>40或年龄<16。
在模拟环境下,常采用黑盒测试检验所开发的软件是否与需求规格说明书一致。其中有效性测试属于()中的一个步骤。
- A. 单元测试
- B. 集成测试
- C. 确认测试
- D. 系统测试
【试题解析】∶本题考查系统测试中的确认测试。确认测试首先要进行有效性测试以及软件配置审查,然后进行验收测试和安装测试。其中有效性测试,就是在模拟环境下,通过黑盒测试检验所开发的软件是否与需求规格说明书一致。
某程序根据输入的三条线段长度,判断这三条线段能否构成三角形。以下6个测试用例中,()两个用例属于同一个等价类。
- A. ①②
- B. ③④
- C. ⑤⑥
- D. ①④
【试题解析】∶本题考查黑盒测试技术的等价类划分。①为前两边之和等于第三边;②为三边不等且任意两边之和大于第三边;③④前两边之和小于第三边;⑤为其中有两边相等且可构成等腰三角形;⑥为三边相等且可构成等边三角形。
软件测试是软件开发中不可缺少的活动,通常()在代码编写阶段进行。检查软件的功能是否与用户要求一致是()的任务。
问题一
- A. 验收测试
- B. 系统测试
- C. 单元测试
- D. 集成测试
问题二
- A. 验收测试
- B. 系统测试
- C. 单元测试
- D. 集成测试
【试题解析】∶本题考查软件开发阶段与测试的对应关系。通过单元测试,(也称为模块测试)消除程序模块内部存在的错误和缺陷,这类测试在代码编写阶段完成,通过集成测试(也称为组装测试)检测和排除子系统结构上的错误和缺陷,通过确认验收测试,验证软件功能是否满足用户要求,通过系统测试,在已确认的计算机软硬件环境下,通过与系统需求对比,发现系统与用户需求不符或矛盾的地方。
软件可维护性是一个系统在特定的时间间隔内可以正常进行维护活动的概率。用MTTF和MTTR分别表示平均无故障时间和平均故障修复时间,则软件可维护性计算公式为()。
- A. MTTF/(1+MTTF)
- B. 1/(1+MTTF)
- C. MTTR/(1+MTTR)
- D. 1/(1+MTTR)
以下关于软件维护的叙述中,不正确的是()。
- A. 软件维护解决软件产品交付用户之后进行中发生的各种问题
- B. 软件维护期通常比开发期长得多,投入也大得多
- C. 软件的可维护性是软件开发阶段各个时期的关键目标
- D. 相对于软件开发任务而言,软件维护工作要简单得多
【试题解析】∶软件维护是软件生命周期最长的一段,相对于软件开发任务而言,软件维护工作要更加复杂,D选项描述不正确。
软件维护工具不包括()工具。
- A. 版本控制
- B. 配置管理
- C. 文档分析
- D. 逆向工程
【试题解析】∶辅助软件维护过程中的活动的软件称为”软件维护工具”,它辅助维护人员对软件代码及其文档进行各种维护活动。软件维护工具主要有:1、版本控制工具;2、文档分析工具;3、开发信息库工具;4、逆向工程工具;5、再工程工具;6、配置管理支持工具。
以下关于软件维护和可维护性的叙述中,不正确的是()。
- A. 软件维护要解决软件产品交付用户之后运行中发生的各种问题
- B. 软件的维护期通常比开发期长得多,其投入也大得多
- C. 进行质量保证审查可以提高软件产品的可维护性
- D. 提高可维护性是在软件维护阶段考虑的问题
【试题解析】∶在软件开发的各个阶段都需考虑软件的可维护性。
某搜索引擎在交付后,开发人员修改了其中的索引方法,使得用户可以更快地得到搜索结果。这种修改属于()维护。
- A. 正确性
- B. 适应性
- C. 完善性
- D. 预防性
【试题解析】∶在软件开发的各个阶段都需考虑软件的可维护性。
某商场的销售系统所使用的信用卡公司信息系统的数据格式发生了更改,因此对该销售系统进行的修改属于()维护。
- A. 改正性
- B. 适应性
- C. 改善性
- D. 预防性
进行防错性程序设计,可以有效地控制()维护成本。
- A. 正确性
- B. 适应性
- C. 完善性
- D. 预防性
改正在软件系统开发阶段已经发生而系统测试阶段还没有发现的错误,属于()维护。
- A. 正确性
- B. 适应性
- C. 完善性
- D. 预防性
【试题解析】∶软件维护的内容一般包括准确性维护、适应性维护、完善性维护和预防性维护。正确性维护是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。适应性维护是指使应用软件适应信息技术变化和管理需求变化而进行的修改。完善性维护主要是指对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。预防性维护是指为了适应未来的软硬件环境的变化,主动增加预防性的新功能,以使应用系统适应各类变化而不被淘汰。
ISO/IEC软件质量模型中,易使用性是指与使用所需的努力和由一组规定或隐含的用户对这样使用所作的个别评价有关的一组属性,其子特性不包括()。
- A. 易理解性
- B. 易学性
- C. 易分析性
- D. 易操作性
【试题解析】∶易用性的自特性包括易理解性、易学性、易操作性,其中C选项易分析性属于可维护性的子特性。
在ISO/IEC 9126软件质量模型中,可靠性质量特性是指在规定的一段时间内和规定的条件下,软件维持在其性能水平有关的能力,其质量子特性不包括()。
- A. 安全性
- B. 成熟性
- C. 容错性
- D. 易恢复性
【试题解析】∶
根据ISOIEC 9126软件质量模型中对软件质量特性的定义,可维护性质量特性的()子特性是指与为确认经修改软件所需努力有关的软件属性。
- A. 易测试性
- B. 易分析性
- C. 稳定性
- D. 易改变性
将每个用户的数据和其他用户的数据隔离开,是考虑了软件的()质量特性。
- A. 功能性
- B. 可靠性
- C. 可维护性
- D. 易使用性
以下关于CMM的叙述中,不正确的是()。
- A. CMM是指软件过程能力成熟度模型
- B. CMM根据软件过程的不同成熟度划分了5个等级,其中,1级被认为成熟度最高,5级被认为成熟度最低
- C. CMMI的任务是将已有的几个CMM模型结合在一起,使之构成“集成模型”
- D. 采用更成熟的CMM模型,一般来说可以提高最终产品的质量
【试题解析】∶CMM中1级成熟度最低,5级成熟度最高,B选项描述错误,其他选项描述都是正确的。
能力成熟度模型集成(CMMI)是若干过程模型的综合和改进。连续式模型和阶段式模型是CMMI提供的两种表示方法,而连续式模型包括6个过程域能力等级,其中()使用量化(统计学)手段改变和优化过程域,以应对客户要求的改变和持续改进计划中的过程域的功效。
- A. CL2(已管理的)
- B. CL3(已定义级的)
- C. CL4(定量管理的)
- D. CL5(优化的)
能力成熟度模型集成(CMMI)是若干过程模型的综合和改进。连续式模型和阶段式模型是CMMI提供的两种表示方法。连续式模型包括6个过程域能力等级(Capablity Level,CL),其中()的共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标。
- A. CL1(已执行的)
- B. CL2(已管理的)
- C. CL3(已定义的)
- D. CL4(定量管理的)
SEI能力成熟度模型(SEICMM)把软件开发企业分为5个成熟度级别,其中()重点关注产品和过程质量。
- A. 级别2:重复级
- B. 级别3:确定级
- C. 级别4:管理级
- D. 级别5:优化级
关于过程改进,以下叙述中不正确的是()。
- A. 软件质量依赖于软件开发过程的质量,其中个人因素占主导作用
- B. 要使过程改进有效,需要制定过程改进目标
- C. 要使过程改进有效,需要进行培训
- D. CMMI成熟度模型是一种过程改进模型,仅支持阶段性过程改进而不支持连续性过程改进
以下关于过程改进的叙述中,错误的是()。
- A. 过程能力成熟度模型基于这样的理念:改进过程将改进产品,尤其是软件产品
- B. 软件过程改进框架包括评估、计划、改进和监控四个部分
- C. 软件过程改进不是一次性的,需要反复进行
- D. 在评估后要把发现的问题转化为软件过程改进计划
软件能力成熟度模型将软件能力成熟度自低到高依次划分为初始级、可重复级、定义级、管理级和优化级,并且高级别成熟度一定可以达到低级别成熟度的要求。其中()中的开发过程及相应的管理工作均已标准化、文档化,并已建立完善的培训制度和专家评审制度。
- A. 可重复级和定义级
- B. 定义级和管理级
- C. 管理级和优化级
- D. 定义级、管理级和优化级
【试题解析】∶软件能力成熟度模型是美国卡内基·梅隆大学提出的用于评估软件机构的能力成熟度方法和标准,现已被业界广泛重视。该模型将软件机构能力成熟度分为5个级别.从第三级(定义级)到最高级(优化级),都要求软件开发过程及相应的管理工作必须标准化、文档化,并综合为软件机构的标准软件过程:并必须建立完善的培训制度和专家评审制度。
软件能力成熟度模型(CMM)将软件能力成熟度自低到高依次划分为初始级、可重复级、定义级、管理级和优化级。其中()对软件过程和产品都有定量的理解与控制。
- A. 可重复级和定义级
- B. 定义级和管理级
- C. 管理级和优化级
- D. 定义级、管理级和优化级
【试题解析】∶本题考查软件能力成熟度模型(CMM)的成熟度等级。CMM将软件过程能力成熟度划分为5级,每一级都为下一级提供一个基础。管理级对软件过程和产品都有定量的理解与控制,因此管理级和优化级均对软件过程和产品有定量的理解与控制。
软件能力成熟度模型(CMM)将软件能力成熟度自低到高依次划分为5级。目前,达到CMM第3级(已定义级)是许多组织努力的目标,该级的核心是()。
- A. 建立基本的项目管理和实践来跟踪项目费用、进度和功能特性
- B. 使用标准开发过程(或方法论)构建(或集成)系统
- C. 管理层寻求更主动地应对系统的开发问题
- D. 连续地监督和改进标准化的系统开发过程
【试题解析】∶本题考查软件成熟度模型(CMM)的基本概念。建立基本的项目管理和实践来跟踪项目费用、进度和功能特性为可重复级的核心;使用标准开发过程(或方法论)构建(或集成)系统为已定义级的核心;管理层寻求更主动地应对系统的开发问题为已管理级的核心;连续地监督和改进标准化的系统开发过程为优先级的核心。
软件能力成熟度模型(CMM)的第4级(已管理级)的核心是()。
- A. 建立基本的项目管理和实践来跟踪项目费用、进度和功能特性
- B. 组织具有标准软件过程
- C. 对软件过程和产品都有定量的理解和控制
- D. 先进的新思想和新技术促进过程不断改进
【试题解析】∶本题考查成熟度等级(CMM)知识。在CMM的不同等级有不同的核心。在可重复级,建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性。在已定义级,所有项目都采用根据实际情况修改后得到的标准软件过程来开发和维护软件。在已管理级,收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解与控制。在优化级,过程的量化反馈和先进的新思想、新技术促使过程不断改进。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/133028.html