近学习了软件研发的相关知识,包括软件研发的几种方式,有瀑布模型,迭代式研发,敏捷式研发,那么他们分别都是什么呢?又有什么区别呢?下面我来说说自己的理解和看法。
瀑布模型式是典型的预见性的方法,严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。
要求每一各研发阶段都要做到好后,才会去研发下各阶段,这样它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂,用这种模式研发软件所需的时间也是比较长的。瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。瀑布式开发是一种老旧的计算机软件开发方法。
迭代式研发是每次只设计和实现这个产品的一部分,逐步逐步完成的方法叫迭代开发,每次设计和实现一个阶段叫做一个迭代。在迭代式开发方法中,整个开发工作被组织为一系列的短小的、固定长度的小项目,被称为一系列的迭代。每一次迭代都包括了需求分析、设计、实现与测试。采用这种方法,开发工作可以在需求被完整地确定之前启动,并在一次迭代中完成系统的一部分功能或业务逻辑的开发工作。再通过客户的反馈来细化需求,并开始新一轮的迭代。迭代开发是一种与传统的瀑布式开发的软件开发过程,它弥补了传统开发方式中的一些弱点,具有更高的成功率和生产率。迭代是开发有很多的有点,比如能降低风险,得到早起的用户反馈,能够持续的测试和集成等。
敏捷软件研发发又称敏捷研发,作为一个整体工作,按短迭代周期工作,每次迭代交付一些成果,相比迭代模式两者都强调较短的周期提交软件,敏捷模式周期更短,并且强调队伍的高度协作。
瀑布模式,迭代模式,敏捷模式三者有什么区别呢,从技术特点上说,瀑布模式简单,分阶段,阶段间存在因果关系,不支持用户参与,要求预先确定需求;迭代模式不要求一次性开发出完整的软件系统,能得到早期的用户反馈;敏捷模式支持用户参与,能够适应用户需求的变化。从使用范围上比较,瀑布模式需求易于完善定义且不易变更的软件系统;迭代模式适用于需求难以确定不断变更的软件系统;敏捷模式适用于需求复杂难以确定,动态变化的软件系统。
以上就软件研发方式,瀑布模式,迭代模式,敏捷模式这三种模式的区别