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
   28   29   30   31   32   33   34   35   36   37   38