软件开发过程中,软件项目失败并不罕见。20世纪80年代,软件项目失败的原因大多是由于过程缺乏规范。软件开发过程中,并无详细的开发规划,这样的过程像一个“黑盒子”,我们并不能完全了解过程中会发生的任何事情,也无法估计软件成品的质量。由此,软件过程规逐渐范化,软件开发过程也有了一定的计划。软件过程的基本运动包括初步的问题提出,即背景了解,市场调差等,还有了解软件需求规格说明,软件设计过程规划,软件的实现预确认。
软件开发过程规范化,自然不会只有一种统一的套路。软件过程有各种模型:瀑布模型,快速原型模型,增量模型,螺旋模型,形式化方法模型,基于组件的开发模型。瀑布模型是一种从上到下按序进行的软件过程模型,虽然井井有条却也存在用户需求不明确,并不能适应环境变化等缺点。快速原型模型是建立一个初步原型,在不断地进行优化。增量模型是一点点的将客户的需求添加进去,每一步的添加过程都相同,直到最后形成一个令人满意的成品。螺旋模型是瀑布模型与快速原型模型的结合体。形式化方法模型现将软件需求形式化数学描述,再将数据描述一次次形式化转化为可执行程序。基于组件的开发模型是一种新兴模型,选取现有组件进行选取组装和修改,从而形成产品。
微软公司的软件过程模型由规划,设计,开发,稳定和发布5个阶段组成,每个阶段都有固定的依据与目标。它的开发策略是递进式的,产品功能是一点点进行完善的。