瀑布模型虽然有许多优点:可强迫开发人员采用规范的方法(例如,结构化技术);严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。但是瀑布模型有一个主要缺点。在可运行的软件产品交付给用户之前,用户只能通过文档了解产品是什么样的。但仅仅通过纸上的静态了解一个软件产品是远远不够的,一旦用户有什么其他想法,那这个软件产品就无法达到需求。瀑布模型只能在产品完成的时候才可以见到其真实。
快速原型模型
快速原型模型是不带反馈环的,这正是这种模型的优点:
1. 原型系统已经通过与用户交互得到验证,据此产生的规格说明文档正确地描述用户的需求,因此开发的时候无需多返工。
2. 开发人员通过建立系统已经学到了很多东西。减少以后在后续阶段所犯错误的可能性。
增量模型或者快速原型模型开发软件时,目标都是一次就把一个满足所有需求的产品提交给用户。增量模型则与之相反,它分批地逐步向用户提交产品,整改软件产品被分解成许多个增量构件,开发人员一个构件接一个构件地向用户提交产品。
螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险。且适用于内部开发的大规模的软件项目,对可选方案和约束条件的强调有利于已有软件的重用,也有把软件质量作为软件开发的一个重要目标。
敏捷过程
1. 个体和交互胜过过程和工具
2. 可以工作的软件胜过面面俱到的文档
3. 客户合作胜过合同谈判
4. 响应变化胜过遵循计划
软件开发总会有变化的,一个软件的变化更新,它的生命力也在延续,没有什么是一成不变的,一个软件既要反应现实又要符合客户需求,所有软件开发需要灵活变通。