The Fondue Toolset Thomas Baar 3 rd International KeY-Workshop Königswinter near Bonn June 8, 2004
Thomas Baar: The Fondue Toolset 2 Outline ● What is Fondue? ● Toolset – Architecture – Current State – Current Problems
Thomas Baar: The Fondue Toolset 3 Fondue -- Overview ● Software development methodology inspired by FUSION ● Notation is similar to UML ● Advocates formal specification in Analysis phase ● Applied by students in projects ● Tested by developers of commercial software Toolset: Concentrates on Analysis phase
Thomas Baar: The Fondue Toolset 4 Fondue -- Models Requirements Models Domain Model Use Case Model Analysis Environment Model Models Behavior Model Protocol Model Concept Model Operation Model Design Design A B A depends on B: a change in B induces a change in A
Thomas Baar: The Fondue Toolset 5 Example - DrinkVendingMachine 2 . 9 0 1 2 2 3
Thomas Baar: The Fondue Toolset 6 DVM – Environment Model takeMoney giveDrink * returnMoney releaseMoney isEmpty PhysicalShelf isReplenished insertMoney MoneyBox boxIsFull selectDrink boxIsNotFull * ejectMoney ShelfSelectBtn DVM (Controller) EjectBtn displayMoney insufficientFunds drinkNotAvailable outOfService setPriceOfShelf InformationPanel PricePanel
Thomas Baar: The Fondue Toolset 7 DVM – Concept Model * <<system>> 1 1 DVM (Controller) 1 outOfOrder: Boolean 1 PhysicalShelf «id» MoneyBox collectingMoney: Boolean amountRegistered: Money = 0 * 1 1 1 Shelf * 1 «id» 1 1 isEmpty: Boolean ShelfSelectBtn EjectBtn drinkPrice: Money 1 1 1 1 1 1 PricePanel InformationPanel
Thomas Baar: The Fondue Toolset 8 DVM -- ProtocolModel DVM isEmpty isReplenished setPriceOfShelf Ready insertMoney ejectMoney boxIsNotFull selectDrink CollectingMoney boxIsFull isEmpty insertMoney isReplenished selectDrink setPriceOfShelf OutOfOrder insertMoney
Thomas Baar: The Fondue Toolset 9 DVM -- OperationModel
Thomas Baar: The Fondue Toolset Fondue Toolset -- Overview ● Support for Fondue-Notation – Editors for Concept-, Environment-, Protocol-Model (ensure strict compliance to Fondue-MM) – Cross-check for syntactical correctness (Certifier) – Editor for Operation-Model (OCL) ● Animation of Specification – Display of system state (object diagram) ● (Test Case Generation)
Thomas Baar: The Fondue Toolset Fondue Toolset -- Architecture CaseTool (Together) FondueToolset FondueToolset Editors Editors Editors Editors Editors Editors Editors Editors Certifier Animator TestManager - Concept - Concept - Concept - Concept - Concept - Concept - Concept - Concept - Environment - Environment - Environment - Environment - Environment - Environment - Environment - Environment - Protocol - Protocol - Protocol - Protocol - Protocol - Protocol - Protocol - Protocol - Operation - Operation - Operation - Operation - Operation - Operation - Operation - Operation - Object - Object - Object - Object - Object - Object - Object - Object Fondue-specific Repository (MDR)
Thomas Baar: The Fondue Toolset Notation – Defined by Metamodel WFRs: context Actor inv: ... context Class inv: ...
Thomas Baar: The Fondue Toolset Notation – Implemented by Editor
Thomas Baar: The Fondue Toolset Animator Pre/Post-Spec Purpose: Ini-State ● Satisfiability-Check Control-Info ● Reality-Check ● Implementation of UML as Animator High-level Programming Language (Executable UML) Sequence of States
Thomas Baar: The Fondue Toolset Animator – Non-Determinism a:A att = 1 a:A att = 2 ? a:A a:A att = 3 a:A att = 20 att = 4
Thomas Baar: The Fondue Toolset Non-Deterministic Animation-- Solution I Forbid non-deterministic specifications – Post-state specifications must have only one solution for given pre-state – Specification style is (mainly) adopted in B (mainly: non-deterministic specification are made explicit by usage of non-deterministic constructs) – OCL-dialect OCLScript attempts something similar ✔
Thomas Baar: The Fondue Toolset Non-Deterministic Animation-- Solution II Choose post-state among current possibilities 1) Compute all solutions for post-state spec 2) Next state is chosen (by user or automatically) i. Choose-operation is backtrackable Approach of B.Legeard in BZTT: UML SetOfPostStates PROLOG Constraint- UML2PROLOG Solver
Thomas Baar: The Fondue Toolset Summary Results ● Concept-,Environment-Editor compliant to MM ● Fondue-specific version of OCL-Editor ● Fondue-specific repository ● Check of well-formedness rules with certifier ● Stand-alone object editor
Thomas Baar: The Fondue Toolset Summary Future work ● Integration (ObjectEditor, import, OCLE, ...) ● Refined Metamodel (including layout information) ● Parsing of OCL (requires Fondue2UML preprocessing) ● Animation ● Translation into format for constraint solver ● Adaptation of standard-solver ??? ● Synchronization with Protocol model ● Front-end for refactoring application
Recommend
More recommend