软考`软件工程`部分 --(软件过程,瀑布模型,V模型,增量模型,演化模型,原型模型,螺旋模型,喷泉模型,敏捷方法,系统设计,单元测试,黑盒测试,白盒测试,软件文档,COCOMO模型,PERT图)


一、软件过程

1.能力成熟度模型

CMM 将软件过程改进分为以下5个成熟度级别。

1)初始级(Initial)
    软件过程的特点是杂乱无章,有时甚至很混乱,几乎没有明确定义的步骤,项目的成功完全依赖个人的努力和英雄式核心人物的作用。
2)可重复级(Repeatable)
    建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性,有必要的过程准则来重复以前在同类项目中的成功。
3)已定义级(Defined)
    管理和工程两方面的软件过程已经文档化、标准化,并综合成整个软件开发组织的标准软件过程。所有项目都采用根据实际情况修改后得到的标准软件过程来开发和维护软件。
4)已管理级(Managed)
    制定了软件过程和产品质量的详细度量标准。软件过程的产品质量都被开发组织的成员所理解和控制。
5)优化级(Optimized)
    加强了定量分析,通过来自过程质量反馈和来自新观念、新技术的反馈使过程能不断持续地改进。

2.能力成熟度模型集成(CMMI)

CMMI提供了两种表示方法:阶段式模型和连续式模型,
(1)阶段式模型

  • 初始的:过程不可预测且缺乏控制。
  • 已管理的:过程为项目服务。
  • 已定义的:过程为组织服务。
  • 定量管理的:过程已度量和控制。
  • 优化的:集中于过程改进。

(2)连续式模型

CL₀(未完成的)
过程域未执行或未得到CL,中定义的所有目标。
CL₁(已执行的)
其共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标。
CL₂(已管理的)
其共性目标集中于已管理的过程的制度化。根据组织级政策规定过程的运作将使用哪个过程,项目遵循已文档化的计划和过程描述,所有正在工作的人都有权使用足够的资源,所有工作任务和工作产品都被监控、控制和评审。
CL₃(已定义级的)
其共性目标集中于已定义的过程的制度化。过程是按照组织的剪裁指南从组织的标准过程集中剪裁得到的,还必须收集过程资产和过程的度量,并用于将来对过程的改进。
CL₄(定量管理的)
其共性目标集中于可定量管理的过程的制度化。使用测量和质量保证来控制和改进过程域,建立和使用关于质量和过程执行的定量目标作为管理准则。
CL₅(优化的)
使用量化(统计学)手段改变和优化过程域,以满足客户要求的改变和持续改进计划中的过程域的功效。

二、软件过程模型

软件过程模型习惯上也称为软件开发模型,它是软件开发全部过程、活动和任务的结构框架。典型的软件过程模型有瀑布模型、增量模型、演化模型(原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式化方法模型等。

2.1瀑布模型

(1)瀑布模型是将软件生存周期中的各个活动规定为依线性顺序连接的若干阶段的模型,包括需求分析、设计、编码、测试、运行与维护。它规定了由前至后、相互衔接的固定次序,如同瀑布流水逐级下落。
在这里插入图片描述
(2)以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,所以它是以文档作为驱动、适合于软件需求很明确的软件项目的模型。
(3)瀑布模型的优点:容易理解,管理成本低;强调开发的阶段性早期计划及需求调查和产品测试。
(4)缺点:难以看到项目的真正进度状态,项目风险的控制能力较弱,开发费用高。
(5)适用:开发大规模系统,具备相关领域及类似开发经验。需求明确,变更较少。新技术替代原有技术。

2.2V模型

瀑布模型的一个变体是V模型。
V模型描述了质量保证活动和沟通、建相关活动以及早期构建相关的活动之间的关系。随着软件团队工作沿着V模型左侧步骤向下推进,基本问题需求逐步细化,形成问题及解决方案的技术描述。一旦编码结束,团队沿着V模型右侧的步骤向上推进工作,其实际上是执行了一系列测试(质量保证活动),这些测试验证了团队沿着V 模型左侧步骤向下推进过程中所生成的每个模型。V模型提供了一种将验证确认活动应用于早期软件工程工作中的方法。
在这里插入图片描述

2.3增量模型

  1. 增量模型强调每一个增量均可发布一个可操作的产品。
  2. 优点:增量模型作为瀑布模型的一个变体,具有瀑布模型的所有优点。第一个可交付版本所需要的成本和时间很少;开发由增量表示的小系统所承担的风险不大;由于很快发布了第一个版本,因此可以减少用户需求的变更;运行增量投资,即在项目开始时,可以仅对一个或两个增量投资。
  3. 缺点:如果没有对用户的变更要求进行规划,那么产生的初始增量可能会造成后来增量的不稳定;如果需求不像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发,重新发布;管理发生的成本、进度和配置的复杂性可能会超出组织的能力。

2.4演化模型

  1. 演化模型有原型模型和螺旋模型等。
  2. 演化模型是迭代的过程模型,使得软件开发人员能够逐步开发出更完整的软件版本。
  3. 适用于对软件缺乏准确认识的情况,应对竞争或商业压力。
  4. 应对不断演变的软件产品的过程模型。

2.5原型模型

  1. 原型方法比较适合于用户需求不清、需求经常变化的情况。当系统规模不是很大也不太复杂时,采用该方法比较好。
  2. 快速,低成本构建原型
  3. 可支持用户界面设计,不可用来指导代码优化,有效捕获系统需求
    在这里插入图片描述

2.6螺旋模型

  1. 螺旋模型将瀑布模型和演化模型结合起来,加入了两种模型均忽略的风险分析,弥补了这两种模型的不足。
  2. 每个螺旋周期分为如下4个工作步骤。

(1)制订计划。确定软件的目标,选定实施方案,明确项目开发的限制条件。
(2)风险分析。分析所选的方案,识别风险,消除风险。
(3)实施工程。实施软件开发,验证阶段性产品。
(4)用户评估。评价开发工作,提出修正建议,建立下一个周期的开发计划。

  1. 适用于:大型软件,大规模、复杂、高风险系统
  2. 要求开发人员具有丰富的风险评估经验
  3. 缺点:过多迭代会增加开发成本,延长时间
    在这里插入图片描述

2.7喷泉模型

  1. 支持软件重用和多项开发活动集成的局限性。
  2. 喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。
  3. 喷泉模型使开发过程具有迭代性和无间隙性。允许各开发活动交叉,迭代进行。
  4. 边分析,边设计
  5. 优点:提高开发效率,节省时间
  6. 缺点:需要大量人员,不利于项目管理,审核难度加大,严格管理文档
    在这里插入图片描述

2.8统一过程模型

  1. 用例和风险驱动,以架构为中心,迭代并且增量
  2. 统一过程定义了4个技术阶段:

1)起始阶段:
    起始阶段专注于项目的初创活动,产生的主要工作产品有构想文档(Vision Document)、初始用例模型、初始项目术语表、初始业务用例、初始风险评估、项目计划(阶段及迭代)、业务模型以及一个或多个原型(需要时)。
2)精化阶段
    精华阶段在理解了最初的领域范围之后进行需求分析和

瀑布模型: 适用场景:适用于需求稳定、项目规模较小、技术可行性高的项目。适合团队成员分工明确、项目进度可预测的情况。 优点:阶段清晰,易于管理和控制;适合团队规模小、项目需求稳定的情况。 缺点:不适应需求变更;测试阶段较晚,风险较高;无法快速响应市场变化。 快速原型模型: 适用场景:适用于需求不明确、用户参与度高、迭代开发的项目。适合对用户需求进行验证和快速迭代的情况。 优点:快速构建原型,便于用户反馈和需求调整;提高用户满意度。 缺点:原型可能无法满足实际需求;开发成本较高。 增量模型: 适用场景:适用于需求变化频繁、项目规模较大的项目。适合通过多次迭代逐步完善系统功能的情况。 优点:每个增量都是可交付的产品部分,便于用户验收和反馈;适应需求变化。 缺点:每个增量都需要进行完整的开发流程;需求变更可能导致后续增量的调整。 螺旋模型: 适用场景:适用于风险评估和管理较为重要的项目。适合对项目风险进行评估和迭代开发的情况。 优点:强调风险管理,减少项目失败的风险;适应需求变化。 缺点:开发周期较长;成本较高。 喷泉模型: 适用场景:适用于需求变化频繁、项目规模较大的项目。适合通过多次迭代逐步完善系统功能的情况。 优点:强调需求管理和变更控制;适应需求变化。 缺点:开发周期较长;成本较高。 敏捷模型: 适用场景:适用于需求变化频繁、团队协作紧密的项目。适合通过迭代、自组织和持续反馈进行快速交付的情况。 优点:快速响应需求变化;强团队协作和客户参与。 缺点:对团队成员的要求较高;项目进度难以预测。 智能模型: 适用场景:适用于需要利用人工智能技术解决问题的项目。适合需要应用机器学习、深度学习等技术的情况。 优点:能够利用智能技术提高系统的智能化程度;适应复杂问题的解决。 缺点:技术门槛较高;开发成本较高。 混合模型: 适用场景:适用于项目需求复杂、规模较大、风险评估重要的项目。适合根据项目特点和需求灵活选择不同的开发模型。 优点:根据项目需求选择最合适的开发模型;灵活适应不同项目情况。 缺点:需要对不同开发模型有一定的了解和判断能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值