软件开发模型 -- 基本分类
基本分类
如下所示,请阅读。
瀑布模型
基本思想
从制作时间上工序把问题化简;
将功能实现与制作分开便于分工协作。
优点
奠定了软件开发工程方法的基础;
流水依赖,便于分工协作;
推迟物理实现,易于修改文档,有复审质量保证。
不足
与用户见面晚,成功率比较低
适用范围
与系统要求明确的系统;
各种应用软件的开发均可以使用。
开发方法
遵循软件生命期的划分,明确规定每个阶段的任务;
上一阶段完成确定的任务后就产生一定格式的文档给下一阶段,不同阶段的任务一般有不同级别的软件人员承担。
开发特点
时间的顺序性和依赖性;
推迟实现的观点;
质量保证的观点。
图例
快速原型模型
图例
演化模型
由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免;
第一次只是试验开发,其目标只是在于探索可行性,弄清软件需求;
第二次则在此基础上获得较为满意的软件产品。
渐增模型
螺旋模型
基本思想
多次原型反复并增加风险评估的开发模型
特点
螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:
- 制定计划一一确定软件目标,选定实施方案,弄清项目开发的限制条件。
- 风险分析一一分析所选方案,考虑如何识别和消除风险。
- 实施工程一一实施软件开发
- 客户评估一一评价开发工作,提出修正建议。
图例
喷泉模型
基本思想
认为软件的各个周期是相互叠加和反复多次的。
特点
迭代、重复、演进;
无间隙、各个阶段无明显界限。
图例
原型(渐增型)
基本思想
允许从部分需求出发,先建立一个不全面的系统,通过测试这个系统,进一步使系统扩充和完善。
优点
开发的始终开发人员和用户都参与,有问题可以及时修改,更好的满足了用户的需求。
适用范围
知识型软件系统的开发。
特点
从整体结构上不如瀑布型清晰;
软件的文档不如瀑布型的划分严格;
周期长,成本高;
与用户见面快,开发效率高。
变化型
基本思想
从软件需求的形式规格说明出发,经过一系列的程序变化,得到最终结果。
特点
有严格的数学理论和形式化的技术支持,但目前在研究和实验阶段,不能实际使用。
写在最后
个人的学习笔记,有的内容或许有遗漏或者错误,还望斧正。