ABSTRACT

This chapter examines reuse by discussing previously developed software and commercial off-theshelf software. Software reuse is an important subject because the majority of software projects, at least in the aviation world, are derivatives of existing systems. It is also important to discuss software reuse because there have been some rather well-publicized consequences of unsuccessful software reuse. Software reuse was not the sole reason for the Therac-25 problem, but it was a significant contributing factor. As software becomes more complex and more widely used, the concerns of software reuse in safety-critical systems also increase. A successful reuse effort requires planning and careful design decisions. Designing for reuse normally increases the initial development time and cost, but the return on investment is recovered when the component is reused without significant rework. Reuse can be a viable option; however, it must be evaluated and implemented with caution.