Top Banner
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
35
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Talents: Dynamically Composable Units of Reuse

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

Reuse

Monday, August 22, 11

Page 3: Talents: Dynamically Composable Units of Reuse

Mixins

Monday, August 22, 11

Page 4: Talents: Dynamically Composable Units of Reuse

Monday, August 22, 11

Page 5: Talents: Dynamically Composable Units of Reuse

Linear Composition

Monday, August 22, 11

Page 6: Talents: Dynamically Composable Units of Reuse

Monday, August 22, 11

Page 7: Talents: Dynamically Composable Units of Reuse

Single Composition

Monday, August 22, 11

Page 8: Talents: Dynamically Composable Units of Reuse

Monday, August 22, 11

Page 9: Talents: Dynamically Composable Units of Reuse

Traits

Monday, August 22, 11

Page 10: Talents: Dynamically Composable Units of Reuse

Class = Superclass + State + Traits + Glue methods

Monday, August 22, 11

Page 11: Talents: Dynamically Composable Units of Reuse

Flatten Composition

Monday, August 22, 11

Page 12: Talents: Dynamically Composable Units of Reuse

Multiple Composition

Monday, August 22, 11

Page 13: Talents: Dynamically Composable Units of Reuse

Problem

Monday, August 22, 11

Page 14: Talents: Dynamically Composable Units of Reuse

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

What about objects?

Monday, August 22, 11

Page 16: Talents: Dynamically Composable Units of Reuse

Talents

Monday, August 22, 11

Page 17: Talents: Dynamically Composable Units of Reuse

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

Operators

Monday, August 22, 11

Page 19: Talents: Dynamically Composable Units of Reuse

Composition

Monday, August 22, 11

Page 20: Talents: Dynamically Composable Units of Reuse

aClass := FAMIXClass new.aClass acquire: ( javaClassTalent , jeeClassTalent ).

Monday, August 22, 11

Page 21: Talents: Dynamically Composable Units of Reuse

Alias

Monday, August 22, 11

Page 22: Talents: Dynamically Composable Units of Reuse

aClass := FAMIXClass new.aClass acquire: javaClassTalent , ( jeeClassTalent

@ {#isTestClass -> #isJEETestClass})

Monday, August 22, 11

Page 23: Talents: Dynamically Composable Units of Reuse

Exclusion

Monday, August 22, 11

Page 24: Talents: Dynamically Composable Units of Reuse

aClass := FAMIXClass new.aClass acquire: javaClassTalent ,

(jeeClassTalent - #isTestClass).

Monday, August 22, 11

Page 25: Talents: Dynamically Composable Units of Reuse

Implementation

Monday, August 22, 11

Page 26: Talents: Dynamically Composable Units of Reuse

Reflection

Monday, August 22, 11

Page 27: Talents: Dynamically Composable Units of Reuse

scg.unibe.ch/research/bifrost

Monday, August 22, 11

Page 28: Talents: Dynamically Composable Units of Reuse

Organize the Meta-level

Monday, August 22, 11

Page 29: Talents: Dynamically Composable Units of Reuse

ExplicitMeta-objects

Monday, August 22, 11

Page 30: Talents: Dynamically Composable Units of Reuse

Object

TalentClass

Monday, August 22, 11

Page 31: Talents: Dynamically Composable Units of Reuse

Object

TalentClass

Monday, August 22, 11

Page 32: Talents: Dynamically Composable Units of Reuse

Talented Object

TalentClass

Monday, August 22, 11

Page 33: Talents: Dynamically Composable Units of Reuse

Flattening

Monday, August 22, 11

Page 34: Talents: Dynamically Composable Units of Reuse

Scoping

Monday, August 22, 11

Page 35: Talents: Dynamically Composable Units of Reuse

Talents

www.scg.unibe.ch/research/talents

Monday, August 22, 11