Iterative(迭代) and Waterfall(瀑布) Processes

One of the biggest debates about process is that between waterfall and iterative styles.

The essential difference between the two is how you break up a project into smaller chunks.

If you have a project that you think will take a year, few people are comfortable telling the

team to go away for a year and to come back when done .

Some breakdown is needed so that people can approach the problem and
track progress.

The waterfall style breaks down a project based an activity.

To build Software, you have to do certain activities :

* requirements analysis

* design

* coding

* testing

eg: 1-year project might thus have a structure like below:

2-month analysis phase

4-month design phase

3-month coding phase

3-month testing phase

The iterative style breaks down a project by subsets of functionality.

You might take a year and break it into 3-month iterations .

eg: In the first iteration, you'd take a quarter of the requirements and do the complete software life cycle,
for that quarter : analysis, design, code, and test .

At the end of the first iteration, you'd have a system that does a quarter of the needed functionality .

Then you'd do a second iteration so that at the end of 6 months, you'd have a system that
does half the functionality.

Agile Processes

In the past few years, there's been a lot of interest in agile software processes .
Agile is an umbrella term that covers many processes that share a common set of
values and principles as defined by the Manifesto of Agile Software Development
examples of these processes are Extreme Programming(XP), Scrum, Feature Driven Development (FDD),

Crystal, and DSDM(Dynamic Systems Development Method).

Agile approaches assume that the most important factor in a project's success is the quality of the
people and how well they work together in human terms .

Which process they use and which tools they use are strictly second-order effects.

Agile methods tend to use short, time-boxed iterations, most often of a month
or less(2 weeks).

Agile processes are often characterized as lightweight.

Rational Unified Process(RUP)

The Rational Unified Process (RUP) is independent of the UML, the
two are often talked about together.

All RUP projects should follow four phases:

1 . Inception makes an initial evaluation of a project . Typically in inception,
you decide whether to commit enough funds to do an elaboration phase .

2. Elaboration identifies the primary use cases of the project and builds software
in iterations in order to shake out the architecture of the system . At

the end of elaboration, you should have a good sense of the requirements
and a skeletal working System that acts as the seed of development . In particular,
you should have found and resolved the major risks to the project .

3 . Construction continues the building process, developing enough functionality
to release .

4. Transition includes various late-stage activities that you don't do iteratively.
These may include deployment into the data center, user training, and the
like .

UML Distilled - Development Process的更多相关文章

  1. 软件开发流程 Software development process

    软件开发流程(Software development process)即软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法.软件的总体结构设计和模块设计.编程和调试.程序联调和测试以 ...

  2. Software development process

    一.Development process 1.Business/User Requirement 2.Architecture Proposal,Solution Proposal 3.Functi ...

  3. <<Linux kernel development>> Process Management

    The Process On modern operating systems,processes provide two virtualizations:a virtualized processo ...

  4. UML和UP简介(转载)

    UML(统一建模语言,Unified Modeling Language)是用于系统的可视化建模语言.  UP(统一过程,Unified Process)是通用的软件开发过程. 很多人或书籍过大的夸大 ...

  5. 《UML和模式应用》读书笔记(一)

    一.绪论 1. 面向对象分析和设计 1.1 什么是分析和设计 分析(analysis)强调的是对问题和需求的调查研究,而不是解决方案. 设计(design)强调的是满足需求的概念上的解决方案,而不是其 ...

  6. UML学习笔记_01_基本概念

    1.什么是UML Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发 ...

  7. UML学习笔记—基本概念和初始阶段

    chpater1 1.什么是分析和设计 分析:对问题和需求的调查研究 设计:满足需求的概念上的解决方案 做正确的事(分析)和正确地做事(设计) 2.什么是Object-Oriented-Analysi ...

  8. 转:深入浅出UML类图(具体到代码层次)

    深入浅出UML类图 作者:刘伟 ,发布于:2012-11-23,来源:CSDN   在UML 2.0的13种图形中,类图是使用频率最高的UML图之一.Martin Fowler在其著作<UML ...

  9. 深入浅出UML类图(一)

    在UML 2.0的13种图形中,类图是使用频率最高的UML图之一.Martin Fowler在其著作<UML Distilled: A Brief Guide to the Standard O ...

随机推荐

  1. HDU 1247 Hat’s Words

    Hat’s Words Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  2. HDU 3853-loop(概率dp入门)

    题意: r*c个方格,从(1,1)开始在每个方格可释放魔法(消耗能量2)以知,释放魔法后可能在原地.可能到达相邻的下面格子或右面格子,给出三者的概率 求要到达(R,C)格子,要消耗能量的期望值. 分析 ...

  3. acdream 1056 (黑白染色)

    题意:给你一些关系,每个关系是两只马的名字,表示这两个马不能在一个分组里,问你能否将这些马分成两组. 黑白染色,相邻的点染不同颜色.bfs搞即可,水题. /* * this code is made ...

  4. 树-哈夫曼树(Huffman Tree)

    概述 哈夫曼树:树的带权路径长度达到最小. 构造规则 1. 将w1.w2.-,wn看成是有n 棵树的森林(每棵树仅有一个结点): 2. 在森林中选出根结点的权值最小的两棵树进行合并,作为一棵新树的左. ...

  5. bzoj 1408 [Noi2002]Robot(欧拉函数)

    [题目链接]  http://www.lydsy.com/JudgeOnline/problem.php?id=1408 [题意] 求m的所有约数中,满足可以分解成(奇数个不同素数/偶数个不同素数/其 ...

  6. bzoj 3997 [TJOI2015]组合数学(DP)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3997 [题意] 给定一个nm的长方形,每次只能使经过格子权值减1,每次只能向右向下,问 ...

  7. git 记录

    在官网有详细的教程http://git-scm.com/book/zh/%E8%B5%B7%E6%AD%A5 查看分支和日志的两个工具:gitk 和 tig ,两个都有 --all 参数,可以查看所有 ...

  8. Java每日一则-001

    Java中类名与文件名的关系 1.Java保存的文件名必须与类名一致: 2.如果文件中只有一个类,文件名必须与类名一致: 3.一个Java文件中只能有一个public类: 4.如果文件中不止一个类,文 ...

  9. Language Basics:语言基础

    Java包含多种变量类型:Instance Variables (Non-Static Fields)(实例变量):是每个对象特有的,可以用来区分各个实例Class Variables (Static ...

  10. GraphChi介绍

    GraphChi介绍 最近在研究graphchi,它是一个在单机上处理图的一个很强大的框架. 给大家一些链接可以学习它: 论文:http://select.cs.cmu.edu/publication ...