1
On Modeling and Testing!
When Unpredictability Becomes the Pattern
Benoit Baudry and Benoit Combemale
(with the help and the slides of Mathieu Acher, Olivier Barais, Arnaud
Blouin, Johann Bourcier, Jean-Marc Jézéquel, and Noël Plouzeau)
Keynote at CIEL 2013, April 2nd, 2013
http://people.irisa.fr/Benoit.Combemale/ciel2013
Triskell research group
2
Triskell team (env. 40 people)
-  8 faculty members
-  1 Research Engineer
-  ~20 PhD students
-  ~3 Software Engineers
-  ~2 Post doc
3
meta-meta
OSGi
requirements
Arduino
access
control
deadline
CSU
ICSE
Kermeta
deadline
 proposal
zimbra
café?
café?
cloud
NESSoS
CIFRE
deadline
MODELS
pattern
process
ESIR
seminar
SVN
AOC
contrat
doctoral
INRIA
ISTIC
 model
runtime
semantics
café?
deadline
capitalize
& co.
proceedings
thesis
meta
IRISA
Git
MDE
MDE
 GEMOC
model
Diversity
ACO
MDE!
Triskell’s Research Foundations / Topics
4
MDE
RE,
runtime
V&V
Our vision:
Aspect Oriented Model Driven Engineering
5
Distribution
Fault tolerance
Security
Functional behavior
Book
state : String
User
borrow
return
deliver
setDamaged
reser
ve
Use case model
Platform
Model
Design
Model
Code
Model
AOMDE = Pleonasm because
a Model is an Abstraction of an Aspect
of Reality for a given Purpose
Change one Aspect and
Automatically Re-Weave:
From Software Product Lines…
..to Dynamically Adaptive Systems
"DSLs are far more prevalent
than anticipated" 
[Hutchinson et al., ICSE’11]
The Kermeta Language Workbench [SoSyM’13]
•  Offer a generic solution covering most model manipulation needs
•  Goals: 
•  Design of DSML: modular and safe 
•  Implementation of DSML: scalable, interoperable and efficient @ runtime
Editors
(textuals, graphicals, …)
Documentation generators
Test generators
Simulators
Analyzers
Refactoring
Checkers
(static & dynamics)
Translators
Compilers
Code generators
Etc.
The Kermeta Language Workbench [SoSyM’13]
• Modular design of DSMLs
•  One meta-language per language concern (require)
•  Ecore, OCL, Kermeta Action Language
•  But also: QVTo, fUML, Alf, Ket, Xsd… 
•  Static introduction mechanism (aspect)
• Efficient implementation of DSMLs
•  Mashup of the meta-languages to efficient bytecode
•  Integrated with third-party tools (EMF compliant)
• Current investigations: precise metamodeling, modeling in the
large, language family, multi-platforms, model comprehension…
 MDE for SLE; and SLE for MDE
 -
7
Triskell’s Software development
8
Kermeta workbench
-  Kermeta language, model typing, compiler
-  IDE
-  MDKs (e.g., KET, Kompren)
Pramana,
Pacogen
Kompose,
GEMOC
(with CSU)
KCVL,
Kevoree
IoT / IoS, cloud, requirements, security, process, home
automation, software product lines, interoperability
Context
9
Software
intensive
systems
Context
10
Open
environments
Heterogeneous
environments
Distributed
systems
Dynamic
systems
Software
intensive
systems
Open
environments
Heterogeneous
environments
Distributed
systems
Dynamic
systems
Software
intensive
systems
Context
11
On Modeling
and Testing?
Open
environments
Heterogeneous
environments
Distributed
systems
Dynamic
systems
Software
intensive
systems
Context
12
Which models?
Which formalisms?
Which processes?
Which theories?
Which experiments?
Context
• Complex (Adaptive) Software-intensive Systems
• Cyber-Physical Systems,
• System of Systems, Ultra Large-scale System,
• Smart City, Smart Building, Home automation,
• Internet of Services, and Internet of Things…

 Openness (from requirements to runtime)
 The whole life cycle of systems are unpredictable!
 How fit systematic “patterns” introduced by SE approaches?
 Future of Modeling and Testing?
13
14
The vision shaped!
15
"In Yellowstone's geyser basins,
unpredictability is the pattern.
Old Faithful's relatively predictable intervals 
are the exception."
Objectives of the talk
• Propose a vision for modeling and testing,
where unpredictability IS the pattern
• Explore the relationships between research
fields and provide an original corresponding
survey
• Present some of the current relative challenges,
projects, initiatives, standards, etc.
16
Subjective authors' point of view * !!

* No possible damage for your health 
On Modeling and Testing!
When Unpredictability Becomes the Pattern
17
Unpredictability
as a Pattern
Imposed
Unpredictability
Heterogeneity
Management
Variability
Management
Chosen
Unpredictability
Software
Diversification
Variability Management!
From SPL to DAS using MDE
Model Driven Engineering…
19
Distribution
« Service Provider
Manager »
Notification
Alternate Manager
« Recovery Block
Manager »
Complaint
Recovery Block
Manager
« Service
Provider
Manager »
Notification
Manager
« Service Provider
Manager »
Complaint Alternate
Manager
« Service
Provider
Manager »
Complaint
Manager
« Acceptance
Test Manager »
Notification
Acceptance Test
Manager
« Acceptance
Test Manager »
Complaint
Acceptance Test
Manager
« Recovery
Block Manager »
Notification
Recovery Block
Manager
« Client »
User Citizen
Manager
Fault tolerance
Roles
Activities
Views
Contexts
Security
Functional behavior
Book
state : StringUser
borrow
return
deliver
setDamaged
reser
ve
Use case model
Platform
Model
Design
Model
Code
Model
MDE… to Support Variability @ Design Time
20
Distribution
« Service Provider
Manager »
Notification
Alternate Manager
« Recovery Block
Manager »
Complaint
Recovery Block
Manager
« Service
Provider
Manager »
Notification
Manager
« Service Provider
Manager »
Complaint Alternate
Manager
« Service
Provider
Manager »
Complaint
Manager
« Acceptance
Test Manager »
Notification
Acceptance Test
Manager
« Acceptance
Test Manager »
Complaint
Acceptance Test
Manager
« Recovery
Block Manager »
Notification
Recovery Block
Manager
« Client »
User Citizen
Manager
Fault tolerance
Roles
Activities
Views
Contexts
Security
Functional behavior
Book
state : StringUser
borrow
return
deliver
setDamaged
reser
ve
Use case model
Platform
Model
Design
Model
Code
Model
22"22"
Extensible*architectures*
(plugins3based)*
Configura9on*
files*
System*
Preferences*
Configurators*
Source*code*
Build*systems*
Comparison*of*Product*
excludes
26"
Hierarchy:"rooted"tree""
Variability:**
•  mandatory,""
•  op/onal,""
•  Groups:"exclusive"or"inclusive"features"
•  Cross;tree"constraints"
Optional
Mandatory
Xor-Group
Or-Group
Orthogonal*Variability*Modeling:*
Feature'Models'
27"
Hierarchy*+*Variability**
=**
set*of*valid*configura9ons*
Optional
Mandatory
Xor-Group
Or-Group
{CarEquipment,"Comfort,"DrivingAndSafety,"Healthing,"AirCondi/oning}"
configura9on*=*set*of*features*selected*
!"
!"
!"
!"
!"
28"
Hierarchy*+*Variability**
=**
set*of*valid*configura9ons*
Optional
Mandatory
Xor-Group
Or-Group
{CarEquipment,"Comfort,"DrivingAndSafety,"Healthing,"AirCondi/oning,"FrontFogLights}"
configura9on*=*set*of*features*selected*
!"
!"
!"
!"
!"
!"
29"
Hierarchy*+*Variability**
=**
set*of*valid*configura9ons*
Optional
Mandatory
Xor-Group
Or-Group
{CarEquipment,"Comfort,"DrivingAndSafety,"Healthing,"AirCondi/oning,"
AirCondi/oningFrontAndRear,"FrontFogLights}"
configura9on*=*set*of*features*selected*
!"
!"
!"
!"
!"
!"
!"
FAMILIAR"(FeAture"Model"scrIpt"Language"for"manIpula/on"and"Automa/c"Reasoning)""
impor9ng,*expor9ng,*composing,*decomposing,*edi9ng,*configuring,*
reverse*engineering,*compu9ng*"diffs",*refactoring,*tes9ng,**
and*reasoning*about*(mul9ple)*variability*models*
not, and, or, implies
φTVL
DIMACS
hPp://familiar3project.github.com/"
Mathieu"Acher,"Philippe"Collet,"Philippe"Lahire,"Robert"B."France"«"A"Domain;Specific"Language"for"Large"
Scale"Management"of"Feature"Models"»"Science"of"Computer"Programming"(SCP),"2013"""
(Orthogonal?) Variability Modeling: !
Feature Models
31"
DSL*
Variability*
model*
CVL*
Base**
model*
Generic"&""
Standardized"
resolu9on*
models*
Focused"on""
a"domain"
Execute'CVL'
'
'
Resolved**
models*
Descrip/on"of"
possible"
varia/ons"in"
the"system"
Domain"
model"of"a"
par/cular"
family"of"
system"
Selec/on"of"a"set"
of"op/ons"in"the"
varia/on"model"
Family"of"systems"fully"
described"in"the"
domain"specific"
language."
All"regular"DSL"tools"can"
be"applied"to"these"
models"
Common Variability Language (CVL)
32
Realiza9on*
model*
Cf. http://www.omgwiki.org/variability
CVL in OMG
33
Late""2009,"Request"for""
Proposals""(RFP)"
Late""2010,"Ini/al"Submission"
September"2012"Revised"submission"
Spring 2013, Finalization?
JOINT*SUBMISSION*TEAM*
ini9ators*from*the*MoSiS*project*
research*ins9tutes*and*universi9es*
tool*vendors*
users*&*consultants*
MDE… to Support Variability @ Run Time
34
Distribution
« Service Provider
Manager »
Notification
Alternate Manager
« Recovery Block
Manager »
Complaint
Recovery Block
Manager
« Service
Provider
Manager »
Notification
Manager
« Service Provider
Manager »
Complaint Alternate
Manager
« Service
Provider
Manager »
Complaint
Manager
« Acceptance
Test Manager »
Notification
Acceptance Test
Manager
« Acceptance
Test Manager »
Complaint
Acceptance Test
Manager
« Recovery
Block Manager »
Notification
Recovery Block
Manager
« Client »
User Citizen
Manager
Fault tolerance
Roles
Activities
Views
Contexts
Security
Functional behavior
Book
state : StringUser
borrow
return
deliver
setDamaged
reser
ve
Use case model
Platform
Model
Design
Model
Code
Model
Change one Aspect and
Automatically Re-Weave:
From AORE, SPL to DAS
Example of Home-automation!
Many Different Needs 1/2
Picture(from(http://www.apt.gc.ca(
• Living(at(home(
• Motion(troubles(
• Memory(loss(
• Speaks(French((only)(
• Home(equiped(with(:(
• LonWorks((lights)(
• Velux((shutters)(
Mrs. Dupont
35
• English(student(
• Living(at(home(
• He(had(an(accident(
• He(likes(technology(
• Wheelchair(equipped(with(
remote(access(for:(
• Lights(and(shutters((KNX)(
• Multimedia((UPnP)(
Picture(from(http://ditwww.epfl.ch(
Mr. John Doe
Example of Home-automation!
Many Different Needs 2/2
36
" Software Product Lines (SPL)
Their needs
Medical/technical(staff(should(be(able(to(
• Check(their(health(state(
• Check(home(configuration((shutters,(lights,(heaters…)(
Both(
Mrs.(Dupont( Mr.(Doe(
Some(daily(tasks(should(be(
automated((motion(
troubles)(or(reminded(
(memory(loss).(
Would(like(to(control(
everything(remotely,(with(
a(unified(protocol(
37
Different variability dimensions
• Protocols
• Low-level protocols: KNX, X2D, X10, etc
• High-level protocols: http, UPnP, DPWS, etc
• Devices
• Lights, heaters, shutters, etc
• Web services
• GoogleAgenda, skype, WeatherForecast, MSN
• PaaS: Nurse as a Service, Food Delivery, Ooshop
• Adaptation to handicap/current health state
• Motion, memory, perception, etc
" Dynamic reconfiguration => DAS
 38
Other Domain: Tactical Information System
39
Towards more complex DDAS
• Distributed Dynamic Adaptive Software (DDAS)
development:
•  Adaptation logic often embedded into application logic
•  Adaptation logic hard-coded using low-level APIs
•  Readability, maintainability, and communication with other
stakeholder not easy
• Exponential growth of possible configurations
•  Convergence with Dynamic Software Product Lines
•  N features, N tending to be larger and larger
•  2N potential program configurations, 2N x (2N-1) transitions
40
" Explosion of the number of possible configurations of Entimid
#  1014 possible configurations! $ 1028 transitions!
" Dynamic Adaptation
#  Evolution of the handicap
#  Houses should be configured remotely
#  No service interruption
" Reliability
#  Safe migration path from a valid configuration to another valid
configuration
#  Performance issue (time) not critical
Challenges
41
• Focus on variability, not on configurations
• Build (derive) configurations when needed
•  JIT, On demand at runtime, caching…
• Validate configurations before actual adaptation
• Automate the reconfiguration process
Hyper-Agility with a DSPL Approach
42
Variability and SE
43
Component Based
Software Engineering
Dynamic Adaptation
Aspect-Oriented
Modeling
[Medvidovic et al’02]
[Kiczales et al’97]
OSGi, Fractal,!
OpenCOM, etc
[France et al’04]
[Rashid et al’02]
[Taylor et al’09]
[Garlan et al.'04]
[Oreizy et al.'98]
[Huebscher et al'08]
[Heineman 
et al’01]
[Crnkovic et al’02]
Handling Variability with MDE
• (D)SPL approach to tame
• The combinatorial explosion of configurations
• The quadratic explosion of transitions
• AOM to automatically build configuration
• Runtime validation before adapting the running system
• Simple roll-back
• Models@Runtime to automate reconfiguration
• Generation of safe reconfiguration scripts 44
Big picture
Device
controllers
Light Shutter
Target
configuration
Model
@runtime
Running
system
Metamodel
EnTiMid
Picture(from(http://www.apt.gc.ca(
Had a flu last week
$ stayed in bed
$ a nurse every day
Now in a better shape
Derivation
AOM
Design-time
Validation
Runtime
Validation
Script
Generator
45
46
Architecture Metamodel
- component, port, binding, etc
- invariants
Reflection model
(source)
Woven model
(target)
Conforms to
Analyzer The running system
adapts
Strong synchronization
introspection + listeners
Delayed synchronization
Validation
Reasoning)
Context info.
Context
model
Design-
models
Models@runtime: !
Using MDE technology at runtime
(FP7 STREP) DiVA Technical Approach
• Separate the application-specific functionality from the
adaptation concerns in requirements: (D)SPL
•  Feature Model, decorated with Quality Attributes
•  Reasoner works with (context x Feature Model QA)
• Associate fragments of architecture to Features
•  aka advice, + where it can be woven: aka pointcut
• Model driven techniques
•  used to raise the level of abstraction of the model of the context
•  updated with CEP
•  model composition (aspect weaving) 
•  To compose new architectures on the fly
•  Model Based Validation
•  automatic generation of platform reconfiguration script
47
%  Heterogeneity management with notion of NodeType
%  Java Node, Dalvik Node, Arduino Node, Cloud Node (Jails/*BSD, JCloud, mini-
cloud, EC2)
%  Component-based
%  Component, Port, Channel, Node, Group, ... 
%  Actor semantics on each port to separate component behavior
%  Communication semantics between components using channels
%  Hot (re-)deploy & provisioning
%  Models@Runtime in a Distributed Context
%  Shared model representation for distributed nodes
%  Offline & online operation, compute@Model level, apply @Runtime
%  Reconfiguration using platform mecanisns, from classLoader, DLL to reflashing
%  Publications
%  A Dynamic Component Model for Cyber Physical Systems François Fouquet; Olivier Barais; Noël Plouzeau; Jean-Marc Jézéquel;
Brice Morin; Franck Fleurey 15th Int. ACM SIGSOFT Symposium on Component Based Software Engineering, Jul 2012, Italy.
%  Dissemination of reconfiguration policies on mesh networks François Fouquet; Erwan Daubert; Noël Plouzeau; Olivier Barais;
Johann Bourcier; Jean-Marc Jézéquel DAIS 2012, Jun 2012, Stockholm, Sweden.
48
Model@Runtime platform !
for distributed dynamic adaptive system
(kevoree.org)
Model@Runtime platform !
for distributed dynamic adaptive system
•  From low power
nodes…
•  Arduino
•  … to Clouds
•  EC2 etc.
•  DAUM platform
•  Tactical
Information
System 
•  for civil security
•  Sensors on
firefighters,
tablets, cloud…
Triskell private heterogeneous cloud
49
(kevoree.org)
Variability vs. Heterogeneity
50
Domain
System
Variability
Domain
Domain
Domain
System
Heterogeneity
Heterogeneity Management!
On the Globalization of Modeling Languages
51
Complex Software-Intensive Systems
•  deal with multiple concerns
 require global analysis and execution
•  integrate heterogeneous parts
 require global service
•  manage evolution of concerns and the emergence
of new concerns
 require evolution and creation of tools and methods for
software development
52
Aerodynamics 
Authorities
Avionics
Safety
Regulations
Airlines
Propulsion
System
Mechanical
Structure
Environmental
Impact
Navigation
Communications
Human-
Machine
Interaction
53
54
Aerodynamics 
Authorities
Avionics
Safety
Regulations
Airlines
Propulsion
System
Mechanical
Structure
Environmental
Impact
Navigation
Communications
Human-
Machine
Interaction
Heterogeneous
Modeling
Languages
55
MDE… to Support Heterogeneity
Distribution
« Service Provider
Manager »
Notification
Alternate Manager
« Recovery Block
Manager »
Complaint
Recovery Block
Manager
« Service
Provider
Manager »
Notification
Manager
« Service Provider
Manager »
Complaint Alternate
Manager
« Service
Provider
Manager »
Complaint
Manager
« Acceptance
Test Manager »
Notification
Acceptance Test
Manager
« Acceptance
Test Manager »
Complaint
Acceptance Test
Manager
« Recovery
Block Manager »
Notification
Recovery Block
Manager
« Client »
User Citizen
Manager
Fault tolerance
Roles
Activities
Views
Contexts
Security
Functional behavior
Book
state : StringUser
borrow
return
deliver
setDamaged
reser
ve
Use case model
Platform
Model
Design
Model
Code
Model
Change one Aspect and
Automatically Re-Weave:
From AORE, SPL to DAS
56
AOMDE = Pleonasm because
a Model is an Abstraction of an
Aspect of Reality for a given Purpose
Aspect Oriented Modeling
• Separation of concerns in a model
• A concern is not necessarily cross-cutting
• Model composition
• Build a global view from a set of concern models
• AOM is a wide domain
• Captures a large variety of modeling practices
• A large number of composition approaches (e.g., Kompose,
ModMap, Geko, SmartAdapter@Runtime…)
(Naive) MDA vs. (AO) MDE
• From Transformation to Composition
•  Similar to goto vs. proper loop concept in language
•  Or assembly language vs. high-level languages
=> Software Language Engineering
• The separation of concerns…
Modularization [Parnas72] to allow the structure of the product to resemble
the structure of the organization that designed it [Conway68]
• … at the language level
Domain-Specific (Modeling) Language (DSML) should serve to implement a
solution in terms of a problem (socio-technical coordination [Herbsleb07]).
• requires to manage the interactions between languages
to avoid social isolation and non sharing information (as observed for example
in the use of APIs [Souza04])
59
At some point in the software lifecycle…
• Interoperable and Collaborative Models
60
The Village Metaphor
A. Vallecillo. “A Journey through the Secret Life of Models“. 
Dagstuhl seminar on Model Engineering of Complex Systems (MECS), Aug. 2008.
Across the software life cycle… 
• Executable, Composable and Intuitive Models (i.e.,
runware) from design to run time
 the two-way tunnel-digging
61
The tunnel digging analogy 
[Harel et al., SoSyM’12]
Challenges
• Model Driven Engineering 

 
& Software Language Engineering
• Language relationships should be capitalized
 from transformation to composition
• Global model coordination and analysis 
 from design to runtime
62
Executable Metamodeling
• Effective environments for the design and
implementation of executable domain specific
languages (e.g., Kermeta at Inria)
• BUT these environments do not allow the
integration of heterogeneous models of
computation (concurrence, communication…)
63
Models of Computation
• Effective environments to deal with the execution
and analysis of models based on heterogeneous
models of computation (e.g., Ptolemy at UC
Berkeley, ModHel’X at Supélec)
• BUT these environments do not allow adaptation
to specific business/application domains
64
Heterogeneity and SE
65
Metamodeling
 Global Software Engineering
Models of 
Computation
[Schmidt'06]
[Winskel’87]
[Karsai’03]
[Lee and 
Sangiovanni’98]
[Eker et al.’03]
[Jantsch'04]
[Lédeczi'01]
[Clarke'02]
[Atkinson'06]
[Straw’04]
 [Herbsleb'01]
[Souza'04]
[Conway’68]
[Boehm’84]
On the Globalization 
of Modeling Languages!
An Initiative…
Focuses on SLE tools and methods for interoperable,
collaborative, and composable modeling languages
67
… Constantly Growing
United States
Canada
68
The GEMOC Initiative is born!
An open initiative to
• coordinate (between members)
• disseminate (on behalf the members)
worldwide R&D efforts on the globalization of
modeling languages

http://gemoc.org

• Funded by complementary and successive projects
• IP left to PCA of each projects
 69
ANR INS GEMOC (2012-2016)
"A Language Workbench for Heterogeneous Modeling and Analysis of
Complex Software-Intensive Systems »
Tools and methods for the definition and coordination of
executable heterogeneous modeling languages over
heterogeneous models of computation
http://gemoc.org/ins
GlobalDSL 2013
First International Workshop on
The Globalization of Domain Specific Languages
July 2nd, 2013, Montpellier, France
co-located with ECMFA, ECOOP and ECSA 2013
•  Topics of interest include composability, interoperability, modularity,
reuse, and variability of programming/modeling languages
•  Submit on Easychair before April 8, 2013!

http://gemoc.org/globaldsl2013
71
From imposed to chosen Unpredictability
72
Domain
System
Variability
Domain
Domain
Domain
System
Heterogeneity
Software diversification to operationalize
unpredictability from design to runtime
Software Diversification
73
N-version programming
74
version 1
version 2
version 3
version 1
version 2
version 3
input
 vote
 output
Algirdas Avizienis: The N-Version Approach to Fault-Tolerant
Software. IEEE Trans. Software Eng. 11(12): 1491-1501 (1985)
Safety
Data diversity
75
execute
P
execute
P
x
 P(x)
reexpression
y=R(x)
adjust for 
re-expression
A(P(y))
Paul Ammann, John C. Knight: Data Diversity: An Approach to Software Fault
Tolerance. IEEE Trans. Computers 37(4): 418-425 (1988)
 Safety
Instruction set randomization
76
Encryption Key
Compile
 Load
 In memory
 Execution
Decryption Key
Randomized instruction set emulation!
EG Barrantes, DH Ackley, S Forrest, D Stefanović!
ACM Transactions on Information and System Security (TISSEC) 8 (1), 3-40
Security
Software product lines
77
X" X" Conflict"
Requires"
X"
X"
Functional Diversity
Loop perforation
• unsound transformation
• still useful
78
source
code
instrumented
binary
Compile
 In memory
 Execution
Instrumentation
running
program
Monitoring and
perforation
Sasa Misailovic, Stelios Sidiroglou, Henry Hoffmann, Martin C. Rinard
Quality of service profiling. ICSE (1) 2010: 25-34
QoS
Test cases diversity
• In a large set of test cases
• select the ones that are most diverse
• intuition: they’re more likely to test different parts of the
program
• trade-off testing cost / bug detection
79
Hadi Hemmati, Lionel C. Briand, Andrea Arcuri, Shaukat Ali: An enhanced test case selection
approach for model-based testing: an industrial case study. SIGSOFT FSE 2010: 267-276
Fault Detection
Inherent diversity
80
Just… inherent!
Software diversity
• is diverse
• moves from static to dynamic diversity
• expanding scope
•  from safety-critical systems
•  to open and flexible systems
• but 
•  diversification strategy is fixed at design time
•  diversity is local
 From Software Diversity to Software Diversification
81
Ecology and SE
82
Randomization
 Unsound transformations
SBSE
[Rinard’04]
[Misailovic’10]
[Berger’06]
[Demsky’06]
[Forrest’94]
[Forrest’97]
[Smith’93]
[Kc’03]
[Barrantes05]
[Hemmati’10]
[Harman’07]
DIVERSIFY
• Can the theories of biodiversity emergence
and organization support theories of software
diversification?
• Goal: analyze and operationalize automatic
software diversification
• In interaction with ecologists
www.diversify-project.eu
83
Conclusion
• Unpredictability should be a pattern in SE
• Agile ( Software Development )

vs. ( Agile Software ) Development
• Recent work on modeling and testing are going
in this way ; in particular:
• Variability modeling and model composition to manage
unpredictability
• software diversification to operationalize unpredictability
 84
Our Vision
85
Modeling and Testing Foundations
Diversity
Heterogeneity
Variability

From Design to Runtime
Our Vision
86
Randomization
Unsound
Transformations
Meta
Modelisation
Global
SE
MoC
CBSE
Dynamic
Adaptation
AOM
SBSE
On Modeling and Testing
When Unpredictability
Is the Pattern
Variability
Heterogeneity
Diversity
Contacts:
Benoit Combemale
benoit.combemale@irisa.fr
http://people.irisa.fr/Benoit.Combemale 
Benoit Baudry
benoit.baudry@inria.fr
http://people.irisa.fr/Benoit.Baudry 
Open positions:
SE, PhD, Post-doc

On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd, 2013)