一、开发模型 and 软件开发的生命周期
在概述开发模型之前我先大概说明一下软件开发的生命周期
软件开发的生命周期:需求分析--计划--设计--开发--测试--运行维护。
(1)瀑布模型
特点: 阶段性强,每一个阶段比较独立,看重前期的需求分析和后期的测试
缺点:测试在编码之后才进行介入,导致前期的问题后期才会发现,会失去错误补救的机会
(2)螺旋模型
螺旋模型适合于项目庞大,风险大不是很明确的项目
特点:强调每一个迭代的测试质量和风险分析
缺点:风险管控人力物力投入很多,成本比较的大
(3)增量模型,迭代模型
比如同一个系统的四个模块 A B C D 两周
增量模型:第一周开发A B 功能模块
第二周开发C D 功能模块
迭代模型:第一周先开发A B C D的基础功能
第二周在第一周的基础上完善其他的功能
特点:抗风险能力强
(5)敏捷模型
特点:轻文档,轻流程,重目标,重产出
scrum:
scrum的基本流程: 5~7 人 2~4 周
角色:
PO product owner ,把用户需求转化为user story
SM scrum master 项目经理,管理整个团队,负责敏捷流程顺利实施,各种会议的开展
ST scrum team 各种技能的人的组合 开发 测试 UI
流程如下:
发布计划会议:产品经理收集需求成为userstory ,讲解,排出本迭代需要进行开发的userstory形成sprint backlog
迭代计划会议:分析userstory,把userstory分解成一个又一个的任务,分配开发人员,制定开发计划
每日站会:昨天干了什么,遇到的问题,今天的计划
演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取得的成果。期间大家的反馈记录下来,由po整理,形成新的story。
回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,已达到持续改进的效果。
二、测试模型
(1)V模型
特点:每一个阶段独立性强
左边的每一个阶段是右边测试阶段的依据
和右边的测试阶段一一对应
缺点:瀑布模型的一个变种
编码后才进行测试导致前期的问题后期才会发现,会失去错误补救的机会
(2)W模型
双V模型:
特点:每一个阶段比较独立,测试一开始就介入了可以保证前期的问题及时纠正和发现
测试开发并行
缺点:不能灵活的修改需求,每一个阶段都是串行的过程,一个阶段完了以后就进行下一个阶段,不支持敏捷开发