`

迭代开发介绍

阅读更多
给你一个标准的定义:
在RUP中,迭代被定义为:迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。

这个定义太学究气,半天看不明白。这样解释可能更容易理解:
我们开发一个产品,如果不太复杂,会采用瀑布模型,简单的说就是先需求定义,然后构建框架,然后写代码,然后测试,最后发布一个产品。
这样,几个月过去了,直到最后一天发布时,大家才能见到一个产品。

这样的方式有明显的缺点,假如我们对用户的需求判断的不是很准确时——这是很常见的问题,一点也不少见——你工作了几个月甚至是几年,当你把产品拿给客户看时,客户往往会大吃一惊,这就是我要的东西吗?

迭代的方式就有所不同,假如这个产品要求6个月交货,我在第一个月就会拿出一个产品来,当然,这个产品会很不完善,会有很多功能还没有添加进去,bug很多,还不稳定,但客户看了以后,会提出更详细的修改意见,这样,你就知道自己距离客户的需求有多远,我回家以后,再花一个月,在上个月所作的需求分析、框架设计、代码、测试等等的基础上,进一步改进,又拿出一个更完善的产品来,给客户看,让他们提意见。
就这样,我的产品在功能上、质量上都能够逐渐逼近客户的要求,不会出现我花了大量心血后,直到最后发布之时才发现根本不是客户要的东西。

这样的方法很不错,但他也有自己的缺陷,那就是周期长、成本很高。在应付大项目、高风险项目——就比如是航天飞机的控制系统时,迭代的成本比项目失败的风险成本低得多,用这种方式明显有优势。
如果你是给自己的单位开发一个小MIS,自己也比较清楚需求,工期上也不过花上个把月的时间,用迭代就有点杀鸡用了牛刀,那还是瀑布模型更管用,即使是做得不对,顶多再花一个月重来,没什么了不起
分享到:
评论

相关推荐

    软件迭代开发流程.doc

    本文将详细介绍软件迭代开发流程的各个阶段和相关知识点。 一、项目引入 在软件迭代开发流程的初始阶段,需要进行项目引入,包括项目调研、可行性分析和形成用户需求文档。项目经理和软件项目经理是该阶段的核心...

    软件工程敏捷迭代开发

    敏捷迭代开发,关于敏捷开发的详细介绍~~~ 软件工程的经典哦~~~

    基于SpringBoot+FreeMarker+MyBatis的通用后台管理系统源码(界面美观,适合快速迭代开发).zip

    基于SpringBoot+FreeMarker+MyBatis的通用后台管理系统源码(界面美观,适合快速迭代开发).zip基于SpringBoot+FreeMarker+MyBatis的通用后台管理系统源码(界面美观,适合快速迭代开发).zip基于SpringBoot+...

    码云仓库创建,迭代开发方法.txt

    本文主要介绍了码云仓库的创建过程、Git的基本配置与常用命令以及迭代开发中的分支管理方法。通过这些知识点的学习,开发者可以更高效地利用码云等代码托管平台进行项目开发与管理。同时,熟练掌握Git的基本操作对于...

    软件构造迭代开发三个版本

    以下将详细介绍在Java环境下,软件构造迭代开发的三个主要版本。 第一版本:基础架构搭建 在迭代开发的第一阶段,重点是构建软件的基础架构。这一阶段主要包括设计系统架构,选择合适的框架,以及创建基本的模块和...

    设计模式介绍与迭代

    2. **开闭原则**:设计模式遵循“对扩展开放,对修改关闭”的原则,这在迭代开发中尤为关键,因为需求可能会不断变化。 3. **单一职责原则**:每个类或模块应有且仅有一个职责。这有助于保持代码模块化,方便在迭代...

    软件工程实践中的敏捷开发与迭代开发模式1.pptx

    ### 软件工程实践中的敏捷开发与迭代开发模式 #### 第1章 软件工程实践与敏捷开发 **软件工程与敏捷开发简介** - **软件工程**:旨在研究和应用有效管理软件开发项目的科学。它涉及软件设计、开发、测试、维护等...

    软件工程实践中的敏捷开发与迭代开发模式3.pptx

    ### 软件工程实践中的敏捷开发与迭代开发模式 #### 第1章:软件工程实践与敏捷开发 **软件工程概述:** 软件工程是一门综合性的学科,它结合了计算机科学、项目管理学等多个领域的知识,旨在提高软件开发的质量与...

    项目实例讨论-一个构架重构项目的迭代实践(全)

    本文将详细介绍一个具体的架构重构项目的迭代实践过程,包括项目的背景、迭代开发模式的应用、迭代计划制定以及迭代总结等方面。 #### 二、软件项目的风险及应对策略 **1. 风险分析** - **不确定性**: 在软件项目...

    一种简单实用的迭代化开发方法

    本文的目的是介绍一种可实践操作的迭代化开发方法,这种开发方法描述了如何以一种简单实用的方法来进行迭代化开发。通过采用本文所描述的迭代化开发的这种方法,能够降低项目组引入迭代化开发的难度和复杂度,从而尽...

    ANSYS二次开发 牛顿迭代

    本文将详细介绍在ANSYS二次开发中利用牛顿迭代法进行求解的过程,重点关注Usermat的应用。 #### 牛顿迭代法的基本原理 牛顿迭代法是一种高效的数值方法,用于寻找非线性方程的根。其基本思想是从初始猜测值出发,...

    迭代算法

    在迭代算法的开发过程中,编写测试用例是非常关键的,它可以帮助我们发现潜在的逻辑错误和性能问题。 总的来说,迭代算法在各种编程任务中都有应用,无论是在基本的数据处理,还是在复杂的问题求解中,它都扮演着至...

    matlab开发-迭代关闭点方法

    为了实现这一目标,研究人员和工程师们开发了多种算法,其中迭代关闭点方法(Iterative Closest Point,ICP)因其高效和鲁棒性而广受欢迎。本文将详细介绍ICP算法在MATLAB环境下的实现,并探讨如何通过使用相关文件...

    C#学习笔记整理-迭代器模式介绍

    迭代器模式是一种设计模式,它在软件开发中用于顺序访问聚合对象(如列表、集合等)的元素,而无需暴露其内部结构。这种模式允许在不同的聚合对象间使用相同的遍历逻辑,增强了代码的可复用性和灵活性。 在C#中,...

    数据结构 模板与迭代器

    本文介绍了C++中模板和迭代器的基本概念及其应用。模板为程序员提供了一种编写通用代码的方法,而迭代器则为遍历容器提供了一种高效且类型安全的方式。结合使用这两种技术,可以帮助我们编写出既强大又灵活的程序。...

    迭代器,生成器

    通过本文的介绍,我们了解了迭代器和生成器在Python中的作用及其基本用法。这两种工具对于处理大量数据非常有用,能够帮助我们编写更加高效、简洁的代码。无论是初学者还是经验丰富的开发者,都应该熟悉并掌握它们的...

    设计模式之迭代器模式

    通过以上介绍,我们可以看到迭代器模式在处理集合数据时的强大之处,它提供了一种灵活且通用的方式来遍历聚合对象,使得代码更具可读性和可维护性。在实际开发中,合理运用迭代器模式可以显著提升程序的设计质量。

Global site tag (gtag.js) - Google Analytics