Page 294 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 294

Principles of Software Engineering



                   Notes         In reality, all of these tracking techniques are used by experienced project managers. Control is
                                 employed by a software project manager to administer project resources, cope with problems,
                                 and direct project staff. If things are going well (i.e., the project is on schedule and within budget,
                                 reviews indicate that real progress is being made and milestones are being reached), control is
                                 light. But when problems occur, the project manager must exercise control to reconcile them
                                 as quickly as possible. After a problem has been diagnosed, 10 additional resources may be
                                 focused on the problem area: staff may be redeployed or the project schedule can be redefined.
                                 When faced with severe deadline pressure, experienced project managers sometimes use a project
                                 scheduling and control technique called time-boxing. The time-boxing strategy recognizes that the
                                 complete product may not be deliverable by the predefined deadline. Therefore, an incremental
                                 software paradigm is chosen and a schedule is derived for each incremental delivery.
                                 The tasks associated with each increment are then time-boxed. This means that the schedule for
                                 each task is adjusted by working backward from the delivery date for the increment. A “box”
                                 is put around each task. When a task hits the boundary of its time box (plus or minus 10%),
                                 work stops and the next task begins. The initial reaction to the time-boxing approach is often
                                 negative: “If the work is not finished, how can we proceed?” The answer lies in the way work
                                 is accomplished.

                                 14.5.2 Error Tracking
                                 Throughout the software process,  a project team creates work foodstuffs  (e.g., requirements
                                 specifications  or  prototype,  design  documents,  source  code).  But  the  team  also  creates  (and
                                 hopefully corrects) errors associated with each work product. If error related measures and
                                 resultant metrics are collected over many software projects, a project manager can use these
                                 data as a baseline for comparison against error data collected in real time. Error tracking can
                                 be used as one means for assessing the status of a current project.
                                 The concept of defect removal efficiency was discussed. To review briefly, the software team
                                 performs formal technical reviews (and, later, testing) to find and correct errors, E, in work
                                 products produced during software engineering tasks. Any errors that are not uncovered (but
                                 found in later tasks) are considered to be defects, D. Defect removal efficiency has been defined as
                                                    DRE = E/(E + D)

                                 The DRE is a process metric that provides a strong indication of the effectiveness of quality
                                 assurance activities, but DRE and the error and defect counts associated with it can also be
                                 used to assist a project manager in determining the progress that is being made as a software
                                 project moves through its scheduled work tasks. Let us assume that a software organization
                                 has collected error and defect data over the past 24 months and has developed averages for
                                 the following metrics:

                                    •  Errors per requirements specification page, Ereq
                                    •  Errors per component—design level, Edesign
                                    •  Errors per component—code level, Ecode

                                    •  DRE—requirements analysis
                                    •  DRE—architectural design
                                    •  DRE—component level design

                                    •  DRE—coding.
                                 As the project progresses through each software engineering step, the software team records
                                 and reports the number of errors found during requirements, design, and code reviews. The


        288                               LOVELY PROFESSIONAL UNIVERSITY
   289   290   291   292   293   294   295   296   297   298   299