In order to reduce time-to-market and development costs, families of safety-critical software systems are increasingly developed as product lines. Examples include the software in medical devices, airplanes, assistive robots, and self-driving vehicles. Product lines provide structured reuse of a wide range of software artifacts including requirements, architecture, design, code, and test cases. For safety-critical product lines, a safety case must be constructed for each product to provide evidence that it is safe for use. Constructing these safety cases is time-consuming and slows industries? time-to-market of new products. This project develops a solution for product lines that partially automates the construction of a product?s safety case from existing software artifacts and that guides the developer through the needed safety analysis and refinement steps. The goal of the project is to reduce the cost and effort of developing a safety case while leveraging product-line reuse to increase the quality and safety of delivered products.
The ability to reuse variability-aware safety assets can transform the way manufacturers of safety-critical product lines analyze the safety of their products and construct safety cases. Solutions are evaluated on real-world product lines with industrial collaborators. The underlying traceability techniques and tools, developed under this grant, will benefit a broad set of software-intensive systems by addressing the ongoing problems of trace link evolution and safe reuse. The project cross-trains students in traceability, software safety and product lines, and produces training materials to encourage transition to practice of the solutions developed.