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