diff --git a/symptom_ex_process/symptom_ex_process.tex b/symptom_ex_process/symptom_ex_process.tex index 8c6c68a..f06521e 100644 --- a/symptom_ex_process/symptom_ex_process.tex +++ b/symptom_ex_process/symptom_ex_process.tex @@ -500,6 +500,11 @@ verification checks in the process can be stated formally. \clearpage \subsection{Algorithmic Description of Symptom Abstraction \\ Determine Failure Modes to examine} + +The first stage is to find the failure modes to consider for +analysis. +Let $FG$ be the set of components in the functional group under analysis, and $c$ +be components that are members of it. %% %% Algorithm 1 %% @@ -515,9 +520,9 @@ verification checks in the process can be stated formally. %\STATE Determine functional groups $fg_n \subset S$ of components, where n is an index number and the number of functional groups found. \STATE { Let $FG$ be a set of components } \COMMENT{ The functional group should be chosen to be minimally sized collections of components that perform a specific function} -\STATE { Let $C$ represent a component} +\STATE { Let $c$ represent a component} -\ENSURE{ Each component $C \in FG $ has a known set of failure modes i.e. $FM(C) \neq \emptyset$ } +\ENSURE{ Each component $c \in FG $ has a known set of failure modes i.e. $ \forall c \in FG | FM(c) \neq \emptyset$ } \STATE {let $F=FM(FG)$ be a set of all failure modes to consider for the functional~group $FG$} @@ -537,6 +542,13 @@ in the analysis stages. \clearpage \subsection{Algorithmic Description of Symptom Abstraction \\ Determine Test Cases} + +From the failure modes associated with the functional~group +we now need to determine test cases. +The test cases are collections of failure modes. +These could be formed from single failure modes or failure modes in combination. +Let $TC$ be the set of test cases associated withthe functional group $FG$. + %% %% Algorithm 2 %% @@ -556,18 +568,7 @@ in the analysis stages. \STATE { Let $TC$ be a set of test cases } \STATE { Let $tc_j$ be set of component failure modes where $j$ is an index of $J$} \COMMENT { Each set $tc_j$ is a `test case' } - \STATE { $ \forall j \in J | tc_j \in TC $ } - - %\STATE { $ \bigcup_{j=1...N} tc_j = \bigcup TC $ } - %\COMMENT { All $tc_j$ test cases sets belong to $TC$ } - - %\REQUIRE { $ TC \subset \bigcup (FM_{cfm}) $ } - %\COMMENT { $TC$ is the set of all test_cases -% Let TC be a subset of the powerset of the failure modes $ FG_{cfm} $, -%i.e. only failure modes present in $ FG_{cfm} $ are present in sets belonging to $ TC $} - - - \COMMENT { Ensure the test cases are complete and unique } + \STATE { $ \forall j \in J | tc_j \in TC $ } \COMMENT {Ensure the test cases are complete and unique} \FORALL { $tc_j \in TC$ } %\ENSURE {$ tc_j \in \bigcap FG_{cfm} $} @@ -582,12 +583,16 @@ in the analysis stages. \STATE { let $f$ represet a component failure mode } \REQUIRE { That all failure modes are represented in at least one test case } \ENSURE { $ \forall f | (f \in F)) \wedge (f \in \bigcup TC) $ } - \COMMENT { This corresponds to checking that at least each failure mode is considered at least once in the analysis; some european standards -imply checking all double fault combinations\cite{en298} } + \COMMENT { This corresponds to checking that at least each failure mode is considered at + least once in the analysis; more rigorous cardinality constraint + checks may be required for some safety standards} + +% some european standards +% imply checking all double fault combinations\cite{en298} } %\hline Algorithm \ref{alg:sympabs22} has taken the set of failure modes $ F=FM(FG) $ and returned a set of test cases $TC$. -The next stages is to analyse the effect of each test case on the functional group. +The next stage is to analyse the effect of each test case on the functional group. \end{algorithmic} \end{algorithm} @@ -597,6 +602,9 @@ The next stages is to analyse the effect of each test case on the functional gro %% %% Algorithm 3 %% +The test cases are now analysed for their impact on the behaviour of the functional~group. +Let $R$ be a set of results indexed by $j$ (the same index used to identify the test cases $tc_{j}$). + \begin{algorithm}[h+] ~\label{alg:sympabs3} @@ -605,9 +613,9 @@ The next stages is to analyse the effect of each test case on the functional gro \STATE { let r be a `test case result'} \STATE { Let the function $Analyse : tc \mapsto r $ } \COMMENT { This analysis is a human activity, examining the failure~modes in the test case and determining how the functional~group will fail under those conditions} \STATE { $ R $ is a set of test case results $r_j \in R$ where the index $j$ corresponds to $tc_j \in TC$} - \FORALL { $tc_j \in TC$ } + \FORALL { $tc_j \in TC$ } \STATE { $ rc_j = Analyse(tc_j) $} \COMMENT {this is Fault Mode Effects Analysis (FMEA) applied in the context of the functional group} - \STATE { $ rc_j \in R $ } + \STATE { $ rc_j \in R $ } \COMMENT{Add $rc_j$ to the set R} \ENDFOR %\hline @@ -621,6 +629,9 @@ Algorithm \ref{alg:sympabs33} has built the set $R$, the sub-system/functional g %% %% Algorithm 4 %% +This stage analyses the results from bottom-up FMEA analysis ($R$), and collects +results that, from the perspective of the functional~group, have the same failure symptom. +Let set $SP$ be the set of symptoms for the functional group $FG$. \begin{algorithm}[h+] ~\label{alg:sympabs4} @@ -667,6 +678,10 @@ We now have a set $SP$ of the symptoms of failure. %% %% Algorithm 5 %% +This final stage, is the creation of the derived component. +This derived component may now be used to build +new functional groups at higher levels of fault abstraction. +Let $DC$ be a derived component with its own set of failure~modes. \begin{algorithm}[h+] ~\label{alg:sympabs5} @@ -693,7 +708,10 @@ Hierarchies of fault abstraction can be built that can model an entire SYSTEM. \section{To conclude} -The technique provides a methodology for bottom-up analysis of the fault behaviour of complex safety critical systems. +The symptom abstraction technique allows us to take a functional group of components, analyse the failure +mode behaviour and create a new entity, a derived~component, that has its own set of failure modes. +This process naturally takes one step to building a hierarchical failure mode model +from the bottom-up. \subsection{Hierarchical Simplification} @@ -717,3 +735,7 @@ Minimal cut sets \cite{nasafta} can be determined from these, and by analysing the statistical likelyhood of the component failures, the MTTF and SIL\cite{en61508} levels can be automatically calculated. + +\vspace{40pt} +\today +