%%
%% CHAPTER 4 : Failure Mode Modular Discrimination
%%

% \ifthenelse {\boolean{paper}}
% {
% \abstract{ 
% This paper defines %what is meant by 
% the terms
% components, derived~components, functional~groups, component fault modes and `unitary~state' component fault modes.
% %The application of Bayes theorem  in current methodologies, and
% %the suitability of the `null hypothesis' or `P' value statistical approach
% %are discussed.
% The general concept of the cardinality constrained powerset is introduced
% and calculations for it described, and then for
% calculations under `unitary state' fault mode conditions.
% Data types and their relationships are described using UML.
% Mathematical constraints and definitions are made using set theory.}
% }
% {
% \section{Overview}
% This chapter defines the FMMD process and related concepts and calculations.
% FMMD is in essence modularised FMEA. Rather than taking each component failure mode
% and extrapolating top level or system failure symptoms from it,
% small groups of components are collected into {\fgs} and analysed,
% and then {\dcs} are used to represent the {\fgs}.
% These {\dcs} are used to then build further {\fgs} until a hierarchy of {\fgs}
% and {\dcs} has been built, converging to a final {\dc}
% at the top of the hierarchy.
% 
% Or in other words we take the traditional FMEA process, and modularise it.
% We break down each stage of reasoning
% into small manageable groups, and use the results of those groups, as {\dcs}
% to build higher level groups. 
% %This has advantages of concentrating
% %effort in where modules interact, 

  
%% J. Howse 04MAY2012 REMOVEFirstly, %what is meant by 
%% J. Howse 04MAY2012 REMOVEthe terms
%% J. Howse 04MAY2012 REMOVEcomponents, failure~modes, derived~components, functional~groups, component fault modes and `unitary~state' component fault modes are defined.
%
%% J. Howse 04MAY2012 REMOVE The general concept of the cardinality constrained powerset is introduced
%% J. Howse 04MAY2012 REMOVE and calculations for it described, and performance
%% J. Howse 04MAY2012 REMOVE calculations (comparing traditional FMEA and FMMD)
%% J. Howse 04MAY2012 REMOVE are presented. % under `unitary state' fault mode conditions.
%
%% J. Howse 04MAY2012 REMOVEData types and their relationships are described using UML.
%% J. Howse 04MAY2012 REMOVEMathematical constraints and definitions are made using set theory.
% }

 
\section{Introduction}
This chapter 
starts with  %starts with %an overview of current failure modelling techniques, and then 
a worked example to introduce % using 
a new methodology, 
Failure Mode Modular De-composition (FMMD).
This is followed by a discussion on the design of FMMD, a
%an ontological 
description of the FMMD process and finally the 
data structures required using UML class models.

% This chapter defines the FMMD process and related concepts and calculations.
FMMD is in essence a  modularised variant of traditional FMEA~\cite{sccs}[pp.34-38]. 
%
%FMEA is a bottom-up, or forward search  failure mode technique starting with
%base component failure modes~\cite{safeware}[p.341].
%
%\subsection{FMMD Process in outline.}
%
In order to analyse from the bottom-up and apply a modular methodology, we need to take
small groups of components that naturally
work together to perform a simple function: we term these groups `{\fgs}'.
%
The components to include in a  {\fg} are chosen by hand.
%a human, the analyst.
%We can represent the `Functional~Group' as a class. 
 When we have a 
{\fg} we can look at the components it contains,
and from this determine the failure modes of all the components that belong to it.
%
%Initial {\fgs} will consist of {\bcs}.
%
% and determine a failure mode model for that group.
%
% expand 21sep2010
%The `{\fg}' as used by the analyst is a collection of component failures modes.
%The analysts interest is in the ways in which the components within the {\fg}
%can fail. 
%
All the failure modes of all the components within a {\fg} are collected.
%
%As each component %mode holds 
%has a set of failure modes associated with it, 
%the {\fg} represents a set of sets of failure modes.
%
%We convert this 
%into a flat set 
%of failure modes for use in analysis.
%
%A flat set is a set containing just the failure modes and not sets of failure modes~\cite{joyofsets}[p.8].
%
%In practical term each component failure mode is considered as a `failure~scenario' or 'test~case'
%for the {\fg}.
%
Each of these failure modes %, and optionally combinations of them, are
%formed into failure~scenarios which
are
analysed for their effect on the failure mode behaviour of the `{\fg}'.
%
Once we have the failure mode behaviour of the {\fg}, we can determine its symptoms of failure.
%,
%or the failure modes of the {\dc}.
%for the {\fg}.
%
We view these symptoms as  %derived 
failure modes of the {\fg}.
% 
Or in other words we can determine how the `{\fg}' can fail.
We can now consider the {\fg} as a {\dc} % sort of super component
with its own set of failure modes.
%
% Rather than taking each component failure mode
% and extrapolating top level or system failure symptoms from it,
% small groups of components are collected into {\fgs} and analysed.
% 
% 
% %and then {\dcs} are used to represent the {\fgs}.
% We analyse each {\fg} in order to determine its failure mode behaviour.
% %of the {\fg}. 
% With the failure mode behaviour we can obtain a set of failure modes
% for the {\fg}. 
% %
% Or in other words we determine how the {\fg}, as an entity can fail.
% %
% We can then create a new theoretical component to represent the {\fg}.
% %
% We call this a {\dc}.
% %
%This {\dc} has a set of failure modes: we can thus treat it as a `higher~level' component.
%
Because a {\dc} has a set of failure modes we can use it in higher level {\fgs}
which in turn produce higher level {\dcs}.
%
We can then use these {\dcs} to  build further {\fgs} until a hierarchy of {\fgs}
and {\dcs} has been built, converging to a final {\dc}
at the top of the hierarchy. 
%
The failure modes of the final or top {\dc} 
are the failure modes of the system under investigation.
% 
That is, we take the traditional FMEA process and modularise it from the bottom-up.
%We break down each stage of reasoning
%into small manageable groups, and use the failure mode behaviour from them to create {\dcs}
%to build higher level groups. 
In this way we can incrementally apply FMEA to an entire system. %, with documented reasoning stages.
%
This has advantages of concentrating
effort in where modules interact (interfaces), of
being able to re-use work and savings in the complexity of performing
FMEA (because the analysis is typically performed in several small stages).
%A  notation is then described to index and classify objects created in FMMD hierarchical models.



% \subsection{Summary of Deficiencies in Current Methods}
% 
% \paragraph{Top Down approach: FTA} The top down technique FTA, introduces the possibility of missing base component
% level failure modes~\cite{faa}[Ch.9]. Since one FTA tree is drawn for each top level
% event, this leads to repeated work, with limited ability for cross checking/model validation.
% Also, the analysis process can miss top level events that bottom-up techniques
% can reveal.
% 
% %\subsection{Bottom-up approach: }
% 
% \paragraph{State Explosion problem for FMEA, FMECA, FMEDA.}
% The bottom-up techniques all suffer from % a problem of 
% state explosion.
% To perform the analysis rigorously, we would need to consider the effect
% of a component failure against all other components. Adding environmental
% and operational states further increases the state explosion.
% 
% Let $N$ be the number of components in our system, and $K$ be the average number of component failure modes
% (ways in which a component can fail). The approximate total number of base component failure modes
% is $N \times K$. 
% %
% The total number of cases to examine, to determine the effect of all failure modes 
% on all 
% components 
% will be approximately $(N-1) \times N \times K$. %, in effect a very large set cross product.
% %
% If $E$ is the number of environmental conditions to consider
% in a system, and $A$ the number of applied/operational states (or modes of the system),
% the bottom-up analyst is presented with two
% additional %cross product 
% factors, yielding approximately
% $(N-1) \times N \times K \times E \times A$.
% %
% If we put some typical very small embedded system numbers\footnote{These figures would
% be typical of a very simple temperature controller, with a micro-controller, sensors, an RS485 interface,
% supporting circuitry and heater circuitry.}
%  into this, say $N=100$, $K=2.5$, $A=2$, and $E=10$
% we have $99 \times 100 \times 2.5 \times 10 \times 2 = 495000 $ checks to perform.
% %
% To look in detail at half a million fault~scenarios is obviously impractical.
% 
% 
% % Requirements for an improved methodology The deficiencies identified in the 
% % current methodologies are used to establish criteria for an improved methodology.
% 
% \paragraph{Reasoning distance - complexity and reachability.}
% \label{sec:rd}
% Tracing a component level failure up to a top level event, without the rigour accompanying state explosion, involves
% working heuristically. A base component failure will typically 
% be conceptually removed by several stages from a top level event.
% %In electronics terms, all components on the signal path from the component that failed.
% The `reasoning~distance' $R_D$ can be calculated by summing the failure modes in each component, for all the components
% that must interact along the signal path to reach the top level event.
% Where $C$ represents the set of components in a failure mode causation chain,
% $c_i$ represents a component in $C$ and
% the function $fm$ returns the  failure modes for a given component, equation
% \ref{eqn:complexity}, returns the `reasoning~distance'.
% \begin{equation}
% R_D = \sum_{i=1}^{|C|} |{fm(c_i)}| %\; where \; c \in C
% \label{eqn:complexity} 
% \end{equation}
% %
% The reasoning distance is a value representing the number of failure modes
% to consider to rigorously determine the causation chain
% from the base component failure to the system level event.
% %
% The reasoning distance serves to show that when the causes of a top level
% event are completely determined, a large amount of work, not
% typical of heuristic or intuitive interpretation, is required.
% 
% Reasoning distances will be large for complicated systems, and this is therefore a weakness in both
% FMEA and FTA type analyses. This concept is developed further to create a metric for comparing 
% complexities from FMEA and FMMD analysis in section~\ref{sec:cc}.
% 
% % could have a chapter on this.
% % take a circuit or system and follow all the interactions
% % to the components that cause the system level event.
% 
% \paragraph{Multiple Events from one base component failure mode.}
% A base component failure may potentially cause more than one
% system level failure mode.
% It could be possible to identify one top level event associated with
% a {\bc} {\fm} and not investigate other possibilities, using FMEA or FTA techniques. 
%  
%  
% \paragraph{Software FMEA models are performed separately from Hardware FMEA.}
% %If software FMEA or Software FTA is performed it is always performed separately from
% %hardware FMEA.
% Work on  SFMEA (which is yet to be widely employed in international standards) does not seek to integrate
% hardware and software models, but to perform
% FMEA on the software in isolation~\cite{procsfmea}.
% Some work has been performed using databases
% to track the relationships between variables 
% and system failure modes~\cite{procsfmeadb}, and work has been performed to 
% introduce automation into the FMEA process~\cite{appswfmea} and code analysis
% automation~\cite{modelsfmea}. Performing these analyses separately breaks the reasoning chain for tracing 
% failure causation through the software hardware interfaces.
% 
% Although the SFMEA and hardware FMEAs are performed separately,
% some schools of thought aim for FTA~\cite{nasafta}~\cite{nucfta} (top down - deductive) and FMEA (bottom-up inductive)
% to be performed on the same system to provide insight into the
% software hardware/interface~\cite{embedsfmea}. 
% Although this
% would give a better picture of the failure mode behaviour, it
% is by no means a rigorous approach to tracing errors that may occur in hardware
% through to the top (and therefore ultimately controlling) layer of software.
% %\section{Requirements for a new static failure mode Analysis methodology}
% 
% \section{Desirable Criteria.}
% From the deficiencies outlined above,  we can form a set of desirable criteria for an enhanced failure mode methodology.
% { %\small
% \label{criteria}
% \begin{enumerate}
% %\begin{itemize}
% \label{fmmdreq}
% \item Address the state explosion problem. % 1
% \item Ensure that all component failure modes are considered in the model. % 2
% \item Be easy to integrate mechanical, electronic and software models \cite{sccs}[p.287]. %3
% \item Be modular, in that commonly used {\fgs} can be re-used in other designs/projects. %4
% \item Have a formal basis, i.e. be able to produce mathematical traceability %5
% for its results, such as  error causation trees.%, reliability and safety statistics.
% %\item It should be easy to use, ideally using a 
% %graphical syntax (as opposed to a formal symbolic/mathematical text based language).
% %\item From the top down, the FMMD model of a system, should follow a logical de-composition of the functionality
% %to smaller and smaller functional groupings--or--modules. \cite{maikowski}.
% \item Be able to model multiple (simultaneous) failure modes.% 6 % from the base component level up.
% \end{enumerate}
% %\end{itemize}
% }
% 
% 
% % 
% 
% % The design process follows this 
% %rationale, sub-systems are build t%o perform often basic functions from base components.
% %We can term these small groups {\fgs}.
% % 
% % Components should be collected
% % into small functional groups to enable the examination of the effect of a
% % component failure mode on the other components in the group.
% % Once we have the failure modes, or symptoms of failure of a {\fg}
% % it can now be considered as `derived component' with a known set 
% % of failure symptoms. We can use this `derived component' to build higher level 
% % functional groups.
% % 
% % This helps with the reasoning distance problem,
% % because we can trace failure modes back through complex interactions and have a structure to
% % base our reasoning on, at each stage.
% % 
% 
% 
% %Development of the new methodology 
% % 
% % \section{An ontology of failure modes}
% % In order to address the state explosion problem, the process must be modular
% %and deal with small groups of components at a time. This approach should address the state explosion problem : criteria 1.
% % An ontology is now developed of  
% % failure modes and their relationship to environmental factors, 
% % applied/operational states and the hierarchical nature inherent in product design, 
% % defining the relationships between the system as a whole, components, 
% % failure modes, operational and environmental states. 
% % 
% % 
% % Components have sets of failure modes associated with them.
% % Failure modes for common components may be found in 
% % the literature~\cite{fmd91,mil1991}.
% % We can associate a component with its failure modes.
% % This is represented in UML in figure \ref{fig:component_concept}.
% % 
% % \begin{figure}[h]
% %  \centering
% %  \includegraphics[width=200pt,keepaspectratio=true]{./component.png}
% %  % component.:wq: 467x76 pixel, 72dpi, 16.47x2.68 cm, bb=0 0 467 76
% %  \caption{Component with failure modes UML diagram}
% %  \label{fig:component_concept}
% % \end{figure}
% 
% % 
% % \subsection{Modular Design}
% % 
% % When designing a system from the bottom-up, small groups of components are selected to perform
% % simple functions. These can be termed {\fgs}.
% % When the failure mode behaviour, or symptoms of failure 
% % of a {\fg} are determined, it can be treated as a component in its own right.
% % 
% % % Functional groups
% % % are then brought together to form more complex and higher level {\fgs}.
% % Used in this way the {\fg} has become a {\dc}. The symptoms of failure
% % of the {\fg} can be considered the failure modes of its {\dc}.
% % Derived~Components can be used to create higher level {\fgs}.
% % Repeating this process will lead to identify-able higher level
% % groups, often referred to as sub-systems. We can call the entire collection/hierarchy
% % of sub-systems the system. 
% 
% 
% 
% \section{The proposed Methodology}
% \label{fmmdproc}
% % Any new static failure mode methodology must ensure that it 
% % represents all component failure modes and it therefore should be bottom-up, 
% % starting with individual component failure modes.
% To ensure all component failure modes are represented, the new methodology must be bottom-up.
% %
% This seems essential to satisfy criterion 2.
% The proposed methodology is therefore a bottom-up process
% starting with base~components.
% %
% Since we are only modelling failure modes, which could arise from
% mechanical, electronic or software components,
% criterion 3 is satisfied.
% %
% In order to address the state explosion problem, the process should be modular and hierarchical,
% dealing with small groups of components at a time; this should address criterion 1.
% 
% 
% %\paragraph{Outline of the Failure mode methodology.}
% %
% A {\em {\fg}}, is defined as a small collection of components
% that interact to provide
% a function or task within a system.
% %
% In the proposed methodology components are collected into functional groups
% and each component failure (and possibly multiple simultaneous component failures) are considered in the 
% context of the {\fg}.
% 
% %% GARK
% %
% The component failures are termed {\em{\fcs}}. %`test~cases'. 
% For each {\fc}
% there will be a corresponding resultant failure, or `symptom', from the perspective of the {\fg}.
% %
% % MAYBE NEED TO DESCRIBE WHAT A SYMPTOM IS HERE
% %
% %From the perspective of the {\fg} failures of components will be symptoms.
% It is conjectured that many symptoms will be common. That is to say
% that component failures will often cause the same symptoms of failure
% from the perspective of a {\fg}.
% 
% 
% 
% %
% A common symptom collection stage is now applied. Here common symptoms are collected
% from the results of the {\fcs}. Because it is possible to model combinations of failures,
% criterion 6 is satisfied.
% %
% With a collection of the {\fg} failure symptoms, we can create a {\em{\dc}}.
% The failure modes of this new {\dc} are the symptoms of the {\fg} from which it was derived.% from.
% This satisfies criterion 4, as we can now treat {\dcs} as pre-analysed
% modules available for re-use.
%  
% By using {\dcs} in higher level functional groups, a hierarchy can be built representing
% the failure mode behaviour of a system. Because the hierarchy maintains information 
% linking the symptoms  to component failure modes (via {\fcs}), we have traceable
% reasoning connections from base component failures to top level failures.
% The traceability should satisfy criterion 5.
% 
% %  ONTOLOGY - NO ROOM IN 6 PAGES OF PAPER
% % \paragraph{Environmental Conditions, Operational States.}
% % 
% % Any real world sub-system will exist in a variable environment
% % and may have several modes of operation.
% % In order to find all possible failures, a sub-system 
% % must be analysed for each operational state
% % and environmental condition that could affect it.
% % %
% % A question is raised here: which objects should we 
% % associate  the environmental and the operational states with ?
% % There are three objects in our model to which these considerations could be applied.
% % We could apply these conditions  
% % to {\fgs}, components, or {\dcs}.
% % 
% % \paragraph {Environmental Conditions.}
% % 
% % Environmental conditions are external to the
% % {\fg} and are often things over which the system has no direct control
% % ( e.g. ambient temperature, pressure or  electrical interference levels).
% % %
% % Environmental conditions may affect different components in a {\fg}
% % in different ways.
% % 
% % For instance, a system may be specified for
% % $0\oc$  to $85\oc$ operation, but some components
% % may show failure behaviour between $60\oc$  and $85\oc$ 
% % \footnote{Opto-isolators typically show marked performance decrease after
% % $60\oc$ \cite{tlp181}, whereas another common component, say a resistor, will be unaffected.}.
% % Other components may operate comfortably within that whole temperature range specified.
% % Environmental conditions will have an effect on the {\fg} and the {\dc},
% % but they will have specific effects on individual components.
% % 
% % It seems obvious that
% % environmental conditions should apply to components.
% % %A component will hold a set of environmental states that
% % %affect it. 
% % 
% % \paragraph {Operational States}
% % 
% % Sub-systems may have specific operational states.
% % These could be a general health level, such as 
% % normal operation, graceful degradation or lockout.
% % Alternatively they could be self~checking sub-systems that are either in a normal, alarm/lockout or self~check state.
% % 
% % Operational states are conditions that apply to some functional groups, not individual components.
% 
% %\section{The Non-Inverting Operational Amplifier}
% %When this constraint is complied with, we can use the FMMD method to 
% %build hierarchical bottom-up models of failure mode behaviour.
% %This and the definition of a component are 
% %described in this chapter.
% %When building a system from components, 
% %we should be able to find all known failure modes for each component.
% %For most common electrical and mechanical components, the failure modes
% %for a given type of part can be obtained from standard literature~\cite{mil1991}
% %\cite{mech}. %The failure modes for a given component $K$ form a set $F$.
% 
% \label{defs}
% %%
% %% Paragraph component and its relationship to its failure modes
% %%


\section{Worked Example: Non-Inverting Amplifier}

%% here bring in sys safety paper from 2011
%%
%% GARK BEGIN

We demonstrate the principles of FMMD, by using it to analyse a 
commonly used circuit, a non-inverting amplifier built from an op amp~\cite{aoe}[p.234] and 
two resistors; a circuit schematic for this is shown in figure \ref{fig:noninvamp}.
%
\begin{figure}[h+]
 \centering
 %\includegraphics[width=100pt,keepaspectratio=true]{../../noninvopamp/noninv.png}
 \includegraphics[width=300pt,keepaspectratio=true]{./CH4_FMMD/noninv.png}
 % noninv.jpg: 341x186 pixel, 72dpi, 12.03x6.56 cm, bb=0 0 341 186
 \caption{Standard non inverting amplifier configuration}
 \label{fig:noninvamp}
\end{figure}
%
The function of the resistors in this circuit is to set the amplifier gain.
%
The resistors act as a potential divider---assuming the op-amp has high impedance---and 
program the inverting input on the op-amp
to balance them against the positive input, giving the voltage gain ($G_v$)
defined by $ G_v = 1 + \frac{R2}{R1} $ at the output.


\paragraph{Analysing the failure modes of the Potential Divider.}
\label{subsec:potdiv}
Since the resistors work to provide a clearly defined function, that of a potential divider,
we can treat them as a collection of components with a specific functionality---which can be termed a `{\fg}'. 
This {\fg} has two members, $R1$ and $R2$.
%
The potential divider circuit can be considered as a component
that provides the function of splitting two voltages into three,
the third voltage being a ratio defined by the values of the resistors.
%Taken as an entity the potential divider can be viewed as a {\dc}.
%That is to say we can treat the potential divider, comprised of two resistors
%to act as a {\dc}.
%
Using the EN298 specification for resistor failure~\cite{en298}[App.A],
we can assign  failure modes of $OPEN$ and $SHORT$ to the resistors individually (assignment of failure modes 
is discussed in more detail in section~\ref{sec:resistorfm}).
% 
We represent a resistor and its failure modes as a directed acyclic graph (DAG)
(see figure \ref{fig:rdag}).
\begin{figure}[h+]
 \centering
 \begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep]
     \tikzstyle{every pin edge}=[<-,shorten <=1pt]
     \tikzstyle{fmmde}=[circle,fill=black!25,minimum size=30pt,inner sep=0pt]
     \tikzstyle{component}=[fmmde, fill=green!50];
     \tikzstyle{failure}=[fmmde, fill=red!50];
     \tikzstyle{symptom}=[fmmde, fill=blue!50];
     \tikzstyle{annot} = [text width=4em, text centered]
     \node[component] (R) at (0,-0.8) {$R$};
     \node[failure] (RSHORT) at (\layersep,-0) {$R_{SHORT}$};
     \node[failure] (ROPEN) at (\layersep,-1.6) {$R_{OPEN}$};
     \path (R) edge (RSHORT);
     \path (R) edge (ROPEN);
 \end{tikzpicture}
 \caption{DAG representing a resistor and its failure modes.}
 \label{fig:rdag}
 \end{figure}
 
Thus $R1$ has failure modes $\{R1_{OPEN}, R1_{SHORT}\}$ and $R2$ has failure modes $\{R2_{OPEN}, R2_{SHORT}\}$.
%     
We look at each of these base component failure modes,
and determine how they affect the operation of the potential~divider.
%Each failure mode scenario we look at will be given a test case number,
%which is represented on the diagram, with an asterisk marking 
%which failure modes is modelling (see figure \ref{fig:fg1a}).
%
Each resistor failure mode is a potential {\fc} in the potential~divider.
%%For this example we look at single failure modes only.
For each failure mode in our {\fg}---potential~divider---we can assign a {\fc} 
number (see table \ref{tbl:pdfmea}).
%
Each {\fc} is analysed to determine %the symptom of 
a failure in 
the potential~dividers' operation. 
%
For instance
if resistor $R_1$ were to become open, then the potential~divider would not be grounded and the 
voltage output from it would float high (+ve).
%
This would mean the resulting failure  of the potential~divider would be voltage high output. 
%
The failure mode of a high potential~divider output is termed `HighPD', and 
for it outputting a low voltage `LowPD'. % Andrew asked for this to be defined before the table. ...
%We can now consider the {\fg}
%as a component in its own right, and its symptoms as its failure modes.
%
{ \small
\begin{table}[ht]
\caption{Potential Divider: Failure Mode Effects Analysis: Single Failures} % title of Table
\centering % used for centering table
\begin{tabular}{||l|c|c|l||}
\hline \hline
% FIDDLINGING HATAR HAVING TO REMOVE THE TERM FAILURE SCENARIO HERE....
% GOOD ENOUGH FOR THE IET/IEEE, but then they live in the real
% world don't they....
 %\textbf{Failure}    & \textbf{Pot.Div} &    \textbf{Symptom}   \\
 %\textbf{scenario}     &  \textbf{Effect} &   \textbf{Description}   \\
 
 \textbf{Failure }    & \textbf{Pot.Div} &   \textbf{Derived Component} \\ % \textbf{Symptom}   \\
 \textbf{Cause}     &  \textbf{Effect} &   \textbf{Failure modes}     \\ %\textbf{Description}   \\
%   R         &    wire        & res +         & res -    & description
\hline
\hline
 FC1: $R_1$ SHORT    &  LOW       &          LowPD \\ 
 FC2: $R_1$  OPEN    &  HIGH        &         HighPD \\ \hline
 FC3: $R_2$ SHORT    &  HIGH        &        HighPD \\  
 FC4: $R_2$ OPEN     &  LOW         &        LowPD \\ \hline
\hline
\end{tabular} 
\label{tbl:pdfmea}
\end{table}
}
%
%\vbox{
From table  \ref{tbl:pdfmea} we can see that the resistor 
failures modes lead to some common symptoms of failure from the perspective of the {\fg}.
%YOU FIDDLINGING FITTAS, TELL ME TO USE THE TERM SYMPTOM AND THEN TELL ME TO FIDDLINGING REMOVE IT A YEAR LATER> FITTAS 
%symptoms.
%These common symptoms of failure are an important concept for FMMD.
Notice the many to one mapping from {\bc} failure modes to {\dc} failure mode;
this is a typical effect of an FMMD analysis stage, and means that with each analysis stage we reduce
the number of failure modes to consider.
%
%This means that we can take multiple failure modes from {\fgs} components and resolve them 
%to failure modes of the {\fg}. 
%
%This means that
We thus simplify the FMMD analysis task for further stages.
%
By drawing vertices for failure modes, % symptoms,
and edges for the relationships between them
%component failure modes and 
%{\dc} failure modes. % resultant symptoms.
%The {\fg} can now be considered a derived component.
we represent the analysis with the DAG in figure \ref{fig:fg1adag}.
%}
%
\begin{figure}[h]
 \centering
 \begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep]
     \tikzstyle{every pin edge}=[<-,shorten <=1pt]
     \tikzstyle{fmmde}=[circle,fill=black!25,minimum size=30pt,inner sep=0pt]
     \tikzstyle{component}=[fmmde, fill=green!50];
     \tikzstyle{failure}=[fmmde, fill=red!50];
     \tikzstyle{symptom}=[fmmde, fill=blue!50];
     \tikzstyle{annot} = [text width=4em, text centered]
 
     \node[component] (R1) at (0,-1.0) {$R_1$};
     \node[component] (R2) at (0,-3.0) {$R_2$};

     \node[failure] (R1SHORT) at (\layersep,-0) {$R1_{SHORT}$};
     \node[failure] (R1OPEN) at (\layersep,-1.8) {$R1_{OPEN}$};

     \node[failure] (R2SHORT) at (\layersep,-3.4) {$R2_{SHORT}$};
     \node[failure] (R2OPEN) at (\layersep,-5.2) {$R2_{OPEN}$};
 
     \path (R1) edge (R1SHORT);
     \path (R1) edge (R1OPEN);

     \path (R2) edge (R2SHORT);
     \path (R2) edge (R2OPEN);

     % Potential divider failure modes
     %  
     \node[symptom]  (PDHIGH) at (\layersep*2,-1.0) {HighPD};
     \node[symptom] (PDLOW) at (\layersep*2,-3.0) {LowPD};

     \path (R1OPEN) edge (PDHIGH);
     \path (R2SHORT) edge (PDHIGH);

     \path (R2OPEN) edge (PDLOW);
     \path (R1SHORT) edge (PDLOW);

 \end{tikzpicture}

 \caption{Failure mode graph of the  Potential~Divider}
 \label{fig:fg1adag}
 \end{figure}
% 
We now have  % can now  create % formulate 
a {\dc} to represent this potential divider:
we name this \textbf{PD}.
This {\dc} will have two failure modes, $HighPD$ and $LowPD$.
% HTR 05SEP2012 We use the symbol $\derivec$ to represent the process of taking the analysed 
% HTR 05SEP2012 {\fg} and creating from it a {\dc}. 
% HTR 05SEP2012 The creation of the {\dc} \textbf{PD} is represented as a 
% HTR 05SEP2012 hierarchy diagram in figure~\ref{fig:dc1}.
% HTR 05SEP2012 We represent the {\dc} \textbf{PD}, as a DAG in figure  \ref{fig:dc1dag}.
%We could represent it algebraically thus: $ \derivec(PotDiv) = 
% FIDDLINGING OVERSATTNING THIS IS to be REMOVED TOO : FITTAS
% \begin{figure}[h+]
%  \centering
%  \includegraphics[width=200pt,keepaspectratio=true]{./CH4_FMMD/dc1.png} 
%  % dc1.jpg: 430x619 pixel, 72dpi, 15.17x21.84 cm, bb=0 0 430 619
%  \caption{From functional group to derived component, a hierarchical diagram showing how the {\fg} is analysed using the $\derivec$ 
%  manual process and from this the {\dc} is created.}
%  \label{fig:dc1}
% \end{figure}
% We can now represent the potential divider as a {\dc}.
% Because we have its symptoms (or failure mode behaviour),
% we can treat these as the failure modes of a new {\dc}.
% We can represent this as a DAG (see figure \ref{fig:dc1dag}).
% \begin{figure}[h+]
%  \centering
%  \begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep]
%      \tikzstyle{every pin edge}=[<-,shorten <=1pt]
%      \tikzstyle{fmmde}=[circle,fill=black!25,minimum size=30pt,inner sep=0pt]
%      \tikzstyle{component}=[fmmde, fill=green!50];
%      \tikzstyle{failure}=[fmmde, fill=red!50];
%      \tikzstyle{symptom}=[fmmde, fill=blue!50];
%      \tikzstyle{annot} = [text width=4em, text centered]
%      \node[component] (PD) at (0,-0.8) {{\em PD}};
%      \node[symptom] (PDHIGH) at (\layersep,-0) {$PD_{HIGH}$};
%      \node[symptom] (PDLOW) at (\layersep,-1.6) {$PD_{LOW}$};
%      \path (PD) edge (PDHIGH);
%      \path (PD) edge (PDLOW);
%  \end{tikzpicture}
%  \caption{DAG representing the {\dc} Potential Divider (PD) and its failure modes.}
%  \label{fig:dc1dag}
%  \end{figure}
%
% The derived component is defined by its failure modes and 
% the functional group used to derive it.
% %We can consider this an an orthogonal WHAT???? Group ???? Collection ????
We now have a {\dc} model for a generic potential divider, and can use it
as a building block for other {\fgs} in the same way as we used the base components $R1$ and $R2$.
%
%\clearpage
%
\paragraph{Failure Mode Analysis of a generic op-amp.}
%
%\clearpage
Let us now consider the op-amp as a {\bc}. According to 
FMD-91~\cite{fmd91}[3-116] an op amp may have the following failure modes %(with assigned probabilities):
latch-up (l\_up), where the output voltage is stuck at high , % (12.5\%), 
latch-down (l\_dn), where the output voltage is stuck low, %(6\%), 
no-operation (noop), where the op-amp cannot drive the output, %(31.3\%), 
and low~slew~rate (lowslew) where the op-amp cannot react quickly to changes on its inputs. %(50\%).
\nocite{mil1991}
%
%\ifthenelse {\boolean{dag}}
%{
%
%\clearpage
We can represent these failure modes on a DAG (see figure~\ref{fig:op1dag}).
\begin{figure}[h+]
 \centering
 \begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep]
     \tikzstyle{every pin edge}=[<-,shorten <=1pt]
     \tikzstyle{fmmde}=[circle,fill=black!25,minimum size=30pt,inner sep=0pt]
     \tikzstyle{component}=[fmmde, fill=green!50];
     \tikzstyle{failure}=[fmmde, fill=red!50];
     \tikzstyle{symptom}=[fmmde, fill=blue!50];
     \tikzstyle{annot} = [text width=4em, text centered]

     \node[component] (OPAMP) at (0,-1.8) {$OPAMP$};
   
     \node[failure] (OPAMPLU) at (\layersep,-0) {l-up};
     \node[failure] (OPAMPLD) at (\layersep,-1.2) {l-dn};
     \node[failure] (OPAMPNP) at (\layersep,-2.4) {noop};
     \node[failure] (OPAMPLS) at (\layersep,-3.6) {lowslew};

     \path (OPAMP) edge (OPAMPLU);
     \path (OPAMP) edge (OPAMPLD);
     \path (OPAMP) edge (OPAMPNP);
     \path (OPAMP) edge (OPAMPLS);
   
 \end{tikzpicture}
 % End of code
 \caption{DAG representing failure modes of an Op-amp}
 \label{fig:op1dag}
 \end{figure}
%
%}
%{
%}
%\clearpage
%\paragraph{Modelling the OP amp with the potential divider.}
We now bring the op-amp and the {\dc} {\em PD} together to % andrew heavily critised this sentence but it made sense to Chris and I
form a {\fg} to model the failure mode behaviour of the non-inverting amplifier.
%
%We have the failure modes of the {\dc} for the potential divider, 
%so we do not need to go back and consider the individual resistor failure modes that defined its behaviour.
%
%We can now create a  {\fg} for the non-inverting amplifier
%by bringing together the failure modes from \textbf{opamp} and \textbf{PD}.
%
The two components in this new {\fg}, the op-amp and the  {\dc} {\em PD} have failure modes, which we use
as {\fcs} in table~\ref{tbl:ampfmea1}.
%Each of these failure modes will be given a {\fc} for analysis,
%and this is represented in table \ref{tbl:ampfmea1}.
% FITTAS NOW I CANNOT USE THE TERM FAILURE SCENARIO---was first column of table below
% 
%\clearpage
{\footnotesize
\begin{table}[h+]
\caption{Non Inverting Amplifier: Failure Mode Effects Analysis: Single Faults} % title of Table
\centering % used for centering table
\begin{tabular}{||l|c|c|l||}
\hline \hline
%% FIDDLINGING HATAR HAVING TO REMOVE THE TERM FAILURE SCENARIO --- whats is this the fucking
%%childrens version
%\textbf{Failure}    & \textbf{Amplifier} &   \textbf{Derived component} \\ %Symptom}   \\
% \textbf{Scenario} &  \textbf{Effect}      &   \textbf{Failure Modes} \\ %Description}   \\
%%FFor

%%% Undrar jag om  fittan ska avstand mot failure fucking cause
%
 \textbf{Failure}    & \textbf{Amplifier} &   \textbf{Derived component} \\ %Symptom}   \\
 \textbf{Cause}      &  \textbf{Effect}      &   \textbf{Failure Mode} \\ %Description}   \\
%   R         &    wire        & res +         & res -    & description
\hline
\hline
 FC1: $OPAMP$    &  Output               &       AMPHigh \\ 
  LatchUP        &  High                 &          \\ \hline

 FC2: $OPAMP$  &  Output Low&       AMPLow \\  
   LatchDown                       &   Low gain                         &          \\ \hline

 FC3: $OPAMP$  &  Output Low         &        AMPLow \\  
   No Operation                      &                       &               \\ \hline

 FC4: $OPAMP$   &  Low pass  &       LowPass \\  
     Low Slew   &  filtering &              \\ \hline

 FC5: {\em PD}          &   Output High         &       AMPHigh \\  
    LowPD                     &                       &              \\ \hline

 FC6: {\em PD}       &  Output Low &        AMPLow \\  
    HighPD       &   Low Gain   &              \\ \hline
 %TC7: $R_2$ OPEN     &  LOW       &      &  LowPD \\ \hline
\hline
\end{tabular} 
\label{tbl:ampfmea1}
\end{table}
}
%
%
% 
%
\begin{figure}[h+]
 \centering
 \begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep]
     \tikzstyle{every pin edge}=[<-,shorten <=1pt]
     \tikzstyle{fmmde}=[circle,fill=black!25,minimum size=30pt,inner sep=0pt]
     \tikzstyle{component}=[fmmde, fill=green!50];
     \tikzstyle{failure}=[fmmde, fill=red!50];
     \tikzstyle{symptom}=[fmmde, fill=blue!50];
     \tikzstyle{annot} = [text width=4em, text centered]
 
     % Draw the input layer nodes
     %\foreach \name / \y in {1,...,4}
     % This is the same as writing \foreach \name / \y in {1/1,2/2,3/3,4/4}
     %    \node[component, pin=left:Input \#\y] (I-\name) at (0,-\y) {};
 
     \node[component] (OPAMP) at (0,-1.8) {$OPAMP$};
     \node[component] (R1) at (0,-7) {$R_1$};
     \node[component] (R2) at (0,-8.6) {$R_2$};

     %\node[component] (C-3) at (0,-5) {$C^0_3$};
     %\node[component] (K-4) at (0,-8) {$K^0_4$};
     %\node[component] (C-5) at (0,-10) {$C^0_5$};
     %\node[component] (C-6) at (0,-12) {$C^0_6$};
     %\node[component] (K-7) at (0,-15) {$K^0_7$};
 
     % Draw the hidden layer nodes
     %\foreach \name / \y in {1,...,5}
     %    \path[yshift=0.5cm]

             \node[failure] (OPAMPLU) at (\layersep,-0) {l-up};
             \node[failure] (OPAMPLD) at (\layersep,-1.2) {l-dn};
             \node[failure] (OPAMPNP) at (\layersep,-2.5) {noop};
             \node[failure] (OPAMPLS) at (\layersep,-3.8) {lowslew};

             \node[failure] (R1SHORT) at (\layersep,-5.6) {$R1_{SHORT}$};
             \node[failure] (R1OPEN) at (\layersep,-7.4) {$R1_{OPEN}$};

            \node[failure] (R2SHORT) at (\layersep,-9.0) {$R2_{SHORT}$};
             \node[failure] (R2OPEN) at (\layersep,-11.0) {$R2_{OPEN}$};



     % Draw the output layer node
 
%      % Connect every node in the input layer with every node in the
%      % hidden layer.
%      %\foreach \source in {1,...,4}
%      %    \foreach \dest in {1,...,5}
     \path (OPAMP) edge (OPAMPLU);
     \path (OPAMP) edge (OPAMPLD);
     \path (OPAMP) edge (OPAMPNP);
\path (OPAMP) edge (OPAMPLS);

     \path (R1) edge (R1SHORT);
     \path (R1) edge (R1OPEN);

     \path (R2) edge (R2SHORT);
     \path (R2) edge (R2OPEN);


     % Potential divider failure modes
     %  
     \node[symptom]  (PDHIGH) at (\layersep*2,-7) {HighPD};
     \node[symptom] (PDLOW) at (\layersep*2,-8.6) {LowPD};



     \path (R1OPEN) edge (PDHIGH);
     \path (R2SHORT) edge (PDHIGH);


     \path (R2OPEN) edge (PDLOW);
     \path (R1SHORT) edge (PDLOW);



     \node[symptom]  (AMPHIGH) at (\layersep*3.4,-3) {$AMP_{HIGH}$};
     \node[symptom] (AMPLOW) at (\layersep*3.4,-5) {$AMP_{LOW}$};
      \node[symptom] (AMPLP) at (\layersep*3.4,-7) {$LOWPASS$};

     \path (PDLOW) edge (AMPHIGH);
     \path (OPAMPLU) edge (AMPHIGH);

     \path (PDHIGH) edge (AMPLOW);
     \path (OPAMPNP)  edge (AMPLOW);
     \path (OPAMPLD) edge (AMPLOW);

     \path (OPAMPLS) edge (AMPLP);
%      %\node[symptom,pin={[pin edge={->}]right:Output}, right of=C-1a] (O) {};
%      \node[symptom, right of=C-1a] (s1) {s1};
%      \node[symptom, right of=C-2a] (s2) {s2};
%  
%  
%  
%      \path (C-2b) edge (s1);
%      \path (C-1a) edge (s1);
%  
%      \path (C-2a) edge (s2);
%      \path (C-1b) edge (s2);
%  
%      %\node[component, right of=s1] (DC) {$C^1_1$};
%  
%      %\path (s1) edge (DC);
%      %\path (s2) edge (DC);
%      
%  
%  	`
%      % Connect every node in the hidden layer with the output layer
%      %\foreach \source in {1,...,5}
%      %    \path (H-\source) edge (O);
%  
%      % Annotate the layers
%      \node[annot,above of=C-1a, node distance=1cm] (hl) {Failure modes};
%      \node[annot,left of=hl] {Base Components};
%      \node[annot,right of=hl](s) {Symptoms};
     %\node[annot,right of=s](dcl) {Derived Component};
 \end{tikzpicture}
 % End of code
 \caption{Full DAG representing failure modes and {\bcs} of the Non Inverting Op-amp Circuit}
 \label{fig:noninvdag1}
 \end{figure}
%
%Let us consider, for the sake of the example, that the voltage follower (very low gain of 1.0)
%amplification characteristics from FS2 and FS6 can be considered as low output from the OPAMP for the application
%in hand (say milli-volt signal amplification).
%
For this amplifier configuration we have three {\dc} failure modes; {\em AMP\_High, AMP\_Low, LowPass}. % see figure~\ref{fig:fgampb}.
% HTR 05SEP2012 
This model now has two stages of analysis, as represented in figure~\ref{fig:dc2}.
%
From the analysis in table \ref{tbl:ampfmea1} we can create the {\dc} {\em NONINVAMP}, which 
represents the failure mode behaviour of the non-inverting amplifier.
%
% HTR 05SEP2012 \begin{figure}[h]
% HTR 05SEP2012 % HTR 05SEP2012  \centering
% HTR 05SEP2012  \includegraphics[width=225pt]{./CH4_FMMD/dc2.png}
% HTR 05SEP2012  % dc2.png: 635x778 pixel, 72dpi, 22.40x27.45 cm, bb=0 0 635 778
% HTR 05SEP2012  \caption{Hierarchy representing the two stage FMMD analysis 
% HTR 05SEP2012  (i.e. two `$\derivec$' processes taking {\fgs} and creating {\dcs}) for the non-inverting amplifier}
% HTR 05SEP2012  \label{fig:dc2}
% HTR 05SEP2012 \end{figure}
%
%
We can represent the analysis stages of INVAMP as an Euler diagram, 
showing the choice of de-composition of the system into {\fgs} (see figure~\ref{fig:eulerfmmd}).
%where the curves
%define the components and {\dcs} used to form the INVAMP model, see figure~\ref{fig:eulerfmmd}.
%
\begin{figure}[h]
 \centering
 \includegraphics[width=300pt]{./CH4_FMMD/eulerfmmd.png}
 % eulerfmmd.png: 413x207 pixel, 72dpi, 14.57x7.30 cm, bb=0 0 413 207
 \caption{FMMD analysis of the INVAMP represented as an Euler diagram, showing how
the components have been grouped into {\fgs} and then used as {\dcs} to build the analysis hierarchy.}
 \label{fig:eulerfmmd}
\end{figure}
%
We can now examine the failure mode relationships in the {\dc} {\em INVAMP} by drawing it as a DAG.
%expand the {\em PD} {\dc} and  have a full FMMD failure %mode 
%model
We can traverse this DAG, tracing the top level % symptoms 
failure modes
down to the base component failure modes, %leaves of the tree (the leaves being {\bc} failure modes),
and thus determine all possible causes for
the three high level symptoms, i.e. the failure~modes of the non-inverting amplifier {\dc} {\em INVAMP}.
%
Knowing all possible causes for a top level event/failure~mode
is extremely useful;
if a particular top~level/system~failure was classified as catastrophic for instance, 
we could use this information
to strengthen components that could cause that particular top level event/system~failure.
%
Figure \ref{fig:noninvdag1} shows a DAG,
from which we can trace top level failure modes to the base component failure modes
that can cause them.
That is, we can trace failure mode effects 
from base component level to the top and vice versa.






% \paragraph{Worked example. Effect on State explosion.}
% The potential divider {\dc} reduced the number of failures to consider from four to two.
% The op-amp and potential divider modelled together, reduced the number of 
% base component failures from eight to three failure symptoms. 
% %
% In general,
% because symptoms are collected, we can state
% the number of failure symptoms for a {\fg} will be less than or equal to the number
% of component failures.
% % In practise the number of symptoms is usually around half the 
%number of component failure modes, for each stage of FMMD analysis.
%This methodology has also been applied elsewhere to the inverting amplifier configuration.
%One can then use use {\dcs} in more complex circuits where the advantages of FMMD become more obvious,
%(such as $8^{th}$ order filters using four bi-quad op-amp stages).



%% GARK END



%\clearpage

% When analysing a safety critical system using 
% any form of Failure Mode Effects Analysis (FMEA), we need clearly defined failure modes for
% all the components that are used in a given system.
% %
% We introduce a constraint  that
% component failure modes must be mutually exclusive within individual components.
% This concept is later developed as the condition of `unitary state' fault modes (see section~\ref{sec:unitarystate}). 

\section{Defining terms}

% Here we define the terms as used in the worked example.
% 
% \begin{table}[h]
% \center
% \begin{tabular}{||p{3cm}|p{10cm}||} 
% 
% \hline \hline
%   {\em Definition } & {\em Description}    \\ \hline
% 
% System & A product designed to  
%         work as a coherent entity  \\  \hline  
% 
%  
% 
% Base Component & An atomic building block used at the lowest level of an FMMD model.
%                 % \footnote{In the case of combinatorial packaged parts (such as a chip containing
%                %  four op-amps, each op-amp on the chip is considered as one atomic, or {\em{\bc}}).}. %% where did this footnote GO????
%                % seems like its a bug in TeX 04JUN2012
%        \\
% {\em Constraint} & This object must have a defined set of failure~modes. \\    \hline 
% 
% 
% Component  & A building block, this may be a {\bc} or a {\dc}. \\%or manufacturers part. \\  
% {\em Constraint} & This object must have a defined set of failure~modes. \\    \hline 
% 
% 
% 
% %Sub-system & A part of a system, sub-systems may contain sub-systems etc. \\ \hline % in FMMD terminology
%              %this would be both a {\em{\dc}} and a {\fg}. \\
% %{\em Constraint} & This object must have a defined set of failure~modes. \\    \hline 
% 
% %%A part failure mode is the way in which a component fails "functionally" on component level. Often a part has only a few failure modes. 
% Failure mode & A failure mode~\cite{sccs}[p.8] is the way in which a component may fail functionally (i.e. the way in which it can fail to perform 
% its intended function). A component will typically have few failure modes. \\     \hline 
% 
% Functional Grouping & A collection of 
%                   components with a functional purpose.
%                   \\    \hline  
% 
% % Symptom      & A failure symptom of a {\fg}, caused by % WHICH MUST BE UNIQUE AND SEPARATE WITHIN THE \fg
% %                a combination of its component failure modes. \\ \hline
% 
% 
% Derived Component & A theoretical component, created to represent the failure
%                     mode behaviour of a {\fg}. \\  
%                     
% {\em Constraint} & This object must have a defined set of failure~modes. \\    \hline 
% UNITARY STATE NOT DISCUSSED HERE NOW......
% Unitary State & A component with `unitary~state' failure modes, means that it cannot fail
% with more than one of its failure modes at a time.\\    \hline 
%%%% TOLD TO REMOVE THIS BUT FIDDLINGING HATAR TO HAVE TO DO IT
% Failure Scenario & A single failure mode (or a combination), used to
%                    determine failure mode effects on a {\fg}.
%\\
%  \hline
% \end{tabular}
% \caption{Failure Mode Modular De-composition: definitions and terms}
% \label{tbl:fmmd_defs}
% \end{table}


\paragraph{A discussion on the terms Parts, Components and Base Components.}
A component is anything we use to build a %a product or 
system. 
It could be something quite complicated 
like an %integrated 
micro-controller/servo motor, or quite simple like the resistor.
%
We %can 
usually identify a 
component by its name, a manufacturer's part number and perhaps
a vendor's reference number. %In a controlled production evironment
%
Geoffrey Hall, writing in Spacecraft Systems Engineering~\cite{scse}[p.619]
defines a `part' thus
``{{Part(definition)}---The lowest level of assembly, beyond which further disassembly irrevocably destroys the item''.
%
This definition %of a `part' 
is useful, but consider   parts, such as quad packaged op-amps:
in this case we have four op-amps on one chip. 
%
Using traditional  FMEA methods~\cite{sccs}[p.34] we would consider each op-amp in the package
as a separate building block for a circuit. For FMMD each of these four op-amps
in the chip would be considered to be a separate {\bc}.
% CAN WE FIND SUPPORT FOR THIS IN LITERATURE???
%
We need to go further than the above definition of a part, and define % defining 
an atomic entity. % used as a building block.
%The term component, in American English, can mean a building block or a part.
%In British-English a component generally is given to mean the definition for part above.
We define {\bc} to be the lowest level---an entity with which we begin our analysis---a component 
that we use as a starting bottom-up building block.
%This is a choice made by the analyst, often guided by the standards to which the analysis is being performed. % to. 
%
Both op-amps and transistors have published statistical failure rates and yet an op-amp is constructed from transistors.
%
However, a  circuit designer would usually consider individual transistors and individual op-amps
as lowest level building blocks.
%
In fact any lowest level building block with published failure modes could be considered to be a {\bc},
but this determination is the choice of the analyst,  which may be influenced by the particular 
standard~\cite{en298}~\cite{en61508} %~\cite{en230} 
to which we are approving/analysing a system.

%a lowest level of assembly `part' or an atomic entity, which ever is the smaller
%and component to mean either a part or a sub-assembly. 
%Definitions used in FMMD are lisfuckup mode or not?????ted in table~\ref{tbl:fmmd_defs} and discussed below.

%%  FIDDLINGING STEREO SUB_SYSTEM EXAMPLE, THE FIDDLINGING CHILDRENS SECTION

\subsection{Definition of terms: sound system example.}

%000000elpful here to define the terms, `system', `functional~group', `component', `base~component', `symptom' and `derived~component/sub-system'.
%These are listed in table~\ref{tab:symexdef}.

A system, is any coherent piece of equipment that performs a given task. % safety critical product.
%
A component can be viewed as a sub-system that is a part of some larger system.
%
A modular system common to many homes is the sound separates audio system or stereo hi-fi.
%
This is used as an example to describe terms used in FMMD.
%
For instance a stereo amplifier separate/slave is a component.
%The 
A whole sound system consists perhaps of the following components: 
CD-player, tuner, amplifier~separate, loudspeakers and ipod~interface.
 
%Thinking like this is a top~down analysis approach
%and is the way in which FTA\cite{nucfta} analyses a System
%and breaks it down.
\paragraph{Functional Groupings and Components.} % {\fgs} and components.}
Components can be composed of components, recursively down to
the {\bcs}. 
%
However each component
will have a fault/failure behaviour and it should
always be possible to obtain a set of failure modes
for each component.  
%In FMMD terms a sub-system is a derived component.
%
If we look at the sound system example, 
the CD~player could fail in several distinct ways, 
and this could  have been caused by a number of {{the CD players internal}} component failure modes.
%no matter what has happened to it or has gone wrong inside it.
%
Using the reasoning that working from the bottom up forces the consideration of all possible
component failures (which can be missed in a top~down approach \cite{faa}[Ch.9]),
we are presented with a problem: which initial collections of base components should we choose?
%
For instance in the CD~player example, if we start at the bottom, we are presented with
a massive list of base~components, resistors, motors, user~switches, laser~diodes, etc.
%Clearly, 
Working from the bottom~up, we need to pick small
collections of components that work together in some way.
These collections are termed `{\fgs}'. 
%
For instance, the  circuitry that powers the laser diode
to illuminate the CD might contain a handful of components, and as such would make a good candidate
as one of the base level {\fgs}. It is a good candidate because
it performs a well defined function and it could be considered a design module.

\paragraph{Functional grouping to {\dc} process outline.}
%In choosing the lowest level (base component) sub-systems we would look 
%for the smallest `functional~groups' of components within a system. 
We %can 
define a {\fg} as a set of components that interact
to perform a specific function.
%
When we have analysed the fault behaviour of a {\fg}, we can treat it as a `black~box'.
%
The {\fgs} fault behaviour will consist of a set of %
failure modes caused by combinations
of its component's failure modes.
%
We can thus create a new component derived from analysing the {\fg} where
%
the symptoms of failure of the {\fg} are the failure modes of this new `{\dc}'.
%
An outline of the FMMD process is itemised below:
\begin{itemize}
 \item Collect components to form a {\fg},
 \item Create failure cause `test~cases' for all failure modes of the components within the {\fg},
 \item Analyse the effect of all the test~cases on the operation of the {\fg},
 \item Determine the common failure modes of the {\fg},
 \item Create and name a derived component for the {\fg},
 \item Assign the common failure modes from the {\fg} as the failure modes of the {\dc}.
\end{itemize}
%
The FMMD process is described in more detail in section~\ref{sec:symptomabs}.

%We can now call our functional~group a sub-system or a derived~component. 
%The goal here is to know how it will behave under fault conditions !
%Imagine buying one such `sub~system'  from a very honest vendor.
%One of those sir, yes but be warned it may fail in these distinct ways, here
%in the honest data sheet the set of failure modes is listed!


%This type of thinking is starting to become more commonplace in product literature, with the emergence
%of reliability safety standards such as IOC1508\cite{sccs},EN61508\cite{en61508}.
%FIT (Failure in Time - expected number of failures per billion hours of operation) values
%are published for some micro-controllers. A micro~controller
%is a complex sub-system in its self and could be considered a `black~box' with a given reliability.
%\footnote{Microchip sources give an FIT of 4 for their PIC18 series micro~controllers\cite{microchip}, The DOD
%1991 reliability manual\cite{mil1991} applies a FIT of 100 for this generic type of component}






% \begin{table}[h+]
% \caption{CANbus messages id}
% \begin{tabular}{|p{1cm}|p{10cm}|}
%  \hline  \hline
% \textbf{Bit Field} & \textbf{Description} \\  \hline  \hline
%   29      & Priority bit, set to zero gives the can message high priority in physical layer arbitration.\\ \hline
%  27-26    & extended source unit, 2 bits (shift left by 4).\\ \hline
%  25-24    & extended local unit, 2 bits (shift left by 4).\\ \hline
%  20       & unit to unit bit. This means message   for communication between UNITS on the CANbus, not peripheral devices.\\ \hline
%  19-16    & source unit address (see bits 27-26).\\ \hline
%  15-12    & local unit address (see bits 25-24).\\ \hline
%  11       & broadcast bit (for time signals etc.).\\ \hline
%  10-5     & can handle (6 bit peripheral identifier, used in conjunction with six bit local address).\\ \hline
%  4        & peripheral bit, set to 0 indicates a message from a UNIT, to 1 from a peripheral.\\ \hline
%  3-0      & CAN ID message. For messages between peripherals and units, this identifies the message type. \\
% \hline \hline
% \end{tabular} 
% \label{tbl:fmmd_defs}
% \end{table}

%What components all have in common is that they can fail, and fail in a
% number of well defined ways. 
For common {\bcs}
there is established literature for the failure modes for the system designer to consider 
(often with accompanying statistical
failure rates)~\cite{mil1991,en298,fmd91}.
%
For instance, a simple resistor is generally considered 
to fail in two ways, it can go open circuit or it can short.
%
Electrical components have data-sheets associated with them. The data sheets
supply detailed information on the component as supplied by the manufacturer.
%
Because they are design related they rarely show %clearly detail the
failure modes of the component, with environmental factors and MTTF~\cite{sccs}[p.165] statistics.
Given the growing usage of FMEA/FMEDA in industry this may change.
Currently, failure mode information is generally only  available for generic component types~\cite{mil1991, fmd91}.
Thus we can associate a set of failure modes to types of component, 
for example  $ResistorFaultModes=\{OPEN, SHORT\}$\footnote{The failure modes of the resistor 
are discussed in section~\ref{sec:resistorfm}.}.

\begin{figure}[h]
 \centering
 \includegraphics[width=200pt]{./CH4_FMMD/component.png}
 % component.png: 436x136 pixel, 72dpi, 15.38x4.80 cm, bb=0 0 436 136
 \caption{UML diagram of a component and its associated failure modes.}
 \label{fig:component}
\end{figure}

% \begin{figure}[h]+
%  \centering
%  \includegraphics[width=300pt,bb=0 0 437 141,keepaspectratio=true]{CH4_FMMD/component.png}
%  % component.png: 437x141 pixel, 72dpi, 15.42x4.97 cm, bb=0 0 437 141
%  \caption{A Component and its Failure Modes}
%  \label{fig:component}
% \end{figure}

The UML class diagram in figure 
\ref{fig:component} shows a component as a data
structure with its associated failure modes.
%
From this diagram we see that each component must have at least one failure mode.
%
To clearly show that the failure modes are mutually exclusive states, or unitary states associated with one component,
each failure mode is referenced back to only one component.
%
This constraint is discussed in detail in section~\ref{sec:unitarystate}.

%%-%% MTTF STATS CHAPTER MAYBE ??
%%-%%
%%-%% This modelling constraint is due to the fact that even generic components with the same 
%%-%% failure mode types, may have different statistical MTTF properties within the same 
%%-%% circuitry\footnote{For example, consider resistors one of high resistance and one low.
%%-%% The generic failure modes for a resistor will be the same for both.
%%-%% The lower resistance part will draw more current and therefore have a statistically higher chance of failure.}.


%Controlled products are typically built using a large number of components and these are traditionally
%kept in a `parts~list'. 
%
%For a safety critical product this is usually a formal document 
%and is used for ordering systems from third parties, and by quality inspectors 
%to ensure the correct parts are being fitted.
%The parts list is shown for completeness here, as people involved with Printed Circuit Board (PCB) and electronics production, verification and testing would want to know where it lies in the model.
%The parts list is not actively used in the FMMD method, but is shown in the UML model for completeness.
%
%For the UML diagram in figure \ref{fig:componentpl} the parts list is simply a collection of components.
%
% \begin{figure}[h]
%  \centering
%  \includegraphics[width=400pt,bb=0 0 712 68,keepaspectratio=true]{CH4_FMMD/componentpl.png}
%  % componentpl.png: 712x68 pixel, 72dpi, 25.12x2.40 cm, bb=0 0 712 68
%  \caption{Parts List of Components}
%  \label{fig:componentpl}
% \end{figure}
% 
% %Components in the parts list % (bought in parts) 
%will be termed `base~components'.
%Components derived from base~components (i.e. sub-assemblies) will not always require 
%parts~numbers\footnote{It is common practise for sub-assemblies, PCB's, mechanical parts,
%software modules and some collections of components to have part numbers.
%This is a production/configuration~control issue, and linked to Bill of Material (BOM)~\cite{opmanage}
%database structures etc. Parts numbers for derived components are not directly related to the analysis process
%we are concerned with here.}, and will
%not require a vendor reference, but must be named locally in the FMMD model.

%We can term 
By `modularising a system' we mean recursively breaking it into smaller sections for analysis.
%
When modularising a system from the top~down, as in Fault Tree Analysis (FTA)~\cite{nasafta}\cite{nucfta} ,
it is common to term the modules identified as sub-systems.
%
When modularising failure mode behaviour from the bottom up, it is more meaningful to call them `derived~components'.
 


\section{Failure Modes in depth}

%To perform FMEA appraisals we begin with {\bcs}~\cite{en298}~\cite{bfmea}~\cite{en61508}. 
%These will have a set of failure modes assigned to them.
In order to perform FMEA we require a set of failure modes for each {\bc} in the system under investigation.
%
These are failure modes from the perspective of the user
of the component. 
%
We are not usually concerned with how the component has failed
internally. 
%
What we need to know are the symptoms of failure.
With these symptoms, we can trace their effects through the system under investigation
and finally determine top-level failure events. % outcomes.
%
Different approval agencies may list different failure mode sets for the same generic components.
%
This apparent anomaly is discussed in section~\ref{sec:determine_fms} using two common electronic components
as examples.

 

%%
%% DETAILED LOOK AT TWO COMPONENTS AND THEIR FAILURE MODES
%%
%% FROM TWO LITERATURE SOURCES, FMD-91 and EN298
%%
%%% THIS HAS BEEN TAKEN OUT AND PLACED IN THE C_GARRET OPAMPS DOCUMENT



\section{Fault Mode Analysis, top down or bottom up?}

Traditional static fault analysis methods work from the top down.
They identify faults that can occur in a system, and then work down
to see how they could be caused. 
%
Some apply statistical techniques to
determine the likelihood of component failures 
causing specific system level errors. 
%
For example the FMEA variant FMECA, uses
Bayes theorem~\cite{probstat}[p.170]~\cite{nucfta}[p.74] (the relation between a conditional probability and its reverse)
and is  applied to specific failure modes in components and their probability of causing given system level errors.
Another top down methodology is to apply cost benefit analysis 
to determine which faults are the highest priority to fix~\cite{bfmea}.
%
The aim of FMMD analysis is to produce complete\footnote{Completeness dependent upon the completeness/correctness of the {\fms} supplied by the germane standard 
 for our {\bcs}.} failure
models of safety critical systems  from the bottom-up,
starting where possible with known base~component failure~modes.
%
%
%
An advantage of working from the bottom up is that we can ensure that
all component failure modes must be considered. 
%
A top down approach
can miss individual failure modes of components~\cite{faa}[Ch.~9],
especially where there are non-obvious top-level faults.



\subsection{From functional group to newly derived component}
\label{fg}
The process for taking a {\fg}, analysing its failure mode behaviour, considering
all the failure modes of all the components in the group
and collecting symptoms of failure,  is termed `symptom abstraction'.
%
This is dealt with in detail using an algorithmic description, in appendix \ref{sec:algorithmfmmd}.


% % define difference between a \fg and a \dc
% A {\fg} is a collection of components. A {\dc} is a new `theoretical'
% component which has a set of failure modes,
% corresponding to the failure symptoms from the {\fg} from which it was derived.
% %
% We now  consider a {\dc} as a black box, or component 
% for use in further levels of analysis.
% %, and in this case it would have a set of failure modes.
% %Looking at the {\fg} in this way is seeing it as a {\dc}.

In terms of our UML model, the symptom abstraction process takes a {\fg}
and creates a new {\dc} from it.
%To do this it first creates
%a new set of failure modes, representing the fault behaviour
%of the functional group. This is a human process and to do this the analyst
%must consider all the failure modes of the components in the functional
%group.
The newly created {\dc} requires a set of failure modes of its own.
As a derived component inherits component, the UML model shows
that it inherits a set of failure modes.
%
%These failure modes are the failure mode behaviour---or symptoms---of the {\fg} from which it was derived.
%
%Because these new failure modes were derived from a {\fg}, we can call 
%these `derived~failure~modes'.
%It then creates a new derived~component object, and associates it to this new set of derived~failure~modes.
%We thus have a `new' component, %or system building block, but 
%with a known and traceable
%fault behaviour.
A {\fg} must comprise of two or more components, and the UML diagram shows this
with the two to many relationship.
Under exceptional circumstances a component may need to be a member of more than 
one {\fg} (this is looked at in section~\ref{sec:sideeffects}). The relationship between
the {\fg} and component is therefore $ \star \leftrightarrow 2..\star$.
%
A {\fg} will only be associated with one {\dc} and is given a one to one relationship in the UML diagram.
%
Each {\fg} will have one analysis report associated with it.
%
The UML representation  (in figure \ref{fig:cfg}) shows a `{\fg}' having a one to one relationship with a derived~component.
%
%
The symbol $\derivec$ is used to indicate the analysis process that takes a
functional group and converts it into a new component.
\begin{definition}
With $\mathcal{\FG}$ representing the set of all functional groups (over all possible components), 
and $\mathcal{{\DC}}$ the set of all derived components,
we express the analysis process $\derivec$ as  $$ \derivec : \mathcal{\FG}  \rightarrow \mathcal{{\DC}} .$$ 
\end{definition}

\begin{figure}[h]
 \centering
 \includegraphics[width=300pt,,keepaspectratio=true]{./CH4_FMMD/cfg.png}
 % cfg.png: 712x286 pixel, 72dpi, 25.12x10.09 cm, bb=0 0 712 286
 \caption{Basic UML Meta model for FMMD hierarchy}
 \label{fig:cfg}
\end{figure}


%% Here we need how this meta model translates into the FMMD Hierarchy

\subsection{How the UML Meta Model maps to an FMMD Hierarchy}

The UML meta model above (see figure~\ref{fig:cfg}) describes a hierarchical structure. %% Might be a UML pattern that is well known ..... 05MAY2012
This is because, as {\dcs} inherit the properties of 
components, {\dcs} may be used to form {\fgs}.
%
Consider the hierarchy from the example in figure~\ref{fig:eulerfmmd}. % ~\ref{fig:dc2}.
The lowest level in this hierarchy are the {\bcs}, the resistors and the op-amp.
%
The resistors are collected into a {\fg}, and the ${PD}$ derived component created from its analysis, is shown enclosing R1 and R2. % above the {\fg}.
%
As this derived component inherits the properties of a component, we may use
it in {\fg} higher in the hierarchy. 
%
The {\em PD} derived component is now placed into a {\fg}
with the op-amp. 
%
This {\fg} is now analysed and a {\dc} created to 
represent the failure mode behaviour of the {\em INVAMP}.
%
%
We may now use the  {\em INVAMP} {\dc} in even higher level {\fgs}.
%
An analysis report is generated for each stage in the FMMD  % {\fg} to {\dc}
process. %\footnote
%
%
\paragraph{Traceability and quality of FMMD analysis.}
By having an analysis report report for each analysis stage, %i.e. {\fg} to {\dc},
we add traceability to the reasoning applied to the FMMD process.
%
Consider that traditional FMEA has one large reasoning stage, that of component failure mode
directly to system level failure. The reasoning given is typically a one line comment
on a spreadsheet entry~\cite{sccs}[p.38]. % (if we are lucky!).
%
FMMD typically has several reasoning stages (i.e. from each {\fg} to {\dc}) up to  the 
final system level {\dc}.
%
Thus, each possible cause for a system failure %{\fm} 
will have a collection of FMMD analysis reports associated with it.
%
These collections of analysis reports will provide a cause and effect
story for each possible scenario that could cause the system level failure.
%
Traceability of design processes are considered necessary for
safety critical product~\cite{en61508} and is an important concept 
in quality systems~\cite{iso9001}.
%
Having analysis reports increases the traceability---or documented paper trail---aiding understanding 
and maintainability for failure mode models.
%
Also a  detailed cause and effect model is useful creating diagnostic schemas~\cite{dbamafta}.



\paragraph{Keeping track of the derived components position in the hierarchy}
\label{sec:alpha}
The UML meta model in figure \ref{fig:cfg}, shows the relationships
between the entities used in FMMD.
%
% Note that because we can use derived components to build functional groups,
% this model intrinsically supports % building a 
% hierarchy.
% %
% In use we will build a hierarchy of
% objects, functional~groups formed with derived~components, and after symptom~abstraction creating
% derived components yet higher up in the structure.
% %
To keep track of the level in the hierarchy (i.e. how many stages of component 
derivation `$\derivec$' have led to the current derived component)
we can add an attribute to the component data type. 
This can be a natural number called the level variable $\abslev \in \mathbb{N}$.
% J. Howse says zero is a given in comp sci. This can be a natural number called the level variable $\alpha \in \mathbb{N}_0$.
The $\abslev$ level variable in each component,
indicates the position in the hierarchy. Base components
have a `level' of $\abslev=0$. 
% I do not know how to make this simpler
Derived~components take a level based on the highest level
component used to build the functional group it was derived from plus 1.
So a derived component built from base level components
would have an $\abslev$ value of 1.
%
In our example the resistors and op-amp are level zero ({\bcs}, $\abslev=0$), the {\em PD} a level 1 {\dc} ($\abslev=1$) and the {\em INVAMP}
a level 2 {\dc} ($\abslev=2$).
%\clearpage
Because {\fgs} may include components at varying levels 
of $\abslev$, having it quickly available as an attribute
will be required in practical implementations
to order the tree, and assist in preventing recursion in the hierarchy.
The abstraction level concept is formally defined in section~\ref{sec:abstractionlevel}.

% \section{Set Theory Description}
% 
% $$ System \stackrel{has}{\longrightarrow} PartsList $$
% 
% $$ PartsList  \stackrel{has}{\longrightarrow} Components $$
% 
% $$ Component \stackrel{has}{\longrightarrow} FailureModes $$
% 
% $$ FunctionalGroup  \stackrel{has}{\longrightarrow} Components $$
% 
% Using the symbol $\derivec$ to indicate an analysis process that takes a
% functional group and converts it into a new component.
% 
% $$ \derivec ( FG ) \rightarrow DerivedComponent $$
% 


%%-
%%- Need a complete and more complicated UML diagram here
%%- the other parts were just fragments to illustrate points
%%-
%%-
% \section{Complete UML Diagram}
% 
% In this section we examine the entities used in FMMD and their relationships.
% We have been building parts of the data structure up until now,
% and can now complete the picture.
% For the complete UML data model we need to consider the system
% as a data structure. 
%
%The `parts~list' is the 
%key reference point and starting point. % in the data structure.
%Our base components are kept here.
%
%From the {\bcs} the initial {\fgs} are formed, and from the first {\fgs},
%the first {\dcs}. 
%
% \paragraph{Re-factoring the UML model to remove {\fgs}.}
% While useful for describing the context of the FMMD analysis process, 
% it is desirable to  remove the {\fg} from the UML diagram as this is by-product of the analysis process.
% Figure~\ref{fig:cfg2} presents a final (and simpler)  UML model for FMMD.
% However, the analysis report, is a core feature of FMMD. Having an analysis 
% report associated with each incremental stage in the analysis is a strength
% compared to traditional FMEA, where we only have one stage (possibly undocumented)
% for each {\bc} {\fm} to system level event/failure mode.
% The {\fg} and the analysis report have one to one relationships. We can therefore re-factor
% these into an analysis report (which would list the components used to
% make up and thus define the {\fg}) associated with the {\dc}.
% 
% 
% %
% % Two other data types/entities are required 
% % however: we need to model environmental and operational states and
% % where they fit into the data structure.
% % %
% 
% 
% 
% % \paragraph{UML Diagram Additional Objects.}
% % The additional objects System, Environment and Operational States
% % are added to  UML diagram in figure \ref{fig:cfg} are represented in figure \ref{fig:cfg2}.
% 
% \label{completeuml}
% 
% \begin{figure}[h]
%  \centering
%  \includegraphics[width=300pt,keepaspectratio=true]{./CH4_FMMD/master_uml.png}
%  % cfg2.png: 702x464 pixel, 72dpi, 24.76x16.37 cm, bb=0 0 702 464
%  \caption{Complete UML diagram}
%  \label{fig:cfg2}
% \end{figure}


 
%% XXX bit of a loose end here, maybe delete this

% \subsection{Ontological work on FMEA}
% 
% Ontological work on FMEA reviewed so far, has concentrated on
% formalising the natural language process of FMEA and thus
% defining relationships between components, failure modes and top level outcomes
% an overview of this work may found here~\cite{ontfmea}.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%




% 
% %$$ \mathcal{fm}(C) \rightarrow S $$
% %$$ {fm}(C) \rightarrow S $$
% \paragraph{Abstraction Levels of {\fgs} and {\dcs}}
% 
% 
% \label{sec:indexsub}
% We can indicate the abstraction level of a component by using a superscript.
% Thus for the component $c$, where it is a `base component' we can assign it
% the abstraction level zero, $c^0$. Should we wish to index the components
% (for example as in a product parts-list) we can use a sub-script.
% Our base component (if first in the parts-list) could now be uniquely identified as
% $c^0_1$.
% 
% We can further define the abstraction level of a {\fg}.
% We can say that it is the maximum abstraction level of any of its
% components. Thus a functional group containing only base components
% would have an abstraction level zero and could be represented with a superscript of zero thus
% `${\FG}^0$'. % The functional group set may also be indexed.
% 
% We can apply symptom abstraction to a {\fg} to find
% its symptoms. 
% %We are interested in the failure modes
% %of all the components in the {\fg}. An analysis process
% We define the symptom abstraction process with the symbol  `$\derivec$'.
% % is applied to the {\fg}.
% %
% The $\derivec$ function takes a {\fg}
% as an argument and returns a newly created {\dc}.
% %
% %The $\derivec$ analysis, a symptom extraction process, is described in chapter \ref{chap:sympex}.
% The symptom abstraction process must always raise the abstraction level
% for the newly created {\dc}.
% Using $\abslev$ (as described in~\ref{sec:alpha}) to symbolise the fault abstraction level, we can now state:
% 
% \begin{equation}
%  \label{eqn:abslevinc}
%  \derivec({\FG}^{\abslev}) \rightarrow c^{{\abslev}+N} | N \ge 1.
% \end{equation}
% 
% \paragraph{Functional Groups may be indexed.}
% We will typically have more than one {\fg} on each level of FMMD hierarchy (except the top level, where there will only be one).
% We index the {\fgs} with a sub-script, and can then uniquely identify them using their level and their index.
% For example ${\FG}^{3}_{2}$ would be the second  {\fg} at the third level of abstraction in an FMMD hierarchy.
% 
% \paragraph{The symptom abstraction process in outline.} 
% The $\derivec$ function processes a functional group and returns a derived component.
% Firstly, all the failure modes from all the components in the {\fg} 
% are used to create failure scenarios, which can be single failure modes
% or combinations of failure modes where unitary state failure mode constraints do not apply.
% %
% With all the failure scenarios, an analyst can   
% determine how each scenario will affect the {\fg}.
% This will give one failure mode behaviour result for each failure scenario.
% With these results, we collect common symptoms.
% That is to say, that many of the resultant failure modes, will exhibit the same symptom of failure from the perspective
% of a user of the {\fg}.
% %
% We now can treat the functional group as a sort of `super~component'.
% %
% In order to make this new `super~component' usable, it needs to be in the form of a
% component, that is, it has a name, and a set of failure modes.
% %
% We can do this by creating a new {\dc} and assigning a name to it, and assigning its set of 
% failure modes being the failure symptoms of the {\fg} from which it was derived.
% %A new {\dc} is created
% %where its failure modes,  are the symptoms from {\fg}.
% %
% Note that the {\dc} must have a higher abstraction level than the {\fg}
% from which it was derived---or---in other words, the symptom abstraction process `$\derivec$' increments
% the abstraction level $\abslev$, as stated in equation~\ref{eqn:abslevinc}.
% 
% The symptom abstraction process is described formally and algorithmically 
% in sections~\ref{sec:formalfmmd} and \ref{sec:algorithmfmmd} respectively.
% 
% 
% \paragraph{Surjective constraint applied to symptom collection.}
% We can stipulate that symptom collection process is surjective~\cite{dmfnt}.
% % i.e. $ \forall f in F $ 
% By stipulating surjection for symptom collection, we ensure
% that each component failure mode maps to at least one symptom.
% This also ensures that all symptoms have at least one component failure
% mode (i.e. one or more failure modes that caused it).
% %
% 
% \subsection{FMMD Hierarchy}
% 
% By applying stages of analysis to higher and higher abstraction
% levels, we can converge to a complete failure mode model of the system under analysis.
% Because the symptom abstraction process is defined as surjective (from component failure modes to symptoms)
% the number of symptoms is guaranteed to be less than or equal to
% the number of component failure modes. This means the top level {\dc} in a hierarchy should have a number of {\fms} less than or equal 
% to the sum of {\fms} in its base components.
% 
% In practise, however, the number of symptoms greatly reduces as we traverse
% up the hierarchy.
% This is echoed in real life systems, where the top level events/failures
% are always orders of magnitude smaller than sum of {\fms} in its base components.
% %This is a natural process. When we have complicated systems
% %they always have a small number of system failure modes in comparison to
% %the number of failure modes in its sub-systems/components..
% 
% 
% \subsection{Derived Component like concepts in safety literature}
% 
% Integrated components such as OP-AMPS are already treated as {\dcs}
% in literature.
% An Op-AMP is an integrated circuit comprising some hundred or so individual components
% but in the literature ~\cite{fmd91}[3-116] is is described as a simple component with a set of failure modes.
% 
% % Idea stage on this section, integrated circuits and some compond parts (like digital resistors)
% % are treated like base components. i.e. this sets a precedent for {\dcs}.
% % 
% % RE WRITE ---- concept is that some complicated components, like 741 are  treated as simple components 
% % in the literature.
% % 
% % \begin{itemize}
% %  \item Look at OPAMP circuits, pick one (say $\mu$741)
% % %  \item Digital transistor perhaps, inside two resistors and a transistor.
% % %  \item outline a proposed FMMD analysis
% % %  \item Show FMD-91 OPAMP failure modes -- compare with FMMD
% % \end{itemize}
% % 
% % % The gas burner standard (EN298~\cite{en298}), only considers OPEN and SHORT for resistors
% % (and for some types of resistors OPEN only).
% % FMD-91~\cite{fmd91}(the US military failure modes guide) also includes `parameter change' in its description of resistor failure modes.
% % Now a resistor will generally only suffer parameter change when over stressed.
% % EN298 stipulates down rating by 60\% to maximum stress
% % possible in a circuit. So even if you have a resistor that preliminary tells you would
% % never be subjected to say more than 5V, but there is say, a 24V rail
% % on the circuit, you have to choose resistors able to cope with the 24V
% % stress/load and then down rate by 60\%. That is to say the resitor should be rated for a maximum
% % voltage of $ > 38.4V$ and should be rated 60\% higher for its power consumption at $38.4V$.
% % Because of down-rating, it is reasonable to not have to consider parameter change under EN298 approvals.
% % 
% % \clearpage
% % Two areas that cannot be automated. Choosing {\fgs} and the analysis/symptom collection process itself.
% 
% 
% % \subsection{{\fgs} Sharing components and Hierarchy}
% % 
% % With electronics we need to follow the signal path to make sense of failure modes
% % effects on other parts of the circuit further down that path.
% % %{\fgs} will naturally have to be in the position of starter 
% % A power-supply is naturally first in a signal path (or failure reasoning path).
% % That is to say, if the power-supply is faulty, its failure modes are likely to affect
% % the {\fgs} that have to use it.
% % 
% % This means that most electronic components should be placed higher in an FMMD
% % hierarchy than the power-supply.
% % A shorted de-coupling capactitor caused a `symptom' of the power-supply, 
% % and an open de-coupling capactitor should  be considered a `failure~mode' relevant to the logic chip.
% % % to consider.
% % 
% % If components can be shared between functional groups, this means that components
% % must be shareable between {\fgs} at different levels in the FMMD hierarchy.
% % This hierarchy and an optionally shared de-coupling capacitor (with line highlighted in red and dashed)  are shown
% % in figure~\ref{fig:shared_component}.
% % 
% % \begin{figure}
% %  \centering
% %  \includegraphics[width=250pt,keepaspectratio=true]{CH5_Examples/shared_component.png}
% %  % shared_component.png: 729x670 pixel, 72dpi, 25.72x23.64 cm, bb=0 0 729 670
% %  \caption{Optionally shared Component}
% %  \label{fig:shared_component}
% % \end{figure}
% 
% % \subsection{Hierarchy and structure}
% % By having this structure, the logic circuit element, can accept failure modes from the 
% % power-supply (for instance these might, for the sake of example  include: $NO\_POWER$, $LOW\_VOLTAGE$, $HIGH\_VOLTAGE$, $NOISE\_HF$, $NOISE\_LF$.
% % Our logic circuit may be able to cope with $LOW\_VOLTAGE$ and $NOISE\_LF$, but react with a serious symptom to $NOISE\_HF$ say.
% % But in order to process these failure modes it must be at a higher stage in the FMMD hierarchy.
% 
% %\pagebreak[4]
% 
% 
% 
% \section{Double Simultaneous Failures}
% 
% The probability for independent double simultaneous component failures (because we would multiply the probabilities of failure) is very low.
% However, some critical systems have to consider these type of eventualities.
% The burner control industry has to consider double failures, as specified in European Norm 
% EN298~\cite{en298}. EN298 does not specifically state that
% double simultaneous failures must be considered. What it does say is that
% in the event of a lockout---a condition where an error has been detected and 
% the equipment moves to a safe non-functioning state---no secondary failure may cause a dangerous condition.
% %
% This is slightly vague: there are so many possible component failures that could
% cause a secondary failure, that it is very difficult not to interpret this
% as meaning we have to cater for double simultaneous failures for the most critical sections
% of a burner control system. 
% %
% In practise---in the field of EN298: burner controllers---this means triple safeguards to ensure the fuel
% is not allowed to flow under an error condition. This would of course leave the possibility of
% other more complex double failures tricking the controller into thinking the 
% combustion was actually safe when it was not. 
% %
% It would be impractical to
% perform the number of checks (as the checking is a time-consuming human process) required of RFMEA on a system as complex as a  burner controller.
% 
% It has been shown that, for all but trivial small systems, double failure mode checking
% is impossible from a practical perspective.
% FMMD can reduce the number of checks to make to achieve double simultaneous failure checking -- but by the very nature 
% of choosing {\fgs} we will not (in the initial stages) be cross checking all possible
% combinations of double failures in all of the components.
% 
% The diagram in figure~\ref{fig:dubsim1}, uses Euler diagrams to model failure modes (as closed contours) and asterisks 
% to model failure mode scenarios. The failure scenario is defined by the contours that enclose it.
% Consider a system which has four components $c_1 \ldots c_4$.
% Consider that each of these components may fail in two ways: $a$ and $b$, i.e $fm(c_1) = fm(c_2) = \{a,b\}$.
% Now consider two {\fgs}, $fg1 = \{ c_1, c_2 \}$ and $fg2 = \{ c_3, c_4 \}$.
% 
% We list all the possible failure scenarios as $FS1 \ldots FS6$ for each functional group.
% For instance $FS5$ is the result of component $c_2$ failing with failure mode $a$ and component $c_1$ failing
% with failure mode $b$. We can express this as $c_2 a \cup c_1 b$.
% 
% 
% \begin{figure}[h]
%  \centering
%  \includegraphics[width=300pt,keepaspectratio=true]{CH5_Examples/dubsim1.png}
%  % dubsim1.png: 612x330 pixel, 72dpi, 21.59x11.64 cm, bb=0 0 612 330
%  \caption{Simultaneous Failure Mode Scenarios}
%  \label{fig:dubsim1}
% \end{figure}
% 
% 
% 
% From figure~\ref{fig:dubsim1} we can see that the double failure modes within the {\fgs} have been examined.
% How do we model the double failures that occur across the {\fgs}, for instance
% $c_4 a \cup c_1 a$ where $c_4 a$ is a failure mode in FG1 and $c_1 a$ from FG2.
% It could be argued that because functional groups are chosen for their functionality, and re-usability,
% that component failures in one should not affect a different {\fg}, but this is a weak argument.
% Merely double checking within {\fgs} would be marginally better than
% only applying it to the most obvious critical elements of a system.
% 
% What is really required is a way that all double simultaneous failures
% are checked.
% 
% One way of doing this is to apply double failure mode
% checking to all {\fgs} higher up in the hierarchy.
% 
% This guarantees to check the symptoms caused by the 
% failure modes in the other {\fgs} with the symptoms
% derived from the other {\fgs} modelling for double failures.
% %
% By traversing down the tree, we can automatically determine which
% double simultaneous combinations have not been resolved.
% %
% By applying double simultaneous checking until no single failures
% can lead to a top level event, we
% implement traceable and provable, complete double failure mode coverage.
% 
% To extend the example in figure~\ref{fig:dubsim1} we can map the failure 
% scenarios.
% For Functional Group 1 (FG1), let us map:
% \begin{eqnarray*}
%   FS1 & \mapsto & S1   \\
%   FS2 & \mapsto & S3    \\
%    FS3 & \mapsto & S1     \\
%   FS4 & \mapsto & S2     \\
%   FS5 & \mapsto & S2     \\
%   FS6 & \mapsto & S3    
% \end{eqnarray*}
% 
% Thus a derived component, DC1, has the failure modes defined by $fm(DC1) = \{ S1, S2, S3 \}$.
% 
% 
% For Functional Group 2 (FG2), let us map:
% \begin{eqnarray*}
%   FS1 & \mapsto & S4   \\
%   FS2 & \mapsto & S5    \\
%    FS3 & \mapsto & S5     \\
%   FS4 & \mapsto & S4     \\
%   FS5 & \mapsto & S6     \\
%   FS6 & \mapsto & S5    
% \end{eqnarray*}
% 
% Thus a derived component, DC2, has the failure modes defined by $fm(DC2) = \{ S4, S5, S6 \}$
% and these are the result of considering double simultaneous failures of its components.
% 
% A commonly used temperature measuring circuit, the $Pt100$, is analysed
% for double simultaneous failure analysis in section~\ref{sec:Pt100}.
% 
% A software tool tracking the analysis process
% could check that all possible single and double 
% failure modes combinations have been analysed as failure scenarios.
% 
% %single 
% %XXXXXXXXXXXXXXXXXXXXXXXXXX
% %This AUTOMATIC check can reveal WHEN double checking no longer necessary 
% %in the hierarchy to cover dub sum !!!!! YESSSS
% 
% 
% \section{Conclusion}
% %\subsection{Evaluation of FMMD}
% 
% %By applying the methodology in section \ref{fmmdproc}, the wishlist can
% %now be evaluated for the proposed FMMD methodology.
% 
% We evaluate the FMMD method using the criteria in section \ref{fmmdreq}.
% Table \ref{tbl:comparison} compares the current methodologies and FMMD using these criteria.
% { %\small
% \begin{itemize}
% \item{State explosion is reduced,}
% %State Explosion is reduced,
% because small collections of components are dealt within functional groups
% which are used to create derived components which are then used in an hierarchical manner.
% 
% \item{All component failure modes must be considered in the model.}
% %All component failure modes must be considered in the model.
% Since the proposed methodology is bottom-up,
% this means that we can ensure/check that all component failure modes are handled.
% 
% 
% \item{ It should be straightforward to integrate mechanical, electronic and software models,}
% %It should be straight forward to integrate mechanical, electronic and software models,
% because FMMD models in terms of  failure modes only. % we have a generic failure mode entities to model.
% %We can describe a mechanical, electrical or software component in terms of its failure modes. 
% %
% Because of this 
% we can model and analyse integrated electromechanical systems, controlled by computers,
% using a common notation. An electronic/software FMMD example is given in~\ref{sec:elecsw}.
% 
% \item{ It should be re-usable, in that commonly used modules can be re-used in other designs/projects.}
% %It should be re-usable, in that commonly used modules can be re-used in other designs/projects.
% The hierarchical nature, taking {\fg}s and deriving components from them, means that 
% commonly used {\dcs} can be re-used in a design % (for instance self checking digital inputs)
% or even in other projects where the same {\dc} is used. Several examples of re-used {\dcs}
% may be found in chapter~\ref{sec:chap5}.
% 
% 
% \item{ Formal basis: data should be available to produce mathematical proofs and traceability.}
% %It should have a formal basis, data should be available to produce mathematical proofs
% %for its results
% Because the failure mode model of a system is a hierarchy of {\fg}s and {\dcs},
% system level failure modes are traceable back down the fault tree to
% component level failure modes. 
% %
% This allows cut sets~\cite{nasafta}[Ch.1p3]
% to be determined by traversing the DAG from top level events down to their causes.
% %
% An added advantage of FMMD, is that there are typically several stages of reasoning
% to go from a base component failure mode to a system/top level event.
% %
% Each of these reasoning stages are represented by {\fg} to {\dc} analysis processes, traversing up the FMMD hierarchy.
% %
% Compare this to traditional FMEA where
% we only have one reasoning stage, that of base component failure mode to top level event.
% 
% % \item{ It should be capable of producing reliability and danger evaluation statistics.}
% % The minimal cuts sets for the system level failures can have computed MTTF
% % and danger evaluation statistics sourced from the component failure mode statistics~\cite{fmd91,mil1991}.
% 
% % \item{ It should be easy to use, ideally 
% % using a graphical syntax (as opposed to a formal mathematical one).}
% % A modified form of constraint diagram (an extension of Euler diagrams) has
% % been developed to support the FMMD methodology.
% % This uses Euler circles to represent failure modes, and spiders to collect symptoms, to
% % advance a {\fg} to a {\dc}.
% 
% 
% % \item{ From the top down the failure mode model should follow a logical de-composition of the functionality
% % to smaller and smaller functional modules \cite{maikowski}.}
% % The bottom-up approach fulfils the  logical de-composition requirement, because the {\fg}s
% % are built from components performing a given task. 
% % 
% 
% \item{ Multiple failure modes (conjunction - where more that one failure mode is active) 
% may be modelled from the base component level up.}
% %Multiple failure modes (conjunction) may be modelled from the base component level up.
% By breaking the problem of failure mode analysis into small stages
% and building a hierarchy, the problems associated with needing to 
% analyse all possible combinations of base level components
% within a system are reduced.
% 
% % by an exponential order.
% This is because the multiple failure modes considered
% within {\fgs} have fewer failure modes to consider 
% at each FMMD stage.
% Where appropriate, multiple simultaneous failures can be modelled by
% introducing {\fcs} %test~cases 
% where the conjunction of failure modes is considered.
% An example demonstrating multiple failure mode analysis may be found in section~\ref{sec:Pt100}.
% \end{itemize}
% }
% 
% { %\tiny
% \begin{table}[ht]
% \caption{Features of static Failure Mode analysis methodologies} % title of Table
% \centering % used for centering table
% \begin{tabular}{||l|c|c|c|c|c||}
% \hline \hline
% % \textbf{Des.} & \textbf{FTA}  & \textbf{FMEA} &   \textbf{FMECA} & \textbf{FDEMA} &   \textbf{FMMD}   \\
% \textbf{\tiny Des.} & \textbf{\tiny FTA}  & \textbf{\tiny FMEA} &   \textbf{\tiny FMECA} & \textbf{\tiny FDEMA} &   \textbf{\tiny FMMD}   \\
%  \textbf{\tiny Crit.}  &   \textbf{}   & \textbf{}     &   \textbf{}      & \textbf{}      &   \textbf{}   \\
% %   R         &    wire        & res +         & res -    & description
% \hline
% \hline
%  C1: % state exp    
%                 &  partial      &               &                 &               &   $\tickYES$  \\ \hline
%  C2: % $\forall$ failures 
%                 &               &$\tickYES$  &    $\tickYES$   &    $\tickYES$ &  $\tickYES$  \\  \hline
%  C3: %mech,elec,s/w & $\tickYES$    
%                 &               &                 &               &             & $\tickYES$ \\  \hline
%  C4: %modular        
%                 &               &               &                 &  partial      &  $\tickYES$   \\ \hline
%  C5: %formal         
%                 &  partial     &  partial       &  partial       &  partial    &  $\tickYES$   \\ \hline
%  C6: %multiple fm    
%                 &   $\tickYES$  &               &                 &  partial    &  $\tickYES$    \\ \hline
% \hline
% \hline
% \end{tabular} 
% \label{tbl:comparison}
% \end{table}
% }
% %\clearpage
% 
% 
% %\subsection{}
% 
% 
% %This new approach is called 
% Failure Mode Modular De-Composition (FMMD) is designed 
% to be a more rigorous  and `data~complete' model than
% the current four approaches.
% %
% That is, 
% from an FMMD model, we should be able to 
% derive outline models that the other four methodologies would have been 
% able to create. As this approach is modular, many of the results of 
% analysed components may be re-used in other projects, so 
% test efficiency is improved.
% %Clearly the more complex the original system is the more benefit,
% %i.e. less components and derived components, will be produced from decomposing the 
% %system into functional groups.
% 
% FMMD is based on generic failure modes, so it is not constrained to a 
% particular field. It can be applied to mechanical, electrical or software domains. 
% It can therefore be used to analyse systems comprised of electrical,
% mechanical and software elements in one integrated model.
% Furthermore the reasoning path is traceable. By being able to trace a 
% top level event down through derived components, to base component
% failure modes, with each step annotated as {\fcs}, the model is easier to maintain.
% 
% The example used here is deliberately small for the purpose
% of being presenting the methodology showing  more than only one stage of hierarchy,
% worked examples for common electronic circuits, digital analogue hybrids and software electronic
% hybrid systems are given in chapter~\ref{sec:chap5}.
% %FMMD has been applied
% %to larger systems encompassing mechanical, electrical and software
% %elements. 
% FMMD represents a new technique in that it
% can address all the criteria in table 3, whereas the other methodologies
% can only cover some.
% 
% 
% FMMD not only has advantages of efficiency (reduction of state explosion), it also
% provides the capability to model entire electro-mechanical-software systems using a common notation
% and processes.
% %\ifthenelse {\boolean{paper}}
% %{
% %\input{abstract}
% %%%- \input{fmmd}
% %%%- %\input{introduction}
% %%%- \input{topbot}
% %%%- %\input{sys_abs}
% %%%- \input{process}
% %%%- \input{algorithm}
% %
% %}
% %{
% %\label{symptomex}
% %%%- \input{./introduction}
% %%%- \input{./topbot}
% %%%- %\input{./sys_abs}
% %%%- \input{./process}
% %%%- \input{./algorithm}
% %}
% %
% %
% %{
% %\section{Introduction}
% %\label{chap:sympex}
% %This chapter describes the process for taking a {\fg},
% %analysing its failure mode behaviour from the failure modes
% %and interactions of its components,
% %and creating a {\dc} that represent the failure mode behaviour of that {\fg}.
% %
% 



\section{Conclusion}

%Tie into wish list at end of chapter 3. Solves state explosion, completeness, traceability, models for related such as FMECA

\paragraph{Failure model Completeness.}
It is undesirable to miss any component {\fm} in the analysis process; were this to
happen our failure model would be incomplete.
%
Given the starting conditions of base component {\fms} from the literature,
we can ensure that all these {\fms} are traceable to subsequent {\dc} {\fms}
in the model.
%
With the above condition true, we term this a `complete' FMMD failure model.
Ensuring this condition is described in section~\ref{sec:completetest}.

\paragraph{State explosion problem of FMEA solved by FMMD.}
%
Because FMMD considers failure modes within functional groups;
the traditional state explosion problem in FMEA where each failure
mode could be considered in the context of all other components in the system
disappears. 
%
This issue addressed formally in section~\ref{sec:cc}.

\paragraph{Uses of the FMMD failure mode model.}
%
Having a  failure mode graph/model, where base component failure modes are traceable to top event events,
provides  a forward search derived failure mode model. 
%A forward search means that we can apply checks to ensure that
%all known component failure
%modes have been considered in the analysis (i.e. completeness as described above).
%
This means that for every system level failure we can traverse back to possible failure causes
in the base components. Coupled with MTTF statistics for the base components
this allows use to predict statistical failure rates for system level failures (this is 
described in greater detail in section~\ref{sec:determine_fms}).
%
We can also use the FMMD model to derive information
to assist in creating related models such as FTA~\cite{nucfta,nasafta},
traditional FMEA, FMECA~\cite{safeware}[p.344], FMEDA~\cite{scsh}, diagnostics schemas~\cite{dbamafta}
and other failure mode analysis methodologies.