Skip to content
Snippets Groups Projects
MIRA.requirements.html 13.40 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">MIRA - Model-based Integrated Requirements Analysis</font></u></h1>

<h2><font color="#336699">Create a Requirements Node</font></h2>

<p>Before creating <i>Requirements</i>, you have to create a <a href="MIRA.requirements_analysis.html">Requirements Analysis</a> node.<br />
<br />
Create a new <i>Requirements</i> node by choosing <i>Requirements</i>, in the context menu of the <i>Requirements Analysis</i> node.<br />
<br />
<img src="./pictures/MIRA.Requirements.NewRequirements.png" /><br />
<br />
<br />
<br />
Change the name of a <i>Requirements</i> node in the properties view. You also can create multiple requirement nodes with different names to organize your requirements.</p>

<h2><font color="#336699">Requirements Overview</font></h2>

<p>By double-clicking on the <i>Requirements</i> node, an overview over all requirements opens.<br />
<br />
<img src="./pictures/MIRA.Requirements.RequirementOverview.png" /><br />
<br />
The list of requirements can be sorted by clicking on the column headers of the overview list. You can filter the requirements by inserting a filter text in the filter section. Double-clicking on a column opens the corresponding requirement source element.</p>

<h2><font color="#336699">Requirements Packages</font></h2>

<p>Requirements are structured by <i>Requirements Packages</i>.<br />
<br />
<img src="./pictures/MIRA.Requirements.Packages.png" /></p>

<h2><font color="#336699">Specify Requirements</font></h2>

<p>To add a new requirement, open the context menu of the requirements node. You can choose between the following requirement types:</p>

<p><img src="./pictures/MIRA.Requirements.NewRequirement.png" /><br />
<br />
<br />
<br />
Requirements consist of four respectively five sections:</p>

<ul>
	<li><i>General</i>: Here all requirements management fields are located together with the fields describing the requirement informal.</li>
	<li><i>Images</i>: Here you can add images to the entry.</li>
	<li><i>Detail</i>: The specific fields for this requirements type are shown in this tab. Only for specific requirements.</li>
	<li><i>Traces</i>: Relations between requirements and to architecture are managed here.</li>
	<li><i>Safety</i>: Here you can specify safety-related information.</li>
	<li><i>Comment</i>: This tab is for comments.</li>
</ul>

<p><img src="./pictures/MIRA.Requirements.Sections.png" /></p>

<h3><font color="#336699">Section General</font></h3>

<p>In this section you can enter typical requirement management information.<br />
<br />
The <i>Document Reference</i> connects the requirement with a source <i>Document</i> from the <i>Requirement Sources</i>. You can add a page number for local documents. When clicking on the reference, the document opens automatically at that page.</p>

<h3><font color="#336699">Section Images</font></h3>

<p>For further description of the entry you can add pictures in the <i>Images</i>-section. To add a picture click on the <i>Add</i> button and choose an image file in the dialog. You can add as many pictures as you want. If you add a picture, it will be copied into the <i>images</i> folder in the <i>AF3-Project-Directory</i>, next to your .af3_20 file. If you want to send the model file to someone else, you should also send the <i>images</i> folder. Each image has a description field which can be used to give information about the picture and to number the pictures. If you click on an added picture, it should be displayed in full resolution in your systems picture viewer.<br />
&nbsp;</p>

<h3><font color="#336699">Section Detail</font></h3>

<p>This section contains the typical information for this kind of requirement.<br />
&nbsp;</p>

<h3><font color="#336699">Section Traces</font></h3>

<p>Requirements can be traced to other requirements to document relations between requirements or to components to document the realization of requirements in the architecture. Refinement specifications can be created to ease the refinement testing process as well.</p>

<h4><font color="#336699">Traces within requirements</font></h4>

<p>Requirements can be connected with each other by <i>traces</i> with different <i>relation types</i>.<br />
<br />
<img src="./pictures/MIRA.Requirements.TracesWithinRequirements.png" /><br />
<br />
Relation types are:</p>

<ul>
	<li><i>Conflicted</i>: a conflict between requirements was detected, which has to be analyzed further</li>
	<li><i>Contradicting</i>: requirements are irresolvable contradicting each other</li>
	<li><i>Override</i>: the <i>source</i> requirement(s) is/are overridden by the <i>target</i> requirement(s)</li>
	<li><i>Refinement</i>: the <i>source</i> requirement(s) is/are refined by the <i>target</i> requirement(s)</li>
</ul>

<p>Differentiation of relation type in static relation types and process-dependent relation types:</p>

<ul>
	<li>static relation types are conserved after the refining process</li>
	<li>process-dependent relation types like <i>is conflicted with</i> have to be removed during the refining process</li>
</ul>

<p>Static relation types:</p>

<ul>
	<li><i>is refined with</i> - <i>refines</i></li>
	<li><i>is contradicting to</i></li>
	<li><i>is overridden by</i> - <i>overrides</i></li>
</ul>

<p>Process-dependent relation types:</p>

<ul>
	<li><i>is conflicted with</i></li>
</ul>

<p><img src="./pictures/MIRA.RequirementTypes.png" /><br />
<br />
Assign the source and target requirements by clicking the assign button.<br />
A dialog will be opened where you can place the source and target requirements by dragging and dropping the requirements in the leftmost column. The middle column contains all referred source requirements while the rightmost column comprises all target requirements. Requirements can be removed by double-clicking.<br />
<br />
<img src="./pictures/MIRA.AssignRequirements.png" /><br />
<br />
To create a refinement specification, click the <i>Add refinement specification</i> button. A dialog will be opened where you have to choose your desired component to be refined. The selection depends on the assigned target requirements and whether they have formal specifications with concrete components.<br />
<br />
<img src="./pictures/MIRA.RefSpecSource.png" /><br />
<br />
After that, a second dialog will be opened to choose the desired refining component. The selection depends on the assigned source requirements and whether they have formal specifications with concrete components.<br />
<br />
<img src="./pictures/MIRA.RefSpecTarget.png" /><br />
<br />
The refinement specification will be issued and shown in the editor right after the selections.</p>

<h4><font color="#336699">Traces to component architectures</font></h4>

<p>Traces to a component document the realization of requirements in the component architecture. To set a trace to a component, press the <i>Add</i> button to create a new trace. To add a component, press the <img src="./pictures/MIRA.Requirements.ComponentButton.png" /> button. To delete a trace, select the row by clicking on the left side of the column. Then press the <i>Remove</i> button.<br />
<br />
<img src="./pictures/MIRA.Requirements.TracesToArchitecture.png" /><br />
<br />
Similar to the &#39;Traces within requirements&#39; section, a dialog will be opened to choose the refining component originating from the formal specification of current requirement. The component to be refined is stated in the <i>Target</i> field of the relation already.<br />
<br />
<img src="./pictures/MIRA.RefSpec.png" /><br />
&nbsp;</p>

<h3><font color="#336699">Section Safety</font></h3>

<p>In this section you can specify the safety properties of the requirement.<br />
<br />
<img src="./pictures/MIRA.Requirements.Safety.png" /><br />
<br />
Whenever the <i>Safety Relevance</i> of a trace link from the requirement to a component is set to <i>yes</i>, the SIL-level is relevant for the linked component.</p>

<h2><font color="#336699">Formal Specification</font></h2>

<p>A requirement can be formalized to a partial formal model, a <i>Formal Specification</i>. To create a formal specification open the context menu of the requirement and select <i>Formal Specification</i>.<br />
<br />
<img src="./pictures/MIRA.NewFormalSpecification.png" /><br />
<br />
Within a formal specification different kind of models like component architectures, state machines, etc. can be used. For more information see <i>Modeling and simulation</i>. Formal specifications can be used as input for the generation of test cases, see <a href="model_testing.html">Model-based Testing</a>. The conformance of the architecture implementation with the formalized requirements can be tested as described in <a href="refinement_testing.html">Refinement Testing</a>.<br />
<br />
<img src="./pictures/MIRA.FormalSpecification.png" /><br />
&nbsp;</p>

<h2><font color="#336699">Requirement Hierarchy</font></h2>

<p>The button <i>Show Requirement Hierarchy</i> opens a view, where all relations of the current requirement are shown, divided by relation types. Double-clicking on the requirements in the hierarchy opens the corresponding requirement in the editor.<br />
<br />
<img src="./pictures/MIRA.ShowRequirementHierarchy.png" /></p>

<h2><font color="#336699">Review Requirements</font></h2>

<p>MIRA offers support for an automatic review of the requirements. Furthermore, it also offers the possibility to save the results of manual review.<br />
&nbsp;</p>

<h3>Automatic requirements review</h3>

<p>The button <i>Review Requirements</i> syntactically checks the structure of the textual requirements and its relations with predefined automatic checks. Requirements, that do not pass one of these checks, are marked with a decoration and details on the results are shown in the warning list of the <i>Model Markers</i>.<br />
<br />
<img src="./pictures/MIRA.Verification.png" /><br />
<br />
<br />
<br />
This list gives an overview over the automatic checks for the distinct requirements types (A: all requirements types, I: only interface behaviour requirements):<br />
&nbsp;</p>

<table border="1">
	<thead>
		<tr>
			<th>Req. type</th>
			<th>Quality factor</th>
			<th>Quality indicator</th>
			<th>Check ID</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td>A</td>
			<td>Completeness</td>
			<td>Existance of title and description</td>
			<td>E1.4</td>
		</tr>
		<tr>
			<td>A</td>
			<td>Completeness</td>
			<td>Existance of a complete description, TODO has to be empty</td>
			<td>E1.5</td>
		</tr>
		<tr>
			<td>A</td>
			<td>Nonredundancy</td>
			<td>Nonredundancy of title or description</td>
			<td>E2.1</td>
		</tr>
		<tr>
			<td>A</td>
			<td>Traceability</td>
			<td>Requirement status at least analyzed</td>
			<td>E7.2</td>
		</tr>
		<tr>
			<td>A</td>
			<td>Prioritization</td>
			<td>Requirement prioritized</td>
			<td>E8</td>
		</tr>
		<tr>
			<td>A</td>
			<td>Consistency</td>
			<td>Requirements not conflicted</td>
			<td>E9.1</td>
		</tr>
		<tr>
			<td>A</td>
			<td>Refinement</td>
			<td>Refinement of declined requirements is also declined</td>
			<td>E10.3</td>
		</tr>
		<tr>
			<td>I</td>
			<td>Implementation</td>
			<td>Requirement connected to component in the component architecture</td>
			<td>E11</td>
		</tr>
	</tbody>
</table>

<p>&nbsp;</p>

<p><br />
Additionally, automatic checks on the traces between requirements and from requirements to architecture are performed (A: all trace types, D: only directed relations, U: only undirected relations, E: only traces to component architectures):</p>

<p>&nbsp;</p>

<table border="1">
	<thead>
		<tr>
			<th>Trace type</th>
			<th>Quality factor</th>
			<th>Quality indicator</th>
			<th>Check ID</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td>A</td>
			<td>Completeness</td>
			<td>Existance of author.</td>
			<td>E1.4</td>
		</tr>
		<tr>
			<td>U,D</td>
			<td>Completeness</td>
			<td>Existance of trace type.</td>
			<td>E1.4</td>
		</tr>
		<tr>
			<td>U</td>
			<td>Completeness</td>
			<td>Existance of at least two target requirements in the trace.</td>
			<td>E1.5</td>
		</tr>
		<tr>
			<td>D</td>
			<td>Completeness</td>
			<td>Existance of at least one source and at least one target requirement in the trace.</td>
			<td>E1.5</td>
		</tr>
		<tr>
			<td>E</td>
			<td>Completeness</td>
			<td>Existance of a target component in the trace.</td>
			<td>E1.5</td>
		</tr>
		<tr>
			<td>A</td>
			<td>Nonredundancy</td>
			<td>No duplicated traces.</td>
			<td>E2.2</td>
		</tr>
		<tr>
			<td>A</td>
			<td>Traceability</td>
			<td>Trace status is analyzed.</td>
			<td>E7.2</td>
		</tr>
		<tr>
			<td>A</td>
			<td>Consistency</td>
			<td>No cyclic dependencies between directed traces.</td>
			<td>E2.1</td>
		</tr>
	</tbody>
</table>

<p>&nbsp;</p>

<h3><font color="#336699">Support for manual reviews</font></h3>

<p><a id="check" name="check"></a>During the creation of each requirement automatically a list of checks for the manual review is created in a second tab called <i>Checklist</i>. The list is extracted from a XML-template, which can be modified. At the moment, this XML-template is contained in the source-folder of MIRA.<br />
<br />
<img src="./pictures/MIRA.Checklist.png" /></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>
</body>
</html>