Engineering ¡Self-‑Adap0ve ¡Systems ¡– ¡ An ¡Architectural ¡Perspec0ve ¡
Danny ¡Weyns ¡ ¡ Automated ¡So>ware ¡Engineering ¡– ¡ASE ¡ ¡ Lincoln, ¡Nebraska ¡November ¡9, ¡2015 ¡
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
Engineering ¡Self-‑Adap0ve ¡Systems ¡– ¡ An ¡Architectural ¡Perspec0ve ¡
Danny ¡Weyns ¡ ¡ Automated ¡So>ware ¡Engineering ¡– ¡ASE ¡ ¡ Lincoln, ¡Nebraska ¡November ¡9, ¡2015 ¡
Linnaeus ¡University ¡ ¡ Växjö, ¡Sweden ¡ KU ¡Leuven ¡ Belgium ¡ Lincoln, ¡Nebraska ¡
architectures ¡for ¡mul0-‑agent ¡systems ¡
so>ware ¡architecture ¡and ¡self-‑adapta0on ¡
– Handling ¡mul0ple ¡concerns ¡in ¡self-‑adap0ve ¡systems ¡ – Applying ¡control ¡theory ¡to ¡adapt ¡so>ware ¡ – Executable ¡formal ¡models ¡for ¡self-‑adapta0on ¡ ¡
¡
adapta0on; ¡
¡and ¡assurances ¡and ¡how ¡self-‑adapta0on ¡can ¡ help ¡to ¡tackle ¡this; ¡ ¡
¡domain ¡of ¡self-‑adap0ve ¡systems. ¡
adapta0on ¡
and ¡run0me ¡ ¡
Blurring ¡boundaries ¡design ¡and ¡run0me ¡ ¡
– 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 ¡ ¡ – … ¡ ¡
Blurring ¡boundaries ¡design ¡and ¡run0me ¡ ¡
– Modern ¡so>ware ¡systems ¡o>en ¡have ¡to ¡operate ¡ under ¡highly ¡dynamic ¡condi0ons ¡ ¡ – These ¡condi0ons ¡introduce ¡uncertain0es ¡
¡ ¡
¡
Blurring ¡boundaries ¡design ¡and ¡run0me ¡ ¡
design ¡0me ¡ ¡
is ¡handled ¡at ¡run0me ¡
Blurring ¡boundaries ¡design ¡and ¡run0me ¡ ¡
¡
Blurring ¡boundaries ¡design ¡and ¡run0me ¡ ¡
¡
Development ¡ ¡ Running ¡ Evolu0on ¡ Running ¡ Running ¡ Evolu0on ¡
Blurring ¡boundaries ¡design ¡and ¡run0me ¡ ¡
Development ¡ ¡ Running ¡ Evolu0on ¡ Running ¡ Running ¡ Evolu0on ¡ Human-‑driven ¡
Machine-‑driven ¡
Blurring ¡boundaries ¡design ¡and ¡run0me ¡ ¡
How ¡to ¡engineer ¡such ¡systems ¡and ¡ guarantee ¡the ¡required ¡system ¡goals? ¡ ¡ ¡
and ¡run0me ¡ ¡
¡
deal ¡with ¡uncertainty ¡and ¡business ¡con0nuity ¡
run0me, ¡reason ¡about ¡itself ¡and ¡its ¡context ¡ and ¡adapt ¡to ¡realize ¡goals ¡
Environment ¡
input ¡ effect ¡ Non-‑controllable ¡so>ware, ¡ ¡ hardware, ¡network, ¡physical ¡context ¡
So>ware ¡system ¡
Environment ¡
input ¡ effect ¡ Non-‑controllable ¡so>ware, ¡ ¡ hardware, ¡network, ¡physical ¡context ¡
Self-‑adap0ve ¡so>ware ¡system ¡
Managed ¡system ¡ Managing ¡system ¡ Self-‑adap0ve ¡so>ware ¡system ¡
monitor ¡ adapt ¡ Controllable ¡so>ware ¡ monitor ¡
Environment ¡
input ¡ effect ¡ Non-‑controllable ¡so>ware, ¡ ¡ hardware, ¡network, ¡physical ¡context ¡
capability ¡
¡
– Legacy ¡systems ¡
par0cular ¡types ¡of ¡failures ¡ ¡
– Greenfield ¡design ¡
system ¡ ¡
– Architecture-‑based ¡approaches: ¡managing ¡system ¡exploits ¡ architectural ¡model ¡of ¡system ¡under ¡adapta0on ¡ ¡ – Control-‑theory ¡based ¡approaches: ¡controller ¡design ¡based ¡
– Self-‑organizing ¡approaches: ¡adapta0on ¡based ¡on ¡local ¡ interac0ons ¡of ¡en00es ¡typically ¡with ¡emergent ¡behavior ¡
system ¡ ¡
– Architecture-‑based ¡approaches: ¡managing ¡system ¡exploits ¡ architectural ¡model ¡of ¡system ¡under ¡adapta0on ¡ ¡ – Control-‑theory ¡based ¡approaches: ¡controller ¡design ¡based ¡
– Self-‑organizing ¡approaches: ¡adapta0on ¡based ¡on ¡local ¡ interac0ons ¡of ¡en00es ¡typically ¡with ¡emergent ¡behavior ¡
¡ Architecture-‑based ¡self-‑adapta0on ¡ ¡
¡ ¡
Control-‑based ¡self-‑adapta0on ¡ ¡
Target ¡system ¡ Controller ¡ disturbance ¡input ¡ reference ¡ input ¡
Transducer ¡ Managed ¡system ¡ Environment ¡ Managing ¡system ¡ effect ¡ adapt ¡ monitor ¡ control ¡
Managed ¡system ¡ Environment ¡ Managing ¡system ¡ effect ¡ adapt ¡ monitor ¡
¡
Managing ¡system ¡
Composed ¡of ¡components ¡that ¡realize ¡ adapta0on ¡func0ons ¡ Components ¡share ¡run0me ¡models ¡of: ¡
¡ Managed ¡system ¡
Provide ¡features ¡for ¡monitoring ¡and ¡ performing ¡adapta0on ¡ac0ons ¡
– 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 ¡ ¡
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 MeasuredMB C(z) P(z) ˜ µ +
Control (normal) mode Model Building modeη µ −
Control-‑based ¡Approaches ¡
and ¡run0me ¡ ¡
hence ¡deal ¡with ¡it ¡when ¡the ¡knowledge ¡becomes ¡available ¡ ¡
deal ¡with ¡adapta0on ¡ ¡
adapta0on ¡concerns ¡
– External ¡control ¡mechanisms ¡provide ¡a ¡more ¡effec0ve ¡engineering ¡ solu0on ¡than ¡internal ¡mechanisms ¡for ¡self-‑adapta0on* ¡
¡
*D. ¡Garlan, ¡S-‑W. ¡Cheng, ¡A.C. ¡Huang, ¡B. ¡Schmerl, ¡P. ¡Steenkiste, ¡Rainbow: ¡Architecture-‑ ¡Based ¡Self-‑ Adapta0on ¡with ¡Reusable ¡Infrastructure, ¡IEEE ¡Computer, ¡October ¡2004 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡
adapta0on ¡
Architecture-‑based ¡Approaches ¡to ¡ Self-‑adapta0on ¡
retain ¡full ¡plas0city ¡throughout ¡their ¡lifecycle ¡and ¡that ¡ are ¡as ¡easy ¡to ¡modify ¡in ¡the ¡field ¡as ¡they ¡are ¡on ¡the ¡ drawing ¡board.” ¡ ¡
for ¡achieving ¡this ¡goal ¡… ¡while ¡each ¡contributes ¡to ¡the ¡ goal, ¡the ¡sum ¡total ¡s0ll ¡falls ¡short.” ¡ ¡
¡
Wolf, ¡An ¡Architecture-‑Based ¡Approach ¡to ¡Self-‑Adap0ve ¡So>ware, ¡IEEE ¡Intelligent ¡Systems, ¡May/June ¡1999 ¡
¡
¡Adapta0on ¡management ¡
¡Life ¡cycle ¡of ¡self-‑adapta0on ¡
¡ ¡
¡
¡Evolu0on ¡management ¡
¡Change ¡of ¡applica0on ¡so>ware ¡
¡
¡Adapta0on ¡management ¡
¡Life ¡cycle ¡of ¡self-‑adapta0on ¡
¡ ¡
Observing ¡and ¡evalua0ng ¡ applica0on’s ¡execu0on ¡
¡E.g., ¡performance ¡monitoring, ¡ safety ¡inspec0ons, ¡constraint ¡ verifica0on ¡ ¡ ¡
Accep0ng ¡the ¡evalua0ons ¡
¡Defining ¡an ¡appropriate ¡ adapta0on ¡
¡Construc0ng ¡a ¡blueprint ¡for ¡ execu0ng ¡that ¡adapta0on. ¡ ¡
Coordinated ¡conveyance ¡of: ¡ ¡ ¡
change ¡descrip0ons ¡ ¡
possibly ¡new ¡observers ¡or ¡ evaluators ¡
¡
¡Evolu0on ¡management ¡
¡Change ¡of ¡applica0on ¡so>ware ¡
Changes ¡to ¡the ¡architectural ¡ model ¡are ¡consistently ¡reflected ¡ in ¡modifica0ons ¡to ¡the ¡ applica0on’s ¡implementa0on ¡
Feeds ¡informa0on ¡back ¡to ¡ adapta0on ¡management ¡
– Run0me ¡architecture ¡model ¡ ¡ – Adapta0on ¡management ¡as ¡separate ¡concern ¡ – Integra0on ¡of ¡adapta0on ¡and ¡evolu0on ¡ – Distributed ¡perspec0ve ¡ ¡
– Conceptual ¡model ¡ ¡ – Run0me ¡model ¡focus ¡on ¡managed ¡system ¡ – Goals ¡and ¡uncertain0es ¡not ¡first ¡class ¡ci0zens ¡ ¡ – Focus ¡on ¡consistency ¡and ¡system ¡integrity ¡ ¡
Architecture-‑based ¡Approaches ¡to ¡ Self-‑adapta0on ¡
administrator’s ¡goals.” ¡ ¡
cell ¡establishes ¡itself ¡in ¡the ¡human ¡body.” ¡ ¡
the ¡grand ¡challenge ¡to ¡create ¡self-‑managing ¡ compu0ng ¡systems.” ¡ ¡ ¡
Kephart ¡and ¡Chess, ¡The ¡Vision ¡of ¡Autonomic ¡Compu0ng, ¡IEEE ¡Computer, ¡January ¡2003 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡
¡
Autonomic ¡manager ¡
Relieves ¡humans ¡of ¡responsibility ¡
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
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 ¡
Autonomic manager Knowledge Managed element Analyze Plan Monitor Execute
Collects ¡data ¡from ¡the ¡managed ¡ element ¡and ¡its ¡execu0on ¡context ¡ to ¡update ¡the ¡Knowledge. ¡ ¡
Autonomic manager Knowledge Managed element Analyze Plan Monitor Execute
Determines ¡whether ¡adapta0on ¡ ac0ons ¡are ¡required ¡based ¡on ¡ the ¡collected ¡data ¡and ¡ adapta0on ¡goals ¡
Autonomic manager Knowledge Managed element Analyze Plan Monitor Execute
Responsible ¡for ¡planning ¡ mi0ga0on ¡ac0ons ¡to ¡adapt ¡the ¡ managed ¡element ¡when ¡needed ¡ ¡
Autonomic manager Knowledge Managed element Analyze Plan Monitor Execute
Is ¡responsible ¡for ¡execu0ng ¡the ¡ adapta0on ¡ac0ons ¡of ¡the ¡ generated ¡plan ¡ ¡
– Primary ¡func0ons ¡of ¡self-‑adapta0on ¡and ¡their ¡interac0ons ¡ – Design ¡= ¡mapping ¡of ¡MAPE ¡func0ons ¡to ¡components ¡ ¡ – Four ¡classes ¡of ¡self-‑management ¡
– Knowledge ¡abstractly ¡defined ¡ ¡ ¡ – Interac0on ¡with ¡human ¡administrator ¡implicit ¡ ¡ – Rela0onships ¡among ¡autonomic ¡elements ¡implicit ¡ – Controlling ¡hardware ¡versus ¡controlling ¡so>ware ¡
Architecture-‑based ¡Approaches ¡to ¡ Self-‑adapta0on ¡
so>ware ¡systems.” ¡ ¡
the ¡explicit ¡specifica0on ¡of ¡adapta0on ¡strategies.” ¡ ¡
make ¡topological ¡and ¡behavioral ¡constraints ¡explicit, ¡ establishing ¡an ¡envelope ¡of ¡allowed ¡changes ¡and ¡ helping ¡to ¡ensure ¡the ¡validity ¡of ¡a ¡change.” ¡ ¡ ¡
Adapta0on ¡with ¡Reusable ¡Infrastructure, ¡IEEE ¡Computer, ¡October ¡2004 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡
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 ¡
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 ¡
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 ¡
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 ¡
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 ¡
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 ¡
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 ¡
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 ¡
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 ¡
adapta0on ¡ ¡
– Maps ¡MAPE-‑K ¡to ¡concrete ¡reusable ¡realiza0on ¡elements ¡ ¡ – Goals ¡realized ¡via ¡invariants; ¡explicit ¡adapta0on ¡strategies ¡ – Importance ¡of ¡probing ¡and ¡effec0ng ¡
– 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 ¡
Architecture-‑based ¡Approaches ¡to ¡ Self-‑adapta0on ¡
automa0cally ¡configure ¡their ¡interac0on ¡in ¡a ¡way ¡that ¡ is ¡compa0ble ¡with ¡an ¡overall ¡architectural ¡ specifica0on ¡and ¡achieves ¡the ¡goals ¡of ¡the ¡system.” ¡ ¡
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 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡
¡
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
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
Set ¡of ¡interconnected ¡ components ¡accomplishing ¡ the ¡applica0on ¡func0on ¡
¡Facili0es ¡to ¡report ¡current ¡ status ¡of ¡components ¡and ¡ perform ¡adapta0ons ¡ Reacts ¡to ¡changes ¡in ¡state ¡
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
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 ¡
execu0on ¡ac0ons ¡to ¡handle ¡ the ¡new ¡situa0on ¡ ¡
– Goals ¡as ¡first-‑class ¡ci0zens ¡ ¡ – Different ¡layers ¡work ¡on ¡different ¡0me ¡scales ¡
– 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 ¡
Architecture-‑based ¡Approaches ¡to ¡ Self-‑adapta0on ¡
FORMS ¡ ¡
FOrmal ¡Reference ¡Model ¡for ¡Self-‑adapta0on ¡ ¡
about ¡key ¡architectural ¡characteris0cs ¡of ¡self-‑adap0ve ¡ systems.” ¡ ¡
perspec0ve ¡on ¡different ¡concerns ¡[of ¡self-‑adapta0on]” ¡ ¡
can ¡be ¡described ¡and ¡reasoned ¡about” ¡
¡
adapta0on ¡
– Reflec0on ¡perspec0ve ¡ ¡ – MAPE-‑K ¡perspec0ve ¡ – Distribu0on ¡perspec0ve ¡
language ¡
FORMS: ¡Running ¡Example ¡ Traffic ¡jam ¡monitoring ¡
72 ¡
¡Dynamic ¡Agent ¡Organza0ons, ¡ACM ¡Transac0on ¡on ¡Autonomous ¡and ¡Adap0ve ¡Systems, ¡5(1):3.1–3.29, ¡2010. ¡ ¡
73 ¡
Running ¡Example: ¡traffic ¡jam ¡monitoring ¡
74 ¡
Running ¡Example: ¡traffic ¡jam ¡monitoring ¡
75 ¡
76 ¡
Self-‑adap0ve ¡system ¡
77 ¡
Self-‑adap0ve ¡system ¡
78 ¡
Environment ¡
79 ¡
Environment ¡
80 ¡
Base-‑Level ¡Subsystem ¡
81 ¡
Base-‑Level ¡Subsystem ¡
82 ¡
Reflec0ve ¡Subsystem ¡
83 ¡
Reflec0ve ¡Subsystem ¡
84 ¡
FORMS ¡Distributed ¡Coordina0on ¡Perspec0ve ¡
85 ¡
FORMS ¡Distributed ¡Coordina0on ¡Perspec0ve ¡
Local ¡Self-‑Adap0ve ¡System ¡
86 ¡
FORMS ¡Distributed ¡Coordina0on ¡Perspec0ve ¡
Local ¡Managed ¡System ¡– ¡Self-‑Adap0ve ¡Unit ¡
87 ¡
FORMS ¡Distributed ¡Coordina0on ¡Perspec0ve ¡
Local ¡Managed ¡System ¡– ¡Self-‑Adap0ve ¡Unit ¡
88 ¡
FORMS ¡Distributed ¡Coordina0on ¡Perspec0ve ¡
Coordina0on ¡Mechanism ¡
89 ¡
ping/echo ¡messages ¡
FORMS ¡Distributed ¡Coordina0on ¡Perspec0ve ¡
Coordina0on ¡Mechanism ¡
90 ¡
91 ¡
FORMS ¡MAPE ¡Perspec0ve ¡
Local ¡Reflec0ve ¡Computa0ons ¡
92 ¡
FORMS ¡MAPE ¡Perspec0ve ¡
Local ¡Reflec0ve ¡Computa0ons ¡
93 ¡
sense ¡ adapt ¡ perceive ¡
FORMS ¡MAPE ¡Perspec0ve ¡
Local ¡Reflec0ve ¡Computa0ons ¡
94 ¡
FORMS ¡MAPE ¡Perspec0ve ¡
Reflec0on ¡Models ¡
95 ¡
FORMS ¡MAPE ¡Perspec0ve ¡
Reflec0on ¡Models ¡
96 ¡
97 ¡
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= ∅
98 ¡
... ¡ ... ¡ ... ¡
99 ¡
... ¡
– Extensible ¡model ¡ – Formal ¡underpinning ¡avoids ¡ambiguity ¡ ¡
– Focus ¡on ¡modeling ¡and ¡reasoning ¡of ¡structural ¡aspects ¡
– Z ¡specifica0ons ¡are ¡easy ¡to ¡read ¡but ¡extensive ¡ ¡ ¡
adapta0on ¡
Assurances ¡for ¡Self-‑adap0ve ¡Systems ¡
adapta0on ¡ ¡
Mo0va0on ¡to ¡Assurances ¡for ¡ Self-‑adapta0on ¡
levels ¡of ¡cri0cality ¡ ¡
– E.g., ¡healthcare, ¡automa0on, ¡defense, ¡etc. ¡ ¡
assurance ¡has ¡become ¡a ¡major ¡concern ¡ ¡ ¡
– From ¡regular ¡tes0ng ¡to ¡formal ¡proofs ¡ ¡ – Focus ¡on ¡specific ¡aspects ¡of ¡the ¡self-‑adap0on ¡ ¡ – Most ¡current ¡approaches ¡rely ¡on ¡formal ¡ techniques ¡ ¡
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 ¡
Assurances ¡for ¡Self-‑adap0ve ¡Systems ¡
systems ¡
adapta0on ¡ ¡
A ¡Selec0on ¡of ¡Formal ¡Approaches ¡to ¡ Architecture-‑based ¡Self-‑adapta0on ¡ ¡
and ¡model ¡transforma0on) ¡
Design ¡Time ¡Verifica0on ¡and ¡Model ¡ Transforma0on ¡
correctly ¡during ¡and ¡a(er ¡adapta0ons ¡ ¡
models, ¡and ¡then ¡generate ¡adap0ve ¡programs ¡ ¡
¡
Conference ¡on ¡So>ware ¡Engineering, ¡ICSE ¡2006 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡
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 ¡
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))
Design ¡Time ¡Verifica0on ¡and ¡ ¡ Model ¡Transforma0on ¡
adapta0on” ¡(temporal ¡restricted ¡mode) ¡and ¡ “overlap ¡adapta0on” ¡(temporal ¡parallel) ¡ ¡
– adapt ¡transi0on ¡is ¡mapped ¡to ¡adapt ¡func0on ¡
model ¡is ¡correctly ¡implemented ¡
A ¡Selec0on ¡of ¡Formal ¡Approaches ¡to ¡ Architecture-‑based ¡Self-‑adapta0on ¡ ¡
and ¡model ¡transforma0on) ¡
parameters ¡may ¡change ¡over ¡0me ¡
from ¡the ¡running ¡system ¡
¡
adapta0on, ¡Interna0onal ¡Conference ¡on ¡So>ware ¡Engineering, ¡ICSE ¡2009 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡
with ¡Discrete ¡Time ¡Markov ¡Chains ¡
Modeling Initial Estimates Implementation Bayesian Estimation Refined Estimates Runtime Data QoS Requirements
TAS ¡process ¡
probabili0es ¡to ¡service ¡invoca0ons ¡ ¡
– The ¡probability ¡P1 ¡that ¡no ¡failures ¡ever ¡
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
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
A ¡Selec0on ¡of ¡Formal ¡Approaches ¡to ¡ Architecture-‑based ¡Self-‑adapta0on ¡ ¡
and ¡model ¡transforma0on) ¡
Quan0ta0ve ¡Verifica0on ¡at ¡Run0me ¡
adap0on ¡of ¡the ¡(Markovian) ¡QoS ¡models ¡ ¡
probabilis0c ¡temporal ¡logics ¡
assignment ¡
¡
and ¡Op0miza0on ¡in ¡Service-‑Based ¡Systems, ¡IEEE ¡Transac0ons ¡on ¡So>ware ¡Engineering, ¡TSE ¡2011 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡
Quan0ta0ve ¡Verifica0on ¡at ¡Run0me ¡
(e.g., ¡failure ¡rate) ¡+ ¡workload ¡and ¡allocated ¡resources ¡ ¡
Quan0ta0ve ¡Verifica0on ¡at ¡Run0me ¡
Quan0ta0ve ¡Verifica0on ¡at ¡Run0me ¡
¡
Quan0ta0ve ¡Verifica0on ¡at ¡Run0me ¡
¡
migrate ¡virtual ¡machines, ¡or ¡use ¡dedicated ¡resource ¡management ¡mechanisms ¡
A ¡Selec0on ¡of ¡Formal ¡Approaches ¡to ¡ Architecture-‑based ¡Self-‑adapta0on ¡ ¡
and ¡model ¡transforma0on) ¡
state ¡automaton ¡augmented ¡with ¡probabili0es ¡
components ¡associated ¡to ¡states ¡it ¡traverses ¡
automaton ¡maximizing ¡the ¡system’s ¡u0lity ¡ ¡ ¡
¡
adap0vity, ¡Interna0onal ¡Conference ¡on ¡So>ware ¡Engineering, ¡ICSE ¡2013 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡
¡
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=18
RT=0.6s E=2 U=16a 12 e f 13
RT=0s E=1 U=0 0.7 0.35a 5b
RT=0s E=1 U=0d Developer UML Activity Diagrams Implementations
invokes executes uses annotates designs uses Embedded Model … … … … … … Interpreter PRISM uses Generator
A ¡Selec0on ¡of ¡Formal ¡Approaches ¡to ¡ Architecture-‑based ¡Self-‑adapta0on ¡ ¡
and ¡model ¡transforma0on) ¡
¡
(compared ¡to ¡QoS ¡requirements) ¡ ¡
verifica0on ¡ ¡
¡
in ¡So>ware ¡Engineering ¡of ¡Adap0ve ¡and ¡Self-‑Managing ¡Systems, ¡SEAMS ¡2014 ¡ ¡
Executable ¡ Formal ¡Models ¡
Executable ¡ Formal ¡Models ¡
Digital ¡Story ¡Telling ¡Applica0on ¡ ¡
Digital ¡Story ¡Telling ¡Applica0on ¡ ¡
//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
... } Algorithm;
P2r MonitorRatings.PhotoPickedByUser --> Analyze.AlgorithmsSorted P2s MonitorGPS.ChangeGPS_Status --> Analyze.GPS_FlickrStatusAnalyzed P3 Analyze.AdaptationNeeded --> Planning.CreatePlan
Digital ¡Story ¡Telling ¡Applica0on ¡ ¡
//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
... } Algorithm;
P8 A[] currentNbOfAlgsUsed==5
P2r MonitorRatings.PhotoPickedByUser --> Analyze.AlgorithmsSorted P2s MonitorGPS.ChangeGPS_Status --> Analyze.GPS_FlickrStatusAnalyzed P3 Analyze.AdaptationNeeded --> Planning.CreatePlan
Digital ¡Story ¡Telling ¡Applica0on ¡ ¡
//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
... } Algorithm;
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]! LMVDSHPlan(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 ¡ ¡
Assurances ¡for ¡Self-‑adap0ve ¡Systems ¡
adapta0on ¡ ¡
“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.” ¡ ¡
Working ¡Group ¡Report ¡-‑ ¡Dagstuhl ¡Seminar ¡13511, ¡2015 ¡
¡
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.
working ¡reality ¡for ¡perpetual ¡assurances ¡
Group Approaches
Human-driven approaches
System-driven approaches
Hybrid approaches
– How ¡to ¡collect ¡assurance ¡evidence ¡arguments ¡at ¡ run0me ¡and ¡compose ¡them ¡with ¡the ¡evidence ¡ acquired ¡throughout ¡the ¡life0me ¡of ¡the ¡system? ¡
– How ¡to ¡make ¡solu0ons ¡efficient ¡and ¡support ¡the ¡ interchange ¡of ¡evidence ¡arguments ¡between ¡the ¡ system ¡and ¡users ¡ ¡
adapta0on ¡
Sustainability ¡of ¡so>ware ¡systems ¡requires ¡design ¡for ¡sustainability ¡
Sustainable ¡Architecture: ¡Global ¡collabora0on, ¡Requirements, ¡Analysis, ¡SAGRA ¡2015 ¡
¡ ¡ ¡ ¡ ¡Design ¡for ¡Reuse ¡ ¡
are ¡the ¡changing ¡parts ¡
evolu0on ¡as ¡drivers ¡in ¡so>ware ¡design ¡ ¡ ¡
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) ¡
¡
model ¡
keep ¡sa0sfying ¡goals ¡
handle ¡goal ¡changes ¡ ¡
[Oreizy ¡et ¡al. ¡1999] ¡
keep ¡sa0sfying ¡goals ¡
handle ¡goal ¡changes ¡ ¡
Running ¡ robot ¡code ¡ Reflec0ve ¡model ¡ for ¡env. ¡explora0on ¡ Robot ¡code ¡ Architectural ¡views ¡ robot ¡system ¡ ¡
[Oreizy ¡et ¡al. ¡1999] ¡
keep ¡sa0sfying ¡goals ¡
handle ¡goal ¡changes ¡ ¡
[Oreizy ¡et ¡al. ¡1999] ¡
keep ¡sa0sfying ¡goals ¡
handle ¡goal ¡changes ¡ ¡
new ¡roadmap ¡
[Oreizy ¡et ¡al. ¡1999] ¡
keep ¡sa0sfying ¡goals ¡
handle ¡goal ¡changes ¡ ¡
new ¡roadmap ¡
[Oreizy ¡et ¡al. ¡1999] ¡
keep ¡sa0sfying ¡goals ¡
handle ¡goal ¡changes ¡ ¡
new ¡roadmap ¡
[Oreizy ¡et ¡al. ¡1999] ¡
keep ¡sa0sfying ¡goals ¡
handle ¡goal ¡changes ¡ ¡
new ¡roadmap ¡
[Oreizy ¡et ¡al. ¡1999] ¡
keep ¡sa0sfying ¡goals ¡
handle ¡goal ¡changes ¡ ¡
new ¡roadmap ¡
AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡
AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡
Unforeseen ¡barrier ¡
AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡
Unforeseen ¡barrier ¡
AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡
Unforeseen ¡barrier ¡
AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡
Unforeseen ¡barrier ¡
AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡
Unforeseen ¡barrier ¡ Revise ¡mission ¡
AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡
Unforeseen ¡barrier ¡ Revise ¡mission ¡
AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡
Unforeseen ¡barrier ¡ Revise ¡mission ¡
AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡
Unforeseen ¡barrier ¡ Revise ¡mission ¡
AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡
Unforeseen ¡barrier ¡ Revise ¡mission ¡ Change ¡adapta0on ¡plan ¡ Update ¡mission ¡
AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡
AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡
Reduce ¡speed ¡for ¡risk ¡
AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡
Reduce ¡speed ¡for ¡risk ¡
AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡
Reduce ¡speed ¡for ¡risk ¡
AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡
Reduce ¡speed ¡for ¡risk ¡ Revise ¡strategy ¡ for ¡mission ¡
AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡
Reduce ¡speed ¡for ¡risk ¡ Revise ¡strategy ¡ for ¡mission ¡
AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡
Reduce ¡speed ¡for ¡risk ¡ Revise ¡strategy ¡ for ¡mission ¡ Update ¡strategy ¡ for ¡mission ¡ Update ¡ adapta0on ¡logic ¡
AdEpS ¡model: ¡Interac0ng ¡processes ¡at ¡work ¡ ¡
Engineering ¡principles ¡for ¡ ¡ Design ¡for ¡Sustainability ¡
can ¡handle ¡change ¡through ¡run0me ¡ adapta0on ¡and ¡evolu0on ¡in ¡an ¡integrated ¡way ¡ ¡
adhere ¡to ¡the ¡AdEpS ¡model ¡ ¡
Engineering ¡principles ¡for ¡ ¡ Design ¡for ¡Sustainability ¡
can ¡handle ¡change ¡through ¡run0me ¡ adapta0on ¡and ¡evolu0on ¡in ¡an ¡integrated ¡way ¡ ¡
adhere ¡to ¡the ¡AdEpS ¡model ¡ ¡
To ¡serve ¡as ¡managed ¡systems ¡
Engineering ¡principles ¡for ¡ ¡ Design ¡for ¡Sustainability ¡
– Par0cular ¡facets ¡of ¡“support ¡for ¡run0me ¡change” ¡ ¡ – Or ¡specific ¡families ¡of ¡applica0ons ¡ ¡
way ¡we ¡realize ¡so>ware ¡systems” ¡ ¡
as ¡a ¡primary ¡concern, ¡rather ¡than ¡an ¡add-‑on ¡ ¡
Engineering ¡principles ¡for ¡ ¡ Design ¡for ¡Sustainability ¡
– Design ¡for ¡variability ¡& ¡meta-‑variability ¡ ¡ – Design ¡for ¡probing ¡ ¡ – Design ¡for ¡controlled ¡change ¡
– Examples ¡
Design ¡for ¡variability ¡& ¡meta-‑variability ¡ ¡
variability ¡as ¡an ¡integrated ¡property ¡
– 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 ¡
changes ¡of ¡variability ¡mechanisms ¡themselves ¡ ¡
Design ¡for ¡probing ¡
integrated ¡facili0es ¡for ¡probing ¡their ¡behavior ¡
– Component ¡model: ¡define ¡elements ¡as ¡monitor-‑able ¡ – Programming ¡language: ¡declare ¡the ¡behavior ¡of ¡parts ¡
– Execu0on ¡environment ¡tracks ¡the ¡behavior ¡and ¡allows ¡ accessing ¡the ¡data ¡ ¡
e.g., ¡filtering ¡noise, ¡probabilis0c ¡models ¡
Design ¡for ¡controlled ¡change ¡
systems ¡with ¡facili0es ¡for ¡enac0ng ¡changes ¡
– 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 ¡ ¡
effect ¡changes, ¡acknowledging ¡change ¡ac0ons, ¡etc. ¡ ¡
Design ¡for ¡Sustainability: ¡Some ¡Reflec0ons ¡
build ¡and ¡operate ¡so>ware ¡ ¡
– 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? ¡ ¡
adapta0on; ¡
and ¡assurances ¡and ¡how ¡self-‑adapta0on ¡can ¡ help ¡to ¡tackle ¡this; ¡ ¡
domain ¡of ¡self-‑adap0ve ¡systems. ¡
– hsps://www.hpi.uni-‑potsdam.de/giese/public/selfadapt/ ¡
Systems, ¡Requirements ¡Engineering ¡2009 ¡
Conference ¡on ¡So>ware ¡Engineering, ¡ICSE ¡2014 ¡
exemplar, ¡Control ¡Theory ¡and ¡So>ware ¡Engineering, ¡CTSE ¡2015 ¡ ¡
Approach ¡to ¡Self-‑Adap0ve ¡So>ware, ¡IEEE ¡Intelligent ¡Systems, ¡May/June ¡1999 ¡
Infrastructure, ¡IEEE ¡Computer, ¡October ¡2004 ¡ ¡ ¡ ¡ ¡ ¡
et ¡al., ¡Special ¡Issue ¡on ¡State ¡of ¡the ¡Art ¡in ¡Self-‑Adap0ve ¡Systems, ¡Vol. ¡85(12), ¡December ¡2012 ¡ ¡ ¡ ¡ ¡ ¡ ¡
Adap0ve ¡Systems, ¡TAAS ¡7(1), ¡2012 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡
Organza0ons, ¡ACM ¡Transac0on ¡on ¡Autonomous ¡and ¡Adap0ve ¡Systems, ¡5(1), ¡2010. ¡
Conference ¡on ¡Computer ¡Science ¡and ¡So>ware ¡Engineering ¡2012 ¡
ICSE ¡2006 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡
Conference ¡on ¡So>ware ¡Engineering, ¡ICSE ¡2009 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡
Based ¡Systems, ¡IEEE ¡Transac0ons ¡on ¡So>ware ¡Engineering, ¡TSE ¡2011 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡
Conference ¡on ¡So>ware ¡Engineering, ¡ICSE ¡2013 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡
Adap0ve ¡and ¡Self-‑Managing ¡Systems, ¡SEAMS ¡2014 ¡ ¡
Mori, ¡and ¡G. ¡Tamburrelli, ¡Perpetual ¡Assurances ¡in ¡Self-‑Adap0ve ¡Systems, ¡Working ¡Group ¡Report ¡-‑ ¡Dagstuhl ¡Seminar ¡13511, ¡2015 ¡
Global ¡collabora0on, ¡Requirements, ¡Analysis, ¡SAGRA ¡2015 ¡