Risk analysis of systems such as cars or aircraft is important to prevent injuries or death. One relatively new technique is System-Theoretic Process Analysis (STPA), which focuses on unsafe interactions between system components. In order to identify such unsafe control actions, a context table is created based on the process model variables of the controller.
Example of a context table:
The "Hazardous?"-columns are filled out with so called "Rules". The STPA VS Code Extension offers a DSL in which an analysis can be done textually including the defintion of such Rules and the context table is generated automatically. The problem is that the table can get very large with increasing variable numbers. That is where logical simplification should help. Its goal is to merge rows where the value of one or more variables can be set to "ANY" because the "Hazardous"-columns are equal. Applying logical simplification to the example leads to the following:
The goal of this thesis is to find ways to determine which rows of a given context table can be merged and compare the complexity.
Find ways to determine which rows of a given context table can be merged
Compare the complexity of the approaches in regard to time and memory
Optional: implement the best approach
Master's Thesis
J. P. Thomas, Extending and automating a systems-theoretic hazard analysis for requirements generation and analysis. Diss, Massachusetts Institute of Technology, 2013. (https://dspace.mit.edu/bitstream/handle/1721.1/81055/857791969-MIT.pdf?sequence=2&isAllowed=y)
Chapter 3.3, 5.2
E. J. McCluskey, Minimization of Boolean functions. The Bell System Technical Journal, 1956. (https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6769983)
TypeScript (https://www.typescriptlang.org/)
VS Code API (https://code.visualstudio.com/api/references/vscode-api)
Jette Petzold
jep@informatik.uni-kiel.de