Iterative and incremental development

Special

In incremental improvement of the final state in the rule is not clear. The project grows organically.

Incremental Process Model in software development

Iterative and Incremental development is a cyclic software development process, which is now being used successfully in other project areas. The term " iterative development " is most often used with reference to the combined approach.

Definition of Incremental and Iterative

Incremental development is a strategy for scheduling and process planning in which to develop the different parts of the system at different times and at different speeds and integrated immediately in the overall system. The counterpart is a simultaneous, so-called big-bang integration of all subsystems to complete the project.

Iterative development is a strategy for revising planning, which provides time for ongoing revision and improvement of parts of the system. It sets an incremental development does not require, but it fits very good to her. One difference is that the result of an incremental action step is not necessarily subject to further revision, yet results are from testing and user reactions as the default for subsequent steps. The result of an iteration on the other hand is examined for necessary changes, especially with regard to updating the objectives of subsequent iterations.

The basic idea behind iterative revision is to gradually develop such a software system that the project team is able to use experience from previous development steps immediately. Experience obtained specifically both during development as well as from the use of the already completed part of the system.

The essential steps in the process are

  • To begin with a simple and expandable implementation of a defined subset of the known at the time system requirements.
  • Expand the evolving versions until the full implementation of the system gradually with increasing knowledge of the sensible system requirements
  • Adapt the design at each iteration - which is to distinguish here between iterations to implement new functions and iterations to improve the system architecture ( refactoring )

The procedure itself consists of an initialization step, an iteration step, and the project list control.

  • The initialization step creates a base version of the system with the goal to create a product that can respond to the user. It should cover a sample of essential aspects of the problem and offer a solution that can be easily understood and implemented.
  • For the control of the iteration process a project control list is performed in any known pending tasks are recorded. It includes items such as the implementation of new features and the redesign of existing system components. The control list is constantly revised based on the results of the analysis phase.
  • Each iteration involves the reaction of an item or a defined group of items from the project control list and analysis of the current version of the system. In the implementation of each iteration is the goal simplicity, clarity and modularity, whether directly or as items on the control list. The analysis of an iteration based on user feedback and program analysis techniques. It examines the structure, modularity, usability, reliability, effectiveness and achievement of objectives. Based on the results of the project control list is adjusted.

Phases - Guidelines for Scheduling

To understand the diagram, it is very important to take into account that the phase breakdown must be considered informal. Parts of the system are immediately integrated in the overall system ( deployment, each iteration instead ). The transition phase ( Transition) transferred the system definitively into productive use. The angled arrow represents the sequential processing of the steps and shows that architects and analysts in relation to the developers always work one step ahead.

Iterative development divides the business value, so the system functionality into iterations. At each iteration, a section of the system functionality is completed by interdisciplinary work - starting with the design / requirements to testing and commissioning. The unified process groups the iterations into phases: introduction, elaboration, construction and transition. These phases are informally to look at.

  • The initiation phase determined project framework, risk factors and ( functional and non-functional ) requirements at a low but sufficient depth to allow a rough estimate of the work involved.
  • The elaboration phase provides a functional architecture that mitigates the highest risk factors and meets the non-functional requirements.
  • The construction phase fills the architecture gradually with produktionsreifem code that is produced by the analysis, design, implementation and verification of functional requirements.
  • The transition phase transferred to the system finally in production use.

Each of these stages may be contained in one or more iterations, and usually not more temporally separated by the reaction of functional features. Architects and analysts always work in relation to the developers one step ahead.

An iterative process model for incremental improvement is described by the Procedure for spiral model.

412863
de