Rollerslam PIM (a)
Top Level
Service Specification View > Rollerslam > SimulationAdmin setState(s:SimulationState) + getState() : SimulationState simAdmin
> Rollerslam Realization Service View > Simulation Infrastructure > Display > GameDisplay > SimulationAdmin > ControlPanel > Agent * > Player > Referee > Coach > GamePhysics > agents env {subsets agents} >
: Rollerslam Realization Instance View : Simulation Infrastructure : Display disp1 : RollerslamDisplay : SimulationAdmin : Control Panel : Display disp2 : RollerslamDisplay > : GamePhysics: Coach: Referee: Player... gfa : Agentca : Agentr : Agentp1 : Agentp40 : Agent >
Simulation Infrastructure
Specification Service View > Simulation Infrastructure > * agents env {subsets agents} > Agent sendPerceptions(p:Message[0..*]) + getActions() : Message[0..*] + setSimulationState(s:SimulationState) > Display update(m:Message) > SimulationAdmin setState(s:SimulationState) + getState() : SimulationState simAdmin
Specification Type View > SimulationState INITIALIZED PAUSED RUNNING Message > Agent sender
Specification Life Cycle View RUNNING PAUSED setSimulationState(PAUSED) setSimulationState(RUNNING) INITIALIZED setSimulationState(INITIALIZED)
Specification Operation View context SimulationAdmin::setState(s:SimulationState) post: getState() = s
Realization Service View > Simulation Infrastructure state : SimulationState setState(s:SimulationState) + getState() : SimulationState > Communication Infrastructure > Display Updater > Display > Agent * env {subsets agents} agents > Simulation StateProvider > Simulation Admin
Realization Instance View : Simulation Infrastructure state : INITIALIZED ag : Agent env : Agent d : Display > simAdmin : Communication Infrastructure : Simulation StateProvider > : Display Updater >
Realization Operation View context SimulationInfrastructure::setState(s:SimulationState) post: state = s and agents->forAll(ag|ag^setState(s)) context SimulationIntrastructure::getState() : SimulationState body: state
Display Updater
Specification Service View > Display Updater > Display > SimulationStateProvider getEnvState() : Message
Realization Service View > DisplayUpdater getEnvState() : Message > SimulationStateProvider getEnvState() : Message
Realization Algorithmic View display->forall(x | x^update(m)) result = simulationStateProvider ^getEnvState().result() m : Message [simulationStateProvider. getState() == RUNNING]
Communication Infrastructure
Specification Service View > Communication Infrastructure > Agent * env {subsets agents} agents > Simulation StateProvider >
Realization Service View > Communication Infrastructure Message envMsgs * envState 1
Realization Type View context CommunicationInfrastructure inv: simulationStateProvider.getState() = self.envState
Realization Algorithmic View envState = env.getActions().any() envMsgs = agents-> excluding(env)->iterate(ag; result : Set(Message) = Set{} | result->including(ag.getActions)) agents->excluding(env)-> forAll(ag | ag^sendPerceptions(Set{envState})) env^sendPerceptions(envMsg)
Rollerslam PIM (b)
ORCAS Profile > K2Component Agent > K2Use EffectorSensor > K2Realize
Top Level
Service Specification View > Rollerslam > SimulationAdmin setState(s:SimulationState) + getState() : SimulationState simAdmin
Realization Service View > GamePhysics > Referee > Player > RefereeEffector setScore(a:Integer, b:Integer) > FullyObservableWorldSensor sense(model:World) > PlayerEffector dash(dir:Vector) + kick(dir:Vector) > > GameDisplay > Display update(model:WorldModel) > * SimulationAdmin setState(s:SimulationState) + getState() : SimulationState >
Realization Operation View context Rollerslam::setState(s:SimulationState) post: state = s and agents->forAll(ag|ag^setState(s)) context Rollerslam::getState() : SimulationState body: state