From 01bf8de1fd7a4c276d11df3359054c2f07186164 Mon Sep 17 00:00:00 2001 From: Robin Clark Date: Tue, 2 Oct 2012 22:06:36 +0100 Subject: [PATCH] Well got stuck into the presentation there, started on the software example --- .../System_safety_2012/fmmd_software_pres.tex | 166 ++++++++++++++++-- .../System_safety_2012/ftcontext.png | Bin 0 -> 24769 bytes 2 files changed, 155 insertions(+), 11 deletions(-) create mode 100644 presentations/System_safety_2012/ftcontext.png diff --git a/presentations/System_safety_2012/fmmd_software_pres.tex b/presentations/System_safety_2012/fmmd_software_pres.tex index 42f3773..509d91f 100644 --- a/presentations/System_safety_2012/fmmd_software_pres.tex +++ b/presentations/System_safety_2012/fmmd_software_pres.tex @@ -8,16 +8,36 @@ \setbeamertemplate{footline}[page number] -\newcommand{\fg}{\em functional~group} -\newcommand{\fgs}{\em functional~groups} +%\newcommand{\fg}{\em functional~group} +%\newcommand{\fgs}{\em functional~groups} +\newcommand{\fg}{\em functional~grouping} +\newcommand{\fgs}{\em functional~groupings} \newcommand{\dc}{\em derived~component} \newcommand{\dcs}{\em derived~components} \newcommand{\bc}{\em base~component} \newcommand{\bcs}{\em base~components} \newcommand{\irl}{in~real~life} - +\newcommand{\derivec}{\ensuremath{\mathcal{\bowtie}}} +\newcommand{\ft}{\ensuremath{4\!\!\rightarrow\!\!20mA} } \begin{document} + + +\section{Applying failure Mode Modular de-Composition to integrated electronic and software Systems} +\begin{frame} +\frametitle{Failure Mode Modular De-Composition(FMMD)} +\begin{itemize} + \pause \item FMMD is a modularised variant of FMEA + \pause \item FMMD can model integrated mechanical, electrical and software systems. + \pause \item FMMD has efficiency benefits (re-use reduced complexity of checking) compared to traditional FMEA + \pause \item FMMD models can be used to assist in the production of traditional FMEA based + methodologies (PFMEA, FMECA, FMEDA FTA etc.) +\end{itemize} +%\tableofcontents[currentsection] +\end{frame} + + + \section{F.M.E.A.} \begin{frame} \frametitle{FMEA} @@ -28,9 +48,9 @@ \begin{frame} \frametitle{FMEA} -This talk introduces Failure Mode Effects Analysis, and the different ways it is applied. +We now talk about Failure Mode Effects Analysis, and the different ways it is applied. These techniques are discussed, and then -a refinement is proposed, which is essentially a modularisation of the FMEA process. +a refinement(FMMD) is proposed, which is essentially a modularisation of the FMEA process. % \begin{itemize} @@ -654,8 +674,8 @@ judged to be in critical sections of the product. \pause \item Collect Symptoms. \pause \item Create a '{\dc}', where its failure modes are the symptoms of the {\fg} from which it was derived. \pause \item The {\dc} is now available to be used in higher level {\fgs}. - %\pause \item We can represent this process as a function which converts a {\fg} into a {\dc} and use the symbol $ \bowtie $ to represet it. - \pause $ \bowtie ( FunctionalGroup ) \rightarrow {DerivedComponent} $ + %\pause \item We can represent this process as a function which converts a {\fg} into a {\dc} and use the symbol $ \derivec $ to represet it. + \pause $ \derivec ( FunctionalGroup ) \rightarrow {DerivedComponent} $ %\item could use AMALG instead here $ \amalg $ \end{itemize} \end{frame} @@ -914,7 +934,7 @@ with equation~\ref{eqn:anscen}. % and equation~\ref{eqn:anscen}. % \clearpage -%\section{Example}/bowtie +%\section{Example}/derivec \begin{frame} \frametitle{FMMD - Failure Mode Modular De-Composition} To see the effects of reducing `state~explosion' we can use an example. @@ -1024,7 +1044,7 @@ missed in an analysis. -\subsection{conclusion} +\subsection{FMMD summary} \begin{frame} \frametitle{FMMD - Failure Mode Modular De-Composition} \textbf{Conclusion: FMMD} @@ -1037,9 +1057,133 @@ missed in an analysis. \end{itemize} \end{frame} +\section{Software and Failure Mode Effects Analysis} + +\subsection{Software and FMEA---Current work} \begin{frame} -\frametitle{FMMD - Failure Mode Modular De-Composition} -\textbf{Questions?} + \frametitle{Software FMEA (SFMEA) --- Current work } + %\paragraph{Current work on Software FMEA} +\begin{itemize} + \pause \item SFMEA is performed in isolation to hardware FMEA + \pause \item SFMEA considers all variables within a function as potentially corruptible --- + \pause this means a large number of combinations --- databases +to track the relationships between variables +and system failure modes + \pause \item %Because of the large number of combinations for considering all variables as corruptible + automated SFMEA + + \pause \item Some schools of thought recommend combining SFTA with SFMEA +\end{itemize} +% SFMEA usually does not seek to integrate +% hardware and software models, but to perform +% FMEA on the software in isolation~\cite{procsfmea}. +% % +% Work has been performed using databases +% to track the relationships between variables +% and system failure modes~\cite{procsfmeadb}, to %work has been performed to +% introduce automation into the FMEA process~\cite{appswfmea} and to provide code analysis +% automation~\cite{modelsfmea}. Although the SFMEA and hardware FMEAs are performed separately, +% some schools of thought aim for Fault Tree Analysis (FTA)~\cite{nasafta,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. +\end{frame} + + +\subsection{Software and FMMD} +\begin{frame} +\frametitle{FMMD - How to apply this to software} +Clearly we need to be able to represent software failure modes +in a clear and modular model. +\end{frame} + +\begin{frame} +\frametitle{FMMD - How to apply this to software} +\begin{itemize} + \pause \item Software is already modular call tree, function hierarchy \pause A function can be considered as a {\fg} + \pause \item A function has inputs and outputs \pause these can correspond to failure modes + and symptoms of failure for the function + \pause \item We can apply contract programming, giving a function pre and post conditions + \pause \item Pre condition violations are analogous to component failure modes + \pause \item Post condition violations are analogous to symptoms of failure of the function +\end{itemize} + +\end{frame} + + + +\begin{frame} +\frametitle{FMMD - Example integrated hardware/software system --- {\ft} input} + + +For the purpose of example, we chose a simple common safety critical industrial circuit +that is nearly always used in conjunction with a programmatic element. +A common method for delivering a quantitative value in analogue electronics is +to supply a current signal to represent the value to be sent. %~\cite{aoe}[p.934]. +Usually, $4mA$ represents a zero or starting value and $20mA$ represents the full scale, +and this is referred to as {\ft} signalling. +\end{frame} + +\begin{frame} +\frametitle{FMMD - Example integrated hardware/software system --- {\ft} input} +\begin{figure}[h] + \centering + \includegraphics[width=200pt]{./ftcontext.png} + % ftcontext.png: 767x385 pixel, 72dpi, 27.06x13.58 cm, bb=0 0 767 385 + \caption{Context Diagram for {\ft} loop} + \label{fig:ftcontext} +\end{figure} +%The diagram in figure~\ref{fig:ftcontext} shows some equipment which is sending a {\ft} +%signal to a micro-controller system. +%The signal is locally driven over a load resistor, and then read into the micro-controller via +%an ADC and its multiplexer. +%With the voltage detected at the ADC the multiplexer can read the intended quantitative +%value from the external equipment. +\end{frame} +% +\begin{frame} +\frametitle{FMMD - Example integrated hardware/software system --- {\ft} input} +General Failure behaviour of {\ft} signalling +\begin{itemize} + \pause \item Electrical Current in a loop is constant (Kirchoff) + \pause \item Current to voltage conversion is simple at receiving end \pause a single resistor + \pause \item Detectable Error if outside 4mA 20mA range + \pause \item On disconnection \pause : 0mA, on mis-wiring\pause : 0mA + %\pause \item Post condition violations are analogous to symptoms of failure of the function +\end{itemize} +%{\ft} has an electrical advantage as well because the current in a loop is constant. %~\cite{aoe}[p.20]. +%Thus resistance in the wires between the source and the receiving end is not an issue +%that can alter the accuracy of the signal. +% +% This circuit has many advantages for safety. If the signal becomes disconnected +% it reads an out of range $0mA$ at the receiving end. This is outside the {\ft} range, +% and is therefore easy to detect as an error rather than an incorrect value. +% +% General Failure behaviour of {\ft}. +% +% Should the driving electronics go wrong at the source end, it will usually +% supply far too little or far too much current, making an error condition easy to detect. +% % +% At the receiving end, one needs a resistor to convert the +% current signal into a voltage that we can read with an ADC.% +\end{frame} + +\begin{frame} +\frametitle{FMMD - Example integrated hardware/software system --- {\ft} input} + If we consider the software at the top of the failure mode hierarchy + the hardware is at the bottom. + + Yourdon, afferent---transform---efferent data flow, in an embedded system our + sensors---data processing/software---actuators. + So the electronics are the bottom. + + Starting with the bottom-up for this {\ft} input, we have the resistor + \end{frame} \end{document} diff --git a/presentations/System_safety_2012/ftcontext.png b/presentations/System_safety_2012/ftcontext.png new file mode 100644 index 0000000000000000000000000000000000000000..95f2685cfe186b97dba7bd07cd4ce38907d00927 GIT binary patch literal 24769 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 W8Y#QUzW}}kfhfysz)EG!-~J0MKv>%V literal 0 HcmV?d00001