`
jiaoronggui
  • 浏览: 1332315 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
B7c2eb31-a8ea-3973-a517-d00141f39b89
项目管理软件-redmin...
浏览量:116559
4a63e153-250f-30f6-a051-97cfc67cb3d3
IT职业规划
浏览量:199549
社区版块
存档分类
最新评论

阶段化开发:增量和迭代

阅读更多

2.2.6  阶段化开发:增量和迭代

在早期的软件开发中,客户愿意为软件系统的最后完成等待很长时间。有时,从编写需求文档到系统交付使用会经过若干年,称为循环周期(cycle time)。但是,今天的商业环境不会再容许长时间的拖延。软件使产品在市场上引人注目,而客户总是期待着更好的质量和新的功能。例如,1996年,惠普公司80%的收入来自过去两年开发的产品,因而,他们开发了新的过程模型来帮助缩短循环周期。

一种缩短循环周期的方法是使用阶段化开发,如图2-8所示。使用这种方法设计系统时使其能够一部分一部分地交付,从而在系统其余部分正在开发的同时,用户已经获得了一部分功能。因此,通常会有两个系统在并行运行:产品系统和开发系统。运行系统(operational system)或产品系统(production system)是当前正在被客户和用户使用的系统,而开发系统(development system)是准备用来替换现行产品系统的下一个版本。通常,用它们的发布代号表示一个系统:开发人员构建发布1,进行测试,然后把它交给用户作为第一个可运行的发布。然后,当用户使用发布1的时候,开发人员正在构建发布2。从而,开发人员总是在开发发布n+1,而与此同时发布n总是正在运行的。



 
 

开发人员可以用多种方法决定如何将开发组织为发布。增量开发(incremental development)和迭代开发(iterative development)是两种最常用的方法。在增量开发中,需求文档中指定的系统按功能划分为子系统。定义发布时首先定义一个小的功能子系统,然后在每一个新的发布中增加新功能。图2-9的上半部分显示了增量开发是如何在每一个新的发布中逐步增加功能直到构造全部功能的。



 
  

而迭代开发是在一开始就提交一个完整的系统,然后在每一个新的发布中改变每个子系统的功能。图2-9的下半部分说明一个迭代开发的3个发布。

为了理解增量开发和迭代开发之间的区别,我们来看一个用于文字处理的软件包。假设这个软件包要具有3种类型的功能:创建文本、组织文本(即剪切和粘贴)以及格式化文本(例如使用不同的字体大小和类型等)。要使用增量开发模型构建这样一个系统,我们可能在发布1中仅提供创建功能,然后在发布2中提供创建和组织功能,最后在发布3中提供创建、组织和格式化功能。但是,使用迭代开发方法时,我们要在发布1中提供简单的3种类型的功能。例如:可以创建文本,然后剪切并粘贴文本,但是剪切和粘贴功能可能不够灵活快捷。在下一次迭代(即发布2)中,提供相同的功能,但是系统的功能增强了:剪切和粘贴功能变得方便和快捷。每一个发布都在前一个发布的基础上进行了某些改进。

实际上,许多组织都将迭代开发和增量开发方法结合起来使用。一个新的发布版本可能包含新的功能,并且对已有功能做了改进。这种形式的阶段化开发方法是人们想要的,原因如下。

(1) 即使还缺少某些功能,但在早期的发布中就可开始进行培训。培训过程可以使开发人员观察某些功能是如何执行的,并为后面的发布提供了改进的建议。这样,开发人员能够很好地对用户的反馈做出反应。

(2) 可以及早为那些以前从未提供的功能开拓市场。

(3) 当运行系统出现未预料到的问题时,经常性的发布可以使开发人员能全面、快速地修复这些问题。

(4) 针对不同的发布版本,开发团队将重点放在不同的专业领域技术上。例如,一个发布可以利用用户界面专家的专业知识将系统从命令驱动的界面改为指向-点击式(point-and-click)的图形用户界面,另外一个发布可集中于改进系统性能。

  • 大小: 76.3 KB
  • 大小: 55.7 KB
0
2
分享到:
评论

相关推荐

    软件工程中的迭代与增量开发模型.pptx

    这种模型适用于需求不明确或需求频繁变化的项目,也适用于大型项目的分阶段开发。 迭代与增量开发模型的具体步骤包括: 1. 将需求分解成多个功能模块 2. 确定项目需求并分解开发基本功能 3. 第一轮迭代/增量开发 4...

    软件工程中的迭代与增量开发.pptx

    - **区别于增量开发**:增量开发关注于产品的阶段性交付,而迭代开发则侧重于产品的逐步完善。 - **优势**:能够快速获取用户反馈并据此调整产品方向,从而更好地满足用户需求。 #### 第三章:增量与迭代开发的实践...

    迭代与增量开发实践技巧.pptx

    - **未来趋势**:随着云计算、大数据等新技术的发展,迭代与增量开发将继续演进,更加注重自动化、智能化以及用户体验的提升。 - **实践建议**:鼓励团队培养敏捷思维,加强跨部门沟通协作,持续学习最新的开发技术...

    管理迭代化的软件开发项目

    12. **实用流程**:提供标准化和优化的开发流程模板。 #### 结语 迭代化软件开发项目管理不仅是一种技术手段,更是一种组织文化和思维方式的转变。它要求团队具备高度的灵活性、协作能力和对变化的快速响应能力。...

    轮软件工程中的迭代与增量

    迭代是软件工程中的一种开发模型,它将软件开发过程分解成多个小的迭代周期,每个迭代周期都包括需求分析、设计、编码、测试和维护等阶段。迭代的目的是为了让软件开发过程更加灵活和有序。 1. 迭代的发展 迭代...

    迭代软件开发作业流程.doc

    迭代化开发的核心思想是将整个项目标开发目标划分成为部分更易于完成和达成阶段性小目标,每个迭代都是为了完成一定阶段性目标而所从事的一系列开发活动。 在迭代化开发中,我们可以逐步集成元素,尽早降低风险,...

    迭代软件开发流程.doc

    在迭代化开发方法中,我们将整个项目的开发目标划分成为一些更易于完成和达到的阶段性小目标,这些小目标都有一个定义明确的阶段性评估标准。迭代就是为了完成一定的阶段性目标而所从事的一系列开发活动,在每个迭代...

    软件工程中的迭代与增量开发策略.pptx

    ### 软件工程中的迭代与增量开发策略 #### 第一章:软件工程与迭代开发策略 **软件工程概述** 软件工程是一门旨在系统化、规范化地应用工程原理和技术于软件开发、运行与维护的学科。它侧重于通过管理与控制软件...

    迭代总结.docx

    在IT行业中,迭代是一种常见的开发方法,特别是在软件工程和项目管理中。迭代总结是对一个或多个迭代周期(通常称为Sprint)的回顾和分析,旨在评估团队的表现、产品的进展以及改进的机会。以下是对"迭代总结.docx...

    软件工程与软件迭代开发方法.pptx

    敏捷开发是一种以迭代、增量方式进行软件开发的方法论,强调在项目进行过程中及时响应客户需求变化。 **敏捷开发的原则:** - **重视个体之间的交流与合作:** 强调人的作用大于工具流程。 - **可工作的软件胜过...

    软件开发流程与原则详解

    迭代化开发通过将大目标分解为小目标,使得软件开发变得更加灵活、可控,能够更好地应对需求变化和技术挑战。它强调在开发过程中不断学习、反馈和改进,以提高项目的成功率和最终产品的质量。通过这种方式,开发者...

    1DV404_HT14_E4_4_JS223KZ:实验 4 迭代软件开发

    迭代开发是一种增量式的开发方法,它将整个项目分为多个小的、可管理的阶段,即迭代。每个迭代都会产生一个可以运行的软件版本,这些版本在功能上逐渐完善,直至达到最终产品。这种方法鼓励频繁的反馈和调整,有助于...

    迭代

    4. **编码**:开发人员根据设计文档开始编写代码,遵循编程最佳实践,例如代码复用、模块化和注释,以提高代码质量。 5. **测试**:每个迭代都包含单元测试、集成测试和系统测试,确保新功能的正确性和稳定性。自动...

    芯片敏捷开发实践:标签化RISC-V.pdf

    总结而言,芯片敏捷开发实践强调以更灵活、更快速的方式响应市场变化,而标签化RISC-V则是利用开源指令集架构的灵活性,通过模块化和定制化的手段来实现芯片设计的敏捷化。两者结合,可以大大提升芯片设计的效率和...

    人件集:人性化的软件开发_11199176

    书中倡导敏捷开发方法,强调灵活应对变化,通过迭代和增量式开发来降低风险。 5. **持续学习与适应**:软件开发是一个快速发展的领域,开发者需要不断学习新的技术和工具,适应行业变化。企业应建立学习型组织,...

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

    - **敏捷开发**则强调迭代和增量开发,允许在整个开发周期内不断调整需求和技术方案,更加适合需求不明确或容易发生变化的项目。 **敏捷开发的核心理念:** - **客户参与**:持续与客户沟通,确保产品的每一次迭代...

    敏捷软件开发:原则、模式与实践_0.rar

    1. **Scrum**:一种以迭代和增量方式进行的项目管理框架,强调团队自我组织,通过Sprint(短期迭代)来实现快速反馈和调整。 2. **Kanban**:基于看板系统,注重工作流程可视化,通过限制在制品(WIP)数量,促进...

    RUP 开发过程实例 ,UML 建模。

    - **迭代和增量开发**:通过多次迭代,逐步完善和增强软件功能。 RUP的生命周期包含四个阶段: - **初始阶段**:确定项目范围,识别关键用例,初步构建系统架构,评估风险。 - **细化阶段**:细化需求和架构,规划...

    某敏捷开发框架专业版7.0.rar

    - **开发迭代**:开发人员根据计划进行编码,同时进行持续集成和自动化测试。 - **评审会议**:展示迭代成果,收集反馈,准备下一个迭代的计划。 - **回顾会议**:反思整个迭代过程,总结经验教训,持续优化流程...

    便捷开发:RUP的中文模板

    1. **迭代和增量开发**:RUP提倡通过一系列迭代周期进行软件开发,每个迭代都包含需求分析、设计、实现、测试和部署等阶段。每次迭代都会产生一个可运行的软件版本,从而确保了项目的进度可见性和风险控制。 2. **...

Global site tag (gtag.js) - Google Analytics