A computer program implements a methodology, denoted probabilistic risk reduction, that is intended to aid in planning the development of complex software and/or hardware systems. This methodology integrates two complementary prior methodologies: (1) that of probabilistic risk assessment and (2) a risk-based planning methodology, implemented in a prior computer program known as Defect Detection and Prevention (DDP), in which multiple requirements and the beneficial effects of risk-mitigation actions are taken into account. The present methodology and the software are able to accommodate both process knowledge (notably of the efficacy of development practices) and product knowledge (notably of the logical structure of a system, the development of which one seeks to plan). Estimates of the costs and benefits of a planned development can be derived. Functional and non-functional aspects of software can be taken into account, and trades made among them. It becomes possible to optimize the planning process in the sense that it becomes possible to select the best suite of process steps and design choices to maximize the expectation of success while remaining within budget.
This program was written by Martin Feather, Steven Cornford, and Leila Meshkat of Caltech and James Kiper of Miami University for NASA’s Jet Propulsion Laboratory.
This software is available for commercial licensing. Please contact Don Hart of the California Institute of Technology at (818) 393- 3425. Refer to NPO-40226.
This Brief includes a Technical Support Package (TSP).

Software for Probabilistic Risk Reduction
(reference NPO-40226) is currently available for download from the TSP library.
Don't have an account?
Overview
The document is a Technical Support Package from NASA's Jet Propulsion Laboratory, focusing on Software for Probabilistic Risk Reduction (NPO-40226). It emphasizes the significance of probabilistic risk analysis (PRA) in system development, particularly for complex and safety-critical systems where traditional testing methods may be impractical due to high costs and risks.
PRA is a systematic approach that assesses the reliability of a system by analyzing its structure and the reliability of its individual components. This method provides an overall reliability assessment, confidence measures, and insights into the system's vulnerabilities, highlighting areas that require improvement. The document outlines a complementary approach to risk-based planning, which involves explicitly representing and reasoning about risk-reducing actions during the development process.
The integrated approach proposed in the document, termed "probabilistic risk reduction," combines traditional PRA with risk-based planning. This method is particularly beneficial during the planning stage of software development, a critical phase characterized by limited information and few formal artifacts, such as source code. Despite these challenges, the planning stage offers the greatest potential to influence the development trajectory.
The integrated approach accommodates both process knowledge (the effectiveness of development practices) and product knowledge (the logical structure of the system). It enables the derivation of estimates regarding the costs and benefits of a planned development, considering both functional and non-functional aspects of the software. This allows for informed decision-making and trade-offs among various development choices.
Furthermore, the document highlights the optimization of development processes, aiming to select the best combination of steps and design choices to maximize the likelihood of success while adhering to budget constraints. This optimization is crucial for ensuring that resources are effectively utilized and that the final product meets quality expectations.
In summary, the Technical Support Package provides a comprehensive overview of the methodologies and benefits of probabilistic risk reduction in software development, particularly in the context of aerospace applications. It serves as a valuable resource for understanding how to enhance system reliability and manage risks effectively during the development lifecycle.

