Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Tony clark caise 13-presentation
1. On the Search for a Level-Agnostic Modelling
Language
Brian Henderson-Sellers1 Tony Clark2
Cesar Gonzalez-Perez3
1University of Technology, Sydney, Australia.
2Middlesex University, London, UK.
3Institute of Heritage Sciences, Spanish National Research Council (CSIC) Spain.
25th International Conference on Advanced Information
Systems Engineering, 2013, Valencia, Spain
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
2. Models in Information System Development
Multiple inter-operating (extensible) tools.
Multiple inter-operating (domain-specific, extensible)
languages.
(MBE Framework due to Bran Selic, Dagstuhl on MBE Tooling, May 2013)
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
3. Models in Information System Development
Multiple inter-operating (extensible) tools.
Multiple inter-operating (domain-specific, extensible)
languages.
(MBE Framework due to Bran Selic, Dagstuhl on MBE Tooling, May 2013)
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
4. Modelling Languages and Tools
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
5. Modelling Languages and Tools
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
6. Modelling Languages and Tools
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
7. Modelling Languages and Tools
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
8. Modelling Languages and Tools
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
9. Modelling with Types and Instances
Tools must deal with mixed-level models.
No limit to the number of instantiation levels.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
10. Modelling with Types and Instances
Tools must deal with mixed-level models.
No limit to the number of instantiation levels.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
11. Meta-modelling Requirements
Need to integrate languages, models and instances.
Must be able to mix levels.
Tools must work across levels.
Tools are (partly) models too.
Unforeseen extensions must be accommodated.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
12. Meta-modelling Requirements
Need to integrate languages, models and instances.
Must be able to mix levels.
Tools must work across levels.
Tools are (partly) models too.
Unforeseen extensions must be accommodated.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
13. Meta-modelling Requirements
Need to integrate languages, models and instances.
Must be able to mix levels.
Tools must work across levels.
Tools are (partly) models too.
Unforeseen extensions must be accommodated.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
14. Meta-modelling Requirements
Need to integrate languages, models and instances.
Must be able to mix levels.
Tools must work across levels.
Tools are (partly) models too.
Unforeseen extensions must be accommodated.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
15. Meta-modelling Requirements
Need to integrate languages, models and instances.
Must be able to mix levels.
Tools must work across levels.
Tools are (partly) models too.
Unforeseen extensions must be accommodated.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
16. Approaches: Object Management Group 3-Layers
Taken from Djuric et al. The Tao of Modeling Spaces, JOT 5(8) 2006
Implementations: MOF, Ecore - problems with universality.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
18. Approaches: Pan Level Modelling
Atkinson and Gutheil
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
19. Approaches: Potency
Atkinson and Kühne
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
20. An Approach: Everything is an Object
Put on the Modelling Goggles.
Fractal Architecture.
Types are well-behaved patterns.
Type relation specified within the model via constraints.
Functions included as essential features.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
21. An Approach: Everything is an Object
Put on the Modelling Goggles.
Fractal Architecture.
Types are well-behaved patterns.
Type relation specified within the model via constraints.
Functions included as essential features.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
22. An Approach: Everything is an Object
Put on the Modelling Goggles.
Fractal Architecture.
Types are well-behaved patterns.
Type relation specified within the model via constraints.
Functions included as essential features.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
23. An Approach: Everything is an Object
Put on the Modelling Goggles.
Fractal Architecture.
Types are well-behaved patterns.
Type relation specified within the model via constraints.
Functions included as essential features.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
24. An Approach: Everything is an Object
Put on the Modelling Goggles.
Fractal Architecture.
Types are well-behaved patterns.
Type relation specified within the model via constraints.
Functions included as essential features.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
25. Validation of Approach
Available at https://github.com/xmodeler/XModeler
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
26. Animals Package as an Object
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
27. Tools: Constraint Checking
1 @Class Object
2 @Attribute of : Class end
3 @Attribute slots : Seq(Slot) end
4 end
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
28. Tools: Constraint Checking
1 @Class Object
2 @Attribute slots : Seq(Slot) end
3 @Operation asEnv()
4 let bindings = slots->collect(s | Bind(s.name,s.value))
5 in Seq{Bind("slots",slots),
6 Bind("self",self)}
7 + bindings
8 end
9 end
10 end
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
29. Tools: Constraint Checking
1 @Class Object
2 @Attribute slots : Seq(Slot) end
3 @Operation asEnv()
4 let bindings = slots->collect(s | Bind(s.name,s.value))
5 in Seq{Bind("slots",slots),
6 Bind("self",self)}
7 + bindings
8 end
9 end
10 @Operation checkConstraints()
11 of.checkConstraints(self)
12 end
13 end
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
30. Tools: Constraint Checking
1 @Class Object
2 @Attribute slots : Seq(Slot) end
3 @Operation asEnv()
4 let bindings = slots->collect(s | Bind(s.name,s.value))
5 in Seq{Bind("slots",slots),
6 Bind("self",self)}
7 + bindings
8 end
9 end
10 @Operation checkConstraints()
11 self.of.checkConstraints(self)
12 end
13 @Constraint Complete
14 slots->collect(s | s.name) = of.attributes.name
15 end
16 end
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
31. Tools: Constraint Checking
1 @Class Class extends Object
2 @Attribute parents : Seq(Class) end
3 end
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
32. Tools: Constraint Checking
1 @Class Class extends Object
2 @Attribute parents : Seq(Class) end
3 @Attribute attributes : Seq(Attribute) end
4 end
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
33. Tools: Constraint Checking
1 @Class Class extends Object
2 @Attribute parents : Seq(Class) end
3 @Attribute attributes : Seq(Attribute) end
4 @Attribute constraints : Seq(Constraint) end
5 end
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
34. Tools: Constraint Checking
1 @Class Class extends Object
2 @Attribute parents : Seq(Class) end
3 @Attribute attributes : Seq(Attribute) end
4 @Attribute constraints : Seq(Constraint) end
5 @Operation allConstraints()
6 parents->iterate(parent C = constraints |
7 C->union(parent.allConstraints()))
8 end
9 end
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
35. Tools: Constraint Checking
1 @Class Class extends Object
2 @Attribute parents : Seq(Class) end
3 @Attribute attributes : Seq(Attribute) end
4 @Attribute constraints : Seq(Constraint) end
5 @Operation allConstraints()
6 parents->iterate(parent C = constraints |
7 C->union(parent.allConstraints()))
8 end
9 @Operation checkConstraints(candidate)
10 allConstraints()->forAll(c | c.check(candidate))
11 end
12 end
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
36. Tools:Constraint Checking
Everything extends Object unless defined otherwise
1 @Class Constraint
2 @Attribute exp : Exp end
3 end
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
37. Tools:Constraint Checking
1 @Class Constraint
2 @Attribute exp : Exp end
3 @Operation check(candidate)
4 exp.eval(candidate.asEnv())
5 end
6 end
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
38. Example
Breed is a new language element.
Dogs of known breeds must have a name.
Breeds might be pedigree.
Pedigree breeds are regulated through registration.
Aim: tool for constraint checking.
Claim: tool is language-level agnostic.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
39. Example
Breed is a new language element.
Dogs of known breeds must have a name.
Breeds might be pedigree.
Pedigree breeds are regulated through registration.
Aim: tool for constraint checking.
Claim: tool is language-level agnostic.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
40. Example
Breed is a new language element.
Dogs of known breeds must have a name.
Breeds might be pedigree.
Pedigree breeds are regulated through registration.
Aim: tool for constraint checking.
Claim: tool is language-level agnostic.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
41. Example
Breed is a new language element.
Dogs of known breeds must have a name.
Breeds might be pedigree.
Pedigree breeds are regulated through registration.
Aim: tool for constraint checking.
Claim: tool is language-level agnostic.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
42. Example
Breed is a new language element.
Dogs of known breeds must have a name.
Breeds might be pedigree.
Pedigree breeds are regulated through registration.
Aim: tool for constraint checking.
Claim: tool is language-level agnostic.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
43. Example
Breed is a new language element.
Dogs of known breeds must have a name.
Breeds might be pedigree.
Pedigree breeds are regulated through registration.
Aim: tool for constraint checking.
Claim: tool is language-level agnostic.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
44. Example
1 @Class Breed extends Class
2 @Attribute isPedigree : Boolean end
3 end
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
45. Example
1 @Class Breed extends Class
2 @Attribute isPedigree : Boolean end
3 @Constraint IsNamed
4 attributes->exists(a |
5 a.name = "name"
6 and a.type = String)
7 end
8 end
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
46. Example
1 @Class Breed extends Class
2 @Attribute isPedigree : Boolean end
3 @Constraint IsNamed
4 attributes->exists(a |
5 a.name = "name"
6 and a.type = String)
7 end
8 @Constraint PedigreeDogsMustHaveRegistrationProperty
9 isPedigree implies attributes->exists(a |
10 a.name = "isRegistered"
11 and a.type = Boolean)
12 end
13 end
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
47. Example
1 @Class IllegalBreed metaclass Breed
2 isPedigree = false
3 end
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
48. Example
1 @Class IllegalBreed metaclass Breed
2 isPedigree = false
3 end
4
5 @Class IllegalPedigreeBreed metaclass Breed
6 isPedigree = true
7 end
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
49. Example
1 @Class IllegalBreed metaclass Breed
2 isPedigree = false
3 end
4
5 @Class IllegalPedigreeBreed metaclass Breed
6 isPedigree = true
7 end
8
9 @Class Collie metaclass Breed
10 isPedigree = true
11 @Attribute isRegistered : Boolean end
12 @Attribute name : String end
13 @Constructor(name,isRegistered) ! end
14 @Constraint AllColliesAreCalledFido
15 name = "Fido"
16 end
17 end
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
50. Tool Application
Running against objects
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
51. Tool Application
Running against objects
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
52. Tool Application
Running against types
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
53. Tool Application
Running against types
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
54. Tool Application
Running against types
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
55. Tool Application
Running against meta-types
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
56. Tool Application
Running against everything
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
57. Tool Application
Running against meta-meta-types
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
58. Review and A Claim
MBE requires languages.
Languages require meta-models.
Tools must be write-once run on any meta-level.
Various approaches: strict; power-types; clabjects;
potency.
Claim: Our approach is language-level agnostic and
generalizes other approaches.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
59. Review and A Claim
MBE requires languages.
Languages require meta-models.
Tools must be write-once run on any meta-level.
Various approaches: strict; power-types; clabjects;
potency.
Claim: Our approach is language-level agnostic and
generalizes other approaches.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
60. Review and A Claim
MBE requires languages.
Languages require meta-models.
Tools must be write-once run on any meta-level.
Various approaches: strict; power-types; clabjects;
potency.
Claim: Our approach is language-level agnostic and
generalizes other approaches.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
61. Review and A Claim
MBE requires languages.
Languages require meta-models.
Tools must be write-once run on any meta-level.
Various approaches: strict; power-types; clabjects;
potency.
Claim: Our approach is language-level agnostic and
generalizes other approaches.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language
62. Review and A Claim
MBE requires languages.
Languages require meta-models.
Tools must be write-once run on any meta-level.
Various approaches: strict; power-types; clabjects;
potency.
Claim: Our approach is language-level agnostic and
generalizes other approaches.
Brian Henderson-Sellers, Tony Clark, Cesar Gonzalez-Perez On the Search for a Level-Agnostic Modelling Language