talents: dynamically composable units of reuse
TRANSCRIPT
![Page 1: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/1.jpg)
Talents: Dynamically Composable
Units of Reuse
Jorge Ressia, Tudor Gîrba, Oscar Nierstrasz, Fabrizio Perin and Lukas Renggli
www.scg.unibe.ch
Monday, August 22, 11
![Page 2: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/2.jpg)
Reuse
Monday, August 22, 11
![Page 3: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/3.jpg)
Mixins
Monday, August 22, 11
![Page 4: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/4.jpg)
Monday, August 22, 11
![Page 5: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/5.jpg)
Linear Composition
Monday, August 22, 11
![Page 6: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/6.jpg)
Monday, August 22, 11
![Page 7: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/7.jpg)
Single Composition
Monday, August 22, 11
![Page 8: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/8.jpg)
Monday, August 22, 11
![Page 9: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/9.jpg)
Traits
Monday, August 22, 11
![Page 10: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/10.jpg)
Class = Superclass + State + Traits + Glue methods
Monday, August 22, 11
![Page 11: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/11.jpg)
Flatten Composition
Monday, August 22, 11
![Page 12: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/12.jpg)
Multiple Composition
Monday, August 22, 11
![Page 13: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/13.jpg)
Problem
Monday, August 22, 11
![Page 14: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/14.jpg)
aFAMIXClass isTestClass
Keyinstance-ofmessage sendlookup
FAMIXEntity
FAMIXType
isTestClassFAMIXClass
aFAMIXClass
1
2
3
self inheritsFrom: 'TestCase'
MooseEntity
...
Monday, August 22, 11
![Page 15: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/15.jpg)
What about objects?
Monday, August 22, 11
![Page 16: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/16.jpg)
Talents
Monday, August 22, 11
![Page 17: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/17.jpg)
aFAMIXClass isTestClass
FAMIXClass
aFAMIXClass
1
2
4
aFAMIXClass inheritsFrom: 'TestCase'
aJeeClassTalent
Keyinstance-ofmessage sendlookupacquire
3aJeeClassTalent talent isTestClass
FAMIXEntity
FAMIXType
MooseEntity
...
Monday, August 22, 11
![Page 18: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/18.jpg)
Operators
Monday, August 22, 11
![Page 19: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/19.jpg)
Composition
Monday, August 22, 11
![Page 20: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/20.jpg)
aClass := FAMIXClass new.aClass acquire: ( javaClassTalent , jeeClassTalent ).
Monday, August 22, 11
![Page 21: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/21.jpg)
Alias
Monday, August 22, 11
![Page 22: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/22.jpg)
aClass := FAMIXClass new.aClass acquire: javaClassTalent , ( jeeClassTalent
@ {#isTestClass -> #isJEETestClass})
Monday, August 22, 11
![Page 23: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/23.jpg)
Exclusion
Monday, August 22, 11
![Page 24: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/24.jpg)
aClass := FAMIXClass new.aClass acquire: javaClassTalent ,
(jeeClassTalent - #isTestClass).
Monday, August 22, 11
![Page 25: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/25.jpg)
Implementation
Monday, August 22, 11
![Page 26: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/26.jpg)
Reflection
Monday, August 22, 11
![Page 27: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/27.jpg)
scg.unibe.ch/research/bifrost
Monday, August 22, 11
![Page 28: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/28.jpg)
Organize the Meta-level
Monday, August 22, 11
![Page 29: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/29.jpg)
ExplicitMeta-objects
Monday, August 22, 11
![Page 30: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/30.jpg)
Object
TalentClass
Monday, August 22, 11
![Page 31: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/31.jpg)
Object
TalentClass
Monday, August 22, 11
![Page 32: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/32.jpg)
Talented Object
TalentClass
Monday, August 22, 11
![Page 33: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/33.jpg)
Flattening
Monday, August 22, 11
![Page 34: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/34.jpg)
Scoping
Monday, August 22, 11
![Page 35: Talents: Dynamically Composable Units of Reuse](https://reader034.vdocuments.site/reader034/viewer/2022042702/55d52cd9bb61ebfd7f8b45d1/html5/thumbnails/35.jpg)
Talents
www.scg.unibe.ch/research/talents
Monday, August 22, 11