Stephan Herrmann
Runtime Specialization Java has never been so dynamic before
Simply Retail.
Runtime Specialization Java has never been so dynamic before - - PowerPoint PPT Presentation
Runtime Specialization Java has never been so dynamic before Stephan Herrmann Simply Retail. Two Camps Strict Rules No Ceremony compiler detects errors Freedom Modularity Flexibility separate maintenance self modifying code Enforced
Simply Retail.
Stephan Herrmann: Runtime Specialization - EclipseCon Europe 2015
# 2
Stephan Herrmann: Runtime Specialization - EclipseCon Europe 2015
# 3
Stephan Herrmann: Runtime Specialization - EclipseCon Europe 2015
# 4
Stephan Herrmann: Runtime Specialization - EclipseCon Europe 2015
# 5
time +clear() +start() +stop() tick()
+clear() +start() +stop() update() <
Stephan Herrmann: Runtime Specialization - EclipseCon Europe 2015
# 6
time +clear() +start() +stop() tick()
+clear() +start() +stop() update()
infra structure solution language solution
Stephan Herrmann: Runtime Specialization - EclipseCon Europe 2015
# 7
time +clear() +start() +stop() tick()
+clear() +start() +stop() update() «playedBy» update ← after tick
Stephan Herrmann: Runtime Specialization - EclipseCon Europe 2015
# 8
Stephan Herrmann: Runtime Specialization - EclipseCon Europe 2015
# 9
time +clear() +start() +stop() tick()
+clear() +start() +stop() update()
«playedBy»
update ← after tick
Stephan Herrmann: Runtime Specialization - EclipseCon Europe 2015
# 10
Dynamism: roles can come and go (same base object) Multiplicities:
(difgerent/same role types)
name
salary «playedBy»
name=”joe”
joe: Person :Student
matr=0815
«base»
:Employee
salary=100
« b a s e »
:Employee
salary=2000
«base»
salary
name
Stephan Herrmann: Runtime Specialization - EclipseCon Europe 2015
# 11
protected class WatchDisplay extends JFrame playedBy StopWatch { update <- after advance; void start() -> void start(); void stop() -> void stop(); void clear() -> void reset(); }
Stephan Herrmann: Runtime Specialization - EclipseCon Europe 2015
# 12
Stephan Herrmann: Runtime Specialization - EclipseCon Europe 2015
# 13
phoneNo getPhoneNo()
c :Company c :Company
name hire(Person p) name hire(Person p)
:Employee
getPhoneNo ← getPhoneNo
«playedBy»
getPhoneNo()
Off On
if (c.isActive())
getPhoneNo()
Stephan Herrmann: Runtime Specialization - EclipseCon Europe 2015
# 14
Stephan Herrmann: Runtime Specialization - EclipseCon Europe 2015
# 15
Stephan Herrmann: Runtime Specialization - EclipseCon Europe 2015
# 16
Stephan Herrmann: Runtime Specialization - EclipseCon Europe 2015
# 17