UML Distilled - Development Process
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 .