1 / 25

Ana Emília (aemq@cin.ufpe.br) Jairson Vitorino (jv@cin.ufpe.br) Setembro, 2004

A KobrA and OCL model for backward state-space search planning and partial order-planning with STRIPS. Ana Emília (aemq@cin.ufpe.br) Jairson Vitorino (jv@cin.ufpe.br) Setembro, 2004. KobrA method overview. Developed at Fraunhofer IESE Integrates: Component based development (CBD)

odell
Download Presentation

Ana Emília (aemq@cin.ufpe.br) Jairson Vitorino (jv@cin.ufpe.br) Setembro, 2004

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A KobrA and OCL model for backward state-space search planning and partial order-planning with STRIPS Ana Emília (aemq@cin.ufpe.br) Jairson Vitorino (jv@cin.ufpe.br) Setembro, 2004

  2. KobrA method overview • Developed at Fraunhofer IESE • Integrates: • Component based development (CBD) • Model-driven architecture (MDA) • Product-line approach • Komponents creation applied on a recursive fashion

  3. KobrA artifacts

  4. Object Constraint Language • Part of the UML standard. • Formal Specification Language. Precise semantics. • (Quite) easy to read syntax. • Why? Because UML is not enough!

  5. Natural language description OCL statement Age Vehicle´s owner must be at least 18 context Vehicle inv: self. Owner. age >= 18 Nobody can have more than 3 vehicles context Person inv: self.fleet–>size <= 3 Everyone´s car is black context Person inv: self.fleet–>forAll(v | v.colour = #black) Nobody can have more than 3 black vehicles context Person inv: self.fleet–>select(v | v.colour = #black)–>size <= 3 Nobody can have more than 3 black vehicles context Person inv: self.fleet–>iterate(v; acc:Integer=0 | if (v.colour=#black) then acc + 1 else acc endif) <=3 A person younger than 18 cannot own a car context Person inv: age<18 implies self.fleet–>forAll(v | not v.oclIsKindOf(Car)) There is one red car context Car inv: Car.allInstances()->exists(c | c.colour=#red) An OCL Example

  6. The Planning Problem • Coming up with a sequence of actions that will achieve a goal • STRIPS planning language: comes in propositional or first-order logic flavor • STRIPS represents states, goals and actions

  7. StripsSearchPlanner

  8. StripsSearchPlanner modelling • Strips_States • Positive propositional literal conjunction • Positive First-order literals conjunction • Ground • Function-free • Closed-world assumption • Strips_Goal  Strips_States • Strips_actions • Name • Parameter_List • Precondition • Positive function free literals conjunction • Literal.Variables  Parameter_List.Variables • Effect • Function freee literals conjunction

  9. Basic algorithm • Do • Find Action A consistent and relevant if not possible return failure • Goal.remove(A.effect.positiveLiterals) • Goal.add(A.precondition.PositiveLiterals) • If checkIfIsReached (InitialState) return Solution • While goal not achieved

  10. StateSearchPlanner Komponent Specification STRUCTURAL MODEL StateSearchPlanner <<Subject>> Plan State Current: List of Positive Literals 0..* Action Name: string ParameterList: List of variables Effect: List of Literals Precondition: List of Positive Literals Goal EffectPositiveLiterals() EffectNegativeLiterals()

  11. StateSearchPlanner Komponent Realization

  12. StateSearchPlanner Komponent Realization Beahviour model StateChart

  13. Functional Model

  14. Functional Model

  15. POPPlanner

  16. StripsPOPPlanner modelling • Strips_States • Positive propositional literal conjunction • Positive First-order literals conjunction • Ground • Function-free • Closed-world assumption • Strips_Goal  Strips_States • Strips_actions • Name • Parameter_List • Precondition • Positive function free literals conjunction • Literal.Variables  Parameter_List.Variables • Reserved actions: START and FINISH (POP algorithm) • Effect • Function freee literals conjunction

  17. Actions set • Empty plan contains {START,FINISH} • START • No precondition • Effect:all literals composing the initial state • FINISH • No effects • Preconditions:literals composing the goal

  18. Ordering constraints • A < B • Action A must be executedbeforeaction B • A < B and B < A are not allowed (loops)

  19. p RightSockOn Causal Links • A B • Effect of action A is precondition pof action B • Cannot be canceled by other actions executed between A and B execution • Ex.: RightSock RightShoe • C conflictswithcausal link causal p: • C has effect p • C may happen between A and B according to ordering restrictions

  20. StripsPOPPlanner Komponent Specification STRUCTURAL MODEL State POPPlan Ordering Current: List of Positive Literals previous: Action Current : Action * listOfOrederedActions: Ordering successor() linearization() Action Goal Name: string ParameterList: List of variables Effect: List of Literals Precondition: List of Positive Literals CausalLinks precondition:literal CLList EffectPositiveLiterals() EffectNegativeLiterals() * Constraints: Goal.Instance  State.Instance Actions.Precondition.variables  Action.ParameterList.Variables 0..1

  21. StripsPOPPlanner KomponentSpecification STRUCTURAL MODEL State POPPlan Ordering Current: List of Positive Literals 1 previous: Action Current : Action * listOfOrederedActions: Ordering successor() linearization() Action Goal Name: string ParameterList: List of variables Effect: List of Literals Precondition: List of Positive Literals CausalLinks precondition:literal CLList EffectPositiveLiterals() EffectNegativeLiterals() * CL : List of CausalLinks Constraints:Contex Ordering:Invariant For All objects ordering O1 and O2 there cannot be O1.previous=O2.current or O1.current = O2.previous. // this means NO LOOPS 0..1

  22. StripsPOPPlanner Komponent RealizationStructural Model

  23. StripsPOPPlanner Komponent RealizationFunctional Model

  24. Project Analysis • KobrA: • small problems, only on interaction • Small structural models • Knowledge in embedded in Constraints and methods • OCL: Using OCL forces a better understanding of the model and better specification • Drawbacks: • Lack of better examples of OCL • Tool used (Poseidon) do not conform to OCL current specification • There is no Case tool for KobrA

  25. Conclusions • OCL captures some behaviour aspects • OCL does not include side effects • Further investigation is necessary to use OCL in statechart and other behavioural diagrams • It may be necessary to extend KobrA to provide bottom-up modeling and better COTS integration

More Related