- 浏览: 1302467 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (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 2009redmine - 软件项目的催化剂 曾经有这样 ... -
职场管理中的蝴蝶效应-离职的蝴蝶效应,修改版
2012-03-19 23:28 3084终于把自己的机器内存升级到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 1393今天在部门进行时间 ... -
我的时间管理类培训PPT
2012-01-10 15:23 1631主要内容: 养成习惯,每天早 ... -
对于单表数据超过1亿的数据查询时候,必须默认时间段查询条件
2011-12-21 16:40 3222项目基本情况 最近系统碰到一个非常头疼的问题,数据库采 ... -
程序员们该如何避免十年后成为Loser
2011-11-07 13:25 17151、自己的户口档 ... -
需求在项目不同角色之间的区别
2011-11-04 09:20 1076有没有同感??? -
软件生命周期模型-边做边改模型
2011-10-13 08:30 11401、什么是边做边改模型 当一个软件产品在没有规格说明 ... -
软件工程:生命周期模型介绍CHM下载
2011-10-12 07:38 12982.2.1 瀑布模型 2.2.2 V模型 2.2.3 ... -
[疑问]下属翅膀硬了就跳槽,咋办?
2011-08-25 09:56 5076问题: 作为一个部 ... -
大型网站架构演变和知识体系
2011-08-15 14:30 1136之前也有一些介绍大型网站架构演变的文章,例如LiveJourn ... -
CMMI复审评估总结
2011-08-15 10:02 3996本次从6月份开始评 ... -
开源协议的解释 MPL\MIT \Apache Licene 2.0 \LGPL \GPL \BSD
2011-08-03 13:58 41121、 MPL MPL是The Mozilla Pu ... -
基于Java的验证框架:talent-validate1.5发布
2011-07-26 09:34 2533因为公司项目的特殊情况,都是管钱的,不能有丝毫的差错,所 ... -
您公司的测试开发人员比例是多少?合理吗?看看微软、google是多少
2011-07-25 15:56 4314有个学者做个这方面的调查——Tester to D ... -
验证(Verification)与确认(Validation)的区别
2011-07-19 17:07 11245最近参加CMMI培训,发现有2个过程域,还是头疼验证(Veri ...
相关推荐
帮助广大教师提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化. 1.3 项目提出的意义 现在我国的大中专院校的学生成绩管理水平普遍不高,有的还停留在纸介质基础上,这种管理手段已不能适应...
本文重点介绍迭代和增量开发 (IID) 模型,并论证其在分析和设计软件系统中的作用。 本文采用定性研究方法,以职业生涯信息系统 (VCIS) 作为案例研究,在系统分析和设计的背景下证明和利用 IID 的相关性。 该论文将 ...
瀑布模型(生命周期法,是生命周期法中最常用的开发模型),它将开发的过程分成软件计划、需求分析、软件设计、程序编码、软件测试和运行维护6个阶段,规定了它们自上而下,适用于大型软件开发过程。 变换模型(演化...
螺旋模型适合于大型软件的开发,它吸收了软件工程“演化”的概念,包括需求定义、风险分析、工程实现及用户评估四个阶段,螺旋模型由上述四个阶段组成的迭代模型,迭代的结果必须尽快收敛到客户允许的或可接受的目标...
软件测试过程管理实践介绍[3]软件...在一个构件化ERP项目中,由于前期需求不明确,开发周期相对较长,为了对项目进行更好的跟踪和管理,项目采用增量和迭代模型进行开发。整个项目开发共分三个阶段完成:第一阶段实现
Scrum采取增量迭代方式,抛弃了“瀑布”开发的传统阶段,以获得可以快速地吸纳反馈、优先开发一部分高价值特性的能力。图1:传统的“瀑布”开发依赖于在最开始就能够完美地理解需求,并且在执行每个阶段时都只产生...
Iterator [java] 迭代器, 迭代程序 legal 合法的 ['li:gәl] log n.日志,记录 [lɒg] native (关键字) ?? ['neitiv] nested [java] 嵌套的 ['nestid] '如:内部类(nested classes) Object [java] 对象 ['ɒbdʒ...
“喷泉”一词用于形象地表达面向对象软件开发过程中的迭代和无缝过渡。 7.组件复用模型 组件复用方法是最近几年发展起来的先进的软件复用技术,在基于组件复用的软件开发中,软件由组件装配而成,这就如同用标准...
Rational公司的RUP发展而来的一套软件工程方法,是目前最有效的...突出特点:用例驱动、架构优先、迭代和增量过程 四个阶段:初始、细化、构造、移交 强调开发过程 五个核心工作流:需求捕获、分析、设计、实现、测试
在计划阶段,团队和客户共同定 义构建和部署的内容以及构建的方式和时机/在开发阶段,团队构建并测试解决方案,具体包括代码、基础构架和文档等交付成果。/在稳定阶段,对功能齐全的解决方案进行最后的测试,使其...
Rational公司的RUP发展而来的一套软件工程方法,是...突出特点:用例驱动、架构优先、迭代和增量过程 四个阶段:初始、细化、构造、移交 强调开发过程 五个核心工作流:需求捕获、分析、设计、实现、测试 RUP统一过程
强调开发的阶段性早期计划及需求调查和产品测试。缺点:1、用户不确定需求2、开发人员不确定3、开发人员用户很难沟通适用对象:以文档为驱动,适合于软件需求很明确的软件项目。融合了瀑布模型的基本成分和原型实现...
算法的基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。 (3)算法的3种基本控制结构 算法的3种基本控制结构是:顺序结构、选择结构、循环结构。 (4)算法基本设计方法 算法基本设计方法:列举法、...
SAPPE-POSCOMP和Enade证据环境模拟器 该计划的初衷是创建一种... 系统的开发过程基于迭代和增量模型,该模型将软件产品的开发分为多个周期,在每个周期中,可以确定产品的分析,设计,实施和测试的各个阶段。 该项目
设计开发的 B.软件项目组制造的 C.程序员编写代码实现的 D.项目经理组织实施的 2. 软件工程是一种层次化的技术,支持软件工程的根基在于 ( ) A.软件工程过程模型 B.软件生命周期模型 C.质量关注点 D...
在开发代码的同时,如果你花费时间和精力来开发一个性能故障排错的方法。那么你就能避免这种情况——至少可以快速而有效地做出反应。《SQL Server 2008查询性能优化》指出的性能要点之一是数据库随着用户和数据的日...
在开发代码的同时,如果你花费时间和精力来开发一个性能故障排错的方法。那么你就能避免这种情况——至少可以快速而有效地做出反应。《SQL Server 2008查询性能优化》指出的性能要点之一是数据库随着用户和数据的日...
是一种迭代式增量式敏捷软件开发框架,用于管理产品开发。 它通过鼓励所有团队成员在物理上共处一地或密切在线协作,以及项目中所有团队成员和学科之间的日常面对面交流,使团队能够自我组织。 看板 看板(日语的...