Table of Contents

Topics (on this page)

Gantt ChartTo top of page

This illustration shows how the first elaboration iteration of a small project might be planned. The lengths of the bars in the chart (indicating duration) have no absolute significance. There is also no intention to suggest the application of a uniform level of effort across the duration of the workflows. You can navigate to the corresponding task description from each line of the chart - just click on the task name.

Note that although this is a plan for a single iteration, not all Requirements and Analysis and Design work performed during this iteration is intended for Implementation and Test in this iteration. This explains why the relative effort, within an iteration, for Requirements, Analysis and Design, Implementation and Test, changes through the lifecycle. However, the Iteration Plan will dictate what requirements are explored and refined and what components are designed, even if they are intended for Implementation and Test in a later iteration.

At the start of the elaboration phase, the Inception Phase has been completed and the project has been funded. An initial Artifact: Software Development Plan exists, along with preliminary Artifact: Iteration Plans for at least the Elaboration Phase. The requirements of the system, captured by the Artifact: Use-Case Model and Artifact: Supplementary Specifications, have been briefly outlined.

Task DescriptionsTo top of page

Project Management:  
Managing/Monitoring

This represents ongoing project management activities, including the following workflow details:

On this small project, the Project Manager is also the Test Manager, so this task also includes:

The principal output artifacts are:

Next Iteration Planning

This includes workflow details:

The principal output artifacts are:

  • Iteration Plan - updated based on what new functionality is to be added during the new iteration, factoring in the current level of product maturity, lessons learned from the previous iterations, and any risks that need to be mitigated in the upcoming iteration)
  • Software Development Plan - all subplans updated as required to reflect changes in scope and risk. The Risk List in particular must be revisited if there are significant remaining risks
  • Test Plan - updated to reflect the mission for the next iteration's testing.

The results of status assessments and iteration assessments should be considered in determining if any changes to process and tools are necessary.

Requirements  

Prototype the User Interface

This includes the Activity: Prototype the User Interface.

The main output artifact is User-Interface Prototype.

Manage Changing Requirements

Requirements discovery and refinement continues in elaboration.

The relevant workflow detail is: Manage Changing Requirements.

Refine the System Definition

  • Requirements Set 1
  • Requirements Set 2
  • and so on

This includes the workflow detail Refine the System Definition (except for user-interface related activities, which are a separate task).

The main output artifacts are:

The effort to define requirements is divided into smaller tasks with shorter durations (around 1 week is typical). These are represented in the example plan as "Requirements Set 1", "Requirements Set 2", and so on. Tasks are typically organized around use cases or scenarios, with other tasks to detail supplemental requirements or investigate specific issues or risks.

Architectural Definition  
Define a Candidate Architecture

This include the workflow detail Define a Candidate Architecture.

Structure the Implementation Model

This includes the workflow detail Structure the Implementation Model.

Refine the Architecture

This includes the workflow detail Refine the Architecture.

Development Support  

Integration and Test Support

Maintaining the build environment, selecting and running regression tests on builds, is an ongoing task.

The relevant workflow details are:

Defect Fixing Fixing defects in previously developed code is an ongoing task. The relevant workflow details are the same as for the "Develop Components/Features" tasks.

Develop Components/Features

  • Component/Feature 1
  • Component/Feature 2
  • and so on
Many tasks are organized around a feature, use case, or scenario being implemented. Thus one task will often include the following workflow details:

Other tasks may design and implement components that then support multiple features, use cases, or scenarios.

Large tasks (more than a couple of weeks) may be divided into subtasks of incremental functionality. Other large tasks may be subdivided by the principal activity being performed. For example, into:

  • Design - may include some prototyping
  • Implement - includes (in this small project) all unit testing
  • Integrate and Test - including fixing bugs found in the new code during integration. (Bugs in existing code are covered by the Defect Fixing task).

Configuration Management tasks (workflow details: Change and Deliver Configuration Items and Manage Change Requests) are folded into the above tasks. Administrative and environment support tasks have been omitted for simplification.

Result

The result of this initial iteration would be a first cut at the architecture, consisting of fairly described architectural views (use-case view, logical view, process view, deployment view, implementation view) and an executable architecture prototype.

Subsequent Iterations In Elaboration

Subsequent iterations can be initiated to further enhance the understanding of the architecture. This might imply a further enhancement of the design or implementation model (that is, the realization of more use cases, in priority order, of course). Whether this needs to take place depends on considerations such as the complexity of the system and its architecture, associated risks, and domain experience.

In each iteration the supporting environment is further refined. If the first Elaboration iteration  focused on preparing the environment for Analysis & Design, and Implementation, then the second iteration may focus on preparing the test environment. Preparing the test environment includes configuring the test process, and writing that part of the development case, preparing templates and guidelines for test and setting up the test tools.



Rational Unified Process   2003.06.13