Upcoming SlideShare
Loading in...5
×

Like this presentation? Why not share!

# Point GEODES

## on Mar 30, 2011

• 197 views

### Views

Total Views
197
Views on SlideShare
197
Embed Views
0

Likes
0
Downloads
1
Comments
0

No embeds

### Upload Details

Uploaded via as Apple Keynote

### Usage Rights

© All Rights Reserved

### Report content

• Comment goes here.
Are you sure you want to
Your message goes here
Edit your comment
• \n
• \n
• \n
• \n
• \n
• \n
• \n
• \n
• \n
• \n
• \n
• \n
• \n
• \n
• \n
• \n
• \n
• \n
• \n
• \n

## Point GEODESPresentation Transcript

• Assisting Domain Modeling with Formal Analysis Juan Cadavid Benoit Baudry Jean-Marc Jézéquel INRIA Bretagne - Atlantique, team Triskell 1
• Domain Models• A conceptual model of a system which describes the various entities involved in that system and their relationships. Domain Model for Insurance 2
• Typical Domain Modeling Domain Model Raw Modeling Space 3
• Typical Domain Modeling Incorrect InstancesThere is an intention not expressed by the metamodel on its own. 4
• Precise Domain Modeling Limit the number of solutions to ﬁnd the precise modeling space 5
• Precise Domain Modeling OCL • Write constraints along with the domain model.OCL OCL • The most popular language is OCL OCL (Object Constraint OCL Language) 6
• Example: Metamodeling Feature Models A B B 7
• Example: Metamodeling Feature Models A B B Two features cannot have the same name 7
• Example: Metamodeling Feature Models 8
• Example: Metamodeling Feature Models There cannot be mutual exclusivity between a parent feature and its children. 8
• Example: Metamodeling Feature Models A B 9
• Example: Metamodeling Feature Models A B The or operator must have at least two operands 9
• Precise Domain Modeling • A given set of OCL constraints could include bad instances, and leaveOCL out good instances. OCL • How to ﬁnd the good set of OCL OCL constraints that correctly describes the modeling space? 10
• Exploring the ModelingSpace: Generating Instances Kermeta2Alloy Metamodel Metamodel in Ecore in AlloyPramana:Generates conforms to AlloySolutionMetamodelInstances using Solution2xmi Instances InstancesAlloy in XMI in Alloy XML 11
• Pramana Architecture 12
• Challenges with Pramana• Robustness/Enough testing• Alloy limitations • Small scope • Integer numbers• Maximize distance between metamodel instances• OCL2Alloy: A difﬁcult transformation 13
• Understanding the use of OCL (1)• Study of 519 invariants from three OMG speciﬁcations: UML, OCL and CORBA Component Model• Deﬁnition of Metrics • Size of Metamodel • Invariant complexity w.r.t. the metamodel • Invariant complexity w.r.t to OCL 14
• Understanding the use of OCL (1I)• 88% of invariants were written with 36% of the OCL language.• Most invariants are deﬁned over two or less domain elements (i.e. class attributes)• Result: Catalog of recurring patterns in OCL invariants. 15
• Automatic Invariant Derivation (I)• Prototype to match patterns from Catalog• Input: Metamodel, correct instances and incorrect instances.• Matching instances marked as incorrect by the user • Incorrect motifs • Derive OCL invariant from template• Test derived instances marked as correct by the user 16
• Automatic Invariant Derivation (II) Pattern 1 Pattern 2 Pattern n Ecore+OCL Ecore+OCL Ecore+OCLMetamodel Automatic Metamodel Correct Invariant + OCLInstances DerivationIncorrectInstances 17
• Strategies for Mining patterns• Strings -> bio-inspired computing, bioinformatics• Graphs -> graph grammars, mining graph bases• Relational -> R, data mining algorithms
• Algorithms• We need: • Match existing patterns (from a predeﬁned catalog) • Find new patterns (mining correct/incorrect instances)• We could get them from: • Bio-inspired computing, bioinformatics • Graph grammars: structure learning, PEGG • Relational data-mining • Inductive-Logic programming
• ProtocolList<OclExpression> mineInvs(List<Object> goodInst,List<Object> badInst){ #Encode instances #Match with existing patterns from catalog #Find new patterns}