4. Software ReuseSoftware systems are often designed using existing components from other systems. It is recognized that reusing existing software components can help achieve the resulting system more quickly and at a lower cost. However, for software components to be truly reusable, reusability needs to be part of the planned initial development of those components. With the focus on software reuse increasing, projects need to plan for future reuse of developed software by specifying requirements that facilitate software reuse in the future. These requirements enhance the benefits of reuse and address the known pitfalls of reuse where that is possible. These requirements, which should be captured as early in the life cycle as possible, address development processes as well as project technical requirements and are captured in project documentation such as the software development/management plan for processes, project coding standards, and the requirements document or repository for technical requirements. The software reuse-related requirements are included as a part of the normal software requirements review process and verification & validation process. Reusing software can have many benefits for the Agency, including, but not limited to, cost savings. For this reason, software project managers consider future reuse of software components created for their projects and make those selected components available to future projects through an Agency repository. When evaluating software for potential reuse, remember to consider single components as well as entire software products. 4.1 Related NPR 7150.2 SWEs3.10 Software Reuse SWE-147 - Specify Reusability Requirements SWE-148 - Contribute to Agency Software Catalog 4.2 Related Topics and Process Assets
|