也就是在需求分析阶段产出一个原因,就好像一个 demo
,让用户看看是否符合预期,防止成本浪费
瀑布模型是基础的开发模型,主要分为3个阶段。
这种开发方法的优缺点很明显,它适用于那些需求明确的项目,对于不明确的项目很难适应,会造成过多的成本浪费,实际现在很多企业在基于瀑布模型的定义阶段增加原型来解决需求变更问题
他的主要目标是一次就把一个满足所有需求的产品提交给用户
他是一种测试贯穿始终的模型,测试什么的尽早做、提前做,是以测试为驱动的开发模型。开发和测试同样重要,边写测试用例一边写代码和直接写代码区别太大了,这点深有体会,在编写测试用例的情况下,你的代码需要保持可测试,便于测试的状态,会进行合适的拆解,直接编码如果经验不够丰富的话很容易代码混乱。
中心思想在于:研发人员和测试人员需要同时工作,在软件做需求分析的同时就会有测试用例的跟踪,这样可以尽快找出程序错误和需求偏离,从而更高效的提高程序质量,最大可能的减少成本,同时满足用户的实际软件需求。
在瀑布模型的基础上、增加原型,避免最终开发出来的产品与客户预期不一致,语言沟通不如给他们一个看得见的东西,经过原型的一番操作,客户基本就知道你们开发的东西到底能不能对上我的需求了
螺旋模型图:
这种适合大型的项目开发,将大项目拆解成多个小项目,并使用原型及其他方法来尽量降低风险。理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的 快速原型模型 螺旋模型的主要优势在于: 它是风险驱动的,但是,这也可能是它的一个弱点。除非软件开发人员具有丰富的风险评估经验和这方面专门的知识,否则将出现真正的风险;当项目实际正在走向灾难时,开发人员可能还认为一切正常。
增量模型融合了瀑布模型
的基本成分(重复应用)和原型实现
的迭代特征,把整个软件产品分解成许多个增量构件,分批地逐步向用户提交产品
他与螺旋模型
的差异在于:增量模型的每个增量分布都是一个可操作的产品
敏捷核心关键词:快速交付,持续重构
演进的需求和方案
小步快跑
。它是一种迭代和增量的软件交付方式,其目标是在最短实践交付最大价值的软件。
这个是比较常见的敏捷开发方法,也被各种平台所支持,应用广泛。主要就行将开发内容就行任务分解(scrum里面称任务为 冲刺),然后用短的时间完成这个冲刺,再进行下一个冲刺,如此循环往复完成一个项目
核心在于:构建库的建立
如果项目中模块化程度比较高,或者已有稳定的构建库,我们可以采用这种开发方法。他的特点:快、成本低、可靠性高。
但实际上在没有构建库的情况下,他的优点都会往另一个方向走,开发效率低,成本高等,而现在开源社区的发展帮助我们也能体验到基于构建的开发方法,也就是我们常说的面向 github
编程
中心思想:用例驱动、以架构为中心、迭代和增量 分为4个阶段:初始 -> 细化 -> 构建 -> 交付