![2b793d57f44710d836b5c78a220879d5.png](https://img-blog.csdnimg.cn/img_convert/2b793d57f44710d836b5c78a220879d5.png)
在软件开发过程中,我们经常会遇到各种各样的开发模型,那么这些开发模型有什么特点?哪些项目适用?过程中存在哪些问题?质量管理的重点在哪?接下来让我们按照开发模型的常见程度,结合日常质量工作经验,全网独一份的来总结下吧……
(PS:最后有个表格,方便清晰的比对了各模型特点)
一、边做边改模型,Build and Fix Model
1、模型说明:
一种类似作坊的开发方式,或者说是单人写代码的形式,开发者根据需求编写程序功能,调通可用后就可以交付给买方/用户/客户使用,使用过程中,若程序有bug或用户/客户有新的需要,则开发者修复或新增功能;
2、模型特点:
(1)成型快,可应急,功能小而简;
(2)是后续很多开发模型的鼻祖;
3、使用范围:
小工具,插件,简单功能应用,个人外包;
4、存在问题:
可拓展性差,质量差,可维护性差,只适合单一少变的需求;
5、质量管理重点:
多次修改,一次成型,自查自验,关注用户/客户使用环境(兼容性)。
二、迭代模型,Stagewise Model
1、模型说明:
也被称作迭代增量式开发,有别于传统的瀑布模型,迭代将大块的需求拆解成多个周期下实现功能,每个迭代周期彼此之间功能基本独立,需求批量小;
2、模型特点:
(1)将软件过程拆解成可重复的多次,每次算作一个迭代,迭代周期通常不大于两周;
(2)每个迭代都包括了需求分析、设计、开发与测试;
(3)每次迭代仅需要完成部分功能需求,因此不必要在前期就把所有需求整理好,可以分批整理,分批迭代;
(4)迭代过程中可以不断接收用户/客户反馈来细化需求,调整功能,新增的需求可纳入下个迭代;
(5)集成颗粒度小,持续集成,持续验证,开发进度快,进入市场快;
3、使用范围:
(1)需求量多,初期整体需求不清晰,只有部分清晰的软件项目;
(2)面向市场,抢占先机,小步快跑,先发出功能,再快速迭代优化,特别适合创新型项目,如原来的滴滴、美团、共享xx等;
4、存在问题:
(1)管理难度较大,特别是需求管理,需求变更;
(2)迭代的拆解,工作量要均衡,迭代之间的功能实现方式、架构方式可能存在冲突;
(3)新需求容易代替老需求,后来的迭代容易覆盖前面的迭代,造成浪费;
(4)交付周期内容易出现前松后紧的情况,造成迭代2、3的质量较差;
5、质量管理重点:
(1)严格看护需求管理有效性,特别是需求变更,牵引CCB评审;
(2)需求价值评估很重要,不能因为迭代多而忽略;
(3)开展工作量评估很重要,迭代出口质量评估也很重要;
(4)重视原型演示,重视用户/客户建议,及时响应用户/客户;
(5)快速检查,快速跟进闭环,每日风险、问题例行升级,例行清零。
三、敏捷软件开发模型&#x