Engineering Self-Adap0ve Systems An Architectural Perspec0ve - - PowerPoint PPT Presentation

engineering self adap0ve systems an architectural
SMART_READER_LITE
LIVE PREVIEW

Engineering Self-Adap0ve Systems An Architectural Perspec0ve - - PowerPoint PPT Presentation

Engineering Self-Adap0ve Systems An Architectural Perspec0ve Danny Weyns Automated So>ware Engineering ASE Lincoln, Nebraska November 9, 2015


slide-1
SLIDE 1

Engineering ¡Self-­‑Adap0ve ¡Systems ¡– ¡ An ¡Architectural ¡Perspec0ve ¡

Danny ¡Weyns ¡ ¡ Automated ¡So>ware ¡Engineering ¡– ¡ASE ¡ ¡ Lincoln, ¡Nebraska ¡November ¡9, ¡2015 ¡

slide-2
SLIDE 2

Your ¡tutor ¡today ¡

Linnaeus ¡University ¡ ¡ Växjö, ¡Sweden ¡ KU ¡Leuven ¡ Belgium ¡ Lincoln, ¡Nebraska ¡

slide-3
SLIDE 3

Your ¡tutor ¡today ¡

  • 2006: ¡PhD ¡KU ¡Leuven; ¡research ¡on ¡middleware ¡and ¡

architectures ¡for ¡mul0-­‑agent ¡systems ¡

  • 2006-­‑2011: ¡postdoc ¡at ¡KU ¡Leuven ¡with ¡focus ¡on ¡

so>ware ¡architecture ¡and ¡self-­‑adapta0on ¡

  • 2011-­‑2015: ¡prof. ¡at ¡Linnaeus ¡University ¡with ¡focus ¡
  • n ¡engineering ¡self-­‑adap0ve ¡systems ¡
  • Since ¡Oct. ¡2015: ¡prof. ¡at ¡KU ¡Leuven; ¡current ¡focus: ¡

– Handling ¡mul0ple ¡concerns ¡in ¡self-­‑adap0ve ¡systems ¡ – Applying ¡control ¡theory ¡to ¡adapt ¡so>ware ¡ – Executable ¡formal ¡models ¡for ¡self-­‑adapta0on ¡ ¡

¡

slide-4
SLIDE 4

Objec0ves ¡of ¡this ¡tutorial ¡

slide-5
SLIDE 5
  • 1. Understand ¡the ¡mo0va0on ¡and ¡need ¡for ¡self-­‑

adapta0on; ¡

¡
  • 2. Get ¡familiar ¡with ¡the ¡state-­‑of-­‑the-­‑art ¡principles ¡
  • f ¡realizing ¡architecture-­‑based ¡self-­‑adapta0on; ¡
¡
  • 3. Get ¡insight ¡in ¡the ¡paradox ¡between ¡uncertainty ¡

and ¡assurances ¡and ¡how ¡self-­‑adapta0on ¡can ¡ help ¡to ¡tackle ¡this; ¡ ¡

¡
  • 4. Learn ¡about ¡some ¡open ¡challenges ¡in ¡the ¡

domain ¡of ¡self-­‑adap0ve ¡systems. ¡

slide-6
SLIDE 6

Outline ¡of ¡the ¡tutorial ¡

  • 1. Mo0va0on ¡for ¡self-­‑adapta0on ¡
  • 2. Architecture-­‑based ¡approaches ¡to ¡self-­‑

adapta0on ¡

  • 3. Assurances ¡for ¡self-­‑adap0ve ¡systems ¡
  • 4. Towards ¡"Design ¡for ¡Sustainability" ¡
slide-7
SLIDE 7

Mo0va0on ¡for ¡Self-­‑Adapta0on ¡

  • The ¡blurring ¡boundaries ¡between ¡design ¡0me ¡

and ¡run0me ¡ ¡

  • What ¡is ¡self-­‑adapta0on ¡ ¡
  • Why ¡do ¡we ¡need ¡self-­‑adapta0on? ¡
slide-8
SLIDE 8

Blurring ¡boundaries ¡design ¡and ¡run0me ¡ ¡

  • Some ¡observa0ons ¡

– Mobile ¡apps ¡require ¡resources ¡but ¡the ¡availability ¡ may ¡change ¡con0nuously ¡ – Behavior ¡of ¡users ¡in ¡the ¡smart ¡grid ¡may ¡change ¡ unexpectedly ¡ – The ¡goals ¡automa0on ¡system ¡in ¡a ¡factory ¡may ¡ change ¡in ¡ways ¡that ¡are ¡difficult ¡to ¡predict ¡ ¡ – … ¡ ¡

slide-9
SLIDE 9

Blurring ¡boundaries ¡design ¡and ¡run0me ¡ ¡

  • In ¡sum: ¡ ¡

– Modern ¡so>ware ¡systems ¡o>en ¡have ¡to ¡operate ¡ under ¡highly ¡dynamic ¡condi0ons ¡ ¡ – These ¡condi0ons ¡introduce ¡uncertain0es ¡

  • Changing ¡availability ¡of ¡resources ¡ ¡
  • User ¡behavior ¡that ¡is ¡difficult ¡to ¡predict ¡

¡ ¡

  • Goals ¡may ¡dynamically ¡be ¡changed ¡

¡

slide-10
SLIDE 10

Blurring ¡boundaries ¡design ¡and ¡run0me ¡ ¡

  • Uncertainty ¡leads ¡to ¡incomplete ¡knowledge ¡at ¡

design ¡0me ¡ ¡

  • Business ¡con0nuity ¡requires ¡that ¡uncertainty ¡

is ¡handled ¡at ¡run0me ¡

  • Leads ¡to ¡blur ¡in ¡tradi0onal ¡engineering ¡phases ¡
slide-11
SLIDE 11

Blurring ¡boundaries ¡design ¡and ¡run0me ¡ ¡

  • Tradi0onal ¡evolu0on ¡perspec0ve ¡

¡

slide-12
SLIDE 12

Blurring ¡boundaries ¡design ¡and ¡run0me ¡ ¡

  • Tradi0onal ¡evolu0on ¡perspec0ve ¡

¡

Development ¡ ¡ Running ¡ Evolu0on ¡ Running ¡ Running ¡ Evolu0on ¡

slide-13
SLIDE 13

Blurring ¡boundaries ¡design ¡and ¡run0me ¡ ¡

  • Tradi0onal ¡evolu0on ¡perspec0ve ¡
  • System ¡engineering ¡becomes ¡a ¡perpetual ¡process ¡

Development ¡ ¡ Running ¡ Evolu0on ¡ Running ¡ Running ¡ Evolu0on ¡ Human-­‑driven ¡

  • ffline ¡ac0vi0es ¡

Machine-­‑driven ¡

  • nline ¡ac0vi0es ¡
slide-14
SLIDE 14

Blurring ¡boundaries ¡design ¡and ¡run0me ¡ ¡

How ¡to ¡engineer ¡such ¡systems ¡and ¡ guarantee ¡the ¡required ¡system ¡goals? ¡ ¡ ¡

slide-15
SLIDE 15

Mo0va0on ¡for ¡Self-­‑Adapta0on ¡

  • The ¡blurring ¡boundaries ¡between ¡design ¡0me ¡

and ¡run0me ¡ ¡

  • What ¡is ¡self-­‑adapta0on ¡ ¡
  • Why ¡do ¡we ¡need ¡self-­‑adapta0on? ¡
slide-16
SLIDE 16

What ¡is ¡Self-­‑Adapta0on? ¡ ¡

¡

  • Self-­‑adapta0on ¡is ¡one ¡prominent ¡approach ¡to ¡

deal ¡with ¡uncertainty ¡and ¡business ¡con0nuity ¡

  • Key ¡idea: ¡let ¡the ¡system ¡gather ¡knowledge ¡at ¡

run0me, ¡reason ¡about ¡itself ¡and ¡its ¡context ¡ and ¡adapt ¡to ¡realize ¡goals ¡

slide-17
SLIDE 17

Environment ¡

input ¡ effect ¡ Non-­‑controllable ¡so>ware, ¡ ¡ hardware, ¡network, ¡physical ¡context ¡

What ¡is ¡Self-­‑Adapta0on? ¡ ¡

So>ware ¡system ¡

slide-18
SLIDE 18

Environment ¡

input ¡ effect ¡ Non-­‑controllable ¡so>ware, ¡ ¡ hardware, ¡network, ¡physical ¡context ¡

What ¡is ¡Self-­‑Adapta0on? ¡ ¡

Self-­‑adap0ve ¡so>ware ¡system ¡

slide-19
SLIDE 19

Managed ¡system ¡ Managing ¡system ¡ Self-­‑adap0ve ¡so>ware ¡system ¡

monitor ¡ adapt ¡ Controllable ¡so>ware ¡ monitor ¡

What ¡is ¡Self-­‑Adapta0on? ¡ ¡

Environment ¡

input ¡ effect ¡ Non-­‑controllable ¡so>ware, ¡ ¡ hardware, ¡network, ¡physical ¡context ¡

slide-20
SLIDE 20
  • Self-­‑adapta0on ¡is ¡in ¡essence ¡a ¡reflec0ve ¡

capability ¡

¡

  • Design ¡of ¡self-­‑adapta0on ¡ ¡

– Legacy ¡systems ¡

  • Add ¡feedback ¡loop(s) ¡to ¡deal ¡with ¡adapta0on ¡concerns ¡
  • E.g., ¡improve ¡performance, ¡make ¡system ¡robust ¡to ¡

par0cular ¡types ¡of ¡failures ¡ ¡

– Greenfield ¡design ¡

  • Domain ¡concerns ¡handled ¡by ¡managing ¡system ¡
  • Adapta0on ¡concerns ¡by ¡the ¡managed ¡system ¡ ¡

What ¡is ¡Self-­‑Adapta0on? ¡

slide-21
SLIDE 21

What ¡is ¡Self-­‑Adapta0on? ¡ ¡

  • Different ¡approaches ¡exist ¡to ¡realize ¡managing ¡

system ¡ ¡

– Architecture-­‑based ¡approaches: ¡managing ¡system ¡exploits ¡ architectural ¡model ¡of ¡system ¡under ¡adapta0on ¡ ¡ – Control-­‑theory ¡based ¡approaches: ¡controller ¡design ¡based ¡

  • n ¡principles ¡of ¡control ¡theory ¡ ¡

– Self-­‑organizing ¡approaches: ¡adapta0on ¡based ¡on ¡local ¡ interac0ons ¡of ¡en00es ¡typically ¡with ¡emergent ¡behavior ¡

slide-22
SLIDE 22

What ¡is ¡Self-­‑Adapta0on? ¡ ¡

  • Different ¡approaches ¡exist ¡to ¡realize ¡managing ¡

system ¡ ¡

– Architecture-­‑based ¡approaches: ¡managing ¡system ¡exploits ¡ architectural ¡model ¡of ¡system ¡under ¡adapta0on ¡ ¡ – Control-­‑theory ¡based ¡approaches: ¡controller ¡design ¡based ¡

  • n ¡principles ¡of ¡control ¡theory ¡ ¡

– Self-­‑organizing ¡approaches: ¡adapta0on ¡based ¡on ¡local ¡ interac0ons ¡of ¡en00es ¡typically ¡with ¡emergent ¡behavior ¡

slide-23
SLIDE 23

¡ Architecture-­‑based ¡self-­‑adapta0on ¡ ¡

¡ ¡

Control-­‑based ¡self-­‑adapta0on ¡ ¡

Target ¡system ¡ Controller ¡ disturbance ¡input ¡ reference ¡ input ¡

  • utput ¡

Transducer ¡ Managed ¡system ¡ Environment ¡ Managing ¡system ¡ effect ¡ adapt ¡ monitor ¡ control ¡

What ¡is ¡Self-­‑Adapta0on? ¡

slide-24
SLIDE 24

Managed ¡system ¡ Environment ¡ Managing ¡system ¡ effect ¡ adapt ¡ monitor ¡

Architecture-­‑based ¡Approaches ¡

¡

Managing ¡system ¡

Composed ¡of ¡components ¡that ¡realize ¡ adapta0on ¡func0ons ¡ Components ¡share ¡run0me ¡models ¡of: ¡

  • ­‑ Managed ¡system ¡
  • ­‑ Opera0ng ¡environment ¡ ¡
  • ­‑ Adapta0on ¡goals ¡

¡ Managed ¡system ¡

Provide ¡features ¡for ¡monitoring ¡and ¡ performing ¡adapta0on ¡ac0ons ¡

slide-25
SLIDE 25

Architecture-­‑based ¡Approaches ¡ ¡

  • Variety ¡of ¡goal ¡models ¡

– RELAX* ¡captures ¡uncertainty ¡(e.g. ¡“may” ¡vs. ¡“shall”) ¡ ¡ – FLAGS** ¡includes ¡fuzzy ¡goals ¡specified ¡using ¡fuzzy ¡constraints ¡ – Awareness ¡requirements*: ¡meta ¡requirements ¡ ¡

¡ * ¡J. ¡Whisle, ¡P. ¡Sawyer, ¡N. ¡Bencomo, ¡B. ¡H. ¡Cheng, ¡and ¡J.-­‑M. ¡Bruel. ¡RELAX: ¡Incorpora0ng ¡Uncertainty ¡into ¡the ¡Specifica0on ¡of ¡Self-­‑Adap0ve ¡ Systems, ¡Requirements ¡Engineering ¡2009 ¡ ** ¡L. ¡Baresi, ¡L. ¡Pasquale, ¡and ¡P. ¡Spole0ni. ¡Fuzzy ¡goals ¡for ¡requirements-­‑driven ¡adapta0on, ¡Requirements ¡Engineering, ¡2010 ¡ *** ¡V. ¡E. ¡Silva ¡Souza, ¡A. ¡Lapouchnian, ¡W. ¡N. ¡Robinson, ¡and ¡J. ¡Mylopoulos, ¡ ¡Awareness ¡requirements ¡for ¡adap0ve ¡Systems, ¡SEAMS ¡2011 ¡ ¡

slide-26
SLIDE 26

Classic PID-type control (Abdelzaher et al. 2003) ¡ Decentralized ¡control ¡ ¡ (X. ¡Wang ¡et ¡al., ¡2007; ¡R. ¡Wang ¡et ¡al ¡2012) ¡ Nested ¡and ¡layered ¡architectures ¡ (Zhu ¡et ¡al, ¡2006; ¡Kusic ¡et ¡al. ¡2009) ¡

Approximate System Model Performance Error Correction Performance Set Point Controller Actuator (Resource Allocator) Resource Allocation Software System Actual Performance Performance Sensor Measured Performance (b) &

Controlling ¡so>ware ¡vs. ¡hardware/resources ¡ ¡ (e.g. ¡Filieri ¡et ¡al. ¡2014, ¡Shevtsov ¡et ¡al. ¡2015) ¡ MIMO ¡systems ¡ (Dio ¡et ¡al., ¡2002, ¡Lu ¡et ¡al. ¡2005) ¡

Control signal 1 Setpoint 1 Measured
  • utput
Plant Error 1 Disturbances Controller 1 Simplex Simplex signal Control signal n Setpoint n Error n Controller n Parameters O1...On O1 On

MB C(z) P(z) ˜ µ +

Control (normal) mode Model Building mode

η µ −

Control-­‑based ¡Approaches ¡

slide-27
SLIDE 27

Mo0va0on ¡for ¡Self-­‑Adapta0on ¡

  • The ¡blurring ¡boundaries ¡between ¡design ¡0me ¡

and ¡run0me ¡ ¡

  • What ¡is ¡self-­‑adapta0on ¡ ¡
  • Why ¡do ¡we ¡need ¡self-­‑adapta0on? ¡
slide-28
SLIDE 28

Why ¡do ¡we ¡Need ¡Self-­‑Adapta0on? ¡ ¡

  • Handling ¡uncertainty ¡upfront ¡o>en ¡infeasible ¡(or ¡very ¡expensive) ¡

hence ¡deal ¡with ¡it ¡when ¡the ¡knowledge ¡becomes ¡available ¡ ¡

  • Architecture ¡offers ¡appropriate ¡level ¡of ¡abstrac0on ¡and ¡generality ¡to ¡

deal ¡with ¡adapta0on ¡ ¡

  • Manage ¡complexity ¡by ¡separa0on ¡of ¡domain ¡concerns ¡from ¡

adapta0on ¡concerns ¡

– External ¡control ¡mechanisms ¡provide ¡a ¡more ¡effec0ve ¡engineering ¡ solu0on ¡than ¡internal ¡mechanisms ¡for ¡self-­‑adapta0on* ¡

  • No ¡free ¡lunch: ¡very ¡challenging ¡area ¡

¡

*D. ¡Garlan, ¡S-­‑W. ¡Cheng, ¡A.C. ¡Huang, ¡B. ¡Schmerl, ¡P. ¡Steenkiste, ¡Rainbow: ¡Architecture-­‑ ¡Based ¡Self-­‑ Adapta0on ¡with ¡Reusable ¡Infrastructure, ¡IEEE ¡Computer, ¡October ¡2004 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

slide-29
SLIDE 29

Outline ¡of ¡the ¡tutorial ¡

  • 1. Mo0va0on ¡for ¡self-­‑adapta0on ¡
  • 2. Architecture-­‑based ¡approaches ¡to ¡self-­‑

adapta0on ¡

  • 3. Assurances ¡for ¡self-­‑adap0ve ¡systems ¡
  • 4. Towards ¡"Design ¡for ¡Sustainability" ¡
slide-30
SLIDE 30

Architecture-­‑based ¡Approaches ¡to ¡ Self-­‑adapta0on ¡

  • Oreizy ¡et ¡al. ¡pioneering ¡work ¡
  • MAPE-­‑K ¡reference ¡model ¡
  • Rainbow ¡framework ¡ ¡
  • 3-­‑layer ¡model ¡
  • FORMS ¡reference ¡model ¡
slide-31
SLIDE 31

Oreizy ¡et ¡al. ¡pioneering ¡work ¡

  • “…so>ware’s ¡original ¡promise—applica0ons ¡that ¡

retain ¡full ¡plas0city ¡throughout ¡their ¡lifecycle ¡and ¡that ¡ are ¡as ¡easy ¡to ¡modify ¡in ¡the ¡field ¡as ¡they ¡are ¡on ¡the ¡ drawing ¡board.” ¡ ¡

  • “…So>ware ¡engineers ¡have ¡pursued ¡many ¡techniques ¡

for ¡achieving ¡this ¡goal ¡… ¡while ¡each ¡contributes ¡to ¡the ¡ goal, ¡the ¡sum ¡total ¡s0ll ¡falls ¡short.” ¡ ¡

  • “Self-­‑adap0ve ¡so>ware ¡will ¡provide ¡the ¡key.” ¡

¡

  • P. ¡Oreizy, ¡M. ¡Gorlick, ¡R. ¡Taylor, ¡D. ¡Heimbigner, ¡G. ¡Johnson, ¡N. ¡Medvidovic, ¡A. ¡Quilici, ¡D. ¡Rosenblum, ¡and ¡A. ¡

Wolf, ¡An ¡Architecture-­‑Based ¡Approach ¡to ¡Self-­‑Adap0ve ¡So>ware, ¡IEEE ¡Intelligent ¡Systems, ¡May/June ¡1999 ¡

slide-32
SLIDE 32

Oreizy ¡et ¡al. ¡pioneering ¡work ¡

¡

¡Adapta0on ¡management ¡

¡Life ¡cycle ¡of ¡self-­‑adapta0on ¡

¡ ¡

¡

¡Evolu0on ¡management ¡

¡Change ¡of ¡applica0on ¡so>ware ¡

slide-33
SLIDE 33

Oreizy ¡et ¡al. ¡pioneering ¡work ¡

¡

¡Adapta0on ¡management ¡

¡Life ¡cycle ¡of ¡self-­‑adapta0on ¡

¡ ¡

slide-34
SLIDE 34

Oreizy ¡et ¡al. ¡pioneering ¡work ¡

Observing ¡and ¡evalua0ng ¡ applica0on’s ¡execu0on ¡

¡

E.g., ¡performance ¡monitoring, ¡ safety ¡inspec0ons, ¡constraint ¡ verifica0on ¡ ¡ ¡

slide-35
SLIDE 35

Oreizy ¡et ¡al. ¡pioneering ¡work ¡

Accep0ng ¡the ¡evalua0ons ¡

¡

Defining ¡an ¡appropriate ¡ adapta0on ¡

¡

Construc0ng ¡a ¡blueprint ¡for ¡ execu0ng ¡that ¡adapta0on. ¡ ¡

slide-36
SLIDE 36

Oreizy ¡et ¡al. ¡pioneering ¡work ¡

Coordinated ¡conveyance ¡of: ¡ ¡ ¡

  • ­‑

change ¡descrip0ons ¡ ¡

  • ­‑

possibly ¡new ¡observers ¡or ¡ evaluators ¡

slide-37
SLIDE 37

Oreizy ¡et ¡al. ¡pioneering ¡work ¡

¡

¡Evolu0on ¡management ¡

¡Change ¡of ¡applica0on ¡so>ware ¡

slide-38
SLIDE 38

Oreizy ¡et ¡al. ¡pioneering ¡work ¡

Changes ¡to ¡the ¡architectural ¡ model ¡are ¡consistently ¡reflected ¡ in ¡modifica0ons ¡to ¡the ¡ applica0on’s ¡implementa0on ¡

slide-39
SLIDE 39

Oreizy ¡et ¡al. ¡pioneering ¡work ¡

Feeds ¡informa0on ¡back ¡to ¡ adapta0on ¡management ¡

slide-40
SLIDE 40

Oreizy ¡et ¡al. ¡pioneering ¡work ¡

  • Visionary ¡model ¡

– Run0me ¡architecture ¡model ¡ ¡ – Adapta0on ¡management ¡as ¡separate ¡concern ¡ – Integra0on ¡of ¡adapta0on ¡and ¡evolu0on ¡ – Distributed ¡perspec0ve ¡ ¡

  • Some ¡notes ¡ ¡

– Conceptual ¡model ¡ ¡ – Run0me ¡model ¡focus ¡on ¡managed ¡system ¡ – Goals ¡and ¡uncertain0es ¡not ¡first ¡class ¡ci0zens ¡ ¡ – Focus ¡on ¡consistency ¡and ¡system ¡integrity ¡ ¡

slide-41
SLIDE 41

Architecture-­‑based ¡Approaches ¡to ¡ Self-­‑adapta0on ¡

  • Oreizy ¡et ¡al. ¡pioneering ¡work ¡
  • MAPE-­‑K ¡reference ¡model ¡
  • Rainbow ¡framework ¡ ¡
  • 3-­‑layer ¡model ¡
  • FORMS ¡reference ¡model ¡
slide-42
SLIDE 42

MAPE-­‑K ¡Reference ¡Model ¡

  • “…systems ¡manage ¡themselves ¡according ¡to ¡an ¡

administrator’s ¡goals.” ¡ ¡

  • “New ¡components ¡integrate ¡as ¡effortlessly ¡as ¡a ¡new ¡

cell ¡establishes ¡itself ¡in ¡the ¡human ¡body.” ¡ ¡

  • “These ¡ideas ¡are ¡not ¡science ¡fic0on, ¡but ¡elements ¡of ¡

the ¡grand ¡challenge ¡to ¡create ¡self-­‑managing ¡ compu0ng ¡systems.” ¡ ¡ ¡

Kephart ¡and ¡Chess, ¡The ¡Vision ¡of ¡Autonomic ¡Compu0ng, ¡IEEE ¡Computer, ¡January ¡2003 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

slide-43
SLIDE 43

MAPE-­‑K ¡Reference ¡Model ¡

¡

Autonomic ¡manager ¡

Relieves ¡humans ¡of ¡responsibility ¡

  • f ¡ ¡directly ¡managing ¡the ¡

managed ¡element ¡

¡

Managed ¡element ¡

From ¡hardware ¡to ¡applica0on ¡service ¡ ¡ Element ¡an ¡be ¡adapted ¡to ¡enable ¡the ¡ autonomic ¡manager ¡to ¡monitor ¡and ¡ control ¡it ¡

Autonomic manager Knowledge Managed element Analyze Plan Monitor Execute

slide-44
SLIDE 44

MAPE-­‑K ¡Reference ¡Model ¡

Autonomic manager Knowledge Managed element Analyze Plan Monitor Execute

Provides ¡an ¡abstrac0on ¡of ¡relevant ¡ aspects ¡of ¡the ¡managed ¡element, ¡ ¡ ¡ ¡ its ¡execu0ng ¡environment, ¡and ¡ ¡ ¡ ¡ ¡ the ¡adapta0on ¡goals ¡

slide-45
SLIDE 45

MAPE-­‑K ¡Reference ¡Model ¡

Autonomic manager Knowledge Managed element Analyze Plan Monitor Execute

Collects ¡data ¡from ¡the ¡managed ¡ element ¡and ¡its ¡execu0on ¡context ¡ to ¡update ¡the ¡Knowledge. ¡ ¡

slide-46
SLIDE 46

MAPE-­‑K ¡Reference ¡Model ¡

Autonomic manager Knowledge Managed element Analyze Plan Monitor Execute

Determines ¡whether ¡adapta0on ¡ ac0ons ¡are ¡required ¡based ¡on ¡ the ¡collected ¡data ¡and ¡ adapta0on ¡goals ¡

slide-47
SLIDE 47

MAPE-­‑K ¡Reference ¡Model ¡

Autonomic manager Knowledge Managed element Analyze Plan Monitor Execute

Responsible ¡for ¡planning ¡ mi0ga0on ¡ac0ons ¡to ¡adapt ¡the ¡ managed ¡element ¡when ¡needed ¡ ¡

slide-48
SLIDE 48

MAPE-­‑K ¡Reference ¡Model ¡

Autonomic manager Knowledge Managed element Analyze Plan Monitor Execute

Is ¡responsible ¡for ¡execu0ng ¡the ¡ adapta0on ¡ac0ons ¡of ¡the ¡ generated ¡plan ¡ ¡

slide-49
SLIDE 49

MAPE-­‑K ¡Reference ¡Model ¡

  • Principle ¡reference ¡model ¡for ¡self-­‑adapta0on ¡ ¡

– Primary ¡func0ons ¡of ¡self-­‑adapta0on ¡and ¡their ¡interac0ons ¡ – Design ¡= ¡mapping ¡of ¡MAPE ¡func0ons ¡to ¡components ¡ ¡ – Four ¡classes ¡of ¡self-­‑management ¡

  • Self-­‑configura0on, ¡self-­‑op0miza0on, ¡self-­‑healing ¡and ¡self-­‑protec0on ¡ ¡
  • Some ¡notes ¡ ¡

– Knowledge ¡abstractly ¡defined ¡ ¡ ¡ – Interac0on ¡with ¡human ¡administrator ¡implicit ¡ ¡ – Rela0onships ¡among ¡autonomic ¡elements ¡implicit ¡ – Controlling ¡hardware ¡versus ¡controlling ¡so>ware ¡

slide-50
SLIDE 50

Architecture-­‑based ¡Approaches ¡to ¡ Self-­‑adapta0on ¡

  • Oreizy ¡et ¡al. ¡pioneering ¡work ¡
  • MAPE-­‑K ¡reference ¡model ¡
  • Rainbow ¡framework ¡ ¡
  • 3-­‑layer ¡model ¡
  • FORMS ¡reference ¡model ¡
slide-51
SLIDE 51

Rainbow ¡Framework ¡

  • “Reusable ¡infrastructure ¡to ¡support ¡self-­‑adapta0on ¡of ¡

so>ware ¡systems.” ¡ ¡

  • “The ¡use ¡of ¡external ¡adapta0on ¡mechanisms ¡allows ¡

the ¡explicit ¡specifica0on ¡of ¡adapta0on ¡strategies.” ¡ ¡

  • “Using ¡a ¡system’s ¡architecture ¡as ¡a ¡control ¡model ¡can ¡

make ¡topological ¡and ¡behavioral ¡constraints ¡explicit, ¡ establishing ¡an ¡envelope ¡of ¡allowed ¡changes ¡and ¡ helping ¡to ¡ensure ¡the ¡validity ¡of ¡a ¡change.” ¡ ¡ ¡

  • D. ¡Garlan, ¡S-­‑W. ¡Cheng, ¡A.C. ¡Huang, ¡B. ¡Schmerl, ¡P. ¡Steenkiste, ¡Rainbow: ¡Architecture-­‑ ¡Based ¡Self-­‑

Adapta0on ¡with ¡Reusable ¡Infrastructure, ¡IEEE ¡Computer, ¡October ¡2004 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

slide-52
SLIDE 52

Rainbow ¡Framework ¡

Translation infrastructure Executing system Architecture layer System API Constraint evaluator Adaptation engine Model manager Mappings Strategies and tactics Rules Adaptation executor Types and properties System layer Operators Discovery Probes Resource discovery Effectors Gauges

¡

Architecture ¡layer ¡

Aggregates ¡informa0on ¡and ¡ applies ¡adapta0ons ¡when ¡needed ¡

¡

Transla0on ¡infrastructure ¡

Mediates ¡the ¡mapping ¡of ¡ informa0on ¡across ¡abstrac0on ¡ gap ¡system-­‑model ¡and ¡vice ¡versa ¡

¡

System ¡layer ¡

System ¡access ¡interface ¡with ¡ infrastructure ¡that ¡implements ¡it ¡

slide-53
SLIDE 53

Rainbow ¡Framework ¡

Translation infrastructure Executing system Architecture layer System API Constraint evaluator Adaptation engine Model manager Mappings Strategies and tactics Rules Adaptation executor Types and properties System layer Operators Discovery Probes Resource discovery Effectors Gauges

Plug ¡in ¡(Hot ¡spot) ¡ Reusable ¡ ¡elements ¡ (Frozen ¡spot) ¡

¡

Architecture ¡layer ¡

Aggregates ¡informa0on ¡and ¡ applies ¡adapta0ons ¡when ¡needed ¡

¡

Transla0on ¡infrastructure ¡

Mediates ¡the ¡mapping ¡of ¡ informa0on ¡across ¡abstrac0on ¡ gap ¡system-­‑model ¡and ¡vice ¡versa ¡

¡

System ¡layer ¡

System ¡access ¡interface ¡with ¡ infrastructure ¡that ¡implements ¡it ¡

slide-54
SLIDE 54

Rainbow ¡Framework ¡

Translation infrastructure Executing system Architecture layer System API Constraint evaluator Adaptation engine Model manager Mappings Strategies and tactics Rules Adaptation executor Types and properties System layer Operators Discovery Probes Resource discovery Effectors Gauges

Measurement ¡mechanism ¡ Observes ¡and ¡measures ¡ various ¡system ¡states ¡

slide-55
SLIDE 55

Rainbow ¡Framework ¡

Translation infrastructure Executing system Architecture layer System API Constraint evaluator Adaptation engine Model manager Mappings Strategies and tactics Rules Adaptation executor Types and properties System layer Operators Discovery Probes Resource discovery Effectors Gauges

Measurement ¡mechanism ¡ Observes ¡and ¡measures ¡ various ¡system ¡states ¡ Mechanism ¡that ¡can ¡be ¡queried ¡for ¡new ¡resources ¡ based ¡on ¡e.g. ¡resource ¡type ¡

slide-56
SLIDE 56

Rainbow ¡Framework ¡

Translation infrastructure Executing system Architecture layer System API Constraint evaluator Adaptation engine Model manager Mappings Strategies and tactics Rules Adaptation executor Types and properties System layer Operators Discovery Probes Resource discovery Effectors Gauges

Measurement ¡mechanism ¡ Observes ¡and ¡measures ¡ various ¡system ¡states ¡ Mechanism ¡carries ¡out ¡the ¡ actual ¡system ¡modifica0on ¡ Mechanism ¡that ¡can ¡be ¡queried ¡for ¡new ¡resources ¡ based ¡on ¡e.g. ¡resource ¡type ¡

slide-57
SLIDE 57

Rainbow ¡Framework ¡

Translation infrastructure Executing system Architecture layer System API Constraint evaluator Adaptation engine Model manager Mappings Strategies and tactics Rules Adaptation executor Types and properties System layer Operators Discovery Probes Resource discovery Effectors Gauges

Gauges ¡aggregate ¡ informa0on ¡from ¡probes ¡to ¡ update ¡architectural ¡model ¡

¡

Model ¡manager ¡handles ¡ and ¡provides ¡access ¡to ¡the ¡ architectural ¡model ¡

slide-58
SLIDE 58

Rainbow ¡Framework ¡

Translation infrastructure Executing system Architecture layer System API Constraint evaluator Adaptation engine Model manager Mappings Strategies and tactics Rules Adaptation executor Types and properties System layer Operators Discovery Probes Resource discovery Effectors Gauges

Gauges ¡aggregate ¡ informa0on ¡from ¡probes ¡to ¡ update ¡architectural ¡model ¡

¡

Model ¡manager ¡handles ¡ and ¡provides ¡access ¡to ¡the ¡ architectural ¡model ¡ Checks ¡the ¡model ¡ periodically ¡and ¡triggers ¡ adapta0on ¡if ¡a ¡constraint ¡ viola0on ¡occurs ¡

slide-59
SLIDE 59

Rainbow ¡Framework ¡

Translation infrastructure Executing system Architecture layer System API Constraint evaluator Adaptation engine Model manager Mappings Strategies and tactics Rules Adaptation executor Types and properties System layer Operators Discovery Probes Resource discovery Effectors Gauges

Gauges ¡aggregate ¡ informa0on ¡from ¡probes ¡to ¡ update ¡architectural ¡model ¡

¡

Model ¡manager ¡handles ¡ and ¡provides ¡access ¡to ¡the ¡ architectural ¡model ¡ Checks ¡the ¡model ¡ periodically ¡and ¡triggers ¡ adapta0on ¡if ¡a ¡constraint ¡ viola0on ¡occurs ¡ Determines ¡the ¡course ¡of ¡ ac0on ¡if ¡adap0on ¡is ¡required ¡

slide-60
SLIDE 60

Rainbow ¡Framework ¡

Translation infrastructure Executing system Architecture layer System API Constraint evaluator Adaptation engine Model manager Mappings Strategies and tactics Rules Adaptation executor Types and properties System layer Operators Discovery Probes Resource discovery Effectors Gauges

Gauges ¡aggregate ¡ informa0on ¡from ¡probes ¡to ¡ update ¡architectural ¡model ¡

¡

Model ¡manager ¡handles ¡ and ¡provides ¡access ¡to ¡the ¡ architectural ¡model ¡ Checks ¡the ¡model ¡ periodically ¡and ¡triggers ¡ adapta0on ¡if ¡a ¡constraint ¡ viola0on ¡occurs ¡ Determines ¡the ¡course ¡of ¡ ac0on ¡if ¡adap0on ¡is ¡required ¡ Carries ¡out ¡the ¡necessary ¡ adapta0on ¡ac0ons ¡

slide-61
SLIDE 61

Rainbow ¡Framework ¡

  • Pioneering ¡realiza0on ¡of ¡architecture-­‑based ¡self-­‑

adapta0on ¡ ¡

– Maps ¡MAPE-­‑K ¡to ¡concrete ¡reusable ¡realiza0on ¡elements ¡ ¡ – Goals ¡realized ¡via ¡invariants; ¡explicit ¡adapta0on ¡strategies ¡ – Importance ¡of ¡probing ¡and ¡effec0ng ¡

  • Some ¡notes ¡ ¡

– Reference ¡realiza0on ¡ ¡ ¡ – Various ¡extensions ¡(e.g., ¡S0tch ¡language ¡repair ¡strategies*) ¡ ¡ – Centralized ¡approach; ¡“heavy” ¡ ¡ ¡

*S-­‑W. ¡Cheng ¡and ¡D. ¡Garlan, ¡S0tch: ¡A ¡Language ¡for ¡Architecture-­‑Based ¡Self-­‑Adapta0on, ¡Journal ¡of ¡Systems ¡and ¡ So>ware, ¡Editors ¡Weyns ¡et ¡al., ¡Special ¡Issue ¡on ¡State ¡of ¡the ¡Art ¡in ¡Self-­‑Adap0ve ¡Systems, ¡Vol. ¡85(12), ¡December ¡2012 ¡

slide-62
SLIDE 62

Architecture-­‑based ¡Approaches ¡to ¡ Self-­‑adapta0on ¡

  • Oreizy ¡et ¡al. ¡pioneering ¡work ¡
  • MAPE-­‑K ¡reference ¡model ¡
  • Rainbow ¡framework ¡ ¡
  • 3-­‑layer ¡model ¡
  • FORMS ¡reference ¡model ¡
slide-63
SLIDE 63

3-­‑Layer ¡Model ¡

  • “[A ¡self-­‑managed ¡system] ¡is ¡one ¡in ¡which ¡components ¡

automa0cally ¡configure ¡their ¡interac0on ¡in ¡a ¡way ¡that ¡ is ¡compa0ble ¡with ¡an ¡overall ¡architectural ¡ specifica0on ¡and ¡achieves ¡the ¡goals ¡of ¡the ¡system.” ¡ ¡

  • “… ¡the ¡architectural ¡level ¡seems ¡to ¡provide ¡the ¡

required ¡level ¡of ¡abstrac0on ¡and ¡generality ¡to ¡deal ¡ with ¡the ¡challenges ¡posed ¡by ¡self-­‑adap0on.” ¡ ¡ ¡

Kramer ¡and ¡Magee, ¡Self-­‑adapta0on: ¡an ¡architecture ¡challenge, ¡Future ¡of ¡So>ware ¡Engineering, ¡ FOSE ¡2007 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

slide-64
SLIDE 64

3-­‑Layer ¡Model ¡

¡

Goal ¡management ¡

Responsible ¡for ¡re-­‑planning ¡ ¡

¡

Change ¡management ¡

Responsible ¡for ¡execu0ng ¡ changes ¡in ¡the ¡lower ¡layer ¡ based ¡on ¡status ¡changes ¡

¡

Component ¡control ¡

Accomplishes ¡the ¡applica0on ¡ func0on ¡of ¡the ¡system ¡

Goal Management Change Management Component Control

Status Change Actions C1 C2 P1 P2 Change Plans Plan Request G G’ G”

Goal Management Change Management Component Control

Status Change Actions C1 C2 P1 P2 Change Plans Plan Request G G’ G”

Figure 1 – Three Layer Architecture Model for

slide-65
SLIDE 65

3-­‑Layer ¡Model ¡

Set ¡of ¡interconnected ¡ components ¡accomplishing ¡ the ¡applica0on ¡func0on ¡

¡

Facili0es ¡to ¡report ¡current ¡ status ¡of ¡components ¡and ¡ perform ¡adapta0ons ¡

Goal Management Change Management Component Control

Status Change Actions C1 C2 P1 P2 Change Plans Plan Request G G’ G”

Goal Management Change Management Component Control

Status Change Actions C1 C2 P1 P2 Change Plans Plan Request G G’ G”

Figure 1 – Three Layer Architecture Model for

slide-66
SLIDE 66

3-­‑Layer ¡Model ¡

Set ¡of ¡interconnected ¡ components ¡accomplishing ¡ the ¡applica0on ¡func0on ¡

¡

Facili0es ¡to ¡report ¡current ¡ status ¡of ¡components ¡and ¡ perform ¡adapta0ons ¡ Reacts ¡to ¡changes ¡in ¡state ¡

  • f ¡the ¡lower ¡level ¡by ¡

execu0on ¡ac0ons ¡to ¡handle ¡ the ¡new ¡situa0on ¡ ¡

Goal Management Change Management Component Control

Status Change Actions C1 C2 P1 P2 Change Plans Plan Request G G’ G”

Goal Management Change Management Component Control

Status Change Actions C1 C2 P1 P2 Change Plans Plan Request G G’ G”

Figure 1 – Three Layer Architecture Model for

slide-67
SLIDE 67

3-­‑Layer ¡Model ¡

Components ¡accomplishing ¡the ¡ applica0on ¡func0on ¡

¡

Facili0es ¡to ¡report ¡current ¡status ¡ and ¡perform ¡adapta0ons ¡ Handles ¡requests ¡from ¡the ¡layer ¡ below ¡and ¡introduc0on ¡new ¡goals ¡

¡

Takes ¡state ¡and ¡high-­‑level ¡goal ¡to ¡ produce ¡plan ¡to ¡achieve ¡goal ¡ ¡

Goal Management Change Management Component Control

Status Change Actions C1 C2 P1 P2 Change Plans Plan Request G G’ G”

Goal Management Change Management Component Control

Status Change Actions C1 C2 P1 P2 Change Plans Plan Request G G’ G”

Figure 1 – Three Layer Architecture Model for

Reacts ¡to ¡changes ¡in ¡state ¡

  • f ¡the ¡lower ¡level ¡by ¡

execu0on ¡ac0ons ¡to ¡handle ¡ the ¡new ¡situa0on ¡ ¡

slide-68
SLIDE 68

3-­‑Layer ¡Model ¡

  • Ra0onal ¡for ¡self-­‑adapta0on ¡at ¡the ¡architecture ¡level ¡ ¡
  • Dis0nc0on ¡between ¡adapta0on ¡and ¡goal ¡management ¡ ¡

– Goals ¡as ¡first-­‑class ¡ci0zens ¡ ¡ – Different ¡layers ¡work ¡on ¡different ¡0me ¡scales ¡

  • Some ¡notes ¡ ¡

– Based ¡on ¡robo0cs ¡model ¡of ¡Gat* ¡ – Focus ¡in ¡planning ¡ ¡ – Recent ¡related ¡effort: ¡MORPH ¡model ¡-­‑ ¡dis0nc0on ¡between ¡ dynamic ¡reconfigura0on ¡and ¡behavior ¡adapta0on** ¡ ¡

¡

* ¡E. ¡Gat, ¡Three-­‑layer ¡Architectures, ¡Ar0ficial ¡Intelligence ¡and ¡Mobile ¡Robots, ¡MIT/AAAI ¡Press, ¡1997 ¡ ** ¡hsp://arxiv.org/pdf/1504.08339v1.pdf ¡

slide-69
SLIDE 69

Architecture-­‑based ¡Approaches ¡to ¡ Self-­‑adapta0on ¡

  • Oreizy ¡et ¡al. ¡pioneering ¡work ¡
  • MAPE-­‑K ¡reference ¡model ¡
  • Rainbow ¡framework ¡ ¡
  • 3-­‑layer ¡model ¡
  • FORMS ¡reference ¡model ¡
slide-70
SLIDE 70

FORMS ¡ ¡

FOrmal ¡Reference ¡Model ¡for ¡Self-­‑adapta0on ¡ ¡

  • “… ¡lack ¡of ¡a ¡precise ¡vocabulary ¡to ¡describe ¡and ¡reason ¡

about ¡key ¡architectural ¡characteris0cs ¡of ¡self-­‑adap0ve ¡ systems.” ¡ ¡

  • “… ¡exis0ng ¡frameworks ¡do ¡not ¡provide ¡encompassing ¡

perspec0ve ¡on ¡different ¡concerns ¡[of ¡self-­‑adapta0on]” ¡ ¡

  • “[FORMS] ¡provides ¡rigor ¡in ¡the ¡manner ¡such ¡systems ¡

can ¡be ¡described ¡and ¡reasoned ¡about” ¡

¡

  • D. ¡Weyns, ¡S. ¡Malek, ¡J. ¡Andersson, ¡ ¡FORMS: ¡Formal ¡reference ¡model ¡for ¡self-­‑adapta0on, ¡ACM ¡Transac0ons ¡
  • n ¡Autonomous ¡and ¡Adap0ve ¡Systems, ¡TAAS ¡7(1), ¡2012 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡
slide-71
SLIDE 71

FORMS ¡Reference ¡Model ¡

  • Integrates ¡different ¡perspec0ves ¡on ¡self-­‑

adapta0on ¡

– Reflec0on ¡perspec0ve ¡ ¡ – MAPE-­‑K ¡perspec0ve ¡ – Distribu0on ¡perspec0ve ¡

  • UML ¡models ¡with ¡formal ¡specifica0on ¡in ¡Z ¡

language ¡

slide-72
SLIDE 72

FORMS: ¡Running ¡Example ¡ Traffic ¡jam ¡monitoring ¡

72 ¡

¡
  • D. ¡Weyns, ¡R. ¡Haesevoets, ¡A. ¡Helleboogh, ¡T. ¡Holvoet, ¡W. ¡Joosen, ¡The ¡MACODO ¡Middleware ¡for ¡Context-­‑Driven ¡

Dynamic ¡Agent ¡Organza0ons, ¡ACM ¡Transac0on ¡on ¡Autonomous ¡and ¡Adap0ve ¡Systems, ¡5(1):3.1–3.29, ¡2010. ¡ ¡

slide-73
SLIDE 73

73 ¡

Running ¡Example: ¡traffic ¡jam ¡monitoring ¡

slide-74
SLIDE 74

74 ¡

Running ¡Example: ¡traffic ¡jam ¡monitoring ¡

slide-75
SLIDE 75

FORMS ¡Reflec0on ¡Perspec0ve ¡

75 ¡

slide-76
SLIDE 76

76 ¡

FORMS ¡Reflec0on ¡Perspec0ve ¡

Self-­‑adap0ve ¡system ¡

slide-77
SLIDE 77

FORMS ¡Reflec0on ¡Perspec0ve ¡

77 ¡

Self-­‑adap0ve ¡system ¡

slide-78
SLIDE 78

78 ¡

FORMS ¡Reflec0on ¡Perspec0ve ¡

Environment ¡

slide-79
SLIDE 79

79 ¡

FORMS ¡Reflec0on ¡Perspec0ve ¡

Environment ¡

slide-80
SLIDE 80

80 ¡

FORMS ¡Reflec0on ¡Perspec0ve ¡

Base-­‑Level ¡Subsystem ¡

slide-81
SLIDE 81

81 ¡

FORMS ¡Reflec0on ¡Perspec0ve ¡

Base-­‑Level ¡Subsystem ¡

slide-82
SLIDE 82

82 ¡

Reflec0ve ¡Subsystem ¡

FORMS ¡Reflec0on ¡Perspec0ve ¡

slide-83
SLIDE 83

83 ¡

Reflec0ve ¡Subsystem ¡

FORMS ¡Reflec0on ¡Perspec0ve ¡

slide-84
SLIDE 84

84 ¡

FORMS ¡Distributed ¡Coordina0on ¡Perspec0ve ¡

slide-85
SLIDE 85

85 ¡

FORMS ¡Distributed ¡Coordina0on ¡Perspec0ve ¡

Local ¡Self-­‑Adap0ve ¡System ¡

slide-86
SLIDE 86

86 ¡

FORMS ¡Distributed ¡Coordina0on ¡Perspec0ve ¡

Local ¡Managed ¡System ¡– ¡Self-­‑Adap0ve ¡Unit ¡

slide-87
SLIDE 87

87 ¡

FORMS ¡Distributed ¡Coordina0on ¡Perspec0ve ¡

Local ¡Managed ¡System ¡– ¡Self-­‑Adap0ve ¡Unit ¡

slide-88
SLIDE 88

88 ¡

FORMS ¡Distributed ¡Coordina0on ¡Perspec0ve ¡

Coordina0on ¡Mechanism ¡

slide-89
SLIDE 89

89 ¡

ping/echo ¡messages ¡

FORMS ¡Distributed ¡Coordina0on ¡Perspec0ve ¡

Coordina0on ¡Mechanism ¡

slide-90
SLIDE 90

FORMS ¡MAPE ¡Perspec0ve ¡

90 ¡

slide-91
SLIDE 91

91 ¡

FORMS ¡MAPE ¡Perspec0ve ¡

Local ¡Reflec0ve ¡Computa0ons ¡

slide-92
SLIDE 92

92 ¡

FORMS ¡MAPE ¡Perspec0ve ¡

Local ¡Reflec0ve ¡Computa0ons ¡

slide-93
SLIDE 93

93 ¡

sense ¡ adapt ¡ perceive ¡

FORMS ¡MAPE ¡Perspec0ve ¡

Local ¡Reflec0ve ¡Computa0ons ¡

slide-94
SLIDE 94

94 ¡

FORMS ¡MAPE ¡Perspec0ve ¡

Reflec0on ¡Models ¡

slide-95
SLIDE 95

95 ¡

FORMS ¡MAPE ¡Perspec0ve ¡

Reflec0on ¡Models ¡

slide-96
SLIDE 96

(A ¡glimpse ¡of) ¡FORMS ¡in ¡ac0on ¡

96 ¡

slide-97
SLIDE 97

(A ¡glimpse ¡of) ¡FORMS ¡in ¡ac0on ¡

97 ¡

  • traffic domain attributes == {camera1 , camera2 , camera3 , freeflow zone1 ,

congested zone1 , freeflow zone2 , congested zone2 , freeflow zone3 , congested zone3}

traffic domain processes == {traffic1 , traffic2 , traffic3 , monitor camera1 , monitor camera2 , monitor camera3 , transmit}

TrafficEnvironment Environment attributes ✓ traffic domain attributes processes ✓ traffic domain processes

The traffic environment at T0 in the example (Figure 0??) is defined as:

TrafficEnvironmentT0 TrafficEnvironment attributes = {camera1 , camera2 , camera3 , freeflow zone1 , freeflow zone2 , congested zone3} processes = traffic domain processes

Environment attributes : P Attribute processes : P Process attributes 6= ∅

slide-98
SLIDE 98

FORMS ¡in ¡ac0on ¡

98 ¡

... ¡ ... ¡ ... ¡

slide-99
SLIDE 99

FORMS ¡in ¡ac0on ¡

99 ¡

slide-100
SLIDE 100

FORMS ¡in ¡ac0on ¡

... ¡

slide-101
SLIDE 101

FORMS ¡Reference ¡Model ¡

  • Integrates ¡different ¡exis0ng ¡perspec0ves ¡
  • n ¡self-­‑adapta0on ¡ ¡

– Extensible ¡model ¡ – Formal ¡underpinning ¡avoids ¡ambiguity ¡ ¡

  • Some ¡notes ¡ ¡

– Focus ¡on ¡modeling ¡and ¡reasoning ¡of ¡structural ¡aspects ¡

  • f ¡self-­‑adap0ve ¡systems ¡

– Z ¡specifica0ons ¡are ¡easy ¡to ¡read ¡but ¡extensive ¡ ¡ ¡

slide-102
SLIDE 102

Outline ¡of ¡the ¡tutorial ¡

  • 1. Mo0va0on ¡for ¡self-­‑adapta0on ¡
  • 2. Architecture-­‑based ¡approaches ¡to ¡self-­‑

adapta0on ¡

  • 3. Assurances ¡for ¡self-­‑adap0ve ¡systems ¡
  • 4. Towards ¡"Design ¡for ¡Sustainability" ¡
slide-103
SLIDE 103

Assurances ¡for ¡Self-­‑adap0ve ¡Systems ¡

  • Mo0va0on ¡to ¡assurances ¡for ¡self-­‑adapta0on ¡ ¡
  • A ¡selec0on ¡of ¡formal ¡approaches ¡to ¡self-­‑

adapta0on ¡ ¡

  • Perpetual ¡assurances ¡
slide-104
SLIDE 104

Mo0va0on ¡to ¡Assurances ¡for ¡ Self-­‑adapta0on ¡

  • Uncertainty ¡<> ¡assurances ¡
  • Par0cularly ¡relevant ¡in ¡domains ¡with ¡certain ¡

levels ¡of ¡cri0cality ¡ ¡

– E.g., ¡healthcare, ¡automa0on, ¡defense, ¡etc. ¡ ¡

  • With ¡need ¡for ¡self-­‑adap0on ¡in ¡these ¡domains ¡

assurance ¡has ¡become ¡a ¡major ¡concern ¡ ¡ ¡

slide-105
SLIDE 105
  • Variety ¡of ¡techniques ¡available* ¡

– From ¡regular ¡tes0ng ¡to ¡formal ¡proofs ¡ ¡ – Focus ¡on ¡specific ¡aspects ¡of ¡the ¡self-­‑adap0on ¡ ¡ – Most ¡current ¡approaches ¡rely ¡on ¡formal ¡ techniques ¡ ¡

  • Key ¡challenge: ¡what ¡are ¡suitable ¡techniques ¡to ¡

provide ¡assurances ¡at ¡run0me? ¡ ¡

¡

*D. ¡Weyns, ¡U. ¡I>ikhar, ¡D. ¡Gil ¡de ¡la ¡Iglesia, ¡T. ¡Ahmad, ¡A ¡Survey ¡of ¡Formal ¡Methods ¡in ¡Self-­‑Adap0ve ¡Systems, ¡Fi>h ¡ Interna0onal ¡C* ¡Conference ¡on ¡Computer ¡Science ¡and ¡So>ware ¡Engineering, ¡2012 ¡

Mo0va0on ¡to ¡Assurances ¡for ¡ Self-­‑adapta0on ¡

slide-106
SLIDE 106

Assurances ¡for ¡Self-­‑adap0ve ¡Systems ¡

  • Mo0va0on ¡to ¡assurances ¡for ¡self-­‑adap0ve ¡

systems ¡

  • A ¡selec0on ¡of ¡formal ¡approaches ¡to ¡self-­‑

adapta0on ¡ ¡

  • Perpetual ¡assurances ¡
slide-107
SLIDE 107

A ¡Selec0on ¡of ¡Formal ¡Approaches ¡to ¡ Architecture-­‑based ¡Self-­‑adapta0on ¡ ¡

  • 2006: ¡Zhang ¡& ¡Cheng ¡(design ¡0me ¡verifica0on ¡

and ¡model ¡transforma0on) ¡

  • 2009: ¡Epifani ¡et ¡al. ¡(models ¡at ¡run0me) ¡ ¡
  • 2011: ¡Calinescu ¡et ¡al. ¡(verifica0on ¡at ¡run0me) ¡
  • 2013: ¡Ghezzy ¡et ¡al. ¡(model ¡interpreta0on) ¡
  • 2014: ¡I>ikhar ¡et ¡al. ¡(executable ¡formal ¡models) ¡
slide-108
SLIDE 108

Design ¡Time ¡Verifica0on ¡and ¡Model ¡ Transforma0on ¡

  • Ensure ¡that ¡adap0ve ¡program ¡func0ons ¡

correctly ¡during ¡and ¡a(er ¡adapta0ons ¡ ¡

  • Process ¡to ¡construct ¡and ¡verify ¡adapta0on ¡

models, ¡and ¡then ¡generate ¡adap0ve ¡programs ¡ ¡

  • Model-­‑driven ¡process ¡with ¡focus ¡on ¡behavior ¡
  • f ¡adap0ve ¡programs ¡

¡

  • J. ¡Zhang ¡and ¡B. ¡Cheng, ¡Model-­‑based ¡development ¡of ¡dynamically ¡adap0ve ¡so>ware, ¡Interna0onal ¡

Conference ¡on ¡So>ware ¡Engineering, ¡ICSE ¡2006 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

slide-109
SLIDE 109

Design ¡Time ¡Verifica0on ¡and ¡ ¡ Model ¡Transforma0on ¡

gsm(x) x x x x x z x y [i,x,y,z] dataX index dataSource x [i,x,y,z] i send encode network 1 i+1 shiftY dataY shiftX dataZ encodedData

place transition shared place arc

readData inputData x GSM(x) x x x y y x y [i,x,y,z,t] inputData dataX x [i,x,y,z,t] z z z x encodedData send 1 i+1 network t shiftY shiftZ dataZ dataT dataY shiftX encode i readData dataSource index

Sender ¡of ¡audio ¡stream ¡applica0on ¡ has ¡to ¡work ¡in ¡domains ¡with ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ low ¡loss ¡rate ¡and ¡higher ¡loss ¡rate ¡

slide-110
SLIDE 110

Design ¡Time ¡Verifica0on ¡and ¡ ¡ Model ¡Transforma0on ¡

One-­‑point ¡adapta0on: ¡source ¡ behavior ¡should ¡complete, ¡before ¡ the ¡target ¡behavior ¡should ¡start ¡ ¡ The ¡“adapt” ¡transi0on ¡models ¡the ¡ set ¡of ¡adap0ve ¡transi0ons ¡ ¡ Quiescent ¡states ¡are ¡the ¡markings ¡ that ¡enable ¡the ¡“adapt” ¡transi0on ¡ ¡ Model ¡checking ¡allows ¡verifying ¡the ¡ model; ¡e.g., ¡

dataX dataY send network readData inputData dataX dataY dataZ dataT 1 network send y1 z1 1 [i,x,y,z] z z1 y1 empty Sender Source Model Sender Target Model readData dataSource i+1 index inputData encode x dataSource

adapt

encodedData dataZ [i,x,y,z,0] encodedData encode index

♦(dataSource = empty) ∧ ✷(read(x) → ♦send(x))

slide-111
SLIDE 111

Design ¡Time ¡Verifica0on ¡and ¡ ¡ Model ¡Transforma0on ¡

  • Alterna0ve ¡types ¡of ¡adapta0on ¡are ¡“guided ¡

adapta0on” ¡(temporal ¡restricted ¡mode) ¡and ¡ “overlap ¡adapta0on” ¡(temporal ¡parallel) ¡ ¡

  • Models ¡are ¡used ¡to ¡generate ¡executable ¡code ¡

– adapt ¡transi0on ¡is ¡mapped ¡to ¡adapt ¡func0on ¡

  • Model-­‑based ¡tes0ng ¡allows ¡assuring ¡that ¡the ¡

model ¡is ¡correctly ¡implemented ¡

slide-112
SLIDE 112

A ¡Selec0on ¡of ¡Formal ¡Approaches ¡to ¡ Architecture-­‑based ¡Self-­‑adapta0on ¡ ¡

  • 2006: ¡Zhang ¡& ¡Cheng ¡(design ¡0me ¡verifica0on ¡

and ¡model ¡transforma0on) ¡

  • 2009: ¡Epifani ¡et ¡al. ¡(models ¡at ¡run0me) ¡ ¡
  • 2011: ¡Calinescu ¡et ¡al. ¡(verifica0on ¡at ¡run0me) ¡
  • 2013: ¡Ghezzy ¡et ¡al. ¡(model ¡interpreta0on) ¡
  • 2014: ¡I>ikhar ¡et ¡al. ¡(executable ¡formal ¡models) ¡
slide-113
SLIDE 113

Probabilis0c ¡Models ¡at ¡Run0me ¡

  • Model ¡es0mates ¡are ¡seldom ¡correct ¡ ¡
  • In ¡dynamic ¡environments, ¡the ¡values ¡of ¡model ¡

parameters ¡may ¡change ¡over ¡0me ¡

  • Run0me ¡models ¡updated ¡with ¡data ¡collected ¡

from ¡the ¡running ¡system ¡

  • Supports ¡run0me ¡analysis ¡of ¡the ¡model ¡

¡

  • I. ¡Epifani, ¡C. ¡Ghezzi, ¡R. ¡Mirandola, ¡and ¡G. ¡Tamburrelli. ¡2009. ¡Model ¡evolu0on ¡by ¡run-­‑0me ¡parameter ¡

adapta0on, ¡Interna0onal ¡Conference ¡on ¡So>ware ¡Engineering, ¡ICSE ¡2009 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

slide-114
SLIDE 114

Probabilis0c ¡Models ¡at ¡Run0me ¡

  • KAMI: ¡Keep ¡Alive ¡Models ¡with ¡Implementa0ons ¡
  • Focus ¡on ¡non-­‑func0onal ¡proper0es ¡modeled ¡e.g., ¡

with ¡Discrete ¡Time ¡Markov ¡Chains ¡

  • Verifiable ¡with ¡probabilis0c ¡model ¡checker ¡ ¡
  • Bayesian ¡technique ¡to ¡re-­‑es0mate ¡probabili0es ¡

Modeling Initial Estimates Implementation Bayesian Estimation Refined Estimates Runtime Data QoS Requirements

slide-115
SLIDE 115

Probabilis0c ¡Models ¡at ¡Run0me ¡

  • Example: ¡Tele ¡Assistance ¡Service ¡(TAS) ¡ ¡
  • Model ¡represents ¡the ¡structure ¡of ¡the ¡ ¡ ¡ ¡

TAS ¡process ¡

  • Probabili0es ¡to ¡branches ¡and ¡failure ¡

probabili0es ¡to ¡service ¡invoca0ons ¡ ¡

  • Allows ¡verifying ¡proper0es ¡such ¡as: ¡ ¡

– The ¡probability ¡P1 ¡that ¡no ¡failures ¡ever ¡

  • ccurs ¡is ¡greater ¡then ¡0.7 ¡ ¡
  • Run0me ¡detec0ng ¡or ¡predic0ng ¡of ¡

viola0ons ¡of ¡desired ¡proper0es ¡

a

0.1

b d

0.6 vitalParamsMsg

c

stopMsg

h

1 0.3

l m

0.41 0.45

g

1

  • 1

0.04 0.02 0.01

f

Exit 1 1 0.99 0.98 Init 0.02

n

FailedAlarm 1

p

1

q

1 FailedChangeDrug FailedChangeDose changeDrug FailedAnlysis 0.12

i

FAS 0.96 1 pButtonMsg analyzeData

e

1 notifyPA alarm changeDoses

slide-116
SLIDE 116

A ¡Selec0on ¡of ¡Formal ¡Approaches ¡to ¡ Architecture-­‑based ¡Self-­‑adapta0on ¡ ¡

  • 2006: ¡Zhang ¡& ¡Cheng ¡(design ¡0me ¡verifica0on ¡

and ¡model ¡transforma0on) ¡

  • 2009: ¡Epifani ¡et ¡al. ¡(models ¡at ¡run0me) ¡ ¡
  • 2011: ¡Calinescu ¡et ¡al. ¡(verifica0on ¡at ¡run0me) ¡
  • 2013: ¡Ghezzy ¡et ¡al. ¡(model ¡interpreta0on) ¡
  • 2014: ¡I>ikhar ¡et ¡al. ¡(executable ¡formal ¡models) ¡
slide-117
SLIDE 117

Quan0ta0ve ¡Verifica0on ¡at ¡Run0me ¡

  • Monitoring ¡and ¡Bayesian-­‑based ¡parameter ¡

adap0on ¡of ¡the ¡(Markovian) ¡QoS ¡models ¡ ¡

  • Formal ¡specifica0on ¡of ¡QoS ¡requirements ¡with ¡

probabilis0c ¡temporal ¡logics ¡

  • Techniques ¡for ¡verifica0on ¡of ¡goals ¡at ¡run-­‑0me ¡ ¡
  • Run-­‑0me ¡reconfigura0on ¡and ¡resource ¡

assignment ¡

¡

  • R. ¡Calinescu, ¡L. ¡Grunske, ¡M. ¡Kwiatkowska, ¡R. ¡Mirandola, ¡and ¡G. ¡Tamburrelli. ¡Dynamic ¡QoS ¡Management ¡

and ¡Op0miza0on ¡in ¡Service-­‑Based ¡Systems, ¡IEEE ¡Transac0ons ¡on ¡So>ware ¡Engineering, ¡TSE ¡2011 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

slide-118
SLIDE 118

Quan0ta0ve ¡Verifica0on ¡at ¡Run0me ¡

  • Monitoring ¡performance ¡(e.g., ¡response ¡0me) ¡and ¡dependability ¡

(e.g., ¡failure ¡rate) ¡+ ¡workload ¡and ¡allocated ¡resources ¡ ¡

  • Periodically ¡or ¡event-­‑based ¡ ¡
  • Update ¡QoS ¡model ¡ ¡
slide-119
SLIDE 119

Quan0ta0ve ¡Verifica0on ¡at ¡Run0me ¡

  • Verify ¡QoS ¡requirements ¡with ¡updated ¡QoS ¡model ¡using ¡model ¡checking ¡at ¡run0me ¡
  • Configura0ons ¡that ¡sa0sfy ¡the ¡QoS ¡requirements ¡for ¡the ¡system ¡
slide-120
SLIDE 120

Quan0ta0ve ¡Verifica0on ¡at ¡Run0me ¡

¡

  • Build ¡a ¡plan ¡for ¡adap0ng ¡the ¡system ¡configura0on ¡ ¡
  • E.g. ¡change ¡workflow ¡or ¡modify ¡resources ¡allocated ¡to ¡services ¡
slide-121
SLIDE 121

Quan0ta0ve ¡Verifica0on ¡at ¡Run0me ¡

¡

  • Execute ¡the ¡plan ¡
  • E.g. ¡dynamically ¡adapt ¡the ¡workflow ¡using ¡the ¡underlying ¡pla‚orm; ¡start, ¡stop ¡or ¡

migrate ¡virtual ¡machines, ¡or ¡use ¡dedicated ¡resource ¡management ¡mechanisms ¡

slide-122
SLIDE 122

A ¡Selec0on ¡of ¡Formal ¡Approaches ¡to ¡ Architecture-­‑based ¡Self-­‑adapta0on ¡ ¡

  • 2006: ¡Zhang ¡& ¡Cheng ¡(design ¡0me ¡verifica0on ¡

and ¡model ¡transforma0on) ¡

  • 2009: ¡Epifani ¡et ¡al. ¡(models ¡at ¡run0me) ¡ ¡
  • 2011: ¡Calinescu ¡et ¡al. ¡(verifica0on ¡at ¡run0me) ¡
  • 2013: ¡Ghezzy ¡et ¡al. ¡(model ¡interpreta0on) ¡
  • 2014: ¡I>ikhar ¡et ¡al. ¡(executable ¡formal ¡models) ¡
slide-123
SLIDE 123

Model ¡Interpreta0on ¡

  • Derives ¡from ¡an ¡ini0al ¡system ¡model ¡a ¡finite ¡

state ¡automaton ¡augmented ¡with ¡probabili0es ¡

  • Interpreter ¡navigates ¡automaton ¡and ¡invokes ¡

components ¡associated ¡to ¡states ¡it ¡traverses ¡

  • Interpreter ¡chooses ¡among ¡alterna0ve ¡paths ¡of ¡

automaton ¡maximizing ¡the ¡system’s ¡u0lity ¡ ¡ ¡

¡

  • C. ¡Ghezzi, ¡L.S. ¡Pinto, ¡P. ¡Spole0ni, ¡G. ¡Tamburrelli: ¡Managing ¡non-­‑func0onal ¡uncertainty ¡via ¡model-­‑driven ¡

adap0vity, ¡Interna0onal ¡Conference ¡on ¡So>ware ¡Engineering, ¡ICSE ¡2013 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

slide-124
SLIDE 124

Model ¡Interpreta0on ¡

¡

  • Annotated ¡UML ¡diagram ¡models ¡response ¡0me, ¡etc. ¡of ¡different ¡execu0on ¡paths ¡ ¡
  • Diagram ¡is ¡automa0cally ¡translated ¡to ¡Markov ¡decision ¡process ¡
  • Interpreter ¡guides ¡the ¡execu0on ¡of ¡the ¡system ¡using ¡the ¡model ¡ ¡
  • Cumula0ve ¡reward ¡is ¡used ¡to ¡select ¡path ¡with ¡highest ¡u0lity ¡
  • Adapta0on ¡logic ¡is ¡encoded ¡in ¡ad-­‑hoc ¡interpreter ¡ ¡

7 c g h

RT=0.5s E=2 U=1 RT=0.3s E=1 U=1 RT=0.8s E=2 U=1 RT=2s E=3 U=1

8

RT=0.6s E=2 U=1

6a 12 e f 13

RT=0s E=1 U=0 0.7 0.3

5a 5b

RT=0s E=1 U=0

d Developer UML Activity Diagrams Implementations

  • generates

invokes executes uses annotates designs uses Embedded Model … … … … … … Interpreter PRISM uses Generator

slide-125
SLIDE 125

A ¡Selec0on ¡of ¡Formal ¡Approaches ¡to ¡ Architecture-­‑based ¡Self-­‑adapta0on ¡ ¡

  • 2006: ¡Zhang ¡& ¡Cheng ¡(design ¡0me ¡verifica0on ¡

and ¡model ¡transforma0on) ¡

  • 2009: ¡Epifani ¡et ¡al. ¡(models ¡at ¡run0me) ¡ ¡
  • 2011: ¡Calinescu ¡et ¡al. ¡(verifica0on ¡at ¡run0me) ¡
  • 2013: ¡Ghezzy ¡et ¡al. ¡(model ¡interpreta0on) ¡
  • 2014: ¡I>ikhar ¡et ¡al. ¡(executable ¡formal ¡models) ¡
slide-126
SLIDE 126

Executable ¡Formal ¡Models ¡

¡

  • Focus ¡on ¡guarantees ¡of ¡adapta0on ¡func0ons ¡

(compared ¡to ¡QoS ¡requirements) ¡ ¡

  • MAPE ¡func0ons ¡formally ¡specified ¡and ¡verified ¡ ¡
  • Models ¡directly ¡executed ¡using ¡virtual ¡machine ¡
  • No ¡error-­‑prone ¡process ¡of ¡coding ¡
  • Formal ¡run0me ¡models ¡support ¡con0nuous ¡

verifica0on ¡ ¡

¡

  • M. ¡U. ¡I>ikhar, ¡D. ¡Weyns: ¡Ac0vFORMS: ¡ac0ve ¡formal ¡models ¡for ¡self-­‑adapta0on, ¡Interna0onal ¡Symposium ¡

in ¡So>ware ¡Engineering ¡of ¡Adap0ve ¡and ¡Self-­‑Managing ¡Systems, ¡SEAMS ¡2014 ¡ ¡

slide-127
SLIDE 127

Executable ¡ Formal ¡Models ¡

slide-128
SLIDE 128

Executable ¡ Formal ¡Models ¡

Digital ¡Story ¡Telling ¡Applica0on ¡ ¡

slide-129
SLIDE 129

Executable ¡Formal ¡Models ¡

Digital ¡Story ¡Telling ¡Applica0on ¡ ¡

F

  • r

P e e r R e v i e w

F

  • r

P e e r R e v i e w

For Peer Review

For Peer Review

//Managed System Knowledge const int TOTAL_NB_OF_ALGS = 11; const int REQUIRED_NB_OF_ALGS_USED = 5; typedef struct { ... } Algorithm; Algorithm algs[TOTAL_NB_OF_ALGS]; int currentNbOfAlgsUsed; //number of algorithms bool gpsStatus; //TRUE=on, FALSE=off

F

  • r

P e e r R e v i e w

For Peer Review

... } Algorithm;

slide-130
SLIDE 130

Executable ¡Formal ¡Models ¡

For Peer Review

P2r MonitorRatings.PhotoPickedByUser --> Analyze.AlgorithmsSorted P2s MonitorGPS.ChangeGPS_Status --> Analyze.GPS_FlickrStatusAnalyzed P3 Analyze.AdaptationNeeded --> Planning.CreatePlan

Digital ¡Story ¡Telling ¡Applica0on ¡ ¡

F

  • r

P e e r R e v i e w

F

  • r

P e e r R e v i e w

For Peer Review

For Peer Review

//Managed System Knowledge const int TOTAL_NB_OF_ALGS = 11; const int REQUIRED_NB_OF_ALGS_USED = 5; typedef struct { ... } Algorithm; Algorithm algs[TOTAL_NB_OF_ALGS]; int currentNbOfAlgsUsed; //number of algorithms bool gpsStatus; //TRUE=on, FALSE=off

F

  • r

P e e r R e v i e w

For Peer Review

... } Algorithm;

slide-131
SLIDE 131

P8 A[] currentNbOfAlgsUsed==5

Executable ¡Formal ¡Models ¡

For Peer Review

P2r MonitorRatings.PhotoPickedByUser --> Analyze.AlgorithmsSorted P2s MonitorGPS.ChangeGPS_Status --> Analyze.GPS_FlickrStatusAnalyzed P3 Analyze.AdaptationNeeded --> Planning.CreatePlan

Digital ¡Story ¡Telling ¡Applica0on ¡ ¡

F

  • r

P e e r R e v i e w

F

  • r

P e e r R e v i e w

For Peer Review

For Peer Review

//Managed System Knowledge const int TOTAL_NB_OF_ALGS = 11; const int REQUIRED_NB_OF_ALGS_USED = 5; typedef struct { ... } Algorithm; Algorithm algs[TOTAL_NB_OF_ALGS]; int currentNbOfAlgsUsed; //number of algorithms bool gpsStatus; //TRUE=on, FALSE=off

F

  • r

P e e r R e v i e w

For Peer Review

... } Algorithm;

slide-132
SLIDE 132

Executable ¡ Formal ¡Models ¡

Com pl ete Redundant I ncom pl ete SH_MVD_Com pl ete[Mi d]! SH_MVD_Redundant[Mi d]! Anal yz i ng SAm vdStruct[Mi d]. acti vi ty1 . num ber_GP S < SAm vdStruct[Mi d]. nMem bers SAm vdStruct[Mi d]. acti vi ty1 . num ber_GP S == SAm vdStruct[Mi d]. nMem bers SAm vdStruct[Mi d]. acti vi ty1 . num ber_GP S > SAm vdStruct[Mi d]. nMem bers SH_MVD_I ncom pl ete[Mi d]!

SH_MVD_Redundant[Mi d]? SH_MVD_Redundant[Mi d]? SH_MVD_Com pl ete[Mi d]? SH_MVD_I ncom pl ete[Mi d]? SH_MVD_Com pl ete[Mi d]? addP hone[found_P hone]! L
  • ok
F
  • rF
reeGP S Al l F i ne NoF reeGP S found_P hone ! = NOP HONE targetedMVD = Mi d found_P hone == NOP HONE found_P hone = getF reeP hone() found_P hone = getF reeP hone() GPS Accuracy Error Time 10 20 30 40 50 60 3 6 9 12 15 Task-2 req. Task-1 req. Task-1 Task-2

MVDSHPlan(1).LookForFreeGPS R5: MVDSHPlan(1).LookForFreeGPS --> MVDSHPlan(1).AllFine R6: MVDSHAnalyze(1).Incomplete -->

R8: MASphoneStruct[2].GPS_Service == DEACTIVATED && MVDSHPlan(1).found_Phone == 2 --> MASmvdStruct[1].member[2] == NOT_USED && MVDSHPlan(1).found_Phone != 2 R9:A[] forall(Pid:phone_id) forall(Mid1:MVD_id)

Mobile ¡Learning ¡Applica0on ¡ ¡

slide-133
SLIDE 133

Assurances ¡for ¡Self-­‑adap0ve ¡Systems ¡

  • Mo0va0on ¡to ¡assurances ¡for ¡self-­‑adapta0on ¡
  • A ¡selec0on ¡of ¡formal ¡approaches ¡to ¡self-­‑

adapta0on ¡ ¡

  • Perpetual ¡assurances ¡
slide-134
SLIDE 134

Perpetual ¡Assurances ¡

“Providing ¡evidence ¡for ¡requirements ¡compliance ¡through ¡an ¡ enduring ¡process ¡that ¡con8nuously ¡provides ¡new ¡evidence ¡by ¡ combining ¡system-­‑driven ¡and ¡human-­‑driven ¡ac8vi8es ¡to ¡deal ¡ with ¡the ¡uncertain8es ¡that ¡the ¡system ¡faces ¡across ¡its ¡life8me.” ¡ ¡

  • D. ¡Weyns, ¡N. ¡Bencomo, ¡R. ¡Calinescu, ¡J. ¡Camara, ¡C. ¡Ghezzi, ¡V. ¡Grassi, ¡L. ¡Grunske, ¡P. ¡Inverardi, ¡J.M. ¡Jezequel, ¡
  • S. ¡Malek, ¡R. ¡Mirandola, ¡M. ¡Mori, ¡and ¡G. ¡Tamburrelli, ¡Perpetual ¡Assurances ¡in ¡Self-­‑Adap0ve ¡Systems, ¡

Working ¡Group ¡Report ¡-­‑ ¡Dagstuhl ¡Seminar ¡13511, ¡2015 ¡

¡

slide-135
SLIDE 135

Perpetual ¡Assurances ¡

Table&2

Requirement Brief description

R1: Monitor uncertainty A perpetual assurance solution must continually observe the sources of uncertainty affecting the self-adaptive system. R2: Quantify uncertainty A perpetual assurance solution must use its observations of uncertainty sources to continually quantify and potentially reduce the uncertainties affecting its ability to provide assurance evidence. R3: Manage overlapping uncertainty sources A perpetual assurance solution must continually deal with overlapping sources of uncertainty and may need to treat these sources in a composable fashion. R4: Derive new evidence A perpetual assurance solution must continually derive new assurance evidence arguments. R5: Integrate new evidence A perpetual assurance solution must continually integrate new evidence into the assurance arguments for the safe behavior of the assured self-managing system. R6: Combine heterogeneous evidence A perpetual assurance solution may need to continually combine new assurance evidence synthesized automatically and provided by human experts. R7: Provide evidence for the elements and activities that realize R1-R6 A perpetual assurance solution must provide assurance evidence for the system components, the human activities, and the processes used to meet the previous set of requirements. R8: Produce timely updates The activities carried out by a perpetual assurance solution must produce timely updates of the assurance arguments. R9: Limited overhead The activities of the perpetual assurance solution and their overheads must not impact the operation of the assured self-adaptive system. R10: Auditable arguments The assurance evidence produced by a solution and the associated assurance arguments must be auditable by human stakeholders.

slide-136
SLIDE 136

Perpetual ¡Assurances ¡

  • Variety ¡of ¡assurance ¡approaches, ¡including: ¡
  • Key ¡challenge: ¡turn ¡these ¡approaches ¡into ¡a ¡

working ¡reality ¡for ¡perpetual ¡assurances ¡

Group Approaches

Human-driven approaches

  • Formal proof
  • Simulation

System-driven approaches

  • Runtime verification
  • Sanity checks
  • Contracts

Hybrid approaches

  • Model checking
  • Testing
slide-137
SLIDE 137

Perpetual ¡Assurances ¡

  • Func0onal ¡requirements ¡(R1 ¡to ¡R7) ¡

– How ¡to ¡collect ¡assurance ¡evidence ¡arguments ¡at ¡ run0me ¡and ¡compose ¡them ¡with ¡the ¡evidence ¡ acquired ¡throughout ¡the ¡life0me ¡of ¡the ¡system? ¡

  • Quality ¡requirements ¡(R8 ¡to ¡R10) ¡ ¡

– How ¡to ¡make ¡solu0ons ¡efficient ¡and ¡support ¡the ¡ interchange ¡of ¡evidence ¡arguments ¡between ¡the ¡ system ¡and ¡users ¡ ¡

slide-138
SLIDE 138

Outline ¡of ¡the ¡tutorial ¡

  • 1. Mo0va0on ¡for ¡self-­‑adapta0on ¡
  • 2. Architecture-­‑based ¡approaches ¡to ¡self-­‑

adapta0on ¡

  • 3. Assurances ¡for ¡self-­‑adap0ve ¡systems ¡
  • 4. Towards ¡"Design ¡for ¡Sustainability" ¡
slide-139
SLIDE 139

Towards ¡“Design ¡for ¡Sustainability” ¡

  • Posi0on ¡& ¡mo0va0on ¡
  • AdEpS ¡model ¡ ¡
  • Engineering ¡principles ¡ ¡
  • Reflec0ons ¡
slide-140
SLIDE 140

Posi0on ¡

  • “Con0nuous ¡change ¡changes ¡everything” ¡
  • Uncertain0es ¡may ¡harm ¡the ¡sustainability ¡of ¡so>ware ¡systems ¡ ¡
  • Calls ¡for ¡a ¡radical ¡change ¡in ¡the ¡way ¡so>ware ¡is ¡developed ¡and ¡
  • perated ¡ ¡

Sustainability ¡of ¡so>ware ¡systems ¡requires ¡design ¡for ¡sustainability ¡

  • D. ¡Weyns, ¡M. ¡Caporuscio, ¡B. ¡Vogel, ¡A. ¡Kur0, ¡Design ¡for ¡Sustainability ¡= ¡Run0me ¡Adapta0on ¡U ¡Evolu0on, ¡

Sustainable ¡Architecture: ¡Global ¡collabora0on, ¡Requirements, ¡Analysis, ¡SAGRA ¡2015 ¡

slide-141
SLIDE 141

Mo0va0on ¡

  • Tradi0onal ¡driving ¡engineering ¡principle ¡= ¡ ¡

¡ ¡ ¡ ¡ ¡Design ¡for ¡Reuse ¡ ¡

  • Reuse ¡puts ¡the ¡stable ¡parts ¡of ¡so>ware ¡central ¡
  • Domina0ng ¡parts ¡of ¡modern ¡so>ware ¡systems ¡

are ¡the ¡changing ¡parts ¡

  • Con0nuous ¡change ¡calls ¡for ¡adapta0on ¡and ¡

evolu0on ¡as ¡drivers ¡in ¡so>ware ¡design ¡ ¡ ¡

slide-142
SLIDE 142

Mo0va0on ¡

  • Evolu0on ¡and ¡adapta0on ¡mainly ¡tackled ¡

separately ¡(at ¡design ¡and ¡run0me ¡respec0vely) ¡

Design ¡for ¡Sustainability ¡ ¡

¡

– Seamless ¡integra0on ¡of ¡run0me ¡adapta0on ¡and ¡ evolu0on ¡(AdEpS ¡model) ¡ – Design ¡so>ware ¡to ¡facilitate ¡this ¡seamless ¡ integra0on ¡(engineering ¡principles) ¡

¡

slide-143
SLIDE 143

Towards ¡“Design ¡for ¡Sustainability” ¡

  • Posi0on ¡& ¡mo0va0on ¡
  • AdEpS ¡model ¡ ¡
  • Engineering ¡principles ¡ ¡
  • Reflec0ons ¡
slide-144
SLIDE 144

AdEpS ¡model ¡ ¡

  • Grounded ¡in ¡Oreizy`s ¡

model ¡

  • Adapta0on ¡management: ¡

keep ¡sa0sfying ¡goals ¡

  • Evolu0on ¡management: ¡

handle ¡goal ¡changes ¡ ¡

slide-145
SLIDE 145

AdEpS ¡model ¡ ¡

  • Grounded ¡in ¡model ¡of ¡

[Oreizy ¡et ¡al. ¡1999] ¡

  • Adapta0on ¡management: ¡

keep ¡sa0sfying ¡goals ¡

  • Evolu0on ¡management: ¡

handle ¡goal ¡changes ¡ ¡

Running ¡ robot ¡code ¡ Reflec0ve ¡model ¡ for ¡env. ¡explora0on ¡ Robot ¡code ¡ Architectural ¡views ¡ robot ¡system ¡ ¡

slide-146
SLIDE 146

AdEpS ¡model ¡ ¡

  • Grounded ¡in ¡model ¡of ¡

[Oreizy ¡et ¡al. ¡1999] ¡

  • Adapta0on ¡management: ¡

keep ¡sa0sfying ¡goals ¡

  • Evolu0on ¡management: ¡

handle ¡goal ¡changes ¡ ¡

slide-147
SLIDE 147

AdEpS ¡model ¡ ¡

  • Grounded ¡in ¡model ¡of ¡

[Oreizy ¡et ¡al. ¡1999] ¡

  • Adapta0on ¡management: ¡

keep ¡sa0sfying ¡goals ¡

  • Evolu0on ¡management: ¡

handle ¡goal ¡changes ¡ ¡

  • 1. ¡Detect ¡need ¡for ¡

new ¡roadmap ¡

slide-148
SLIDE 148

AdEpS ¡model ¡ ¡

  • Grounded ¡in ¡model ¡of ¡

[Oreizy ¡et ¡al. ¡1999] ¡

  • Adapta0on ¡management: ¡

keep ¡sa0sfying ¡goals ¡

  • Evolu0on ¡management: ¡

handle ¡goal ¡changes ¡ ¡

  • 1. ¡Detect ¡need ¡for ¡

new ¡roadmap ¡

  • 2. ¡Analyze ¡context ¡ ¡
slide-149
SLIDE 149

AdEpS ¡model ¡ ¡

  • Grounded ¡in ¡model ¡of ¡

[Oreizy ¡et ¡al. ¡1999] ¡

  • Adapta0on ¡management: ¡

keep ¡sa0sfying ¡goals ¡

  • Evolu0on ¡management: ¡

handle ¡goal ¡changes ¡ ¡

  • 1. ¡Detect ¡need ¡for ¡

new ¡roadmap ¡

  • 3. ¡Compute ¡new ¡roadmap ¡ ¡
  • 2. ¡Analyze ¡context ¡ ¡
slide-150
SLIDE 150

AdEpS ¡model ¡ ¡

  • Grounded ¡in ¡model ¡of ¡

[Oreizy ¡et ¡al. ¡1999] ¡

  • Adapta0on ¡management: ¡

keep ¡sa0sfying ¡goals ¡

  • Evolu0on ¡management: ¡

handle ¡goal ¡changes ¡ ¡

  • 4. ¡Update ¡roadmap ¡
  • 1. ¡Detect ¡need ¡for ¡

new ¡roadmap ¡

  • 3. ¡Compute ¡new ¡roadmap ¡ ¡
  • 2. ¡Analyze ¡context ¡ ¡
slide-151
SLIDE 151

AdEpS ¡model ¡ ¡

  • Grounded ¡in ¡model ¡of ¡

[Oreizy ¡et ¡al. ¡1999] ¡

  • Adapta0on ¡management: ¡

keep ¡sa0sfying ¡goals ¡

  • Evolu0on ¡management: ¡

handle ¡goal ¡changes ¡ ¡

  • 4. ¡Update ¡roadmap ¡
  • 1. ¡Detect ¡need ¡for ¡

new ¡roadmap ¡

  • 3. ¡Compute ¡new ¡roadmap ¡ ¡
  • 2. ¡Analyze ¡context ¡ ¡
slide-152
SLIDE 152

AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡

slide-153
SLIDE 153

AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡

Unforeseen ¡barrier ¡

slide-154
SLIDE 154

AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡

Unforeseen ¡barrier ¡

slide-155
SLIDE 155

AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡

Unforeseen ¡barrier ¡

slide-156
SLIDE 156

AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡

Unforeseen ¡barrier ¡

slide-157
SLIDE 157

AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡

Unforeseen ¡barrier ¡ Revise ¡mission ¡

slide-158
SLIDE 158

AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡

Unforeseen ¡barrier ¡ Revise ¡mission ¡

slide-159
SLIDE 159

AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡

Unforeseen ¡barrier ¡ Revise ¡mission ¡

slide-160
SLIDE 160

AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡

Unforeseen ¡barrier ¡ Revise ¡mission ¡

slide-161
SLIDE 161

AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡

Unforeseen ¡barrier ¡ Revise ¡mission ¡ Change ¡adapta0on ¡plan ¡ Update ¡mission ¡

slide-162
SLIDE 162

AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡

slide-163
SLIDE 163

AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡

Reduce ¡speed ¡for ¡risk ¡

slide-164
SLIDE 164

AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡

Reduce ¡speed ¡for ¡risk ¡

slide-165
SLIDE 165

AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡

Reduce ¡speed ¡for ¡risk ¡

slide-166
SLIDE 166

AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡

Reduce ¡speed ¡for ¡risk ¡ Revise ¡strategy ¡ for ¡mission ¡

slide-167
SLIDE 167

AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡

Reduce ¡speed ¡for ¡risk ¡ Revise ¡strategy ¡ for ¡mission ¡

slide-168
SLIDE 168

AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡

Reduce ¡speed ¡for ¡risk ¡ Revise ¡strategy ¡ for ¡mission ¡ Update ¡strategy ¡ for ¡mission ¡ Update ¡ adapta0on ¡logic ¡

slide-169
SLIDE 169

AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡

slide-170
SLIDE 170

Towards ¡“Design ¡for ¡Sustainability” ¡

  • Posi0on ¡& ¡mo0va0on ¡
  • AdEpS ¡model ¡ ¡
  • Engineering ¡principles ¡ ¡
  • Reflec0ons ¡
slide-171
SLIDE 171

Engineering ¡principles ¡for ¡ ¡ Design ¡for ¡Sustainability ¡

  • AdEpS ¡model ¡defines ¡how ¡a ¡so>ware ¡system ¡

can ¡handle ¡change ¡through ¡run0me ¡ adapta0on ¡and ¡evolu0on ¡in ¡an ¡integrated ¡way ¡ ¡

  • Focus ¡now ¡on ¡realizing ¡so>ware ¡systems ¡that ¡

adhere ¡to ¡the ¡AdEpS ¡model ¡ ¡

slide-172
SLIDE 172

Engineering ¡principles ¡for ¡ ¡ Design ¡for ¡Sustainability ¡

  • AdEpS ¡model ¡defines ¡how ¡a ¡so>ware ¡system ¡

can ¡handle ¡change ¡through ¡run0me ¡ adapta0on ¡and ¡evolu0on ¡in ¡an ¡integrated ¡way ¡ ¡

  • Focus ¡now ¡on ¡realizing ¡so>ware ¡systems ¡that ¡

adhere ¡to ¡the ¡AdEpS ¡model ¡ ¡

To ¡serve ¡as ¡managed ¡systems ¡

slide-173
SLIDE 173

Engineering ¡principles ¡for ¡ ¡ Design ¡for ¡Sustainability ¡

  • Exis0ng ¡approaches ¡mostly ¡focus ¡on ¡ ¡

– Par0cular ¡facets ¡of ¡“support ¡for ¡run0me ¡change” ¡ ¡ – Or ¡specific ¡families ¡of ¡applica0ons ¡ ¡

  • “Sustainability ¡calls ¡for ¡a ¡paradigm ¡shi> ¡in ¡the ¡

way ¡we ¡realize ¡so>ware ¡systems” ¡ ¡

  • Accommodate ¡run0me ¡adapta0on ¡and ¡evolu0on ¡

as ¡a ¡primary ¡concern, ¡rather ¡than ¡an ¡add-­‑on ¡ ¡

slide-174
SLIDE 174

Engineering ¡principles ¡for ¡ ¡ Design ¡for ¡Sustainability ¡

  • Primary ¡engineering ¡principles ¡

– Design ¡for ¡variability ¡& ¡meta-­‑variability ¡ ¡ – Design ¡for ¡probing ¡ ¡ – Design ¡for ¡controlled ¡change ¡

  • Ideas ¡for ¡realiza0on ¡

– Examples ¡

  • Component ¡models ¡
  • Languages ¡ ¡
slide-175
SLIDE 175

Design ¡for ¡variability ¡& ¡meta-­‑variability ¡ ¡

  • Systema0c ¡approaches ¡to ¡endow ¡so>ware ¡with ¡

variability ¡as ¡an ¡integrated ¡property ¡

  • ¡For ¡example ¡

– Component ¡model: ¡abstrac0ons ¡to ¡mark ¡variants ¡and ¡ add ¡varia0on ¡points ¡to ¡bind/unbind ¡variants ¡on ¡the ¡fly ¡ ¡ – Programming ¡language: ¡constructs ¡to ¡define ¡parts ¡of ¡ code ¡as ¡variants ¡and ¡allow ¡binding/unbinding ¡variants ¡

  • Meta ¡level: ¡first-­‑class ¡support ¡for ¡run0me ¡

changes ¡of ¡variability ¡mechanisms ¡themselves ¡ ¡

slide-176
SLIDE 176

Design ¡for ¡probing ¡

  • Systema0c ¡approaches ¡to ¡endow ¡so>ware ¡with ¡

integrated ¡facili0es ¡for ¡probing ¡their ¡behavior ¡

  • For ¡example: ¡ ¡

– Component ¡model: ¡define ¡elements ¡as ¡monitor-­‑able ¡ – Programming ¡language: ¡declare ¡the ¡behavior ¡of ¡parts ¡

  • f ¡the ¡code ¡as ¡observable ¡ ¡

– Execu0on ¡environment ¡tracks ¡the ¡behavior ¡and ¡allows ¡ accessing ¡the ¡data ¡ ¡

  • First-­‑class ¡support ¡for ¡handling ¡uncertain0es, ¡

e.g., ¡filtering ¡noise, ¡probabilis0c ¡models ¡

slide-177
SLIDE 177

Design ¡for ¡controlled ¡change ¡

  • Systema0c ¡approaches ¡to ¡endow ¡so>ware ¡

systems ¡with ¡facili0es ¡for ¡enac0ng ¡changes ¡

  • For ¡example: ¡ ¡

– Component ¡model ¡allows ¡defining ¡system ¡elements ¡ effect-­‑able ¡with ¡a ¡strategy ¡how ¡the ¡enact ¡the ¡change. ¡ – Declared ¡variants ¡are ¡candidates ¡for ¡enactment, ¡while ¡ varia0on ¡points ¡provide ¡the ¡means ¡to ¡enact ¡the ¡change ¡ ¡

  • Support ¡for ¡quiescence ¡and ¡state ¡transfer ¡ ¡
  • Handling ¡uncertain0es; ¡e.g., ¡0me ¡windows ¡to ¡

effect ¡changes, ¡acknowledging ¡change ¡ac0ons, ¡etc. ¡ ¡

slide-178
SLIDE 178

Towards ¡“Design ¡for ¡Sustainability” ¡

  • Posi0on ¡& ¡mo0va0on ¡
  • AdEpS ¡model ¡ ¡
  • Engineering ¡principles ¡ ¡
  • Reflec0ons ¡
slide-179
SLIDE 179

Design ¡for ¡Sustainability: ¡Some ¡Reflec0ons ¡

  • Argumenta0on ¡for ¡a ¡radical ¡shi> ¡in ¡the ¡way ¡we ¡

build ¡and ¡operate ¡so>ware ¡ ¡

  • No ¡free ¡lunch… ¡

– How ¡to ¡implement ¡the ¡AdEpS ¡model? ¡ ¡ – How ¡to ¡transfer ¡the ¡abstract ¡engineering ¡principles ¡to ¡a ¡ prac0cal ¡realiza0on? ¡ ¡ – What ¡are ¡the ¡implica0ons ¡and ¡tradeoffs ¡of ¡applying ¡the ¡ engineering ¡principles? ¡ ¡ – What ¡assurances ¡can ¡be ¡provided ¡for ¡such ¡complex ¡ systems ¡that ¡operate ¡in ¡an ¡ocean ¡of ¡uncertain0es? ¡ ¡

slide-180
SLIDE 180
  • 1. Understand ¡the ¡mo0va0on ¡and ¡need ¡for ¡self-­‑

adapta0on; ¡

  • 2. Get ¡familiar ¡with ¡the ¡state-­‑of-­‑the-­‑art ¡principles ¡
  • f ¡realizing ¡architecture-­‑based ¡self-­‑adapta0on; ¡
  • 3. Get ¡insight ¡in ¡the ¡paradox ¡between ¡uncertainty ¡

and ¡assurances ¡and ¡how ¡self-­‑adapta0on ¡can ¡ help ¡to ¡tackle ¡this; ¡ ¡

  • 4. Learn ¡about ¡some ¡open ¡challenges ¡in ¡the ¡

domain ¡of ¡self-­‑adap0ve ¡systems. ¡

Goals ¡for ¡this ¡Tutorial ¡

slide-181
SLIDE 181
  • Community ¡website ¡ ¡

– hsps://www.hpi.uni-­‑potsdam.de/giese/public/selfadapt/ ¡

  • Some ¡interes0ng ¡volumes ¡ ¡

Some ¡pointers ¡

slide-182
SLIDE 182

Bibliography ¡ ¡

  • J. ¡Whisle, ¡P. ¡Sawyer, ¡N. ¡Bencomo, ¡B. ¡H. ¡Cheng, ¡and ¡J.-­‑M. ¡Bruel. ¡RELAX: ¡Incorpora0ng ¡Uncertainty ¡into ¡the ¡Specifica0on ¡of ¡Self-­‑Adap0ve ¡

Systems, ¡Requirements ¡Engineering ¡2009 ¡

  • L. ¡Baresi, ¡L. ¡Pasquale, ¡and ¡P. ¡Spole0ni. ¡Fuzzy ¡goals ¡for ¡requirements-­‑driven ¡adapta0on, ¡Requirements ¡Engineering, ¡2010 ¡
  • V. ¡E. ¡Silva ¡Souza, ¡A. ¡Lapouchnian, ¡W. ¡N. ¡Robinson, ¡and ¡J. ¡Mylopoulos, ¡ ¡Awareness ¡requirements ¡for ¡adap0ve ¡Systems, ¡SEAMS ¡2011 ¡ ¡
  • A ¡Filieri, ¡H ¡Hoffmann, ¡M ¡Maggio ¡, ¡Automated ¡design ¡of ¡self-­‑adap0ve ¡so>ware ¡with ¡control-­‑theore0cal ¡formal ¡guarantees, ¡Interna0onal ¡

Conference ¡on ¡So>ware ¡Engineering, ¡ICSE ¡2014 ¡

  • S. ¡Shevtsov, ¡U. ¡I>ikhar, ¡D. ¡Weyns. ¡2015. ¡SimCA ¡vs ¡Ac0vFORMS: ¡comparing ¡control-­‑ ¡and ¡architecture-­‑based ¡adapta0on ¡on ¡the ¡TAS ¡

exemplar, ¡Control ¡Theory ¡and ¡So>ware ¡Engineering, ¡CTSE ¡2015 ¡ ¡

  • P. ¡Oreizy, ¡M. ¡Gorlick, ¡R. ¡Taylor, ¡D. ¡Heimbigner, ¡G. ¡Johnson, ¡N. ¡Medvidovic, ¡A. ¡Quilici, ¡D. ¡Rosenblum, ¡and ¡A. ¡Wolf, ¡An ¡Architecture-­‑Based ¡

Approach ¡to ¡Self-­‑Adap0ve ¡So>ware, ¡IEEE ¡Intelligent ¡Systems, ¡May/June ¡1999 ¡

  • Kephart ¡and ¡Chess, ¡The ¡vision ¡of ¡autonomic ¡Compu0ng, ¡IEEE ¡Computer, ¡January ¡2003 ¡
  • D. ¡Garlan, ¡S-­‑W. ¡Cheng, ¡A.C. ¡Huang, ¡B. ¡Schmerl, ¡P. ¡Steenkiste, ¡Rainbow: ¡Architecture-­‑ ¡Based ¡Self-­‑Adapta0on ¡with ¡Reusable ¡

Infrastructure, ¡IEEE ¡Computer, ¡October ¡2004 ¡ ¡ ¡ ¡ ¡ ¡

  • S-­‑W. ¡Cheng ¡and ¡D. ¡Garlan, ¡S0tch: ¡A ¡Language ¡for ¡Architecture-­‑Based ¡Self-­‑Adapta0on, ¡Journal ¡of ¡Systems ¡and ¡So>ware, ¡Editors ¡Weyns ¡

et ¡al., ¡Special ¡Issue ¡on ¡State ¡of ¡the ¡Art ¡in ¡Self-­‑Adap0ve ¡Systems, ¡Vol. ¡85(12), ¡December ¡2012 ¡ ¡ ¡ ¡ ¡ ¡ ¡

  • J. ¡Kramer ¡and ¡J. ¡Magee, ¡Self-­‑adapta0on: ¡an ¡architecture ¡challenge, ¡Future ¡of ¡So>ware ¡Engineering, ¡FOSE ¡2007 ¡ ¡ ¡ ¡ ¡ ¡ ¡
  • E. ¡Gat, ¡Three-­‑layer ¡Architectures, ¡Ar0ficial ¡Intelligence ¡and ¡Mobile ¡Robots, ¡MIT/AAAI ¡Press, ¡1997 ¡ ¡ ¡ ¡ ¡ ¡
  • D. ¡Weyns, ¡S. ¡Malek, ¡J. ¡Andersson, ¡ ¡FORMS: ¡Formal ¡reference ¡model ¡for ¡self-­‑adapta0on, ¡ACM ¡Transac0ons ¡on ¡Autonomous ¡and ¡

Adap0ve ¡Systems, ¡TAAS ¡7(1), ¡2012 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

  • D. ¡Weyns, ¡R. ¡Haesevoets, ¡A. ¡Helleboogh, ¡T. ¡Holvoet, ¡W. ¡Joosen, ¡The ¡MACODO ¡Middleware ¡for ¡Context-­‑Driven ¡Dynamic ¡Agent ¡

Organza0ons, ¡ACM ¡Transac0on ¡on ¡Autonomous ¡and ¡Adap0ve ¡Systems, ¡5(1), ¡2010. ¡

  • D. ¡Weyns, ¡U. ¡I>ikhar, ¡D. ¡Gil ¡de ¡la ¡Iglesia, ¡and ¡T. ¡Ahmad, ¡A ¡Survey ¡on ¡Formal ¡Methods ¡in ¡Self-­‑Adap0ve ¡Systems, ¡Fi>h ¡Interna0onal ¡C* ¡

Conference ¡on ¡Computer ¡Science ¡and ¡So>ware ¡Engineering ¡2012 ¡

  • J. ¡Zhang ¡and ¡B. ¡Cheng, ¡Model-­‑based ¡development ¡of ¡dynamically ¡adap0ve ¡so>ware, ¡Interna0onal ¡Conference ¡on ¡So>ware ¡Engineering, ¡

ICSE ¡2006 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

  • I. ¡Epifani, ¡C. ¡Ghezzi, ¡R. ¡Mirandola, ¡and ¡G. ¡Tamburrelli. ¡2009. ¡Model ¡evolu0on ¡by ¡run-­‑0me ¡parameter ¡adapta0on, ¡Interna0onal ¡

Conference ¡on ¡So>ware ¡Engineering, ¡ICSE ¡2009 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

  • R. ¡Calinescu, ¡L. ¡Grunske, ¡M. ¡Kwiatkowska, ¡R. ¡Mirandola, ¡and ¡G. ¡Tamburrelli. ¡Dynamic ¡QoS ¡Management ¡and ¡Op0miza0on ¡in ¡Service-­‑

Based ¡Systems, ¡IEEE ¡Transac0ons ¡on ¡So>ware ¡Engineering, ¡TSE ¡2011 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

  • C. ¡Ghezzi, ¡L.S. ¡Pinto, ¡P. ¡Spole0ni, ¡G. ¡Tamburrelli: ¡Managing ¡non-­‑func0onal ¡uncertainty ¡via ¡model-­‑driven ¡adap0vity, ¡Interna0onal ¡

Conference ¡on ¡So>ware ¡Engineering, ¡ICSE ¡2013 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡

  • M. ¡U. ¡I>ikhar, ¡D. ¡Weyns: ¡Ac0vFORMS: ¡ac0ve ¡formal ¡models ¡for ¡self-­‑adapta0on, ¡Interna0onal ¡Symposium ¡in ¡So>ware ¡Engineering ¡of ¡

Adap0ve ¡and ¡Self-­‑Managing ¡Systems, ¡SEAMS ¡2014 ¡ ¡

  • D. ¡Weyns, ¡N. ¡Bencomo, ¡R. ¡Calinescu, ¡J. ¡Camara, ¡C. ¡Ghezzi, ¡V. ¡Grassi, ¡L. ¡Grunske, ¡P. ¡Inverardi, ¡J.M. ¡Jezequel, ¡S. ¡Malek, ¡R. ¡Mirandola, ¡M. ¡

Mori, ¡and ¡G. ¡Tamburrelli, ¡Perpetual ¡Assurances ¡in ¡Self-­‑Adap0ve ¡Systems, ¡Working ¡Group ¡Report ¡-­‑ ¡Dagstuhl ¡Seminar ¡13511, ¡2015 ¡

  • D. ¡Weyns, ¡M. ¡Caporuscio, ¡B. ¡Vogel, ¡A. ¡Kur0, ¡Design ¡for ¡Sustainability ¡= ¡Run0me ¡Adapta0on ¡U ¡Evolu0on, ¡Sustainable ¡Architecture: ¡

Global ¡collabora0on, ¡Requirements, ¡Analysis, ¡SAGRA ¡2015 ¡