diff --git a/papers/fmmd_software_hardware/fmmdh.dia b/papers/fmmd_software_hardware/fmmdh.dia index 12c9cb8..6f3f040 100644 Binary files a/papers/fmmd_software_hardware/fmmdh.dia and b/papers/fmmd_software_hardware/fmmdh.dia differ diff --git a/papers/fmmd_software_hardware/mybib.bib b/papers/fmmd_software_hardware/mybib.bib new file mode 120000 index 0000000..b452b79 --- /dev/null +++ b/papers/fmmd_software_hardware/mybib.bib @@ -0,0 +1 @@ +../../mybib.bib \ No newline at end of file diff --git a/papers/fmmd_software_hardware/software_fmmd.tex b/papers/fmmd_software_hardware/software_fmmd.tex index e7345ef..1df9267 100644 --- a/papers/fmmd_software_hardware/software_fmmd.tex +++ b/papers/fmmd_software_hardware/software_fmmd.tex @@ -56,6 +56,7 @@ %\renewcommand{\rmdefault}{tnr} %\newboolean{paper} %\setboolean{paper}{true} % boolvar=true or false +\newcommand{\derivec}{{D}} \newcommand{\ft}{\ensuremath{4\!\!\rightarrow\!\!20mA} } \newcommand{\permil}{\ensuremath{{ }^0/_{00}}} \newcommand{\oc}{\ensuremath{^{o}{C}}} @@ -352,11 +353,11 @@ of the {\fg} from which it was derived. % in a specific configuration. This specific configuration corresponds to % a {\fg}. Our use of it as a building block corresponds to a {\dc}. -We can use the symbol `$\bowtie$' to represent the creation of a derived component +We can use the symbol `$\derivec$' to represent the creation of a derived component from a {\fg}. This symbol is convenient for drawn hierarchy diagrams. % (see figure~\ref{fmmdh}). -We define the $\bowtie$ function, where $\FG$ is the set of all {\fgs} and $\DC$ is the set of all {\dcs}, +We define the $\derivec$ function, where $\FG$ is the set of all {\fgs} and $\DC$ is the set of all {\dcs}, -$$ \bowtie ( {\FG} ) \mapsto {\DC} .$$ +$$ \derivec ( {\FG} ) \mapsto {\DC} .$$ We show an FMMD hierarchy in figure~\ref{fig:fmmdh}. Using this diagram, we can follow the creation of the hierarchy in @@ -368,7 +369,7 @@ That is to say their component failure modes are examined, and thus the ways in which the {\fgs} can fail. The ways in which a {\fg} can fail, can be viewed as symptoms of failure for the {\fg}. % -The `$\bowtie$' function is now applied to create {\dcs}. +The `$\derivec$' function is now applied to create {\dcs}. These are shown in figure~\ref{fig:fmmdh} above the {\fgs}. Now that we have {\dcs}, we can use them to form a higher level functional group. We apply the same FMEA process to this and can derive a top level @@ -414,7 +415,7 @@ When we have analysed a software function---using failure conditions of its inputs as failure modes---we can determine its symptoms of failure (i.e. how calling functions will see its failure mode behaviour). -We can thus apply the $\bowtie$ process to software functions, by viewing them in terms of their failure +We can thus apply the $\derivec$ function to software functions, by viewing them in terms of their failure mode behaviour. To simplify things as well, software already fits into a hierarchy. For Electronics and Mechanical systems, although we may be guided by the original designers concepts of modularity and sub-systems in design, applying FMMD means deciding on the members for {\fgs} @@ -757,8 +758,8 @@ With these failure modes, we can analyse our first functional group, see table~\ We now collect the symptoms for the hardware functional group, $\{ HIGH , LOW, V\_ERR \} $. We now create a {\dc} to represent this called $CMATV$. -We can express this using the `$\bowtie$' function thus: -$$ CMATV = \; \bowtie (G_1) .$$ +We can express this using the `$\derivec$' function thus: +$$ CMATV = \; \derivec (G_1) .$$ As its failure modes are the symptoms of failure from the functional group we can now state: $$fm ( CMATV ) = \{ HIGH , LOW, V\_ERR \} .$$ @@ -844,7 +845,7 @@ for the function. This postcondition, {\em /* ensure: value is voltage input to within 0.1\% */ }, corresponds to $VV\_ERR$, and is already in the {\fm} set for this {\fg}. -We can now create a {\dc} called $RADC$ thus: $$RADC = \; \bowtie(G_2)$$ which has the following +We can now create a {\dc} called $RADC$ thus: $$RADC = \; \derivec(G_2)$$ which has the following {\fms}: $$ fm(RADC) = \{ VV\_ERR, HIGH, LOW \} .$$ @@ -914,7 +915,7 @@ The $VAL\_ERR$ will mean that the value read is simply wrong. We can finally make a {\dc} to represent a failure mode model for our function $read\_4\_20\_input$ thus: -$$ R420I = \; \bowtie(G_3) .$$ +$$ R420I = \; \derivec(G_3) .$$ This new {\dc} has the following {\fms}: $$fm(R420I) = \{OUT\_OF\_RANGE, VAL\_ERR\} .$$ @@ -940,18 +941,18 @@ as a hierarchical diagram, see figure~\ref{fig:hd}. -We can represent the hierarchy in figure~\ref{fig:hd} algebraically, using the `$\bowtie$' function +We can represent the hierarchy in figure~\ref{fig:hd} algebraically, using the `$\derivec$' function using the groups as intermediate stages: \begin{eqnarray*} G_1 &=& \{R,ADC\} \\ -CMATV &=& \;\bowtie (G_1) \\ +CMATV &=& \;\derivec (G_1) \\ G_2 &=& \{CMATV, read\_ADC \} \\ -RADC &=& \; \bowtie (G_2) \\ +RADC &=& \; \derivec (G_2) \\ G_3 &=& \{ RADC, read\_4\_20\_input \} \\ -R420I &=& \; \bowtie (G_3) \\ +R420I &=& \; \derivec (G_3) \\ \end{eqnarray*} or, a nested definition, -$$ \bowtie \Big( \bowtie \big( \bowtie(R,ADC), read\_4\_20\_input \big), read\_4\_20\_input \Big). $$ +$$ \derivec \Big( \derivec \big( \derivec(R,ADC), read\_4\_20\_input \big), read\_4\_20\_input \Big). $$ diff --git a/papers/fmmd_software_hardware/three_tree.dia b/papers/fmmd_software_hardware/three_tree.dia index 226f2db..6b1b5a0 100644 Binary files a/papers/fmmd_software_hardware/three_tree.dia and b/papers/fmmd_software_hardware/three_tree.dia differ diff --git a/papers/software_fmea/fmmdh.dia b/papers/software_fmea/fmmdh.dia index 12c9cb8..6f3f040 100644 Binary files a/papers/software_fmea/fmmdh.dia and b/papers/software_fmea/fmmdh.dia differ diff --git a/papers/software_fmea/three_tree.dia b/papers/software_fmea/three_tree.dia index 226f2db..6b1b5a0 100644 Binary files a/papers/software_fmea/three_tree.dia and b/papers/software_fmea/three_tree.dia differ