- 浏览: 1332315 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (404)
- ToDoList (24)
- 项目管理 (39)
- REDMINE (1)
- Oracle (32)
- 杂文 (21)
- 管理 (19)
- Java (6)
- 全文搜索 (1)
- 编程语言排名 (4)
- 人力资源 (5)
- SVN (1)
- CMMI (2)
- VER (1)
- VAL (1)
- 其他 (8)
- OceanBase (1)
- IT PRO (2)
- KVM (1)
- Access (1)
- Drupal (3)
- mysql (4)
- 理财 (1)
- 读书笔记 (6)
- 个人总结 (16)
- 我的推荐 (13)
- REDMINE培训材料 (0)
- 随笔 (10)
- AIX (1)
- 管理故事 (12)
- 工具推荐 (6)
- 系统架构 (5)
- 免费活动 (3)
- 名词解释 (3)
- Apache (5)
- mongrel (4)
- redmine插件 (0)
- 知识管理 (4)
- REDMINE第三方应用 (5)
- redmine问题 (0)
- NOSQL (1)
- UML (1)
- SQLite (1)
- use case,UML (1)
- nginx (5)
- 规划 (1)
- 系统思考 (1)
- resin (2)
- android (43)
- android代码 (10)
- HTML5 (1)
- 移动开发 (4)
- android问题 (3)
- DB2 (4)
- http (1)
- LBS (1)
- IT职业规划 (11)
- 微信 (1)
- 就业 (1)
- google (2)
- 微信开发 (2)
- js (1)
- Anroid (1)
- Service Worker (1)
- weblogic (2)
- 测试 (1)
- weblogi (1)
- vue (4)
- jeeplus (1)
- ureport (1)
最新评论
-
Caelebs:
上海交大?ms工作六年?感觉好屌啊我厂一堆10K 20K 98 ...
IT人为什么难以拿到高薪? -
小桔子:
如果加入listView 在滑动的时候偶尔会空指针异常,加入P ...
Android组件推荐-侧滑效果DragLayout -
wangyonglin1123:
小公司是锻炼人的 不管是业务技术都会有突飞猛进的进度 进步 ...
程序员在大公司工作好?还是在小公司工作?我的经历和建议[ZT] -
wangyonglin1123:
必须有所专长 技术和业务都需要 你必须在一个行业够牛逼
程序员的出路之一,拥有一技之长、打造自己的精品、更广阔的市场【ZT】 -
luhuajcdd:
这个不错
StarUML 不能在64位的windows7下运行,提示错误的解决方案
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)的图形用户界面,另外一个发布可集中于改进系统性能。
发表评论
-
MongoDB创始人:项目经理应该把30%的时间用在编程上
2014-05-16 06:57 0本文的作者Eliot Horowitz是MongoDB的 ... -
redmine - 软件项目的催化剂
2012-05-17 17:21 2055redmine - 软件项目的催化剂 曾经有这样 ... -
职场管理中的蝴蝶效应-离职的蝴蝶效应,修改版
2012-03-19 23:28 3180终于把自己的机器内存升级到5G了,安装好64位WI ... -
Redmine 插件的整合-TestLink,mylyn,tortoiseSVN
2012-02-04 10:00 2252Redmine是一个灵活的开源项目管理工具, 它可以 ... -
Redmine 项目管理系统说明文档-ezwork同方数字城市软件技术公司
2012-02-04 09:42 1123简介 ̈Redmine是一个灵活的项目管理系统, ... -
如何避免项目管理黑洞-如何使用redmine
2012-02-01 16:50 3851项目中如下情景,是否似曾相识? 项目中的管 ... -
时间管理培训总结
2012-01-11 09:05 1439今天在部门进行时间 ... -
我的时间管理类培训PPT
2012-01-10 15:23 1712主要内容: 养成习惯,每天早 ... -
对于单表数据超过1亿的数据查询时候,必须默认时间段查询条件
2011-12-21 16:40 3269项目基本情况 最近系统碰到一个非常头疼的问题,数据库采 ... -
程序员们该如何避免十年后成为Loser
2011-11-07 13:25 17521、自己的户口档 ... -
需求在项目不同角色之间的区别
2011-11-04 09:20 1123有没有同感??? -
软件生命周期模型-边做边改模型
2011-10-13 08:30 11851、什么是边做边改模型 当一个软件产品在没有规格说明 ... -
软件工程:生命周期模型介绍CHM下载
2011-10-12 07:38 13942.2.1 瀑布模型 2.2.2 V模型 2.2.3 ... -
[疑问]下属翅膀硬了就跳槽,咋办?
2011-08-25 09:56 5204问题: 作为一个部 ... -
大型网站架构演变和知识体系
2011-08-15 14:30 1186之前也有一些介绍大型网站架构演变的文章,例如LiveJourn ... -
CMMI复审评估总结
2011-08-15 10:02 4076本次从6月份开始评 ... -
开源协议的解释 MPL\MIT \Apache Licene 2.0 \LGPL \GPL \BSD
2011-08-03 13:58 42371、 MPL MPL是The Mozilla Pu ... -
基于Java的验证框架:talent-validate1.5发布
2011-07-26 09:34 2584因为公司项目的特殊情况,都是管钱的,不能有丝毫的差错,所 ... -
您公司的测试开发人员比例是多少?合理吗?看看微软、google是多少
2011-07-25 15:56 4388有个学者做个这方面的调查——Tester to D ... -
验证(Verification)与确认(Validation)的区别
2011-07-19 17:07 11378最近参加CMMI培训,发现有2个过程域,还是头疼验证(Veri ...
相关推荐
这种模型适用于需求不明确或需求频繁变化的项目,也适用于大型项目的分阶段开发。 迭代与增量开发模型的具体步骤包括: 1. 将需求分解成多个功能模块 2. 确定项目需求并分解开发基本功能 3. 第一轮迭代/增量开发 4...
- **区别于增量开发**:增量开发关注于产品的阶段性交付,而迭代开发则侧重于产品的逐步完善。 - **优势**:能够快速获取用户反馈并据此调整产品方向,从而更好地满足用户需求。 #### 第三章:增量与迭代开发的实践...
- **未来趋势**:随着云计算、大数据等新技术的发展,迭代与增量开发将继续演进,更加注重自动化、智能化以及用户体验的提升。 - **实践建议**:鼓励团队培养敏捷思维,加强跨部门沟通协作,持续学习最新的开发技术...
12. **实用流程**:提供标准化和优化的开发流程模板。 #### 结语 迭代化软件开发项目管理不仅是一种技术手段,更是一种组织文化和思维方式的转变。它要求团队具备高度的灵活性、协作能力和对变化的快速响应能力。...
迭代是软件工程中的一种开发模型,它将软件开发过程分解成多个小的迭代周期,每个迭代周期都包括需求分析、设计、编码、测试和维护等阶段。迭代的目的是为了让软件开发过程更加灵活和有序。 1. 迭代的发展 迭代...
迭代化开发的核心思想是将整个项目标开发目标划分成为部分更易于完成和达成阶段性小目标,每个迭代都是为了完成一定阶段性目标而所从事的一系列开发活动。 在迭代化开发中,我们可以逐步集成元素,尽早降低风险,...
在迭代化开发方法中,我们将整个项目的开发目标划分成为一些更易于完成和达到的阶段性小目标,这些小目标都有一个定义明确的阶段性评估标准。迭代就是为了完成一定的阶段性目标而所从事的一系列开发活动,在每个迭代...
### 软件工程中的迭代与增量开发策略 #### 第一章:软件工程与迭代开发策略 **软件工程概述** 软件工程是一门旨在系统化、规范化地应用工程原理和技术于软件开发、运行与维护的学科。它侧重于通过管理与控制软件...
在IT行业中,迭代是一种常见的开发方法,特别是在软件工程和项目管理中。迭代总结是对一个或多个迭代周期(通常称为Sprint)的回顾和分析,旨在评估团队的表现、产品的进展以及改进的机会。以下是对"迭代总结.docx...
敏捷开发是一种以迭代、增量方式进行软件开发的方法论,强调在项目进行过程中及时响应客户需求变化。 **敏捷开发的原则:** - **重视个体之间的交流与合作:** 强调人的作用大于工具流程。 - **可工作的软件胜过...
迭代化开发通过将大目标分解为小目标,使得软件开发变得更加灵活、可控,能够更好地应对需求变化和技术挑战。它强调在开发过程中不断学习、反馈和改进,以提高项目的成功率和最终产品的质量。通过这种方式,开发者...
迭代开发是一种增量式的开发方法,它将整个项目分为多个小的、可管理的阶段,即迭代。每个迭代都会产生一个可以运行的软件版本,这些版本在功能上逐渐完善,直至达到最终产品。这种方法鼓励频繁的反馈和调整,有助于...
4. **编码**:开发人员根据设计文档开始编写代码,遵循编程最佳实践,例如代码复用、模块化和注释,以提高代码质量。 5. **测试**:每个迭代都包含单元测试、集成测试和系统测试,确保新功能的正确性和稳定性。自动...
总结而言,芯片敏捷开发实践强调以更灵活、更快速的方式响应市场变化,而标签化RISC-V则是利用开源指令集架构的灵活性,通过模块化和定制化的手段来实现芯片设计的敏捷化。两者结合,可以大大提升芯片设计的效率和...
书中倡导敏捷开发方法,强调灵活应对变化,通过迭代和增量式开发来降低风险。 5. **持续学习与适应**:软件开发是一个快速发展的领域,开发者需要不断学习新的技术和工具,适应行业变化。企业应建立学习型组织,...
- **敏捷开发**则强调迭代和增量开发,允许在整个开发周期内不断调整需求和技术方案,更加适合需求不明确或容易发生变化的项目。 **敏捷开发的核心理念:** - **客户参与**:持续与客户沟通,确保产品的每一次迭代...
1. **Scrum**:一种以迭代和增量方式进行的项目管理框架,强调团队自我组织,通过Sprint(短期迭代)来实现快速反馈和调整。 2. **Kanban**:基于看板系统,注重工作流程可视化,通过限制在制品(WIP)数量,促进...
- **迭代和增量开发**:通过多次迭代,逐步完善和增强软件功能。 RUP的生命周期包含四个阶段: - **初始阶段**:确定项目范围,识别关键用例,初步构建系统架构,评估风险。 - **细化阶段**:细化需求和架构,规划...
- **开发迭代**:开发人员根据计划进行编码,同时进行持续集成和自动化测试。 - **评审会议**:展示迭代成果,收集反馈,准备下一个迭代的计划。 - **回顾会议**:反思整个迭代过程,总结经验教训,持续优化流程...
1. **迭代和增量开发**:RUP提倡通过一系列迭代周期进行软件开发,每个迭代都包含需求分析、设计、实现、测试和部署等阶段。每次迭代都会产生一个可运行的软件版本,从而确保了项目的进度可见性和风险控制。 2. **...