Home
        ASD:Suite User Manual - ASD:Suite Community
         Contents
1.      Configurable  if at design time the number of instances is not known  The size of the primary reference is configurable if you     a Specify   as  nstances  In this case the size is returned by a    configurator    during the construction of the service instances      Specify construction parameters  In this case the size of the reference is determined by the size of the construction parameter s   See   Defining construction parameters    for details        Service  the service  specified by an interface model  that the instances of the reference instances implement  Used Interfaces  a subset of the interfaces of the used service     Qo       Construction  used in the generated code during construction of the used service reference  This is what you can specify in this cell        Acomponent name   If the used service is an ASD component  this is the name of the design model  if the used component is a  foreign component  the actual component name of that foreign component must be used       A component name followed by a list of arguments for the Getinstance call to the component  The arguments can be literals   between  s   construction parameters or even already defined primary references       A use statement in the form of  use arg  to inject a component using either a primary reference or a construction parameter    See  Construction Parameters  for details about the concepts of Construction Parameters  and see  Defining construction   parameters    for details abo
2.      The following dialog appears on your screen if the ASD model is a design model     Ventication  Code Generation    Factory Method  Getinstance returns ari       Interface  Construction parameters     Component  deprecated        The code generation  Properties  dialog for a design model    In case the ASD model is an interface model the code generation  Properties  dialog appears as follows     63 Properties of ISensor    General  Code Generation    Namespace  Java only     com  verum  examples  AlarmS ystem       The code generation  Properties  dialog for an interface model    With the ASD SetM odelProperties command line tool you can set the code generation language and version for all ASD models in  your project in one go     http   community  verum com documentation user_   eneration prepare_code language_code_generator  1 of 2   03 12 2012 09 35 27     ASD  Suite User Manual          2012 Verum Software Technologies B V  All rights reserved    http   community  verum com documentation user_   eneration prepare_code language_code_generator  2 of 2   03 12 2012 09 35 27     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Defining construction parameters       Components can have construction parameters   parameters that are passed to the component when it is instantiated  Construction  parameters can be regular parameters like integers and strings  or they can be service parameters   instances of other   components  Regular p
3.     Esam   Application Interfaces   Notification Interfaces   Mideling Interfaces Tags       Tag Comments    The ASD Suite   the  Tags  tab    To create a tag  fill in the requirement identification in the  Tag  column and the text of the requirement in the  Comments   column     The following figure shows a partially filled in  Tags  tab for the  IAlarm  interface model         LAlarm  Alam  len     ES  mlar   Application Interfaces   Notification interfaces   Modeling Interfaces   Tags       Taq Comments  1 Alarm Regl The Alan must be activated before it can be turned off  2 Alarm Req 2 The Alenm must be checked before tt can be turned off    Filled in  Tags  tab       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling tags  03 12 2012 09 33 43     ASD  Suite User Manual       Product Technology Resources Training Purchase Company    Broadcasting Notifications       In ASD by default notifications manifest themselves as a point to point communication between the ASD component and the  used service where the notification interface was defined     In case you want a component to broadcast events defined on a notification interface to more than one observer  client  component using your ASD component  you have to define the respective notification interface as a broadcasting interface by  check marking the  Broadcast  check box for the defined notification interface  The following figur
4.     verum    Preparing the ASD model for code generation       A conflict free model is ready for code generation  Additionally  there are several settings you can use to tweak code generation  and model verification to your requirements  For example  you might want to change the component type  the execution model     the target language  or the code generator version     These are some guidelines for other representative cases        specification of construction parameters for proper component construction at runtime     specification of output path and tracing information     referencing of user defined types       code customization       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manu   px 8 5 0 codegeneration prepare_code prepare_intro  03 12 2012 09 35 17     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Specifying the component type       In ASD you can choose between two types of components  Singleton or Multiple     When selecting Singleton for a component  a single instance of the respective component will be created and this instance will be  accessed by all components that use the Singleton component  In case of M ultiple  each component that uses the respective  component will create and use its own instance s  of the M ultiple component     To specify the desired component type you have to open the model properties dialog for your design model by sel
5.    3  For each used service  identify one or more components that implement that service   4  Create the design model for the considered component       Specify the service that is going to be implemented      Specify the services that are going to be used       Designate components for the used services    o  Build the SBS for the design model     The construction of an Alarm System is used to illustrate the above mentioned steps  The following figure presents the main    component of such a system  the box named  AlarmSystem    together with the service to implement  AlarmSystem  and the  services to be used  Sensor and Siren           2012 Verum Software Technologies B V  All rights reserved    http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling  workflow  03 12 2012 09 32 17     ASD  Suite User Manual          Product Technology Resources Training Purchase Company       Creating an Interface M odel    These are the steps to create a new interface model     1  Open the  New Model  dialog  This can be done by      Selecting the  File  gt New  menu item  or by     Clicking  New  in the Toolbar  or by     Selecting the  Create a new model     item on the Start Page     The following figure shows the  New Model  dialog after selecting one of the above choices     Interface Model File location and name     X  temo  lyModels  oO   Design Model eee      Create empty interface model       Copy from model on disk        The  New Model  dialog for creating
6.    Model Navigator    With the M odel Navigator you can show an overview of all ASD models in your project and the dependencies between them  From  the Model Navigator you can open the model in the M odelBuilder and check their verification status and other properties  To  generate a M odel Navigator map  fill in one or more directory paths  separated by semi colons  into the combobox on the toolbar  and press ENTER  Alternatively  press the       button to get a dialog to select directories  In this dialog  you can also save sets   of directories under aname of your choice  The result is an overview of all models in your project     is    PE  I ops E O  spModels Examples Alarmsystem Example   GG R g A     iAlarm System    Alarm System    ISensor ISiren ITimer    Overall status      C   ASD Models Examples  AlarmSystem Example  AlarmSystem dm          M odel Navigator    The Design models are indicated in blue  the Interface models are indicated in orange  The design models have a verification  status indicator  showing the result of the last verification  This indicator can have four possible values     Q green tick mark  the model has been verified successfully  no errors are found        Gred cross  the model verification failed  when you double click on the red cross icon  the corresponding verification results will  be loaded in the M odelBuilder     Q Orea triangle  only the  relaxed livelock  check of the model verification failed  this could be a genuine livelock erro
7.    NobFicabion Interfaces   Modeling Interfaces Tags    SES   states   state variables            idarm voldaephy  Interface Event Guard Actions State Variable Updates Target State Comments Tags    1 AlarmNotActivated  lt  gt   3 lam Set  4 Alarm Clear Ilegal  5 Alarm Check   Ilegal  6 larmi AlarmTnaged Disabled  T Warmi   6AlarmBeset Disabled   x             The SBS tab after specifying actions    Note  You can select multiple cells in the Actions column to insert the same action s  into them  The cells do not have to belong  to consecutive rule cases     http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling behaviour actions  1 of 2   03 12 2012 09 32 59     ASD  Suite User Manual       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling behaviour actions  2 of 2   03 12 2012 09 32 59     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Target State       These are the steps to specify a target state in a rule case     1  Select the cell in the  Target State  column and press F2 or double click with the left button of the mouse  The  Select Target  State  dialog appears     Alarenit aa d                             The ASD Suite the  Select Target State  dialog    2  Select the state from the list  Note       The  Select Target State  dialog is split in two panes  one text editor and a list    You can switch between the
8.    lt pecified_output_path gt   lt Specified_component_name gt Component h_tmpl    lt specified_output_path gt   lt specified_component_name gt Component c_tmpl      Java   lt specified_output_path gt    lt directory_structure_determined_by specified namespace gt    lt specified_component_name gt Component java_tmpl     where  lt Specified_output_path gt is the value filled in the  Output path  field and    lt specified_component_name gt is the name of the component as filled in the  Construction  stub   field     After the skeleton code is generated  rename the file s  to the correct file name by removing the  _tmpl  postfix        2012 Verum Software Technologies B V  All rights reserved    http   community  verum com documentation user_   al_ pdf aspx 8 5 0 codegeneration generate_stub  2 of 2   03 12 2012 09 35 50     ASD  Suite User Manual          Product Technology Resources Training Purchase Company       Downloading the ASD Runtime    The ASD Runtime is a software package distributed as part of the ASD Suite  which enables source code generated with the ASD   Suite to be executed on a specific execution platform  Additionally  the ASD Runtime package implements the semantics required to  ensure the compatibility between the generated code and the verified ASD models from which the code was generated     These are the steps to download the ASD Runtime for a specific target language using the M odelBuilder        Select the  Code Generation   gt Download Runtime     me
9.    o   Zero or more  lt include gt  directives can be specified in any order anywhere in the text file with the effect that contents of the specified  text files are copied into the generated file       Specify one  lt include gt  directive per line      lf the specified file in an  lt include gt  directive can not be opened for whatever reason when generating source code  the directive is  completely ignored and has no effect      Zero or one  lt generate   gt  directive can be specified designating the point at which the generated code is inserted into the output file  If  omitted  the generated code is added to the output file after the last line in the specified text file  If multiple  lt generate   gt  directives  are present in the file  only the first one is processed  the others are ignored as though they were not present       Both DOS and UNIX style line endings are allowed       Both the Copyright file and all include files must be 8 bit ASCII encoded    Example      text file with no directives    http   community  verum com documentation user_    5 0 codegeneration prepare_code customization  1 of 2   03 12 2012 09 35 40     ASD  Suite User Manual       text file with an  lt include gt  directive    o text file with a  lt generate   gt  directive       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_    5 0 codegeneration prepare_code customization  2 of 2   03 12 2012 09 35 40     ASD  Suite User Man
10.    of the Info ZIP URL s             4  Info ZIP retains the right to use the names  Info ZIP    Zip    UnZip        UnZipSFX    WiZ    Pocket Unzip    Pocket Zip   and  MacZip  for its  ii own source and binary releases          IA AAA AALLS LALLA AAA LAAMAN LAA A ASAA ELT PITA PT AAAA ALAALA ALIA ALAA       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 license xzip  03 12 2012 09 36 22     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Example of generated code customization when the specified text file has no  directives       Let s consider the Siren interface model  known from the AlarmSystem example built and distributed by Verum  and the  copyright   txt  file with the following content     II     Copyright 2012 Verum Software Technologies BV  II        and the C  code generation properties for the Siren interface model as follows      3 Properties of ISensor  tlle  General     Code Generation  z Path interface files    codelepp sre generated   Browse          Output paths    Header and footer information    Indude impart    a       These is the C  header file obtained after generating code from the Siren interface model     Fb AUALA LIIALT TT ISTE TT ETE T EPI ETT CA ETA I PAT TEP ETI AT TEI ILLL LALLA ELIA     Generated for Project    by Verum ASD Suite Release 3  version 8 1 0 42234      Generated from ASD Specification  Siren im  last up
11.   State Variables for Used Service References  for details     By construction  primary references can not include the same service instance multiple times  under the assumption that  the components are  multiples   see  Specifying component type  for details   State variables can however contain the same  instance multiple times  which in principle could be used to send the same action multiple times to the same service instance        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 concepts used_services  03 12 2012 09 31 22     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       verum    Panes and  dockable  windows    The main window of the ASD Suite  also referred as the M aster window  is by default filled in by the Start Page pane        Next to the Start Page you can load in the M aster window one or more of the following  dockable  windows     oa  Model Explorer   used to display the structure of the loaded ASD models         Model Editor   used to view or edit an ASD model  There is a model editor per loaded ASD model  which you open by double clicking  the model in the M odel Explorer         Verification Results     used to display the set of checks for verification  See the  ASD Suite Visual Verification User Guide  for details         Visual Verification   used to display the information needed to fix the failed checks  See the  ASD Suite Vi
12.   Sub machines  for details about using sub machines        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling behaviour behaviour_intro  03 12 2012 09 32 48     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       State Variables       State variables provide means to capture fine grained history as opposed to states which capture the more coarse grained  Ue n are used to base control flow decisions on state variables and state variable updates are used to change the values  of state variables     Note  Because ASD has strict separation of control and data  state variables can not be used as arguments of events and  event arguments can not be used in a guard or in a state variable update expression     The  State Variables  tab enables the specification of state variables  their initial values  and comments  The following figure shows  an empty state variable declaration for the  IAlarm  main machine     E   TAlarm   Application Interfaces Notification Interfaces       S65 States   State Variables       The ASD Suite   the  State Variables  tab    In order to specify state variables  you must specify a name for the respective variable  the type of the variable  type constraints and  an initial value  To do this  enter the name of the variable in the  State Variable  column and the initial value in the  Initial  Value  column     The following figur
13.   after  the opening bracket  e g      a c  matches everything except a  b or c  There are predefined character classes which can be  included between brackets  e g      digit  a   matches any decimal digit and the  a  character      alnum   any alphanumeric character     alpha   any aphabetic character     blank   any whitespace character that is not a line separator     cntrl   any control character     digit   any decimal digit     graph   any graphical character                                 o     lower   any lower case character  o   print   any printable character        punct   any punctuation character        space   any whitespace character        upper   any upper case character   o     word   any alphanumeric character or the underscore          xdigit   any hexadecimal digit    Creating Expressions Easily    It is usually not necessary to type expressions manually  There are several dialogs and features that help build expressions for you   Expression Builder   Using the       button next to the filtering edit box  you get a dialog that you can use to build expressions  The dialog has two parts   You can use either part to make an expression  The top part allows to easily filter multiple columns on the same text  The bottom  part allows to make expressions by selecting operators from combo boxes     Filter on text in columns    C  source  C  interface E  event  C  guard  C  actions  O  updates  E  target  C  comments El  tags    Filter on an expression    C re  
14.   amp  initial state of the sub machine as target state action has the initial state of the sub machine as target state    F rule case that has the initial state of a sub machine as target fEnsure that all rule cases which have the initial state of a sub    state  must have a transfer reply event as last action machine as target state  have a transfer reply event as last  action    6 A rule case with a modelling event as trigger may not have Illegal as  Press Sniit F8 to automatically fix the conflict or change the  action action to Disabled or any other valid response   RC69 A rule case triggered by modelling as no effect w p Isabled  to at the  is specified as action  no state variable update is specified and there jmodelling event should have no effect  Enter an Action and or a    is no state change State variable update and or a different Target State in case the  null effect was a mistake     RC 0 e Indicated reply event must belong to the same interface asthe  Ensure that the specified reply event belongs to the same  aa indicated trigger event interface as the indicated trigger  RC71 A  void  event should not be followed by a reply event and or a Ensure that the valued_event reply event and void_event   a r st should not be followed by a void reply  i e  void_reply pairs are correctly specified in rule cases   VoidReply   RC 2 ransition to this state Is preceded by a valued call event on one Ensure that all transitions to the state have either volo  transition while it
15.   by Verum ASD Suite Release 3  version 8 1 0 42234      Generated from ASD Specification  Siren im  last updated 2012 03 09T17 33 58  Fd PTET EPEC TET E ATE CT EP EES IATA I PET PLATA III TAG TET aT aT aa eT es a iia                       ifndef _ ISIREN_INTERFACE   define SIREN_INTERFACE                                               include  passbyvalue h      include  lt boost shared_ptr hpp gt    include  lt boost thread mutex hpp gt    include  lt boost thread condition hpp gt              class ISiren_API     pub Lie    enum PseudoStimulus           lt summary gt       The VoidReply event indicates that the processing of the API call has been completed      and the call can return when appropriate        lt  summary gt   VoidReply  i  virtual  ISiren_API                       lt summary gt        Turn the siren on        lt  summary gt    virtual void TurnOn     0             lt summary gt    fi Tarn the siren off       lt  summary gt                                               virtual void TurnOff     0   protected   ISiren_API       private   ISiren_API amp  operator    const ISiren_API amp  other    ISiren_API  const ISiren_API amp  other          class TSireninteriac                                                                              public   virtual  ISirenInterface       virtual void GetAPI  boost  shared_ptr lt ISiren_API gt      0   protected   ISirenInterface       private   TSirenInterface amp  operator    const ISirenInterface amp  other    ISirenI
16.   usually blue or orange  of the target state and press Ctrl V or select the  Paste Rule s   item in the context menu of  the state     Note  When you copy whole rule cases defining self transitions in the source state  they will define self transitions in the target state  too        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling behaviour insert_replace  03 12 2012 09 33 27     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       verum    Parameters       You can declare parameters for the events in your models to pass data around  The data is not used in the model verification  ASD  allows data to flow  transparently  through ASD components  The data can be anything your programming language allows  although  there are a few requirements on the data types used     Parameters vs Arguments    In most programming languages  you first declare a function or method with its parameters  and then you use the function or method   passing it arguments to the parameters  In this manual  this is how we will use the terms  parameters  and  arguments   Another term  for parameters would be  formal parameters  and another term for arguments would be  actual parameters         You can define parameters for an event in an interface model  together with a direction and type  This is described in  Parameter  Declaration         In design models  you supply argu
17.   your design models need to match their surrounding interface models to a degree   for instance  all the events you use in a design model  must be defined in one of the interface models  The models can be  edited independently  which can cause them to no longer match  The design model refers to the interface model interfaces and  events by name  This means that when you change a name in an interface model  you also have to change it in the design  model  Usually  you can use the Conflict Wizards to make corresponding changes to a design model     Errorcode JExplanation O ESA  RC142 design model refers to an interface that Is not present in the  interface models  It can be that the interface was deleted from the ffrom the design as well  If the interface was renamed  rename it       interface model  but also that it was renamed  See  Refactoring in the design model too   ASD M odels  for more details     RCI4 t g  model  It can be that you deleted it from the design model  that he design model too  If it was added to the interface model  add  you added it to the interface model  or that it was renamed  See he interface  It is best to let the Conflict Wizard handle this  so     Refactoring ASD M odels  for more details  hat the events are copied as well     RC144 ere Is an event which Is present in the design mode If the event was renamed in the interface model  rename it in  he interface model  It can be that the event was deleted from the fthe design model too  If it was del
18.  2012 09 34 56     ASD  Suite User Manual          Product Technology Resources Training Purchase Company       Fixing used service references related conflicts    The following table shows the messages that inform you that there are specification conflicts related to services used in a design model     Error Code  Explanation Oiii  ere are one or more specification conflicts in the specified interface eck and fIx conflicts in the Interface mode   Pre   RC35 Add the interfac    o  Select M odels in the Model Explorer        Select the Add model in the context menu after  pressing the right mouse key        Select the missing interface model and press Open     0 e design model name and the component name can not be the same  Change the design model name  or the component name in  in the Construction field of a primary reference  This is to ensure that a  the Construction field of a primary reference  component does not use itself     ct       e declaration of the indicated primary or secondary reference isnot Ensure that the name of the d used  valid  This can be because  reference complies with the rules for naming used service     The name is not valid  Used Service Reference names should start references and that it is not used for naming any other item  with a letter  followed by letters  digits and or underscores  in your model                 The name is already in use for something else  e g  a keyword or    another used service reference        e secondary reference do
19.  All rights reserved       http   community  verum com documentation user_manu   px 8 5 0 concepts operational_semantics rule_cases  03 12 2012 09 31 07     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Client requests       o All triggers on the Client Application Interface are implemented as method calls        When an Application Interface trigger is executed  the execution takes place under the context of the Client s thread and the Client  code thus can t be executed until the synchronous call returns        The response to the Client trigger  and thus its return to the client caller  takes place when the component issues an action on the  Client Application Interface  Until this occurs  the Client remains synchronously blocked        Atrigger implemented as a  void  method takes a  VoidReply  action as a signal to return to the Client        Atrigger implemented as a method returning a synchronous reply value  requires the corresponding action in order for the Client  to continue execution     oa While the Client is blocked  the component can continue receiving notifications but it can not receive any other trigger from any  Client thread via any of its Client Application Interfaces  As seen by its Clients  an ASD component has M onitor semantics        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manua    5 0 concepts operational_ semantics client_requests  03 
20.  Application Interfaces   Notification Interfaces   Modeling Interfaces   Tags      Sensor _cB       iW  Broadcast     Event Yoking Threshold Comments     L Detectedhlowernenti Sensor has detected movement    2 Deachvatedt  Notification that Deactve has completed     3          Client notification with yoking threshold    Note      A threshold should be smaller than or equal to the queue size in the using design model  otherwise a queue size violation  modelling error can still occur         Ifthe threshold is set to zero or remains empty  this implies there is no threshold  and the notification event is not restricted        The Yoking Threshold is to be specified in the interface model because in effect it is a statement about the frequency with which  the implementation of the interface model will generate events     o   The Yoking Threshold has to be specified per notification event and NOT per triggering modelling event  This is because of the  same reasons as for the previous point  it is a statement of the frequency with which an event will be generated     A modelling event will be yoked  i e  the corresponding rule case will be disabled  if the number of any of the restricted  notification events in the sequence of actions already in the queue is larger than or equal to the defined event threshold   irrespective of the total number of events in the queue   In this case  the complete rule case is disabled  and thus no response  is triggered  no state variable update i
21.  Changing Event Parameters   Changing the Order of Events or Interfaces    o Oo o Oo Oo Oo  O    Replacing an Interface M odel       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling refactoring refactor  03 12 2012 09 34 11     ASD  Suite User Manual       Product   Technology _ Resources Training   Purchase Company       verum    Changing the Initial State for an SBS    When you create a model  the SBS has one state  the initial state  If at some point you want to set another state as initial state   there are three ways to do this        1  In the States table  move the desired state to the top of the table using Ctrl U p  2  In the States table  right click the desired state and choose  Set as Initial State   3  In the SBS table  right click the desired state and choose  Set as Initial State        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling refactoring initialstate  03 12 2012 09 34 14     ASD  Suite User Manual       Product Technology Resources Training Purchase Company    verum    Duplicate a state       If you want to specify the same or at least similar behaviour in another state than in an existing one you might try to duplicate  the existing state and then make the necessary modifications in the new state     In order to duplicate a state you have to select the respective sta
22.  Check that the  Solutions  cell indicates that there are solutions available       Click the  Solutions  cell  A dialog pops up       Most conflict solutions can be applied to all conflicts of the same type  In this case  you can check the  Do this for all similar  conflicts  checkbox        Choose the solution you want to apply     Caveat  usually  the first solution that is presented is the one you will need  However  there can be other solutions for the conflict   and they may be better suited to your particular situation  Also  in some cases  it is handier to solve the conflict by hand regardless     This is an overview of all error codes reported in the ASD  Suite Release 4 v8 5 0  Click on the error code for more details      RCI RCT RCT ACTS    reser res res re  REET  HORT      RCo  EE REE     Reo      Ree REET ACs     ACTS  rer rent     rer MSE rer ME      rer ert a  rem  rem  ree re MLE     ec iso  acs Le  RCTOO  ACTON ACTON ACTOS ACTON ACTOS  _ACTOG ACTON e   RCT a RCT RCT RCT Ta  ACTTG    O O RCI  RCI   CIS  RCTS _RCTSY RCTS  _ ACTS RCTS  OE OEY Ei EE  RCIA  OEN MA OEY LOGE LOE LOLs LOL Boe MLE MLL  Rere Rete       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 conflicts fix_conflicts_intro  03 12 2012 09 34 41     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Fixing IM DM difference conflicts    As described in  Refactoring ASD Models 
23.  Inserting or replacing rule cases    Parameters     Parameters     Parameter Declaration  co Parameter Usage  o Example of Parameter Passing     Tags     Broadcasting Notifications     Construction Parameters  Construction Parameters  Passing parameters  Passing an instance of a used component  Passing a vector of instances  Passing a shared instance  Passing a primary reference  factoring ASD M odels  Refactoring ASD Models  Changing the Initial State for an SBS  Duplicate a State  Moving Events to a Different Interface  Deleting Events or Interfaces  Renaming Events or Interfaces  Changing Event Parameters  Changing the Order of Events or Interfaces  Replacing an Interface M odel    900000    Q                o      o          o                gqo00000 COO FZ000000    o    http   community  verum com documentation user_manual_pdf aspx 8 5 0 toc  1 of 2   03 12 2012 09 30 41     ASD  Suite User Manual    o Save AS      Conflicts   Conflicts   Fixing conflicts   Fixing IM DM difference conflicts   Fixing syntax related conflicts   Fixing name duplicates   Fixing interface related conflicts   Fixing argument  parameter or component variable related conflicts  Fixing used service references related conflicts  Fixing rule case related conflicts   Fixing state variable and guard related conflicts  Fixing other conflicts      Verification      Code Generation      Code Generation      Preparing the ASD model for code generation  Preparing the ASD model for code generation  Specif
24.  TEL   Duar Actina State Variable Wpdabes Target State    1 AlarmMatActivated  initial state   3 l  is Leti Sensor  SensoActiates AlaemActevating  12 AlarmdActivating  oymchromous return state   15 Sensors lSensor Of Llanmn Accegted SlamActhvated  3 Serscen  Sensor FAIL l  jamn  Failed AlaambbotActivated  23 Alarmictivated  26 Alar Clear Alam  VoidRephy Digtt cunt   0 SlaemActhvated  27 llam ChecktEvalCheckiigtidigith  Digttount   Digitttourt 1 EvaluatingDagit    SirereLoinen  Tuni    J  Sensce enscr Ml DetectedMowernend not Alarnin       bene A lanni   true Aleem actryebed   enn BWilarm TumedOn  33 SensornSensorMl DetectedMMowement otherwise oop AlamActvabed    35 EwaluatingDigit   qynchroncus return state  z    The Context information field in the SBS tab       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manu    0 user_interface tabs_panes_windows context_field  03 12 2012 09 31 32     ASD  Suite User Manual          Product Technology Resources Training Purchase Company       The File menu    Menu Item Purpose    New Create a new ASD model     See  Creating an Interface M odel  or  Creating a Design M odel  for details   Open pen an ASD model or a model verification results file  closing the current model s      AddModel s     O     Load more models  read only  into the M odelBuilder  without replacing the existing ones   save ave the current ASD model     Save  lt model_name gt As    Save an exact copy of 
25.  Tags      SBS   Stes   State variables    Hermictivabed    Interface Event Guard Actions State Variable Updates Target Stale  Cornmeants Tags    EMlarm   Set ilar  voidfienly  Alarmi Clear Tegal    LAlarr Check   Tegal  Alarmi  Alarm nipped Disabled     WAlarmINT   AlarmPeset Disabled  Alar mActivated  lt lAlarm Set   Le lari s  t  larmi Clear  3 larm Check    Warmi NT Alarm Tripped  WarmIHT   AlarmaBeset             The SBS tab after target state specification  Note  The ASD Suite ensures that the proper triggers are present in each state of an SBS     It is possible to specify the current state as a target state  i e  to create a self transition  without using the  Select Target State   dialog  These are the alternatives        Select the  Self Transition  item in the context menu obtained by clicking the right mouse button while selecting the cell of the  rule case situated in the  Target State  column  or       Press  Ctrl Space  when the cell in the  Target State  column is selected           2012 Verum Software Technologies B V  All rights reserved    http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling behaviour target_state  03 12 2012 09 33 02     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       verum    Comments       You may specify a description for each rule case  In order to do so  select the field in the  Comments  column on the line reflecting  the rule case  press F2 or double click with the 
26.  Verum Software Technologies B V   ASD is licensed under EU Patent 1749264 and Hong Kong Patent HK1104100    All rights are reserved  No part of this publication may be reproduced in any form or by any means  electronic  mechanical   photocopying  recording  or otherwise  without the prior written permission of the copyright owner        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 overview  03 12 2012 09 30 45     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       ASD Suite Release 4 v8 5 0       Installation Prerequisities    The ASD Suite client side software is developed specifically for the Microsoft Windows platform and is guaranteed compatible with  the versions  including correction packages  as specified below        Microsoft Windows XP  Service Pack 3  oa Microsoft Windows 7  Service Pack 1    Supported Programming Languages and Compilers   The supported compilers for the various programming languages are specified below   oa For C  see  Supported compilers and boost versions for CH   o For C see  Supported compilers and execution platforms for C    oa For C see  Supported compilers and execution platforms for C        For Java see  Supported compilers and execution platforms for Java     3rd Party Dependencies   The ASD Suite includes software developed by the following parties      Boost org   Boost Software License      The OpenSSL Proje
27.  an action                 For example   Ahaba Iii Tinen  Viner CresteTimes e5a c Memeye HL Tipped  liteiface Ewi Gaard Adoni Wariabky Lig Target Sate Coie  23 Aiwan Hk  12 WindowSensarisensoe Ml Detected Movement Kar Tipoad oe Cectecied movement  Parameter passing example with a literal value  Note     You may not use literals to execute code that changes the state of the component  as this will invalidate the model verification     http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling parameters usage  1 of 2   03 12 2012 09 33 36     ASD  Suite User Manual    Run time execution    At run time  the  in  and  inout  parameters of a trigger are copied to the rule case local and component variables when the  trigger event is executed     The Siar  out  and  inout  parameters of a trigger event are assigned at the moment that the corresponding Reply Event  is executed     Note   For this reason  it has no purpose to assign a value to a rule case local variable after the Reply Event        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling parameters usage  2 of 2   03 12 2012 09 33 36     ASD  Suite User Manual          Product Technology Resources Training Purchase Company       Example of  simple  Parameter Passing    Simple parameter passing encompasses forwarding parameter values from the Client to a used service or sub machine  or vice  versa  within a singl
28.  an interface model    2  Specify a name for the service under  M odel name      Note      Ifthe field was empty  the specified name designates the file name of the interface model  see next figure  and the name of the    service  You should not use spaces in this name and no special characters which would make the file unrecognisable by the operating    system      If there is already a file name specified in the  File location and name   field  the file name is not updated when the information in the     M odel name   field is changed      You can specify a file name in the file lookup dialog obtained when you press the  Browse     button next to the  File location and    name   field  o Ifthe  Model name   field was empty  the name of the service will be the same as the name of the file     o Ifthe  Model name   field was not empty  the name of the service will not be changed after the file is selected     TAlarm  Interface Model File location and name   rc  X  temo  yModels WAlarm im  Design Model Ee      Create empty interface model         Copy from model on disk     Execution Model    Standard         E  Open in a new instance of the ASD Suite     cancel         The  New Model  dialog for interface models after specifying a service name    3  Specify the execution model for this interface model  See  Specifying the execution model  for details     4  Click  OK  to create and save the interface model  The following figure shows a newly created interface model with all  
29.  as possible  This means  that the model defines what the component does under every circumstance but not how the component will do it  The external  behaviour is specified independently of any specific implementation  It is an abstraction of the component or system  implementation that every compliant design is required to implement     The design model describes the internal behaviour of a component  It rigorously and completely defines one of the many possible  implementations that faithfully comply with the interface model     An ASD component implements a service  Specified by the interface model  that is used by its clients  This implemented service is  exposed by means of application interfaces through which clients can send call events  The ASD component can respond to a call  event on an application interface by means of a reply event on the same application interface and events on notification interfaces   In this process  an ASD component can also invoke used services that are implemented by other components  the servers of the ASD  component  Collectively  the services between a component and its clients and servers form an imaginary border  called the  component boundary  Information crosses the component boundary in the form of events     Component Boundary of  component A     Component A    Component B Component    Component D    COD   Service       component    Component boundary       A component  knows  only information passed into it across the component bo
30.  defined by      a name      a number of component instances      an interface model that specifies the behaviour of the used service      the interfaces of the used service that the component is connected with     om A W N e      a component name  either an ASD component or Foreign component  that specifies the service instance s internal behaviour or a  use statement to inject a component  See  Primary References  for details     Primary references can be grouped together into secondary references  Note  secondary references are deprecated and will  be removed in the next major ASD Suite release  In contrast with primary references  secondary references can contain instances  of different components  as long as the components implement the same service     The primary and secondary references determine the grouping of rule cases  Triggers coming from used service instances that are  part of secondary references are all processed by the same set of rule cases  The same goes for the set of service instances that are  part of a primary reference that is not part of a secondary reference     Used service references can be used to send an event to multiple service instances at once  The actions are sent to the used  service instances in the order that the services instances have in the used service reference     Used service reference state variables are service references whose contents can change dynamically  They can be used in  guards  actions and state variable updates  See
31.  documentation user_manua   df aspx 8 5 0 codegeneration prepare_code serialise  03 12 2012 09 35 44     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Generating code from an ASD model    Note           Before generating code from a design model or an interface model with the ASD Suite you might need to perform  some of the   items described in  Preparing the ASD model for code generation         When Cis the target language  the ASD  Suite will use the value specified as  Size  for the event queue in constructing the event queue   Note  When you decide to decrease the value of the queue size for purposes of code generation you must ensure that the  verification is still successful     Code generation using the M odelBuilder can be done in one of the following ways     1  Press F7 or Ctrl F7  or  2  Select one of the following menu items   Code Generation   gt Generate Code  or  Code Generation   gt Generate All Code   or    3  Select the design model or interface model in the  M odel Explorer  window  right click and select the  Generate Code  item in  the context menu     Note     oa Code generation language and version properties are now captured in the model properties section and are stored in the ASD  model file  This allows you to specify the desired target language and code generator version for each model when information  is missing or not according to your expectations  The target language and code generator version for t
32.  documentation user_manual_pdf aspx 8 5 0 conflicts miscellaneous  03 12 2012 09 35 09     ASD  Suite User Manual       Product   Technology _ Resources   Training   Purchase   Company       Verification       These are the steps to be followed when you want to verify an ASD model     1  Prepare the model for verification  2  Start verification    3  Analyze and fix the reported errors    Note  If one of your checks ends up in  Queue full  see  Singleton Notification Events  and or  Yoking Notification Events  for  possible solutions        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 verify  03 12 2012 09 35 12     ASD  Suite User Manual       Product   Technology _ Resources   Training   Purchase   Company       Code Generation       To generate code and integrate the code into your software system follow these steps     1  Prepare the ASD model for code generation  2  Generate code from an ASD model  3  You can generate stub code from in interface model to create foreign components that are fully integrated with the ASD components    4  Download the ASD Runtime for the language and version that matches your project       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 codegeneration overview  03 12 2012 09 35 14     ASD  Suite User Manual       Product Technology _ Resources Training Purchase Company   
33.  hachon  Baga   Baga  aurr tte Beaedy iind   hat Liri APL idile r  aL Bariin ai barhiH r poen ay cit tires Daire Dairia raer  i  Tirdia anor arer CE ieia KE roeil Sint e Ta  Ig Activated Tipid Senco dackacud mowwracr     chat tires  1 Birdo hro Boro CE  krie Ecg  u Trr  imriE Teri Bequ    An SBS in the ASD  Suite    The method used to create these specifications  is called Sequence Enumeration  This requires the systematic enumeration of all  possible input sequences of triggers  ordered by length  starting with the empty sequence  Triggers can be repeated within a  sequence and since sequence length is not restricted  the set of all possible sequences is infinite  In practice  systems do not display  an infinite set of unique  non repeating behaviours  They cycle through a finite set of states and repeat a finite set of behaviours   Thus the infinite set of input sequences of triggers can be reduced to a finite set of equivalence classes     Each class is identified by a minimal length sequence  called Canonical Sequence  All sequences in a given equivalence class have the  same future system behaviour  They are said to be M ealy Equivalent  The equivalence classes form the set of states in a M ealy    http   community  verum com documentation user_manual_pdf aspx 8 5 0 concepts sbs  1 of 2   03 12 2012 09 31 01     ASD  Suite User Manual    M achine     The theory underlying this approach tells us that by reasoning about the behaviour of the finite set of Canonical Sequence
34.  is preceded by a void call event on another call events as the last event  transition  Consequently  it is unclear if this should be a   Synchronous return state  or a  Normal state   See  State types in  a design model  for details about state types     It is not allowed to subscribe to a non broadcasting notification Remove the respective Subscribe trom the sequence of actions  interface or make the notification interface broadcasting    It is not allowed to unsubscribe from a non broadcasting Remove the respective Unsubscribe from the sequence o    notification interface actions or make the notification interface broadcasting  ou are attempting to Subscribe  or Unsubscribe  to an interface Remove the Subscribe or Unsubscribe action or declare the    which is not declared as a used interface respective interface as a used interface    No guard should be specified If the rule case has Blocked as action  Specify different action s  or remove the guard    No state variable updates should be specified if the rule case has pecity alfferent action s  or remove the state variable updates  Blocked as action    A rule with a rule case in which Blocked is specified as action should  Specify different action s  or remove the other rule cases from  have no other rule cases the rule    Disabled is only allowed for rule cases having a modelling eventas  Specify different action s  trigger    No state variable updates should be specified if the rule case has Specify different action s  o
35.  limit     Notification events originate from interface models of used services and are either an action to an application interface trigger or an  action to a modelling event  ASD semantics require that executing a notification as an action is never blocking so the notification  can not be prevented  instead the trigger that results in the notification is prevented  The solution is to limit notifications that   are actions to modelling events by enabling and disabling the modelling events  Notification events arising as actions to   application interface triggers can not be limited because the trigger can not be disabled     WARNING  Yoking should be used wisely  when the assumptions about arrival intervals and service intervals are not correct   the verification results may give a false impression  If the arrival rate during execution is higher than assumed with Yoking  the   queue may still fill up  For C code this may lead to a runtime assertion failure  since the Queue size in C is fixed  and will assert when  it overflows  For the other languages the queue size is only bound by memory stack size  the problem is not as critical  but eventually  the queue can still overflow     The M odelBuilder enables the indication in the interface model for each notification event whether the respective event should  be restricted by means of yoking  For each notification event you can indicate the event threshold by typing a value in the  Yoking  Threshold  column       H5   Sensor  
36.  of AlarmSystem    General  Verification  4 Code Generation    C   version      Ce   Java   Tiny Factory Method     Code Generator     Getinstance returns a       Interface  Construction parameters    in  myparameter std  string    O Component  deprecated        Defining your own construction parameter    In this case  we have defined a parameter with name  myparameter  of type  std  string   The type can be anything that your  programming language allows  in this case it isa C  string  You can define multiple parameters  separated by commas     The construction parameters you define here end up as formal parameters to the GetInstance method of the generated  component  This is described in more detail in component instantiation integration in C   C   Java  C  or TinyC     Now that we have defined a parameter  we can use it to pass values to our used components     TE  AlarmSystem     Implemented Service   UsedServices   Tage    Primary References   Secondary References    z  Sensor    x ISren    z Mme                     Reference Name Finstances    Service   Used Interfaces   Construction   Slnstances in Verification  1 WindowSenser 1  Sensor Siren WindowSensorimyparametes  2 Siren 1  Biren Biren AFI Siren  ee Mimer  T  3 Tim  r 1  Mimer Timer B Mimer    Passing a construction parameter to a used instance    As you can see  we have adapted the WindowSensor Construction field to include the  myparameter  parameter  Any value that  is passed to an AlarmSystem instance is now 
37.  of the Slave window  not for M odel Editor windows    Note     o The Master and Slave windows are normal application windows that can be a o  minimized and maximized        The window layout  the location of Master and Slave window  s  on the screen  is remembered per screen setup  This means that if you  switch from single to dual screen setup  you have to reorder your windows to accomodate for the dual screen setup        2012 Verum Software Technologies B V  All rights reserved    http   community  verum com documentation user_manu   8 5 0 user_interface tabs_panes_windows tabs_ intro  03 12 2012 09 31 25     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Meaning of colours in the SBS tab       The various colours used in the SBS tab of the  M odel Editor  each have a meaning      Alar   Adare che        Jum O   ingtemerted Service   haj iaren   Tass   E iwiz Sisir Wises   Sise Disgo    AlarmActivabed Seere eran M  peee    imara  Event Guard Achont Sheba Wangble Update Target State  i AlomfotActivated  initial state   3 Ab Sete Seen soc hae Slerndcthentirey  ii Alarme Gynchronces return statel  18 ecoreGercor OE Blam Accepted Almie  20 Sensor eran FAL Wam Faled Iep asai bce ated  J31 AanmAiihibal  ao Ala Clear lan vted Reedy igite s 0 Alemci dled Feba the entere     2  bem Digidigi Check lEsa Eeti Digt emi   gtin    EwahustingDiget  A nat Alaris P Siamin   true Alsmndictivated Senso trigere     Bhim Ch AlbenTuned on 2  39   encec
38.  panes of the  Select Target State  dialog by pressing the Tab key or by selecting the panes with the mouse    The text editor enables you to type the name of the desired state or to create a new state    While you specify the state manually the states in the list are filtered out using sub string matching easing up your job to specify   the desired state    Pressing Tab in the text editor while you type a state name performs prefix completion for the respective state name  i e  it extends   the specified name to the longest common prefix within the existing state names which matches the currently specified text    To create a new state and to specify the respective state as the target state you have to specify a non existing valid name for   the respective state   Note  If the desired state name is part of an already existing state name  the sub string matching will select one of the existing  states containing the respective string and you might end up in selecting the respective state instead of creating a new one  To  avoid this  we suggest you add an extra space at the end of the desired name which will disable sub string matching and press  Enter to create the new state  The space at the end of the name will be automatically removed since no spaces are allowed in  specified names     o 8 98090    The following figure shows the situation when the specified target state is a new state        E  Wars   Application Inbefacas   Notification Interfaces   Modeling Interfaces  
39.  pdf aspx 8 5 0 modelling behaviour state_info  1 of 2   03 12 2012 09 32 55        ASD  Suite User Manual    ES  AlarmSystem   Implemented Service   Used services   Tags    SBS States State Variables   State Diagram    State Comments  1 NotActivated  initial state  The Alarm is not actrvated yet  2 Actrvated_Idle  3 Actated_AlarmMode  4 Deactivating  5 Activated_Tripped                6 LI       New User Column CiU    Delete User Colurnn    Rename User Column    Move Left tri Left    Autosize columns    Operations with a user column in the States tab       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_m    _ pdf aspx 8 5 0 modelling behaviour state_info  2 of 2   03 12 2012 09 32 55     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       verum    Actions       These are the steps to insert an action in a rule case     1  Select the cell in the Actions column and press F2 or double click with the left button of the mouse  The  Select Actions  dialog appears        Select Actions     Nop    Illegal   Disabled   larm B  Alarm TurnedOng   larm CB Alarm Turned OG   larm  VoidRephy    Alarm CheckSuccesstul   Alarm  CheckFatled    ok   cancel    The ASD Suite the  Select Actions  dialog       2  Select the action from the list that appears     Select Actions    Mop   Illegal   Disabled  larm B  Alarm TurnedOng  Talarm CB laren Turned OG    Alarm  WoidRephy j    IAlarm  Check Succe
40.  queue of notification events  In  ASD this number is called the Yoking Threshold  This number can be determined after a thorough analysis of the timing behaviour  of the system and after determining the arrival  and service intervals of the queue     M any real world designs must accept notification events generated by the environment and which can not be controlled by the  design  The real executing system works without problems because the arrival intervals of the events are much longer than the  service times and thus  they do not flood the queue or starve other system activity  Also  in reality  the queue is always  long enough   that it never becomes blocking     In verification using the ASD Suite there is no direct way of representing this temporal behaviour and the queue must be kept   small enough in size to avoid state explosion and endless verification  The remedy for this is based on the  yoking  concept  The idea is  to approximate the effect of temporal behaviour by limiting the number of such events that can be in the queue at any given time  Such  a limit is called an event threshold and is specified as  Yoking Threshold  for each notification event to be limited   restricted     Conceptually  by specifying an event threshold for a notification event you state that under expected runtime conditions  the  arrival rate and service time of the event are such that the number of unprocessed notification events of the specified type will never  exceed the specified
41.  services      Reply events on application interfaces of the implemented service   o Events on notification interfaces of the implemented service      Fora main machine  call events on transfer interfaces      For a sub machine  reply events on its transfer interface     The following figure shows the various types of events in a design model     D   Client Appligation Call Events  Client Application Reply Events Client Notification  Events    Transfer Reply Events       Machine    Transfar Call Events  Main  Machine   Transfer Call Events    Sub    Machine        Eyent  Queue    Transfer Reply Events    Sener Notification  Events        idation Call Events    Server Application Reply Events    The various types of events in a design model       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 concepts models  03 12 2012 09 30 57     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Sequence Based Specifications       According to the IEEE Standard Glossary of Software Engineering Terminology  a specification is a complete  precise and verifiable  description of the characteristics of a system or a component  Within ASD the distinction between an interface specification   interface model  and a design specification  design model  is fundamental     The interface model describes the externally visible behaviour of a component and is as implementation free
42.  settings as part of the command in the command prompt  it is recommended to  run the ASD Suite M odelBuilder once and save the connection settings  to store them as default values  also for the ASD   Suite Commandline Client     http   community  verum com documentation user_manual_pdf aspx 8 5 0 command_prompt asdc  1 of 2   03 12 2012 09 36 11     ASD  Suite User Manual       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 command_prompt asdc  2 of 2   03 12 2012 09 36 11     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       verum    ASD M odelConverter       The ASD M odelConverter is a command line tool which upgrades one or more ASD model s  built with previous major releases of  the ASD Suite  Note that the ASD Suite M odelBuilder provides the same functionality under File Upgrade M odels  see  Upgrading  ASD models       For example   ModelConverter exe Alarm dm    upgrades the Alarm dm design model and saves it in the new format        Instead of replacing the existing file  the converter can also write the converted model to a new file  Use the     output option for  this  For example   ModelConverter ex output Alarm out Alarm dm    upgrades Alarm dm to Alarm out  This option is valid only if a single file is specified        Like the other command line tools  the ASD M odelConverter supports wildcards and recursion  Also  you can use the     
43.  specification  design  mathematical verification  code  generation and runtime execution     ASD components    ASD components are software components that are specified and designed using ASD  An interface model specifies the externally  visible behaviour of a component  A design model specifies its inner working and how it interacts with other components  All ASD  components must have both an interface model and a design model     ASD components are mathematically verified  In the ASD Suite this is done using a Software as a Service  SaaS  application  The  necessary mathematical models are generated automatically from both design and interface models  The source code to implement  an ASD component is generated automatically from its design model     Foreign components    Foreign components are hardware or software components of a system which are not developed using ASD  As they have to be used  by ASD components  they must correctly interface and interact with them  They may be third party components  legacy code or  handwritten components representing those parts of a system that cannot be generated from ASD designs  All used foreign  components must have an interface model which specifies the externally visible behaviour of the component  Foreign components  do not have a corresponding design model     The interface model of foreign components is used for two purposes     1  For verifying ASD components that use these foreign components  formal models are generated auto
44.  the same identifier  It is not supported to have a design model that ffuture  don t copy models in Windows Explorer to create  refers to multiple interface models with the same identifier  new ones but use File   Save As   New Model        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 conflicts used_services  2 of 2   03 12 2012 09 35 00     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Fixing rule case related conflicts       The following table shows the specification conflicts related to specification of actions when building ASD models     Error Code  Explanation  RC54 e Indicated state can not be reached following a path trom the Ensure that there Is at least one transition to the indicated state  nae initial state of the state machine from a non floating state    RC5  A rule case can not have more than one abstract action  1 e  Illegal   Ensure that the rule case has one and only one abstract action    a Disabled  Blocked or NoOp or none at all   RC58 Each rule case which has actions different from Illegal  Disabled  and jEnsure that the rule case has a target state  or it has Illegal    ane Blocked must have a target state Disabled  or Blocked as action   RC59 Each rule case which has Illegal  Disabled or Blocked as action must  Ensure that the rule case has no target state or does not have  not have a target state Illegal  Disabled  or Bl
45.  this to a higher value causes the  M odelBuilder to make less frequent re connect attempts     Note   The M odelBuilder only notices that its connection is lost when it makes a call  Therefore  the Heartbeat value directly affects its    ability to see if it still has a connection  Setting the Heartbeat to a very high value may cause the M odelBuilder to fail to notice  an interrupted connection until you start to verify or generate code        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 serverconnection advancedsettings  03 12 2012 09 36 05     ASD  Suite User Manual          Product Technology Resources Training Purchase Company       Command line Tools    The ASD Suite provides for a number of tools you can run from the command line     Overview     o   asdc exe  the ASD Suite Commandline Cient  Use this for generating code or stubs  downloading the ASD Runtime  or for checking  which code generators are available to you        ModelConverter exe  the ASD M odelConverter  This converts ASD model files made with earlier major versions of the ASD Suite to  the current version     co SetModelProperties exe  the ASD SetM odelProperties tool  It can set all kinds of properties  like code generator version and  language  on multiple models at once     a ModelCompare exe  the ASD Suite Commandline Compare Tool  This is the command line version of the ASD Suite M odelCompare  It  can detect s
46.  thread will be active during the execution of a system of SingleThreaded components  See the   ASD Runtime Guide  for details about the runtime execution semantics for the two execution models     The following rules apply to a SingleThreaded ASD component     1  The component type of the design model which implements the interface of your component  see  Specifying the component type   is  Multiple     Note  Specify M ultiple as component type when you generate stub code for your component  see  Generating stub code from an ASD  interface model       2  No broadcasting notification interfaces are defined in your component   3  All available interfaces are specified as used interfaces when you specify your component as used service in a design model     4  A Standard component can be specified as used component only if it has no notification interfaces and no state change occurs  spontaneously     5  No yoking thresholds are specified for the defined notification events   6  The ASD Timer is not a used service in the design model in which you use your component   7  If a tree of components uses the SingleThreaded execution model  then the entire tree can only be accessed by one thread at a time     To specify the desired execution model you have to open the Properties dialog for your interface model by selecting the model in  the  Model Explorer   right click and select the  Properties  item in the context menu     The following dialog is shown     ES Propertii of Warm Syste
47.  version of the generator to be used  Possible values of this information field   Empty  when no model is opened   LANGUAGE  VERSION   when an ASD model is opened but neither the target language nor the code generator version are specified     ooo 0     lt target_language gt   lt generator_version gt    For example  C  8 4 0   when target_language is  C  and the generator_version is  8 4 0    Note  Code generation language and version properties are captured in the model properties section and are stored in the ASD model  file  This allows you to specify the desired target language and code generator version for each model when information is missing or  not according to your expectations    See  Specifying target language and code generator version  for details about the selection and specification of the target language  and code generator version     o   The session status  Authorized  Logging in  Logging out  or Not Authorized  This detemines if you are allowed to use the M odelBuilder   See  Session Management  for details        The connection status  Connected  Disconnected  or Reconnecting  This determines whether you can generate code  verify models or  download the ASD Runtime   See  Session Management  for details        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 user_interface status_bar  03 12 2012 09 31 58     ASD  Suite User Manual       Product Technology Resources Traini
48.  verum com documentation user_manu   x 8 5 0 modelling behaviour state_variable_updates  03 12 2012 09 33 15     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       verum    State Invariants       The M odelBuilder enables specification of preconditions which must hold when the modelled component enters in a specified  state  These preconditions are called state invariants  The state invariants are used as a global safe guard for all the behaviour    which can happen in a state of a component  i e  all behaviour in the respective state is possible only if the specified state  invariant holds     The M odelBuilder ensures that in each state of an SBS there is a rule case which defines this state invariant  It will be the first rule    case of the state and it has  Invariant  as trigger  This rule case can be hidden or made visible using the  Filters  gt Hide Invariants   menu item     You have to specify the precondition  i e  the state invariant  in the  Guard  column of the respective rule case  During model  verification if the state invariant does not hold a state invariant violation will be raised     Note  There shall be only one rule case with  Invariant  as trigger in each state     cs Staes Stabe arises State Diagram    Almmbothictvated n Haron    Interface Event  guard  Actions State Variaibbe Updates Target State  1 AlmmNotActveted  initial state     Leura nt riot Alarni l  3 Am Set    Sernors Bensorkctryates Alarming  12 AlmAct
49.  we get to the situation at construction time  when the application is started  the GUI constructs an  instance of the Alarm component  which in turn creates an instance of the WindowSensor component     Every generated component has a static method called GetInstance    or  in some languages  _getInstance    or getInstance      Every hand written used component must have one too  This GetInstance   method is used to create instances of the component   So  at run time  the GUI actually calls AlarmSystemComponent  GetInstance   to get a new instance  which in turn calls   W indowSensorComponent  Getinstance       For more details see information about component instantiation integration in CH  C  Java  C  or TinyC    Instance construction   alternatives  There are various ways to influence how component instances are created     Firstly  you can pass parameters to a component instance at construction time  Within an ASD component  you can pass these  construction parameters along to used components  Examples are in  Passing parameters      Second  for ASD components  you can set the Component Type to  Singleton  or  Multiple   see  Specifying the component type     for details   Setting the Component Type to  Singleton  has the effect that only one instance is ever created  Setting the Component  Type to  Multiple  causes a new instance to be created for every use     But what if you want two ASD components to share an instance  without using a Singleton component  Or what if 
50. 12 09 33 24     ASD  Suite User Manual    verum             Product Technology Resources Training Purchase Company       Inserting or replacing rule cases    When you want to insert one or more filled in rule cases or you want to replace a set of rule cases you have to first select the  to   be copied  rule cases and press Ctrl C  Alternatively you can select the  Copy Rule Case s   item in the context menu obtained  from  one of  the selected rule case number  Depending on what you want to do next you have to press Ctrl V after selecting cells   rule cases or a state line     When you want to insert the rule cases   oa Above the rule cases having the same trigger s  as the to be copied rulecases  Select a cell in a rule case with the same trigger as   one of  the to be copied rule case s  and press Ctrl Alt V or select the  Insert Rule Case s  Above  menu item in the context menu      Below the rule cases having the same trigger s  as the to be copied rulecases  Select a cell in a rule case with the same trigger as  one  of  the to be copied rule case s  and press Ctrl V or select the  Insert Rule Case s  Below  menu item in the context menu     When you want to replace one or more rule cases with the same trigger  but not all of them  Select the respective rule cases  and press Ctrl V  Only the selected rule case s  will be replaced     When you want to replace all rule cases having the same triggers as the triggers in the to be copied set of rule cases  Select the  Fe line
51. 12 2012 09 31 10     ASD  Suite User Manual       Product Technology _ Resources Training Purchase Company       verum    Notification interfaces          Notification interfaces exist to provide notifications to Clients   Notification interfaces are implemented by the Client        Circular control dependencies that occur when independent ASD components are composed into a system may cause deadlocks   To prevent these  notifications are decoupled via a queue and a separate thread called the DPC Server Thread     QO    o   An action which maps onto a notification interface is always non blocking        Every ASD component which uses a service with at least one notification interface will automatically include a DPC Server Thread  and the decoupled calling mechanism        All notifications are  void  events  They can have parameters  if required        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manua    8 5 0 concepts operational_ semantics notifications  03 12 2012 09 31 13     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       verum    ASD Timers and the Timer Cancel Guarantee          ASD components can make use of the ASD Timer service by instantiating as many Timers as they need  To instantiate a Timer you    have to specify the ITimer model as a used service in the design model of the ASD component and you have to specify the  desired instances of the respective se
52. 2 10     ASD  Suite User Manual    o  f  formfeed    Regular Expressions    The matches operator takes a string containing a Perl style regular expression  The precise syntax can be found on this external web    page  A short overview is given below  Note that the regular expression you enter may still have characters that need to be  escaped according to the rules in the previous paragraph     In Perl regular expressions  all characters match themselves except for the following special characters     SLOANE  IAS  The     character matches any single character  The    character matches the start of a line  and the     characters matches the end of a  line      Sub  expressions can be repeated  e g   a   matches any sequence of one or more  a  characters  Below is a list of repeat  operators  Note that all of these are  greedy    add a question mark at the end to make them non greedy  e g       is the non   greedy version of             matches the preceding atom zero or more times      matches the preceding atom one or more times       matches the preceding atom zero or one time     n  matches the preceding atom n times    Oo oOo 0 0 0     n     matches the preceding atom n or more times  o     n m  matches the preceding atom between n and m times inclusive    Alternation is specified using      e g     abc  deft matches either    abc  or  def     Character sets are defined between square brackets  e g      abc   matches    a      b   or  c   Sets can be negated by adding a  
53. ASD  Suite User Manual       Product Technology Resources Training Purchase Company       ASD Suite User M anual    ASD Suite Release 4 v8 5 0       TABLE OF CONTENTS      The ASD Suite software design platform    Installation Prerequisities    Upgrading ASD models      ASD Concepts     Components     Models     Sequence Based Specifications     The ASD Triangle and Correctness     Operational semantics  a Operational semantics of rule cases     Client requests     Notification interfaces     ASD Timers and the Timer Cancel Guarantee    State types in a design model     Used Services      The User Interface     Tabs  Panes and  dockable  Windows     Panes and  dockable  windows  o Meaning of colours in the SBS tab     The context field above each SBS    o   o   o View   o Filters      Session   oa Verification  a Code Generation     Tools   Status bar   State Diagram   M odel Navigator  SBS Filters  Un saveable Data      Modelling     Modelling     Creating an Interface M odel     Creating an Interface M odel     Interfaces and Events  ao Yoking Notification Events     Creating a Design M odel     Creating a Design M odel     Primary References     Sub Machines     State Variables for Used Service References  o Singleton Notification Events     Behaviour in an ASD M odel  Behaviour in an ASD M odel  State Variables  State Information  Actions  Target State  Comments  Tags  Guards  State Variable Updates  Invariants  Non deterministic Behaviour  Adding or deleting a rule case 
54. ET    4 r Pega    The duplicated state       2012 Verum Software Technologies B V  All rights reserved          http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling refactoring duplicate  03 12 2012 09 34 17     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       verum    Moving Events to a Different Interface       You may want to re categorize your events into different interfaces  However  deleting an event from one interface and adding it to  another interface causes all the related rule cases in the SBS to be deleted  To solve this  move the events between the interfaces of  a service instead    o Within the interface model  select one or more events      Right click  and choose  M ove Event s  to Interface           You now get a dialog where you can select the target interface  The events will be moved and all rule cases preserved     M oving an event in an interface model causes mismatches with any design model that refers to it  There are two solutions  one is  to perform the same move action in the design model  The other is to check the design model for conflicts and use the conflict  wizard to do the move  Note however that since the design model refers to events by name  the conflict wizard cannot always tell  whether you moved the event or deleted and added it  You are presented with both solutions  be careful to select the one you  need        2012 Verum Software Technologies B V  All rights reserv
55. I EIT I II EPI TIT PII TAT IT TPT Te          Original authors  comments    RA     This is version 2002 Feb 16 of the Info ZIP copyright and license  The     definitive version of this document should be available at      ftp   ftp info zip org pub infozip license html indefinitely            Copyright  c  1990 2002 Info ZIP  All rights reserved    77      For the purposes of this copyright and license   Info ZIP  is defined as     the following set of individuals           Mark Adler  John Bush  Karl Davis  Harald Denker  Jean Michel Dubois                                   Jean loup Gailly  Hunter Goatley  Ian Gorman  Chris Herborth  Dirk Haase      Greg Hartwig  Robert Heath  Jonathan Hudson  Paul Kienitz       David Kirschbaum  Johnny Lee  Onno van der Linden  Igor Mandrichenko       Steve P  Miller  Sergio Monesi  Keith Owens  George Petrov  Greg Roelofs      Kai Uwe Rommel  Steve Salisbury  Dave Smith  Christian Spieler       Antoine Verheijen  Paul von Behren  Rich Wales  Mike White   Pf      This software is provided  as is   without warranty of any kind  express      or implied  In no event shall Info ZIP or its contributors be held liable       for any direct  indirect  incidental  special or consequential damages     arising out of the use of or inability to use this software           Permission is granted to anyone to use this software for any purpose      including commercial applications  and to alter it and redistribute it     freely  subject to the following 
56. Software Technologies B V  All rights reserved       http   community  verum com documentation user_   f aspx 8 5 0 modelling create_dm usr_behaviour  2 of 2   03 12 2012 09 32 42     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Singleton Notification Events       The ASD Suite enables you to specify that at any given moment in time a specific notification event from a used service instance  should occur only once in the queue of your component  This is done by flagging the respective event as a Singleton     Note       Flagging an event as singleton does not mean that the respective event can not occur anymore until taken out of the queue  It  only means that when the respective event occurs and there is already one in the queue  the latest occurrence will be  considered irrelevant and will be discarded        Good candidates for singleton events are  for example  notifications from a driver reporting new data or progress notifications     In case you want to flag an event on a used service notification interface as Singleton you should open a design model in which the  respective notification interface is declared as used notification interface and you should view its events in the  Used Notification  Interfaces  tab     The following figure shows how to flag the ISensor_CB Deactivated event as a Singleton     FE  AlarmSystem Implemented Service   Used Services  Primary References Secondary References  2  Sensor 2 Mimer    Relati
57. Timer    Reference Name finstances  Service Used interfaces Constuction    Instances in Venfication Comments         z ensor APE     1 WindowSensorll  Eensor   or APE Windia Sensor  Siero _  ensor_CB     i 2 n ISensor_ AFI  i     2 Doorsensor l  ensor ensor CB Doorsensor   3 Saren i  Biren Tiren API Siren   d Temes   Tomer os Mimer    Different components with the same service    http   community  verum com documentation user_    modelling create_dm specify_primary_reference  3 of 3   03 12 2012 09 32 35     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Sub Machines       The ASD Suite supports hierarchical machines for design models  This is restricted to one level of sub machines  In other words  a  sub machine can not have a Super state     You can add a sub machine in one of the following ways        Right click on the Sub Machines node in the  M odel Explorer      4 Models 5   4 AlarmSystem  4 Main Machine  4     AlarmSystem   gt  States  State Variables  Sub Machines     gt  Used Services   gt  Tags  IAlarmSystem  Read only   Sensor  Read only   d Siren  Read only   fa  ITimer  Read only        Menu item to create a sub machine       Click on Push the    a  button in the M odel Editor     ES AlarmSystern          Used Services       SBS States State variables    The button to add a sub machine     Press the  Ctrl T  hotkey in the M odel Editor of a design model    The new sub machine will be created after you specify a name  A
58. WW    RC48 At most 128 instances can be put into a primary reference Lower the Instance count that Is specified in the square  os sanesa ept no apran OAS __ brackets behind the reference name   RC49 Each used service reference with unspecified size  e g  vi    must have      Fill in the  instances in Verification  column for the   P  an instance count specified in the   nstances in Verification  column __findicated used service reference   RC50 e number of instances for a primary reference used In verification Ensure that the number in the   nstances in Verification   Should be at least 1 and should not exceed the specified size of the column is greater than 1 and less than or equal the size of  respective primary reference the service reference   RC133 e primary reference Is not used as a construction argument to Use the primary reference as a construction argument to  another primary reference and it has no used interfaces another primary reference  or specify used interfaces for it     or remove the primary reference    RC134 Timer is not allowed as service type for a construction parameter eck your code generator settings and remove ITimer as  r A E S a     service type of the indicated construction parameter   e argument to a use construction expression must be a construction  E that the indicated argument complies with the   parameter of a service   type declared in the code generator settings  It fsyntactical rules of arguments to a use construction    cannot be a prim
59. ameters in the declaration of the event  the list of parameters as in the declaration for the event or  or return event used as response return event   RC 8 e number of arguments in a trigger must be the same as the Ensure that the list of arguments used in the trigger matches the  number of parameters in the declaration of the event or reply list of parameters as in the declaration for the event or reply  event used as trigger event    RC7 9 e Event column of the indicated rule case contains a trigger that  Change one of the argument names  has identical arguments to two or more  in  or  inout  parameters   his would make the value of the argument undetermined     argument that is also used for another argument  This is not  allowed since it is not clear which value is actually written to the  argument after the action is executed due to reference sharing    ou tried to set an  in  parameter of a trigger as an argument to an JChange the argument   out  or  inout  parameter of an action  As  in  parameters can not  be written to  this is not possible     ou are using an argument to an  in  o parameter of an Have the argument initialized by retrieving it from a component  action for the first time  without it having been initialized  variable  using it as argument to an  in  a A of a trigger  or  using it as argument to an  out  parameter of an action  See also   Parameter Usage     RC83 e storage specifier attached to an argument In the trigger does Change storage specifier t
60. arameters can be passed on further to hand written components  Service parameters can be used to pass  used services to a component  this is known as dependency injection      The construction parameters are defined in the  Construction parameters  field of the code generation settings     im      FA Properties of AlarmSystem a lE   General  Verification  b Code Generation    Code Generator     Language    x    Version          Factory Method   Getinstance returns a        Interface  Consthucton parameters           Component  deprecated     Eeg       Settings for code generation in an ASD design model    This is the syntax for construction parameter definition     1  For parameters of user defined types    in name std  string   Note You can use any type you like that the programming language allows  For most languages  you will need to include  import  the type using the  Include  import  declaration   field of the code generator settings  The following figure shows the dialog  window which facilitates specification of target language specific code generator settings       EB Properties of AlarmSystern    General  Verification  4 Code Generation w  Generate debug info        C     Output paths  Ce  Java Path source files    code ooolerc generated   Browse          Trace statements    Header and footer information  Inch file    Browse         Indudejimport  implementation     Indude impart  dedaration        2  For a single injected service    in siren  service  Siren    3  F
61. armSystem design model  Go to the M odel Properties  click Code Generation   and make sure the  Interface  radio button is checked   Factory Method   Getinstance returns a       Interface  Construction parameters    in someSensor service Sensor     Component  deprecated     Construction parameter for a used service    This time  we use the special syntax  service modelname   for the parameter type  The model name must match the interface  model name of the primary reference   in this case   Sensor   i e  NOT the file name    see also the  Service  field in the next  figure  Now  the AlarmSystem component requires a parameter at construction time  This parameter must be filled in with an  instance of a component that implements the Sensor interface  The exact effect of this in your code is described in component  instantiation integration in C  C  Java  C  or TinyC     What we still have to do  is make use of this parameter for the WindowSensor primary reference     1E  MlarmSystem     Implemented Service   UsedServices   Tags    Primary References Secondary References    2  Sensor    2  Siren  2 Timer    Reference Namel instances  Service Used Interfaces Construction  Instances in Verification  L WindowSensor l  Berear Isensor APE use SomeSensor  sensor_CB  2 Siren l  Biren  Siren_APT Siren  3 Timer 1  TTirner se Timer    Using a construction parameter for a used instance    We have used the special syntax  use parametername  to denote that instead of constructing a new insta
62. ary reference  a literal  or a construction parameter of  expression  a user defined type                JI  eI  OF    RC136 e primary reference refers to a construction parameter of the wrong  Ensure that the construction parameter has the interface  type model name of a primary reference as type  RC13  e used instances refered by the specified construction arguments Remove the cyclic dependency  depend on each other and create a cyclic construction dependency e    RC139 e size of the primary reference does not match the size of the Ensure that the size of the primary reference does matc  Specified construction parameter the size of the specified construction parameter  or vice  versa    RC140 A primary reference to ITimer cannot be passed as construction  argument argument  RC141 e secondary reference contains a primary reference without usea pecify used interface for the primary reference  specify a  interfaces different primary reference  or remove the secondary  reference  y p ASD E    RCI54 e use of Secondary References will be impossib  version 9 0 0  Therefore we advise you to refactor your model to  eliminate them  You can often use construction parameters for a similar  effect   ou have two primary references for t   different set of used interfaces  This will not be supported as of ASD   Suite version 9 0 0  so we advise you to restructure your model to  eliminate the need for this    e    configurator    concept  where hand written code Use a construction paramete
63. at   The language specific settings need the   1anguage option  This option also sets the code generator language setting  Therefore   if you want to set a property for multiple languages  be sure to reset the code generator language to its intended value        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_man   _ pdf aspx 8 5 0 command_prompt setmodelproperties  03 12 2012 09 36 16     ASD  Suite User Manual       Product Technology _ Resources Training Purchase Company       verum    ASD Suite Commandline Compare Tool       The ASD Suite Commandline Compare tool  M odelCompare exe  indicates whether there are differences between two given ASD  model files  It accepts two file names and returns an exit code to indicate differences    o  Exit code 0  no differences found   ao Exit code 1  differences found      Exit code negative  error    Just like in the GUI Compare Tool  you can control which differences are reported  metadata  comments  or semantic differences    The   relevance flag controls this  see Model Compare ex help for details        Example   ModelCompare  filel dm   file2 dm        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 command_prompt compare  03 12 2012 09 36 19     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       XZip license    DTA EP IET ELIA TALI TT AE ETI TA
64. at the same time while data integrity within this foreign component must be  guaranteed     e The border of the  Construction  stub   and  Construction  used   fields turns red when the syntax is not correct     To prevent that already existing handwritten files are overwritten accidentally  the following naming conventions are used for  the various target languages and for the various stub code type for which skeleton code can be generated     a For Client Stub code       CH   lt specified output_path gt   lt Specified_client_name gt h_tmpl    lt specified output_path gt   lt specified_client_name gt  cpp_tmpl   o C    lt specified output_path gt   lt specified_client_name gt  cs tmp       Cand TinyC   lt pecified_output_path gt  lt specified_client_name gt  h_tmpl    lt specified output _path gt   lt specified_client_name gt  c_tmpl      Java   lt specified_output_path gt    lt directory_ structure _determined_by specified _namespace gt    lt specified_client_name gt java_tmpl     where  lt Specified_output_path gt is the value filled in the  Output path  field and  lt specified_client_name gt is the name of the   component as filled in the  Construction  stub   field     oa For Used Component Stub code       C    lt specified output_path gt   lt specified component_name gt Component h_tmpl    lt specified output_path gt   lt specified component_name gt Component cpp_tmpl      C    lt pecified output_path gt   lt specified_component_name gt Component cs tmp       Cand TinyC
65. ated to usage and declaration of interfaces when building ASD models     Error Code ___jExplanation    RC24 Each service should nave at least one application interface C y at least one application interface in the interface model o  he indicated service    Each interface must have at least one event Specify at least one event for the respective interface        Each interface which has at least one valued event  must have at  Specify at least one reply event for the respective interface or  least one reply event make all events void    RC2  Each transfer event must be of type    valued    Ensure that the specified transfer event is of type valued    RC31 Broadcasting interfaces are not allowed in the SingleThreaded urn off the Broadcast flag for the specified interface  execution model    ere IS no value In havind a yoking value greater than the queue ange either the queue size or the yoking threshold  Note that  size of the design model he yoking treshold is present in the interface model  not in the  design model    RC33 oking Is only usable in the Standard execution model Remove the yoking threshold for the specified event or use the  Standard execution model instead of the SingleThreaded one  RCSI ere are no events specified as Observed for the specified Ensure that there is at least one event of the mentioned  broadcasting interface broadcasting interface specified as observed  or clear the    broadcasting flag for the mentioned interface  It is not allowed to flag ITime
66. ates you need to define state variables        For each state you are defining you can specify additional  design  information     The M odelBuilder ensures that the following events are present in each state specified in the SBS tab of the main machine of an  interface model as triggers        All application call events  and      All modelling events  The M odelBuilder ensures that the following events are present in each state specified in the SBS tab of the main machine of the  design model as triggers       All implemented service application call events       All used service notification events for all the used service notification interfaces that are observed       All used service application reply events for all the used services application interfaces specified as used interfaces       All transfer reply events for all transfer interfaces defined in the design model   The M odelBuilder ensures that the following events are present in each state specified in the SBS tab of a sub machine of the  design model as triggers       All implemented service application call events       All used service notification events for all the used service notification interfaces that are observed       All used service application reply events for all the used services application interfaces specified as used interfaces       All transfer call events for the transfer interface of the sub machine    Note        See  Specifying used services  for details about used services        See
67. bla een Cheech ctr Ahmad lsm checked pirreprieliy   Go lb Chiika Ha BeenChected    falie Bm Cheek faikd HaibemCheebedeuut Abrabam Fabie whik checking the alisi  I lim Check   Hadleenchectessctue Maga   Dhegal   abem siende checked  15 Eki Bloch Tepe  Ce ub bed   idi lhm Alem Raat Di cabh    The SBS tab after state variable update specification    To specify a state variable update  select the field in the  State Variable Updates  column  press F2 or double click the left  mouse button and enter the state variable update expression  A state variable update expression is an assignment expression  built using a state variable on the left hand side of the assignment operator    and on the right hand side an expression built  using state variables  constants  the arithmetic operators     and      the comparison operators               lt      gt      lt  and or      gt    and the logical operators   and    or  and or  not   Additionally  operators for used service reference state variables can be  used to construct expressions  see  State Variables for Used Service References      Note  M ultiple assignments within a state variable update expression occur simultaneously  The various assignments must be    separated by      For example  if the current value of a   and you enter the state variable update expression  a 1  b a   then  the effect of executing the state variable update is  a 1 and b5        2012 Verum Software Technologies B V  All rights reserved       http   community
68. cKercor Ml DetectedMovemert ctherene Aiglip Alemci Hilgers ad resgy tr  35 Pusri kyt bynchroncas returns risie   a Leck aval koa Diagrtl quik t I lan fccepbed Alama  EL Chek yyl Comes Ligtlouet as J Ser penser enia Degi cami a D Low dipi eree  u Chek Eygl Wirra DU garm uled    7 Entree tating states there so path fram the iritistate so tioned  SO Als Clear lan ideny Cigi smi   N Alsemi Fent the eret  SL Alem Dipig Wem sled Enin ama Dipiis ae mo m  w amorphe P Detertedhicsemert rect dilantin Fren Barer  Tumin    Aisin   ne Enerya Senor tigers   emip Alyn burned iri  SS  Gmer bama H Detectedhicvernert harena Help En  ryEerce Alarm dra   tr    1 k    Colours used in the SBS tab    The blue  grey or orange rows indicate a state  The rows under a state row list all the possible triggers to the component and the  corresponding actions when the triggers occur in that state  The orange row in the previous figure indicates a  floating  state   These are states that are not reachable from the initial state  In the example above  the EntryError state is not present anywhere  in the  Target State  column  and thus is not reachable from the initial state     Blue states are Normal States or the Initial State  Grey states are either Synchronous Return States or Super States  Orange states  are either floating  there are no transitions to it  or ambiguous  there are both valued and non valued transitions to it      The green cells in the  Target State  column indicate that the respective ru
69. ce violates    lig rules for names used in ASD he following grammar defines the validity of a name used in ASD modelling     RCLLO eae ee conde rules f    ValidName  Letter  _   Letter   Digit   RC119 e name of the argument in the trigger violates   o Letter  any character from  a  to  z  or from  A  to  Z   the rules for names used in ASD modelling o Digit  any number between and including 0 and 9  RC120 e name of the argument in the action violates  the rules for names used in ASD modelling    RC124 e component name in the definition of the  specified primary reference violates the rules for  names used in ASD modelling    RC15 e name of the specified namespace violates Ensure that the name of the namespace consists of names separated by dots  and  the rules for specifying names for namespaces fevery name consists of an alpha character or an underscore  followed by  na alphanumericals and underscores  e name of an ASD model cannot be  ITimer  fEnsure that the model name Is not    ITimer   mann names should not be longer than 200 Ensure that the model name is less than 200 characters  characters    RC125 ere Is an empty Construction field in the Fill in the Construction field  or delete the primary reference  specified primary reference       I   pecity a name for the tag  I  I    urrently a construction parameter can have Ensure that the direction of the construction parameter is  in  only  in  as direction    RC129 e specified construction argument Is not Ensure that the c
70. claration  03 12 2012 09 33 32     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Parameter Usage       Parameters that you declared in an interface model  or on a sub machine transfer interface   can be used in a design model     As ASD is transparent to data  the data is only used in the Event and the Actions columns of the SBS  This allows passing the data  from one component to the other  until eventually it ends up in foreign  hand written  components where it can be actually used   In other words  you cannot use parameters to make choices in guards and state updates  If you want to make a choice based on   a parameter value  you can write a foreign component with a function that translates the parameter value into a Reply Event     Passing parameter values within a rule case    To pass a parameter value between a trigger and an action  you use a rule case local variable  You do this by simply specifying the  same name both for the trigger argument and the action argument  Rule case local variables do not need to be declared     For example              iue TG   usedservnes   tage      Stat       Ttec  Event uwd Aian  abe Varioble Uges    Target Hate   Comments Trg  1 Slat  lt  gt  ee E o l i  7 Used efiet Ued Wieden tbo  p li    3 User Lan tle Ther Void Alapsty    Dadaan Dred Wet nin   er haenkt i  4 dls Merkeak  Luer Voigt  Use det ener ed Unecewent ea E vy  S Kiper Unerteentiel Udaeta nce   ETTAN  GO UsedReterncellsedch WbedC
71. click the blue plus sign to create a new interface        Inthe dialog that appears  type a name and click OK  The name must begin with an underscore or letter and continue with  letters  underscores or numbers       Click OK  A new tab appears for the modelling interface     http   community  verum com documentation user_m   spx 8 5 0 modelling create_im interfaces_events  1 of 2   03 12 2012 09 32 24     ASD  Suite User Manual    M odelling Events  Modelling events are declared just by typing a name in the Event column     Next to the Event column  there is a column called  Abstraction Type   Each modelling event is either Inevitable or it is Optional  The  only difference between the two is how the event is handled by the model verification  For inevitable modelling events  the  verification only checks the cases where the event does occur  i e  it assumes that the event will eventually occur if we wait long  enough  For optional modelling events  the model verification also checks the cases where the event never happens  which could be  a cause of deadlock         2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_m   spx 8 5 0 modelling create_im interfaces_events  2 of 2   03 12 2012 09 32 24     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Yoking Notification Events       The ASD Suite enables you to specify the maximum number of occurrences at any given time in the
72. continue to re   connect  but you are presented with the Login dialog until a connection can be re established     Time out Period    There is also a  Time out Period  that causes the M odelBuilder to automatically log out after a period of inactivity  This is useful for  users that have a pay per use license  Again this is a setting that Verum sets on a per customer basis  Note that your time out  period could be set to    infinite     When the ASD  Suite M odelBuilder is logged out in this way  the Login dialog is presented and you  can re connect directly by clicking the OK button or by pressing  lt Enter gt   Note that the server connection is kept  to facilitate quickly  logging in again  You can see this in the status bar     Authorized vs  Connected    In the status bar  you can see two statuses related to your session  one usually says  Authorized  and the other usually says   Connected   They are two separate statuses  because you can be authorized to use the M odelBuilder without being connected  e   g  in the minute after you start the M odelBuilder  or during the Grace Period   and also you can be logged out while still having a  server connection  e g  after the Time out Period expires   In other words  the left field is your authorization status  Authorized   Logging in  Logging out Logged out   and the right field is the connection status  Connecting  Connected Disconnecting   Disconnected Reconnecting      To see more information about the current status  doub
73. ct  amp  Cryptsoft    OpenSSL License and Original SSLeay License   o   Arabica   XML Parser Library    Arabica XML and HTML Processing Toolkit License   oa The Expat XML Parser    Expat License      The libexecstream library    The libexecstream library license      Apache Xerces C    XML Parser Library    Apache License  Version 2 0      Graphviz   Graph Visualization Software    The Eclipse Public License   v 1 0   o    XZip    XZip original author comments        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 prerequisites compilers 3rdparty  03 12 2012 09 30 48     ASD  Suite User Manual       Product Technology Resources Training Purchase Company    Upgrading ASD models       The ASD Suite provides the possibility to automatically upgrade ASD models which were built using a previous major release of the  ASD Suite     Note  The major release is indicated as the first number out of the three indicating the version of the released ASD  Suite   Tip  Use the  File  gt Upgrade M odels     menu item if you want to upgrade all the models located in a folder and its sub folders     Tip  If you need to set a new code generator version for multiple models  you can use the ASD SetM odelProperties command line  tool     The following figure shows the dialog you see when you open a model of an older major version   fa Open older model options    The file is in an old model file format    You can ch
74. d  45 Tppeted Gimin APLAciivabe  Sensor INT Declected gt    2  Wanter All Deactreate Gero APL vaid agh Oeacteemting Dearie wean    Yoked modelling event    http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling create_im yoking  1 of 2   03 12 2012 09 32 27     ASD  Suite User Manual       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling create_im yoking  2 of 2   03 12 2012 09 32 27     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Creating a Design Model    Note  In order to create a design model  you must already have created the interface model for the implemented service  See   Creating an interface model  for guidelines on creating an interface model        These are the steps to create a new design model   1  Open the  New Model  dialog  This can be done by       Selecting the  File  gt New  menu item  or by     Clicking  New  in the Toolbar  or by     Selecting the  Create a new model     item on the Start Page     2  Select the design model icon in the left pane     3  Specify a name for the service under  M odel name      Note      Ifthe field was empty  the specified name designates the file name of the design model and the name of the component  You    should not use spaces in this name and no special characters which would make the file unrecognisable by the operating system      If there is already a fi
75. d Services     a Fill in the data in the  New Primary Reference  dialog window  The following figure shows an empty  New Primary Reference   dialog window     http   community  verum com documentation user_    modelling create_dm specify_primary_reference  1 of 3   03 12 2012 09 32 35     ASD  Suite User Manual           Select loaded Service       Select Service from the file system  path is relative to design model path                         The  New Primary Reference  dialog window    Note  The currently loaded interface models  with the exception of the one for the implemented service  are shown in the list of  loaded services  If you want to select a service which is not already loaded  you have to set the  Select Service from the file  system  radio button and select the interface model of the respective service after pressing the Browse button  In this case when  the primary reference is created the service dependencies are also created   updated        Repeat the previous steps for all required service instances     The following figure shows the Primary References defined for the Alarm system      Model Explorer  4 Models 5   4 Main Machine  4 HE  AlarmSystem   gt  States  State Variables  Sub Machines  b Implemented Service  4 Used Services  4  gt F  Sensor  4 Primary References  WindowSensor   gt  Interfaces  a  gt   Siren  4 Primary References  Siren   gt  Interfaces  d     Timer  4 Primary References  Timer                    gt  Interfaces               AlarmS
76. d as broadcasting  For example  you have to specify Subscribe sensor  SensorCB  if the used  service instance name is  sensor  and the broadcasting notification interface is   SensorCB      o  You are able to subscribe  respectively unsubscribe at any moment by using the two actions Subscribe and  respectively  Unsubscribe  The Unsubscribed status is reported by an  asd Unsubscribed  event  Therefore  you will have to specify behaviour  for the respective event in all places where it can occur  The unsubscribed status means that the unsubscribe request is processed    and that there will be no more notification events on the unsubscribed interface in the queue after the asd_Unsubscribed event   See following figures for an example       Subscribe to  WindowSensor  Sensor_CB  instance of the ISensor_CB broadcasting interface defined in the WindowSensor used  service     IB arrine   eset carviewe   Ta  5   oui   ek wrliss      Withee  Sere FSi  Subscibe A e  eee E a AP  oe    betace Eves Geaad Actes Trae Viste pimes Toja Ste Carereeay Tay  gt    Hottethrirdi  lt  gt  E  Mdee Bette SP Ler  Huirama Serie Hir  r    baM cesen Rr Bde Actewtad L Acra ares        Milera pesar AR Taie hl  Winia imic ecer C   Duinrand  Wrijietoni Dona CE aad Urga baniel  Timer Tim mei Timesi Thrul    kzal  alura res ecteated    M Aine        Data in the SBS tab showing the use of the Subscribe action       Unsubscribe from the  WindowSensor ISensor_CB  instance of the ISensor_CB broadcasting interface d
77. d by  the DPC        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manu   f aspx 8 5 0 concepts operational_ semantics timers  03 12 2012 09 31 16     ASD  Suite User Manual    verum             Product Technology Resources Training Purchase Company       State types in a design model    Within a design model four types of state are distinguished     z    s     Initial state in the main machine  This is the state in the main machine where the component starts after construction  The inital state  is a  Normal state   and any Normal State can be made Initial State     Super state  These are states in the main machine in which a sub machine is active  In these Super states  all triggers must have   Blocked  as associated action except for the transfer reply events that correspond to the active sub machine     Initial state in a sub machine  This is the state in which the sub machine is not active  i e  the main machine is not in the corresponding  Super state   In the Initial states of a sub machine  all triggers must have  Blocked  as associated action except for the transfer call  events that correspond to this sub machine     Synchronous return state  These are states following a valued action  where the design is waiting for a valued reply from the called  used service  note that these synchronous return states may exist in the main machine as well as in a sub machine   In these  Synchronous return states  tri
78. d it is selected  and the  Follow custom filter  button is selected  the filtered out data is not shown in the  state diagram     TE   Merge transitions   Enable  disable the merge of duplicate transitions when  Show triggers  and  Show actions  are disabled     Tr   Show triggers   Enable  disable showing of triggers in the state diagram       Ac   Show actions   Enable  disable showing of actions in the state diagram        a    Show arguments   Enable  disable showing of arguments in the state diagram        s    Show guards   Enable  disable showing of guards and state variable updates in the state diagram       Jb   Ordering top to bottom   Change the orientation of the state diagram to  top to bottom        o gt    Ordering left to right   Change the orientation of the state diagram to  left to right        F     Set fonts   Change the font settings for the data displayed in the state diagram       O   Refresh state diagram   Refresh the data displayed in a state diagram after a change in the SBS of the associated machine          http   community  verum com documentation user_manual_pdf aspx 8 5 0 user_interface state_diagram  1 of 2   03 12 2012 09 32 02     ASD  Suite User Manual       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 user_interface state_diagram  2 of 2   03 12 2012 09 32 02     ASD  Suite User Manual          Product Technology Resources Training Purchase Company    
79. d state Ensure that you enter a syntactically correct initial value  This the  variable is syntactically incorrect ype of variable      Boolean  true or false        Integer  a number       Used Service Reference  one or more used service references   Note  When you want a sequence of used service references  i e  a  collection of used service references  as initial value  use the      operator to concatenate the respective used service references     Each state variable must have an Initial value within pecity an initial value within the specified range  ere is more than one rule case without guara s  for JEnsure that there is no more than one rule case without guards for the  the specified trigger in the specified state Specified trigger in the specified state  g p      with guard  This also occurs if one rule case has   otherwise  as guard and there is at least one rule  case of that rule that has no guards     Design models need to be deterministic and therefore fEnsure that for a rule otherwise Is specified only once  at most one rule case per rule can have the   otherwise  keyword as guard    At least one rule case per rule has to not have Ensure that not all rule cases having the indicated trigger have    otherwise    as   otherwise  as guard    e guard Is syntactically incorrect nsure that the specified guard conforms to the specified rules  e state variable update Is syntactically incorrect nsure that the specified state variable update conforms to the specified rule
80. dated 2012 03 09T17 33 58  PE PECATEGT EEE ET EPPA ET PEPE T EP ETI TLE CTI EET PEP Ee TICE TET EPP Ea Ea aaa aaa eT eee a eT ee                                                                        Copyright 2012 Verum Software Technologies BV  ii    ifndef __ISTREN_INTERFACE_H _    define _ ISTREN_ INTERFACE     include  passbyvalue h      include  lt boost shared_ptr hpp gt    include  lt boost thread mutex hpp  gt    include  lt boost thread condition hpp gt              class ISiren_API     public    enum PseudoStimulus           lt summary gt       The VoidReply event indicates that the processing of the API call has been completed      and the call can return when appropriate   ji   lt  summary gt   VoidReply  i  virtual  ISiren_API                       lt summary gt        Turn the siren on        lt  summary gt    virtual void TurnOn     0             lt summary gt       Tarn the siren off       lt  summary gt                                               virtual void TurnOff     0   protected   ISiren_API       private   ISiren_API amp  operator    const ISiren_API amp  other    TSiren_API  const ISiren_API amp  other          class ISirenInterfac                                                                              public   virtual  ISirenInterface       virtual void GetAPI  boost  shared_ptr lt ISiren_API gt      0   protected   TSireniInterface       private   TSirenInterface amp  operator    const ISirenInterface amp  other    ISirenInterface  const ISi
81. dditionally  the corresponding transfer interface is created    this interface is used for the synchronisation between the main machine and the sub machine  This transfer interface inherits its  name from the name of the sub machine  For each transfer interface one or more call events must be declared  as well as one or  more reply events  The declarations works in the same way as defining call events and reply events for an application interface with  the observation that transfer call events are always of valued type and can carry zero or more in  out and or inout parameters and  that transfer reply events can carry zero of more in parameters     Comments                                     Comments    1  SuccesfulActivationi        Transfer call events and reply events    The specified transfer call events are automatically added to the set of triggers of the created sub machine  and the transfer  reply events are added to the set of triggers of the main machine     In the main machine all newly created transfer reply events will get a default  Blocked  action  since the transfer reply event is  only expected in the corresponding Super state     Note  The border of the cell in which you specify an event is coloured red if the declaration is not syntactically correct  The event is  not stored in the model until the declaration is correct     In the newly created sub machine all triggers except the transfer call events get a  Blocked  action in the initial state of the  sub 
82. dockable windows loaded     http   community  verum com documentation user_m    5 0 modelling create_im create_interface_model  1 of 2   03 12 2012 09 32 20     ASD  Suite User Manual                hie idt Yes Piles Semon  Wentcabon    Code lesenhon leow Fisip    Ipdan 4 aa      5 35 14 7 7 2    F    Piel igra  alri i  a Mindahfl  Daemen   Appicaton interfaces   palba   g i   Tags  2 E Mampan  a Plan MMachne     I Almie  Sales  Sate Yerkes  a iniia  Apabila kiabi  Hatcrteon Interface  Pikscba liroj Interfaces  Tig    nhn Aea  EE  MModel Maragetor   Taa an   Start eg liemi rears eri er ri  O    I z riii EE    Eror Cioe Aspe Lotenion Selig Comfia    He RDH oom  Bleacher leterfaces  Apebeateonieterlace s Theet one appeton interface defined on thes tetas merde       J t   8 0 0  avterced Cerea A    A newly created interface model    Note  To change the name of the service  select the service name in the  M odel Explorer   press F2 or double click  and type in a  new name  This does not change the name of the file     The following tabs are shown in the  IAlarm  lIAlarm im    which is the  M odel Editor  for the lAlarm im     o   lAlarm  a tab for the main machine  containing the following sub tabs      SBS  shows the SBS for the machine      States  shows the list of states defined in the machine and facilitates the specification of informal design information about the states        State Hi shows the list of state variables defined for the machine and facilitates the declarati
83. e  Disabled  as Actions        Hide Invariant      Hides all the Invariant rule cases        Hide Self Transitions  Hides all rule cases that have their own state as Target State     o Filter by Text  You can filter the SBS on any text by typing into the text edit on the Filtering toolbar  J ust type any text and press Enter to show  only aa containing that text  The text is not case sensitive  Note that this filter switches off automatically when you load a  new model     Expression Filters    It is also possible to make a more intelligent filter by typing a Boolean expression  For instance  to filter on a name  myVariable  only in  the Guard column  type     guard contains  myVariable     This shows all rows in the SBS where the Guard column contains the text  myVariable   To also show rows where the State  Update column contains the variable  use Boolean connectives  Note also we use containsword instead of contains to match  whole words only     guard containsword  myVariable  or updates containsword  myVariable   And this is how you find all rule cases having self transitions  i e  the source state is the same as the target state      source equals target    Regular expressions are also supported  The following will match all events in the Event column that start with  Switch   e   g   SwitchOn  and  SwitchOff      event matches  Switch       Note that the syntax highlighting only comes on either when you press the  Toggle Expression Text M ode  button  or after the  fir
84. e rule case  See  Passing parameter values across rule cases  for passing parameters between rule cases     Simple parameter passing is shown in the example below  The example consists of a component  SimpleUser  that uses some  service that implements interface model  IUsed   The following figure shows the events of the interfaces  IUsed  and  IUsedCB  of    the interface model  IUsed           E tused Application Interfaces   Notification Interfaces   Modelling Interfaces    Used EI      Event Cornrmernts    1  UsedEventl  in Mintp  void    2 UsedEvente  lout  int  void    3 UsedEvent3allinout zint lout  int   void  4 UsedEwentibijinout   int  n  Xinth  void       Reply Event sla Comments               Modelling Interfaces   Tags               WWsedce C         C  Broadcast    Event Yoking Threshold Comments    i UsedCBEvent  in aint     2           IUsed  application interface and  IUsedCB  notification interface of interface model  IU sed     The Application Interfaces and Notification Interfaces tabs of the interface model  User  for component  SimpleUser  are shown in  the next figure        Notification Interfaces   Modelling Interfaces   Tags         12  User   Application Interfaces  IUser E       Event Comments  1  2 UserEventeffout   nt  woid  3 UserEvent3 inoutZinth  void    4                Reply Event Comments                         Application Interfaces Notification Interfaces   Modelling Interfaces    luserce E             E  Broadcast    Event Yoking Thresh
85. e shows a filled in  State Variables  tab for the  IAlarm  main machine     E  Alarm Application Interfaces   Notification Inberfaces Moadeling Interfaces   Tags      ses   States   State Variables            State Wanable Type Constraint Initial Value Commients  State variable which reflects the    1 HasBeenChecked Boolean false ppl enti EEEN    2 CheckCounter Integer  1 5  i Counter for checking    i  T          State variable specification for the  Alarm  machine    You can specify one of the following types in the Type column     o   Integer  for integer state variables  Use of integer state variables must always be within a defined range  Unbounded integer    state variables would cause problems during verification     Note  To specify the range of values for a variable  you have to fill in the  Constraint  column following the suggested format     co Boolean  for boolean state variables  Boolean state variables have either  true  or  false  as value        Enumeration  for enumeration state variables  The value of an enumeration state variable can be any text which conforms to  the naming conventions used in ASD modelling  but can not be the same as the name of a state variable defined for the same  machine  The set of values for an enumeration state variable is built up by parsing through the ASD model and collecting data from  the assignments to the respective enumeration state variable specified in the  State Variable Updates  column of the SBS tab for  the machine i
86. e shows an  Sensor_CB  notification interface defined as a broadcasting interface       EH Sensor   Application Interfaces   Notification Interfaces   Modelling Interfaces   Tags      ISensor_ CB       E  Broadcast    Event Yoking Threshold Comments    1   Detectedhdoverment Sensor has detected moveriant    2 Deactivated    Notification that Deactive has completed  3       A notification interface flagged as broadcasting    In case you specify in a design model a broadcasting notification interface as a used interface you have the possibility of  specifying which events on the respective notification interface you are going to observe     Note  In case the respective notification interface is newly created and specified as used interface for the first time  its events will not  be visible in the SBS of the design model  This is caused by the fact that the events are flagged as non observed by default  If you want  to observe any event from the respective interface you have to flag the respective event as observed     The following figure shows the situation in which you are interested only in Deactivated   notifications     Broadcast    Observed Singleton  1 DetectedMovernent   false  2 Deactivated  true false  3 asd_Unsubscribed    A    Ei       Setting notification events as observed or not    Note     oa IMPORTANT  Since initially the broadcasting interfaces are unsubscribed you have to explicitly subscribe to all used instances of  notification interfaces which are flagge
87. ecting the model  in the  Model Explorer   right click and select the  Properties  item in the context menu     The following dialog is shown                 fi         ES Properties of lari Syctern  2  eel  General    Venhication    Code Generation Fiera  D slipt is Up GSD cee E apes Li h r r    Papat       u iari Ertir vin d   Vikki    Component Ta  ang m     T  implercents  laly ysben ik  Dashes  Creabed ane   Pg 0 01 20 Tse  Pedic on  g 0 27 4 ee     Desrription    a Gea       The Properties dialog for a design model    In case you want two ASD components to share an instance  without using a Singleton component  you can pass a used  component instance to an ASD component as a parameter  See  Construction parameters  for details about passing component  instances        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_man    8 5 0 codegeneration prepare_code component_type  03 12 2012 09 35 20     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Specifying the execution model       In ASD you can choose between two execution models for your components  Standard or SingleThreaded     When selecting Standard for a component  this component will have its own separate thread for handling notifications  if any   from servers  In case no notifications are defined the separate thread is not created  In case of SingleThreaded  this thread will not  be created  only one execution
88. ed       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling refactoring moveevents  03 12 2012 09 34 20     ASD  Suite User Manual       Product   Technology _ Resources   Training   Purchase   Company       Deleting Events or Interfaces       Deleting events and interfaces can be done by selecting them and pressing Ctrl Delete  You can do this both in interface models and  in design models  Their corresponding rule cases in the SBS will automatically be deleted as well  If any of these rule cases were non   empty  you will get a warning dialog first  Deleting an event or interface from an interface model will cause a conflict in any design  that uses it  Conflict wizards are available to delete the event from the design model as well        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling refactoring deleteevents  03 12 2012 09 34 22     ASD  Suite User Manual       Product   Technology _ Resources Training   Purchase Company       verum  Renaming Events or Interfaces       Renaming events or interfaces is done by simply editing their name in their respective table  The names in the SBS  automatically change too  However  since the link between a design model and the events in the interface models is by name   the rename must be performed in both models  Renaming only in one model causes a conflict  Conflicts wizards are available to  solve the problem  I
89. ed       http   community  verum com documentation user_manual_pdf aspx 8 5 0 user_interface menus file  03 12 2012 09 31 35     ASD  Suite User Manual          ji  Product   Technology   Resources   Training   Purchase   Company    The Edit menu    eo Rommen o a aaa  Clear Find Results  Clear the Find Results table and the green highligting after a Find A       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 user_interface menus  edit  03 12 2012 09 31 38     ASD  Suite User Manual          fi Product Technology   Resources Training Purchase   Company    verum    The View menu    enu Item Purpose    oolbars Show hide each of the toolbars  M odel Explorer Open or close the  M odel Explorer   which shows all loaded models     Output Window Open or close the  Output Window   which shows status and progress     Conflicts Open or close the  Conflicts  window  showing specification conflicts   See  Conflicts  for details     Find Results     JOpen or close the  Find Results  window  showing the results of a Find All operation     erification Results Open or close the    Verification Results    window  which shows the progress and results of verifying a model   See  Verification  for details     isual Verification Open or close the  Visual Verification    window  which shows information about the current verification error in the model   See  Verification  for details     Un saveable Data Open or c
90. eevente Dee BU set Ese ive        Simple parameter passing example    Passing parameter values across rule cases    To remember a value in the ASD component  so that it can later be used for a trigger or action on a different rule case  you can use   a component variable  Component variables are implicitly declared by filling in a name for an argument  and prefixing that name with  a so called storage specifier  The storage specifier is either   lt  lt      gt  gt    or   gt  lt    If you use the same name in this way in two rule  cases  the value is remembered from one trigger to another and used     The storage specifiers have a distinct meaning  Suppose the component variable is called  myVariable    o    lt  lt myVariable means that a value is taken out of myVariable  retrieved   This is used with  out  parameters on triggers  or  in     parameters in actions     o  gt  gt myVariable means that a value is put into myVariable  stored   This is used with  in  parameters on triggers  or  out  parameters  in actions         gt  lt myVariable means that the value is both stored an retrieved  This is used with  inout  parameters     As you can see  you can use only one type of storage specifier in each situation  The storage specifier exists merely to indicate that  the variable is a component variable and not a rule case local one  It also shows the direction of the data flow  which can make the  SBS easier to read     For example     TA Cotes   Ured sarvim Tezi    5 mama  sta
91. efined in the  WindowSensor used service     http   community  verum com documentation user_m    _ pdf aspx 8 5 0 modelling publishers_observers  1 of 2   03 12 2012 09 33 47        ASD  Suite User Manual    Select Actions    Unsubscribet windowSensor TSensor_CB      SubscribeMWindowSsernsorlsensor CB void   UnsubscribetvindowSensoriSensor CB  void  Nop   Illegal   Blocked    Slarrnisystem_CB  Trippedi   larmsystem _C B   Switched Ofi  Wlarmsystem_AFLYoidRe ply   larmsystem _AFLOK    Slarrnisystem_ API Failed   Window sensorlsensor 4PLActnwateG  void  WindowSensorlsensor 4PLDeactivateG  void   siren siren APL Turning  void   Sirerlsiren_ APL Turn OG  void   Timerd imer Create Timertlinjtdoublel  void   Timer Timer Create TirierEx  injtsecilong  injtnsecslang   void  Timer I imer Cancel imer  void  TimerIimerCreateTimerMisecijin jtmsecilongi  void       Data in the SBS tab showing the use of the Unsubscribe action    o  Process the result of unsubscribing    Sawer ER   uee tarvems   tops  aS Pee faa mabi    Leuba zimie reer 08 eed ratei     rafta Lanai Tisd Aia Sati Vere Updiim Tupi State Comracs g    I Umabiriisy  lt 1 PL b T Irem TED i vortech  H Wenrann Ar m  hi  Fryl  D Werniran AF aye ch Peg     Wedges C8 Gost Ben    Pgh  Uroukombesy  2  Bbedoetormor cere ce Hierro beriem Beste ee He Ritchie Sonor doetneted   ale pien pete ol  H Teen fleet k Derea  egal      Data in the SBS tab showing the handling of the  asd_Unsubscribed  event     In case you call Subscribe on an insta
92. els  The models specify both structure and behaviour of services  and of components that implement and use these  services  See the  ASD Concepts  section for details     Ee b Fe Bimi Baki    EFF PT REE  CEF EE ae E  ae er       See  How to set up the ASD  Suite  for guidelines about installing and setting up the ASD Suite     Note  Starting with the ASD  Suite Release 3 v7 2 0 you have the possibility to install the ASD Suite M odelCompare  a feature that  allows you to find and eliminate differences between two versions of an ASD model or between two related or unrelated ASD models     The set of User M anuals for the ASD  Suite consists of     oa The ASD Suite Release Notes  see archive for latest and older versions        The ASD Suite User M anual  this document  see archive for older versions        The ASD Suite ModelCompare User Guide  see archive for latest and older versions         The ASD Suite Visual Verification Guide  see archive for latest and older versions         The ASD Runtime Guide  see archive for latest and older versions      A simple Alarm system example  consisting of a set of interface models and design models together with the related source code can  be downloaded from here  This is a fully executable system that can be built using Visual Studio  for C   and C   and Eclipse  for  Java      To uninstall the ASD Suite Release 4 v8 5 0 use the  Start   gt All Programs   gt ASD Suite Release 4 V8 5 0   gt Uninstall  item     Copyright  c  2008   2012
93. emantic and non semantic differences between two models     Common functionality     Help  For all tools  type     help to see how a tool can be used     Wildcards and recursion    M ost tools accept multiple file names as input  Next to that  it is possible to use wildcards in directory and file names  e g   SetModelProperties ex q   im    This will apply the SetM odelProperties tool to all the interface models in the current directory        The following wildcards can be used          matches any sequence of zero or more characters except         matches any single character  o    matches any of the characters between the brackets    Next to wildcards  the tools also support recursing through subdirectories  To enable recursing  specify the   recurse option   When recursing  the names on the command line are not file names but directory names  Each given directory is visited recursively   To control which files are processed in those directories  specify a wildcard pattern using the     name option  The default pattern is  x   id m  which matches all interface and design models     For example  the following command processes all models in the current directory and all subdirectories   SetModelProperties ex q recurse         And this example only processes the design models   SetModelProperties ex q name    dm    recurse          2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 command_prom
94. en and connection labels are placed        3 f   Decoupling Threshold   Set the value for the decoupling threshold       o   Refresh M ap   Refreshes the previously generated diagram while keeping the zooming settings intact          http   community  verum com documentation user_m    _ pdf aspx 8 5 0 user_interface model_navigator  1 of 2   03 12 2012 09 32 06     ASD  Suite User Manual      Allows to select a directory and generates a diagram of all models in this directory and its    iS   Select single folder to show   subdirectories              Allows to select multiple directories  Generates a diagram of all models in these directories and their       Select multiple folders to show s  bdiredtories     LI   Generate   Generates a diagram of the directory or directories in the combo box on the left        A   Clear Map   Clears the model navigator diagram          2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_m    _ pdf aspx 8 5 0 user_interface model_navigator  2 of 2   03 12 2012 09 32 06     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       SBS Filters    There are several kinds of filters you can use to hide and show exactly what you need in the SBSes        Basic Filters    o Hide Illegal  Hides all rule cases that have  Illegal  as Actions        Hide Blocked  Hides all rule cases that have  Blocked  as Actions     oa Hide Disabled  Hides all rule cases that hav
95. er and footer information  include file    Browse         Indude import     indude    teneric h        The code generation properties for target language C  in an interface model      E Properties of AlarmSystem    General  Venfication  a Code Generation  4  Generate debug info  a  Cer Output paths  C    Java Path source fles     code cpp erci generated   Browse         Trace statements    Header and footer information  maes    Indude import  implementation     Indude import  declaration        The code generation properties for target language C   in a design model    Check mark the  Generate debug info  checkbox to attribute the generated code with tracing information  The tracing  information contains the component name  the state name and the trigger name  This information is reported every time a  trigger function is entered  prefixed with     gt   and every time this trigger function is exited  prefixed with   lt     The information  is passed to a language specific tracing mechanism        For C   this is ASD TRACE  a macro defined in the ASD Runtime header file trace h  There is a default implementation using std    cout  but this can be customized by you        For C   the generated code uses the  NET System  Diagnostics  Trace facility  This can also be customised by you within the limits of    NET  To enable tracing in a  NET application  the code must be compiled with the TRACE define set  i e   DTRACE and somewhere a  listener must be registered to pass the infor
96. erated source code  The text file containing    this text is specified for each ASD model in the text field labeled  Include file  in the code generation  Properties  dialog for each  target language     You can access the code generation  Properties  dialog of your model by selecting the ASD model in the  M odel Explorer   right   click  select  Properties  in the context menu and choose your target language under  Code Generation      The following figures show the code generation  Properties  dialog for target language C  in case the ASD model is an  interface model  or a design model  respectively      e     General  4 Code Generation  c Path interface files    codelepp sre generated   Browse       C      C     Output paths       Header and footer information    General  Verification  4 Code Generation  v  Generate debug info    Trace statements    C   Output paths  Path source files    code coolere generated    Header and footer information    Incudejimport  implementation     Include import  dedaraition        The code generation properties for target language C   in a design model    The following list contains the rules for the text which you can specify as user provided text     ao The specified text file can contain a mixture of directives and plain text lines in any order  This enables it to serve as a  template   controlling the generated output source file contents       Plain text lines are simply copied through to the generated output file without modification 
97. es not have any primary references pecify at least one primary reference for the indicated  al Secondary reference or delete the secondary reference  RC41 If you use the ASD  Timer service  you need to mark all interfaces as pecity the  ITimer  as a used interface  or remove the ASD     used  imer service as a used service  RC4    If you use the ASD  Timer service  you need to mark all interfaces as pecify the  ITimerCB  interface as a used Interface  or   used  remove the ASD Timer service as a used service  Not all interfaces defined in the indicated SingleThreaded used service Ensure that all interfaces defined in the indicated    are specified as used interfaces SingleThreaded used service are specified as used  interfaces  or remove the used service  If the implemented service is SingleThreaded  all used services must be  Ensure that all used services use the Singlelhreaded  SingleThreaded as well  execution model or they fall in one of the exceptional cases  Exceptions  it is allowed to have a Standard used service if      The used service does not have notification interfaces    RC44          The used service does not have modelling interfaces       The primary reference uses all interfaces    RC46 he implementation of the ASD Timer requires that the models use the  Ensure that all used services use the Standard execution  Standard execution model  See  Specifying the execution model  for model  or remove the ASD Timer service as a used service   details         O  P  
98. es within the ASD Suite           2012 Verum Software Technologies B V  All rights reserved    http   community  verum com documentation user_manual_pdf aspx 8 5 0 user_interface menus tools  03 12 2012 09 31 55     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Status bar    The status bar is located at the bottom of the main window        ee A cri araa eanas         The following information is shown in the status bar  from left to right     o Verification progress bar  Via this progress bar you can follow the progress of verification  The following figure shows the progress of    verification   cA A OO       Verification progress in the status bar    while the next figure shows the reporting of a verification end        Finished   eT   Tl          o    Verification end shown in the status bar    Note  The number of the rectangles shown in the verification progress bar is the same as the number of  to be  performed checks  The  following list contains an explanation for the items which appear in the verification progress bar    The red cross  the button to stop verification or debugging   A green rectangle  a successful check   A red rectangle  a failed check   A grey rectangle  a check waiting to be performed   A light blue rectangle with a running circle  a performing check   A blue rectangle  a failed check due to an internal error   A yellow rectangle  a skipped check    ogoogo    The target language for code generation and the
99. esult  is a parameter     Parameters are described in detail in Parameters  Notification events can only have  in  parameters     The Notification Events table has a column called  Yoking treshold   This column is only useful if the interface model is a specification  of a foreign component  You use it to say that the notifications will arrive at a slow enough rate to be processed by clients without  their queue becoming full  It is a promise to the outside world  The yoking treshold is an integer number that indicates the maximum  number of events that will end up in the client s queue at any given time  This is described in more detail in Yoking Notification  Events     Note    Yoking makes a promise to the user of the interface model  which ASD cannot verify  Therefore  if the foreign component does not  adhere to the promise  ASD model verification will not catch this  Often  it is possible to use safer constructs such as singleton  notification events or to define a protocol that limits the notifications     M odelling Interfaces and M odelling Events  If the interface model has so called spontaneous behaviour  e g  it sends a notification event without being told to do so by the  outside world   you need a modelling event to be able to specify this in the SBS  After all  every line in the SBS needs a trigger but  there is no outside event to be the trigger  M odelling events are not real events  but only used for modelling    oa Go to the  Modelling Interfaces  tab and 
100. eted from the interface model   interface model  or that it was renamed  See  Refactoring ASD delete it in the design too  Note that this may cause rule cases to  M odels  for more details  be deleted     RC145 ere is an event which is present in an interface mode If the event was renamed in the interface model  rename it in  he design model  It can be that it was added to the interface he design too  If it was added  add it to the design model  It is  model  deleted from the design  or that it was renamed  See best to let the Conflict Wizard handle adding the event  copying   Refactoring ASD M odels  for more details  it from the interface model   so that the parameters are copied    automatically as well     RC140 e notification interface in the design model is broadcasting while g  he notification interface in the interface model is not  or vice Wizards handle this for you   versa  The broadcast flag can have been changed in either model   See  Refactoring ASD M odels  for more details     RC14  e parameters In the design model are different from the Change the parameters to match  Then change the arguments In  parameters in the interface model  Note that direction  in out  he SBS to match the parameters  There are two Conflict Wizards  inout  and type do not matter  these are not needed in the design ffor this conflict  one that only copies the parameters  and one    model  The number of parameters  the names and the order of the  that also changes the SBS arguments    pa
101. fined have to be made available during compilation  See  Ensuring correct  referencing of user defined types  for details     Generating stub code   For generating stub code from an ASD interface model  specify a language and version and use the   generate stub option   asdc exe  l cpp  v 8 5 0   generate stub   stub type usedcomponent   component   type multiple   construction  MyComponent   in a int   mymodel im    Use asdc exe   help   generate stub to see all options you can use to influence stub generation  The options  all correspond to fields in the Generate Stub dialog of the ASD Suite M odelBuilder  see  Generating stub code using the ASD Suite   for details     Tips      It is recommended to start the command prompt using the  Start  gt All Programs  gt ASD Suite Release 4 V8 5 0  gt ASD Client Command    Prompt  item        Ifyou want to specify a start up folder for the ASD Suite Commandline Client started via the ASD Client Command Prompt  change  line 11 in the  ASDPrompt bat  file which you can find in the folder specified during installation        It is recommended to add the full path to the folder where the ASD  Suite is installed to the PATH environment variable      o   To ensure that the latest version of the ASD Suite Commandline Client is used whenever you call  asac  in the DOS command  prompt  remove from the PATH environment variable all references to folders where other versions were installed        Eventhough you can specify the server connection
102. fines which way the data flows     o   in  means that the receiver of the event also receives the data       out  means that the sender of the event receives the data       inout  means that the data goes both ways     Not every direction is applicable to every type of event        Call Events support  in    out  and  inout  parameters       Reply Events do not support parameters    qo Tranfer Call Events support  in    out  and  inout  parameters      Transfer Reply Events support  in  parameters       Notification Events support  in  parameters       Modelling Events do not support parameters     Parameter Name    The parameter name must be a valid identifier in the language you generate code for  Also  it must be a valid ASD identifier   See  Syntactical rules for names used in ASD modelling  for details     Parameter Type  The parameter type can be anything your programming language allows  The type must be copyable cloneable though     Note   In CH  you can use const and  amp  around your types  but this is not necessary  If you just fill in the plain datatype  the code    generator will add the usual const and  amp  where applicable     Note   For C H  template types are supported     Note   In Cand tiny C  you need to wrap pointer types in a typedef  if you plan to use the parameter with component variables        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling parameters  de
103. ftware Technologies B V  All rights reserved       http   community  verum com documentation user_manu    8 5 0 modelling construction_parameters reference  03 12 2012 09 34 08     ASD  Suite User Manual          Product Technology Resources Training Purchase Company       Refactoring ASD Models    Like code  ASD models are not static  you will usually want to change them over time  Changes to an ASD model  like changes to a  code file  may cause other files to need changes as well  The ASD Suite helps you with various functions to refactor a model  and  other functions to automatically adapt a design model to changes in its interface models     The relationship between Design and Interface M odels    Design models refer to their implemented and used interface models by relative file path  Changing such a path  see  Replacing  an Interface M odel   makes the design model refer to another interface model instead    Interface models contain interfaces and events  and events contain parameters  A design model refers to these interfaces and events  and parameters by name  This means that when you rename an event in an interface model  the design model no longer refers to  it properly     Since interface models and design models are edited independently  a mismatch can occur between them  e g  an event can be  deleted from an interface model but not yet from a design  This is similar to method declarations in C  header and code files   they  need to match  The mismatches are repor
104. ggers must have  Blocked  as associated action except for the application reply events that correspond  with the called used service     Normal state  These are all other states  In these states NONE of the external triggers  i e  implemented service application call events  and used service notification events  may have a  Blocked  action  If no action is allowed or possible for these triggers in a normal  state  the action must be set to  Illegal   For example  when the application interface is  closed   the Client is waiting for a reply to an  application call event   On the other hand  all application reply events and transfer reply events must have a  Blocked  action in   a normal state  since there is no application call event to a used service active  nor is there any sub machine active        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 concepts state_types  03 12 2012 09 31 19     ASD  Suite User Manual          Product Technology Resources Training Purchase Company       Used Services    A design model can use instances of other services  In ASD  service instances are always represented by means of Used  Service References which are sequences of used service instances  Within each used service reference  instances are  numbered starting from 1     The set of all component instances that are used in a design model is determined by the primary references  Each primary reference  is
105. gt    eraro                   Filter Suggestions  Right clicking any cell in the SBS yields one or more filter suggestions at the bottom of the context menu     7 event containsword  SwitchOn   EF event equals  SwitchOn      Leon       F    and event containsword  SwitchOn     CERE    Y e and event equals     SwitchOn      Clicking on a filter suggestion sets it as an Expression filter  Note that it is also possible to select multiple cells and get a filter  suggestion based on that  Handy filters are        Select two cells in the Event column to see a filter to show only those events in every state      Select two states and use the offered suggestion to show only those states       Select a cell in the Interface column to get a suggestion to filter on that interface in both the Interface and Actions columns  This  gives an overview of where that interface is used     Next to the SBS  the State Variables table also offers filter suggestions     http   community  verum com documentation user_manual_pdf aspx 8 5 0 user_interface filter_sbs  2 of 3   03 12 2012 09 32 10     ASD  Suite User Manual    585   States   State Variables   State Ceagram    State Variable Type Constraint  1  ry Wariable    Delete State Variables  Ctrl  Del    AJ Sort rows alphabetically    Cut Ctrl  i  Copy Ctrl C  Clear Cells  Del      7 Filter 585 by State Variable Ctrl Shift L    Reusing Filter Expressions     E  Filter expressions  and filter text  is automatically stored in a most recently used li
106. guards  for details about the usage of state variables in guards  and see  State Variable Updates  for details about  using state variables in state variable updates        2012 Verum Software Technologies B V  All rights reserved    http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling behaviour state_variables  03 12 2012 09 32 52     ASD  Suite User Manual       Product Technology Resources Training Purchase Company    State Information       Since at the creation of the interface model an initial state was created and automatically named  NewState   you may want to  change this name and provide a description for the respective state     The following figure shows the  States  tab  which is used to create new states or rename existing states and provide a description  for them      Application Interfaces   NotiFicabion Interfaces Modelling Interfaces   Tags                                                                         ses   States   State Variables          State Comments    LfNewState     2       The ASD Suite   the  States  tab    To rename an existing state and provide a description for it  type a different name in the  State  column and enter a description in  the  Comments  column     The following figure shows a filled in  States  tab for machine  IAlarm            ES  Alarm       Application Interfaces   NobFication Interfaces Modelling Interfaces   Tags        565   States   State Variables              State Comments   1  AlarmNo
107. has been entered    Re   When the Alarmsysteem is activated and a   entry i  detected  the AlarmSystem shall wait for    Reg  When an incorrect code is entered when the AlarmSystem is activated  the Alarm shall be se         Select deselect all       Tag Selection Dialog       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling behaviour tags  03 12 2012 09 33 08     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Guards       Guards are used to make fine grained control decisions in an SBS  Specifying guards is done by filling in the  Guard  column of the  SBS tab with logical expressions     Logical expressions are built using state variables  constants  the arithmetic operators     and      the comparison operators                 lt      gt      lt    and or   gt    and the logical operators   and    or  and or  not   Additionally  operators for used service  reference state variables can be used  see  State Variables for Used Service References      Note  In case you leave the cell in the  Guard  column empty  it will be interpreted that the respective rule case is not guarded and it  can happen under any conditions  i e   always true      In case you want to be sure that you covered all the possible conditions for a set of rule cases belonging to the same rule  you can  use the  otherwise  keyword in the  Guard  column     The following li
108. have to conform to certain rules before they can be verified or before code can be generated from them  M ost of  these rules are syntactical  others are about the relationship between a design model and its interface models  The M odelBuilder  can automatically check the rules and it will highlight the locations where the rules are violated     Types of Conflicts    There are two types of conflicts        Errors  which need to be fixed before code can be generated or the model can be verified  Errors are highlighted in the model in orange      Warnings  M odels with only warnings can be verified and code can be generated  Warnings are highlighted in the model in yellow     All conflicts are displayed in the Conflicts Window  Double clicking a conflict shows the location of the conflict in the model  Vice  versa  hovering with the mouse over a highlighted location in the model gives the conflict message in a tooltip     Note  When jumping to a filtered out rule case  that single rule case will be unhidden  You can hide the respective rule case again   by  re  applying the filter s   See  SBS Filters  for details about applying filters     Note  Each conflict has an associated error code  Please report that code if you have difficulties in fixing the conflict s   Clicking with  the mouse on the error code will open a webpage in your default browser with some guidelines to fix the conflict     Checking for Conflicts    A conflicts check is done automatically when a model is ope
109. he 1p flag  for more details        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 command_prompt converter  03 12 2012 09 36 14     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       verum    ASD SetM odelProperties       The ASD SetM odelProperties tool can be used for two purposes     1  To set various properties on multiple models at once  2  To make the model namd and main machine name equal to the file name in multiple models    The tool can set the following properties on a model     oa Model properties  like model version  project  author  description etc      Code generation settings  the version  language and namespace     Language specific settings  output path  debug information flag etc           For details  use SetModelProperties ex help  The tool also supports the standard wildcards and recursion mechanism  SO you Can easily run it on multiple models   For example    SetModelProperties ex author  user    im    changes the Author field of all interface models in the current directory     For example   SetModelProperties ex qualize names    id m    makes the model names and main machine names of all ASD models in the current directory equal to their file names        For example   SetModelProperties ex language cpp   version 8 5 0    id m    sets the code generator language and version on all ASD models in the current directory        Cave
110. he following occurs      The UserComponent creates a local variable  out  V that  together with  inout  Zis passed to the UsedComponent via UsedEvent3a      The UsedComponent updates  inout  Z  initialises  out  V and returns      The UserComponent passes  inout  Zand  in  V back to the UsedComponent via UsedEvent3b      The UsedComponent reads  in  V  updates  inout  Zand returns      The UserComponent sets the value of  inout  Z for Event3 and returns        Steps 7 8  When the UserComponent processes the UsedCBEvent with  in  parameter X sent by the UsedComponent   the UserComponent passes the value of  in  X to the Client via the UserCBEvent     In design models  the ASD Suite checks several parameter passing rules  See  Fixing argument  parameter or component  variable related conflicts          2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_   spx 8 5 0 modelling parameters example_passing  2 of 2   03 12 2012 09 33 40     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Creating Tags       The Tags tab can be used to record requirements  These can be requirements that were already defined or requirements that  emerge during the design process  Tags can be referred to in the SBS tab  See  Specifying tags  for details     Note  To see the  Tags  tab  select the  Tags  node in the  M odel Explorer  or select the  Tags  tab in the M odel Editor   1Alanm  LAlarm im      
111. he open model are also indicated  in the status bar of the M odelBuilder     ao lf you want to generate code for the selected ASD model using a different target language and or code generator version than the  ones specified in the model properties you can use the  Code Generation   gt Generate Code With     menu item or press Shift F7  which opens the  Generate Code for  lt model name gt   dialog in which you have to specify the desired data        The following error message informs you that no source code can be generated from an ASD model with specification  inconsistencies  conflicts      F ASD Suite ModelBuilder  E     Model  AlarmSystern dm     still has conflicts  Please solve the conflicts first   Warnings need not be solved  errors do        Error message which prevents code generation from a model with conflicts     The code will be generated in the specified directories  See  Specifying the output path and attribute code with tracing information  for  details      The progress of the code generation can be followed in the  Output Window         Download the ASD Runtime and ensure correct referencing of user defined types before compilation and execution of the  generated code        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 codegeneration generate_code  03 12 2012 09 35 47     ASD  Suite User Manual          Product Technology Resources Training Purchase Company       Genera
112. i  Product Technology   Resources   Training   Purchase   Company  verum    The Code Generation menu    Generate Code Generate code from the current ASD model   See  Generating code from an ASD model  for details    Generate Code With     Same as Generate Code  but this asks you for a code generator version and language   See  Generating code from an ASD model  for details    enerate All Code enerate code for all loaded models  except I Timer     See  Generating code from an ASD model  for details    Generate Stub    Generate stub code from the selected Interface model  to build your own Implementation of the interface   See  Generating stub code from an ASD interface model  for details    Download Runtime  Download the ASD Runtime   See  Downloading the ASD Runtime  for details     ow the size of your model in ASD Function Points in the Output Window        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 user_interface menus codegeneration  03 12 2012 09 31 52     ASD  Suite User Manual       ji  Product   Technology   Resources   Training         Purchase   Company    The Tools menu    Check the ASD model for specification conflicts   See  Conflicts  for details     Clear Conflicts o clear the Conflicts window and the orange and yellow highlights in your model   See  Conflicts  for details     o change the global settings for the Appearance  M odel Verification and File Association properti
113. ification    The above figure describes the following situation      Ifthe alarm has not yet been checked  i e   HasBeenChecked false   when triggered by  Check  one of the two actions might  occur  CheckSuccessful or CheckFailed     oa lf the Alarm has already been tested  i e   HasBeenChecked true   acting to a  Check  trigger is illegal since the Alarm should not  been checked again        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling behaviour  guards  03 12 2012 09 33 11     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       verum    State Variable Updates       The following figure shows the situation when you need to update the value of a state variable  i e  you need to specify a state  variable update     Jili ietin kietas   Niotiication Insets   Pking rinis   Fangs  ZG   mam   meu yndda      Haifeenthedied tu    iierace berri Gund    darham    Stabe Warlable Upisirs Ivg t Srt Comrarnii lagi  1 Alm mMoticthraded c   J Ehi cal Ahm aed Foega hy Ahib abd oc bare aha   lem Argl  4 _ ibm Lier Mega   Hisgai   alm net arimah d  i akin Checks Tegel Dlegal   abbr not acisated  i Beri jemp Disb hd Carnes ezurra etai y  P abn fly Di cody kod    HT Reset Charen  Cec eg miei  O Alem Actuated cir Seis       WD ibm st Maga   Pegal   akent wimi   ii arm Ciri  Alan aid Rep  Alm  sa Cheer input   17 lb Chet   Hagleerhectecectalie lem  Check Succes ph 
114. in the SBS of a design model     1  Iterate over a number of sensors to activate them one by one     LLE beara Gand hri Sena Airie Lip ira Teagan  Soma Cae tz 7   1 Blea bbl Lie bel ik     T   1 w Ppp  PNH a iiih  r 7 i  fal i    Hkt n aa       Jiepki   ii rir  iar  Sorby Birji   Spe   Meera ral natn  Ney Ting Trgu Ayre echoes                ta kevebe a Liini krike   ee HH a D  or faite a Doe Lest bor Wied  isg        ries berain  i  others fers foyer n eee ede ee Beret    Iterate over a used service reference state variable member by member  Note              a        activate  is a used service reference state variable for all the to be activated sensors defined for the model  Its initial value is all the    sensors  i e  all door and window sensors  DoorSensor WindowSensor   2        deactivate  is a used service reference state variable for all the sensors to be deactivated  Its initial value is the empty sequence   gt       2  Deactivate all sensors and wait for the result of deactivation for each sensor respectively     http   community  verum com documentation user_   f aspx 8 5 0 modelling create_dm usr_behaviour  1 of 2   03 12 2012 09 32 42     ASD  Suite User Manual    Tirra Bar    I Meek airy a Ade        HVE    eR THE  i  lec Tho mairt E  Tl Ji miia b hrad sirsiran dete hi meres tes   ie Riera dct    Rad dete Minds derebir Up dts Tigri  pir Eeee ip            Dresi rend       I ERLE   3o Ali aieh te i Lili i Se  ct Fra A    Liem ire Ergul       Perform an action 
115. ing refactoring changeorder  03 12 2012 09 34 30     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       verum    Replacing an Interface M odel    A design model refers to its interface models by relative file path  You can change which interface models are used simply by  changing that relative path        oa Go to the Implemented Service or Used Services tab     Select the tab of the model you want to replace  a Use the  Browse     button to select another interface model     If the events in the new interface model are not the same as in the old one  the differences are reported as conflicts  You can then  resolve the differences in all the ways described in  Refactoring ASD M odels   usually by using the conflict wizards     Changing a relative path is an undoable action  pressing Edit Undo will simply change the relative path back and the conflicts are  gone        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling refactoring replaceim  03 12 2012 09 34 32     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       verum    Save As       The M odelBuilder enables you to save your currently opened ASD model as a new model using the currently specified behaviour  as starting point  or as an exact copy     Note  The newly created model will be opened in the current instance of the M odelBuilder     Using the  Fi
116. is  Ensure name uniqueness per indicated item  mee ee   R    RC22 Each used service reference  used service reference state variable  or construction  parameter in a design model must have a unique name in the context of the design  model    Each event must have a name which is not used as a name for an interface  RC111 Each tag in an ASD model must have a unique name    Note  The following rules are not automatically verified by the ASD Suite and need to be ensured by the user        1  The uniqueness of model file names  e g  in case various copyright files are used  these must have a different name  even if they  are located in different directories      2  Application or modelling events in an interface model should not have the same name as a transfer interface name in the  related design model     3  Transfer events in a design model should not have the same name as a modelling interface in the related interface models   4  All interfaces in the system must have unique names    If these naming conventions are not met  this could lead to model verification  code generation or compilation errors        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 conflicts duplicates  03 12 2012 09 34 50     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       verum    Fixing interface related conflicts       The following table shows the specification conflicts rel
117. is used in  the SBS as a reply to void call events  Next to this event  you can create your own reply events for any valued call events  e g  Yes   No  Ok  Fail etc      Note   If you have no void call events  but only valued ones  you can optionally delete the  VoidReply  event     Reply events are declared merely by typing a unique name     Notification Interfaces and Notification Events  Notification events are analogous to callbacks in a programming language  In ASD  you define a notification interface as follows     o   Go to the  Notification Interfaces  tab and click the blue plus sign to create a new interface        Inthe dialog that appears  type a name and click OK  The name must begin with an underscore or letter and continue with  letters  underscores or numbers       Click OK  A new tab appears for the notification interface     At the top of the notification interface tab there is a checkbox marked  Broadcast   If this is checked  the notification interface can  be used by multiple clients and the clients can subscribe and unsubscribe to its events at run time  This is described in more detail in  Broadcasting Notifications     Notification Events  The declaration of a notification event consists of        Aname  this identifies the event     Parameters  optional   used for passing arbitrary data through ASD components  see Parameters     An example of a notification event is ProcessingDone   in  result string   Here   ProcessingDone  is the event name   and  r
118. ivating  synchronous reum state   1J  miaran not Alarni  19 Serecesiensor OE Alarm ke cepeed Alarmuictyeted  7 Senscesdiensor FAIL l  is  Failed Alsrnnihctictyeted    Example of an Invariant rule case       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling behaviour state_invariants  03 12 2012 09 33 18     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       verum    Non deterministic Behaviour       An interface model may describe non deterministic behaviour  That is  a given trigger may result in different actions  The choice of  which action will be executed depends on conditions within the component that are not visible on the interface level     Note  Non deterministic behaviour can be specified only in case of an interface model  it can not be specified for design models  The  rationale behind it is that an interface model specifies the behaviour of the component at an abstract level  At this level the non   deterministic behaviour abstracts out the implementation details and only specifies that in response to a trigger  the component can  react in alternative ways  Verification using the ASD Suite guarantees that no non deterministic behaviour is specified in a design     To specify non deterministic behaviour in an interface model  you must specify more than one rule case with non exclusive guards for  a trigger  See  Adding or deleting a 
119. l are occurrences of     Call events on application interfaces      Events on modelling interfaces        The actions in an interface model are occurrences of      Reply events on application interfaces      Events on notification interfaces     Design Model    A design model is a model of the internal behaviour of an ASD component        lts implemented service and used services are specified by interface models     o It fully and deterministically specifies the internal logic of the component as one or more Sequence Based Specifications      A simple design is represented by a single Sequence Based Specification      A complex design is partitioned hierarchically into a main machine and one or more sub machines  Each of these is specified by a  Sequence Based Specification     a If the design is partitioned      There is one transfer interface defined for each sub machine through which the main machine and sub machine communicate      Transfer interfaces are not visible to clients or servers        The triggers in a design model are occurrences of      Call events on application interfaces of the implemented service      Reply events on the application interfaces of the used services      Events on the notification interfaces of the used services      Fora main machine  reply events on transfer interfaces      Fora sub machine  call events on its transfer interface        The actions in a design model are occurrences of      Call events on application interfaces of the used
120. le  gt Save  lt model_name gt As     gt Copy     menu item you can save an exact copy of the currently opened ASD model   Saving an exact copy comes handy in the following cases        lf you are not able to save your ASD model because it was opened in a read only mode or because the physical location is not  available anymore  or      In case you make changes and you save them and they do not turn out to be the right changes   Note        In case the currently opened ASD model is a design model only an exact copy of the design model will be saved  no copies are saved  for the referenced  i e  implemented or used  interface models        When creating an exact copy the currently opened model will not be saved     Using the  File  gt Save  lt model_name gt As     gt New M odel     menu item you can create a new model using the specified behaviour in  the currently opened model as a starting point     Note   o Ifthe model name or the main machine name matched the old file name  they are automatically renamed to the new file name     oa When creating anew model you have the opportunity to save your currently opened model before the newly created model is  loaded in the M odelBuilder        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling save_as  03 12 2012 09 34 35     ASD  Suite User Manual          Product Technology Resources Training Purchase Company       Conflicts    Your models 
121. le case defines the first transition to that particular  state  This identifies the shortest possible sequence of triggers to that particular state  the canonical sequence      en ae i in the  Target State  column  e g  line 33 in the previous figure  indicate a transition to the same state  called   self transition       The light grey line indicates the currently  active  rule case  e g  line 32 in the previous figure      The dark grey cell line indicates the currently selected cell line        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manu    5 0 user_interface tabs_panes_windows sbs_colours  03 12 2012 09 31 29     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       The context field above each SBS       The ASD Suite provides detailed information about a selected field in the SBS tab in an information  non editable  field located  just above the SBS table     The left part of the context field shows the state to which the currently selected rule case belongs  This is handy if the state row  is scrolled out of view     The right part of the context field shows extra information about the currently selected cell  For instance  if you select a cell in  the  Event  column  it shows the event declaration including the parameter directions and parameter types     SES States    Stabe Variables State Dasoram    Alarm  Activated jilerm fept injckgtant   valved       nieme  
122. le click the statuses in the status bar to see a dialog with more information        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 serverconnection serverconnection  03 12 2012 09 35 57     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Logging In    The Login dialog allows you to do three things  logging in  saving your models  and exiting the M odelBuilder  As described in   Session Management   you need to be logged in to use the M odelBuilder        To log in  you need to provide the following information     o User credentials  your user name  password and certificate file   pem file      ASD Server settings  indicates which ASD Server to connect to     Optionally  HTTP tunnelling settings  for using an HTTP proxy to avoid using port 443    All settings are described below  Note  most settings are hidden under the  More  gt  gt   button in the dialog     User Credentials  This identifies you to the ASD Server        Certificate  the path to the the  pem file that every customer gets from Verum  o   E mail  your e mail address  o  Password  your password    You can choose to save the password  or to clear a saved password  Note that the password is only saved in the registry after  a successful logon  This is because the server is used to encrypt the password for storage     ASD Server settings    This defines the ASD Server to connect to  For 
123. le name specified in the  File location and name   field  the file name is not updated when the information in the     M odel name   field is changed      You can specify a component name by specifying a file name in the file lookup dialog obtained when you press the  Browse        button next to the  File name   field    o Ifthe  Model name   field was empty  the name of the component will be the same as the name of the file   o Ifthe  Model name   field was not empty  the name of the component will not be changed after the file is selected     The following figure shows the  New Model  dialog after you have selected the design model icon in the left pane and you  specified  Alarm  as name for your design model     ae Alarm    Interface Model Fie location and name   Mr  bemp yf lodels  Alarm dm    Options   Design Model     Implement interface model  x   temp MyModels pallarm im   Browse          v  Copy 555 from interface model        Copy from model on disk        The  New Model  dialog for creating design models    4  Specify the implemented service by filling in the path or by selecting the file using the  Browse     button next to the     Implement interface model   field   Note  You are able to specify if you would like to create the SBS of the design model based on the SBS of the specified    implemented interface model  This can be done by checking the  Copy SBS from interface model  checkbox   5  Specify the component type for the ASD component  See  Specifying comp
124. left button of the mouse and type the desired text     The following figure shows the SBS tab after some comments have been entered for the rule cases     1S llam ppc eborh Inbit aces Hoticaton Inter  aces Pcediedirey Inher  aces    Tags    I   States   Stabe Variables    Acid bhii       Interface Event Guard Actors State Variable Upeates Target Skate Com ments Tags   Lo AlereNndtActivated  lt  gt    4 lari ES   Warm Moidflephy Alarmite lartovake ata   4 lire clear ega Magal   alirm nak actreated   5 Plwm Sherk lega Mega   alarm not actrested   6 JAlermINT AlsemTnpped Ditabled Cint occurnot ectyabed yat  Foo lemit Aleme Dirabled Cannot occurrat achvated yet  d AlarmActlvated  lt LAlarm Set gt    ii ljr ea   11 Als lear   ir ljr check     Lf Asmi Alzenl npped   i Samii   Alzenmbese      The SBS tab after filling in rule case comments       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling behaviour comments  03 12 2012 09 33 05     ASD  Suite User Manual       Training Purchase Company    Product Technology Resources       verum    Specifying tags  To attach tags  which you can define in the Tags tab of your model  to a rule case  click the cell in the Tags column  A dialog is  shown containing all your defined tags  Select the tags you want to have and click Ok        FJ Select tags    Tag Description  x  Regl _  The AlarmSystem shall only be de activated when the corect 3 digit code 
125. leted  if you add a parameter  arguments are added     Note  however  that parameters are matched by name  so a renamed parameter cannot be repaired  Choose the  Copy parameters  to design model  solution in this case to avoid arguments being deleted and added        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manu    aspx 8 5 0 modelling refactoring changeparameters  03 12 2012 09 34 28     ASD  Suite User Manual       Product Technology _ Resources Training Purchase Company       verum    Changing the Order of Events or Interfaces    You can change the order of events simply by selecting them and pressing Ctrl Up or Ctrl Down to move the table row up or  down  Changing the order of interfaces is a simple matter of selecting the interface tab and pressing Ctrl Left or Ctri Right to move  the tab left or right  Similar actions are available in the M odel Explorer  Changing the order in an interface model has no effect on  design models that use it  their order does not change  and also there will be no conflict about a mismatch        To make the order of events in a design model similar to the order in the interface model  right click an event in the design model  and choose  Sort like Interface M odel   Note that the interface model must be loaded for this to work        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modell
126. lose the  Un saveable Data  window   See  Un saveable Data  for details    M odel Navigator Open or close the  M odel Navigator  window  which shows the relationships between ASD models in a given directory   See  M odel Navigator  for details        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 user_interface menus view  03 12 2012 09 31 41     ASD  Suite User Manual       i Product Technology Resources Training Purchase Company       The Filters menu    Hide lilega Hide all rule cases that nave    Illegal    as only action   See  SBS Filters  for details     Hide Blocked Hide all rule cases that have  Blocked  as only action   See  SBS Filters  for details    Hide Disabled Hide all rule cases that have  Disabled  as only action   See  SBS Filters  for details     Hide Invariant Hide all Invariant rule cases   See  SBS Filters  for details     Hide Self Transitions Hide all rule cases that have their own state as Target State   See  SBS Filters  for details   Filter by text Ow only rule cases having the text in the edit box In the filtering toolbar   See  SBS Filters  for details   oggle Expression Text Mode Switch between interpreting the text in the filtering toolbar edit as basic text or as an expression   See  SBS Filters  for details     ump to Expression Edit Set keyboard focus to the filtering edit box in the toolbar   See  SBS Filters  for details    Expression Builder Ow a dialog 
127. machine     Then the new sub machine must be correlated to a Super state in the main machine  First  a new state must be created that  will become the corresponding Super state     Then  on the rule case that will define the transition to the newly created state  add a transfer call event corresponding to the   sub machine as the last action in the sequence of actions  and select the newly created state in the  Target State  column  Now   the new state has become a Super state  The  Blocked  action is filled in for all triggers in the new Super state with the exception of  the transfer reply events  Then fill in the proper action and target state for the transfer reply event s  that correspond with the    http   community  verum com documentation user_   df aspx 8 5 0 modelling create_dm sub_machines  1 of 2   03 12 2012 09 32 38     ASD  Suite User Manual    sub machine  The Super state Is now ready     Then  the sub machine remains to be completed  This is done in the normal way of defining the SBS  with one addition  after a  transfer reply event is used as an action in a sub machine  the target state always must be the initial state of the sub machine   The transfer reply event returns control to the main machine  and renders the sub machine inactive  When the main machine  after some time re activates the sub machine  this will again have to start from the initial state        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com doc
128. matically from the  interface models  They are used to verify that an ASD component interacts correctly at runtime with the corresponding  foreign component     2  For code generation  to generate the correct interface header files     Note  The handwritten implementation provided for the foreign component must correctly implement all methods declared in the  generated interface header files  This includes ASD specific methods like GetInstance  Releaselnstance  GetAPI  and RegisterCB        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 concepts components  03 12 2012 09 30 54     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Models       ASD supports two types of models        Interface M odel  o Design M odel    Interface M odel    An interface model is a model of the externally visible behaviour of an ASD component or Foreign component  i e  the service that  the component implements     o It identifies the component s application interfaces and notification interfaces and specifies their associated events      lt specifies the externally visible behavioural semantics of the component in the form of one Sequence Based Specification     a lIt may also specify modelling interfaces with associated events that are hidden from the client and are used to represent hidden  internal behaviour of the implementation     o The triggers in an interface mode
129. mation to you    System Diagnostics Trace Listeners Add new System Diagnostics ConsoleTraceListener      System Diagnostics  Trace AutoFlush  true        For Cthe tracing is limited to a single string literal message  This message is somewhat customisable through redefining the pre   processor macro responsible for compiling the message  The default implementation gathers function  file and line number        For Java  by default the DiagnosticsDefaultTraceHandle is used  This class is part of the ASD Runtime for Java and contains a println  to System out  In case you want to customize the tracing you can override this class by a custom version        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_   aspx 8 5 0 codegeneration prepare_code tracing  1 of 2   03 12 2012 09 35 34     ASD  Suite User Manual    http   community  verum com documentation user_   aspx 8 5 0 codegeneration prepare_code tracing  2 of 2   03 12 2012 09 35 34     ASD  Suite User Manual    verum           Product Technology Resources Training Purchase Company       Ensuring correct referencing of user defined types    When you specified parameters of user defined types in your ASD component you need to ensure that the files where you defined  the respective types are referenced in the generated code     The M odelBuilder provides an  Include import  field in the code generation  Properties  dialog of your ASD model to facilitate  the specifica
130. ments to the parameters  To pass data from one component to another  you can use so called   rule case local variables  and  component variables   or specify literal values  See  Parameter Usage        See  Example of  simple  Parameter Passing  for an example        2012 Verum Software Technologies B V  All rights reserved       http   community verum com documentation user_manu   f aspx 8 5 0 modelling parameters parameters_intro  03 12 2012 09 33 29     ASD  Suite User Manual          Product Technology Resources Training Purchase Company       Parameter Declaration    Parameters are declared in the interface models  in the event tables  Also  you can declare them in the transfer interface of a  sub machine of a design model  After the event name  you specify one or more parameters between round brackets     and       using commas to separate them     Each parameter declaration consists of three things     oa The direction   in    out  or  inout      Aname  a unique name for the parameter     A type  a data type in the programming language that you generate code for  e g   std  string  for a C  string     Here is an example parameter declaration   in  numberOfOranges  int  In this declaration   in  is the direction      numberOfOranges  is the parameter name  and  int  is the parameter type     Here is an example event with multiple declarations  SupplyFruit   in numberOfOranges int   in   numberOfApples int   void     Parameter Direction  The direction of the parameter de
131. n of the AlarmSystem example that you can download from the ASD Suite Community website  Suppose that  the hand written WindowSensor component has a construction parameter  sensorID  of type string     In the AlarmSystem design model  you can set this parameter in the Construction field of the primary reference        SjAlermsystem      implemented Service   Used Services   Tags       Frimary References   Secondary References    2  Sensor   oz liren     Timer       Reference Name 2instances  Service Used Interfaces Constructhon Instances in Venfication  E     Sensor_APl  1 WindowSencor 1  sensor Gensor CB  2 Sren i   Siren Siren_AP  Siren  3 Tirmmer i  Mirar n Mimer    Literal construction argument for WindowSensor    As you can see  we pass the literal value  1ID123  to the WindowSensor component  Literal values are specified between dollar  signs  They can be anything that is valid in the programming language you use  This argument is supplied in the call that  AlarmSystem makes to the WindowSensor  GetInstance at construction time     Example  passing a construction parameter as construction argument    Instead of supplying a literal value  you can also pass along another construction parameter from the parent component  In a  design model  you can define your own construction parameters  Go to the M odel Properties  and then click Code Generation   M ake sure that the  Interface  radio button is selected  Now you can enter your own construction parameters     E Properties
132. n this case however they cannot reliably see whether you renamed the event or deleted one event and  added another  The correct solution will usually be suggested to you first  but sometimes you may need to pick another solution  than the top one from the list        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling refactoring renameevents  03 12 2012 09 34 25     ASD  Suite User Manual    verum           Product Technology Resources Training Purchase Company       Changing Event Parameters    Changing event parameters in an interface model can be done simply by editing the event  The SBS of the interface model is not  affected   it automatically shows the edits     Any dependent design model  however  needs to have its SBS updated  For instance  if you add a parameter  the design model needs  to supply arguments for that parameter  This is a design choice that cannot be made automatically  However  the ASD Suite tries to  help out for the most common cases  Any differences in parameters between a design model and its interface models are reported  as conflicts     The conflict wizards will offer you two choices   Copy parameters and repair SBSes  and  Copy parameters to design model   The  first solution uses heuristics to change the SBS  For instance  if you change only the order of parameters  the SBS arguments are re   ordered to match  If you delete a parameter  arguments are de
133. n which the enumeration state variable is defined        Used Service Reference  for used service reference state variables  Used service reference state variables are mutable sequences  of component instances     Note  Used service reference state variables can be specified only in design models     The following list states the characteristics of the used service reference state variables      The name and maximum size of the used service reference state variable is recorded in the  State Variable  column of the   State Variables  tab  The maximum size must be specified within rectangular brackets directly after the variable name  e g  Robots 5        For a used service reference state variable the data in the  Constraint  column specifies the type of the variable by referring to the  type of a primary reference   Note  You can not specify a secondary reference as the type of a used service reference state variable in the  Constraint  column   Instead  you have to specify one of the primary references used to construct the respective secondary reference      The initial value of a used service reference state variable is a string that can be constructed from the names of primary and   or secondary references and the operators described in  State Variables for Used Service References    Warning  The usage of many or large used service reference state variables will increase the state space considerably and may result  in verification performance problems     See  Specifying 
134. nce  the AlarmSystem  component should use the construction parameter called  someSensor  that was defined in the model properties        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manu   x 8 5 0 modelling construction_parameters instance  03 12 2012 09 33 57     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Passing a vector of instances at construction time       In  Passing an instance of a used component at construction time   exactly one sensor instance was passed to the component  But it    is also possible to pass a vector of sensors to the component  This way  you can defer the decision of how many sensors to construct  to the hand written client     Firstly  we change the type of the construction parameter     Factory Method   Getinstance returns a      Interface  Construction parameters    in someSensor service    Sensor       Component  deprecated     Service vector construction parameter    Note that there are now square brackets after the word  service   The parameter type  service   modelname   denotes a vector of  instances of components that implement the given interface model  The exact effect of this declaration on the generated code is  described in component instantiation integration in C  C   Java  C  or TinyC     A construction parameter of type service   can be used for any primary reference that does not have length 1  Below is an example  whe
135. nce of a broadcasting notification interface more than once before unsubscribing only the first  request is considered  In other words  calling Subscribe on an already subscribed broadcasting interface has no effect        Every Unsubscribe event will be followed by an asd_Unsubscribed notification event  Even when you call an Unsubscribe on a  broadcasting interface multiple times  or when you are not subscribed        In case you specify one event as not observed  the event will not appear as trigger in the SBS tab for your design  i e  you will not  have to specify a  set of  rule case s  for the respective event       Since the choice of observing a large set of events from the publishers you subscribed to  and the  sometime  large number of the  respective events might cause a saturation of the queue  it might be useful to define one or more of the respective events as  Singleton Event  See  Singleton Notification Events  for details        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_m    _ pdf aspx 8 5 0 modelling publishers_observers  2 of 2   03 12 2012 09 33 47     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Construction Parameters       Component instantiation   main concepts and default behaviour    From every interface model  an interface is generated in code  From every design model  a component is generated which  implements its interface  Of this com
136. ned  verified or when code is generated  You can also manually check  for conflicts  Select the  Tools  gt Check Conflicts  menu item     Continuous Conflicts Checking    If a conflicts check  either automatic or manual  results in conflicts  then the conflicts are re checked every time you make a change  to the model  Once the last conflict is fixed  re checking conflicts is automatically disabled again  For large models  this  continuous conflicts checking might be inconvenient  For this reason  you can disable this behaviour under Tools Options Appearance     Clearing the Highlighting    You can remove the orange and yellow highliting from the model by pressing Tools Clear Conflicts  This also clears the Conflict  Results window        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 conflicts check_conflicts  03 12 2012 09 34 38     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Fixing conflicts       If your models have conflicts  you can change your model manually to fix the conflicts  The table below has suggestions for what to  change for every conflict  However  the Suite can fix many conflicts automatically  In the Conflicts Window  there is a column called   Solutions   If there are automatic solutions available for a conflict  this will display a  wizard  icon and the number of available  solutions  To automatically solve a conflict     oa
137. nerated for Project    by Verum ASD Suite Release 3  version 8 1 0 42234      Generated from ASD Specification  Siren im  last updated 2012 03 09T17 33 58  Me CheT REC RE CEPI EPCS CPE CECE eee eee eee ee eee eee eee eee eee eee eer eee re se                 iF      Copyright 2012 Verum Software Technologies BV  iy   TA      Just some other text   if    ifndef _ ISIREN_INTERFACE H_ _    define _ ISIREN_ INTERFACE _                                         include  passbyvalue h      include  lt boost shared_ptr hpp gt    include  lt boost thread mutex hpp gt    include  lt boost thread condition hpp gt              class ISiren_API     pub Lic    enum PseudoStimulus           lt summary gt       The VoidReply event indicates that the processing of the API call has been completed      and the call can return when appropriate        lt  summary gt   VoidReply  i  virtual  ISiren_API                       lt summary gt        Turn the siren on        lt  summary gt    virtual void TurnOn     0             lt summary gt   f f  Turn the siren off       lt  summary gt                                      virtual void TurnOff     0   protected   TSiren_API       private   TSiren_API amp  operator    const ISiren_API amp  other    TSiren_API  const ISiren_API amp  other             class ISirenInterfac                                                                                 public   virtual  ISirenInterface       virtual void GetAPI  boost  shared_ptr lt ISiren_API gt      0   
138. ng Purchase Company       State Diagram       The State Diagram tab in the M odel Editor contains a graphical representation of the selected M ain M achine or Sub M achine       sps   States   State Variables   State Diagram    34 A Pian CSV Er ma MF Ds          Deactivating        State Diagram    The colouring scheme for the states correspond to the colouring scheme in the SBS  Normal states are indicated in blue  super  states have a lighter colour  synchronous return state have a diamond shape to indicate a choice is being made  and floating state  are coloured orange     The State Diagram tab has its own toolbar  where the various buttons have the following meaning       r   Export   Export the state diagram for the selected machine to an image file       ie   Print   Print the current state diagram       f   Zoom In   Zoom in in the current state diagram       P   Zoom Out   Zoom out in the current state diagram       H   Fit height   Fit the state diagram in the available window height        gt     Fit width   Fit the state diagram in the available window width       le   Fit page   Fit the state diagram in the available window size       fal   Show self transitions   Enable  disable showing of self transitions in the state diagram           Show floating states   Enable  disable showing of floating states in the state diagram         Display data in accordance with the custom filter settings  For example  if there is a custom filter defined  Y Follow custom filter an
139. ning definitions of user defined types     For Java the content of the  Include import  fields should be zero or more import statements  one per line  An import statement  looks like     import com verum  lt DirName gt     where DirName is the name of the directory where the user defined classes are   Note     o   FileName and DirName are strings containing only alohanumerical characters     oa The ASD Suite performs a series of syntax checks on the content of the  Include import  fields and will report errors if syntax is  incorrect     mw    http   community  verum com documentation user_    8 5 0 codegeneration prepare_code referencing  1 of 2   03 12 2012 09 35 37     ASD  Suite User Manual      Whenever user defined types are used in the component implementation  specify the include import statements in the  Include   import  implementation   field     oa Whenever user defined types are used in specifying component construction parameters  specify the include import statements in  the  Include import  declaration   field        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_    8 5 0 codegeneration prepare_code referencing  2 of 2   03 12 2012 09 35 37     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       verum    Specifying path to user provided text for code customization       The M odelBuilder enables insertion of user provided text  like copyright text  in the gen
140. nterface  const ISirenInterface amp  other                                         endif       i 7     Copyright 2012 Verum Software Technologies BV  if       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_   codegeneration prepare_code text_file_generate  1 of 2   03 12 2012 09 36 31     ASD  Suite User Manual    Terms of use   Privacy Policy    http   community  verum com documentation user_   codegeneration prepare_code text_file_generate  2 of 2   03 12 2012 09 36 31           
141. nu item to initiate the ASD Runtime download process  A Download  Runtime dialog box appears        A  imcl  ensor   ASD Suite ModelBuilder Release 4   Sensor  Sensor im   File Edit View Filters Session Verfication   Code Generation   Tools Help       t  E H 8g L i A A a 2 Generate Code Fi  a Generate Code With    Shift  FY  Model Explorer E x eee  i w  Generate All Cod Ctrl Fy    4 Models 1    Esen    eee j ai        Sensor ee w  Generate Stub     4 Main Machine SBS   Download Runtime     1 E Sensor    Deacty Determine Model Size    States   l  State Variables   Interface Event Guard    4 Interfaces 1 Deactivated  initial state     Menu item to download the ASD Runtime    o Choose the ASD Runtime language and version number from the dropdown lists      Select the output path where to store the ASD Runtime files      Select the OK button to begin the ASD Runtime download     a Download Runtime    Code generator    Language    nA    version            Gutpuk path     Temp   Browse           Cancel         The  Download Runtime  dialog  When finished  a list of the ASD Runtime files that have been downloaded appears in the ASD Suite  Output Window    The download is complete when the     Finished successfully    message appears in the  Output Window      See the  ASD Runtime User Guide  for details about the ASD Runtime        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 codegeneration downl
142. o conform to the parameter storage  not match the direction of the parameter process described in  Parameter Usage      RC84 e storage specifier attached to an argument Inthe action does jChange storage specifier to conform to the parameter storage  not match the direction of the parameter process described in  Parameter Usage      RC85 A reply event  e g  VoidReply  may not be followed by an update of  Ensure that in the sequence of actions no  out     Inout   an  out  or  inout  parameter whose value is specified to be parameter that is decorated with  lt  lt or  gt  lt  is updated after the  rrr Rees renee  RC104 A reply event can not have  out  or  Inout  parameters Remove the  out  or  Inout  parameter from the declaration o  RC105 An argument should not have the same name as a component Ensure that the name is different or for both references storage    RC10  erbatim arguments on a trigger are only allowed for  out ange the parameter direction or replace the verbatim  parameters argument with a component variable     RC109 If non cloning of parameters is selected  the execution type ofthe  Ensure that the execution type of the component Is  Service should be SingleThreaded  SingleThreaded otherwise parameter cloning is not allowed  or  clear the non cloning flag in the code generator settings        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_man   onflicts arguments_parameters_component_variables  03 12
143. oad_runtime  03 12 2012 09 35 54     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Session Management    To use the ModelBuilder  you must be connected to the ASD Server  and be registered as an authorized user  If you are not  authorized  you are presented with the Login dialog  The only things you can do in this dialog are logging in  saving your models  and  exiting the M odelBuilder           For making a connection  see  Logging In    o For easily switching between different user or server settings  see  Saving Connection Settings         Optimising for long latency connections is described in  Long latency Connections      When you start the M odelBuilder  you can already start to use it while the M odelBuilder automatically seeks connection with the  ASD Server  If making the connection fails  making the connection takes longer than a minute  you are presented with the Login  dialog until you are connected and logged in     Grace Period    Once you are logged in  you can view and edit models  If the connection is interrupted  you can still continue to work for a small  period of time called the  Grace Period   The duration of the grace period is set by Verum on a per customer basis  Note that your  grace period may be zero  When the connection is interrupted  the M odelBuilder automatically tries to re connect in the  background  If the grace period expires without a connection having been established  the M odelBuilder will 
144. ocked as action    RC60 Only Blocked can be specified as action in the indicated rule case     Press Shift 8 to automatically fix the conflict or change the  See  State types in a design model  for the rules about allowed action to Blocked  RCO1 Blocked can not be specified as action in the indicated rule case  See  Press Shift 8 to automatically fix the conflict or change the   State types in a design model  for the rules about allowed actions faction to Illegal or any other valid action  O A rule case can not have more than one valued call event in Its Ensure that there is at most one valued call event per rule case  actions  because after a valued call  the component needs to go to a  pn fins te return state to look at the return value a    RCO3 fA rule case can not have more than one reply event in Its actions  Ensure that there Is at most one reply event per rule case  RC64 A valued call event must be the last event In the actions of a rule Ensure that the valued call event Is the last action in the rule  case  because after a valued call  the component needs to go toa fcase  Synchronous return state to look at the return value    RC65 A transfer reply event must be the last action in the actions of a rule  Ensure that the transfer reply event Is the last action in the   gt  fe eaen mis ee aao naoso ae fitionsoftherule case S e aon  RC66 Each rule case which has a transfer reply event as action must have  Ensure that the rule case which has a transfer reply event as  ane
145. oduct Technology Resources Training Purchase Company    verum    Passing a shared instance at construction time    Suppose you want two ASD components to share the same instance of a used component  and that you don t want to make the  used component Singleton  What you can do  is pass the shared instance as a construction parameter to both components        In the example below  we have an extra  M onitor  component next to the AlarmSystem which monitors the sensor  It should  monitor the very same sensor that the AlarmSystem is using  so we want to pass the same instance to both components           Design time Construction tine  implements implements          li constructs     constructs   Pi 1 n  ERA E passing passing  dl Manitor iim ia aiaia WindowSensor WindowSensor      instance instance  ri f w  i if    WindowSensar       Monitor  Component Component Comipanent  Instance Instance Instance    Passing the same instance to two components    In both Alarm dm and M onitor dm  we can define a construction parameter of type  service Sensor    At construction time  we  can create a Sensor instance and pass it to both components  In C   this would look like     mySensorInstance   WindowSensorComponent  GetInstance     myAlarmInstance   AlarmSystemComponent   GetInstance  mySensoriInstance     myMonitorInstance   MonitorComponent  GetInstance  mySensorInstance          2012 Verum Software Technologies B V  All rights reserved          http   community  verum com documentation u
146. old Comments    1  UserCBEvent  in x int           Application Interface  IUser  and Notification Interface  IUserCB  of interface model  User     The following figure shows the SBS of the design model of  SimpleUser   illustrating simple parameter passing between the events     http   community  verum com documentation user_   spx 8 5 0 modelling parameters example_passing  1 of 2   03 12 2012 09 33 40     ASD  Suite User Manual    EH iker   Used Services Tey     ss   aimes   Stabe iabe    hart    Intedace Ent Giad Aan Mate Wariiblke Ugzses    Tepget ate Comnen Teg   1 Start se  gt  E    n Une dete neers e Mied Wed Even chee   E ery  la Jc Wubit E Lhar MoidAaphy  Une detente ised eien                     Wiles     nri  E Jer Lierbwenk ity  Ther Mande hy  Une dete nec    Diced  Weck venta le ae  S User Lherteenticl Ups d2efeneret e red Lue veneer      Lier tod Reply       jo UsedReterencelusedCh Weed Ceeventeh  eet BU sel Ese vie        Simple parameter passing example    A sequence diagram representation of the parameter passing specified in rule cases 5 and 6  is shown in the next figure     Client Userlomponent UsedComponent       1  User  Event32     2   Used UsedEvent3atz  v     3  4  Used  UsedEventsbt   v        7  IUsedtE  Used CBE vent          6  WserCb  UserCbeventis        Simple parameter passing example  Below we explain what happens in the 8 steps that are depicted in the previous figure        Steps 1 6  When the Client issues Event3 with  inout  argument Z  t
147. ompany       Operational semantics of rule cases       At runtime  a single detail row  a rule case  is interpreted as follows        When the trigger occurs and the guard evaluates to  true   or is omitted   then  as a single atomic action  all of the following occur      The actions are executed in the order in which they are specified in the  Actions  column     The state variable updates are performed  using simultaneous assignment semantics      The state transition takes place        lf an action is defined as  valued   i e  one that gives back a synchronous reply  it must be the last action in the sequence of actions   The reply is processed as a trigger that occurs after the state transition has taken place     The following figure shows a set of rule cases specified in an SBS     ba Sie   Taia Venatin    hicbiri   hintere Evert fund Anker Seat Aiie ipie Trga Hate Corer  ln    i Hatictivened oe    Io G  ren iF Frat hie   resale aig crit itive hile Ani oiii  4   Parian AF echo Baqi   Biega   abort cot ected ed  T Gide nore Ci Dhea Bazal  G Mirdi biro iw E lei Hoyi  l Venere    Terese Boge  E Fethab dh Aeri APL be  D sritan AF Parkir  Hezi   Tiagu  auem ytan HHady asi  u Bamian SP  bar hI  Mis mhein APTE if Dearth Cech mrar   irae nr Gere A Loerie   i  QindewreocEarearCl ieam Pilaniya CE Tippit Activated Trigg Sencar dackacad mewta   chet tires    Tira Tie Cred Tiere  43 Gordeeseroc  Eee CE Decherd Broyl  E Tirede Timer i Begu       2012 Verum Software Technologies B V 
148. on all members of a used service reference variable and wait for all of them to respond    Note       deactivate  is a used service reference state variable for all the sensors to be deactivated       deactivated  is a used service reference state variable for all the sensors which are deactivated      The  deactivate in deactivated  that  guard evaluates to true if all members of  deactivate  are present in  deactivated    that    deactivated  that  translates to the  deactivated  sequence together with the current service instance    You can refer to used service references  primary secondary references or used service reference state variables in combination  their operators  in several ways when adding actions     myReference IM yAPI Start call Start on every service instance in myReference  myReference 3  IM yAPI Start call Start on the third service instance In myReference    at IM yAPI Start call Start on the service Instance that generated the trigger  ead myReference   IM yAPI Start call Start on first service instance in myReference  all myReterence   IM yAPI Start all Start on every service instance in myReference  except the first one    where myReference denotes a primary reference  a secondary reference or a used service reference state variable   Note        o  The used service reference of a valued action must always be a singleton  i e  a reference of length 1   a The used service reference of a void action must contain at least one element        2012 Verum 
149. on and specification of  state variables     Note  In an interface model there is only one machine        Application Interfaces  shows the set of call events and reply events for each defined application interface and facilitates  the specification of new application events     Note  There is one sub tab per defined interface   o Notification Interfaces  shows the set of events for each defined notification interface and facilitates the specification of  new notification events     Note  There is one sub tab per defined interface    a 7 ae  co Modelling Interfaces  shows the set of events for each defined modelling interface and facilitates the specification of new  notification events     Note  There is one sub tab per defined interface   o Tags  shows the list of requirements defined for the component and facilitates the specification of additional requirements  that emerge during the design phase        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_m    5 0 modelling create_im create_interface_model  2 of 2   03 12 2012 09 32 20     ASD  Suite User Manual          Product Technology Resources Training Purchase Company       Interfaces and Events    The first thing to do when creating an interface model  is to define its interfaces and events  An event is analogous to a method or  callback that your component exposes  An interface groups multiple events together     Application Interfaces and Application Even
150. onent type  for details     6  Click  OK    When you click OK  anew design model is created  saved and opened     Note      To change the name of the component  double click on the component name and type a new name  You may also do this by selecting    the component name in the  M odel Explorer  window and pressing F2  This does not change the name of the file     The following tabs are shown in the  Alarm  Alarm dm    which is the  M odel Editor  for the Alarm dm   o Alarm  a tab for the main machine  containing the following sub tabs   ao SBS  shows the SBS for the machine   ao States  shows the list of states defined in the machine and facilitates the specification of informal design information about the  states   ra er Panel shows the list of state variables defined for the machine and facilitates the declaration and specification of state  variables   Note  In a design model  there might be more machines  one main machine and zero or more sub machines  See  Sub M achines  for    details about adding and using sub machines        Used Services  shows the list of used services together with the interfaces that are used in three sub tabs  Primary References   Secondary References and a tab per used service  See  Specifying used services  for details about used services   o Tags  shows the list of requirements defined for the component and facilitates the specification of additional requirements that  emerge during the design phase      Inthe remainder of this user guide  
151. onstruction argument  If not a literal  is declared as a construction  declared parameter in the design model properties  or as a primary reference    R ere Is a syntax error In the construction field of JEnsure that the data specified In the construction field complies with the syntax  the specified primary reference or declaring construction parameters   RCI ere snou ue defined in the Ensure that the   nstances in Verification    field is empty    nstances in Verification  field since the used  reference is used only for component injection    RCI53 ransfer interfaces can only have valued events   Remove or rename the VoidReply event   So they cannot have a VoidReply reply event        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 conflicts syntax  03 12 2012 09 34 47     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       verum    Fixing name duplicates       The following table shows the messages for the situations in which a name of some items appears more than allowed     Error Code  Explanation eee  RC16 Each interface in an ASD model must have a unique name    RCI  Each event  or reply event  in an Interface  must have a unique name in the context o  the respective interface    Each state must have a unique name in the state machine In which It is declarea   RC21 Each state variable must have a unique name in the context of the machine in which 
152. oose to do the following    Upgrade  the model file will be upgraded and saved in the new format   You can edit this upgraded model and perform all operations using the  new version  Note  This upgrade is performed only on this model file  not  all related files  They will need to be upgraded individually     View Only  the model file will be opened in Read only mode keeping the  older format     Upgrade Alk all models in a selected folder and all its sub folders will be  upgraded and saved in the new format  Note  this action can also be  started from the  File  menu     Cancel  Exit without opening any model        Upgrade dialog    The following table shows the effect of choosing one out of the four options presented above in case of an interface model     as ee  i ee    The following table shows the effect of choosing one out of the three options presented above in case of a design model     Operation cca Mod Related Interface Models     No    oe  ial  Sm       inal                  Cance       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 upgrade  03 12 2012 09 30 51        ASD  Suite User Manual          Product Technology Resources Training Purchase Company       ASD concepts    Components    ASD is a component based technology in which systems are composed of a mixture of ASD components and Foreign components   Within ASD  a component is a common unit of architectural decomposition 
153. or a vector of injected services    in sensors  service   ISensor      Note     o When you want to define multiple construction parameters you specify them in a comma separated list  o  The border of the  Construction parameters  field is coloured in red if the syntax is incorrect    See  Construction Parameters  for details        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_man   degeneration prepare_code construction_parameters  03 12 2012 09 35 30     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Specifying the output path and attribute code with tracing information       When you want to specify an output path for the generated files or you want to include tracing information in your generated code   fill in the respective data in the code generation  Properties  dialog of your ASD model     You can access the code generation  Properties  dialog of your model by selecting the ASD model in the  M odel Explorer   right   click  select the  Properties  in the context menu and choose your target language under the  Code Generation      The following figures show the code generation  Properties  dialog for target language C  in case the ASD model is an  interface model  or a design model  respectively     EA Properties of ISensor HT     General  4 Code Generation  Ez Path interface files       codeepolarc generated   Browse       C     C   Java    Output paths    Head
154. passed to its WindowSensor instance in turn     At construction time  the AlarmSystem component can now be instantiated as follows  C example      myAlarmInstance   AlarmSystemComponent  GetInstance  my string value       http   community  verum com documentation user_   0 modelling construction_parameters parameters  1 of 2   03 12 2012 09 33 54     ASD  Suite User Manual       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_   0 modelling construction_parameters parameters  2 of 2   03 12 2012 09 33 54     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Passing an instance of a used component at construction time       Instead of letting a component construct its own used instances  you can also pass instances to it at construction time     For this to work  the component must define a special type of construction parameter  and then use this construction parameter in  the primary reference     Design time Construction time    Hand wrilian GUI  Alarm dm defined    a construction  implements parameter of type       Semice Sensor  constructs    Constructs  ana  passes  Alarm dm  mamam   In the primarts WindowSensar    reference  the  i     parameter is         WindowSensor    Component  Instance        instance    used       Alarm Component    Instance    USES    Passing a used component instance at construction time    First  we define the construction parameter in the Al
155. ponent  you can construct one or more instances at run time  Also  you can define that an ASD  component constructs instances of other components  you do this by defining primary service references     Each primary reference defines the service  interface  that it expects  and also the component to instantiate to implement the  interface  The latter is specified in the  Construction  field     Design time Compile time Construction time    GUI Component   lt hand written gt     Hand written GUI       Uses    Alarm Interface constructs       implements implements       Alarm Alarm Component  Alarm dm  Component Instance  USes Uses    Sensor Interface constructs    Window Sensor  Component  Instance    For instance  consider the picture above  In the leftmost column  we have an Alarm dm design model which implements the Alarm   im interface model  In turn  it has a primary reference which refers to the Sensor im model  This primary reference has   WindowSensor  in its Construction field  indicating that it should construct an instance of a component called  WindowSensor  at  construction time     Sensor im       implements    WndowSensor  Component     lt hand written gt        models  components  instances    The second column depicts the compile time situation  presumably  there is hand written code all around the generated ASD code   a GUI  which uses the Alarm component  and a hand written Sensor implementation which is called  WindowSensor      Finally  in the third column 
156. protected   TSirenInterface       private   TSirenInterface amp  operator    const ISirenInterface amp  other    TSirenInterface  const ISirenInterface amp  other                                         endif       http   community  verum com documentation user_m   0 codegeneration prepare_code text_file_include  1 of 2   03 12 2012 09 36 28     ASD  Suite User Manual       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_m   0 codegeneration prepare_code text_file_include  2 of 2   03 12 2012 09 36 28     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Example of generated code customization when the specified text file has a   generate  directive       Let s consider the Siren interface model  known from the AlarmSystem example built and distributed by Verum  and the  copyright   txt  file with the following content      lt generate  gt     I     Copyright 2012 Verum Software Technologies BV  II        and the C  code generation properties for the Siren interface model as follows     IEA Properties of ISensor    General  4 Code Generation  E Path interface files    codelepplarclgenerated   Browse       C      ii    7 Header and footer information    Output paths       These is the C  header file obtained after generating code from the Siren interface model     PE GLITETT EIT ET ET PEP TET IT ELE LILLIA Pee Pea ETL ee IVA Tec eee ea Tea Te eT ee     Generated for Project  
157. pt overview  03 12 2012 09 36 08     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       ASD Suite Commandline Cient    The ASD Suite Commandline Client is a commandline application which allows the use of several features of the ASD Suite from  the command prompt           Checking the availability of code generator languages and versions  a Download the ASD Runtime  a Generate code     Generate stub  This section gives several usage examples  For details  use asdc exe     help  You can also get help on a specific command  e     g asdc exe   help   generate code provides help for generating code  The tool also supports the standard wildcards  and recursion mechanism so you can easily run it on multiple models     The exit code that asdc exe returns is always 0 for success and  1 for failure  If you specify multiple models to be processed   processing stops at the first failure   remaining models are not processed     M aking a Connection    The ASD Suite Commandline Client needs a connection with the ASD Server to do its work  If you have already established  connection with the ASD Suite M odelBuilder and you saved your password  these settings will be used automatically  Otherwise   you can specify the connection settings on the command line as well     For example     asdc exe  s  asd verum com   p 443  u  user example com   c  C  certificates 123456 pem     If you need an HTTP proxy  add the following options       http proxy  myprox
158. r  but could  report a livelock where none would occur in a real system  for instance when a  polling loop  is used   When you double click on  the red cross icon  the corresponding verification results will be loaded in the M odelBuilder     9  question mark  the verification status cannot be determined  this can either mean that      the model has not been verified before     inthe last verification not all checks were selected     the verification results are outdated because of a change in either the design model or one or more of the related interface models    The M odel Navigator window has its own toolbar  where the various buttons have the following meaning       4   Export   Export the model overview to an image file           Print   Print the current model overview       F    Zoom In   Zoom in in the current model overview       P   Zoom Out   Zoom out in the current model overview       E    Fit height   Fit the model overview in the available window height        gt     Fit width   Fit the model overview in the available window width         Fit page   Fit the model overview in the available window size       x    Show stereotypes   Toggle the display of stereotype information in the model boxes       Toggle the decoupling on or off  This is useful if models have a lot of  incoming  dependencies  It re   B Set Decouple Threshold arranges the overview such that for models that have more  incoming  dependencies than the set  threshold the connecting lines are brok
159. r notification events as Singleton Ensure that the specified timer notification event is not flagged as  RoE     fee Singleton event  e event queue must be at least of size 1 Ensure in the design model properties that the specified size for  he event queue is greater or equal than 1    ere are one or more call events with return type  void   but you fAdd an event named  VoidReply    to the reply events table   do not have a VoidReply event in the corresponding reply events  table  You need a VoidReply as answer to void events        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 conflicts interfaces  03 12 2012 09 34 53     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Fixing argument  parameter or component variable related conflicts       The following table shows the specification conflicts related to arguments  parameters  or component variables used in building  the ASD model     Error Code  Explanation Pd    Events on a Modelling Interface can not have parameters Remove the parameters trom the declaration of the respective  event  RC29 Events on a Notification Interface can not have  out  or  Inout Remove the  out  or  Inout  parameter from the declaration o  parameters he respective event    RC   e number of arguments In a specified response must be the Ensure that the list of arguments used In the response matches  Same as the number of par
160. r of type service     to achieve  many instances to put into a primary reference is no longer supported  the same effect   as of ASD Suite version 9 0 0     RC159 ou have two services with the same model name  Open either of the two interface models and change the  model name in the model explorer     by restructuring your          RC155    RC15        http   community  verum com documentation user_manual_pdf aspx 8 5 0 conflicts used_services  1 of 2   03 12 2012 09 35 00     ASD  Suite User Manual    e use of singleton notification events will not be supported as of ASD   Singleton events are useless in the single threaded  Suite version 9 0 0 for models that implementing an interface model since the notification events are not processed until the  which has the Single threaded Execution M odel  thread of control returns to the component that receives  them  Therefore there will be either zero or one event  processed  which is usually not the intention when working  with singleton events  where you typically want only zero or  one in the queue  but multiple events processed if there is  processing time   M ake the event non  gees  dels have an automatically generated unique Identifier  This Open one of the r els  C  identifier   is not visible in the M odelBuilder If you copy paste an ASD New Model  H save the model under its own name  It will  model e g  in Windows Explorer  then you end up with two ASD models  be overwritten and get a new unique identifier  In the    with
161. r remove the state variable updates  Disabled as action    In a SingleThreaded model it is not possible to have a reply event on  Change the actions or the execution model  a modelling event trigger because this always results in deadlock       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 conflicts rule_cases  03 12 2012 09 35 03     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Fixing state variable and guard related conflicts       The following table shows the specification conflicts related to specification of state variables and or guards when building ASD models     Error Code__  Explanation a eee a ant      RC8   e indicated state variable is not declared in Ensure that the specified state variable is declared correctly  conformance with the rules of defining a state  variable in ASD modelling    RC88 Used service reference state variables should havea fEnsure that there Is a size  gt  1 specified for the used service reference state  size specified in square brackets behind the name  e g   variable  var 1   Only variables of type Used Service Reference canbe Remove the size indicator or change the type of the variable to Used Service  declared with a size  e g  v 4  Reference    g  VI4    Ensure that there Is a constraint specified for the respective Used Service  Reference state variable in the  Constraint  column  9 led for the indicate
162. rameters do matter  See  Refactoring ASD M odels  for more Caveat  the latter wizard cannot cope with renamed parameters    details  since it will see those as deleted and added  Therefore it will  delete and add arguments in that case  The wizard is capable of  changing the order of arguments when the order of the  parameters has changed  and also of deleting and adding  arguments if parameters are deleted or added    RC148 e reply type  valued  void  of a call event is different between the Change the reply type to match  Note that you may have to  design model and the interface model  See  Refactoring ASD adjust your SBS   Models  for more details     RC149 ou cannot use the same interface model as both an Implemented ange the relative path of either the implemented service or  model and used model  Usually  the M odelBuilder will prevent you  the used service to point to a different interface model     rom doing this   RCI50 ou cannot Nave two service dependencies to the same Interface ange the relative path of one of the service dependencies to    model  Usually  the M odelBuilder will prevent you from having this  Jooint to a different interface model     e e   he design model  The model name is only used as tab name within Jchoosing  Rename    he  Implemented Service  or  Used Services  tabs  See    Refactoring ASD M odels  for more details        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf a
163. rator    Stub generation settings  Client Stub  Construction  stub    Construction  used      Sensor      Used Component Stub  Construction  stub   Sensor    Component type  Multiple ka  Generate a proxy dass for each interface  Generate debug info  Generate synchronization primitives    Output path    _fcode src generated       The Generate Stub dialog  Note        Fora Client Stub           the data in the  Construction  stub   field denotes the name of the client and complies to the following syntax     M yComponentName construction parameters       where the syntax for defining construction parameters is the same as the one presented in the  Defining construction  parameters section        the data in the  Construction  used   field denotes the name of the ASD component and complies to the following syntax   M yComponentName construction parameters       where the syntax for specifying construction parameters as arguments is the same as the one presented in the   Specifying construction parameters section     http   community  verum com documentation user_   al_ pdf aspx 8 5 0 codegeneration generate_stub  1 of 2   03 12 2012 09 35 50     ASD  Suite User Manual    e For a Used Component Stub     the data in the  Construction  stub   field denotes both the name for the component and the signature for its GetInstance   method  and complies to the following syntax     M yComponentName construction parameters       where the syntax for defining construction parameters is the 
164. re the construction parameter is used for a primary reference of length 2  Note that passing a vector of a different length at  construction time will result in a run time error       AlarmSystem        Implemented Service   Used Services   Tags    Primary References Secondary References    7  sensor  2 ISren  2  Timer      Reference Name finstances  Service Used Interfaces Construction  Instances in Verification  1 WindowSensef 2   Bensor nore ty use someSensor  2 Seni  Biren iren_API Siren  3 Timer l  TTinner ssa a Timer    Using a service   construction parameter    This construction parameter can also be used in combination with the asterisk feature  This allows passing different amounts of  sensors at construction time  note that the model checking is limited to the value specified as   nstances in Verification       E  AlarmSystem        Implemented Service     Used Services   Tags    Primary References   Secondary References    2  Sensor    2    ren   oe  Mimer    Reference Name Finstances  Service Used Interfaces Construction    nstances in Verification  i WindowSensdft 1  sensor mae use someSensor El  2 Siren   Sinem Biren_AP  Siren     Mimer     3 Tomer l   inner TimercE  Timer    Using a service   construction parameter with the asterisk       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manu   spx 8 5 0 modelling construction_parameters vector  03 12 2012 09 34 02     ASD  Suite User Manual       Pr
165. renInterface amp  other                                         endif          2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_m   egeneration prepare_code text_file_no_directive  1 of 2   03 12 2012 09 36 25     ASD  Suite User Manual    Terms of use   Privacy Policy    http   community  verum com documentation user_m   egeneration prepare_code text_file_no_directive  2 of 2   03 12 2012 09 36 25           ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Example of generated code customization when the specified text file has an   include  directive       Let s consider the Siren interface model  known from the AlarmSystem example built and distributed by Verum  and the  copyright   txt  file with the following content     II     Copyright 2012 Verum Software Technologies BV  II     lt include gt some other text txt lt  include gt   where this is the content of the  some other text txt  file          Just some other text            and the C  code generation properties for the Siren interface model as follows      6B Properties of ISensor Ea     General    4 Code Generation Output paths    Path interface files   codelepplarclgenerated   Browse         Header and footer information       These is the C  header file obtained after generating code from the Siren interface model     Pi BECTTAAT AP ETT TET PETE TI EAT I TPT Ea ETP aR PET TORT ae eT ae Eee eae thi sei eae     Ge
166. restrictions                                             d      1  Redistributions of source code must retain the above copyright notice      definition  disclaimer  and this list of conditions     d      2  Redistributions in binary form  compiled executables  must reproduce  E the above copyright notice  definition  disclaimer  and this list of     conditions in documentation and or other materials provided with the  it distribution  The sole exception to this condition is redistribution     of a standard UnZipSFX binary as part of a self extracting archive       that is permitted without inclusion of this license  as long as the      normal UnZipSFX banner has not been removed from the binary or disabled   R      3  Altered versions  including  but not limited to  ports to new      operating systems  existing ports with new graphical interfaces  and  ja dynamic  shared  or static library versions  must be plainly marked     as such and must not be misrepresented as being the original source      Such altered versions also must not be misrepresented as being      Info ZIP releases  including  but not limited to  labeling of the      altered versions with the names  Info ZIP   or any variation thereof      including  but not limited to  different capitalizations         Pocket UnZip    WiZ  or  MacZip  without the explicit permission of     Info ZIP  Such altered versions are further prohibited from      misrepresentative use of the Zip Bugs or Info ZIP e mail addresses or  
167. rn        General  Code Generghor       Pist     Rl  nana   Verueti    Presabel    fiir  Feler van de Velde   Ex ixcuiticarh Mide   Staria tet   Cates   Craaiad ate     Haiden    20   Carico    fare sysher Brat can be pvabchesd onlo by omg kep  F sensor is actreated k can sensa siroty  F it dows    ps the  diam  Incase of alanm ihe cen val make meine        The Properties dialog for an interface model       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_man   8 5 0 codegeneration prepare_code execution_model  03 12 2012 09 35 23     ASD  Suite User Manual             Product Technology Resources Training Purchase Company       Specifying a target language and the code generator version    Code generation language and version properties are now captured in the model properties section and are stored in the ASD  model file  This allows you to specify the desired target language and code generator version for each model when information is  missing or not according to your expectations  The target language and code generator version for the open model are also  indicated in the status bar of the ASD Suite  This information is required every time when you verify the model and generate code     You can access the code generation  Properties  dialog of your model by selecting the interface model in the  M odel Explorer    right click  select the  Properties  item in the context menu and choose the  Code Generation  tab
168. rule case  for details        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manu   f aspx 8 5 0 modelling behaviour non_deterministic  03 12 2012 09 33 21     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Adding or deleting a rule case       This is how to add a new rule case     oa Below the selected rule case  Select a rule case in the SBS tab  not a blue line  and press  Ctrl Hnsert  or select the  New Rule Case  Below  item in the context menu obtained when clicking on the right mouse button        Above the selected rule case  Select a rule case in the SBS tab  not a blue line  and press  Ctrl AltHnsert  or select the  New Rule  Case Above  item in the context menu obtained when clicking on the right mouse button     Note  The selected rule case is going to be replicated  only the data in the  Interface  and  Event  columns    This is how to delete a rule case        Select a line in the SBS tab  not a blue line  and press  Ctrl Delete  or select the  Delete Rule Case  item in the context menu  obtained when clicking on the right mouse button     ledra You will not be able to delete the one and only rule case for a rule since there must always be at least one rule case for  each trigger        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling behaviour add_delete  03 12 20
169. rvice     Note       ThelTimer interface model which needs to be specified as a used component is delivered as part of the ASD Runtime       You must select all Application Interfaces and Notification Interfaces defined in ITimer im as  Used Interfaces   for details see   Specify connected interfaces    If you do not do so an error will be reported when you try to verify the model or generate code       The ASD timer is a special used service that can not be shared among component designs  i e  one component can not use the ITimer  application interface of a timer component while another component uses the ITimerCB notification interface of the same timer  component   The ITimer model must not be changed  Any attempt to do so breaks the correctness guarantee provided by the ASD Suite            You should not generate code from the ITimer im file and you do not have to make a design for the timer component  The  implementation is provided in the ASD Runtime     o ASD Timers implement the CreateTimer  CreateTimerM Sec and CreateTimerEx triggers to start the timer for a specified duration  in seconds  milliseconds  or seconds and nanoseconds  respectively  Timer completion is signalled via the TimeOut notification event     o  All ASD Timers support a CancelTimer trigger  The ASD Runtime guarantees that once a timer has been cancelled  the TimeOut    trigger will never occur  not even if the timer has actually expired and the TimeOut event is waiting in the queue to be processe
170. s  t    p ed there are no multiple assignments to the same state variab  conform the simultaneous assignment semantics  one state variable update expression   there can be only one assignment to a specific state   variable in a state variable update expression   It is of no use to have a rule case with an empty guard delete the    otherwise    rule case  and one with an  otherwise  guard  since an empty   guard is equivalent to True  and therefore  the    otherwise  is always False  In other words  the    otherwise  rule case will never be executed        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 conflicts state_variables_ guards  03 12 2012 09 35 06     ASD  Suite User Manual       Product   Technology _ Resources Training   Purchase Company       verum    Fixing miscellaneous conflicts       The following table shows miscellaneous conflicts not fitting into any other category     pp  A     model has in its properties a setting for the return type adj y  of the generated GetInstance   method  It used to be that the e of GetInstance    For assistance with this see the Knowledge  component itself was returned  but as of ASD Suite version 9 0 0 it   Base article  How to fix warning RC156  Getinstance returns a    will always return a reference to the implemented interface Component   instead           2012 Verum Software Technologies B V  All rights reserved    http   community  verum com
171. s  we can  reason about the behaviour of every possible input sequence  The Sequence Enumeration method used in ASD thus defines the Black  Box function as a total function between the finite set of Canonical Sequences and the corresponding actions        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 concepts sbs  2 of 2   03 12 2012 09 31 01     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       The ASD Triangle and Correctness       Architects and designers can use the ASD  Suite to create models of software components  verify their completeness and   behavioural  correctness  and generate source code from verified design models  At its core  ASD guarantees the   mathematical  equivalence of    1  An ASD model     2  A formal representation of that model   3  The source code generated from the ASD model     This equivalence is called the ASD Triangle     ASD model  Vf Pracise       Complete  Vv Correct  v Traceable       Design Generate Generate defect free  Errors formal model source code from  verified model    Formal model   and veriication   ASD guarantees  equivalence       The ASD Triangle       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 concepts triangle  03 12 2012 09 31 04     ASD  Suite User Manual       Product Technology Resources Training Purchase C
172. s performed and the specified state transition will not occur     Note  A rule case with a non modelling event as trigger will never be disabled  i e  there will be no check to see if the number of any  of the restricted notification events in the sequence of actions already in the queue is larger than or equal to the defined event  threshold     A modelling event will NOT be yoked  i e  the corresponding rule cases will NOT be disabled  when the number of all of those restricted  notification events already in the queue is less than the defined event threshold for each restricted notification event respectively     The following figure shows an SBS in which the modelling event is marked as  lt yoked gt since in the Actions column a yoked  notification event is specified  in this case the DetectedM ovement notification                                   Deso   nopean eerfaces   Notication interfaces   Modeling Interfaces   Tags      SBS   staben   Seata variti   OOOO    Tatia   iteifate Beene Gud Actor e Waiia be ead aber Target Stabe Comments hy      1 Deectivvied s      J ener Fl Activate Berna APde Arae SCireaihe sensor  7 Activated   Gemior_APLiclivates                                      ib lentor AFI  ienris Geena APL Maidhae hy Qeactrerting Dearie pecan   ii Fenes IHT Detected tobed Peno CI DetectedMovement Triggered Senor detected manvernert  1  Destini Senor A vite  Besor APLODeactiwale gt   IE Inss INT Deica ampte Damor Ch Deactivated Descteated   Completely deachai
173. same as the one presented in the  Defining  construction parameters section     Example   M yAlarmSystem  in housename std  string   in siren  service ISiren    in sensors  service   ISensor      results in a component named M yAlarmSystemComponent with a GetInstance method that accepts a string  a component  that implements ISiren  and a vector of components that implement ISensor     e you can specify  in the  Component type  field  the type of the component for which you generate stub code  You can  choose between M ultiple and Singleton  The default is M ultiple     e the checkboxes under the  Component type  field determine if trace statements  synchronization primitives  or a proxy classes   one per interface  are generated in the stub code  By default they are deselected      proxy classes   turning this option on causes every interface to be generated in a separate proxy class  This is useful when handwritten  components have many interfaces and events  It is particularly useful when several interfaces have events with the same name   reducing the probability of name clashes      debug info   turning this option on causes trace statements to be inserted upon entry and exit of every method  This trace can provide  to the developer useful information while debugging the system   o   synchronization primitives   turning this option on causes all the methods to be thread safe  This is particularly useful when making a  foreign eens which is accessible by multiple clients 
174. ser_manu   spx 8 5 0 modelling construction_parameters shared  03 12 2012 09 34 05     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Passing a primary reference at construction time       Suppose there is an ASD component on top of the Alarm and the Monitor  This component can have a primary reference to Sensor   im as well  It can pass this primary reference to its other used components     Design time    Alarm im Monitor  irm       GUI dm uses Sensor im  but the primary reference  does NOT use any interfaces    implements implements    Sensor im       Defining an instance to pass along within ASD    In the top level component  we define a primary reference to Sensor  but we make the Used Interfaces field empty  We can now  pass the mySensor primary reference as a construction argument to the other primary references     GUI  GUL dm                       Reference NWame  instances  Service Construction  Li mySensor l  Sensor WindowSensor          2 myMoniter 1  Monitor api Monitor mySensor      awe LAlarmSystem  i l        Al 1 Alarm    mSystem Se   3 myAlarm 1  arm iAlarmSystem NI   AlarmSystem mySensor        Passing along a primary reference    This way  you can defer the decision of what instance to construct to a higher level ASD component without any hand written  code  Effectively  the three lines of code in the previous example are now reduced to just one     myGuiiInstance   GuiComponent  GetInstance          2012 Verum So
175. spx 8 5 0 conflicts imdmdifference  03 12 2012 09 34 44     ASD  Suite User Manual          Product Technology Resources Training Purchase Company       Fixing syntax related conflicts    These are the syntax related conflicts     Error Code  Explanation esses  RC5 e name of the service violates the syntactica  aaa rules for names used in ASD modelling    e name of the design violates the syntactica  ine rules for names used in ASD modelling  RC  Ensure that the indicated name complies with the following   oe rules for names used in ASD modelling    it isnot a reserved words in the output languages oF ine ASD compiler  C   Pr _fulestornsmesused in SB modeling   Ca  rules for names used in ASD modelling  RCO e name of the parameter violates the it is not a reserved words used in ASD modelling  Invariant  Illegal  Blocked     syntactical rules for names used in ASD modelling Disabled  NoOp  VoidReply head  tail  otherwise   RCIO he name of the main machine or sub machine it is not  true  or  false   written with lower cases   violates the syntactical rules for names used in  a ASD modelling does not start with asd_  RC11 e name of the state violates the syntactica does not start with a number  ine rules for names used in ASD modelling      RCT ename ofthe state variable violates the does not start with an  underscore   i e  the  _  character  syntactical rules for names used in ASD modelling fa does not contain non alphanumerical characters    e name of the used service referen
176. ssful    IAlarm CheckFailed    Selecting an event to be added as action       3  Repeat the previous step with other actions from the list if you wish to add more actions  Note   The  Select Actions  dialog is split in two panes  one text editor and a list   Press the Tab key or Select the panes with the mouse to switch between the panes   The text editor enables you to type the name of the actions and or to set the order of actions   While typing  the actions in the list are filtered out using sub string matching easing up your job to specify the desired action   Press Shiftnter or Altnter in the text editor to insert a blank line between two already specified actions   Pressing Tab in the text editor while you specify an action performs prefix completion for the respective action  i e  it extends the  currently specified name to the longest common prefix within the existing actions which matches the currently specified text   Cut Copy Paste Delete operations are enabled in the text editor part in the same way as in any text editor   Use Ctrl Up or CtritDown to move a selected action up down in the list    oo 900000    4  When all the actions are specified  switch to the text editor of the  Select Actions  dialog and press Enter to add the actions in the SBS   Note  If you pressed Enter in the text editor part and there are wrongly specified actions  those will be underlined     The following figure shows the SBS tab after adding actions      E  Alem   Spolicatian interfaces
177. st  You can access it in two ways     1  Click the filtering edit box and use the Up and Down arrow keys to scroll through the list   2  Through the drop down menu of the Filter Text button     Next to the most recently used list  you can also store expressions permanently  To do so  click the Save Filter button to save  the current filter     a    Fi event contains  stop  ln  OF  i event contains    stOp     Event contains    st  p       event contains stop     beecontrol    B bcContral  source inter  Fail  NoOp  interface contains Alann    and event contains    Clear     target equals    AlanmActivated    or target equals    FirstConectDigitoAlarm   le     Save Current Filter    A Deri urreni ribe    This adds the filter to a special section of the drop down menu  where you can select it     mi Save Current Filter  LA Delete Current Filter    G event contains  stOp     To delete a saved filter  first select it and then use  Delete Current Filter            2012 Verum Software Technologies B V  All rights reserved    http   community  verum com documentation user_manual_pdf aspx 8 5 0 user_interface filter_sbs  3 of 3   03 12 2012 09 32 10     ASD  Suite User Manual    verum           Product Technology Resources Training Purchase Company       Un saveable Data    Not everything that you can type in a table cell can be stored in the ASD model format  For example  a syntactically incorrect event  declaration cannot be stored  Whenever something is typed that cannot be saved  
178. st correct expression is entered  The edit box has two modes  expression or text   and it tries to switch between them based on  what you do  You can override this by using  Toggle Expression Text M ode      The column names you can use are     source  the source state  the state the rule case Is in   interface  the Interface column   event  the Event column   guard  the Guard column   actions  the Actions column   updates  the State Variable Updates column   target  the Target State column    oo 0 0 0 0 0 0    comments  the Comments column  tags  the Tags column    Qo    The relational operators are        contains  true if a cell contains the given string somewhere  case sensitive   o   containsword  similar to contains  but matches whole words only     equals  true if a cell equals the given string exactly  case sensitive    o matches  true if a cell matches a given regular expression  case sensitive     The Boolean operators are     o or  true if either operand is true      and  true if both operands are true      xXor  true if exactly one operand is true     not  negates the expression    String literals are surrounded by double quotes  Escaping characters is done in C style  You can use the following escape sequences     o  n  newline       r  carriage return  o  t  tab          double quote         single quote         backslash       b  backspace    http   community  verum com documentation user_manual_pdf aspx 8 5 0 user_interface filter_sbs  1 of 3   03 12 2012 09 3
179. st displays a set of rules for the usage of the  otherwise  keyword        It can not be part of a larger expression  it is a complete term on its own      It cannot be specified if the rule has only one rule case       Inan interface model  more than one rule case in a given rule can have  otherwise  as the guard  indicating a nondeterministic  choice between them  However there must be at least one rule case for that rule having a guard other than  otherwise   Note  In a design model  only one rule case in a given rule can be guarded by  otherwise      The following figure shows the specification of guards in the case of the Alarm system example    Elta Apobcation hiatas   Notiication Intetsces   Modeling Inteetsces   Teg    ZG   sta   shake variables      Haifeentheedem ickes       rience berri Curd dirigas e Wanoh Updates Lanqet State a nam ett lege  1 Alwa  Holhrtivae c   J Ekim Sel LOL Mino  e pty aie Goal dain Stain Req  4 arm Cheer  Me cal   Jagu  sarm reat sirrin g  5 Eh Check Tegel x Dega  Safir ri etre we  i eri AlemTrppad Gimblad   Cucnsboccurnct acteutad wat  2 ie Aemet Direb led   Dargi grung acid yet  i Abe Actuated darme  1 ri t Megu   Tegs  sready activated  11 bm I i _  Alum Vand Pepi   Aitite Cearingut  Iz Udari I Malena etalie  ub Chere Sure cil Alarmrictrawteel lain gheoidh Hu ly  Yo am Chika HiiBttaChiikijonlilie hom hiad Aami afue hide checking the ihr       p    J L  a HatlleerCheceedoctrue  legal Tagu  Main ahaa eherkes    The SBS tab after guard spec
180. sual Verification User  Guide  for details         Conflicts   used to display messages associated to specification conflicts  See  Conflicts  for details     oq  Output Window   used to display the progress of certain time consuming operations  like loading of an ASD model and or generating  code     qo  Find Results   used to display the results of a  Find All  operation    Model Navigator   used to visualize the relationships between ASD models in a given directory  See  M odel Navigator  for details     a         Un saveable Data   which shows syntactically incorrect table cells that cannot be stored into the model file  See  Un saveable Data   for details     You can drag dockable windows  like the Output Window or M odel Editor  out of the M aster Window to create a so called  Slave Window  Multiple dockable windows can be dragged into the same Slave Window     Tip  double click the title bar of a dockable window to automatically undock it and create a new slave window   You can drag or load as many  dockable  windows in an already created slave window  but you can not have a Start Page pane in it     You can change the layout of a  M aster or Slave  window by dragging the  dockable  windows around by their title bar to  various places in the respective window  If you drag a  dockable  window to another window  it will remember the place it last had  in that window and dock itself there     Note  You can NOT drag Slave windows   you need to grab the title bar of the con
181. tActivated   The Alarm is not activated yet    2          State specification for machine  IAlarm     The ASD Suite provides the possibility to add design information to a state description  This is achieved via adding so called user  columns next to the description  You have to select the  New User Column  context menu item obtained by right clicking with the  mouse on one cell of the state declaration  see next figure   or you have to press  Ctrl U      JE AlarmSystem   Implemented Service   Used Services   Tags    sas   States                  State  1 NotActivated  initial state   The Alarm is not activated vet  2 Activated_Idle   New User Column Ctrl U  3 Activated_AlarmMode maT    4 Deactivating OWE Up Ct    5 Activated_Tripped   Move Down Ctrl  Down  6 Delete State s  Ctri  Del     A  Sort States Alphabetically  C  Sort states Canonically  Jump to this State Ctrl     Set as Initial State    Cut Ctrl  amp   Copy Ctrl C  Paste Ctrl V  Clear Cells  Del    3 Revert to previous                               The context menu item to add a new user column  The following figure shows the operations that are allowed on an existing user column     oa New User Column  add anew user column      Delete User Column  remove the selected user column   co Rename User Column  change the name of the selected user column   oq Autosize columns  set the size of the columns to fit the size of the text in the cells and the column titles    http   community  verum com documentation user_m    _
182. ta eerie         hieface Eye nt mid Kikar Swe Mariable Hadie Tga Bie Comen Hy      L fee ap  3 Coen  Pekik Coys ee ei ie Caylee Gs ralin ever PL tes raja Gere pay  a Cote Tegal      coe Megyl  G   G Coeden  Filek a Corsa ee Tegul     A e mem Corfa Care Ce ral Lad ohh cS  oth cer  3 eTe tena LAP Grind 0K Data tak erAPLCoH wich   A We  LO Cuei iiei ie EA Gil LED Dries WG b PLC fete ke    Parameter passing example via component variable    Component variables are local to a component but shared between all sub machines of the component  If the component is thought  of as a single class  including all its sub machines  then the component variables are like private data members of the class     Note  At construction time  all component variables are initialised with a default value     Component variables must not be confused with state variables  The state variables are part of the SBS state and as such there is  no sharing between sub machines  Also  component variables can not be used in guards and state variable updates     Literal values    In addition to passing values from one component to another  you can also supply literal values to events  Literal values are  specified between dollar signs     and can be anything that your programming language allows  If you need to specify a dollar  sign within the literal  use two dollars instead      to distinguish it from your closing   sign     You can use a literal value for an  out  parameter in a trigger  or an  in  parameter in
183. tails    erify With    Same as Verify  but this asks you for a code generator version and language         Note  use with great care  if the generated code is created using a different version than the version with which the  model is verified  there is no guarantee that the generated code will be error free    erify A Run all checks for the selected ASD model   See  Verification  for details    erify Again Re run the last verification   See  Verification  for details    pen Verification Results Open a model verification results file  containing the details of an model verification that was performed earlier     top Verifying Abort a verification   ow Previous Failure Show in the Visual Verification window the first example of the previous failed check   ow Next Failure ow In the Visual Verification window the first example of the next failed check    a    Forward Step Over Step t y SBS tab   Forward Step Into p  Forward Step Out    Forward Step Rule Case  See the  ASD Suite Visual Verification Guide  for details about int  Backward Step Into  Backward Step Out  Backward Step Rule Case  Step To First  Step To Last p ypically g sign     See the  ASD Suite Visual Verification Guide  for details about interactive visual verification     y focused S  il       2012 Verum Software Technologies B V  All rights reserved       http   community verum com documentation user_manual_pdf aspx 8 5 0 user_interface menus verification  03 12 2012 09 31 50     ASD  Suite User Manual          f
184. tained  dockable  window instead   Empty Slave windows are closed automatically  The following list reflects alternatives to close a slave window     Select the Slave window and press Alt F4     s       Press the   button in the top right corner of the window        Drag and drop all its  dockable  windows in the M aster window or in an other Slave window      Close all windows docked in the Slave window  A dockable window can be closed by one of the following   o  Press the X button in the blue window title bar        FA dicAlmSystem   ASD Suite MedelBuilder Relais  amp    Santar  Sania irri   Read ery    E  Dupi ii ee erer eraran  Gedo A  2                on Started  open fe        J esr   apphcabon Interfeces   Matiicaton Interfaces   Modeling interfaces   Tags     opening model  Alere  de      e mE en ots   Stats   Stan eariables   State Dkagram   Peen      Denctevated        Deactivated Gadal state    seeee  frihed  open fle seenen F  erfoce Evert Guard fiche  te Vanable Upde Target State      Deactivated Gnitial ate   3 Benso AP  Activate Eeoa APLYoidReply cheated  4 Beno AP  Deactrate Hepi  T Auctiverbed  3 Benso AF  fictrebe Tegal  10 Gensor AF  Oeactreate Ter AP iod Reply Desctreating  11 GerndorINT Detected Gii CE Diece Taiggared  D Deactnvating    15 Benso AP  Actrabe Heyl  o m      sz Wonrnr AM Pi cee         Dockable windows in a Slave window    s     gt  Press the kad button if the window is tabbed in the Slave window  or       Deselect the item in the View menu
185. te and select the  Duplicate State  item in the context menu of  state  see next figure         biaa lent Gud tober tm Ver kde pisin Farge Shis Esn mis ie    Ji a bean ead Degman ee Pee 2 Le ba eee  IHi TE  Tarhana Bigu 5 Bigh  PeT potas Hy eed  Tenet  mari ieee T Du echiorargy Tasalberar d piia ners  Hra yin APT phe  Vana Bigi           1 f  1 inir irgi Coane Seats a Eria  H HEN Bigi    n er  HT brica igH    Selection for Duplicate State    The following figure shows the result of naming the new state DuplicatedState     hinia b Trd ie Sta be ea eee Lede leq ee Tommy l    N Aoier Nipa Al ie LS ied  Wide ne Pec Ee esr   1j pete Tareq Tra egy Myra eyreer aieracy pierre  Tired HDL he Teed   B Greinin    Diii Misipa ne Ian eo SL ct  Deaphyahey L mari brer  ebverteer semea  Let Sehr 2 ed phy   Dairia Lipar Pizu   F Drai idid E   Jl  tki   I Tee n Timmai foe nl Lot Se el Bact Alaa Tove  larr ete are   Jl Aoirrid Banti ee Sg i Pd ce ida eee  Peres Te be ee ee enii ee   Te Luss Sarkis brgal   Be gal   ilira tyrkere ih rair ia Haril  Deadin SPL Tere Dt    H Lidis lin 1 Sry Mi ech ee TT eer APL rerni Deili Tasia a beh a ee det Lee hii bir  Liere ipd rra Pe rp y   1i sees Pasar A pririreLbrerre  ee Prg   Hi at   Derti Diga     H crepe Teepe pal ke TERT       i ried Dial     ao S   di l wipe 1 Sorters Dingell   Higi   hide bitte bh tidy bic  Perii SPL Tere    4b p Sentra Simba i nme oe L    tees Debay The cee ts mi H a Ha  Dis tere ets Lap ip   ti Erin  riven Erial   H Dvid Page   al TE
186. ted as conflicts  The conflicts have wizards to help you solve them  Alternatively  you can  edit both models manually to make them match  in a design model  you can edit the events and interfaces just as you would in   an interface model  The only difference is that in a design model  the event declarations do not contain all information  e g   comments  parameter directions  parameter types etc are only present in an interface model  The sections below describe how   to efficiently make changes to your models and keep them consistent     Keeping Design Models Consistent with their Interface Models  To keep models consistent  there are a number of options        Manually  you can edit interfaces and events in design models as well as interface models  M aking the same changes to a design  model as well as the interface model ensures there are no mismatches        Conflict Wizards  any difference between a design model and its interfaces are reported as conflicts  The conflicts have wizards  that automatically resolve each conflict in different ways  Click the  Solution  cell in the Conflicts Window to see the available  wizards for a conflict  Note that only conflict errors need solving  models with conflict warnings can be verified and code can be  generated from them     Functions for Refactoring a Model     Changing the Initial State for an SBS    Duplicating a State   M oving Events to a Different Interface  Deleting Events or Interfaces   Renaming Events or Interfaces  
187. the Login dialog  Click the  Log in  button to use the settings to  login     Deleting login settings is possible from the Session menu as well        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 serverconnection loadstore  03 12 2012 09 36 02     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       verum    Long latency Connections       If you are geographically far removed from the ASD Server or you happen to have a slow or low bandwidth internet connection   you may want to adjust some advanced settings to optimize your connection  In the Login dialog  use the  M ore  gt  gt  button to show  the Advanced Settings section at the bottom  This section contains the following values     oa Time out   The time to wait for a connection attempt to succeed  If this is too short  making a connection fails often  If you experience this   increase the time out value     o Heartbeat   The M odelBuilder makes a call every so many seconds to keep the connection alive  This is because some proxy servers close the  connection after a given amount of inactive time  If you are on a long latency connection  these so called heartbeat calls may start  to take a considerable portion of time  In that case  increase the Heartbeat value to increase the period duration     o Reconnect     The number of seconds between two attempts to restore an interrupted connection  Setting
188. the currently selected model or to create a new model based on the  current one     See  Save As  for details     Save to  zip file Save t eman model  and related IM s If it Is a Tig model  to a  zip Tile   E mail mode t    ose Mode oset e selected model   Close A Close all models  eee    Prit o Print  parts of  the current ASD model  o e D model     eS ooo in M odel Navigator Open the map in which the selected model occurs      M odel Navigator  for details   t      Properties    e e  another  version of the  model   Note     oa The selected model is loaded as the M aster        This option is greyed out  disabled  if the ASD Suite M odelCompare is not installed or  there is no ASD model loaded     See the  ASD Suite M odelCompare User Guide  for details     Open in anew Instance of ASD Suite ModelBullder  Open the selected model in a new instance of the ASD Suite M odelBuilder   Open in this instance of ASD Suite M odelBuilder Set this model as the main model     Upgrade M odels Upgrade models made with older versions of ASD Suite to the current version   See  Upgrading ASD models  for details    Exit EX tHe application    Note  In addition to the presented items in the File menu you will see a list of recently opened models  You can set the    maximum number of models to be listed by specifying the size of the recent models list in the Options dialog obtained via   Tools   gt Options  under the  Appearance  tab        2012 Verum Software Technologies B V  All rights reserv
189. the table cell gets a red border     Fixing un saveable cells    If you see a table cell with a red border  there are three things you can do  First of all  you can edit the cell to be syntactically  correct  Alternatively  you can use Edit Undo to undo the incorrect change  However  if the change that made the cell red was not  the last thing on the undo stack  you can also right click the cell and choose  Revert to previous   This resets the cell to the  previous correct value     Un saveable Data window    When you try to save  verify  conflicts check  or generate code from a model with un saveable data  you get a warning  To locate all  the red cells in your model  look at the  Un saveable Data  window  This window shows the current and previous cell values   Double clicking an entry in the window sets focus to the cell in question        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 user_interface unsaveabledata  03 12 2012 09 32 13     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Modelling       To as an ASD component using the ASD Suite  follow these steps       Create an interface model that specifies the service that is going to be implemented by the component  See  Creating an  interface models  for details     2  Identify the used services  i e  services that provide functionality that is going to be used in the design of the component
190. the vast majority of users  this should be left to     o  Server  asd verum com  or for trial users  trial verum com     Port  443    HTTP Tunnelling    If your network infrastructure does not allow you to use port 443  you can use a proxy server to connect to the ASD Server     oa Enable HTTP Tunnelling  check this to use the HTTP proxy      Proxy  the hostname of the proxy server      Port  the TCP port of the proxy server  usually either 80 or 8080     Username  optionally  the user name for your proxy server      Password  optionally  the password for your proxy server    Again  you can save and clear the password        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 serverconnection makingconnection  03 12 2012 09 36 00     ASD  Suite User Manual       Product Technology _ Resources Training Purchase Company       verum    Saving Connection Settings    If you regularly need to change user settings or HTTP tunnelling settings  it is handy to save and load them from the registry all at  once        To save login settings  use them to log into the ASD Server  Once you are logged in  go to the Session M enu and choose  Save  Settings   Type a name for your settings and click OK     To use saved login settings  click the  Retrieve     button in the Login dialog  You get a list of the names of all saved settings  Choose  the settings you want and click OK  The settings are now filled in into 
191. therwise  lt       gt  S  S  1       gt    lt     gt   4    1 1    gt  V n  1  lt n  lt   51 1   S n   S1 n 1      nel v wees   5    S lt        E zns   gt  S  S1 n    lin  2 subset  each element in S1 is present in S2    vin  1 lt sns S1 a m 1 lt ms  52  S1 n   52   m       a that  a reference of one element representing the component Instance that  pe ___foenerated the trigger ofthe rule cas ee  The  in  operator deserves some additional explanation  It implements the subset operation and not the subsequence operation   This means that order and multiplicity are not considered in the comparison  The expression   S1 in S2  and  S2 in S1   means that    S1 and S2 are set equal  For example  for two arbitrary references S1 and S2  the expression  S1 51 52  is set equal to  S2 51   but    1 51452  S2 S1  only holds if S1 equals           Examples  Examples of how to use the operators in the  Guard    State Variable Updates   and or  Actions  columns     fate Variable Updates example   R__fardmaty    S P O  S_____fempty reference po F OOOO    potyo pa F OOOO O     E e S E E E    psem f p O a    concatenation e A OOSSCSCSCS  E A E S e SCS  C e EE O e  O E O A PSI  SCS  mo ptre     pma     f                             pema  shat    Note  S  S1 and S2 are all used service reference state variables  variable   is an integer state variable  variable b Is a boolean  state variable        Here are a few examples of how to use used service reference state variables and their operators 
192. ting stub code from an ASD interface model    The ASD Suite provides the possibility of generating skeleton code that serves as a starting point for implementing handwritten  o a oe of an ASD component or for a Foreign component  The skeleton stub code is compile able such that an executable  can be created     The main purpose of the generated stub code is to give you a head start in developing handwritten code  relieving you from the  burden to write all the infrastructural code and clearly point out where you can add the custom user code     See the following figure for a graphical representation of the menu item used to initiate stub code generation             i       A irm I5ensor   ASD Suite ModelBuilder Release 4   Sensor  Sensor  im   File Edit View Filters Session Verification   Code Generation         Tools Help            Generate Code  Generate Code With     Generate All Code    FF  Shift F7  Ctrl  F7            4 Models 1   a  Sensor  4 Main Machine  4 E   Sensor   gt  States  State Variables    4 Interfaces          Generate Stub           Download Runtime       Determine Model Size        Interface Event Guard  1 Deactivated  initial state        Menu item to initiate stub code generation  Note  The stub code is generated only when the interface model is free from specification inconsistencies  conflicts     To complete the stub code generation  fill in the missing information in the following dialog and press OK                   Al Generate Stub    Code gene
193. tion of the required referencing statements  You can access the code generation  Properties  dialog of your model  by selecting the ASD model in the  M odel Explorer   right click  select the  Properties  in the context menu and choose your  target language under the  Code Generation      Note  Any data you fill in the  Include import  field for any other target language than C  C  or Java is going to be ignored during code  generation     The following figures show the code generation  Properties  dialog for target language C   in case the ASD model is an  interface model  or a design model  respectively     General  4 Code Generation     Path interface files    code epp sre generated   Browse       C    C   Jawa    Output paths       Header and footer information    Include file     Indude import    sindude    Gemeric h     E Properties of AlarmSystem    General  Verification  4 Code Generation  4  Generate debug info  Cc  Cet ss Guttputt paths  Ce  Java Path source fles     code cpp erc generated   Browse         Trace statements    Header and footer information  mide     Indude import  implementation     Indude import  declaration        The code generation properties for target language C   in a design model  The content of the  Include import  fields for C and C  should be zero or more include statements  one per line  An include  statement is one of the following     o dnclude  FileName   or  o  nclude  ileName gt   where  FileName is the name of the header file contai
194. to help defining an expression to filter on   See  SBS Filters  for details     Filtering Help    Snow this help page   SBS Filters      urn All Filters O Show all rule cases   See  SBS Filters  for details     Apply Filters Re apply all filters to the SBS   See  SBS Filters  for details        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 user_interface menus filters  03 12 2012 09 31 44     ASD  Suite User Manual       i  Product   Technology   Resources   Training   Purchase         Company    The Session menu    Connection Status Show details about the connection to the ASD Server   See  Session Management  for details    Log Out Stop the active session with the ASD Server   See  Session Management  for details     tore Login Settings    tore the current login settings to the registry for easy switching between different settings   See  Saving Connection Settings  for details   Delete Login Settings     Removes previously stored login settings from the registry   See  Saving Connection Settings  for details        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 user_interface menus session  03 12 2012 09 31 47     ASD  Suite User Manual       i Product Technology Resources Training Purchase Company       The Verification menu    Purpose   erity    erify the selected ASD model   See  Verification  for de
195. ts  All interface models must have at least one application interface        Go to the  Application Interfaces  tab and click the blue plus sign to create a new interface        In the dialog that appears  type a name and click OK  The name must begin with an underscore or letter and continue with  letters  underscores or numbers       Click OK  A new tab appears for the application interface     Application interfaces have two types of events  Call Events and Reply Events  You see a table for each     Call Events  The declaration of a call event consists of     oa Aname  this identifies the event     Parameters  optional   used for passing arbitrary data through ASD components  see Parameters      A return type  valued or void    An example of a call event isDoSomething  in pl string   out p2 int    void  Here   DoSomething  is the event  name  pl and p2 are parameters  and  void  is the return type     Parameters are described in detail in Parameters     The return type determines what the possible reply events are for the call event  A call event with a  void  return type always has  the standard  VoidReply  reply event  A call event with a  valued  return type can use all user defined reply events     Reply Events    Reply events are the possible return values to the call events  Usually they are translated to enumeration types in the generated      code  When you create an application interface  you get one reply event for free   VoidReply   This is a special event that 
196. ual       Product Technology Resources Training Purchase Company       Serialising ASD components       Serialisation is a mechanism available in Java to store a Java object in a persistent form on disk  for example  to send over the  network or for use in Remote M ethod Invocation     In ASD  the serialisation is achieved via implementing Externalizable interface  wherein two methods are introduced  writeExternal  and readExternal  These methods are visible in the Java generated code for the design model     The reason to use the Externalisable over the Serialisable interface  is that Externalisable provides complete control to the user on  the marshalling and un marshalling process  however with the drawback of reduced flexibility  With regards to versioning of  Serialisable objects  only the top level component is versioned     In order to ensure serialisation you have to select the Serialisable check box in the M odel Properties dialog window under the   Code Generation  gt   ava  tab  The following figure shows the Serialisable check box in the interface model for the Sensor service     E  Properties of  Sensor    General  da Code Generation  Cet  CH  C  lava    Gupt paths    Path interface files    codetjavaisrciqanerated    Header and footer information    Include File     Includeimiport    T  Serlalisable      No Parameter Cloning                The Serialisable check box       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com
197. umentation user_   df aspx 8 5 0 modelling create_dm sub_machines  2 of 2   03 12 2012 09 32 38     ASD  Suite User Manual       Product Technology Resources Training Purchase Company       State Variables for Used Service References       Used service reference state variables are used service references whose contents can change dynamically  They can be used in  guards  actions and state variable updates  For example to keep track of the used service references when iterating over them   See  Specifying used services  for details about used service references  and see  Specifying state variables  for details about  state variables     Operators for used service reference state variables    Used service reference state variables have a specific set of operators  The following table introduces the operators that can be    used with used service reference state variables  In addition it provides a short description and definition of each operator  In this  list  S  Sl and S2 are references and n and m are integers     Operator  Description Definition  S  cardinality  number of elements in S  duplicates included Fd  empty reference    HS  SO  Sl equality operator Sl   2  A V n  1 lt ns  51  S1 n   S2 n    e  al  S1    concatenation  pasting 1    EEr  A V n  1 lt ns  51  Sin   S1 n    A y n  1 lt ns  52  Sin  S1   S2 n      inequality operator L      not Sl  S2       57  l       SI t  ad S1  1  n  t    ead  reference containing the first element of reference Sl if present and  o
198. undary in the form of the triggers it receives  A  trigger can be    oa Acall event from a client through an application interface    oa A reply event from a server through an application interface    oa A notification event from a server through a notification interface   Similarly  a component exposes information to its clients and servers across the component boundary in the form of the actions it  sends  An action can be       A call event to a server through an application interface       A reply event to a client through an application interface    o   A notification event to a client through a notification interface     An interface model is defined in terms of only those events that pass between a component and its Clients  A design model is defined  in terms of events that pass between the component  its Clients and its Servers     Within ASD  both interface models and design models are defined in the form of Sequence Based Specifications  SBS   Behaviour is  specified in a tabular form as a total Black Box function  by mapping all possible sequences of triggers to the corresponding actions     The following figure shows an SBS specified in the ASD Suite     men   Staten   State varati    hemi vadec     hice Evert LETITE  Auke Sete ie pees Tiya Hate Tirem ly     i Haukka om    Do B  n iH bahir  ua Agreed Mile Ags pha hi  40 ariyan AF echo Baga   Biega  abm rest activa ed  T Gide nore Ci Dibe Ley     Birdie irii e CR Dele Ezy  1 Terei E Teron Borgel  D lerrSycten_42Fl
199. ut defining construction parameters for your ASD component     o Anstances in Verification  The number of instances for the reference that will be used in verification  If this field is left empty   the number indicated in the first column is used  If the first column does not contain an explicit number of instances  i e      Is  used   this field must be filled in     Warning  disclaimer  if the number of elements in a reference used for verification differs from the number of elements indicated  in the design  it is up the user to prove that the verification results hold for more elements in the reference  The ASD Suite can  only guarantee what has been explicitly verified     o Comments  descriptive text     Note  A primary reference can not be empty and is immutable  the contents are defined during construction and are not changed  at runtime     Take the following steps to create and specify a primary reference        Select the  Used Services  node in the  M odel Explorer  window and open the context menu by pressing the right button of the  mouse  In the context menu  select  New Primary Reference    The following figure shows the context menu of the  Used Services  node           Model Explorer    4 Modelis  a AlarmSystem  4 Main Machine  4 AlarmSystern     States  State Variables  Sub Machines     Used Services   gt  Tags Service Dependencies    j ISlar system  Read New Primary Reference                         The  New Primary Reference  context menu item under  Use
200. ve Path  Sensor im  Notification Interfaces  I5ensor_CB    Broadcast    Event Observed  1 DetectedMovementi  true  2 Deactivated  true  3 asd_Unsubscribed    4    Ei       Flag an event as Singleton    ASD guarantees that per instance of a used service notification interface there is at most one event in the queue for the events  flagged as Singleton  For example  if a notification event  A of interface  IPublisher is flagged as  Singleton   then   1  If one instance of IPublisher is used  at most one  A  is in the queue at any given time     2  If there are N instances of Publisher  at most N  A s are in the queue at any given time  This is independent of whether the  underlying Publisher component is a Singleton Component or Multiple Component        2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 modelling create_dm singleton  03 12 2012 09 32 45     ASD  Suite User Manual          Product Technology Resources Training Purchase Company       Behaviour in an ASD model    In order to specify behaviour in an ASD model you have to fill in each line in the SBS tab  also known as rule cases  with guards   actions  state variable updates  target state  comments  and tags  By this you will define behaviour for each event which can trigger  an action  or more actions  in various states of your system  These events are called triggers     Note        In order to specify guards and state variable upd
201. we use  Alarm  as the name of the component and the main machine      The ASD Suite ensures that the set of all triggers in each state of each machine of the design model is consistent with the set of    events of the implemented service and used services      The following is copied from the interface model into the design model if you have checked the  Copy SBS from interface model     check box   ao The states of the main machine with all information stored in the interface model  user columns and descriptions      o The state variables of the main machine     o The tags   o The SBS of the main machine  with the exception of the rule cases that have a modelling event as trigger        2012 Verum Software Technologies B V  All rights reserved    http   community  verum com documentation user_    8 5 0 modelling create_dm create_design_model  1 of 2   03 12 2012 09 32 31     ASD  Suite User Manual    Terms of use   Privacy Policy    http   community  verum com documentation user_    8 5 0 modelling create_dm create_design_model  2 of 2   03 12 2012 09 32 31           ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Primary References       A primary reference is defined by the following     oa Reference Name  nstances   the name of the reference with the number of instances in the used service reference  The size of  the primary reference is     o Fixed  if at design time the number of instances is known  For example  WindowSensors 2 
202. y com    http port 8080   http username  user    http   password  mysecret     Languages and Versions    M ost commands below need to be supplied with a code generator language and version  To check which languages and versions  are granted to you  use the   authorised languages and   authorised codegenerators Options  Note that the      authorised languages flag can be supplied with a version and the   authorised codegenerators flag can  be supplied with a language  to only see languages for a version or versions for a language     Downloading the ASD Runtime   For downloading the ASD Runtime  specify a language and version and use the   runt ime option   asdc exe  l cpp  v 8 5 0   runtime   Generating Code    For generating code from an ASD model  specify a language and version and use the   generate code option     asdc exe  l cpp  v 8 5 0   generate code mymodel dm    If you want to generate code for a design model and all its surrounding interfaces  you can either use wildcards  or specify the       all option  e g     asdc exe  l cpp  v 8 5 0   generate code   all mymodel dm  Note     o Before the generated code can be compiled and executed  the following steps need to be performed  l l     The ASD Runtime source must be downloaded from the ASD Server  see instructions in  Downloading the ASD Runtime using the    ASD Suite Commandline Client  or in  Downloading the ASD Runtime using the ASD Suite M odelBuilder       The files in which user defined parameter types are de
203. ying the component type  Specifying the execution model  Specifying a target language and the code generator version  Defining construction parameters  Specifying output path and attribute code with tracing information  Ensuring correct referencing of user defined types  Specifying path to user provided text for code customization  Serialising ASD components     Generating code from an ASD model     Generating stub code from an ASD interface model     Downloading the ASD Runtime    e Session Management    Session Management     Logging in    Saving Connection Settings     Long latency Connections    e Command line tools     Command line tools     ASD Suite Commandline Client     ASD M odelConverter     ASD SetM odelProperties     ASD Suite ModelCompare    90000000000    ooo0 00000       2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_manual_pdf aspx 8 5 0 toc  2 of 2   03 12 2012 09 30 41     ASD  Suite User Manual          Product Technology Resources Training Purchase Company       The ASD Suite software design platform    User Manual    ASD Suite Release 4 v8 5 0    The ASD Suite is a software design  CAD  platform based upon Verum s patented Analytical Software Design  ASD  technology  ASD  makes it possible to create systems from mathematically verified components     The ASD Suite is used to define and  automatically  verify models  and to  automatically  generate fully executable source code from  these mod
204. you want to  determine the class used for a hand written component at construction time  Instead of letting the parent ASD component  construct an instance  you can also pass a used component instance to an ASD component as a parameter  This way  you have full  control over how many instances of which type are constructed  and where they are used  Examples are in  Passing an instance of a    used component    Passing a vector of instances    Passing a shared instance   or in  Passing a primary reference         2012 Verum Software Technologies B V  All rights reserved       http   community  verum com documentation user_m   8 5 0 modelling construction_parameters default  1 of 2   03 12 2012 09 33 50     ASD  Suite User Manual    Terms of use   Privacy Policy    http   community  verum com documentation user_m   8 5 0 modelling construction_parameters default  2 of 2   03 12 2012 09 33 50           ASD  Suite User Manual       Product Technology Resources Training Purchase Company       Passing parameters to a component at construction time       It is not unusual for a hand written component to need some data when it is constructed  In the Construction field of a Primary  Reference  you can enter construction arguments to be passed to the used component in its GetInstance call  These can be  literal values  or they can be construction parameters that the parent component got from its own GetInstance call in turn     Example  literal construction argument  This is an extensio
205. ystem  Read only   wy  Sensor  Read only    Siren  Read only   ey  Timer  Read only           A design model with used services    The following figure shows the  Used Services  tab after creating the primary references                 e  NESE  tected a   te                                    Primary References   Secondary References    2  Sensor    7 linen    z Timer    teference Name finstances Service Used Interfaces Constuction Slnstances m Verification Comments        lenso APE    a peso SEAE vinsonsensor    2 Saren 1  Erren TSiren_API Siren  ome   Mirer    3 Tierex i  Mimer TirmerCB Tirwer       The  Used Services  tab with the specified used services    Note  When you want to change any data for the created primary references  like the number of instances  edit the respective cell  in the  Primary References  tab     Specify different components with the same service  The following figure shows the situation where two primary references for service  ISensor  are specified  one named DoorSensor    and the other named WindowSensor  The components are differentiated by naming them DoorAlarmSensor and  WindowAlarmSensor respectively     http   community  verum com documentation user_    modelling create_dm specify_primary_reference  2 of 3   03 12 2012 09 32 35     ASD  Suite User Manual       2012 Verum Software Technologies B V  All rights reserved        E  AlarmSystem   impemenbed Servae Used SERS Tags  Primary References Secondary References   ow  Sensor  2 Loren  2  
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
ascan updated - Akas medical  VW. Touareg 2006/12→2010/04 Audi Q7 2006→ TYPE: 029  Samsung SCX-4600 User Manual  User Manual - Escoglobal.com  Samsung SGH-X670 Инструкция по использованию  Samsung ME71C คู่มือการใช้งาน  MODE D`EMPLOI CERTIFICAT GARANTIE MOD  取扱説明書 - TOEX    Copyright © All rights reserved. 
   Failed to retrieve file