talents: dynamically composable units of reuse

35
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

Upload: esug

Post on 20-Aug-2015

754 views

Category:

Technology


3 download

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