<?xml 
version="1.0" encoding="iso-8859-1"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel xml:lang="en">
	<title>CETIC</title>
	<link>http://www.cetic.be/</link>
	
	<language>en</language>
	<generator>SPIP - www.spip.net</generator>




<item xml:lang="en">
		<title>20. The Requirements Animator</title>
		<link>http://www.cetic.be/article166.html</link>
		<guid isPermaLink="true">http://www.cetic.be/article166.html</guid>
		<dc:date>2009-03-12T09:21:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Christophe PONSARD</dc:creator>



		<description>This article shows the goal-oriented requirements animator in action through some movies and snapshots. A demo version of the animator itself will be downloadable soon. View the animator in action The following videos require macromedia flash player. They were captured in 1024x768 and are best viewed in full screen or in a larger resolution. Presentation of the train system [1'17] : this video explains the KAOS model of the railway system which will be animated. It is shown in the (...)

-
&lt;a href="http://www.cetic.be/rubrique295.html" rel="directory"&gt;FAUST&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;This article shows the goal-oriented requirements animator in action through some movies and snapshots. A demo version of the animator itself will be downloadable soon.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h3 class=&quot;spip&quot;&gt;View the animator in action&lt;/h3&gt;
&lt;p&gt;The following videos require &lt;a href='http://www.macromedia.com/go/getflashplayer/' class='spip_out'&gt;macromedia flash player&lt;/a&gt;. They were captured in 1024x768 and are best viewed in full screen or in a larger resolution.&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://www.cetic.be/squelettes-dist/puce.gif&quot; width='8' height='11' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;i&gt;&lt;a href='http://www.accessible-it.org/videos/faust/Video-Animator_specification_explanation.html' class='spip_out'&gt;Presentation of the train system&lt;/a&gt;&lt;/i&gt; [1'17] : this video explains the KAOS model of the railway system which will be animated. It is shown in the &lt;a href='http://www.objectiver.com/' class='spip_out'&gt;Objectiver&lt;/a&gt; requirements engineering tool in which the animator is integrated.&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://www.cetic.be/squelettes-dist/puce.gif&quot; width='8' height='11' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;i&gt;&lt;a href='http://www.accessible-it.org/videos/faust/Video-Animator_running_animation_server.html' class='spip_out'&gt;Starting the animator server&lt;/a&gt;&lt;/i&gt; [0'14] : this very short video show how to start an animator server and the P-FSM compilation step.&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://www.cetic.be/squelettes-dist/puce.gif&quot; width='8' height='11' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;i&gt;&lt;a href='http://www.accessible-it.org/videos/faust/Video-Animator_scenario_two_trains.html' class='spip_out'&gt;Playing a scenario with two trains&lt;/a&gt;&lt;/i&gt; [3'12] : this video truly shows the animator in action. An animator actor is started and connected to the animator server. Then a pre-recorded scenario is loaded and executed step-by-step. Various operations application
are shown in parallel on multiple train/car instances:
train progress, train stop at a station, door opening/closing, train/car crossing a gate, etc.&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://www.cetic.be/squelettes-dist/puce.gif&quot; width='8' height='11' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;i&gt;&lt;a href='http://www.accessible-it.org/videos/faust/Video-Animator_specification_explanation.html' class='spip_out'&gt;Monitoring a goal violation&lt;/a&gt;&lt;/i&gt; [2'28] : this last video shows the animator watchdog in action for monitoring a simple safety property &lt;i&gt;Maintain[DoorClosedWhileMoving]&lt;/i&gt;. In the illustrated scenario, a model error allows a train to be started with its doors opened. Relevant events are logged and the goal violation detected. The origin of the error is then traced.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;Some Animator Snapshots&lt;/h3&gt;
&lt;dl class='spip_document_69 spip_documents spip_documents_center' &gt;
&lt;dt&gt;&lt;img src='http://www.cetic.be/IMG/jpg/anim1.jpg' width='500' height='406' alt='JPEG - 53.9 kb' style='height:406px;width:500px;' /&gt;&lt;/dt&gt;
&lt;dt class='spip_doc_titre' style='width:350px;'&gt;&lt;strong&gt;Animation of the train system&lt;/strong&gt;&lt;/dt&gt;
&lt;/dl&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>10. The Refinement Checker</title>
		<link>http://www.cetic.be/article171.html</link>
		<guid isPermaLink="true">http://www.cetic.be/article171.html</guid>
		<dc:date>2009-03-12T09:20:48Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Christophe PONSARD</dc:creator>



		<description>This article shows some screenshots and video of the early V&amp;V tool in action. What is the early formal V&amp;V tool about ? The purpose of this tool is to verify the correctness of KAOS constructs such as refinements and operationalisations. Those checks are local in nature and rely on the use of model-checking technology. By the production of related examples or counter-examples, this also allows the analyst to validate his work, especially when used together with the Requirements (...)

-
&lt;a href="http://www.cetic.be/rubrique295.html" rel="directory"&gt;FAUST&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;This article shows some screenshots and video of the early V&amp;V tool in action.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h3 class=&quot;spip&quot;&gt;What is the early formal V&amp;V tool about ?&lt;/h3&gt;
&lt;p&gt;The purpose of this tool is to verify the correctness of KAOS constructs such as refinements and operationalisations. Those checks are local in nature and rely on the use of model-checking technology. By the production of related examples or counter-examples, this also allows the analyst to validate his work, especially when used together with the Requirements Animator.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;View the tool in action&lt;/h3&gt;
&lt;p&gt;The following videos require macromedia flash player. They were captured in 1024x768 and are best viewed in full screen or in a larger resolution.&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://www.cetic.be/squelettes-dist/puce.gif&quot; width='8' height='11' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;i&gt;&lt;a href='http://www.accessible-it.org/videos/faust/evv1-train-spec.swf.html' class='spip_out'&gt;Presentation of the model of the train system&lt;/a&gt;&lt;/i&gt; [0'59] : this video explains the KAOS model of the railway system which will be animated. It is shown in the Objectiver requirements engineering tool in which the animator is integrated.&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://www.cetic.be/squelettes-dist/puce.gif&quot; width='8' height='11' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;i&gt;&lt;a href='http://www.accessible-it.org/videos/faust/evv2-ref-check-ko.swf.html' class='spip_out'&gt;An Incorrect Goal Refinement&lt;/a&gt;&lt;/i&gt; [0'46] : in the inital model, the goal &lt;i&gt;Achieve[TrainProgress]&lt;/i&gt; is refined into &lt;i&gt;Achieve[SignalSetToGo]&lt;/i&gt; and &lt;i&gt;Achieve[ProgressWhenSignalSetToGo]&lt;/i&gt;. Running the tool reveals a counter-example indicating the refinement is incomplete.&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://www.cetic.be/squelettes-dist/puce.gif&quot; width='8' height='11' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;i&gt;&lt;a href='http://www.accessible-it.org/videos/faust/evv3-ref-check-ok.swf.html' class='spip_out'&gt;Correcting the Refinement&lt;/a&gt;&lt;/i&gt; [0'52] : the problem is fixed by requiring that a train should keep waiting by adding the goal &lt;i&gt;Maintain[TrainWaiting]&lt;/i&gt;. The new check shows no more counter-example (on the searched domain).&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://www.cetic.be/squelettes-dist/puce.gif&quot; width='8' height='11' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;i&gt;&lt;a href='http://www.accessible-it.org/videos/faust/evv4-op-check.swf.html' class='spip_out'&gt;Checking Operationalisations&lt;/a&gt;&lt;/i&gt; [2'52] : the verification of the equivalence between operations and the operationalized goal is illustrated on the operation &lt;i&gt;MoeTrainToNextBlock&lt;/i&gt; and the goal &lt;i&gt;Achieve[ProgressWhenGoSignal]&lt;/i&gt;&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://www.cetic.be/squelettes-dist/puce.gif&quot; width='8' height='11' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;i&gt;&lt;a href='http://www.accessible-it.org/videos/faust/evv6-tool-ui.swf.html' class='spip_out'&gt;A Form-based Interface&lt;/a&gt;&lt;/i&gt; [2'32] : besides the textual interface, a form-based interface is also available. Through it, the analyst can easily configure the required parameters by simple drag'n drop of goals, instances, domain properties, etc.&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://www.cetic.be/squelettes-dist/puce.gif&quot; width='8' height='11' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;i&gt;&lt;a href='http://www.accessible-it.org/videos/faust/evv7-report-gen.swf.html' class='spip_out'&gt;Generating Check Reports&lt;/a&gt;&lt;/i&gt; [5'44] : this video shows how it is easy to generate both HTML and RTF documentation of the performed checks. It heavily relies on the Objectiver infrastructure for this.&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://www.cetic.be/squelettes-dist/puce.gif&quot; width='8' height='11' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;strong&gt;[More advanced]&lt;/strong&gt; &lt;i&gt;&lt;a href='http://www.accessible-it.org/videos/faust/evv5-obs-conflict.swf.html' class='spip_out'&gt;Checking Conflicts and Obstructions&lt;/a&gt;&lt;/i&gt; [7'24] : other KAOS constructs can also be formally verified such as obstructions and conflicts. This video shows some related checks.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;Some snapshots&lt;/h3&gt;
&lt;p&gt;&lt;span class='spip_document_275 spip_documents' &gt;
&lt;img src='http://www.cetic.be/IMG/gif/early1m.gif' width='500' height='373' alt=&quot;&quot; style='height:373px;width:500px;' /&gt;&lt;/span&gt;
&lt;br/&gt;&lt;/p&gt; &lt;p&gt;&lt;span class='spip_document_276 spip_documents' &gt;
&lt;img src='http://www.cetic.be/IMG/gif/early2m.gif' width='500' height='373' alt=&quot;&quot; style='height:373px;width:500px;' /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="en">
		<title>30. The Acceptance Tests Generator</title>
		<link>http://www.cetic.be/article221.html</link>
		<guid isPermaLink="true">http://www.cetic.be/article221.html</guid>
		<dc:date>2009-03-12T09:20:34Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>en</dc:language>
		<dc:creator>Christophe PONSARD</dc:creator>



		<description>Acceptance tests are crucial, for example for getting the assurance that a subcontracted development meets its requirements. The FAUST generator enables the analyst to define high quality acceptance tests from requirements documents. Acceptance Tests The purpose of testing is to provide a reasonable assurance of the correction of the developed code. This also means that tests are not about proving the code is correct: all behavior cannot be inspected. The assurance is provided by a (...)

-
&lt;a href="http://www.cetic.be/rubrique295.html" rel="directory"&gt;FAUST&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Acceptance tests are crucial, for example for getting the assurance that a subcontracted development meets its requirements. The FAUST generator enables the analyst to define high quality acceptance tests from requirements documents.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h3 class=&quot;spip&quot;&gt;Acceptance Tests&lt;/h3&gt;
&lt;p&gt;The purpose of testing is to provide a reasonable assurance of the correction of the developed code. This also means that tests are not about proving the code is correct: all behavior cannot be inspected. The assurance is provided by a coverage criterion.&lt;/p&gt; &lt;p&gt;Several kind of tests can be distinguished because correction can be expressed in relation with different kinds of documents expressing the system behavior at different levels : from the component level (unit tests), design level (integration tests), up to the software reception by the customer (acceptance tests). Those levels are best illustrated by the &quot;V-model&quot; in the following figure.&lt;/p&gt; &lt;dl class='spip_document_363 spip_documents' &gt;
&lt;dt&gt;&lt;img src='http://www.cetic.be/IMG/gif/Vmodel2.gif' width='350' height='209' alt='GIF - 12 kb' style='height:209px;width:350px;' /&gt;&lt;/dt&gt;
&lt;dt class='spip_doc_titre' style='width:350px;'&gt;&lt;strong&gt;The V-Model.&lt;/strong&gt;&lt;/dt&gt;
&lt;/dl&gt;
&lt;p&gt;The purpose of the FAUST toolbox is to help achieving high assurance in the Requirements Engineering (RE) process. With respect to testing its area is acceptance testing. The approach is goal-oriented and the acceptance tests cases are thus generated from a &lt;strong&gt;goal-model&lt;/strong&gt;. It has a number of interesting properties:
&lt;br /&gt;&lt;img src=&quot;http://www.cetic.be/squelettes-dist/puce.gif&quot; width='8' height='11' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; test generation does not require an operational model: a prescriptive model is enough (ie. a model stating the required properties but now how to achieve them). This allows one to genere high level tests without imposing specific design choices.
&lt;br /&gt;&lt;img src=&quot;http://www.cetic.be/squelettes-dist/puce.gif&quot; width='8' height='11' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; the coverage criterion is goal-based: the potential system behaviors stated in the goals have to be covered. &lt;br /&gt;&lt;img src=&quot;http://www.cetic.be/squelettes-dist/puce.gif&quot; width='8' height='11' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; besides the goals, others concepts are also taken into accounts such as the possible refinement pattern (such as case/milestone) and obstacles/conflicts (ie impedimenting the goal realisation and thus revealing limit conditions)&lt;/p&gt; &lt;p&gt;In this introductory article we will just highlight how the test generator works without entering into implementation details which rely on constraint programming. For more information the interested reader is directed to the article &quot;Deriving Acceptance Tests from Goal Requirements&quot;.&lt;/p&gt; &lt;h3 class=&quot;spip&quot;&gt;A Simple Example&lt;/h3&gt;
&lt;p&gt;As simple example, let's consider an elementary train boarding system depicted hereafter. The system is composed of a boarding block with a direct access to it and a waiting block in case a train is already on the boarding block.&lt;/p&gt; &lt;dl class='spip_document_356 spip_documents spip_documents_center' &gt;
&lt;dt&gt;&lt;img src='http://www.cetic.be/IMG/gif/train-dom.gif' width='389' height='62' alt='GIF - 3 kb' style='height:62px;width:389px;' /&gt;&lt;/dt&gt;
&lt;dt class='spip_doc_titre' style='width:350px;'&gt;&lt;strong&gt;Train Example: Domain.&lt;/strong&gt;&lt;/dt&gt;
&lt;/dl&gt;
&lt;p&gt;Among the goals, one can distinguish:
&lt;br /&gt;&lt;img src=&quot;http://www.cetic.be/squelettes-dist/puce.gif&quot; width='8' height='11' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;strong&gt;progress goals&lt;/strong&gt;, stating that every incoming train will eventually leave the system unloaded.
&lt;br /&gt;&lt;img src=&quot;http://www.cetic.be/squelettes-dist/puce.gif&quot; width='8' height='11' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;strong&gt;safety goals&lt;/strong&gt;: train crash have to be avoided. In our system we will explicitely choose a block system design with at most one train per block.&lt;/p&gt; &lt;p&gt;In this example, acceptance tests generation is essentially derived from the progress goals so we will only refine them in the following figure:&lt;/p&gt; &lt;dl class='spip_document_357 spip_documents spip_documents_center' &gt;
&lt;dt&gt;&lt;img src='http://www.cetic.be/IMG/gif/train-goals.gif' width='500' height='500' alt='GIF - 53.5 kb' style='height:500px;width:500px;' /&gt;&lt;/dt&gt;
&lt;dt class='spip_doc_titre' style='width:350px;'&gt;&lt;strong&gt;Train Example: Goal Model&lt;/strong&gt;&lt;/dt&gt;
&lt;/dl&gt;
&lt;p&gt;In the process of the elaboration of that goal model, the following object model stating the vocabulary used in the temporal logic assertion is also produced.&lt;/p&gt; &lt;dl class='spip_document_360 spip_documents spip_documents_center' &gt;
&lt;dt&gt;&lt;img src='http://www.cetic.be/IMG/gif/train-obj2.gif' width='310' height='142' alt='GIF - 4.8 kb' style='height:142px;width:310px;' /&gt;&lt;/dt&gt;
&lt;dt class='spip_doc_titre' style='width:310px;'&gt;&lt;strong&gt;Train Example: Object Model.&lt;/strong&gt;&lt;/dt&gt;
&lt;/dl&gt;
&lt;h3 class=&quot;spip&quot;&gt;Acceptance Tests Generation&lt;/h3&gt;
&lt;p&gt;The acceptance tests generation process is composed of two major steps:
&lt;br /&gt;&lt;img src=&quot;http://www.cetic.be/squelettes-dist/puce.gif&quot; width='8' height='11' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;strong&gt;acceptance tests classes&lt;/strong&gt; are elaborated, for now mainly based on the information in the goal refinements. In the above example composed of one &quot;case&quot; refinement and two &quot;milestone&quot; refinement: the case refinement will give rise to two classes of step-by-step temporal behaviors.
&lt;br /&gt;&lt;img src=&quot;http://www.cetic.be/squelettes-dist/puce.gif&quot; width='8' height='11' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;strong&gt;best representatives&lt;/strong&gt; are chosen in those tests classes based on a number of heuristics such as minimal length traces (maximal progress), reaching limit conditions (temporal constraints, untils...). Moreover some well chosen contextual information is also required such as initial/final states, and the number of instances being considered.&lt;/p&gt; &lt;p&gt;Acceptances tests are generated by unfolding temporal formulas which can be translated into a constraint problem for exploring all possible behaviors. Additional constraints
are then added for specifying tests classes and the representative selection criterion. The resulting set of constraints is fed into a constraint solver that yields a concrete test trace.&lt;/p&gt; &lt;p&gt;The resulting trace can be depicted as a scenario between the system under test and its operational environment. As exemple the following figure shows an interesting limit test where two trains are introduced into the system: the first heading directly to the unload block and the second going through the waiting block until the unload block becomes free.&lt;/p&gt; &lt;dl class='spip_document_361 spip_documents spip_documents_center' &gt;
&lt;dt&gt;&lt;img src='http://www.cetic.be/IMG/gif/train-tests2.gif' width='332' height='533' alt='GIF - 16.1 kb' style='height:533px;width:332px;' /&gt;&lt;/dt&gt;
&lt;dt class='spip_doc_titre' style='width:332px;'&gt;&lt;strong&gt;Train Example: Generated Test.&lt;/strong&gt;&lt;/dt&gt;
&lt;/dl&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
