51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 439|回复: 0

[讨论] 软件研发流程类型

[复制链接]
  • TA的每日心情
    开心
    2022-9-21 15:33
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    发表于 2023-2-7 09:57:03 | 显示全部楼层 |阅读模式
      1、瀑布模型(Waterfall Model):线性,串行,无风险控制能力,适合需求变化较小的情况。瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用瀑布模型结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
      计划阶段:项目计划书,Project Plan
      需求阶段:需求规格说明书,SRS: Software Requirement Specification
      设计阶段:概要设计:High Level Design,详细设计:Low Level Design
      开发阶段:代码,用例
      测试阶段:测试实现和执行
      维护阶段:产品维护
      优点:简单高效(一般产品要求立即上线,应第一时间保证运行,其它的有时间再做)
      缺点:测试介入较晚,人员闲置严重,后续工作跟不上;在项目各个阶段之间极少有反馈;只有在项目生命周期的后期才能看到结果;通过过多的强制完成日期和里程碑来跟踪各个项目阶段;瀑布模型的突出缺点是不适应用户需求的变化。
      适用范围:项目开发完成后才招测试人员,那么可能是瀑布模型,不适合需求频繁变更的项目。不适合于大的项目,适用于小规模传统项目业务研发。适合范围:项目小,需求明确。
      按照瀑布模型的阶段划分,软件测试可以分为单元测试,集成测试,系统测试。
      风险驱动的模型,迭代模型(Iteration),可在迭代模型中应用瀑布模型。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试。
      增量:软件开发过程中,先开发主要功能模块,再开发次要功能模块,逐步完善,最终开发出符合需求的软件产品。
      迭代:指增量开发过程中,各模块的开发是反复进行的,并不是完成了某个模块后就终止该模块的开发转而开发下一个模块,可能还要对之前开发的模块不断完善,增加新功能。


      ​
      2、螺旋模型:基于风险管理的模型,高风险的优先考虑,对风险管理人员的要求较高。综合了基本的瀑布式模型和演化/渐增原型方法。与瀑布模型不同点:螺旋模型有替代方案,是多个瀑布模型的并行集合。充分考虑了风险问题,故设计了替代方案。
      优点:充分考虑风险,抗风险能力强;
      缺点:成本太高,需要专业的风险分析专家参与;
      适用范围:与生命财产相关的系统。
      3、RUP(Rational Unified Process):统一软件开发过程,是一个面向对象且基于网络的程序开发方法论。所有的工作流在各个阶段都有体现。面向对象的,通用的。特点:基于风险;用例集驱动;以架构为中心;迭代和增量。所以工作流在各个阶段都有体现。
      优点:针对大型复杂的系统,进行逐步完善,降低了实施复杂度;用户可在早期提出变更并进行修复,从而有效控制变更风险及代价(往往都是局部变更);可在早期增强用户的信心(看到了半成品)。
      缺点:要有专业的架构师(架构师的职责),当功能与功能之间联系太过紧密的话,不太使用rup模型,比如登录与注册的联系;已经确定了的功能将不允许变更,但由于因为设计引起的内在联系引起的变更是无法控制的。
      适用范围:大型复杂的项目研发,耦合度较低的系统。
      4、IPD(integrated product development):集成产品开发,IPD的思想来源于美国PRTM公司出版的《产品及生命周期优化法》(简称PACE——Product And Cycle-time Excellence)一书,该书中详细描述了这种新的产品开发模式所包含的各个方面。产品结构重整(资源重整);公共模块共用。
      从整个产品角度出发,不仅仅针对研发。
      优点:将软硬件研发及生产、销售等各个部门有效整合,集中在一个平台下统一管理,提高了决策的准确性及时效性;利于各部门关键数据的共享;
      缺点:管理成本高;部门之间的协调关系较复杂;
      适用范围:大型软硬件集成厂商。
      5、敏捷开发:Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。
      计划开发一定功能,并把一个个功能挨个快速地实现,省略文档写作(包括概要设计等),在这个基础上有可能增加功能。


    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-3-29 16:37 , Processed in 0.065125 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表