Outils pour utilisateurs

Outils du site


costo:reference:kml2javalimits

Goals

In no particular order

  • Execution
  • Visualization
    • Traceability
    • Test
    • Experimentation of different strategies for priority, scheduling

Principle

Currently, all classes are generated in the same package.

  • A java class extending ExecutableComponent is generated for a component type
  • A java class is generated for every library
  • A java class is generated for every user-defined type
  • An abstract java class extending ExecutableService is generated for every service
  • A java class extending the above Abstract class is generated for every service (for testing reasons)
  • A java class extending ExecutableLTS is generated for every LTS

Component classes

  • contains a map of named services,
  • is initialized using init() which creates its services and calls initState();
  • contains methods for checking invariant parts
  • can be assigned a Scheduler

Service classes

The abstract class contains :

  • methods for checking pre/post
  • a method for every guard
  • an abstract method for every transition
  • a map of named Channels

The concrete class contains only concrete methods for every transition

A service

  • is initialized (by its component) using init() which creates its lts and calls initState();
  • can be reset using reset which resets the LTS and calls initState()
  • can be started with start()
  • can be assigned a Scheduler

LTS classes

contains a map of outGoingTrasitionNames for StateNames contains a map of Communications for transitions

Channel classes

Model with no connectors

One class only.

Model with connectors/adaptors

More information for type checking

Several classes.

Messages

Primitive

  • parameter exchange
  • state interrogation
  • variable sharing

Methods

  • traceable solution
  • problem of linearisation of the parameters
  • no code to execute

    Considered sources

Limitations

Simple components without compositions

Supported kml types:

  • Boolean,
  • Integer,
  • String,
    • Set,
    • structs,
    • enum

    and their functions as defined in the kml library which has been ported to Java

Unsupported kml expressions :

  • general predicates containing forall or exists
    • Unchanged Expression

    Execution Framework

Scheduling

Version 1

  • Mono component,
  • one simple scheduler per service with the following policy

while lts not in final state or not blocked do

  • get outgoing transitions whose guards evaluate as true
  • randomly pick one (random seed can be set to reproduce choices)
  • no variable access policy

Version 2

  • Mono component,
  • component scheduler
  • Component state access policy

Communication

all communication is forwarded to the channels all channels currently are RandomChannels, which do nothing upon receiving information, and return random values upon request

costo/reference/kml2javalimits.txt · Dernière modification: 2018/04/03 16:59 (modification externe)