Page 41 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 41
Unit 2: Software Processes and Models
Each time box is divided into a sequence of stages, like in the waterfall model. Each stage Notes
performs some clearly defined task of the iteration and produces a clearly defined output. The
output from one stage is the only input from this stage to the next stage. Furthermore, the model
requires that the duration of each stage, that is, the time it takes to complete the task of that
stage, is approximately the same.
There is a dedicated team for each stage. That is, the team for a stage performs only tasks of
that stage tasks for other stages are performed by their respective teams. This is quite different
from many other models where the implicit assumption is that the same team (by and large)
performs all the different tasks of the project or the iteration.
As pipelining is to be employed, the stages must be carefully chosen. Each stage performs some
logical activity which may be communication intensive – that is, the team performing the task
of that stage needs to communicate and meet regularly. However, the stage should be such that
its output is all that is needed from this stage by the team performing the task of the next stage.
In other words, the output should be such that it can be passed to the team for next stage, and
the team needs to communicate minimally with the previous stage team for performing their
task. Note that it does not mean that the team for a stage cannot seek clarifications with teams
of earlier stages – all it means is that the communication needs between teams of different stages
are so low that their communication has no significant effect on the work of any of the teams.
2.6.2 Pipelined Execution
With fixed duration for implementation of iteration, the model renders itself to pipelining. Each
iteration can be viewed like one instruction whose implementation is divided into a succession
of fixed duration stages, a stage being executed after the conclusion of the preceding stage. In
general, let us consider a time box with duration T and consisting of n stages – S1, S2, Sn. As
stated, each stage Si is executed by a dedicated team (similar to having dedicated hardware
for executing a stage in an instruction). Let the size of the team dedicated for stage Si is RI
representing the number of resources assigned to this stage.
The team of each stage has T/n time available to finish their task for a time box, that is, the
duration of each stage is T/n. When the team of a stage it completes the tasks for that stage
for a time box k, it then passes the output of the time box to the team executing the stage i+1,
and then starts executing its stage for the next time box k + 1. Using the output given by the
team for Si, the team for S starts its activity for this time box. By the time the first time box
i+1
is nearing completion, there are n – 1 different time boxes in different stages of execution. And
though the first output comes after time T, each subsequent delivery happens after T/n time
interval, delivering software that has been developed in time T.
As an example, consider a time box consisting of three stages: requirement specification, build,
and deployment. The requirement stage is executed by its team of analysts and ends with a
prioritized list of requirements to be built in this iteration. The requirements document is the
main input for the build team, which develops the code for implementing these requirements,
and performs the testing. The tested code is then handed over to the deployment team, which
performs pre-deployment tests, and then installs the system for production use.
These three stages are such that in a typical short-cycle development, they can be of equal
duration (though the effort consumed is not the same, as the manpower deployed in the different
stages is different.) Also, as the boundary between these stages is somewhat soft (e.g. high level
design can be made a part of the first stage or the second), the duration of the different stages
can be made approximately equal by suitably distributing the activities that lie at the boundary
of two adjacent stages.
With a time box of three stages, the project proceeds as follows. When the requirement team has
finished requirements for timebox-1, the requirements are given to the build-team for building
LOVELY PROFESSIONAL UNIVERSITY 35