-
Tatiana Chuprina authored
Signed-off-by:
Tatiana Chuprina <chuprina@fortiss.org>
Tatiana Chuprina authoredSigned-off-by:
Tatiana Chuprina <chuprina@fortiss.org>
MIRA.aspects.html 10.07 KiB
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head><!--
Documentation of MIRA - Model-based Integrated Requirements Analysis.
@author becker
@ConQAT.Rating GREEN Hash: 9E1B5106815B8C6D8DF2ECC5890F5C39
-->
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type" />
<title>MIRA - Creating a Requirements Analysis using AutoFOCUS3 (AF3)</title>
</head>
<body>
<h1><u><font color="#336699">General Aspects</font></u></h1>
<h2><font color="#336699">Aspects in Requirements</font></h2>
<p>You can give structure to your requirements using <em>Aspects</em>. They allow to categorize requirements as explained below.</p>
<p>There are different tags, each representing a particular <em>Aspect</em> the requirement may focus on.</p>
<p><img alt="" src="./pictures/aspects.png" style="width: 533px; height: 420px;" /></p>
<p>There is a main set of 8 Aspects supported by AutoFOCUS3:</p>
<ul>
<li>“Timing aspect” – the requirement refers to timing constraints</li>
<li>“Signal aspect” – the requirement defines a signal, its type and its range</li>
<li>“Parameter definition aspect” – the requirement defines a parametric value. This allows to reused other requirements by changing the value of the parameter</li>
<li>“Safety level aspect” – the requirement defines a safety level of the system</li>
<li>“Mode aspect” – the requirement defines an operational mode of the system</li>
<li>“Design choice aspect” – the requirement was derived from a design choice of the software developer</li>
<li>“Functional aspect” – the requirement specifies a particular behavior by relating inputs and outputs</li>
<li> “Temporal property aspect” – the requirement defines a property, which can be defined using temporal patterns</li>
</ul>
<p>To add an <em>Aspect</em>, choose the requirement and right-click on it to get the pop-up menu. Now you can select the corresponding <em>Aspects</em>. All assigned <em>Aspects</em> to the requirement will be visible as <em>Tabs</em> in the main editor for Requirements.</p>
<p><img alt="" src="./pictures/aspectsTabs.png" style="width: 727px; height: 352px;" /></p>
<p>Every <em>Aspect</em> can be removed from requirement using the respective button in respective <em>Tab</em>:</p>
<p><img alt="" src="./pictures/aspectsRemove.png" style="width: 729px; height: 270px;" /></p>
<p>Below you can fined more detailed description of every <em>Aspect</em>.</p>
<h2><span style="color: rgb(51, 102, 153);">Timing </span><font color="#336699">Aspect</font></h2>
<h2><span style="color: rgb(51, 102, 153);"><img alt="" src="./pictures/aspects/TA.png" style="width: 729px; height: 241px;" /></span></h2>
<p>You can add this <em>Aspect</em> to a requirement for <span new="" style="line-height: 107%; font-family: ;" times="">referring</span> it to timing constraints.</p>
<p>In this section you can define the <em>Timing specification </em>by checking the following constraints:</p>
<ol>
<li><em>Latency</em>, <em>Response Time</em> or <em>Processing Time</em> of the developed System</li>
</ol>
<p><img alt="" src="./pictures/aspects/Latency.png" style="width: 169px; height: 185px;" /></p>
<ol start="2">
<li>"<em>should be</em>" - this is an expression, if the chosen time parameter <em>should be</em> "equal", "lower", etc., than the necessary value, which is defined by you ( its value and unit) or</li>
<li>its range<em> should be </em>between two values</li>
</ol>
<h2><span style="color: rgb(51, 102, 153);">Signal </span><font color="#336699">Aspect</font></h2>
<h2><span style="color: rgb(51, 102, 153);"><img alt="" src="./pictures/aspects/SD.png" style="width: 729px; height: 442px;" /></span></h2>
<p>This Aspect can be added to a requirement for defining a signal.</p>
<p>Here you can specify all necessary signal parameters such as:</p>
<ol>
<li>its <em>Name</em></li>
<li>if it is an <em>Input </em>or <em>Output</em> signal</li>
<li>its <em>Type</em> (it can be integer, boolean, etc.)</li>
<li><em>Initial Value </em>of the signal or</li>
<li>its range <strong>(!it doesn't work properly at the moment)</strong></li>
<li>and its <em>Update rate</em> in <span new="" style="line-height: 107%; font-family: ;" times="">milliseconds</span> (ms)</li>
</ol>
<h2><span style="color: rgb(51, 102, 153);">Parameter definition Aspect</span></h2>
<h2><span style="color: rgb(51, 102, 153);"><img alt="" src="./pictures/aspects/PD.png" style="width: 729px; height: 247px;" /></span></h2>
<p>In this Aspect you can specify the reusable parameter in a requirement, by defining:</p>
<ol>
<li><em>Name</em> of the parameter</li>
<li><em>Default value </em>of the parameter, which will be used during the simulation</li>
<li><em>Type </em>of the parameter, such as "boolean", "int", "double"</li>
</ol>
<h2><span style="color: rgb(51, 102, 153);">Safety level Aspect </span></h2>
<h2><span style="color: rgb(51, 102, 153);"><img alt="" src="./pictures/aspects/SL.png" style="width: 729px; height: 244px;" /></span></h2>
<p>If your requirement refers to a safety aspect, you can specify a safety level defining:</p>
<ol>
<li>one of the <em>Safety Standards</em>: "IEC 61508", "ISO 26262" or "DO 178C", on which the requirement is based on.</li>
</ol>
<p><img alt="" src="./pictures/aspects/safetyStandards.png" style="width: 249px; height: 153px;" /></p>
<ol start="2">
<li><em>Safety Integrity Level</em> (SIL from 1 to 4) <strong>(!it doesn't work properly at the moment)</strong></li>
</ol>
<h2><span style="color: rgb(51, 102, 153);">Mode Aspect </span></h2>
<h2><span style="color: rgb(51, 102, 153);"><img alt="" src="./pictures/aspects/Mode.png" style="width: 729px; height: 366px;" /></span></h2>
<p><span style="color: rgb(0, 0, 0);">This Aspect can be tagged to the requirement, which describes operational mode of a System.</span></p>
<p><span style="color: rgb(0, 0, 0);">In this section you can add information about the System's modes by right-clicking mouse onto the table "Mode", i.e. "Turn on" mode or "Switch off".</span></p>
<h2><span style="color: rgb(51, 102, 153);">Design choice Aspect </span></h2>
<h2><span style="color: rgb(51, 102, 153);"><img alt="" src="./pictures/aspects/DCh.png" style="width: 479px; height: 423px;" /></span></h2>
<p><span style="color: rgb(0, 0, 0);">This Aspect can be used, for example, in order to mark the requirement as a derived from the development process of the System and added to the requirements' scope at the later phase of the System design process. </span><span style="font-family: "-webkit-standard",serif; font-size: 12pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">This Aspect gives a reference to the DO178 standard, where such kind of requirements is described as “derived requirements"</span><span style="color: rgb(0, 0, 0);">.</span></p>
<h2><font color="#336699">Functional Aspect</font></h2>
<h2><img alt="" src="./pictures/aspects/Func.png" style="width: 1084px; height: 641px;" /></h2>
<p>A functional aspect specifies the relation of inputs and outputs.</p>
<p>The rows in the table to the left specifies the names (1) of the inputs and outputs (2) used in the relation.</p>
<p>The <em>Code Specification</em> specifies the relation between inputs and outputs.</p>
<h2><span style="color: rgb(51, 102, 153);">Temporal property A</span><span style="color: rgb(51, 102, 153);">spect</span></h2>
<p> <img alt="" src="./pictures/aspects/TempProp.png" style="width: 691px; height: 315px;" /></p>
<p>Another one Aspect, which can be used in the behavior definition using temporal patterns. For this purpose you need to define a <em>Condition Type</em> :</p>
<ul style="margin-left: 40px;">
<li>"When" - to describe an event,</li>
<li>"If" - to define undesired a behavior,</li>
<li>"While" - to define a system state,</li>
<li>"Always" - to define ubiquitous</li>
</ul>
<p><img alt="" src="./pictures/aspects/Conditions.png" style="width: 329px;" /></p>
<p> According to your chosen [<em>Condition type</em>]<em>, </em>you can apply the defined temporal pattern:</p>
<p>(1) [<em>When</em>] an event happens define [<em>Precondition</em>] and [<em>Trigger(s)</em>] for this event; then choose, how the system should behave choosing [<em>Response Type</em>: "Then always (state)" or "Then once (event)"] and define the <em>Response</em>]</p>
<p>(2) [<em>If</em>] system behaves in an undesired manner define [<em>Precondition</em>] and [<em>Trigger(s)</em>] for this behavior; then choose, how the system should behave setting [<em>Response Type</em>: "Then always (state)" or "Then once (event)"] and define the [<em>Response</em>]</p>
<p>(3) [<em>While</em>] system is in the state, define [<em>Precondition</em>] for this state; then choose, how the system should behave choosing [<em>Response Type</em>: "Then always (state)" or "Then once (event)"] and define the [<em>Response</em>]</p>
<p>(4) [<em>Always</em>] describe, what your system should do always do [<em>Response</em>].</p>
<h2><font color="#336699">Other Aspects in Requirements</font></h2>
<p>There is a set of safety Aspects, which can specify safety conditions of a system:</p>
<li> Safety Level Aspect</li>
<li> Safety - Hazart Analysis Aspect</li>
<li> Safety - MooN Solution Aspect</li>
<li> Assets</li>
<li> Vulnerabilities</li>
<li> Threats</li>
<li> Counter Measures</li>
<p>More information about safety cases can be found in respective parts <a href="safety_cases.html">here</a>.</p>
</body>
</html>