Presentation is loading. Please wait.

Presentation is loading. Please wait.

Top Level and Infrastructure Components maurelio & doleron.

Similar presentations


Presentation on theme: "Top Level and Infrastructure Components maurelio & doleron."— Presentation transcript:

1 Top Level and Infrastructure Components maurelio & doleron

2 Rollerslam 2.0 x 1.0 Pros –Efficiency in communication –100% Prolog/FLUX Player Specification –Communicative Actions –PIM-Code Compatibility Cons –No distribution

3 Top Level Display GamePhysics Player SimulationInfrastructure FluxCommunicativeAgent Overview

4 Ideal PSM components dependecy

5 Top Level Display GamePhysics Player SimulationInfrastructure CommunicativeAgent FluxCommunicativeAgent FluxInferenceEngine EclipseProlog Java Bridge API

6 Real PSM components dependecy

7 Top Level Display GamePhysics Player SimulationInfrastructure CommunicativeAgent FluxCommunicativeAgent FluxInferenceEngine EclipseProlog Java Bridge API

8 Top Level PIM

9 Specification

10 Specification Service View > Rollerslam > SimulationAdmin --------------------------------------- + setState(s:SimulationState) + getState() : SimulationState simAdmin

11 Specification Type View > SimulationState ----------------------- INITIALIZED PAUSED RUNNING

12 Specification Operation View context Rollerslam::setState(s:SimulationState) post: getState() = s

13 Realization

14 > Rollerslam ----------------------------------------------------------------------------------------------------------------------------- Realization Service View > Simulation Infrastructure > SimulationAdmin > Agent * > Player > Referee > GamePhysics > agents > Display

15 > : Rollerslam ----------------------------------------------------------------------------------------------------------------------------- Realization Instance View infra: Simulation Infrastructure : Display : SimulationAdmin > : GamePhysics: Referee: Player... gfa : Agentr : Agentp1 : Agentp40 : Agent >

16 Realization Operation View context Rollerslam::setState(s:SimulationState) post: infra.setState(s) context SimulationIntrastructure::getState() : SimulationState body: infra.getState()

17 Simulation Infrastructure PIM

18 Specification

19 Specification Service View > Simulation Infrastructure > * agent > Agent -------------------------------------------------------- + getAgentID() : AgentID + sendActions(actions:Message[*]) + getPerceptions() : Message[*] + getSimulationState() : SimulationState > SimulationAdmin --------------------------------------- + setState(s:SimulationState) + getState() : SimulationState simAdmin simulation

20 Specification Service View Invariants context Agent inv: getSimulationState() = simulation.simAdmin.getState() context SimulationInfrastructure inv: agents.getAgentID()-> forAll( id | agents->select(getAgentID() = id)->size() = 1)

21 Specification Type View > SimulationState ----------------------- INITIALIZED PAUSED RUNNING > Message ----------------------- + sender: AgentID + receiver: AgentID[*] > AgentID

22 Specification Life Cycle View RUNNING PAUSED setSimulationState(PAUSED) setSimulationState(RUNNING) INITIALIZED setSimulationState(INITIALIZED) setSimulationState(RUNNING)

23 Specification Operation View context SimulationAdmin::setState(s:SimulationState) post: getState() = s

24 Realization

25 Realization Service View > Simulation Infrastructure --------------------------------- - state : SimulationState --------------------------------- + setState(s:SimulationState) + getState() : SimulationState > Simulation Admin Message msgs *

26 Realization Operation View context SimulationInfrastructure::setState(s:SimulationState) post: state = s context SimulationIntrastructure::getState() : SimulationState body: state context Agent::sendActions(actions : Message[*]) post: simulation.msgs = simulation.msgs->including(actions) context Agent::receivePercepts() : Message[*] body: result = simulation.msgs-> select(x|x.receiver->includes(self.getAgentID())

27 Communicative Agent PIM

28 Specification

29 Specification Service View > Communicative Agent > Agent > OOState > OOState AgentID agentKB kb

30 Specification Type View > OOState > WorldObject * > OID > StringOID ---------------------------- + oid : String > ObjectState > AgentID (from Infra) > Communicative AgentID ------------------ + myID : String

31 Specification Type View > Message (from Infra) > AskAction ------------------ + oids : OID[*] > TellAction ------------------ + objects : WorldObject[*] > AskAllAction

32 Realization

33 Realization Service View > Communicative Agent --------------------------------------------------------------- # processCycle(messages : Message[*]) : Message > Message actions *

34 Realization Algorithmic View actions = processCycle( agent.getPerceptions()) agent.sendActions(actions) [not actions.isEmpty()]

35 processCycle(messages : Message[*]) : Message agentKB(sender).worldObject ->includes(m.objects) foreach message m in messages [m.oclIsKindOf(TellAction)] ret.oclIsKindOf(AskAction) and ret.objects = kb.objects-> select(x |m.objects->includes(x.oid)) ret.oclIsKindOf(AskAction) and ret.objects = kb.objects [m.oclIsKindOf(AskAction)] [m.oclIsKindOf(AskAllAction)]

36 Discussion Negative aspects –Zero test scenarios –incomplete non-functional analisys (stress & code-compliance) –Late project integration (Flux comunicative approach) –No object-funcional abstract layer mapping

37 Discussion Positive aspects –Peformance improvement sense –Code improvements with refactorings –Team knowledge improvement –Flux player implementation –Improvements render strategy to 2D&1/2 renderization

38 Test Scenarios

39 What the player behavior in this case?

40 Test Scenarios And now?

41 Future Work Object-Funcional framework Quantitative metrics to decision support Scenarios automatic testing Continuous integration Artfacts automatic synchronization with tool support


Download ppt "Top Level and Infrastructure Components maurelio & doleron."

Similar presentations


Ads by Google