Fault Prevention

Fault Prevention

Fault prevention includes iterative refinement of the system requirements and engineering software specifications with modeling, verifiable design techniques, and best-of-breed coding practices. Prevention occurs during the product development phases of a project where the requirements, design, and implementation are occurring. At this point in the product development the project team has finished exploring and initially planning, and the team is now executing. Fault prevention is an active part of the development process, not a mere passive recording effort. The first section of fault prevention is system exploration and requirements, as described previously. The initial steps are required for analysis of the reliability requirements and objectives no matter which approach is taken for reliability.

The second major piece of fault prevention approach is design and implementation. Focusing on design and implementation first causes the project team to allocate reliability among components. "Analysis and Design Methods" discusses several methods for allocation of quality attributes to components. The design process is where the components to be built are identified. Techniques of reducing coupling and increasing cohesion within and between modules are ways to increase reliability of components. Best practices in design, whether structured or object-oriented, must be adopted to have any hope of building reliable software products.

During the early phases of the softwa2re development life cycle, reliability objectives focus on prevention. Table 1 shows the subprocesses of the major front-end life cycle phases that support prevention.

Fault Prevention Life Cycle Activities

The reliability objectives that were previously set and documented in the reliability plan must be engineered into the modules during design. Engineering, like quality, can neither be tested in, nor added on. The project manager must focus resources based on the functional profile. During the system exploration and the justification for using costly reliability methods, a functional profile of the system under development was completed. This profile needs to be used and validated during the design process.

The only way to actively prevent faults is through the management of fault introduction and propagation. Reviews and inspections are the traditional way of actively reducing errors generated in one phase from escaping as defects into the next phase. Another critical activity is to measure the reliability of acquired software. As more Internet-based tools are used and shared libraries are made accessible, software of uncertain pedigree (SOUP) begins to become part of the product. The project team needs a process for verifying, validating, accepting, and measuring the reliability of SOUP components. This must be a formal process with the same level of tracking and configuration present for built-from-scratch software product components. Software reuse provides dramatic increases in developer productivity. It also can be a minefield of defects and hidden problems.


product development, fault prevention, life cycle
The contents available on this website are copyrighted by TechPlus unless otherwise indicated. All rights are reserved by TechPlus, and content may not be reproduced, published, or transferred in any form or by any means, except with the prior written permission of TechPlus.
Copyright 2017 SPMInfoBlog.
Designed by TechPlus