D - Lucretius: Foundations for Software Evolution

Transcription

D - Lucretius: Foundations for Software Evolution
Complementing goal models
for adaptive systems
João Pimentel
{ jhcp@cin.ufpe.br}
REQUIREMENTS ENGINEERING LAB
João Pimentel


3rd year Ph.D – UFPE/Brazil
In trento for 1 year


From September 2012
www.cin.ufpe.br/~jhcp
MsC and PhD with Jaelson
10-months
2010-2011
12-months
2012-2013
Agenda




Adaptation metrics
Futurology
Failure policy
From req to arch
4
I.
ADAPTATION
1
METRICS
Comparing different alternatives
Inform the TV
movies schedule
Movies
For Me
Discover the TV
movies schedule
Discover the movies
of Channel A
Display the TV
movies schedule
Discover the movies
of Channel B
List movies on
website
Inform the TV
Parse Channel
movies schedule
A website
Movies
For Me
Discover the movies
of Channel A
Group movies by
day
Display
themovies
TV
Get
movies description
schedule
Discover the TV
movies schedule
Discover the movies
of Channel B
Group movies by
channel
Parse Channel
B website
Get movies date
and time
List movies on
Get
movies
website
picture
Parse Channel
A website
Group movies by
day
Get movies
description
Get movies date
and time
Group movies by
channel
Parse Channel
B website
Get movies
picture
models
components
Criteria:
Reusability, reliability, performance,
maintainability...
decisions
adaptability,
6
how to measure
adaptability?
7
We build on previous work by Submaranian & Chung:
Architecture Adaptability Index (AAI) =
Sum of the Adaptability Index (EAI) of all
architectural elements
Total number of elements of the architecture model
8
…and…
Software Adaptability Index (SAI) =
Sum of the AAI of all architecture models
of the software
Total number of architecture models for that
software
9
But the problem remains: how to define
the adaptability index (EAI) of a
particular element?
10
We propose to
map the metrics to i* (iStar) models
and
use its richer expressiveness to
define EAI
In order to perform the mapping of architectural metrics onto
i*, we use the
i* Metrics Definition Framework method
iMDFM
12
i* Metrics Definition Framework
iMDF
Catalog of
patterns
i* metrics in OCL
Method
13
Catalog of
patterns
i* metrics in OCL
Method
Modeling tool
14
i* Metrics Formulation
Based on the original metrics, the architecture  i* mapping and the iMDF
catalogue of patterns:
Architecture Adaptability Index (AAI) =
AAI ::= self.allActors().eai()->sum()+self.allDependencies().eai()->sum() /
self.allActors()->size() + self.allDependencies()->size()
Software Adaptability Index (SAI) =
SAI ::= allModels().aai()->sum() / allModels()->size()
15
EAI of individual components (SR)
The SR decomposition may help:
Compon
ent A
Compon
ent B
Goal 1
Compon
ent C
Adaptability
M
ak
e
Task 3
Task 1
Task 2
Means-end decomposition
Adaptability
Task 4
Contribution to softgoal
Softgoal-to-task decomposition
16
EAI of individual components: (SD)
Dependencies may identify adaptability too:
(a)
Compon
ent A
Depender
(b)
Goal
dependum
D
D
Compon
ent B
(Soft)goal dependum
Compon
ent C
Dependee
Compon
ent D
Goal 2
D
Task 1
Task 2
Task 3
Resource
Dependum
D
(Soft)goal dependers
17
EAI of individual components (extensions)
Approach
Base
notation
Extension towards
adaptability
Architecture
Lapouchnian
Tropos
Context annotations
Not defined
Ali
Tropos
Context annotations
Not defined
Dalpiaz
Tropos
Context annotations
Recovery activities
Self-reconfiguring
component
Morandini
Tropos
Context annotations
Recovery activities
Fault modeling
Multi-agent
Jian
i*
Context annotations
Runtime adaptation
Not defined
Qureshi
Techne
Runtime adaptation
Service-based
Bencomo
KAOS
Runtime adaptation
Flexibility language
Not defined
Baresi
KAOS
Recovery activities
Service-based
II.
ANTICIPATING
CHANGES WITH
2,3
FUTUROLOGY
Motivation
Adaptation and evolution is great
20
Motivation
However, it is very hard to develop systems that

Adapt to any scenario

Evolve in any way
21
Motivation
If we could see the future...
(sort of)
22
Reduce the gap
Studies of the
Future
Requirements
Engineering
23
Reduce the gap
Studies of the
Future
Requirements
Engineering
24
Definitions



Future event: a future event is an occurrence
that is expected to take place in the future.
Representation of the future: a representation
of the future is a model that describes a set of
future events.
Foresight method: a foresight method is a
means of creating a representation of the future.
25
Classification of foresight methods
Category
Collect judgments from
Experts
Forecast time series and other
quantitative measures
Understand the linkages
between events, trends and
actions
Portray alternative plausible
futures
Method
Delphi
Futures Wheel
Participatory methods
Econometrics forecast
Regression Analysis
Trend Impact Analysis
Structural Analysis
System Dynamics
Agent Modeling
Trend Impact Analysis
Cross Impact Analysis
Relevance Trees
Futures Wheel
Simulation Modeling
Multiple perspectives
Causal Layered Analysis
Field Anomaly Relaxation
Scenarios
Futures Wheel
Simulation and Gaming
Agent Modeling
26
Our proposal

Futures wheel




Provides a clear picture of the future events that
may impact the system;
Easy to be understood and used by stakeholders
Low effort required
i*


Widespread goal modeling language
Provides a suitable mechanism to represent
alternative behaviors of a system
27
Futures wheel
B
X
A
C
Event or trend
Primary
consequences
Y
Secondary
consequences
28
Futures wheel extension
P
B
X
Q
A
C
Y
Z
W
S
29
Integrating futures wheel and goal models

Build extended futures wheel models



Build futures wheel model
For each consequence, analyze how it affects the
system
Adapt goal model


For each direct consequence in the futures wheel
model, analyze how the system can be altered in
order to deal with the consequence
Change the goal model accordingly
30
Process
Futures Wheel
Document Template
(organizational)
Futures Wheel
Document
Template
(project)
Plan Futures
Wheel
Futures Wheel
Document
Perform
Futures Wheel
Futures Wheel
Document
(Updated)
Futures Wheel
Document (Updated)
Define Direct
Consequences
Analyze Direct
Consequences
Futures Wheel
Plan Template
Futures Wheel
Plan
Requirements
Document
31
Case study – original goal model
Inform the TV
movies schedule
Movies
For Me
Display the TV
movies schedule
Discover the TV
movies schedule
Discover the movies
of Channel A
Discover the movies
of Channel B
List movies on
website
Parse Channel
A website
Group movies by
day
Get movies
description
Get movies date
and time
Group movies by
channel
Parse Channel
B website
Get movies
picture
Goal
Task
Actor
Meansends link
Decomposition
link
Legend
32
Case study – futures wheel
More TV
channels
available
Successful
adoption of
Digital
Terrestrial TV
EPG
broadcast
High
Definition
People more
likely to watch
movies on TV
TV
available
in mobile
devices
The system will
need to gather
data from
channels that
don’t exist yet
More people will try
to see the movies
schedule through
mobile devices
People will have
easy access to
information about
the TV schedule
People will
search more for
services that
inform the TV
movies schedule
33
Case study – modified goal model
Inform the TV
movies schedule
Movies
For Me
me
Display the TV
movies schedule
(B)
So m e
+
+
Use sponsored
links
Hu
Use good
keywords
Discover the movies
of Channel A
rt
List movies on
website
Discover the movies
of Channel B
Parse Channel
A website
So
Discover the TV
movies schedule
Be searchengine friendly
Low cost
Portability
Add support for a
new channel
Some +
(A)(F)
Get movies
description
Parse Channel
B website
Get movies date
and time
Get movies
picture
Website for
desktops and
notebooks
Group movies by
channel
So
(C)
me
+
Website for
television devices
Website for
mobile devices
Group movies
by day
Get teaser /
trailer
(E)
label
Goal
Task
Softgoal
Actor
Meansends link
Decomposition
link
Contribution
link
Legend
34
III.
FAILURE POLICY –
THE FAST
4,5
APPROACH
MDC Cycle
Monitor
Compensate
Diagnose
36
MDC Cycle
Monitor
Compensate
Diagnose
failure
37
Different faults, different reactions
“Some faults lead to the unusability of a device or
even to catastrophes; some faults can be ignored
or are actually never discovered.”
Bernhard Rinner - Detecting and Diagnosing Faults (2002)
38
39
A failure is...
... the unsuccessfull execution of ...
a task
a service operation
a method
a use case
a goal
...
40
FAST

This framework allows the user to define
conditions on which failures may be ignored


i.e., it won’t trigger a compensation
The conditions are based on the context and on
the number of failures occurrence
41
Policies

Unlike requirements, which are



Somewhat static
Defined at design time
This failure handling specification is


User / installation dependent
Defined at deployment time
42
Failure policy


Context-based

failuresSet isAllowedToFailIf contextExpression

Ex: failureX isAllowedToFailIf
calendar.day=Sunday
Limit of consecutive failures


failuresSet isAllowedToFailAtMost limit
Ex: failureX: failureY isAllowedToFailAtMost 4
43
Fabiano’s component
44
IV.
FROM REQ TO ARCH
(ADAPTIVE
6
SYSTEMS)
STREAM-A (Adaptive)
STREAM
Dalpiaz’
selfadaptation
component
Ali’s
contextual
reasoning
46
STREAM

An approach based on model transformations
that generates architectural models from
requirements models


Source language: i*
Target language: Acme
47
D
D
D
D
D
D
D
D
D
D
D
Modular
Requirements
Models
D
Requirements
Models
Prepare
Requirements
Models
Refined
Architectural
Solution
Select
Architectural
Solution
Generate
Architectural
Solutions
Architectural
Models
Refine
Architecture
Architectural
Solution
Legend:
Work Definition
Decision
Control Flow
Artifact Flow
Start
End
D
D
D
D
D
D
Requirements
Model
Document
Architecture
Model
Guidance
48
BTW: system-to-be
49
50
51
52
Architectural style
53
But what about adaptation?
54
Fabiano’s component (again)
55
STREAM-Adaptive
Original
goal model
Requirements
Refactoring
Modular
goal model
Context
Annotation and
Analysis
Annotated
goal model
Identification of
Sensors and
Actuators
Goal model with adaptiverelated actors
Generate
Architectural
Model
Architectural
model
Refine
Architectural
Model
Architectural model with
sub-components
Include the SelfAdaptation
Component
Final
architectural
model
56
C6: The temperature at the room is
hotter than what would be pleasant for
the people within it, the temperature
outside is colder than the temperature
inside the smart-home and the
windows are closed.
Adaptabil
ity
He
lp
lp
He
He
Hurt
Control
windows
C6
lp
Energy
spent wisely
He
Smart
home
system
Reliability
C1
Temperature
be managed
Control air
ventilator
lp
Hu
Help
Prevent
failures
Hel
p
Control
Heating Device
rt
C22
He
lp
Select best
behaviour according
to the environment
C9
C10 C22
Lighting be
C11
Turn
off
air
managed
Close
Turn on air
Turn on
ventilator
Turn off
windows
ventilator
heating device
Manage
heating device
He
Control
lighting
lp
Safety
s valves
Manage fire
C4
Select
Occupancy
incident
C15
lighting policy
Help
Control
simulation
Close gas
lights
14
Control
Lighting
by
valves
C12
Control
alarm
gas
occupancy
Turn on
doors lock
C13
Control power
es
C20
lights
C21
C16 C17
outlets
Activate
Turn off
Deactivate
C18
alarm
lights
C19
Lock
Entertain
Unlock
alarm
doors
C7
C8
Help
Open
windows
Hel
p
57
Play music
Turn on
lights
D
Environment
monitored
D
D
D D D
D
Direct sound
only to occupied
rooms
Customiz
ation
D
D
Turn off
lights
D
Turn on
heating device
D
Preferen
ce
manager
D
Communi
cation
D
D
D
D
Get musical
preferences
Turn off
heating device
D
D
D
Notify fire
department
D
Get
preferences
Notify
tenants
D
Store food
consumption data
Get food
stock status
Get food
stock status
D
D
D
D
D
Lock
doors
D
D
Unlock
doors
D
Activate
power outlets
Invite friend
Request
restaurant meal
D
D
Deactivate
power outlets
D
D
Open
windows
D D D D D D D
Close
windows
Fast
response
D
Open gas
valves
D
D
Close gas
valves
D
D
D
D
D
D
D
Turn off air
ventilator
Smart
home
system
D
Turn on air
ventilator
D
Actuator
D
D
D
D D D D D D D
Monitor
Store medicine
consumption data
Data
storage
request meal
from restaurant
get food
stock status
get food
stock status
Data storage
get
preferences
invite
friend
Communication
fast
response
store food
consumption data
Smart home
system
store medicine
consumption data
notify fire
department
notify
tenants
get musical
preferences
environment
monitored
Preference
manager
customization
actuations
Monitor
Indoor air
temperature
sensor
Actuator
Internet
connection
verifier
Magnetic door
locks sensor
RFID stock
supply detector
Ionization-based
smoke sensor
Magnetic
windows sensor
Passive infrared
presence detector
Photosensor
Semiconductor
gas leak detector
Clock
Windows
actuator
Lights
actuator
Alarm
actuator
Heating
actuator
Music
actuator
Air ventilator
actuator
Gas valves
actuator
Power outlets
actuator
Doors
actuator
59
request meal
from restaurant
get food
stock status
get food
stock status
Data storage
Smart home
system
system
pushes
Communication
notify fire
department
Self-adaptation
actuations
Actuator
Windows
actuator
Diagnoser
environment
monitored
actuations
Compensator
Monitor
Preference
manager
customization
Monitor
Indoor air
temperature
sensor
notify
tenants
get musical
preferences
log
environment
monitored
invite
friend
fast
response
store food
consumption data
store medicine
consumption data
get
preferences
Lights
actuator
Alarm
actuator
Heating
actuator
Music
actuator
Air ventilator
actuator
Gas valves
actuator
Power outlets
actuator
Doors
actuator
Internet
connection
verifier
MDC cycle


Magnetic door
locks sensor
RFID stock
supply detector
Ionization-based
smoke sensor
Magnetic
windows sensor
Passive infrared
presence detector
Photosensor
Provided port
Clock
Required port
Semiconductor
gas leak detector


Monitor
Diagnose
Compesate
60
Thanks!
References
1.
2.
3.
4.
5.
6.
Pimentel, J., Franch, X., Castro, J. Measuring Architectural Adaptability in i* Models.
CIbSE 2011
Pimentel, J., Santos, E. Castro, J., Franch, X. Anticipating Requirements Changes - Using
Futurology in Requirements Elicitation. International Journal of Information System
Modeling and Design
Pimentel, J., Castro, J., Perrelli, H., Santos, E., Franch, X. Towards Anticipating
Requirements Changes through Studies of the Future. RCIS 2011
Pimentel, J., Castro, J., Franch, X. Specification of Failure-Handling Requirements as
Policy Rules on Self-Adaptive Systems. WER 2011
Pimentel, J., Santos, E., Castro, J. Conditions for ignoring failures based on a
requirements model. SEKE 2010
Pimentel, J., Lucena, M, Castro, J., Silva, C., Alencar, F., Santos, E.Deriving Adaptable
Software Architectures from Requirements Models: The STREAM-A approach.
Requirements Engineering Journal