A Language for Feedback Loops in Self-Adaptive Systems: Executable - - PowerPoint PPT Presentation

a language for feedback loops in self adaptive systems
SMART_READER_LITE
LIVE PREVIEW

A Language for Feedback Loops in Self-Adaptive Systems: Executable - - PowerPoint PPT Presentation

A Language for Feedback Loops in Self-Adaptive Systems: Executable Runtime Megamodels 7th Intl. Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2012) Zurich, Switzerland, June 4-5, 2012 Thomas Vogel and Holger


slide-1
SLIDE 1

A Language for Feedback Loops in Self-Adaptive Systems: Executable Runtime Megamodels

7th Intl. Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2012) Zurich, Switzerland, June 4-5, 2012

Thomas Vogel and Holger Giese

System Analysis and Modeling Group Hasso Plattner Institute University of Potsdam, Germany

slide-2
SLIDE 2

Engineering Self-Adaptive Software

  • Internal vs. external approach

[Salehie and Tahvildari, 2009]

  • Feedback Loop (MAPE-K)

[Kephart and Chess, 2003]

  • Multiple, flexible feedback loops
  • Different concerns

[Vogel et al., 2010a, Vogel and Giese, 2010]

  • Hierarchical structures

[Hestermeyer et al., 2004, Kramer and Magee, 2007]

  • Uncertainty [Esfahani and Malek, 2012]
  • Models@run.time for K and MAPE
  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

2

Adaptation Engine Adaptable Software

slide-3
SLIDE 3

Interplay of Runtime Models?

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

3

m:EjbModule

uid := ib.uid

i:Interface c:Component

uid := i.uid

ib:EjbInterface sb:SessionBean tb:EjbInterfaceType t:InterfaceType corr1: CorrEjbModule corr2: CorrEjbInterface corr3: CorrEjbInterfaceType

enterpriseBeans ejbInterfaces ejbInterfaceType provides type ++ ++ ++ ++ ++ ++ ++ ++ ++

if self.name = ’TShop’ then self.components.size() <= 1 else true endif

name = InvalidTX

f1:

name = IWarehousing

i2:Interface Failure

name = InvalidTX

f3:

failures

Failure

name = InvalidTX

f2:

failures

Failure

failures

name = Shop

c1:Component

name = Warehousing

c2:Component

name = IWarehousing

i1:Interface

name = IWarehousing

i2:Interface

name = IWarehousing

i3:Interface

name = Warehousing2

c3:Component

name = c1

co1:Connector

name = c2

co2:Connector

requires provides

  • ++

++ provides ++

  • ?

slide-4
SLIDE 4

Specifying and Executing Feedback Loops

Specification — Modeling language

  • Capturing the interplay of multiple runtime models

[Vogel et al., 2010b, Vogel et al., 2011]

  • Making feedback loops explicit in the design of self-adaptive

systems [Müller et al., 2008, Brun et al., 2009] Execution — Model interpreter

  • Coordinated execution/usage of multiple runtime models
  • Flexible solutions and structures for feedback loops

Adaptable feedback loops

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

4

slide-5
SLIDE 5

Specifying and Executing Feedback Loops

Specification — Modeling language

  • Capturing the interplay of multiple runtime models

[Vogel et al., 2010b, Vogel et al., 2011]

  • Making feedback loops explicit in the design of self-adaptive

systems [Müller et al., 2008, Brun et al., 2009] Execution — Model interpreter

  • Coordinated execution/usage of multiple runtime models
  • Flexible solutions and structures for feedback loops

Adaptable feedback loops

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

4

Executable Runtime Megamodels

slide-6
SLIDE 6

Megamodels

Definition (Megamodel) A megamodel is a model that contains models and relations by means

  • f model operations between those models.
  • Research on model-driven software development (MDA, MDE)

[Favre, 2005, Bézivin et al., 2003, Bézivin et al., 2004, Barbero et al., 2007]

  • “Toward Megamodels at Runtime” [Vogel et al., 2010b]
  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

5

slide-7
SLIDE 7

An Example: Self-repair

Analyzed Start Effected

Legend

(concrete syntax)

Final state Initial state

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

6

slide-8
SLIDE 8

An Example: Self-repair

up- dated model

Update

<<Monitor>> failures

Check for failures

<<Analyze>> no failures

Deep check for failures

<<Analyze>> detailed results

Repair

<<Plan>> repaired

Effect

<<Execute>> done Analyzed Start Effected

Legend

(concrete syntax)

t1

Model Operation

t2

Final state Initial state

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

6

slide-9
SLIDE 9

An Example: Self-repair

[c since 'no failures' > 5] [else] up- dated model

Update

<<Monitor>> failures

Check for failures

<<Analyze>> no failures

Deep check for failures

<<Analyze>> detailed results

Repair

<<Plan>> repaired

Effect

<<Execute>> done Analyzed Start Effected

Legend

(concrete syntax)

[condition] [else]

Control flow

t1

Model Operation

t2

Final state Initial state

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

6

slide-10
SLIDE 10

An Example: Self-repair

Failure analysis rules

<<EvaluationModel>>

Deep analysis rules

<<EvaluationModel>>

Architectural Model

<<ReflectionModel>>

TGG Rules

<<MonitoringModel>> <<ExecutionModel>>

Repair strategies

<<ChangeModel>> [c since 'no failures' > 5] [else] up- dated model

Update

<<Monitor>> failures

Check for failures

<<Analyze>> no failures

Deep check for failures

<<Analyze>> detailed results

Repair

<<Plan>> repaired

Effect

<<Execute>> done Analyzed Start Effected

Legend

(concrete syntax)

Model

[condition] [else]

Control flow

t1

Model Operation

t2

Final state Initial state

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

6

slide-11
SLIDE 11

An Example: Self-repair

r w r a r r a r r w r r r

Failure analysis rules

<<EvaluationModel>>

Deep analysis rules

<<EvaluationModel>>

Architectural Model

<<ReflectionModel>>

TGG Rules

<<MonitoringModel>> <<ExecutionModel>>

Repair strategies

<<ChangeModel>> [c since 'no failures' > 5] [else] up- dated model

Update

<<Monitor>> failures

Check for failures

<<Analyze>> no failures

Deep check for failures

<<Analyze>> detailed results

Repair

<<Plan>> repaired

Effect

<<Execute>> done Analyzed Start Effected

Legend

(concrete syntax)

Model usage Model

[condition] [else]

Control flow

t1

Model Operation

t2

Final state Initial state

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

6

slide-12
SLIDE 12

Modularity and Composition

failures

Check for failures

<<Analyze>> no failures

Architectural Model

<<ReflectionModel>> r a OK

Failure analysis rules

<<EvaluationModel>> r [c since 'no failures' > 5]

Deep check for failures

<<Analyze>> detailed results r a

Deep analysis rules

<<EvaluationModel>> r Failures [else] Analyze up- dated model

Update

<<Monitor>>

Architectural Model

<<ReflectionModel>>

TGG Rules

<<MonitoringModel>> <<ExecutionModel>> r w Analyzed

Self-repair. Analyze

OK

Repair

<<Plan>> repaired

Repair strategies

<<ChangeModel>> r w r

Effect

<<Execute>> done Effected r r Start Failures r a

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

7

Analysis step for self-repair Self-repair

slide-13
SLIDE 13

Modularity and Composition

failures

Check for failures

<<Analyze>> no failures

Architectural Model

<<ReflectionModel>> r a OK

Failure analysis rules

<<EvaluationModel>> r [c since 'no failures' > 5]

Deep check for failures

<<Analyze>> detailed results r a

Deep analysis rules

<<EvaluationModel>> r Failures [else] Analyze up- dated model

Update

<<Monitor>>

Architectural Model

<<ReflectionModel>>

TGG Rules

<<MonitoringModel>> <<ExecutionModel>> r w Analyzed

Self-repair. Analyze

OK

Repair

<<Plan>> repaired

Repair strategies

<<ChangeModel>> r w r

Effect

<<Execute>> done Effected r r Start Failures r a

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

7

Analysis step for self-repair Self-repair Complex model

  • perations
slide-14
SLIDE 14

Modularity and Composition

failures

Check for failures

<<Analyze>> no failures

Architectural Model

<<ReflectionModel>> r a OK

Failure analysis rules

<<EvaluationModel>> r [c since 'no failures' > 5]

Deep check for failures

<<Analyze>> detailed results r a

Deep analysis rules

<<EvaluationModel>> r Failures [else] Analyze up- dated model

Update

<<Monitor>>

Architectural Model

<<ReflectionModel>>

TGG Rules

<<MonitoringModel>> <<ExecutionModel>> r w Analyzed

Self-repair. Analyze

OK

Repair

<<Plan>> repaired

Repair strategies

<<ChangeModel>> r w r

Effect

<<Execute>> done Effected r r Start Failures r a

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

7

Analysis step for self-repair Self-repair Complex model

  • perations
slide-15
SLIDE 15

Modularity and Composition

failures

Check for failures

<<Analyze>> no failures

Architectural Model

<<ReflectionModel>> r a OK

Failure analysis rules

<<EvaluationModel>> r [c since 'no failures' > 5]

Deep check for failures

<<Analyze>> detailed results r a

Deep analysis rules

<<EvaluationModel>> r Failures [else] Analyze up- dated model

Update

<<Monitor>>

Architectural Model

<<ReflectionModel>>

TGG Rules

<<MonitoringModel>> <<ExecutionModel>> r w Analyzed

Self-repair. Analyze

OK

Repair

<<Plan>> repaired

Repair strategies

<<ChangeModel>> r w r

Effect

<<Execute>> done Effected r r Start Failures r a

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

7

Analysis step for self-repair Self-repair Shared runtime models

slide-16
SLIDE 16

Modeling Interacting Feedback Loops

Self-repair

up- dated model

Update

<<Monitor>>

Architectural Model

<<ReflectionModel>>

TGG Rules

<<MonitoringModel>> <<ExecutionModel>> r w Analyzed

Self-repair. Analyze

OK

Repair

<<Plan>> repaired

Repair strategies

<<ChangeModel>> r w r

Effect

<<Execute>> done Effected r r Start Failures r a

Self-optimization

up- dated model

Update

<<Monitor>> bottleneck

Bottleneck identification

<<Analyze>> no bottle- necks

Architectural Model

<<ReflectionModel>>

TGG Rules

<<MonitoringModel>> <<ExecutionModel>> r w r Analyzed

Queueing Model

<<EvaluationModel>> r

Adjust params

<<Plan>> adjusted

Parameter variability

<<ChangeModel>> r w r

Effect

<<Execute>> done Effected r r Start w Analyze r w

Two example solutions:

1 Linearizing Complete Feedback Loops 2 Linearizing Analysis and Planning Steps of Feedback Loops

by using complex model operations and shared runtime models

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

8

slide-17
SLIDE 17

(1) Linearizing Complete Feedback Loops

Self-repair

M A P E

Start Effected Analyzed

Self-optimization

M A P E

Start Analyzed Analyze Effected

M A P E M A P E

Analyzed

Self-repair. Start Self-optimization. Start

Self-managed Self-manage Effected Analyzed Effected

Self-optimization. Analyze

Analyzed Effected

Architectural Model

<<ReflectionModel>> r w r w w r

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

9

slide-18
SLIDE 18

(1) Linearizing Complete Feedback Loops

Self-repair

M A P E

Start Effected Analyzed

Self-optimization

M A P E

Start Analyzed Analyze Effected

M A P E M A P E

Analyzed

Self-repair. Start Self-optimization. Start

Self-managed Self-manage Effected Analyzed Effected

Self-optimization. Analyze

Analyzed Effected

Architectural Model

<<ReflectionModel>> r w r w w r

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

9

slide-19
SLIDE 19

(2) Linearizing Analysis and Planning Steps

Shared M+E

M E

Self-repair

A P

Analyzed AP Planned

Self-optimization

AP Planned

A P

Analyzed

A P A P M E

up- dated model

Update

<<Monitor>>

Architectural Model

<<ReflectionModel>>

TGG Rules

<<MonitoringModel>> <<ExecutionModel>> r w

Effect

<<Execute>> done Effected r r Start Self-repair.AP Planned Self-optimization.AP Analyzed Planned Analyzed [else] [c since 'Self-repair.AP .Planned' = 0] r w r w

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

10

slide-20
SLIDE 20

(2) Linearizing Analysis and Planning Steps

Shared M+E

M E

Self-repair

A P

Analyzed AP Planned

Self-optimization

AP Planned

A P

Analyzed

A P A P M E

up- dated model

Update

<<Monitor>>

Architectural Model

<<ReflectionModel>>

TGG Rules

<<MonitoringModel>> <<ExecutionModel>> r w

Effect

<<Execute>> done Effected r r Start Analyzed Self-repair.AP Planned Self-optimization.AP Analyzed Planned Analyzed [else] [c since 'Self-repair.AP .Planned' = 0] r w r w

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

10

slide-21
SLIDE 21

Hierarchy of Feedback Loops

up- dated model

Observe

<<Monitor>> checked

Check success rate

<<Analyze>>

Self-repair

<<ReflectionModel>> w r a

Repair strategies analysis rules

<<EvaluationModel>> r

Synthesize new repair strategies

<<Plan>> synthe- sized

Repair strategies synthesis rules

<<ChangeModel>> r w r

Replace strategies

<<Execute>> re- placed Adapted r Adapt

Self-repair-strategies

up- dated model

Update

<<Monitor>> failures

Check for failures

<<Analyze>> no failures

Architectural Model

<<ReflectionModel>>

TGG Rules

<<MonitoringModel>> <<ExecutionModel>> r w r a Analyzed

Failure analysis rules

<<EvaluationModel>> r [c since 'no failures' > 5]

Repair

<<Plan>> repaired

Repair strategies

<<ChangeModel>> r w r

Effect

<<Execute>> done Effected r r [else] Start

Self-repair Self-repair- strategies. Adapt

Adapted

Layer0

Running System

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

11

slide-22
SLIDE 22

Hierarchy of Feedback Loops

up- dated model

Observe

<<Monitor>> checked

Check success rate

<<Analyze>>

Self-repair

<<ReflectionModel>> w r a

Repair strategies analysis rules

<<EvaluationModel>> r

Synthesize new repair strategies

<<Plan>> synthe- sized

Repair strategies synthesis rules

<<ChangeModel>> r w r

Replace strategies

<<Execute>> re- placed Adapted r Adapt

Self-repair-strategies

Layer1

up- dated model

Update

<<Monitor>> failures

Check for failures

<<Analyze>> no failures

Architectural Model

<<ReflectionModel>>

TGG Rules

<<MonitoringModel>> <<ExecutionModel>> r w r a Analyzed

Failure analysis rules

<<EvaluationModel>> r [c since 'no failures' > 5]

Repair

<<Plan>> repaired

Repair strategies

<<ChangeModel>> r w r

Effect

<<Execute>> done Effected r r [else] Start

Self-repair Self-repair- strategies. Adapt

Adapted

Layer0

Running System

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

11

slide-23
SLIDE 23

Hierarchy of Feedback Loops

up- dated model

Observe

<<Monitor>> checked

Check success rate

<<Analyze>>

Self-repair

<<ReflectionModel>> w r a

Repair strategies analysis rules

<<EvaluationModel>> r

Synthesize new repair strategies

<<Plan>> synthe- sized

Repair strategies synthesis rules

<<ChangeModel>> r w r

Replace strategies

<<Execute>> re- placed Adapted r Adapt

Self-repair-strategies

Layer1

up- dated model

Update

<<Monitor>> failures

Check for failures

<<Analyze>> no failures

Architectural Model

<<ReflectionModel>>

TGG Rules

<<MonitoringModel>> <<ExecutionModel>> r w r a Analyzed

Failure analysis rules

<<EvaluationModel>> r [c since 'no failures' > 5]

Repair

<<Plan>> repaired

Repair strategies

<<ChangeModel>> r w r

Effect

<<Execute>> done Effected r r [else] Start

Self-repair Self-repair- strategies. Adapt

Adapted

Layer0

Running System

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

11

Causal connection

  • sensors + effectors required
  • implementation efforts!
slide-24
SLIDE 24

Hierarchy of Feedback Loops

Layer2

up- dated model

Observe

<<Monitor>> checked

Check success rate

<<Analyze>>

Self-repair

<<ReflectionModel>> w r a

Repair strategies analysis rules

<<EvaluationModel>> r

Synthesize new repair strategies

<<Plan>> synthe- sized

Repair strategies synthesis rules

<<ChangeModel>> r w r

Replace strategies

<<Execute>> re- placed Adapted r Adapt

Self-repair-strategies

Layer1

up- dated model

Update

<<Monitor>> failures

Check for failures

<<Analyze>> no failures

Architectural Model

<<ReflectionModel>>

TGG Rules

<<MonitoringModel>> <<ExecutionModel>> r w r a Analyzed

Failure analysis rules

<<EvaluationModel>> r [c since 'no failures' > 5]

Repair

<<Plan>> repaired

Repair strategies

<<ChangeModel>> r w r

Effect

<<Execute>> done Effected r r [else] Start

Self-repair Self-repair- strategies. Adapt

Adapted

Layer0

Running System

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

11

Causal connection

  • sensors + effectors required
  • implementation efforts!
slide-25
SLIDE 25

Hierarchy of Feedback Loops

Layer2

up- dated model

Observe

<<Monitor>> checked

Check success rate

<<Analyze>>

Self-repair

<<ReflectionModel>> w r a

Repair strategies analysis rules

<<EvaluationModel>> r

Synthesize new repair strategies

<<Plan>> synthe- sized

Repair strategies synthesis rules

<<ChangeModel>> r w r

Replace strategies

<<Execute>> re- placed Adapted r Adapt

Self-repair-strategies

Layer1

up- dated model

Update

<<Monitor>> failures

Check for failures

<<Analyze>> no failures

Architectural Model

<<ReflectionModel>>

TGG Rules

<<MonitoringModel>> <<ExecutionModel>> r w r a Analyzed

Failure analysis rules

<<EvaluationModel>> r [c since 'no failures' > 5]

Repair

<<Plan>> repaired

Repair strategies

<<ChangeModel>> r w r

Effect

<<Execute>> done Effected r r [else] Start

Self-repair Self-repair- strategies. Adapt

Adapted

Layer0

Running System

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

11

Causal connection

  • sensors + effectors required
  • implementation efforts!

Layer2 directly uses the megamodel of Layer1

  • no specific sensors and

effectors required

  • adapts the models or control

flow of the Layer1 megamodel

  • interpreter (flexibility)!
slide-26
SLIDE 26

Execution Semantics and Interpreter

Focus

  • Coordinated execution of operations (adaptation steps)
  • Handling input/output models for these operations

Simple approach

  • A megamodel as a singleton
  • Execution information
  • count and time
  • Expression language for conditions
  • Synchronous, single-threaded execution

Implementation

  • EMF

, JavaCC

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

12

M e t a m

  • d

e l

slide-27
SLIDE 27

Discussion: Executable Megamodels (I)

  • Explicit specification of feedback

loops by megamodels

  • Modularity: individual adaptation

steps and feedback loops

  • Composing steps to a feedback loop
  • Composing multiple feedback loops
  • Abstraction level similar to software architectures
  • Reusing implementations of adaptation steps
  • Coordinated interplay and execution of such steps
  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

13

up- dated model

Update

<<Monitor>> failures

Check for failures

<<Analyze>> no failures

Architectural Model

<<ReflectionModel>>

TGG Rules

<<MonitoringModel>> <<ExecutionModel>> r w r a Analyzed

Failure analysis rules

<<EvaluationModel>> r [c since 'no failures' > 5]

Deep check for failures

<<Analyze>> detailed results r a

Deep analysis rules

<<EvaluationModel>> r

Repair

<<Plan>> repaired

Repair strategies

<<ChangeModel>> r w r

Effect

<<Execute>> done Effected r r [else] Start

A P M A P E M A P E M A P E M A P E

slide-28
SLIDE 28

Discussion: Executable Megamodels (II)

  • Executable specifications kept explicit and alive at runtime

→ Runtime megamodels

  • Interpreter: flexibility to cope with

megamodel changes at runtime

  • Megamodels as reflection models for

feedback loops

  • Hierarchical control/structures
  • No specific sensors and effectors required

Supports the design/engineering of self-adaptive systems Eases development/implementation efforts

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

14

M A P E M A P E

M A P E

slide-29
SLIDE 29

Related Work

Frameworks [Garlan et al., 2004, Schmidt et al., 2008]

  • Focus on reducing development efforts for single feedback loops
  • Rather prescribe static solutions for feedback loops

Explicit Feedback Loops

  • Abstraction level of controllers, no runtime support [Hebig et al., 2010]
  • Formal modeling and analysis of design alternatives for

self-adaptive systems, no runtime support [Weyns et al., 2010] Multiple, Interacting Feedback Loops

  • Implementation framework for distributed self-adaptive systems

[Vromant et al., 2011]

Modeling Languages

  • Flowcharts and dataflow diagrams, like UML Activities
  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

15

slide-30
SLIDE 30

Conclusion and Future Work

Conclusion

  • Modeling language for feedback loops based on runtime models

(Adaptation steps, single and multiple feedback loops)

  • Executable megamodels kept alive at runtime
  • Flexibility to dynamically change megamodels (interpreter)
  • Leverages advanced solutions, like layered feedback loops

Future Work

  • Elaborate the modeling language
  • Formal interface definitions for models and model operations
  • Analysis of megamodels
  • Discuss restrictions on the execution semantics (concurrency)
  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

16

slide-31
SLIDE 31

References I

[Barbero et al., 2007] Barbero, M., Fabro, M. D., and Bézivin, J. (2007). Traceability and Provenance Issues in Global Model Management. In Proc. of 3rd Workshop on Traceability (ECMDA-TW 2007), pages 47–55. [Bézivin et al., 2003] Bézivin, J., Gerard, S., Muller, P .-A., and Rioux, L. (2003). MDA components: Challenges and Opportunities. In First Intl. Workshop on Metamodelling for MDA, pages 23–41. [Bézivin et al., 2004] Bézivin, J., Jouault, F ., and Valduriez, P . (2004). On the Need for Megamodels. In Proc. of the Workshop on Best Practices for Model-Driven Software Development. [Brun et al., 2009] Brun, Y., Serugendo, G. D. M., Gacek, C., Giese, H. M., Kienle, H. M., Litoiu, M., Müller, H. A., Pezzè, M., and Shaw, M. (2009). Engineering Self-Adaptive Systems through Feedback Loops. In Software Engineering for Self-Adaptive Systems, volume 5525 of LNCS, pages 48–70. Springer. [Esfahani and Malek, 2012] Esfahani, N. and Malek, S. (2012). Uncertainty in Self-Adaptive Software Systems. In Software Engineering for Self-Adaptive Systems 2, LNCS. Springer. to appear. [Favre, 2005] Favre, J.-M. (2005). Foundations of Model (Driven) (Reverse) Engineering : Models – Episode I: Stories of The Fidus Papyrus and of The Solarus. In Language Engineering for Model-Driven Software Development, number 04101 in Dagstuhl Seminar Proc. IBFI. [Garlan et al., 2004] Garlan, D., Cheng, S.-W., Huang, A.-C., Schmerl, B., and Steenkiste, P . (2004). Rainbow: Architecture-Based Self-Adaptation with Reusable Infrastructure. Computer, 37(10):46–54. [Hebig et al., 2010] Hebig, R., Giese, H., and Becker, B. (2010). Making Control Loops Explicit When Architecting Self-Adaptive Systems. In Proc. of the 2nd Intl. Workshop on Self-Organizing Architectures (SOAR 2010), pages 21–28. ACM. [Hestermeyer et al., 2004] Hestermeyer, T., Oberschelp, O., and Giese, H. (2004). Structured Information Processing For Self-optimizing Mechatronic Systems. In Proc. of the 1st Intl. Conference on Informatics in Control, Automation and Robotics (ICINCO 2004), pages 230–237. INSTICC Press. [Kephart and Chess, 2003] Kephart, J. O. and Chess, D. (2003). The Vision of Autonomic Computing. Computer, 36(1):41–50. [Kramer and Magee, 2007] Kramer, J. and Magee, J. (2007). Self-Managed Systems: an Architectural Challenge. In Future of Software Engineering (FOSE 2007), pages 259–268. IEEE. [Müller et al., 2008] Müller, H. A., Pezzè, M., and Shaw, M. (2008). Visibility of control in adaptive systems. In Proc. of the 2nd Intl. Workshop on Ultra-large-scale Software-intensive Systems (ULSSIS 2008), pages 23–26. ACM.

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

17

slide-32
SLIDE 32

References II

[OMG Specification, 2011] OMG Specification (2011). OMG Unified Modeling Language (OMG UML), Superstructure, Version 2.4.1. [Salehie and Tahvildari, 2009] Salehie, M. and Tahvildari, L. (2009). Self-adaptive software: Landscape and research challenges. ACM Trans. Auton. Adapt. Syst., 4(2):1–42. [Schmidt et al., 2008] Schmidt, D., White, J., and Gokhale, A. (2008). Simplifying autonomic enterprise Java Bean applications via model-driven engineering and simulation. Software and Systems Modeling, 7(1):3–23. [Vogel and Giese, 2010] Vogel, T. and Giese, H. (2010). Adaptation and Abstract Runtime Models. In Proc. of the 5th ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2010), pages 39–48. ACM. [Vogel et al., 2010a] Vogel, T., Neumann, S., Hildebrandt, S., Giese, H., and Becker, B. (2010a). Incremental Model Synchronization for Efficient Run-Time Monitoring. In MoDELS 2009 Workshops, volume 6002 of LNCS, pages 124–139. Springer. [Vogel et al., 2010b] Vogel, T., Seibel, A., and Giese, H. (2010b). Toward Megamodels at Runtime. In Proc. of the 5th Intl. Workshop on Models@run.time, volume 641 of CEUR Workshop Proceedings, pages 13–24. CEUR-WS.org. (best paper). [Vogel et al., 2011] Vogel, T., Seibel, A., and Giese, H. (2011). The Role of Models and Megamodels at Runtime. In MoDELS 2010 Workshops, volume 6627 of LNCS, pages 224–238. Springer. [Vromant et al., 2011] Vromant, P ., Weyns, D., Malek, S., and Andersson, J. (2011). On interacting control loops in self-adaptive systems. In Proc. of the 6th Intl. Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2011), pages 202–207. ACM. [Weyns et al., 2010] Weyns, D., Malek, S., and Andersson, J. (2010). FORMS: a formal reference model for self-adaptation. In Proc. of the 7th Intl. Conference on Autonomic Computing (ICAC 2010), pages 205–214. ACM.

  • T. Vogel, H. Giese | Executable Runtime Megamodels | SEAMS 2012 | June 4-5, 2012

18