Commit eb10deb1 authored by Florian Hölzl's avatar Florian Hölzl
Browse files

Added RCP application for the practical course product.

parents
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="test-src"/>
<classpathentry kind="output" path="build"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>org.fortiss.af3.rcp.application</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.fortiss.ide.dev_tools.warnings.GuidelinesChecker</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.systemfocus.tooling.codereview.builder.CodeReviewBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.systemfocus.tooling.codereview.builder.RemoveWarningsBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.systemfocus.tooling.codereview.builder.GuidelinesCheckBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.systemfocus.tooling.codereview.nature.CodeReviewNature</nature>
</natures>
</projectDescription>
eclipse.preferences.version=1
encoding//html/external_tools.html=UTF-8
encoding//model/conti.ecorediag=UTF-8
encoding//uml/exploration.ecorediag=UTF-8
encoding/<project>=US-ASCII
eclipse.preferences.version=1
editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
formatter_profile=_fortiss
formatter_settings_version=12
org.eclipse.jdt.ui.javadoc=true
org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/** Returns ${bare_field_name}. */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/** Sets ${bare_field_name}. */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*-------------------------------------------------------------------------+\n| Copyright ${year} fortiss GmbH |\n| |\n| Licensed under the Apache License, Version 2.0 (the "License"); |\n| you may not use this file except in compliance with the License. |\n| You may obtain a copy of the License at |\n| |\n| http\://www.apache.org/licenses/LICENSE-2.0 |\n| |\n| Unless required by applicable law or agreed to in writing, software |\n| distributed under the License is distributed on an "AS IS" BASIS, |\n| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |\n| See the License for the specific language governing permissions and |\n| limitations under the License. |\n+--------------------------------------------------------------------------*/</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * \n * @author ${user}\n*/</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">\n/** */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/** {@inheritDoc} */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-JSDoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
sp_cleanup.add_default_serial_version_id=true
sp_cleanup.add_generated_serial_version_id=false
sp_cleanup.add_missing_annotations=true
sp_cleanup.add_missing_deprecated_annotations=true
sp_cleanup.add_missing_methods=false
sp_cleanup.add_missing_nls_tags=false
sp_cleanup.add_missing_override_annotations=true
sp_cleanup.add_missing_override_annotations_interface_methods=true
sp_cleanup.add_serial_version_id=false
sp_cleanup.always_use_blocks=true
sp_cleanup.always_use_parentheses_in_expressions=false
sp_cleanup.always_use_this_for_non_static_field_access=false
sp_cleanup.always_use_this_for_non_static_method_access=false
sp_cleanup.convert_to_enhanced_for_loop=false
sp_cleanup.correct_indentation=false
sp_cleanup.format_source_code=true
sp_cleanup.format_source_code_changes_only=false
sp_cleanup.make_local_variable_final=false
sp_cleanup.make_parameters_final=false
sp_cleanup.make_private_fields_final=true
sp_cleanup.make_type_abstract_if_missing_method=false
sp_cleanup.make_variable_declarations_final=true
sp_cleanup.never_use_blocks=false
sp_cleanup.never_use_parentheses_in_expressions=true
sp_cleanup.on_save_use_additional_actions=false
sp_cleanup.organize_imports=true
sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
sp_cleanup.remove_private_constructors=true
sp_cleanup.remove_trailing_whitespaces=false
sp_cleanup.remove_trailing_whitespaces_all=true
sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
sp_cleanup.remove_unnecessary_casts=true
sp_cleanup.remove_unnecessary_nls_tags=false
sp_cleanup.remove_unused_imports=false
sp_cleanup.remove_unused_local_variables=false
sp_cleanup.remove_unused_private_fields=true
sp_cleanup.remove_unused_private_members=false
sp_cleanup.remove_unused_private_methods=true
sp_cleanup.remove_unused_private_types=true
sp_cleanup.sort_members=false
sp_cleanup.sort_members_all=false
sp_cleanup.use_blocks=false
sp_cleanup.use_blocks_only_for_return_and_throw=false
sp_cleanup.use_parentheses_in_expressions=false
sp_cleanup.use_this_for_non_static_field_access=false
sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
sp_cleanup.use_this_for_non_static_method_access=false
sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: AF3 RCP (Practical Course)
Bundle-SymbolicName: org.fortiss.af3.rcp.application;singleton:=true
Bundle-Version: 2.13.0.qualifier
Bundle-Activator: org.fortiss.af3.rcp.application.AF3ApplicationActivator
Bundle-Vendor: fortiss GmbH
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
Export-Package: org.fortiss.af3.rcp.application;
uses:="org.eclipse.jface.action,
org.eclipse.core.runtime,
org.eclipse.jface.resource,
org.eclipse.ui.application,
org.eclipse.ui,
org.eclipse.ui.plugin,
org.eclipse.equinox.app,
org.osgi.framework",
org.fortiss.af3.rcp.application.example,
test.org.fortiss.af3.rcp.application
Require-Bundle: org.eclipse.ui.ide.application,
org.fortiss.af3.project.ui;bundle-version="2.12.0",
org.fortiss.af3.state.ui;bundle-version="2.12.0",
org.fortiss.af3.deployment.ui;bundle-version="2.12.0",
org.fortiss.af3.platform.ui;bundle-version="2.12.0",
org.fortiss.af3.mira.ui;bundle-version="2.12.0",
org.fortiss.af3.operatorpanel.ui;bundle-version="2.12.0",
org.fortiss.af3.platform.raspberry.ui;bundle-version="2.9.0",
org.fortiss.af3.mode.ui;bundle-version="2.12.0",
org.eclipse.ui.intro;bundle-version="3.4.100",
org.eclipse.ui.intro.universal;bundle-version="3.2.500",
org.eclipse.ui,
org.eclipse.swtbot.forms.finder;bundle-version="2.0.5";resolution:=optional,
org.eclipse.swtbot.junit4_x;bundle-version="2.0.5";resolution:=optional,
org.eclipse.swtbot.eclipse.finder;bundle-version="2.0.5";resolution:=optional,
javax.servlet,
javax.servlet.jsp,
org.apache.commons.logging,
org.apache.lucene,
org.apache.lucene.analysis,
org.eclipse.equinox.http.jetty,
org.eclipse.equinox.http.registry,
org.eclipse.equinox.http.servlet,
org.eclipse.equinox.p2.director,
org.eclipse.help.base,
org.eclipse.help.ui,
org.eclipse.help.webapp,
org.eclipse.osgi.services,
org.eclipse.core.variables,
org.fortiss.tooling.kernel,
org.fortiss.af3.project,
org.fortiss.tooling.kernel.ui
# (c) 2011 fortiss GmbH
source.. = src/,\
test-src/
output.. = build/
bin.includes = plugin.xml,\
META-INF/,\
.,\
icons/,\
splash.bmp,\
html/,\
plugin_customization.ini,\
toc.xml,\
test-data/,\
intro/,\
introdata.xml
jre.compilation.profile = JavaSE-1.8
<!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 are 8 Aspects supported by AutoFOCUS:</p>
<ul>
<li>&ldquo;Timing aspect&rdquo; &ndash; the requirement refers to timing constraints</li>
<li>&ldquo;Signal aspect&rdquo; &ndash; the requirement defines a signal, its type and its range</li>
<li>&ldquo;Parameter definition aspect&rdquo; &ndash; the requirement defines a parametric value. This allows to reused other requirements by changing the value of the parameter</li>
<li>&ldquo;Safety level aspect&rdquo; &ndash; the requirement defines a safety level of the system</li>
<li>&ldquo;Mode aspect&rdquo; &ndash; the requirement defines an operational mode of the system</li>
<li>&ldquo;Design choice aspect&rdquo; &ndash; the requirement was derived from a design choice of the software developer</li>
<li>&ldquo;Functional aspect&rdquo; &ndash; the requirement specifies a particular behavior by relating inputs and outputs</li>
<li>&nbsp;&ldquo;Temporal property aspect&rdquo; &ndash; 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&nbsp;add this <em>Aspect</em> to&nbsp;a requirement&nbsp;for&nbsp;<span new="" style="line-height: 107%; font-family: ;" times="">referring</span> it&nbsp;to timing constraints.</p>
<p>In this section you can&nbsp;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&nbsp;the developed&nbsp;System</li>
</ol>
<p><img alt="" src="./pictures/aspects/Latency.png" style="width: 169px; height: 185px;" /></p>
<ol start="2">
<li>&quot;<em>should be</em>&quot; - this is an expression, if the chosen time parameter <em>should be</em> &quot;equal&quot;, &quot;lower&quot;, etc., than&nbsp;the necessary value, which is defined by you ( its value and unit) or</li>
<li>its&nbsp;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&nbsp;added to&nbsp;a requirement&nbsp;for&nbsp;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&nbsp;it&nbsp;is&nbsp;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&#39;t work properly&nbsp;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 &quot;boolean&quot;, &quot;int&quot;, &quot;double&quot;</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>: &quot;IEC 61508&quot;, &quot;ISO 26262&quot;&nbsp;or &quot;DO 178C&quot;, on which the requirement is&nbsp;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&#39;t work properly&nbsp;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&nbsp;System.</span></p>
<p><span style="color: rgb(0, 0, 0);">In this section you can add information about the System&#39;s modes by right-clicking mouse onto the table &quot;Mode&quot;, i.e. &quot;Turn on&quot; mode or &quot;Switch off&quot;.</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,&nbsp;in order to mark the requirement as a derived&nbsp;from the development process of the System&nbsp; and added to the requirements&#39; scope&nbsp;at the later phase of the System design process. </span><span style="font-family: &quot;-webkit-standard&quot;,serif; font-size: 12pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: &quot;Times New Roman&quot;; 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 &ldquo;derived requirements&quot;</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)&nbsp;of the inputs and outputs (2)&nbsp;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>&nbsp;<img alt="" src="./pictures/aspects/TempProp.png" style="width: 691px; height: 315px;" /></p>
<p>Another one&nbsp;Aspect, which can be used&nbsp;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>&quot;When&quot; -&nbsp;to describe&nbsp;an event,</li>
<li>&quot;If&quot; - to define undesired a&nbsp;behavior,</li>
<li>&quot;While&quot; - to define a system state,</li>
<li>&quot;Always&quot; - to define ubiquitous</li>
</ul>
<p><img alt="" src="./pictures/aspects/Conditions.png" style="width: 329px;" /></p>
<p>&nbsp;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>]&nbsp;and&nbsp;[<em>Trigger(s)</em>] for this event;&nbsp;then choose, how the system should behave choosing [<em>Response Type</em>: &quot;Then always (state)&quot; or&nbsp;&quot;Then once (event)&quot;] and define the&nbsp;<em>Response</em>]</p>
<p>(2) [<em>If</em>] system behaves in an undesired manner define [<em>Precondition</em>] and&nbsp;[<em>Trigger(s)</em>] for this behavior;&nbsp;then choose, how the system should behave&nbsp;setting [<em>Response Type</em>: &quot;Then always (state)&quot; or&nbsp;&quot;Then once (event)&quot;] and define the [<em>Response</em>]</p>
<p>(3) [<em>While</em>] system is in the state,&nbsp;define [<em>Precondition</em>]&nbsp;for this state; then choose, how the system should behave choosing&nbsp; [<em>Response Type</em>: &quot;Then always (state)&quot; or&nbsp;&quot;Then once (event)&quot;] and define the&nbsp;[<em>Response</em>]</p>
<p>(4) [<em>Always</em>]&nbsp;describe, what your system should do always do [<em>Response</em>].</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
Documentation of MIRA - Model-based Integrated Requirements Analysis.
@author wenwenchen
@author becker
@ConQAT.Rating GREEN Hash: 4B996BD35AD378AAA31334A6F9B086D0
-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>MIRA - Export information from AutoFOCUS3 (AF3)</title>
</head>
<body>
<h1><u><font color="#336699">MIRA - Model-based Integrated Requirements Analysis</font></u></h1>
<h2><font color="#336699">Exports</font></h2>
MIRA allows you to export your AF3-projects to HTM-, DOC-, and ReqIF-files.<br><br>
To export a report, you have two possibilities:
<br><br>
<ol>
<li>Right-click the requirements analysis-node in the model navigator
and click on the <i>Export Report</i>-button.</li>
<li>Open the overview of the requirements analysis-node and click on the <i>Export Report</i>-button
at the top-right of the screen.</li>
</ol>
<br><br>
A dialog will open in which you can select the elements you want to export:
<br><br>
<img src="./pictures/MIRA.RequirementsAnalysis.ExportReportDialog.png">
After selecting the elements, you can choose the file format of your report.<br><br>
<i>Please note:</i> Traces within Requirements will only be added to your report if all source and target requirements
of that trace are included to your export.
<br>
Example: If there exists a trace from requirement 1 to requirement 2 and requirement 2 is not selected for the report,
the trace won't be included as well.<br><br>
<i>Export of diagrams:</i> Please create report twice in order to export diagrams (MSCs, component diagram). Sorry for the inconvenience.
</body>
</html>
\ No newline at end of file
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--
Documentation of MIRA - Model-based Integrated Requirements Analysis.
@author becker
@ConQAT.Rating GREEN Hash: 850E39092E4DF6F9EEB6D26D886BEF68
-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>MIRA - Creating a Requirements Glossary using AutoFOCUS3 (AF3)</title>
</head>
<body>
<h1><u><font color="#336699">MIRA - Model-based Integrated Requirements Analysis</font></u></h1>
<h2><font color="#336699">Creating a Glossary</font></h2>
A glossary is used to capture the vocabulary of the problem domain. Once created, the glossary is automatically linked to the requirements. Using the glossary it is easily visible whether the agreed vocabulary is used in all descriptions.
<br><br>
To create a new glossary, select <i>Glossary</i> in the context menu of a requirements analysis.
<br><br>
<img src="./pictures/MIRA.Glossary.NewGlossary.png">
<br><br>
<br><br>
You can create multiple glossary nodes with specific names (set in the properties view) to group your glossary terms.
<h3><font color="#336699">Creating Glossary Entries</font></h3>
In the context menu of the glossary node you can then create glossary entries by clicking <i>Entry</i>.
<br><br>
<img src="./pictures/MIRA.Glossary.NewEntry.png">
<br><br>
An alternative way to create a new glossary entry is to select a word in glossary entry, requirement source element or requirement editor, right-click on it and choose <i>Create glossary entry</i>.
If no glossary exists yet, a new one is created; if multiple glossaries exist, you are asked where the entry should be created.
<br><br>
<img src="./pictures/MIRA.Glossary.ContextMenu.png">
<br><br>
If no word is selected in the editor while choosing <i>Create glossary entry</i>, an appropriate word will be automatically chosen according to the actual context.
The chosen word is displayed in a confirmation dialog. Click the button <i>OK</i> to create a new glossary entry with this word.
If there is no appropriate word, an error dialog will appear.
<br><br>
<img src="./pictures/MIRA.Glossary.ConfirmDialog.png">
<br>
Confirm dialog
<br><br>
<img src="./pictures/MIRA.Glossary.ErrorDialog.png">
<br>
Error dialog
<h2><font color="#336699">Glossary Overview</font></h2>
By double-clicking on the <i>Glossary</i> node, an overview over all glossary entries opens.
<br><br>
<img src="./pictures/MIRA.GlossaryOverview.png">
<br><br>
The list of glossary entries can be sorted by clicking on the column headers of the overview list.
You can filter the glossary entries by inserting filter text in the filter section. Double-clicking on a column opens the corresponding glossary entry.
<h2><font color="#336699">Specifying Glossary Entries</font></h2>
For each entry you should at least specify the <i>name</i> (the vocabulary term it represents). In the <i>definition</i> field you should enter what this term means in your problem domain.
An entry also has a <i>status</i> field (Options: New, In consolidation, Consolidated) which can be used to consolidate it with others.
Furthermore you can specify <i>abbreviations</i> and <i>synonyms</i> for the entry and add a comment.
In <i>names</i>, <i>abbreviations</i> and <i>synonyms</i> only the special characters "-_/&rsquo;()" are allowed.
<br><br>
<img src="./pictures/MIRA.Glossary.GlossaryEntry.png">
<br><br>
For further description of the entry you can add pictures. 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.
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>
When you add a picture it is copied into the <i>Images</i> folder in the project directory, 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.
<h2><font color="#336699">Consolidating Glossary Entries</font></h2>
The <i>status</i> field supports the consolidation of glossary entries (and requirement sources). We assume that there are two groups of persons involved in the consolidation process.
The first group of people documents the glossary entries; we call these persons the requirements engineers.
The second group of people has to agree on the terms in the glossary; we call these persons now the decision makers.
These groups can of course overlap or even be identically. Typically, these two groups are defined when a project starts. Typical members of decision makers are for example the client or the product manager.
<br><br>
Every requirement engineer can document new glossary terms and add definitions, abbreviations and so on. The status for new terms is <i>new</i>.
When a requirements engineer decides that the <i>new</i> term is sufficiently described, he can set the status to <i>in consolidation</i>.
For a terms that is <i>in consolidation</i>, the decision makers have to agree on that term, its definition and so on.
When all decision makers agree, then the status of this term can be set to <i>consolidated</i>.
If a term is <i>consolidated</i> and a decision maker thinks that this term is not defined correctly, then he/she can set the status back to <i>new</i> which triggers a new round of consolidation.
<br><br>
The <i>status</i> field can be filtered in the <i>Glossary Overview</i> in order to determine the list of terms that are
<i>new</i>, <i>in consolidation</i> or <i>consolidated</i>.
<h2><font color="#336699">Connection between Glossaries, Requirement Source Elements and Requirements</font></h2>
<br>
After you specified your glossary entries, they will be highlighted when you use the terms in the glossary entries, requirement source elements and requirements specifications.
Blue color is used to mark a <i>name</i> or an <i>abbreviation</i> of a glossary term as well as requirement sources.
Red is used to mark a <i>synonym</i>.
<br><br>
The highlighting function features correct recognition of multiple word terms that are split by blanks or special characters.
Also terms surrounded by special characters like brackets or slashes are correctly highlighted.
An additional feature is the maintained highlighting with terms followed by plural "s" or "es" endings.
<br><br>
<img src="./pictures/MIRA.Glossary.Highlighting.png">
<br><br>
Furthermore matching glossary entries and requirement source element will be presented to you when you start typing a name and pause for a second.
If you choose one of the suggestions, the rest of the name will be inserted automatically.
<br><br>
<img src="./pictures/MIRA.Glossary.Autocomplete.png">
<br><br>
When you hold the mouse cursor for a second on a highlighted term, a pop-up will show additional information.
In the pop-up you can see the definition of the glossary entry/requirement source element and whether the marked occurrence is an abbreviation
or a synonym of this entry/element. If the entry contains images, the first image is shown in the pop-up window as well.
When you click on the name in the pop-up, the editor for this glossary entry/requirement source element will be opened.
<br><br>
<img src="./pictures/MIRA.Glossary.PopupHover.png">
<br><br>
If there are two or more requirement source elements and/or glossary entries with the same name, <i>Stakeholder</i> has the highest priority, and then <i>Document</i>,
then <i>External system</i>, and at last <i>Glossary Entry</i>. Name with higher priority is in the front of pop-up and the highlight color is the color of the name/term with highest priority.
<br><br>
<img src="./pictures/MIRA.RequirementSource.Priority.png">
<br><br>
The glossaries always belong to one <i>Requirements Analysis</i> node. The glossary entries of one <i>Requirements Analysis</i> node will not be highlighted in another <i>Requirements Analysis</i> node.
<br><br>
<h2><font color="#336699">Glossary Occurrences</font></h2>
<br>
By double-clicking onto a Glossary Entry, an overview over all glossary entry occurrences page is opened as a second window.
<br><br>
In the usage statistics section, the number of <b>exact</b> occurrences of the glossary term in <i>Documents</i>, <i>Requirements</i> or another <i>Glossary Entries</i> is given,
as well as in <i>Arrays</i>, <i>Enumerations</i> and <i>Structures</i> which are found in the data dictionaries.
The Filter option helps to filter the list of occurrences. Each element of the list can be opened by double-clicking the entry in the <i>Overview</i> section.
<br><br>
Additionally, the search can be extended to similar words via the <i>Similarity</i> slider. Similar terms are then included in the overview list.
The similarity is calculated based on the <a href="http://en.wikipedia.org/wiki/Levenshtein_distance">Levenshtein Distance</a>. Every step of the
slider increases the search distance by 1, thereby allowing more words with bigger differences in the overview list. The similarity search respects plural endings and special chars to a certain extent.
Words shorter than 4 letters, for example abbreviations, are excluded from the similarity search,
as this would lead to bulk lists containing nonsense.