The template lets you create the following table:
Each column of the table is described as follows:
Column |
Description |
Function |
The cell contains a function implemented (reference-reference
link) by the item under analysis. Here, the system is an engine control system.
The function is stored as an effectsWithoutBarrierOccurrence
path. |
Failure Mode |
The cell contains "Cannot control engine
power" , which is a failure mode associated with the function. The
failure mode is stored as an effectsWithoutBarrier path. |
Failure Effects |
The cell contains an
effectsWithoutBarrierOccurrence path. |
S |
The cell contains 4 value, proposed from a list of authorized
values. It uses a "RPNSeverity"
dataIndex that is not predefined and not reserved, and which
is interpreted as an attribute. No targetDataIndex is used.
Hence, the severity is supposed to be an attribute of the causality relationship.
In practice, an extension defines RPNSeverity as an attribute of a causality
relationship.{ "text" : "S",
"dataIndex" : "RPNSeverity",
"width" : "20px",
"authorizedValues" : [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
} |
RPN |
The cell contains the product of values in the columns:
S, O, and
D.{ "text" : "RPN",
"dataIndex" : "RPNRiskPriorityNumber",
"formula" : "module:MyModule/Formulas/RPN",
"width" : "20px"
}
The corresponding module
is:define('MyModule/Formulas/RPN', [],
function() {
'use strict';
var Formula = function() {};
Formula.prototype.execute = function(fmea, causalityRelationship) {
var rpn = parseInt(causalityRelationship.getAttribute('RPNDetection')) * parseInt(causalityRelationship.getAttribute('RPNSeverity')) + parseInt(causalityRelationship.getAttribute('RPNOccurrence'));
if( isNaN(rpn) ) {
return '';
}
return '' + rpn;
};
return Formula;
}); |
Failure Causes |
The cell suggests values found in the structure tree as
follows:{ "text" : "Failure Causes",
"dataIndex" : "cause",
"width" : "200px"
}
The causes
are found in the design of the item under analysis. The cause is the combination
of a cause occurrence and a cause failure mode. It is stored in the
causeOccurrence path of the causality relationship. |
Prevention Controls |
Requirements or any subtype of requirement can be dragged in
cells of this column:
This is
specified by the following code where the "types" attribute
defines accepted MQL types that can be dropped in the
cell:{ "text" : "Prevention Controls",
"dataIndex" : "effectsIsPreventedBy",
"types" : [ "Requirement" ],
"width" : "200px"
}
|
Actions |
The cell can contain multiple change actions as specified by
the following code:{ "text" : "Actions",
"dataIndex" : "actions",
"qualifiers" : [ {
"name" : "current",
"text" : "S",
"width" : "20px"
}, {
"name" : "Assignee",
"text" : "A",
"width" : "20px"
} ],
"types" : [ "Task","Change Action"],
"width" : "200px"
}
Here is an example of the display:
|
.json File
The .json code corresponding to the definition of a template is the
following:
{ "title":"Design FMEA",
"columns": [{
"text" : "Function",
"dataIndex" : "function",
"width" : "200px"
}, {
"text" : "Failure Mode",
"dataIndex" : "directEffect",
"width" : "200px"
}, {
"text" : "Failure Effects",
"dataIndex" : "higherLevelEffects",
"qualifiers" : [{
"global" : "true",
"name" : "RPNSeverity",
"text" : "S"
}],
"width" : "200px"
}, {
"text" : "Sev.",
"dataIndex" : "RPNSeverity",
"width" : "20px",
"authorizedValues" : [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
}, {
"text" : "Failure Causes",
"dataIndex" : "cause",
"width" : "200px"
}, {
"text" : "Prevention Controls",
"dataIndex" : "effectsIsPreventedBy",
"alternateTextAttribute": "V_Prevention",
"types" : [ "Requirement" ],
"width" : "200px"
}, {
"text" : "Occ.",
"dataIndex" : "RPNOccurrence",
"width" : "20px",
"authorizedValues" : [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
}, {
"text" : "Detection Controls",
"dataIndex" : "effectsIsProtectedBy",
"types" : [ "Requirement" ],
"width" : "200px"
}, {
"text" : "Det.",
"dataIndex" : "RPNDetection",
"width" : "20px",
"authorizedValues" : [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
}, {
"text" : "RPN",
"dataIndex" : "RPNRiskPriorityNumber",
"formula" : "module:MyModule/Formulas/RPN",
"width" : "20px"
}, {
"text" : "Actions",
"dataIndex" : "actions",
"qualifiers" : [ {
"name" : "current",
"text" : "S",
"width" : "20px"
}, {
"name" : "Assignee",
"text" : "A",
"width" : "20px"
} ],
"types" : [ "Task","Change Action"],
"width" : "200px"
}],
"groups":[ "function", "directEffect", "cause" ]
"style": "module:css!DS/CATSFYAiagVdaFailureModesEffectsAnalysis/CATSFYAiagVdaFailureModesEffectsAnalysis.css",
}
|