
\ifthenelse {\boolean{paper}}
{
\begin{abstract}
This paper applies the symptom extraction technique
using Propositional Logic diagrams, to identify
symptom groups in functional~groups under
analysis.
\end{abstract}
}
{
\section{introduction}
This chapter applies the symptom extraction technique
using Propositional Logic diagrams, to identify
symptom groups in functional~groups under
analysis.
}
%\clearpage



\subsection{Static Analysis}


\vspace{0.3cm}
%\begin{table}[p]
\begin{tabular}{||l|l||} \hline \hline
  {\em Definition } & {\em Description}    \\ \hline
System & A product designed to  \\
       & work as a coherent entity  \\  \hline   
Sub-system & A part of a system, \\
           & sub-systems may contain sub-systems \\    \hline 
Failure mode & A way in which a System, \\
             & Sub-system or component can fail \\     \hline  
Functional Group & A collection of sub-systems and/or \\
                 & components that interact to \\
                 & perform a specific function  \\    \hline  
Base Component & Any bought in component, which \\
               & hopefully has a known set of failure modes  \\    \hline  
 \hline
\end{tabular}
%\end{table}
\vspace{0.3cm}


\section{The Symptom abstraction Process}

% TO DO: separate these two:

\paragraph{symptom abstraction described}

The objective of `symptom abstraction' is to analyse the functional~group and find out what will happen to it,
when specified component failure modes occur.
Once we know how it fails as a functional~group, we can treat it as a component or sub-system
with its own set of failure modes.

Each failure mode (or combination of) investigated is termed a `test case'.
Each `test case' is analysed. 
The component failure modes are examined with respect to their effect on the functional~group.
When all `test~cases' have been analysed a second phase is applied.

This looks at the results of the `test~cases' as symptoms 
of the sub-system.
 In this way `test~case~results' are grouped as common symptoms, from the perspective of the sub-system.
 To go back to the CD~player example, a failed
output stage, and a failed internal audio amplifier, 
will both cause the same failure; $no\_sound$ !



\paragraph{symptom abstraction represented on the diagram}
This process can be applied using a diagram.
From the collection of parts for the sub-system under analysis, a set of failure
modes for each component is obtained. A diagram is then drawn with
each component failure mode represented by a contour.
Component failure mode combinations are
chosen for `test cases'.\footnote{Combinations of component failure modes can be represented by overlapping contours}

A `test case' is represented on the diagram as a point or asterisk, 
in a region enclosed by the contours representing the failure modes it investigates.

The effect on the sub-system of each test case is analysed.
%It is then represented on the diagram by an asterisk on the contour representing the failure mode.
The `test~case~results' are archived. 
That is to say the results from each test case are now associated with the 
asterisk point.
When all test cases have been analysed, we switch our attention to a higher abstraction level.
% We treat the sub-system as a black box, or as a component part itsself.
% We can now look at the test case results from the perspective of a `user'
% of this sub-system.
% 
% 
% We treat the sub-system as a `black box' and view the effects of the component failure
% at the sub-system level. This mean we are not interested so much in what the compoent does,
% but how the sub-system reacts when it fails in a certain way.
% 
% Each `test case' is labelled from the perspective of the failure as seen at sub-system level.

% 
We can now try to simplify by determining common symptoms.
A common symptom, in this context, is defined as faults caused by different  
component failure modes that have the same effect from the perspective
of a `user' of the sub-system.

Test case results can now viewed as failure modes of the sub-system or `black box', and grouped together
where there are common symptoms. 
These are grouped together by joining them with lines. These lines form  collected groups (or `spiders').
See figure \ref{fig:gensubsys3}.
% 
It can be seen now that each {\em lone test case} and {\em spider} on the 
diagram is a distinct failure mode of the sub-system.
This means that these failure modes represent the fault behaviour of the sub-system.
We can now treat this sub-system as a component in its own right, or in other words,
we have derived a failure mode model at a higher level of abstraction.

We can now draw a new diagram to represent the failure modes of the sub-system.
Each spider or lone test case, becomes a contour representing a failure mode
of the sub-system in this new diagram (see figure \ref{fig:gensubsys4}.



\section{The Process : To analyse a base level sub-system}

To sumarise:

\begin{itemize}
 \item Determine a minimal functional group
 \item Obtain list of components in the functional group
 \item Collect the failure modes for each component
 \item Draw these as contours on a diagram
 \item Where multiple failures are examined use overlapping contours
 \item For each region on the diagram, make a test case
 \item Examine each test case and determine the effect of the component failure modes on the behaviour of the functional group
 \item Collect common symptoms. Imagine you are handed this functional group as a `black box', a sub-system to use.
Determine which test cases produce the same fault symptoms. Join common symptoms with lines connecting them (sometimes termed a `spider').
 \item The lone test cases and the spiders are now the fault mode behaviour of the sub-system. 
 \item A new diagram can now be drawn where each spider, or lone test case from the original diagram
is represented as a contour. These contours represent the failure modes of the sub-system.
\end{itemize}




\section{A general Sub-System example}

Consider a functional group $FG$ with component parts $C_1$,$C_2$ and $C_3$.
Each part has a set of related fault modes (i.e. ways in which it can fail to operate correctly).
Let us define the following failure modes for each component part, defining a function $FM()$ where $K$
is a component part and $F$ is its set of failure modes\footnote{Base component failure modes are defined, often with 
statistics and evironmental factors in  a variety of sources. \cite{mil1991}
}.

$$ 
FM : K  \mapsto F
$$
\\
For our example above
\\
$$ FM(C_1) =  \{ a_1, a_2, a_3 \} $$
$$ FM(C_2) =  \{ b_1, b_2 \} $$ 
$$ FM(C_3) =  \{ c_1, c_2 \} $$

We can now represent the sub-system as a set of component faulure modes $FG_{cfm}$,
thus 

\begin{equation}
 FG_{cfm} = \{a_1, a_2, a_3, b_1, b_2, c_1, c_2 \}
\end{equation} 




The failure modes of the components can be represented as contours on
on the diagram in \ref{fig:gensubsys1}.
\begin{figure}
 \centering
 \includegraphics[width=3in,height=3in,bb=0 0 513 541]{symptom_abstraction/synmptom_abstraction.jpg}
 % synmptom_abstraction.jpg: 570x601 pixel, 80dpi, 18.10x19.08 cm, bb=0 0 513 541
\label{fig:gensubsys1}
 \caption{$FG_{cfm}$ Component Failure modes represented as contours}
\end{figure}

% % DIAGRAM WITH SPIDER
% \begin{figure}
%  \centering
%  \includegraphics[scale=20]{./synmptom_abstraction.jpg}
%  % synmptom_abstraction.jpg: 570x601 pixel, 80dpi, 18.10x19.08 cm, bb=0 0 513 541
%  \label{fig:gensubsys2}
%  \caption{$SS_{cfm}$ Component Failure modes represented as contours}
% \end{figure}


We can now look at the effects that  component failure modes have 
on the sub-system.
This process involves examining `test cases'. Each `test case' represents the fault behaviour
of the sub-system due to particular combinations of component fault modes.

Each test case can be represented on the diagram as a labeled point.
The labeled point will reside in a region on the diagram
enclosed by the contours representing particular component fault modes.
The label will indicate the fault symptom from the perspective of the sub-system.
For the sake of example, only single component failure modes are considered.
We can now assign a test~case to each contour, and mark it on the diagram.

% \begin{figure}[h+]
%  \centering
%  \includegraphics[scale=20]{./symptom_abstraction2.jpg}
%  % synmptom_abstraction.jpg: 570x601 pixel, 80dpi, 18.10x19.08 cm, bb=0 0 513 541
%  \label{fig:gensubsys2}
%  \caption{Component Failure modes with analysed test cases}
% \end{figure}
\begin{figure}
 \centering
 \includegraphics[width=3in,height=3in,bb=0 0 513 541]{symptom_abstraction/symptom_abstraction2.jpg}
 % symptom_abstraction2.jpg: 570x601 pixel, 80dpi, 18.10x19.08 cm, bb=0 0 513 541
 \label{fig:gensubsys2}
 \caption{Component Failure modes with analysed test cases}
\end{figure}

\par
\vspace{0.3cm}
\begin{tabular}{||l|l||} \hline \hline
  {\em Component Failure Mode } & {\em test case}    \\ \hline
$a\_1$ & $fs\_1$       \\      \hline
$a\_2$ & $fs\_2$  \\    \hline 
$a\_3$ & $fs\_3$  \\    \hline  
$b\_1$ & $fs\_4$  \\    \hline  
$b\_2$ & $fs\_5$ \\     \hline  
$c\_1$ & $fs\_6$  \\    \hline  
$c\_2$ & $fs\_7$  \\    \hline
 \hline
\end{tabular}
\vspace{0.3cm}



The sub-system fault symptoms are now represented on the diagram as in figure \ref{fig:gensubsys2}.

A second stage of analysis is now applied.
Empirically, it is often noticed that a sub-system will fail in the same way due to a variety of reasons.
To the `user' of the sub-system, it does not matter which component or combination of components has failed.
The sub-system can thus be considered to have its own set of failure modes.
This stage of the analysis is to determine these, to collect `like symptoms'.
This is performed on the diagram by linking the test cases with lines to form `spiders'

For the sake of example let us consider the fault symptoms $SP1 = \{fs_2, fs_4, fs_5\}$ to be an identical
failure mode at the {\em sub-system} level. These can then be joined to form a spider. Likewise
let $SP2 = \{fs_1, fs_3, fs_7\}$  be  an identical failure mode at the {\em sub-system} level.
Let $SP3 = \{fs_6\}$ be a distinct failure mode at {\em sub-system} level.

The diagram can now be drawn as in figure \ref{fig:gensubsys3}.

% \begin{figure}[h+]
%  \centering
%  \includegraphics[scale=20]{./symptom_abstraction3.jpg}
%  % synmptom_abstraction.jpg: 570x601 pixel, 80dpi, 18.10x19.08 cm, bb=0 0 513 541
%  \label{fig:gensubsys3}
%  \caption{Common failure modes collected as `Spiders'}
% \end{figure}
\begin{figure}[h+]
 \centering
 \includegraphics[width=3in,height=3in,bb=0 0 513 541]{symptom_abstraction/symptom_abstraction3.jpg}
 % symptom_abstraction3.jpg: 570x601 pixel, 80dpi, 18.10x19.08 cm, bb=0 0 513 541
 \label{fig:gensubsys3}
\caption{Common failure modes collected as `Spiders'}
\end{figure}


The third stage of the process can be applied automatically.
Each `spider' or `lone test case' becomes a contour
in the new diagram (see figure \ref{fig:gensubsys4}.

The result of this will be, a set of failure modes for the sub-system,  as though it were a {\em black box}
or a {\em component} to be used in higher level designs.


We have now in $SP1$, $SP2$ and $SP_3$ the three ways in which this sub-system can fail.
In other words we have derived failure modes for this sub-system.


%\section{The Process : To analyse a base level sub-system}

% \REQUIRE Obtain a list of components for the System $S$ under investigation. \ENSURE Decomposition of $S$ into atomic
% components where each component $c$ has a know set of $fm$ failure modes.
% 
% \STATE Determine functional groups $fg_n \subset S$ of components, where n is an index number 
% \COMMENT{ The functional groups should be chosen to be minimally sized collections of components that perform a specific function.}
% \REQUIRE{ Ensure that all components belong to at least one functinal group $\bigcup_i fg_i = S $
% %
% \FORALL { $fg_i \in S$}
% 
%    \STATE state something
% 
% \ENDFOR
% 
% \STATE Check for cut vertices \COMMENT{here we choose to decompose
% all nested components in one go}
% %
% \FORALL {vertices $v \in G$}
%  \STATE Check if $v$ is a cut vertex. \COMMENT{so $d$ is nested and in
% $d$ there must be a 0-separating curve in the zone corresponding to $v$}
% \ENDFOR
%
%
%%%%%%%%%%%%


% \begin{itemize}
%  \item determine a minimal functional group
%  \item obtain list of components in the functional group
%  \item collect the failure modes for each component
%  \item draw these as contours on a diagram
%  \item where multiple failures are examined use overlapping contours to represent this
%  \item for each region on the diagram, make a test case
%  \item examine each test case and determine the effect of the component failure modes on the behaviour of the functional group
%  \item collect common symptoms. imagine you are handed this functional group as a `black box', a sub system to use.
% which test cases produce the same fault symptoms. Join common symptoms with `spiders', lines connecting them
%  \item The lone test cases and the spiders are now the fault mode behaviour of the sub-system 
%  \item A new diagram can now be drawn where each spider, or lone test case from the original diagram
% is represented as a contour. These contours represent the failure modes of the sub-system.
% \end{itemize}

This sub-system may now therefore, be represented as three separate failure modes.
We may now treat this sub-system as we would a component with a known set of failure modes.
The failure modes of the Sub-system $SS$ are now the set $SS_{fm} = \{ SP1, SP2, SP_3 \}$.

Defining the function `$\bowtie$' to represent the {\em symptom abstraction} process, we may now
write 

$$
\bowtie : SubSystemComponentFaultModes \mapsto SubSystemFaultModes 
$$

\begin{equation}
  \bowtie(FG_{cfm}) = SS_{fm}
\end{equation} 

The $SS_{fm}$ set of fault modes can be represented as a diagram with each fault~mode of $SS$ being a contour.
The derivation of $SS_{fm}$ is represented graphically using the `$\bowtie$' symbol, as in figure \ref{fig:gensubsys4}

% \begin{figure}[h+]
%  \centering
%  \includegraphics[width=3in,height=3in]{./symptom_abstraction4.jpg}
%  % synmptom_abstraction.jpg: 570x601 pixel, 80dpi, 18.10x19.08 cm, bb=0 0 513 541
%  \label{fig:gensubsys3}
%  \caption{Deriving a new diagram}
% \end{figure}
% 

\begin{figure}[h+]
 \centering
 \includegraphics[width=3in,height=3in,bb=0 0 376 410]{symptom_abstraction/symptom_abstraction4.jpg}
 % symptom_abstraction4.jpg: 418x455 pixel, 80dpi, 13.27x14.45 cm, bb=0 0 376 410
 \caption{Deriving a new diagram}
 \label{fig:gensubsys4}
\end{figure}


The derived diagram in figure \ref{fig:gensubsys4} shows the functional group of components $A,B,C$
analysed as a sub-system. The result is a set of fault modes that define the fault mode behaviour of that sub-system.


This sub-system, with its three error modes, can now be treated as a component (although at a higher level of abstraction)
with known failure modes.



\section{Boolean definition of a symptom}

Need to explain why its XOR not OR here. 

\section{To conclude}


