Changes between Version 1 and Version 2 of LabassertUserGuide


Ignore:
Timestamp:
05/06/09 09:32:16 (15 years ago)
Author:
pierre
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • LabassertUserGuide

    v1 v2  
    11= Labassert User Guide =
    2 [[BR]] [[BR]]Reference:
    3 [[BR]]ESA/ESTEC contract n°21166/07/NL/JK -8 Jan. 2008
    4 [[BR]] [[BR]]!''Written by: Jérôme Legrand on 20 Nov. 2008 ![[BR]] Checked by: Pierre Dissaux on 21 Nov. 2008!''
    5 [[BR]] [[BR]]EUROPEAN SPACE AGENCY CONTRACT REPORT 
    6 [[BR]]![[BR]]The work described in this report was done under ESA contract. Responsibility for the contents resides in the author or organisation that prepared it.
    7 [[BR]] [[BR]]Ellidiss Technologies :![[BR]]
    8 [[BR]]![http://www.ellidiss.com www.ellidiss.com]![[BR]]
    9 [[BR]]24 quai de la douane, 29200 Brest, France![[BR]]
    10 [[BR]]Tel. +33 (0) 298 451 870![[BR]]
    11 [[BR]] [[BR]]== Table Of Content ==
    12 [[BR]] [[BR]] 1. ![wiki:UserGuide#a1.Installation Installation]
    13 [[BR]] 2.  ![wiki:UserGuide#a2.ApplicationsDescription Applications Description]
    14 [[BR]]   a. ![wiki:UserGuide#a2.1Launcher Launcher]
    15 [[BR]]     i. ![wiki:UserGuide#a2.1.1.Screenshots Screenshots]
    16 [[BR]]   b. ![wiki:UserGuide#a2.2FunctionalView Functional View]
    17 [[BR]]     i. ![wiki:UserGuide#a2.2.1.Screenshots Screenshots]
    18 [[BR]]     ii.  ![wiki:UserGuide#a2.2.2.Filemenudescription File Menu Description]
    19 [[BR]]     iii. ![wiki:UserGuide#a2.2.3.EditMenuDescription Edit Menu Description]
    20 [[BR]]     iv. ![wiki:UserGuide#a2.2.4.MenuDescription “?” Menu Description]
    21 [[BR]]   c. ![wiki:UserGuide#a2.3InterfaceView Interface View]
    22 [[BR]]     i. ![wiki:UserGuide#a2.3.1Screenshots Screenshots]
    23 [[BR]]     ii. ![wiki:UserGuide#a2.3.2FileMenuDescription File Menu Description]
    24 [[BR]]     iii. ![wiki:UserGuide#a2.3.3EditMenuDescription Edit Menu Description]
    25 [[BR]]     iv. ![wiki:UserGuide#a2.3.4ToolsMenuDescription Tools Menu Description]
    26 [[BR]]     v. ![wiki:UserGuide#a2.3.5MenuDescription “?” Menu Description]
    27 [[BR]]   d. ![wiki:UserGuide#a2.4DeploymentView Deployment View]
    28 [[BR]]     i. ![wiki:UserGuide#a2.4.1Screenshots Screenshots]
    29 [[BR]]     ii. ![wiki:UserGuide#a2.4.2FileMenuDescription File Menu Description]
    30 [[BR]]     iii. ![wiki:UserGuide#a2.4.3EditMenuDescription Edit Menu Description]
    31 [[BR]]     iv. ![wiki:UserGuide#a2.4.4ToolsMenuDescription Tools Menu Description]
    32 [[BR]]     v. ![wiki:UserGuide#a2.4.5MenuDescription “?” Menu Description]
    33 [[BR]] 3. ![wiki:UserGuide#a3.Tutorial Tutorial]
    34 [[BR]]   a. ![wiki:UserGuide#a3.1FunctionalViewEditor Functional View Editor]
    35 [[BR]]   b. ![wiki:UserGuide#a3.2InterfaceViewEditor Interface View Editor]
    36 [[BR]]   c. ![wiki:UserGuide#a3.3DeploymentViewEditor Deployment View Editor]
    37 [[BR]] [[BR]] [[BR]]== 1. Installation ==
    38 [[BR]] [[BR]]Labassert 1.0 is available on Windows and Linux. Its installation requires no specific platform dependent procedure. The only action that may be required is to uncompress the archive with the appropriate utility if the distribution was provided as a zip or tar.gz file.
    39 [[BR]] [[BR]]Labassert can even be run directly from a remote device, such as an USB stick, without having to install the product on the hard disk of the computer.
    40 [[BR]] [[BR]]An uncompressed distribution of Labassert 1.0 contains the following files:
    41 [[BR]] * labassert.exe: Windows executable file.
    42 [[BR]] * Labassert.bin: Linux executable file.
    43 [[BR]] * labassertConfiguration.xml: portable customization file for the user interface.
    44 [[BR]] * examples directory: contains a few Labassert models files
    45 [[BR]] * documentation directory: contains this file and the Labassert study report.
    46 [[BR]] [[BR]]The Labassert software is a deliverable of an ESA funded study. As thus its distribution and use rules follow the General Clauses and Conditions for ESA Contracts. Please contact ESA or Ellidiss representative for further information about licensing topics. 
    47 [[BR]] [[BR]]Ellidiss Technologies can provide technical support to users of the Labassert tool. Please use the following address to send technical or commercial inquires: labassert@ellidiss.com
    48 [[BR]] [[BR]]== 2. Applications Description ==
    49 [[BR]] [[BR]]=== 2.1 Launcher ===
    50 [[BR]]The launcher is used to open the functional, the interface and the deployment view editors.
    51 [[BR]] [[BR]]==== 2.1.1. Screenshots ====
    52 [[BR]][[Image(htdocs:UserGuide/img1.png)]]
    53 [[BR]] [[BR]]=== 2.2 Functional View ===
    54 [[BR]] [[BR]]The Functional View Editor manages the applicative functions that can be referred within the Interface View.
    55 [[BR]] [[BR]]A Function is composed of one or several entry points called Interfaces. Each Interface may have zero or several typed Parameters.
    56 [[BR]] [[BR]]Parameter Data Types must be loaded with the File/Load Data View menu (.aadl file).
    57 [[BR]] [[BR]]Functional View models can be stored in separate Libraries (.lfv files).
    58 [[BR]] [[BR]]==== 2.2.1. Screenshots ====
    59 [[BR]][[Image(htdocs:UserGuide/img2.png)]]
    60 [[BR]] [[BR]] [[BR]]==== 2.2.2. File menu description ====
    61 [[BR]] [[BR]] * New Library : create a new functional view.
    62 [[BR]] * Open Library : load an existing functional view (.lfv extension).
    63 [[BR]] * Save Library : save the current functional view.
    64 [[BR]] * Save Library As : save the current functional view and specify the filename.
    65 [[BR]] * Load Data View : load a data view (data type from this view is then available for parameters interface creation).
    66 [[BR]] * Quit : close the application.
    67 [[BR]]==== 2.2.3.  Edit Menu Description ====
    68 [[BR]] [[BR]] * New Function : create a function (functions appear in “Functions” notebook).
    69 [[BR]] * Delete Function : delete the selected function.
    70 [[BR]] * Add Interface : add an interface to a function.
    71 [[BR]] * Remove Interface : remove an interface from a function.
    72 [[BR]] * New Interface : create an interface (interfaces appear in “interfaces” notebook).
    73 [[BR]] * Delete Interface : delete the selected interface.
    74 [[BR]] * New Parameter : add a parameter to an interface. 
    75 [[BR]] * Delete Parameter : remove a parameter from an interface.
    76 [[BR]]==== 2.2.4. “?” Menu Description ====
    77 [[BR]] [[BR]] * About : about the Interface View Editor.
    78 [[BR]] * Help : application description and accelerators available.
    79 [[BR]] [[BR]]=== 2.3 Interface View ===
    80 [[BR]]The Interface View Editor manages the grouping and the interaction of the applicative !'''Functions!''' within a hierarchy of !'''Containers!'''.
    81 [[BR]] [[BR]]!'''Containers!''' may have !'''Provided!''' and !'''Required Interfaces!''' that are associated to !'''Function!''' entry points at the terminal level. Lists of pre-existing !'''Functions!''' can be loaded with the File/Load Library menu. !'''Provided Interfaces!''' are characterized by a set of non functional Properties.
    82 [[BR]] [[BR]]An AADL representation of the Interface View can be generated.
    83 [[BR]] [[BR]]Interface View models can be stored in separate Files (.liv files).
    84 [[BR]] [[BR]]==== 2.3.1  Screenshots ====
    85 [[BR]][[Image(htdocs:UserGuide/img3.png)]]
    86 [[BR]] [[BR]]==== 2.3.2 File Menu Description ====
    87 [[BR]] * New : create a new interface view.
    88 [[BR]] * Load : load an existing interface view (.liv extension).
    89 [[BR]] * Save : save the current interface view.
    90 [[BR]] * Save As : save the current interface view and specify the filename.
    91 [[BR]] * Load Functional View : load a functional view (Function from this view is then available for function creation).
    92 [[BR]] * Unload Functional View : functions from the previously loaded functional view are no longer available for function creation.
    93 [[BR]] * Quit : close the application.
    94 [[BR]] [[BR]]==== 2.3.3 Edit Menu Description ====
    95 [[BR]] * New Container : create a Container on the work zone or in a Container.
    96 [[BR]] * New Function : create a Function on the work zone or in a Container.
    97 [[BR]] * New PI : create a Provided Interface on a Container or a Function.
    98 [[BR]] * New RI : create a Required Interface on a Container or a Function.
    99 [[BR]] * New Connection : create a connection between two objects.
    100 [[BR]] * Edit Properties : if an object is selected, open a dialog box to edit its properties. 
    101 [[BR]] * Delete Selection : if an object is selected, remove this object from the diagram.
    102 [[BR]] * Copy : if objects are selected, copy the selection.
    103 [[BR]] * Paste : if objects have been copied, paste them.
    104 [[BR]] * Undo : undo the last modification (remove, add or move object(s)).
    105 [[BR]] * Redo : redo the last modification.
    106 [[BR]] [[BR]]==== 2.3.4 Tools Menu Description ====
    107 [[BR]] * Edit Functional View : open a Functional View Editor with current Functions of the interface view (loaded and created).
    108 [[BR]] * Generate Interface View : generate the AADL file of the current interface view.
    109 [[BR]] * Stood :
    110 [[BR]]  * Set Execution Path : define the actual location of Stood executable on the system
    111 [[BR]]  * Open In Stood : create a Stood model and open Stood 
    112 [[BR]]  * Generate Interface View : use Stood AADL code generator to generate the Interface View.
    113 [[BR]]  * Generate Concurrency View : use Stood AADL code generator and ASSERT Vertical Transformation to generate the Concurrency View.
    114 [[BR]] * Navigation Panel : open the navigation panel in order to scroll and zoom the diagram.  
    115 [[BR]] * Option : launch Interface View Editor option dialog box.
    116 [[BR]] [[BR]]==== 2.3.5 “?” Menu Description ====
    117 [[BR]] * About : about the Interface View Editor.
    118 [[BR]] * Help : application description and accelerators available.
    119 [[BR]] [[BR]]=== 2.4 Deployment View ===
    120 [[BR]]The Deployment View Editor manages the description of the run-time hardware and the allocation of the software elements onto it.
    121 [[BR]] [[BR]]The hardware architecture is described in terms of !'''Processors!''' and !'''Busses!'''. !'''Processors!''' must contain one or several !'''Partitions!'''. !'''Partitions!''' must contain one or several applicative !'''Functions!'''. Available !'''Functions!''' must be loaded from an existing !'''Interface View!'''.
    122 [[BR]] [[BR]]An AADL representation of the Deployment View can be generated.
    123 [[BR]] [[BR]]Deployment View models can be stored in separate Files (.ldv files).
    124 [[BR]] [[BR]]==== 2.4.1 Screenshots ====
    125 [[BR]][[Image(htdocs:UserGuide/img4.png)]]
    126 [[BR]] [[BR]]==== 2.4.2 File Menu Description ====
    127 [[BR]] * New : create a new diagram.
    128 [[BR]] * Load : load an existing diagram (.ldv extension).
    129 [[BR]] * Save : save the current diagram.
    130 [[BR]] * Save As : save the current diagram and specify the filename.
    131 [[BR]] * Load Interface View : load an interface view (Function from this view is then available for function creation).
    132 [[BR]] * Quit : close the application.
    133 [[BR]] [[BR]]==== 2.4.3 Edit Menu Description ====
    134 [[BR]] * New Processor : create a Processor on the work zone.
    135 [[BR]] * New Partition : create a Partition on a Processor.
    136 [[BR]] * Add Function : create a Function on a Partition (an Interface View file containing function(s) has to be open).
    137 [[BR]] * New Bus : create a Bus on the work zone.
    138 [[BR]] * New Processor Interface : create a Processor Interface on a Processor. 
    139 [[BR]] * New Connection : create a connection between a Bus and a Processor/Processor Interface.
    140 [[BR]] * Edit Properties : if an object is selected, open a dialog box to edit its properties. 
    141 [[BR]] * Delete Selection : if an object is selected, remove this object from the diagram.
    142 [[BR]] * Copy : if objects are selected, copy the selection.
    143 [[BR]] * Paste : if objects have been copied, paste them.
    144 [[BR]] * Undo : undo the last modification (remove, add or move object(s)).
    145 [[BR]] * Redo : redo the last modification.
    146 [[BR]] [[BR]]==== 2.4.4 Tools Menu Description ====
    147 [[BR]] * Generate Deployment View : generate the AADL file corresponding to the current deployment view.
    148 [[BR]] * Navigation Panel : open the navigation panel in order to scroll and zoom the diagram.  
    149 [[BR]] * Option : launch Deployment View Editor option dialog box.
    150 [[BR]] [[BR]]==== 2.4.5 "?” Menu Description ====
    151 [[BR]] * About : about the Deployment View Editor.
    152 [[BR]] * Help : application description and accelerators available.
    153 [[BR]] [[BR]]== 3. Tutorial ==
    154 [[BR]]This tutorial presents a classic way of using Functional View, Interface View and Deployment View Editors.
    155 [[BR]] [[BR]]=== 3.1 Functional View Editor ===
    156 [[BR]] [[BR]] 1. Launch the Functional View Editor.
    157 [[BR]] 2. Load a !'''Data View!''' (File → Load Data View):![[BR]]
    158 [[BR]] AADL representation of the Data View files must exist in the workspace. They are usually generated by the Asn2aadlPlus tool. However, a simplistic version of an AADL Data View can be created with any text editor for the purpose of the tutorial. Its contents should be the following:
    159 [[BR]] [[BR]]{{{
    160 [[BR]]PACKAGE Tutorial_Types
    161 [[BR]]PUBLIC
    162 [[BR]] [[BR]]DATA Float
    163 [[BR]]END Float;
    164 [[BR]] [[BR]]END Tutorial_Types;
    165 [[BR]]}}}
    166 [[BR]] [[BR]] 3. Create a !'''Function!''' named “Calculator” (Edit → New Function) :
    167 [[BR]][[Image(htdocs:UserGuide/img5.png)]]
    168 [[BR]] [[BR]] 4. Click on the “Interfaces” tab.
    169 [[BR]] 5. Create 4 !'''Interfaces!''' named “Add”, “Sub”, “Mul” and “Div” with same attributes (Edit → New Interface) :
    170 [[BR]][[Image(htdocs:UserGuide/img6.png)]]
    171 [[BR]] [[BR]] 6. For each interfaces, create 3 parameters ![[BR]]
    172 [[BR]] (Select the interface and click on Edit → New Parameter) : 
    173 [[BR]] * o1 : direction “in”, type “Float” and protocol “NATIVE”.
    174 [[BR]] * o2 : direction “in”, type “Float” and protocol “NATIVE”.
    175 [[BR]] * r : direction “out”, type “Float” and protocol “NATIVE”.
    176 [[BR]][[Image(htdocs:UserGuide/img7.png)]]
    177 [[BR]] [[BR]]Note : the newly created parameters shall appear on the right table application. 
    178 [[BR]] [[BR]] 7. Click on the “Functions” tab.
    179 [[BR]] 8. Select the “Calculator” !'''Function!''' and add the interfaces (Edit → Add Interface) :
    180 [[BR]][[Image(htdocs:UserGuide/img8.png)]]
    181 [[BR]] [[BR]] 9. Finally, save the current library (File → Save Library) :
    182 [[BR]][[Image(htdocs:UserGuide/img9.png)]]
    183 [[BR]] [[BR]]Note : in the save as dialog box, a default name is proposed for the file : the previously given library name with the “.lfv” extension (Calc.lfv in our example).
    184 [[BR]] [[BR]]=== 3.2 Interface View Editor ===
    185 [[BR]] [[BR]] 1. Launch the Interface View Editor.
    186 [[BR]] 2. Load the previous !'''Functional View!''' (File → Load Functional View) : “Calc.lfv” file.
    187 [[BR]] 3. Create a !'''Container!''' named “Time” (Edit → New Container or right mouse button contextual menu New Container entry) :
    188 [[BR]][[Image(htdocs:UserGuide/img10.png)]]
    189 [[BR]] [[BR]] 4. Create a !'''Function!''' named “Convert” into the “Time” !'''Container!''' (Edit → New Function or right mouse button contextual menu New Function entry) :
    190 [[BR]][[Image(htdocs:UserGuide/img11.png)]]
    191 [[BR]] [[BR]] 5. Create 3 !'''Provided Interfaces!''' on the “Convert” !'''Function!''' (Edit → New PI or right mouse button contextual menu New PI entry) :
    192 [[BR]] * Day_To_Sec : kind “sporadic”, Inter-arrival time “100”, deadline “5” and “ms” unit.
    193 [[BR]] * Hour_To_Sec : kind “sporadic”, Inter-arrival time “100”, deadline “5” and “ms” unit.
    194 [[BR]] * Min_To_Sec : kind “sporadic”, Inter-arrival time “100”, deadline “5” and “ms” unit.
    195 [[BR]] [[BR]][[Image(htdocs:UserGuide/img12.png)]]
    196 [[BR]] [[BR]] 6. Create 1 !'''Required Interfaces!''' on the “Convert” !'''Function!''' (Edit → New RI or right mouse button contextual menu New RI entry) : 
    197 [[BR]] * “Mul” : choose the operation “Mul” in the combo box.
    198 [[BR]] [[BR]][[Image(htdocs:UserGuide/img13.png)]]
    199 [[BR]] [[BR]] 7. Connect all !'''Provided Interface Implementation!''' to the “Mul” !'''Required!''' Interface.  In order to create a connection between 2 objects, you have to :
    200 [[BR]] * Click on Edit → New Connection menu or right mouse button contextual menu New Connection entry or push the “shift” key (don't release the key until the connection has been created).
    201 [[BR]] * Select the first object by pushing the left mouse button (don't release the button).
    202 [[BR]] * And release the left mouse button on the second object.
    203 [[BR]] [[BR]][[Image(htdocs:UserGuide/img14.png)]]
    204 [[BR]] [[BR]]Notes : 
    205 [[BR]] * A connection can be created only between item which have the same parent or have a child-parent relationship.
    206 [[BR]] * There is a real time connection creation consistency check, when a connection can be created, mouse cursor turns into a crossbar.
    207 [[BR]] * There is an automatic interface(s) creation facility when 2 objects are connected : in our example, a !'''Required Interface!''' is automatically created on the !'''Provided Interface Implementation!'''.
    208 [[BR]] [[BR]] 8. Create 1!''' Required Interfaces!''' on the “Convert” !'''Function!'''  and connect all !'''Provided Interface Implementation!''' to it : 
    209 [[BR]] * “Result” : leave the operation field blank.
    210 [[BR]] [[BR]][[Image(htdocs:UserGuide/img15.png)]]
    211 [[BR]] [[BR]] 9. Create a “Calculator” !'''Function!''' chosen from the previously loaded !'''Functional View!''' (choose the Function name in the creation dialog-box list) and connect the “Convert” !'''Function!''' “Mul” !'''Required Interface!''' to the “Calculator”!''' Function!''' “Mul” !'''Provided Interface!'''. Edit the “Mul” !'''Provided Interface!''' by double clicking on it and choose “unprotected” kind.
    212 [[BR]] [[BR]][[Image(htdocs:UserGuide/img16.png)]]
    213 [[BR]] [[BR]] 10. Create a “IO” !'''Container!''' and in this container create 2 !'''Functions!''', “Input” and “Output”.
    214 [[BR]] 11. Create a “sporadic” !'''Provided Interface!''' named “get_result” on the “Output” !'''Function!'''.
    215 [[BR]] 12. Connect the “Input” !'''Function!''' to “Day_To_Sec” !'''Provided Interface!''' and the “get_result” !'''Provided Interface!''' to the “result” !'''Required Interface!'''.
    216 [[BR]] [[BR]] [[BR]][[Image(htdocs:UserGuide/img17.png)]]
    217 [[BR]] [[BR]] 13. Save the current interface view as “Time_Conversion.liv” (File → Save).
    218 [[BR]] 14. Double left click on a !'''Provided Interface Implementation!''' or select Tools → Edit Functional View. A functional view is opened with all the functions and Function's interfaces (open and created in the !'''Interface View!''') :
    219 [[BR]] [[BR]][[Image(htdocs:UserGuide/img18.png)]]
    220 [[BR]] [[BR]]Note : this new library can be edited and save for further use.
    221 [[BR]] [[BR]] 15.Generate the !'''AADL!''' file “Time_Conversion.aadl” (Tools → Generate Interface View). You can check the consistency of the result.
    222 [[BR]] [[BR]]=== 3.3 Deployment View Editor ===
    223 [[BR]] [[BR]] 1. Launch the Deployment View Editor.
    224 [[BR]] 2. Load the previous !'''Interface View!''' (File → Load Interface View) : “Time_Conversion.liv” file.
    225 [[BR]] 3. Create 2 !'''Processors!'''  (Edit → New Processor or right mouse button contextual menu New Processor entry) :
    226 [[BR]] [[BR]] * cpu1 : type “pentium”, implementation name “others”, processor location “127.0.0.1” and execution platform “Native”.
    227 [[BR]] * cpu2 : type “athlon”, implementation name “others”, processor location “127.0.0.2” and execution platform “Native”.
    228 [[BR]] [[BR]] [[BR]][[Image(htdocs:UserGuide/img19.png)]]
    229 [[BR]] [[BR]] 4. Create a !'''Bus!'''  named “VME” and “BSD_Sockets” transport API (Edit → New Bus or right mouse button contextual menu New Bus entry) :
    230 [[BR]] [[BR]][[Image(htdocs:UserGuide/img20.png)]]
    231 [[BR]] [[BR]] 5. Create 2 !'''Processor Interfaces!''' (Edit → New Processor Interface or right mouse button contextual menu New Processor Interface entry) :
    232 [[BR]] * port_cpu1 on “cpu1” !'''Processor!''' : interface bus required “VME”.
    233 [[BR]] * port_cpu2 on “cpu2” !'''Processor!''' : interface bus required “VME”.
    234 [[BR]] 
    235 [[BR]] And connect them to the bus (same process as Interface View Editor). 
    236 [[BR]] [[BR]][[Image(htdocs:UserGuide/img21.png)]]
    237 [[BR]] [[BR]]Note : as in !'''Interface View Editor!''', automatic creation services are available. In our example, one can skip the !'''Processor Interface!''' creation and connect the processors to the bus.
    238 [[BR]] [[BR]] 6. Create 2 !'''Partitions!''' (Edit → New Partition or right mouse button contextual menu New Partition entry) :
    239 [[BR]] * A1 in “cpu1” !'''Processor!''' : type “A1”, implementation name “others” and  leave port number empty.
    240 [[BR]] * A2 in “cpu2” !'''Processor!''' : type “A2”, implementation name “others” and  leave port number empty.
    241 [[BR]] [[BR]][[Image(htdocs:UserGuide/img22.png)]]
    242 [[BR]] [[BR]] 7. In “A1” !'''Partition!''', add “Input” and “Output” !'''Functions!''' (Edit → Add Function or right mouse button contextual menu Add Function entry) and in “A2” !'''Partition!''', add “Convert” and “Calculator” !'''Functions!''' :
    243 [[BR]] [[BR]][[Image(htdocs:UserGuide/img23.png)]]
    244 [[BR]] [[BR]] 8. Save the current deployment view as “Deployment1.ldv” (File → Save).
    245 [[BR]] 9. Generate the !'''AADL!''' file “Deployment1.aadl” (Tools → Generate Deployment View). You can check the consistency of the result.
    246 [[BR]] 10. For one !'''Interface View!''', one can have several !'''Deployment View!'''. Remove the previously added !'''Functions!''' (select a !'''Function!''' or a group of !'''Functions!''' and File → Delete Selection or right mouse button contextual menu Delete Selection entry ).
    247 [[BR]] [[BR]]Note : to select a group of items, left clic in an blank space (don't release the button), and release the left mouse button when all items you want to select are in the selection box.
    248 [[BR]] [[BR]][[Image(htdocs:UserGuide/img24.png)]]
    249 [[BR]] [[BR]]11. In “A1” !'''Partition!''', add “Input”, “Convert” and “Calculator” !'''Functions!''' and in “A2” !'''Partition!''', add “Output” !'''Functions!''' :
    250 [[BR]] [[BR]][[Image(htdocs:UserGuide/img25.png)]]
    251 [[BR]] [[BR]]12. Save the current deployment view as “Deployment2.ldv”.![[BR]]
    252 [[BR]]13. Generate the !'''AADL!''' file “Deployment2.aadl”. You can check the consistency of the result.
    253 [[BR]] [[BR]] [[BR]]Ellidiss Technologies :![[BR]]
    254 [[BR]]![http://www.ellidiss.com www.ellidiss.com]![[BR]]
    255 [[BR]]24 quai de la douane, 29200 Brest, France![[BR]]
    256 [[BR]]Tel. +33 (0) 298 451 870![[BR]]
    257 [[BR]][[Image(htdocs:logoEllidiss.png)]]
     2
     3Reference:
     4ESA/ESTEC contract n°21166/07/NL/JK -8 Jan. 2008
     5
     6''Written by: Jérôme Legrand on 20 Nov. 2008 [[BR]] Checked by: Pierre Dissaux on 21 Nov. 2008''
     7
     8EUROPEAN SPACE AGENCY CONTRACT REPORT
     9[[BR]]The work described in this report was done under ESA contract. Responsibility for the contents resides in the author or organisation that prepared it.
     10
     11Ellidiss Technologies :[[BR]]
     12[http://www.ellidiss.com www.ellidiss.com][[BR]]
     1324 quai de la douane, 29200 Brest, France[[BR]]
     14Tel. +33 (0) 298 451 870[[BR]]
     15
     16== Table Of Content ==
     17
     18 1. [wiki:UserGuide#a1.Installation Installation]
     19 2.  [wiki:UserGuide#a2.ApplicationsDescription Applications Description]
     20   a. [wiki:UserGuide#a2.1Launcher Launcher]
     21     i. [wiki:UserGuide#a2.1.1.Screenshots Screenshots]
     22   b. [wiki:UserGuide#a2.2FunctionalView Functional View]
     23     i. [wiki:UserGuide#a2.2.1.Screenshots Screenshots]
     24     ii.  [wiki:UserGuide#a2.2.2.Filemenudescription File Menu Description]
     25     iii. [wiki:UserGuide#a2.2.3.EditMenuDescription Edit Menu Description]
     26     iv. [wiki:UserGuide#a2.2.4.MenuDescription “?” Menu Description]
     27   c. [wiki:UserGuide#a2.3InterfaceView Interface View]
     28     i. [wiki:UserGuide#a2.3.1Screenshots Screenshots]
     29     ii. [wiki:UserGuide#a2.3.2FileMenuDescription File Menu Description]
     30     iii. [wiki:UserGuide#a2.3.3EditMenuDescription Edit Menu Description]
     31     iv. [wiki:UserGuide#a2.3.4ToolsMenuDescription Tools Menu Description]
     32     v. [wiki:UserGuide#a2.3.5MenuDescription “?” Menu Description]
     33   d. [wiki:UserGuide#a2.4DeploymentView Deployment View]
     34     i. [wiki:UserGuide#a2.4.1Screenshots Screenshots]
     35     ii. [wiki:UserGuide#a2.4.2FileMenuDescription File Menu Description]
     36     iii. [wiki:UserGuide#a2.4.3EditMenuDescription Edit Menu Description]
     37     iv. [wiki:UserGuide#a2.4.4ToolsMenuDescription Tools Menu Description]
     38     v. [wiki:UserGuide#a2.4.5MenuDescription “?” Menu Description]
     39 3. [wiki:UserGuide#a3.Tutorial Tutorial]
     40   a. [wiki:UserGuide#a3.1FunctionalViewEditor Functional View Editor]
     41   b. [wiki:UserGuide#a3.2InterfaceViewEditor Interface View Editor]
     42   c. [wiki:UserGuide#a3.3DeploymentViewEditor Deployment View Editor]
     43
     44
     45== 1. Installation ==
     46
     47Labassert 1.0 is available on Windows and Linux. Its installation requires no specific platform dependent procedure. The only action that may be required is to uncompress the archive with the appropriate utility if the distribution was provided as a zip or tar.gz file.
     48
     49Labassert can even be run directly from a remote device, such as an USB stick, without having to install the product on the hard disk of the computer.
     50
     51An uncompressed distribution of Labassert 1.0 contains the following files:
     52 * labassert.exe: Windows executable file.
     53 * Labassert.bin: Linux executable file.
     54 * labassertConfiguration.xml: portable customization file for the user interface.
     55 * examples directory: contains a few Labassert models files
     56 * documentation directory: contains this file and the Labassert study report.
     57
     58The Labassert software is a deliverable of an ESA funded study. As thus its distribution and use rules follow the General Clauses and Conditions for ESA Contracts. Please contact ESA or Ellidiss representative for further information about licensing topics.
     59
     60Ellidiss Technologies can provide technical support to users of the Labassert tool. Please use the following address to send technical or commercial inquires: labassert@ellidiss.com
     61
     62== 2. Applications Description ==
     63
     64=== 2.1 Launcher ===
     65The launcher is used to open the functional, the interface and the deployment view editors.
     66
     67==== 2.1.1. Screenshots ====
     68[[Image(htdocs:UserGuide/img1.png)]]
     69
     70=== 2.2 Functional View ===
     71
     72The Functional View Editor manages the applicative functions that can be referred within the Interface View.
     73
     74A Function is composed of one or several entry points called Interfaces. Each Interface may have zero or several typed Parameters.
     75
     76Parameter Data Types must be loaded with the File/Load Data View menu (.aadl file).
     77
     78Functional View models can be stored in separate Libraries (.lfv files).
     79
     80==== 2.2.1. Screenshots ====
     81[[Image(htdocs:UserGuide/img2.png)]]
     82
     83
     84==== 2.2.2. File menu description ====
     85
     86 * New Library : create a new functional view.
     87 * Open Library : load an existing functional view (.lfv extension).
     88 * Save Library : save the current functional view.
     89 * Save Library As : save the current functional view and specify the filename.
     90 * Load Data View : load a data view (data type from this view is then available for parameters interface creation).
     91 * Quit : close the application.
     92==== 2.2.3.  Edit Menu Description ====
     93
     94 * New Function : create a function (functions appear in “Functions” notebook).
     95 * Delete Function : delete the selected function.
     96 * Add Interface : add an interface to a function.
     97 * Remove Interface : remove an interface from a function.
     98 * New Interface : create an interface (interfaces appear in “interfaces” notebook).
     99 * Delete Interface : delete the selected interface.
     100 * New Parameter : add a parameter to an interface.
     101 * Delete Parameter : remove a parameter from an interface.
     102==== 2.2.4. “?” Menu Description ====
     103
     104 * About : about the Interface View Editor.
     105 * Help : application description and accelerators available.
     106
     107=== 2.3 Interface View ===
     108The Interface View Editor manages the grouping and the interaction of the applicative '''Functions''' within a hierarchy of '''Containers'''.
     109
     110'''Containers''' may have '''Provided''' and '''Required Interfaces''' that are associated to '''Function''' entry points at the terminal level. Lists of pre-existing '''Functions''' can be loaded with the File/Load Library menu. '''Provided Interfaces''' are characterized by a set of non functional Properties.
     111
     112An AADL representation of the Interface View can be generated.
     113
     114Interface View models can be stored in separate Files (.liv files).
     115
     116==== 2.3.1  Screenshots ====
     117[[Image(htdocs:UserGuide/img3.png)]]
     118
     119==== 2.3.2 File Menu Description ====
     120 * New : create a new interface view.
     121 * Load : load an existing interface view (.liv extension).
     122 * Save : save the current interface view.
     123 * Save As : save the current interface view and specify the filename.
     124 * Load Functional View : load a functional view (Function from this view is then available for function creation).
     125 * Unload Functional View : functions from the previously loaded functional view are no longer available for function creation.
     126 * Quit : close the application.
     127
     128==== 2.3.3 Edit Menu Description ====
     129 * New Container : create a Container on the work zone or in a Container.
     130 * New Function : create a Function on the work zone or in a Container.
     131 * New PI : create a Provided Interface on a Container or a Function.
     132 * New RI : create a Required Interface on a Container or a Function.
     133 * New Connection : create a connection between two objects.
     134 * Edit Properties : if an object is selected, open a dialog box to edit its properties.
     135 * Delete Selection : if an object is selected, remove this object from the diagram.
     136 * Copy : if objects are selected, copy the selection.
     137 * Paste : if objects have been copied, paste them.
     138 * Undo : undo the last modification (remove, add or move object(s)).
     139 * Redo : redo the last modification.
     140
     141==== 2.3.4 Tools Menu Description ====
     142 * Edit Functional View : open a Functional View Editor with current Functions of the interface view (loaded and created).
     143 * Generate Interface View : generate the AADL file of the current interface view.
     144 * Stood :
     145  * Set Execution Path : define the actual location of Stood executable on the system
     146  * Open In Stood : create a Stood model and open Stood
     147  * Generate Interface View : use Stood AADL code generator to generate the Interface View.
     148  * Generate Concurrency View : use Stood AADL code generator and ASSERT Vertical Transformation to generate the Concurrency View.
     149 * Navigation Panel : open the navigation panel in order to scroll and zoom the diagram. 
     150 * Option : launch Interface View Editor option dialog box.
     151
     152==== 2.3.5 “?” Menu Description ====
     153 * About : about the Interface View Editor.
     154 * Help : application description and accelerators available.
     155
     156=== 2.4 Deployment View ===
     157The Deployment View Editor manages the description of the run-time hardware and the allocation of the software elements onto it.
     158
     159The hardware architecture is described in terms of '''Processors''' and '''Busses'''. '''Processors''' must contain one or several '''Partitions'''. '''Partitions''' must contain one or several applicative '''Functions'''. Available '''Functions''' must be loaded from an existing '''Interface View'''.
     160
     161An AADL representation of the Deployment View can be generated.
     162
     163Deployment View models can be stored in separate Files (.ldv files).
     164
     165==== 2.4.1 Screenshots ====
     166[[Image(htdocs:UserGuide/img4.png)]]
     167
     168==== 2.4.2 File Menu Description ====
     169 * New : create a new diagram.
     170 * Load : load an existing diagram (.ldv extension).
     171 * Save : save the current diagram.
     172 * Save As : save the current diagram and specify the filename.
     173 * Load Interface View : load an interface view (Function from this view is then available for function creation).
     174 * Quit : close the application.
     175
     176==== 2.4.3 Edit Menu Description ====
     177 * New Processor : create a Processor on the work zone.
     178 * New Partition : create a Partition on a Processor.
     179 * Add Function : create a Function on a Partition (an Interface View file containing function(s) has to be open).
     180 * New Bus : create a Bus on the work zone.
     181 * New Processor Interface : create a Processor Interface on a Processor.
     182 * New Connection : create a connection between a Bus and a Processor/Processor Interface.
     183 * Edit Properties : if an object is selected, open a dialog box to edit its properties.
     184 * Delete Selection : if an object is selected, remove this object from the diagram.
     185 * Copy : if objects are selected, copy the selection.
     186 * Paste : if objects have been copied, paste them.
     187 * Undo : undo the last modification (remove, add or move object(s)).
     188 * Redo : redo the last modification.
     189
     190==== 2.4.4 Tools Menu Description ====
     191 * Generate Deployment View : generate the AADL file corresponding to the current deployment view.
     192 * Navigation Panel : open the navigation panel in order to scroll and zoom the diagram. 
     193 * Option : launch Deployment View Editor option dialog box.
     194
     195==== 2.4.5 "?” Menu Description ====
     196 * About : about the Deployment View Editor.
     197 * Help : application description and accelerators available.
     198
     199== 3. Tutorial ==
     200This tutorial presents a classic way of using Functional View, Interface View and Deployment View Editors.
     201
     202=== 3.1 Functional View Editor ===
     203
     204 1. Launch the Functional View Editor.
     205 2. Load a '''Data View''' (File → Load Data View):[[BR]]
     206 AADL representation of the Data View files must exist in the workspace. They are usually generated by the Asn2aadlPlus tool. However, a simplistic version of an AADL Data View can be created with any text editor for the purpose of the tutorial. Its contents should be the following:
     207
     208{{{
     209PACKAGE Tutorial_Types
     210PUBLIC
     211
     212DATA Float
     213END Float;
     214
     215END Tutorial_Types;
     216}}}
     217
     218 3. Create a '''Function''' named “Calculator” (Edit → New Function) :
     219[[Image(htdocs:UserGuide/img5.png)]]
     220
     221 4. Click on the “Interfaces” tab.
     222 5. Create 4 '''Interfaces''' named “Add”, “Sub”, “Mul” and “Div” with same attributes (Edit → New Interface) :
     223[[Image(htdocs:UserGuide/img6.png)]]
     224
     225 6. For each interfaces, create 3 parameters [[BR]]
     226 (Select the interface and click on Edit → New Parameter) :
     227 * o1 : direction “in”, type “Float” and protocol “NATIVE”.
     228 * o2 : direction “in”, type “Float” and protocol “NATIVE”.
     229 * r : direction “out”, type “Float” and protocol “NATIVE”.
     230[[Image(htdocs:UserGuide/img7.png)]]
     231
     232Note : the newly created parameters shall appear on the right table application.
     233
     234 7. Click on the “Functions” tab.
     235 8. Select the “Calculator” '''Function''' and add the interfaces (Edit → Add Interface) :
     236[[Image(htdocs:UserGuide/img8.png)]]
     237
     238 9. Finally, save the current library (File → Save Library) :
     239[[Image(htdocs:UserGuide/img9.png)]]
     240
     241Note : in the save as dialog box, a default name is proposed for the file : the previously given library name with the “.lfv” extension (Calc.lfv in our example).
     242
     243=== 3.2 Interface View Editor ===
     244
     245 1. Launch the Interface View Editor.
     246 2. Load the previous '''Functional View''' (File → Load Functional View) : “Calc.lfv” file.
     247 3. Create a '''Container''' named “Time” (Edit → New Container or right mouse button contextual menu New Container entry) :
     248[[Image(htdocs:UserGuide/img10.png)]]
     249
     250 4. Create a '''Function''' named “Convert” into the “Time” '''Container''' (Edit → New Function or right mouse button contextual menu New Function entry) :
     251[[Image(htdocs:UserGuide/img11.png)]]
     252
     253 5. Create 3 '''Provided Interfaces''' on the “Convert” '''Function''' (Edit → New PI or right mouse button contextual menu New PI entry) :
     254 * Day_To_Sec : kind “sporadic”, Inter-arrival time “100”, deadline “5” and “ms” unit.
     255 * Hour_To_Sec : kind “sporadic”, Inter-arrival time “100”, deadline “5” and “ms” unit.
     256 * Min_To_Sec : kind “sporadic”, Inter-arrival time “100”, deadline “5” and “ms” unit.
     257
     258[[Image(htdocs:UserGuide/img12.png)]]
     259
     260 6. Create 1 '''Required Interfaces''' on the “Convert” '''Function''' (Edit → New RI or right mouse button contextual menu New RI entry) :
     261 * “Mul” : choose the operation “Mul” in the combo box.
     262
     263[[Image(htdocs:UserGuide/img13.png)]]
     264
     265 7. Connect all '''Provided Interface Implementation''' to the “Mul” '''Required''' Interface.  In order to create a connection between 2 objects, you have to :
     266 * Click on Edit → New Connection menu or right mouse button contextual menu New Connection entry or push the “shift” key (don't release the key until the connection has been created).
     267 * Select the first object by pushing the left mouse button (don't release the button).
     268 * And release the left mouse button on the second object.
     269
     270[[Image(htdocs:UserGuide/img14.png)]]
     271
     272Notes :
     273 * A connection can be created only between item which have the same parent or have a child-parent relationship.
     274 * There is a real time connection creation consistency check, when a connection can be created, mouse cursor turns into a crossbar.
     275 * There is an automatic interface(s) creation facility when 2 objects are connected : in our example, a '''Required Interface''' is automatically created on the '''Provided Interface Implementation'''.
     276
     277 8. Create 1''' Required Interfaces''' on the “Convert” '''Function'''  and connect all '''Provided Interface Implementation''' to it :
     278 * “Result” : leave the operation field blank.
     279
     280[[Image(htdocs:UserGuide/img15.png)]]
     281
     282 9. Create a “Calculator” '''Function''' chosen from the previously loaded '''Functional View''' (choose the Function name in the creation dialog-box list) and connect the “Convert” '''Function''' “Mul” '''Required Interface''' to the “Calculator”''' Function''' “Mul” '''Provided Interface'''. Edit the “Mul” '''Provided Interface''' by double clicking on it and choose “unprotected” kind.
     283
     284[[Image(htdocs:UserGuide/img16.png)]]
     285
     286 10. Create a “IO” '''Container''' and in this container create 2 '''Functions''', “Input” and “Output”.
     287 11. Create a “sporadic” '''Provided Interface''' named “get_result” on the “Output” '''Function'''.
     288 12. Connect the “Input” '''Function''' to “Day_To_Sec” '''Provided Interface''' and the “get_result” '''Provided Interface''' to the “result” '''Required Interface'''.
     289
     290
     291[[Image(htdocs:UserGuide/img17.png)]]
     292
     293 13. Save the current interface view as “Time_Conversion.liv” (File → Save).
     294 14. Double left click on a '''Provided Interface Implementation''' or select Tools → Edit Functional View. A functional view is opened with all the functions and Function's interfaces (open and created in the '''Interface View''') :
     295
     296[[Image(htdocs:UserGuide/img18.png)]]
     297
     298Note : this new library can be edited and save for further use.
     299
     300 15.Generate the '''AADL''' file “Time_Conversion.aadl” (Tools → Generate Interface View). You can check the consistency of the result.
     301
     302=== 3.3 Deployment View Editor ===
     303
     304 1. Launch the Deployment View Editor.
     305 2. Load the previous '''Interface View''' (File → Load Interface View) : “Time_Conversion.liv” file.
     306 3. Create 2 '''Processors'''  (Edit → New Processor or right mouse button contextual menu New Processor entry) :
     307
     308 * cpu1 : type “pentium”, implementation name “others”, processor location “127.0.0.1” and execution platform “Native”.
     309 * cpu2 : type “athlon”, implementation name “others”, processor location “127.0.0.2” and execution platform “Native”.
     310
     311
     312[[Image(htdocs:UserGuide/img19.png)]]
     313
     314 4. Create a '''Bus'''  named “VME” and “BSD_Sockets” transport API (Edit → New Bus or right mouse button contextual menu New Bus entry) :
     315
     316[[Image(htdocs:UserGuide/img20.png)]]
     317
     318 5. Create 2 '''Processor Interfaces''' (Edit → New Processor Interface or right mouse button contextual menu New Processor Interface entry) :
     319 * port_cpu1 on “cpu1” '''Processor''' : interface bus required “VME”.
     320 * port_cpu2 on “cpu2” '''Processor''' : interface bus required “VME”.
     321 
     322 And connect them to the bus (same process as Interface View Editor).
     323
     324[[Image(htdocs:UserGuide/img21.png)]]
     325
     326Note : as in '''Interface View Editor''', automatic creation services are available. In our example, one can skip the '''Processor Interface''' creation and connect the processors to the bus.
     327
     328 6. Create 2 '''Partitions''' (Edit → New Partition or right mouse button contextual menu New Partition entry) :
     329 * A1 in “cpu1” '''Processor''' : type “A1”, implementation name “others” and  leave port number empty.
     330 * A2 in “cpu2” '''Processor''' : type “A2”, implementation name “others” and  leave port number empty.
     331
     332[[Image(htdocs:UserGuide/img22.png)]]
     333
     334 7. In “A1” '''Partition''', add “Input” and “Output” '''Functions''' (Edit → Add Function or right mouse button contextual menu Add Function entry) and in “A2” '''Partition''', add “Convert” and “Calculator” '''Functions''' :
     335
     336[[Image(htdocs:UserGuide/img23.png)]]
     337
     338 8. Save the current deployment view as “Deployment1.ldv” (File → Save).
     339 9. Generate the '''AADL''' file “Deployment1.aadl” (Tools → Generate Deployment View). You can check the consistency of the result.
     340 10. For one '''Interface View''', one can have several '''Deployment View'''. Remove the previously added '''Functions''' (select a '''Function''' or a group of '''Functions''' and File → Delete Selection or right mouse button contextual menu Delete Selection entry ).
     341
     342Note : to select a group of items, left clic in an blank space (don't release the button), and release the left mouse button when all items you want to select are in the selection box.
     343
     344[[Image(htdocs:UserGuide/img24.png)]]
     345
     34611. In “A1” '''Partition''', add “Input”, “Convert” and “Calculator” '''Functions''' and in “A2” '''Partition''', add “Output” '''Functions''' :
     347
     348[[Image(htdocs:UserGuide/img25.png)]]
     349
     35012. Save the current deployment view as “Deployment2.ldv”.[[BR]]
     35113. Generate the '''AADL''' file “Deployment2.aadl”. You can check the consistency of the result.
     352
     353
     354Ellidiss Technologies :[[BR]]
     355[http://www.ellidiss.com www.ellidiss.com][[BR]]
     35624 quai de la douane, 29200 Brest, France[[BR]]
     357Tel. +33 (0) 298 451 870[[BR]]
     358[[Image(htdocs:logoEllidiss.png)]]