瀑布模型:瀑布模型是唯一被广泛采用的生命周期模型,同时也是软件工程中应用得最广泛的过程模型,具有顺序性和依赖性,它在编码之前设置了系统分析与系统设计的各个阶段,分析与设计阶段的基本任务规定,瀑布模型开发软件的重要思想是清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现。瀑布模型是一种线性的开发模式,具有不可回溯性。
敏捷过程:为了使软件开发团队具有高效工作和快速响应变化的能力,提出了敏捷软件开发。敏捷软件开发的特点是以客户作为开发团队的成员,使用用户素材,短交付周期,验收测试,结对编程,测试驱动开发,集体所有,持续集成,可持续的开发速度,开放的工作空及时调整计划,简单的设计,重构,使用隐晦,具有变化和不确定性。
瀑布模型是文档驱动的,用户通过文档很难了解产品和全面正确地认识动态的软件产品,同时瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。而敏捷开发是根据客户设定的优先级制定交付计划,之后开始多个迭代过程,在迭代期内产生的新用户故事不在本次迭代内解决,以保证本次开发过程不受干扰,开发出的新版本软件通过验收测试之后交付用户使用。