Page 33 - DCAP405_SOFTWARE_ENGINEERING
P. 33
Software Engineering
Notes same as the process used for project B, and the process is such, that following the process the
second time will produce similar results as the first time. That is, this assumes that the process is
predictable. If it was not predictable, then there is no guarantee that doing a similar project the
second time using the process will incur a similar cost.
It should be clear that if we want to use past experience to control costs and ensure quality, we
must use a process that is predictable. With low predictability, the experience gained through
projects is of little value. A predictable process is also said to be under statistical control.
A process is under statistical control if following the same process produces similar results.
The crux of this is that we should attempt to detect errors that occur in a phase during that phase
itself and should not wait until testing to detect errors. This is not often practiced. In reality,
sometimes testing is the only stage where errors are detected. Besides the cost factor, reliance on
testing as the primary source for error detection, due to the limitations of testing, will also result
in unreliable software. Error detection and correction should be a continuous process that is
done throughout software development. In terms of the development phases, this means that
we should try to verify the output of each phase before starting with the next.
Detecting errors soon after they have been introduced is clearly an objective that should be
supported by the process. However, even better is to provide support for defect prevention. It is
generally agreed that all the defect removal methods that exist today are limited in their capability
and cannot detect all the defects that are introduced. Furthermore, the cost of defect removal is
generally high, particularly if they are not detected for a long time. Clearly, then, to reduce the
total number of residual defects that exist in a system at the time of delivery and to reduce the
cost of defect removal, an obvious approach is to prevent defects from getting introduced. This
requires that the process of performing the activities should be such that fewer defects are
introduced. The method, generally, followed to support defect prevention is to use the
development process to learn so that the methods of performing activities can be improved.
Figure 2.3: Cost of Correcting Errors
100
50
Relative Cost to Fix Error 10
2 5
Requirement Development Acceptance Operation
Design Test Test
Phase in which error was detected
2.2.3 Process Improvement
Process is also not a static entity; it means one has to regularly improve the process according to
the need. Improving the quality and reducing the cost of products are fundamental goals of any
engineering discipline.
26 LOVELY PROFESSIONAL UNIVERSITY