Sei sulla pagina 1di 8

LiTH

2007-01-16

RUT - Development Manual


1.8 Phased Development:
Incremental Model v 1.0en
Erik Axling

Abstract
This is a description of the incremental approach to develop software. Its a conceptual model that has been utilised and evolved into the more known Rational Unified
Process model or the Spiral Model that is frequently used today. This process description can be used to get an understanding for how incremental models work.

RUT - Development Manual 1.8 Phased Development: Incremental Model v 1.0en

Field of Application

1 Field of Application
Phased development in incremental steps is a development process of systems used in several areas and in particular for software development processes. Incremental steps can
be used to simplify the development of the software and help the customer to be more involved in the development process. There will be a functional albeit small system early
on in the development which can be improved and extended based on customer input.
Its important to know that the incremental model is more of a concept than an entire unique model. From this incremental approach to systems development the spiral model and
the Rational Unified Process has evolved.

2 Prerequisites
To be able to use an incremental or iterative model you need to have a problem that can
be divided into subproblems. Otherwise it can be hard to divide the software into increments. The customer must be prepared to be involved more in the development cycle of
the product.

3 Realization
There are different steps in the development process. There are steps that apply to the
overall system which also is the first steps that needs to be done. After those steps the incremental steps begin. These incremental steps all consists of the same steps.

3.1 Overview
The first important steps in the incremental approach is as usual to define the requirements of the product. These first requirements should be basic and not very detailed.
From these initial requirements increments are defined and the requirements are mapped
to an increment which suits those requirements.

Figure 1.

The Incremental delivery outline

The system architecture for the whole system is designed. After this the incremental development cycle begins and continues until the system is finished.

RUT - Development Manual 1.8 Phased Development: Incremental Model v 1.0en

Results

3.2 Detailed Description


A detailed description of each step in the process will be specified here.
Outline Requirements
The requirements for the whole system is specified in this step. Here it is important that
the requirements arent to detailed so that more detailed requirements for each increment
can be specified. In this step the customer can influence the requirements.
Mapping Requirements to Increments
In this step the requirements are mapped to each increment. The requirements need to be
identified and grouped together into one system increment. Each increment shouldnt be
too large but should at least contain some system functionality.
Design System Architecture
To be able to integrate the increments to a whole system the architecture of the system
needs to be designed before the increments are started to be developed. The architecture
needs to identify the interfaces between the increments and how they will be integrated.
Increment steps
The increment steps are very similar to the implementation steps in the waterfall model.
First the requirements for the increment is refined and is made more detailed. Then the
increment is developed, tested and integrated into the system. Then the system is tested.
While the increment is developed the requirements for the next increment can be refined
and changed. Its important though that the requirements for the increment being developed cannot be changed.
When the increment is finally developed, tested and integrated it can be released to the
customer. Meanwhile development will start on the next increment. When each increment has been developed its integrated with the previously developed increments. These
increments, or subsystems, will finally be integrated to make the whole system.

4 Results
4.1 Products
The product of this incremental development process will be a system fulfilling the requirements stated for the whole system. Its important to note that each increment is a
product itself. When an increment has been developed this can be shipped to the customer. The customer can then use and evaluate this product and influence the rest of the development based on the experience from the first product.

RUT - Development Manual 1.8 Phased Development: Incremental Model v 1.0en

Templates and Forms

Figure 2.

The phased development model

The system should be designed so that the first increments delivered provides very basic
functionality of the system. These increments can then be used to educate personnel early in the products life.

4.2 Product Templates


This heading is not applicable in the description of this process. This is because there doesnt exist any product templates in any literature for this process.

5 Templates and Forms


This heading is not applicable in the description of this process. This is because there doesnt exist any product templates in any literature for this process.

6 Verification of Results
The verification of these results is made exactly the same way sas in other models; you
test the product using an acceptance test to see if the product fulfills the requirements of
the product. The difference here is that you need to do an acceptance test for each of the
increments released, this is because each increment has separate requirements.
When each increment is integrated to the system it needs to go through integration testing and an acceptance test before being released. This creates alot of overhead in the testing process but also ensures a well tested system.
The customer has alot of influence in the development process with the incremental approach. The customer can very early on in the process give its input and experience of
the first basic subsystems and influence the development to get the product it desired
from the beginning. The incremental process enables real-time verification of the product by the customer.

RUT - Development Manual 1.8 Phased Development: Incremental Model v 1.0en

Examples with Explanations

7 Examples with Explanations


There are plenty of examples of the use of an incremental approach in systems developments. Among the first large projects documented using an incremental approach was
the development of the command and control system for the first US Trident submarine.
The system had a hard deadline and the developers would be fined $100,000 for each day
the project was late. The developers divided the project in four time boxed iterations of
six months each to be able to handle the complexity of the project. Alot of the time was
still put on the specification of each iteration. This was a succesful approach to handle
the projects complexity.
Another successful example of the use of an incremental approach was when the Command Center Processing and Display System Replacement (CCPDS-R) was built. This
was also an command and control system of major complexity. It was also divided into
six time-boxed iteration of half a year each. This approach used an incremental approach
that would become known as the Rational Unified Process, an incremental based model.

8 Solutions to Common Problems


The incremental approach makes large and complex problems easier to solve. Customers
dont have to wait long periods of time before the product can be evaluated and tested.
With the incremental approach the customer can influence the development earlier on
and avoid miscommunication and misinterpretation of requirements.
As the highest priority services are delivered first it is inevitable that these services are
tested the most and this ensures high overall quality of the product.
Training of personnel can begin early on the product as the first subsystems are completed. This can even be used by the developers to change functionality depending how the
product is used.

9 Adjustments to the PUM-course


Using an incremental model in the PUM-course would be quite hard as the PUM-course
needs certain documents being written which would exist in different versions in the incremental approach. It would otherwise be possible to divide the project into very small
increments that could take one week each to complete with documentation and implementation. This would require that the handing in of documents would be changed for
that group so that each increment would have their own design document and test document.

10 Measurement of the Process


10.1 Resource Measurement
This heading is not applicable in the description of this process. This is because the incremental approach is more of a concept than a model. There exists models based on the
incremental approach and these have their own resource measurements.

RUT - Development Manual 1.8 Phased Development: Incremental Model v 1.0en

History of the Process Description

10.2 Product Measurement


This heading is not applicable in the description of this process. This is because the incremental approach is more of a concept than a model. There exists models based on the
incremental approach and these have their own product measurements.

10.3 Forms for Collection of Measurement Data


This heading is not applicable in the description of this process.

11 History of the Process Description


Tabell 2:
Date

Version

Name

Commentary

2007-01-09

0.1

Erik Axling

Document created.

2007-01-16

1.0

Erik Axling

Revised the document.

12 Suggested Changes not Yet Attended to


The chapter about the prerequisites should be specified better. Add some more specific
conditions that is needed for a project to be able to use the incremental approach.
Add more specific information into the realization chapter and show how the Rational
Unified Process model and the Spiral Model can be evolved from the incremental approach. Try to make it more evident that this is an description of a conceptual process
and that in practise there exists models built on this concept that is frequently used.
Tyr to find some information on how to evaluate an incremental approach and put this in
chapter six.

13 References
13.1 Method Description
Sommerville, Ian (xxxx), Sofware Engineering 8, 8th edition, Frlag, ISBN
Atlee, Joanne M., Pfleeger, Shari L. (2006), Software Engineering -Theory and Practise,
3rd edition, Pearson Prentice Hall, ISBN 0-13-198461
Basili, Victor R., Larman Craig, (2003), Iterative and Incremental Development - A Brief
History, http://www2.umassd.edu/SWPI/xp/articles/r6047.pdf, 2007-01-10.

RUT - Development Manual 1.8 Phased Development: Incremental Model v 1.0en

References

Brooks, Frederick P. (1986), NoSilver Bullet: Essence and Accidents of Software Engineering, www.lips.utexas.edu/ee382c-15005/Readings/Readings1/05-Broo87.pdf , 200701-10.
Basili, Victor R., Turner, Albert J. (1975), Iterative Enhancement: A Practical Technique
for Software Development, IEEE Trans. Software Eng. pp 390-396.

13.2 Method Evaluation


This heading is not applicable in the description of this process as no references of these
could be found.

13.3 Internal Comments


Its important to realise that although this is a model its more a concept that other models have been evolved from. It is hard to find good references or detailed descriptions
on how the incremental approach works. These can be found in the rational unified process model or spiral model.

RUT - Development Manual 1.8 Phased Development: Incremental Model v 1.0en

References

RUT - Development Manual 1.8 Phased Development: Incremental Model v 1.0en

Potrebbero piacerti anche