Goals
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 :
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
Model with connectors/adaptors
More information for type checking
Several classes.
Messages
Primitive
parameter exchange
state interrogation
variable sharing
Methods
Limitations
Simple components without compositions
Supported kml types:
Boolean,
Integer,
String,
and their functions as defined in the kml library which has been ported to Java
Unsupported kml expressions :
general predicates containing forall or exists
Execution Framework
Scheduling
Version 1
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
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