软件过程模型是指将软件开发过程合成为一系列可治理的阶段或流动,并规定每个阶段或流动所需的输出、输入、角色和工作产品,以及相互之间的关系。通过采纳软件过程模型,能够帮忙团队更好地组织和治理软件开发流动,进步软件开发效率和品质。
模型名称 | 概括形容 | 长处 | 毛病 | 实用面向 | 次要内容 |
---|---|---|---|---|---|
瀑布模型 | 开发过程有序、线性,每个阶段实现后能力进入下一阶段 | 易于了解、施行和治理 | 需要变更难以解决、不适宜大型项目、开发过程不足灵活性 | 面向过程 | 需要剖析、设计、实现、测试、保护 |
原型模型 | 疾速开发原型,让用户理解软件系统是否合乎需要 | 能够疾速失去用户反馈、更好地了解用户需要 | 原型开发可能会减少后续开发的难度 | 面向用户 | 疾速建设原型、原型迭代 |
迭代开发模型 | 将开发过程分成若干个迭代,每个迭代都蕴含残缺的开发流程 | 能够在开发过程中依据用户反馈及时调整需要、灵活性高 | 迭代之间须要进行沟通和协调、可能存在一些反复工作 | 面向用户 | 打算迭代、剖析需要、设计、实现、测试、评审 |
螺旋模型 | 采纳一直迭代的形式开发软件,每个迭代包含危险剖析、开发、评审和打算等过程 | 能够及时进行危险评估和调整、灵活性高 | 须要进行危险评估和剖析,开发周期较长 | 面向危险 | 危险辨认、危险剖析、危险解决方案、开发、评审、打算 |
喷泉模型 | 将软件开发过程看作一个继续一直的喷泉,每个开发阶段都会一直循环迭代 | 支持软件重用、能够适应变动、可靠性高 | 开发过程可能会比较复杂,须要较高的技能和教训 | 面向重用 | 技术可行性研究、软件需要剖析、软件设计、软件实现、软件测试、软件维护 |