People have different learning patterns. While some tend to be more visual others still prefer text [42]. For that reason, Holloway [68] presented five textual representations of safety assurance cases. He uses a GSN example and represents it in these notations.
The textual notations are:
1http://astah.net/editions/gsn
<ARM:Argumentation>
<argumentElement xsi:type="ARM:Claim" xmi:id="1" id="C1" content="C/S logic is fault free"/>
<argumentElement xsi:type="ARM:ArgumentReasoning" xmi:id="2" id="RC1.1"
content="Argument by omission of all identified software hazards"
describedInference="16"/>
<argumentElement xsi:type="ARM:InformationElement" xmi:id="4" id="IRC1.1
" content="Identified sw hazards"/>
<argumentElement xsi:type="ARM:Claim" xmi:id="5" id="C1.1" content="
Unintended opening of press (after PoNR) can only occur as a result of component failure"/>
<argumentElement xsi:type="ARM:InformationElement" xmi:id="11" id="S1.2"
content="Hazard directed test results"/>
<argumentElement xsi:type="ARM:AssertedInference" xmi:id="16" id="C1.1.1
" source="5" target="1"/>
<argumentElement xsi:type="ARM:AssertedContext" xmi:id="21" id="CIRC1.1"
source="4" target="2"/>
<argumentElement xsi:type="ARM:AssertedEvidence" xmi:id="22" id="S1.1"
source="11" target="5"/>
</ARM:Argumentation>
Figure E.3: The GSN argument encoded in SACM/ARM XMI format
We know that catastrophic hazard H2 has been sufficiently mitigated because fault tree analysis shows that its probability of occurrence is less than 1x10-6 per annum, and the acceptable probability in our environment for a catastrophic hazard is 1x10-6 per annum.
Figure E.4: Example of the normal prose [68]
• Normal prose is a normal textual representation of safety cases and is widely used in the law and philosophy fields. The problem with this notation is that it is very easy to lose of the structure of the argument between the words, and that is where the next representation comes in play. Figure E.4 shows an example of a normal prose,
• Structured prose to overcome the possible loss of structure in the normal prose, a structure can be added to the prose by explicitly denoting the critical parts of the safety case. Figure E.5 shows an example of structured prose,
• Argument outline for further structuring, numerical outlines can be used to represent the structure of the safety case argument. The text used is almost identical to the one used to annotate a GSN diagram. Figure E.6 shows an
Appendix E: Safety Case Representation
The evidence that catastrophic hazard H2 has been sufficiently mitigated is a fault tree analysis showing that its probability of occurrence is less than 1x10-6 per annum. The justification for using this evidence is that the acceptable probability in our environment for a catastrophic hazard is 1x10-6 per annum.
Figure E.5: Example of the structured prose [68]
Claim 1.1.2: Probability of H2 occurring < 1x10-6 per annum.
Justification 1.1.2: 1x10-6 per annum limit for catastrophic hazards.
Evidence 1.1.2.: Fault Tree analysis.
Figure E.6: Example of the argument outline [68]
...
(claim H2 OK
(justification CatHaz) (evidence FTA))
...
Figure E.7: Example of the LISP style [68]
example of the argument outline,
• Mathematical proof this is inspired from geometry proofs where statements are supported by reasons which are either given assumptions or reference to statements established later in the proof,
• Lisp style this format is based on the programming language LISP. Figure E.7 shows an example of this format.
F
The BSCU Flamm Architectural Model
<? xml version =" 1.0 " encoding =" ASCII "? >
< flamm:CompositeComponent xmlns:xsi =" http: // www . w3 . org /2001/ XMLSchema - instance " xmlns:flamm ="
http: // www . polarsys . org / chess / fla / flamm " id =" model::modelComponentView::bscuSys " name ="
bscuSys " >
< inputPorts id =" model::modelComponentView::bscuSys::pedal2 " name =" pedal2 " connectedPorts =" //
@components .2/ @inputPorts .1 // @components .1/ @inputPorts .0 " owner ="/" >
< failures id =" noFailure "/ >
< failures type =" failure " id =" late "/ >
</ inputPorts >
< inputPorts id =" model::modelComponentView::bscuSys::pedal1 " name =" pedal1 " connectedPorts =" //
@components .1/ @inputPorts .1 // @components .2/ @inputPorts .0 " owner ="/" >
< failures id =" noFailure "/ >
</ inputPorts >
< outputPorts id =" model::modelComponentView::bscuSys::cmd " name =" cmd " connectedPorts =" //
@components .0/ @outputPorts .0 " owner ="/"/ >
< outputPorts id =" model::modelComponentView::bscuSys::valid " name =" valid " connectedPorts =" //
@components .3/ @outputPorts .0 " owner ="/"/ >
< components xsi:type =" flamm:SimpleComponent " id ="
model::modelComponentView::bscuSys::selectSwitch " name =" selectSwitch " >
< inputPorts id =" model::modelComponentView::selectSwitchImpl::valid " name =" valid "
connectedPorts =" // @components .1/ @outputPorts .0 " owner =" // @components .0 "/ >
< inputPorts id =" model::modelComponentView::selectSwitchImpl::cmd2 " name =" cmd2 "
connectedPorts =" // @components .2/ @outputPorts .1 " owner =" // @components .0 "/ >
< inputPorts id =" model::modelComponentView::selectSwitchImpl::cmd1 " name =" cmd1 "
connectedPorts =" // @components .1/ @outputPorts .1 " owner =" // @components .0 "/ >
< outputPorts id =" model::modelComponentView::selectSwitchImpl::cmd " name =" cmd "
connectedPorts =" // @outputPorts .0 " owner =" // @components .0 "/ >
< rules >
< inputExpression port =" // @components .0/ @inputPorts .0 " >
< failures id =" noFailure "/ >
</ inputExpression >
< inputExpression port =" // @components .0/ @inputPorts .2 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< inputExpression port =" // @components .0/ @inputPorts .1 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< outputExpression port =" // @components .0/ @outputPorts .0 " >
< failures type =" failure " id =" late "/ >
</ outputExpression >
</ rules >
< rules >
< inputExpression port =" // @components .0/ @inputPorts .0 " >
< failures id =" noFailure "/ >
</ inputExpression >
< inputExpression port =" // @components .0/ @inputPorts .2 " >
< failures type =" failure " id =" omission "/ >
</ inputExpression >
< inputExpression port =" // @components .0/ @inputPorts .1 " >
< failures type =" failure " id =" omission "/ >
</ inputExpression >
< outputExpression port =" // @components .0/ @outputPorts .0 " >
< failures type =" failure " id =" omission "/ >
</ outputExpression >
</ rules >
</ components >
< components xsi:type =" flamm:SimpleComponent " id ="
model::modelComponentView::bscuSys::subBSCU1 " name =" subBSCU1 " >
Appendix F: The BSCU Flamm Architectural Model
< inputPorts id =" model::modelComponentView::subBSCU1impl::pedal2 " name =" pedal2 "
connectedPorts =" // @inputPorts .0 " owner =" // @components .1 "/ >
< inputPorts id =" model::modelComponentView::subBSCU1impl::pedal1 " name =" pedal1 "
connectedPorts =" // @inputPorts .1 " owner =" // @components .1 "/ >
< outputPorts id =" model::modelComponentView::subBSCU1impl::valid " name =" valid "
connectedPorts =" // @components .3/ @inputPorts .1 // @components .0/ @inputPorts .0 " owner =" //
@components .1 "/ >
< outputPorts id =" model::modelComponentView::subBSCU1impl::cmd " name =" cmd " connectedPorts ="
// @components .0/ @inputPorts .2 " owner =" // @components .1 "/ >
< rules >
< inputExpression port =" // @components .1/ @inputPorts .1 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< inputExpression port =" // @components .1/ @inputPorts .0 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< outputExpression port =" // @components .1/ @outputPorts .0 " >
< failures type =" failure " id =" late "/ >
</ outputExpression >
< outputExpression port =" // @components .1/ @outputPorts .1 " >
< failures type =" failure " id =" late "/ >
</ outputExpression >
</ rules >
< rules >
< inputExpression port =" // @components .1/ @inputPorts .1 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< inputExpression port =" // @components .1/ @inputPorts .0 " >
< failures id =" noFailure "/ >
</ inputExpression >
< outputExpression port =" // @components .1/ @outputPorts .0 " >
< failures id =" noFailure "/ >
</ outputExpression >
< outputExpression port =" // @components .1/ @outputPorts .1 " >
< failures type =" failure " id =" omission "/ >
</ outputExpression >
</ rules >
< rules >
< inputExpression port =" // @components .1/ @inputPorts .1 " >
< failures id =" noFailure "/ >
</ inputExpression >
< inputExpression port =" // @components .1/ @inputPorts .0 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< outputExpression port =" // @components .1/ @outputPorts .0 " >
< failures id =" noFailure "/ >
</ outputExpression >
< outputExpression port =" // @components .1/ @outputPorts .1 " >
< failures type =" failure " id =" omission "/ >
</ outputExpression >
</ rules >
</ components >
< components xsi:type =" flamm:SimpleComponent " id ="
model::modelComponentView::bscuSys::subBSCU2 " name =" subBSCU2 " >
< inputPorts id =" model::modelComponentView::subBSCU2impl::pedal1 " name =" pedal1 "
connectedPorts =" // @inputPorts .1 " owner =" // @components .2 "/ >
< inputPorts id =" model::modelComponentView::subBSCU2impl::pedal2 " name =" pedal2 "
connectedPorts =" // @inputPorts .0 " owner =" // @components .2 "/ >
< outputPorts id =" model::modelComponentView::subBSCU2impl::valid " name =" valid "
connectedPorts =" // @components .3/ @inputPorts .0 " owner =" // @components .2 "/ >
< outputPorts id =" model::modelComponentView::subBSCU2impl::cmd " name =" cmd " connectedPorts ="
// @components .0/ @inputPorts .1 " owner =" // @components .2 "/ >
< rules >
< inputExpression port =" // @components .2/ @inputPorts .0 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< inputExpression port =" // @components .2/ @inputPorts .1 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< outputExpression port =" // @components .2/ @outputPorts .0 " >
< failures type =" failure " id =" late "/ >
</ outputExpression >
< outputExpression port =" // @components .2/ @outputPorts .1 " >
< failures type =" failure " id =" late "/ >
</ outputExpression >
</ rules >
< rules >
< inputExpression port =" // @components .2/ @inputPorts .0 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< inputExpression port =" // @components .2/ @inputPorts .1 " >
< failures id =" noFailure "/ >
</ inputExpression >
< outputExpression port =" // @components .2/ @outputPorts .0 " >
< failures id =" noFailure "/ >
</ outputExpression >
< outputExpression port =" // @components .2/ @outputPorts .1 " >
< failures type =" failure " id =" omission "/ >
</ outputExpression >
</ rules >
< rules >
< inputExpression port =" // @components .2/ @inputPorts .0 " >
< failures id =" noFailure "/ >
</ inputExpression >
< inputExpression port =" // @components .2/ @inputPorts .1 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< outputExpression port =" // @components .2/ @outputPorts .0 " >
< failures id =" noFailure "/ >
</ outputExpression >
< outputExpression port =" // @components .2/ @outputPorts .1 " >
< failures type =" failure " id =" omission "/ >
</ outputExpression >
</ rules >
</ components >
< components xsi:type =" flamm:SimpleComponent " id ="
model::modelComponentView::bscuSys::validSwitch " name =" validSwitch " >
< inputPorts id =" model::modelComponentView::validSwitchImpl::valid2 " name =" valid2 "
connectedPorts =" // @components .2/ @outputPorts .0 " owner =" // @components .3 "/ >
< inputPorts id =" model::modelComponentView::validSwitchImpl::valid1 " name =" valid1 "
connectedPorts =" // @components .1/ @outputPorts .0 " owner =" // @components .3 "/ >
< outputPorts id =" model::modelComponentView::validSwitchImpl::valid " name =" valid "
connectedPorts =" // @outputPorts .1 " owner =" // @components .3 "/ >
< rules >
< inputExpression port =" // @components .3/ @inputPorts .1 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< inputExpression port =" // @components .3/ @inputPorts .0 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< outputExpression port =" // @components .3/ @outputPorts .0 " >
< failures type =" failure " id =" late "/ >
</ outputExpression >
</ rules >
< rules >
< inputExpression port =" // @components .3/ @inputPorts .1 " >
< failures id =" noFailure "/ >
</ inputExpression >
< inputExpression port =" // @components .3/ @inputPorts .0 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< outputExpression port =" // @components .3/ @outputPorts .0 " >
< failures id =" noFailure "/ >
</ outputExpression >
</ rules >
< rules >
< inputExpression port =" // @components .3/ @inputPorts .1 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< inputExpression port =" // @components .3/ @inputPorts .0 " >
< failures id =" noFailure "/ >
</ inputExpression >
< outputExpression port =" // @components .3/ @outputPorts .0 " >
< failures id =" noFailure "/ >
</ outputExpression >
</ rules >
</ components >
</ flamm:CompositeComponent >
G
The BSCU Flamm Architectural Model With FPTC Results
<? xml version =" 1.0 " encoding =" ASCII "? >
< flamm:CompositeComponent xmi:version =" 2.0 " xmlns:xmi =" http: // www . omg . org / XMI " xmlns:xsi ="
http: // www . w3 . org /2001/ XMLSchema - instance " xmlns:flamm =" http: // www . polarsys . org / chess / fla / flamm " id =" model::modelComponentView::bscuSys " name =" bscuSys " >
< inputPorts id =" model::modelComponentView::bscuSys::pedal2 " name =" pedal2 " connectedPorts =" //
@components .2/ @inputPorts .1 // @components .1/ @inputPorts .0 " owner ="/" >
< failures id =" noFailure "/ >
< failures type =" failure " id =" late "/ >
</ inputPorts >
< inputPorts id =" model::modelComponentView::bscuSys::pedal1 " name =" pedal1 " connectedPorts =" //
@components .1/ @inputPorts .1 // @components .2/ @inputPorts .0 " owner ="/" >
< failures id =" noFailure "/ >
</ inputPorts >
< outputPorts id =" model::modelComponentView::bscuSys::cmd " name =" cmd " connectedPorts =" //
@components .0/ @outputPorts .0 " owner ="/" >
< failures id =" noFailure " previousFailures =" // @components .0/ @outputPorts .0/ @failures .0 "/ >
< failures type =" failure " id =" omission " previousFailures =" // @components .0/ @outputPorts .0/
@failures .1 "/ >
</ outputPorts >
< outputPorts id =" model::modelComponentView::bscuSys::valid " name =" valid " connectedPorts =" //
@components .3/ @outputPorts .0 " owner ="/" >
< failures id =" noFailure " previousFailures =" // @components .3/ @outputPorts .0/ @failures .0 "/ >
</ outputPorts >
< components xsi:type =" flamm:SimpleComponent " id ="
model::modelComponentView::bscuSys::selectSwitch " name =" selectSwitch " >
< inputPorts id =" model::modelComponentView::selectSwitchImpl::valid " name =" valid "
connectedPorts =" // @components .1/ @outputPorts .0 " owner =" // @components .0 " >
< failures id =" noFailure " previousFailures =" // @components .1/ @outputPorts .0/ @failures .0 "/ >
</ inputPorts >
< inputPorts id =" model::modelComponentView::selectSwitchImpl::cmd2 " name =" cmd2 "
connectedPorts =" // @components .2/ @outputPorts .1 " owner =" // @components .0 " >
< failures id =" noFailure " previousFailures =" // @components .2/ @outputPorts .1/ @failures .0 "/ >
< failures type =" failure " id =" omission " previousFailures =" // @components .2/ @outputPorts .1/
@failures .1 "/ >
</ inputPorts >
< inputPorts id =" model::modelComponentView::selectSwitchImpl::cmd1 " name =" cmd1 "
connectedPorts =" // @components .1/ @outputPorts .1 " owner =" // @components .0 " >
< failures id =" noFailure " previousFailures =" // @components .1/ @outputPorts .1/ @failures .0 "/ >
< failures type =" failure " id =" omission " previousFailures =" // @components .1/ @outputPorts .1/
@failures .1 "/ >
</ inputPorts >
< outputPorts id =" model::modelComponentView::selectSwitchImpl::cmd " name =" cmd "
connectedPorts =" // @outputPorts .0 " owner =" // @components .0 " >
< failures id =" noFailure " previousFailures =" // @components .0/ @inputPorts .0/ @failures .0 //
@components .0/ @inputPorts .1/ @failures .0 // @components .0/ @inputPorts .2/ @failures .0 "/ >
< failures type =" failure " id =" omission " previousFailures =" // @components .0/ @inputPorts .1/
@failures .1 // @components .0/ @inputPorts .2/ @failures .1 // @components .0/ @inputPorts .0/
@failures .0 "/ >
</ outputPorts >
< rules >
< inputExpression port =" // @components .0/ @inputPorts .0 " >
< failures id =" noFailure "/ >
</ inputExpression >
< inputExpression port =" // @components .0/ @inputPorts .2 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< inputExpression port =" // @components .0/ @inputPorts .1 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< outputExpression port =" // @components .0/ @outputPorts .0 " >
< failures type =" failure " id =" late "/ >
</ outputExpression >
</ rules >
< rules >
< inputExpression port =" // @components .0/ @inputPorts .0 " >
< failures id =" noFailure "/ >
</ inputExpression >
< inputExpression port =" // @components .0/ @inputPorts .2 " >
< failures type =" failure " id =" omission "/ >
</ inputExpression >
< inputExpression port =" // @components .0/ @inputPorts .1 " >
< failures type =" failure " id =" omission "/ >
</ inputExpression >
< outputExpression port =" // @components .0/ @outputPorts .0 " >
< failures type =" failure " id =" omission "/ >
</ outputExpression >
</ rules >
</ components >
< components xsi:type =" flamm:SimpleComponent " id ="
model::modelComponentView::bscuSys::subBSCU1 " name =" subBSCU1 " >
< inputPorts id =" model::modelComponentView::subBSCU1impl::pedal2 " name =" pedal2 "
connectedPorts =" // @inputPorts .0 " owner =" // @components .1 " >
< failures id =" noFailure " previousFailures =" // @inputPorts .0/ @failures .0 "/ >
< failures type =" failure " id =" late " previousFailures =" // @inputPorts .0/ @failures .1 "/ >
</ inputPorts >
< inputPorts id =" model::modelComponentView::subBSCU1impl::pedal1 " name =" pedal1 "
connectedPorts =" // @inputPorts .1 " owner =" // @components .1 " >
< failures id =" noFailure " previousFailures =" // @inputPorts .1/ @failures .0 "/ >
</ inputPorts >
< outputPorts id =" model::modelComponentView::subBSCU1impl::valid " name =" valid "
connectedPorts =" // @components .3/ @inputPorts .1 // @components .0/ @inputPorts .0 " owner =" //
@components .1 " >
< failures id =" noFailure " previousFailures =" // @components .1/ @inputPorts .0/ @failures .1 //
@components .1/ @inputPorts .1/ @failures .0 // @components .1/ @inputPorts .0/ @failures .0 "/ >
</ outputPorts >
< outputPorts id =" model::modelComponentView::subBSCU1impl::cmd " name =" cmd " connectedPorts ="
// @components .0/ @inputPorts .2 " owner =" // @components .1 " >
< failures id =" noFailure " previousFailures =" // @components .1/ @inputPorts .0/ @failures .0 //
@components .1/ @inputPorts .1/ @failures .0 "/ >
< failures type =" failure " id =" omission " previousFailures =" // @components .1/ @inputPorts .0/
@failures .1 // @components .1/ @inputPorts .1/ @failures .0 "/ >
</ outputPorts >
< rules >
< inputExpression port =" // @components .1/ @inputPorts .1 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< inputExpression port =" // @components .1/ @inputPorts .0 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< outputExpression port =" // @components .1/ @outputPorts .0 " >
< failures type =" failure " id =" late "/ >
</ outputExpression >
< outputExpression port =" // @components .1/ @outputPorts .1 " >
< failures type =" failure " id =" late "/ >
</ outputExpression >
</ rules >
< rules >
< inputExpression port =" // @components .1/ @inputPorts .1 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< inputExpression port =" // @components .1/ @inputPorts .0 " >
< failures id =" noFailure "/ >
</ inputExpression >
< outputExpression port =" // @components .1/ @outputPorts .0 " >
< failures id =" noFailure "/ >
</ outputExpression >
< outputExpression port =" // @components .1/ @outputPorts .1 " >
< failures type =" failure " id =" omission "/ >
Appendix G: The BSCU Flamm Architectural Model With FPTC Results
</ outputExpression >
</ rules >
< rules >
< inputExpression port =" // @components .1/ @inputPorts .1 " >
< failures id =" noFailure "/ >
</ inputExpression >
< inputExpression port =" // @components .1/ @inputPorts .0 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< outputExpression port =" // @components .1/ @outputPorts .0 " >
< failures id =" noFailure "/ >
</ outputExpression >
< outputExpression port =" // @components .1/ @outputPorts .1 " >
< failures type =" failure " id =" omission "/ >
</ outputExpression >
</ rules >
</ components >
< components xsi:type =" flamm:SimpleComponent " id ="
model::modelComponentView::bscuSys::subBSCU2 " name =" subBSCU2 " >
< inputPorts id =" model::modelComponentView::subBSCU2impl::pedal1 " name =" pedal1 "
connectedPorts =" // @inputPorts .1 " owner =" // @components .2 " >
< failures id =" noFailure " previousFailures =" // @inputPorts .1/ @failures .0 "/ >
</ inputPorts >
< inputPorts id =" model::modelComponentView::subBSCU2impl::pedal2 " name =" pedal2 "
connectedPorts =" // @inputPorts .0 " owner =" // @components .2 " >
< failures id =" noFailure " previousFailures =" // @inputPorts .0/ @failures .0 "/ >
< failures type =" failure " id =" late " previousFailures =" // @inputPorts .0/ @failures .1 "/ >
</ inputPorts >
< outputPorts id =" model::modelComponentView::subBSCU2impl::valid " name =" valid "
connectedPorts =" // @components .3/ @inputPorts .0 " owner =" // @components .2 " >
< failures id =" noFailure " previousFailures =" // @components .2/ @inputPorts .0/ @failures .0 //
@components .2/ @inputPorts .1/ @failures .0 // @components .2/ @inputPorts .1/ @failures .1 "/ >
</ outputPorts >
< outputPorts id =" model::modelComponentView::subBSCU2impl::cmd " name =" cmd " connectedPorts ="
// @components .0/ @inputPorts .1 " owner =" // @components .2 " >
< failures id =" noFailure " previousFailures =" // @components .2/ @inputPorts .0/ @failures .0 //
@components .2/ @inputPorts .1/ @failures .0 "/ >
< failures type =" failure " id =" omission " previousFailures =" // @components .2/ @inputPorts .0/
@failures .0 // @components .2/ @inputPorts .1/ @failures .1 "/ >
</ outputPorts >
< rules >
< inputExpression port =" // @components .2/ @inputPorts .0 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< inputExpression port =" // @components .2/ @inputPorts .1 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< outputExpression port =" // @components .2/ @outputPorts .0 " >
< failures type =" failure " id =" late "/ >
</ outputExpression >
< outputExpression port =" // @components .2/ @outputPorts .1 " >
< failures type =" failure " id =" late "/ >
</ outputExpression >
</ rules >
< rules >
< inputExpression port =" // @components .2/ @inputPorts .0 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< inputExpression port =" // @components .2/ @inputPorts .1 " >
< failures id =" noFailure "/ >
</ inputExpression >
< outputExpression port =" // @components .2/ @outputPorts .0 " >
< failures id =" noFailure "/ >
</ outputExpression >
< outputExpression port =" // @components .2/ @outputPorts .1 " >
< failures type =" failure " id =" omission "/ >
</ outputExpression >
</ rules >
< rules >
< inputExpression port =" // @components .2/ @inputPorts .0 " >
< failures id =" noFailure "/ >
</ inputExpression >
< inputExpression port =" // @components .2/ @inputPorts .1 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< outputExpression port =" // @components .2/ @outputPorts .0 " >
< failures id =" noFailure "/ >
</ outputExpression >
< outputExpression port =" // @components .2/ @outputPorts .1 " >
< failures type =" failure " id =" omission "/ >
</ outputExpression >
</ rules >
</ components >
< components xsi:type =" flamm:SimpleComponent " id ="
model::modelComponentView::bscuSys::validSwitch " name =" validSwitch " >
< inputPorts id =" model::modelComponentView::validSwitchImpl::valid2 " name =" valid2 "
connectedPorts =" // @components .2/ @outputPorts .0 " owner =" // @components .3 " >
< failures id =" noFailure " previousFailures =" // @components .2/ @outputPorts .0/ @failures .0 "/ >
</ inputPorts >
< inputPorts id =" model::modelComponentView::validSwitchImpl::valid1 " name =" valid1 "
connectedPorts =" // @components .1/ @outputPorts .0 " owner =" // @components .3 " >
< failures id =" noFailure " previousFailures =" // @components .1/ @outputPorts .0/ @failures .0 "/ >
</ inputPorts >
< outputPorts id =" model::modelComponentView::validSwitchImpl::valid " name =" valid "
connectedPorts =" // @outputPorts .1 " owner =" // @components .3 " >
< failures id =" noFailure " previousFailures =" // @components .3/ @inputPorts .0/ @failures .0 //
@components .3/ @inputPorts .1/ @failures .0 "/ >
</ outputPorts >
< rules >
< inputExpression port =" // @components .3/ @inputPorts .1 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< inputExpression port =" // @components .3/ @inputPorts .0 " >
< failures type =" failure " id =" late "/ >
</ inputExpression >
< outputExpression port =" // @components .3/ @outputPorts .0 " >
< failures type =" failure " id =" late "/ >
</ outputExpression >
</ rules >
< rules >
< inputExpression port =" // @components .3/ @inputPorts .1 " >
< failures id =" noFailure "/ >
</ inputExpression >
< inputExpression port =" // @components .3/ @inputPorts .0 " >
< failures type =" failure " id =" late "/ >
< failures type =" failure " id =" late "/ >