SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
Challenges	
  in	
  
so,ware	
  refactoring	
  
Tom	
  Mens	
  and	
  Romuald	
  Deshayes	
  
Faculty	
  of	
  Sciences,	
  University	
  of	
  Mons,	
  Belgium	
  
Dagstuhl	
  Seminar	
  14211	
  “The	
  Future	
  of	
  Refactoring”	
  	
  
19-­‐23	
  May	
  2014,	
  Germany	
  
Challenge	
  	
  
Domain-­‐specific	
  model	
  refactoring	
  
•  Context	
  
–  Executable	
  so,ware	
  models	
  are	
  expressed	
  in	
  a	
  domain-­‐
specific	
  modeling	
  language	
  
•  Goal	
  
–  Facilitate	
  model	
  development	
  by	
  providing	
  model	
  
refactoring	
  support	
  
–  Verify	
  behaviour	
  preservaPon	
  
•  Challenge	
  
–  Provide	
  generic	
  support	
  for	
  domain-­‐specific	
  model	
  
refactoring	
  	
  
•  Case	
  study	
  
–  Develop	
  executable	
  models	
  of	
  HMI	
  applicaPons	
  
using	
  gestural	
  interac5on	
  with	
  virtual	
  3D	
  objects	
  
Case	
  study:	
  gestural	
  interacPon	
  
•  ManipulaPng	
  books	
  on	
  a	
  virtual	
  bookshelf	
  
PUT	
  SCREENSHOT	
  HERE	
  
Case	
  study:	
  gestural	
  interacPon	
  
•  ManipulaPng	
  books	
  on	
  a	
  virtual	
  bookshelf	
  
– Executable	
  model	
  is	
  expressed	
  in	
  GISMO	
  DSML	
  
Case	
  study:	
  gestural	
  interacPon	
  
ShooPng	
  arrows	
  with	
  a	
  virtual	
  bow	
  
Domain-­‐specific	
  model	
  refactoring	
  
•  Expressed	
  as	
  graph	
  transformaPons	
  (in	
  AtoMPM)	
  
•  Refactoring	
  examples	
  
1.  Add	
  reflexive	
  gesture	
  
2.  Switch	
  le,	
  and	
  right	
  hand	
  gestures	
  
R_RightToLe,	
  
Domain-­‐specific	
  model	
  refactoring	
  
Behavior	
  preservaPon	
  
•  First	
  approach:	
  using	
  model	
  tesPng	
  
– Specify	
  an	
  input	
  model,	
  run	
  the	
  applicaPon	
  using	
  the	
  
input	
  model	
  and	
  verify	
  if	
  the	
  expected	
  output	
  is	
  
reached	
  
– Example:	
  if	
  we	
  run	
  the	
  following	
  input	
  model	
  from	
  
acPve	
  state	
  Sheathed	
  we	
  should	
  reach	
  state	
  Drawn	
  
Domain-­‐specific	
  model	
  refactoring	
  
Behavior	
  preservaPon	
  
•  First	
  approach:	
  using	
  model	
  tesPng	
  
if	
  we	
  run	
  the	
  input	
  model	
  from	
  state	
  
“Sheathed”	
  we	
  should	
  reach	
  state	
  
“Drawn”	
  
Domain-­‐specific	
  model	
  refactoring	
  
Behavior	
  preservaPon	
  
•  Second	
  approach:	
  by	
  verifying	
  properPes	
  on	
  the	
  model	
  
1.  Express	
  a	
  temporal	
  or	
  structural	
  properPes	
  using	
  the	
  
concrete	
  DSML	
  syntax	
  
2.  AutomaPcally	
  convert	
  the	
  property	
  in	
  an	
  appropriate	
  
formalism	
  
•  E.g.	
  express	
  temporal	
  properPes	
  as	
  LTL	
  constraints	
  in	
  the	
  
PROMELA	
  verificaPon	
  modeling	
  language	
  
•  E.g.	
  express	
  structural	
  constraints	
  using	
  OCL	
  
3.  Use	
  model	
  checkers	
  to	
  verify	
  preservaPon	
  of	
  properPes	
  
before	
  and	
  a,er	
  the	
  model	
  refactoring	
  
•  E.g.	
  SPIN	
  model	
  checker	
  for	
  temporal	
  constraints	
  in	
  PROMELA	
  
•  E.g.	
  OCL	
  model	
  checker	
  for	
  structural	
  constraints	
  
Domain-­‐specific	
  model	
  refactoring	
  
Behavior	
  preservaPon	
  
•  Examples	
  of	
  temporal	
  proper5es	
  
– (Specific)	
  A	
  bow	
  cannot	
  be	
  bent	
  
	
  before	
  having	
  placed	
  an	
  arrow	
  on	
  it	
  
– (Specific)	
  It	
  should	
  always	
  be	
  possible	
  
to	
  return	
  to	
  the	
  “sheathed”	
  state	
  
– (Generic)	
  Every	
  gesture	
  in	
  the	
  model	
  
should	
  eventually	
  be	
  able	
  to	
  be	
  triggered	
  
– (Generic)	
  Every	
  state	
  should	
  be	
  
reachable	
  from	
  every	
  other	
  state	
  
Domain-­‐specific	
  model	
  refactoring	
  
Behavior	
  preservaPon	
  
•  Examples	
  of	
  structural	
  proper5es	
  	
  
– If	
  a	
  bow	
  is	
  in	
  the	
  bending	
  state,	
  the	
  number	
  of	
  
available	
  arrows	
  must	
  be	
  >0	
  	
  
– A	
  bow	
  cannot	
  be	
  manipulated	
  by	
  more	
  than	
  one	
  hand	
  
Domain-­‐specific	
  model	
  refactoring	
  
Model	
  improvement	
  
•  Apply	
  model	
  refactorings	
  to	
  resolve	
  model	
  smells	
  
– Model	
  smells	
  =	
  
desired	
  properPes	
  
that	
  are	
  not	
  saPsfied	
  
by	
  the	
  model	
  
•  E.g.	
  It	
  should	
  always	
  be	
  
possible	
  to	
  return	
  to	
  
the	
  Sheathed	
  state	
  
•  This	
  property	
  is	
  not	
  
verified	
  in	
  the	
  
following	
  model	
  è	
  
Domain-­‐specific	
  model	
  refactoring	
  
Model	
  improvement	
  
•  Apply	
  model	
  refactorings	
  to	
  resolve	
  model	
  smells	
  
– Model	
  smells	
  =	
  
desired	
  properPes	
  
that	
  are	
  not	
  saPsfied	
  
by	
  the	
  model	
  
•  E.g.	
  It	
  should	
  always	
  be	
  
possible	
  to	
  return	
  to	
  
the	
  Sheathed	
  state	
  
•  Adding	
  a	
  gestural	
  
transiPon	
  from	
  Drawn	
  
to	
  Sheathed	
  makes	
  
the	
  property	
  verified	
  è	
  
Further	
  Reading	
  
•  J.	
  Zhang,	
  Y.	
  Lin,	
  J.	
  Gray.	
  Generic	
  and	
  Domain-­‐Specific	
  Model	
  
Refactoring	
  Using	
  a	
  Model	
  TransformaPon	
  Engine.	
  In	
  Model-­‐Driven	
  
So,ware	
  Development,	
  Springer	
  (2005)	
  
•  T.	
  Mens.	
  On	
  the	
  use	
  of	
  graph	
  transformaPons	
  for	
  model	
  
refactoring.	
  GTTSE	
  (2006)	
  
•  R.Deshayes,	
  Ph.	
  Palanque,	
  T.	
  Mens.	
  A	
  generic	
  framework	
  for	
  
executable	
  gestural	
  interacPon	
  models.	
  VL/HCC:	
  35-­‐38	
  (2013)	
  
•  R.	
  Deshayes:	
  A	
  domain-­‐specific	
  modeling	
  approach	
  for	
  gestural	
  
interacPon.	
  VL/HCC:	
  181-­‐182	
  (2013)	
  
•  R.	
  Deshayes,	
  T.	
  Mens,	
  Ph.	
  Palanque.	
  PetriNect.	
  A	
  tool	
  for	
  
executable	
  modeling	
  of	
  gestural	
  interacPon.	
  VL/HCC:	
  197-­‐198	
  
(2013)	
  
•  B.	
  Meyers,	
  M.	
  Wimmer,	
  H.	
  Vangheluwe.	
  Towards	
  domain-­‐specific	
  
property	
  languages:	
  The	
  ProMoBox	
  approach.	
  Proc.	
  ACM	
  workshop	
  
Domain-­‐Specific	
  Modeling	
  (2013)	
  

Mais conteúdo relacionado

Destaque

Evaluationg software quality practices in European industry
Evaluationg software quality practices in European industryEvaluationg software quality practices in European industry
Evaluationg software quality practices in European industryTom Mens
 
Kilix: Heterogeneous Modeling of Gesture-Based 3D Applications
Kilix: Heterogeneous Modeling of Gesture-Based 3D ApplicationsKilix: Heterogeneous Modeling of Gesture-Based 3D Applications
Kilix: Heterogeneous Modeling of Gesture-Based 3D ApplicationsTom Mens
 
Survivability of software projects in Gnome: A replication study
Survivability of software projects in Gnome: A replication studySurvivability of software projects in Gnome: A replication study
Survivability of software projects in Gnome: A replication studyTom Mens
 
A historical dataset for the Gnome software ecosystem
A historical dataset for the Gnome software ecosystemA historical dataset for the Gnome software ecosystem
A historical dataset for the Gnome software ecosystemTom Mens
 
Towards an empirical analysis of the maintainability of CRAN packages
Towards an empirical analysis of the maintainability of CRAN packagesTowards an empirical analysis of the maintainability of CRAN packages
Towards an empirical analysis of the maintainability of CRAN packagesTom Mens
 
Statechart modeling of interactive gesture-based applications
Statechart modeling of interactive gesture-based applicationsStatechart modeling of interactive gesture-based applications
Statechart modeling of interactive gesture-based applicationsTom Mens
 
An Empirical Study of Identical Function Clones in CRAN
An Empirical Study of Identical Function Clones in CRANAn Empirical Study of Identical Function Clones in CRAN
An Empirical Study of Identical Function Clones in CRANTom Mens
 
Approaches to software model inconsistency management
Approaches to software model inconsistency managementApproaches to software model inconsistency management
Approaches to software model inconsistency managementTom Mens
 
Socio-technical evolution and migration in the Ruby ecosystem
Socio-technical evolution and migration in the Ruby ecosystemSocio-technical evolution and migration in the Ruby ecosystem
Socio-technical evolution and migration in the Ruby ecosystemTom Mens
 
ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...
ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...
ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...Tom Mens
 
Using Evolution Patterns to Evolve Software Architectures
Using Evolution Patterns to Evolve Software ArchitecturesUsing Evolution Patterns to Evolve Software Architectures
Using Evolution Patterns to Evolve Software ArchitecturesTom Mens
 

Destaque (11)

Evaluationg software quality practices in European industry
Evaluationg software quality practices in European industryEvaluationg software quality practices in European industry
Evaluationg software quality practices in European industry
 
Kilix: Heterogeneous Modeling of Gesture-Based 3D Applications
Kilix: Heterogeneous Modeling of Gesture-Based 3D ApplicationsKilix: Heterogeneous Modeling of Gesture-Based 3D Applications
Kilix: Heterogeneous Modeling of Gesture-Based 3D Applications
 
Survivability of software projects in Gnome: A replication study
Survivability of software projects in Gnome: A replication studySurvivability of software projects in Gnome: A replication study
Survivability of software projects in Gnome: A replication study
 
A historical dataset for the Gnome software ecosystem
A historical dataset for the Gnome software ecosystemA historical dataset for the Gnome software ecosystem
A historical dataset for the Gnome software ecosystem
 
Towards an empirical analysis of the maintainability of CRAN packages
Towards an empirical analysis of the maintainability of CRAN packagesTowards an empirical analysis of the maintainability of CRAN packages
Towards an empirical analysis of the maintainability of CRAN packages
 
Statechart modeling of interactive gesture-based applications
Statechart modeling of interactive gesture-based applicationsStatechart modeling of interactive gesture-based applications
Statechart modeling of interactive gesture-based applications
 
An Empirical Study of Identical Function Clones in CRAN
An Empirical Study of Identical Function Clones in CRANAn Empirical Study of Identical Function Clones in CRAN
An Empirical Study of Identical Function Clones in CRAN
 
Approaches to software model inconsistency management
Approaches to software model inconsistency managementApproaches to software model inconsistency management
Approaches to software model inconsistency management
 
Socio-technical evolution and migration in the Ruby ecosystem
Socio-technical evolution and migration in the Ruby ecosystemSocio-technical evolution and migration in the Ruby ecosystem
Socio-technical evolution and migration in the Ruby ecosystem
 
ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...
ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...
ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...
 
Using Evolution Patterns to Evolve Software Architectures
Using Evolution Patterns to Evolve Software ArchitecturesUsing Evolution Patterns to Evolve Software Architectures
Using Evolution Patterns to Evolve Software Architectures
 

Semelhante a Domain-specific model refactoring - a case study with executable gestural interaction models

Transfer Learning in NLP: A Survey
Transfer Learning in NLP: A SurveyTransfer Learning in NLP: A Survey
Transfer Learning in NLP: A SurveyNUPUR YADAV
 
Minor Project Report on Denoising Diffusion Probabilistic Model
Minor Project Report on Denoising Diffusion Probabilistic ModelMinor Project Report on Denoising Diffusion Probabilistic Model
Minor Project Report on Denoising Diffusion Probabilistic Modelsoxigoh238
 
MLCC Schedule #1
MLCC Schedule #1MLCC Schedule #1
MLCC Schedule #1Bruce Lee
 
Trajectory Transformer.pptx
Trajectory Transformer.pptxTrajectory Transformer.pptx
Trajectory Transformer.pptxSeungeon Baek
 
Testing Model Transformations
Testing Model TransformationsTesting Model Transformations
Testing Model Transformationsmiso_uam
 
Statistical models of shape and appearance
Statistical models of shape and appearanceStatistical models of shape and appearance
Statistical models of shape and appearancepotaters
 
Building Continuous Learning Systems
Building Continuous Learning SystemsBuilding Continuous Learning Systems
Building Continuous Learning SystemsAnuj Gupta
 
Prediction as a service with ensemble model in SparkML and Python ScikitLearn
Prediction as a service with ensemble model in SparkML and Python ScikitLearnPrediction as a service with ensemble model in SparkML and Python ScikitLearn
Prediction as a service with ensemble model in SparkML and Python ScikitLearnJosef A. Habdank
 
PresentationML Subject: Slides
PresentationML Subject: SlidesPresentationML Subject: Slides
PresentationML Subject: SlidesShawn Villaron
 
MDE-experiments
MDE-experimentsMDE-experiments
MDE-experimentsmiso_uam
 
Spark Summit EU talk by Josef Habdank
Spark Summit EU talk by Josef HabdankSpark Summit EU talk by Josef Habdank
Spark Summit EU talk by Josef HabdankSpark Summit
 
Predictable reactive state management - ngrx
Predictable reactive state management - ngrxPredictable reactive state management - ngrx
Predictable reactive state management - ngrxIlia Idakiev
 
Model-driven Development of Model Transformations
Model-driven Development of Model TransformationsModel-driven Development of Model Transformations
Model-driven Development of Model TransformationsPieter Van Gorp
 
PMSCS 657_Parallel and Distributed processing
PMSCS 657_Parallel and Distributed processingPMSCS 657_Parallel and Distributed processing
PMSCS 657_Parallel and Distributed processingMd. Mashiur Rahman
 
Design Pattern lecture 2
Design Pattern lecture 2Design Pattern lecture 2
Design Pattern lecture 2Julie Iskander
 

Semelhante a Domain-specific model refactoring - a case study with executable gestural interaction models (20)

Deep Learning Opening Workshop - Improving Generative Models - Junier Oliva, ...
Deep Learning Opening Workshop - Improving Generative Models - Junier Oliva, ...Deep Learning Opening Workshop - Improving Generative Models - Junier Oliva, ...
Deep Learning Opening Workshop - Improving Generative Models - Junier Oliva, ...
 
ReusingMT
ReusingMTReusingMT
ReusingMT
 
Transfer Learning in NLP: A Survey
Transfer Learning in NLP: A SurveyTransfer Learning in NLP: A Survey
Transfer Learning in NLP: A Survey
 
Minor Project Report on Denoising Diffusion Probabilistic Model
Minor Project Report on Denoising Diffusion Probabilistic ModelMinor Project Report on Denoising Diffusion Probabilistic Model
Minor Project Report on Denoising Diffusion Probabilistic Model
 
presentation.ppt
presentation.pptpresentation.ppt
presentation.ppt
 
MLCC Schedule #1
MLCC Schedule #1MLCC Schedule #1
MLCC Schedule #1
 
Trajectory Transformer.pptx
Trajectory Transformer.pptxTrajectory Transformer.pptx
Trajectory Transformer.pptx
 
Story story ppt
Story story pptStory story ppt
Story story ppt
 
Testing Model Transformations
Testing Model TransformationsTesting Model Transformations
Testing Model Transformations
 
Statistical models of shape and appearance
Statistical models of shape and appearanceStatistical models of shape and appearance
Statistical models of shape and appearance
 
Building Continuous Learning Systems
Building Continuous Learning SystemsBuilding Continuous Learning Systems
Building Continuous Learning Systems
 
Prediction as a service with ensemble model in SparkML and Python ScikitLearn
Prediction as a service with ensemble model in SparkML and Python ScikitLearnPrediction as a service with ensemble model in SparkML and Python ScikitLearn
Prediction as a service with ensemble model in SparkML and Python ScikitLearn
 
PresentationML Subject: Slides
PresentationML Subject: SlidesPresentationML Subject: Slides
PresentationML Subject: Slides
 
MDE-experiments
MDE-experimentsMDE-experiments
MDE-experiments
 
Spark Summit EU talk by Josef Habdank
Spark Summit EU talk by Josef HabdankSpark Summit EU talk by Josef Habdank
Spark Summit EU talk by Josef Habdank
 
Predictable reactive state management - ngrx
Predictable reactive state management - ngrxPredictable reactive state management - ngrx
Predictable reactive state management - ngrx
 
Model-driven Development of Model Transformations
Model-driven Development of Model TransformationsModel-driven Development of Model Transformations
Model-driven Development of Model Transformations
 
Subprogram
SubprogramSubprogram
Subprogram
 
PMSCS 657_Parallel and Distributed processing
PMSCS 657_Parallel and Distributed processingPMSCS 657_Parallel and Distributed processing
PMSCS 657_Parallel and Distributed processing
 
Design Pattern lecture 2
Design Pattern lecture 2Design Pattern lecture 2
Design Pattern lecture 2
 

Mais de Tom Mens

How to be(come) a successful PhD student
How to be(come) a successful PhD studentHow to be(come) a successful PhD student
How to be(come) a successful PhD studentTom Mens
 
Recognising bot activity in collaborative software development
Recognising bot activity in collaborative software developmentRecognising bot activity in collaborative software development
Recognising bot activity in collaborative software developmentTom Mens
 
A Dataset of Bot and Human Activities in GitHub
A Dataset of Bot and Human Activities in GitHubA Dataset of Bot and Human Activities in GitHub
A Dataset of Bot and Human Activities in GitHubTom Mens
 
The (r)evolution of CI/CD on GitHub
 The (r)evolution of CI/CD on GitHub The (r)evolution of CI/CD on GitHub
The (r)evolution of CI/CD on GitHubTom Mens
 
Nurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the FutureNurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the FutureTom Mens
 
Comment programmer un robot en 30 minutes?
Comment programmer un robot en 30 minutes?Comment programmer un robot en 30 minutes?
Comment programmer un robot en 30 minutes?Tom Mens
 
On the rise and fall of CI services in GitHub
On the rise and fall of CI services in GitHubOn the rise and fall of CI services in GitHub
On the rise and fall of CI services in GitHubTom Mens
 
On backporting practices in package dependency networks
On backporting practices in package dependency networksOn backporting practices in package dependency networks
On backporting practices in package dependency networksTom Mens
 
Comparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and RubygemsComparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and RubygemsTom Mens
 
Lost in Zero Space
Lost in Zero SpaceLost in Zero Space
Lost in Zero SpaceTom Mens
 
Evaluating a bot detection model on git commit messages
Evaluating a bot detection model on git commit messagesEvaluating a bot detection model on git commit messages
Evaluating a bot detection model on git commit messagesTom Mens
 
Is my software ecosystem healthy? It depends!
Is my software ecosystem healthy? It depends!Is my software ecosystem healthy? It depends!
Is my software ecosystem healthy? It depends!Tom Mens
 
Bot or not? Detecting bots in GitHub pull request activity based on comment s...
Bot or not? Detecting bots in GitHub pull request activity based on comment s...Bot or not? Detecting bots in GitHub pull request activity based on comment s...
Bot or not? Detecting bots in GitHub pull request activity based on comment s...Tom Mens
 
On the fragility of open source software packaging ecosystems
On the fragility of open source software packaging ecosystemsOn the fragility of open source software packaging ecosystems
On the fragility of open source software packaging ecosystemsTom Mens
 
How magic is zero? An Empirical Analysis of Initial Development Releases in S...
How magic is zero? An Empirical Analysis of Initial Development Releases in S...How magic is zero? An Empirical Analysis of Initial Development Releases in S...
How magic is zero? An Empirical Analysis of Initial Development Releases in S...Tom Mens
 
Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)Tom Mens
 
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)Tom Mens
 
SecoHealth 2019 Research Achievements
SecoHealth 2019 Research AchievementsSecoHealth 2019 Research Achievements
SecoHealth 2019 Research AchievementsTom Mens
 
SECO-Assist 2019 research seminar
SECO-Assist 2019 research seminarSECO-Assist 2019 research seminar
SECO-Assist 2019 research seminarTom Mens
 
Empirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package ManagersEmpirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package ManagersTom Mens
 

Mais de Tom Mens (20)

How to be(come) a successful PhD student
How to be(come) a successful PhD studentHow to be(come) a successful PhD student
How to be(come) a successful PhD student
 
Recognising bot activity in collaborative software development
Recognising bot activity in collaborative software developmentRecognising bot activity in collaborative software development
Recognising bot activity in collaborative software development
 
A Dataset of Bot and Human Activities in GitHub
A Dataset of Bot and Human Activities in GitHubA Dataset of Bot and Human Activities in GitHub
A Dataset of Bot and Human Activities in GitHub
 
The (r)evolution of CI/CD on GitHub
 The (r)evolution of CI/CD on GitHub The (r)evolution of CI/CD on GitHub
The (r)evolution of CI/CD on GitHub
 
Nurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the FutureNurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the Future
 
Comment programmer un robot en 30 minutes?
Comment programmer un robot en 30 minutes?Comment programmer un robot en 30 minutes?
Comment programmer un robot en 30 minutes?
 
On the rise and fall of CI services in GitHub
On the rise and fall of CI services in GitHubOn the rise and fall of CI services in GitHub
On the rise and fall of CI services in GitHub
 
On backporting practices in package dependency networks
On backporting practices in package dependency networksOn backporting practices in package dependency networks
On backporting practices in package dependency networks
 
Comparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and RubygemsComparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
 
Lost in Zero Space
Lost in Zero SpaceLost in Zero Space
Lost in Zero Space
 
Evaluating a bot detection model on git commit messages
Evaluating a bot detection model on git commit messagesEvaluating a bot detection model on git commit messages
Evaluating a bot detection model on git commit messages
 
Is my software ecosystem healthy? It depends!
Is my software ecosystem healthy? It depends!Is my software ecosystem healthy? It depends!
Is my software ecosystem healthy? It depends!
 
Bot or not? Detecting bots in GitHub pull request activity based on comment s...
Bot or not? Detecting bots in GitHub pull request activity based on comment s...Bot or not? Detecting bots in GitHub pull request activity based on comment s...
Bot or not? Detecting bots in GitHub pull request activity based on comment s...
 
On the fragility of open source software packaging ecosystems
On the fragility of open source software packaging ecosystemsOn the fragility of open source software packaging ecosystems
On the fragility of open source software packaging ecosystems
 
How magic is zero? An Empirical Analysis of Initial Development Releases in S...
How magic is zero? An Empirical Analysis of Initial Development Releases in S...How magic is zero? An Empirical Analysis of Initial Development Releases in S...
How magic is zero? An Empirical Analysis of Initial Development Releases in S...
 
Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)
 
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
 
SecoHealth 2019 Research Achievements
SecoHealth 2019 Research AchievementsSecoHealth 2019 Research Achievements
SecoHealth 2019 Research Achievements
 
SECO-Assist 2019 research seminar
SECO-Assist 2019 research seminarSECO-Assist 2019 research seminar
SECO-Assist 2019 research seminar
 
Empirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package ManagersEmpirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package Managers
 

Último

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Último (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

Domain-specific model refactoring - a case study with executable gestural interaction models

  • 1. Challenges  in   so,ware  refactoring   Tom  Mens  and  Romuald  Deshayes   Faculty  of  Sciences,  University  of  Mons,  Belgium   Dagstuhl  Seminar  14211  “The  Future  of  Refactoring”     19-­‐23  May  2014,  Germany  
  • 2. Challenge     Domain-­‐specific  model  refactoring   •  Context   –  Executable  so,ware  models  are  expressed  in  a  domain-­‐ specific  modeling  language   •  Goal   –  Facilitate  model  development  by  providing  model   refactoring  support   –  Verify  behaviour  preservaPon   •  Challenge   –  Provide  generic  support  for  domain-­‐specific  model   refactoring     •  Case  study   –  Develop  executable  models  of  HMI  applicaPons   using  gestural  interac5on  with  virtual  3D  objects  
  • 3. Case  study:  gestural  interacPon   •  ManipulaPng  books  on  a  virtual  bookshelf   PUT  SCREENSHOT  HERE  
  • 4. Case  study:  gestural  interacPon   •  ManipulaPng  books  on  a  virtual  bookshelf   – Executable  model  is  expressed  in  GISMO  DSML  
  • 5. Case  study:  gestural  interacPon   ShooPng  arrows  with  a  virtual  bow  
  • 6. Domain-­‐specific  model  refactoring   •  Expressed  as  graph  transformaPons  (in  AtoMPM)   •  Refactoring  examples   1.  Add  reflexive  gesture   2.  Switch  le,  and  right  hand  gestures   R_RightToLe,  
  • 7. Domain-­‐specific  model  refactoring   Behavior  preservaPon   •  First  approach:  using  model  tesPng   – Specify  an  input  model,  run  the  applicaPon  using  the   input  model  and  verify  if  the  expected  output  is   reached   – Example:  if  we  run  the  following  input  model  from   acPve  state  Sheathed  we  should  reach  state  Drawn  
  • 8. Domain-­‐specific  model  refactoring   Behavior  preservaPon   •  First  approach:  using  model  tesPng   if  we  run  the  input  model  from  state   “Sheathed”  we  should  reach  state   “Drawn”  
  • 9. Domain-­‐specific  model  refactoring   Behavior  preservaPon   •  Second  approach:  by  verifying  properPes  on  the  model   1.  Express  a  temporal  or  structural  properPes  using  the   concrete  DSML  syntax   2.  AutomaPcally  convert  the  property  in  an  appropriate   formalism   •  E.g.  express  temporal  properPes  as  LTL  constraints  in  the   PROMELA  verificaPon  modeling  language   •  E.g.  express  structural  constraints  using  OCL   3.  Use  model  checkers  to  verify  preservaPon  of  properPes   before  and  a,er  the  model  refactoring   •  E.g.  SPIN  model  checker  for  temporal  constraints  in  PROMELA   •  E.g.  OCL  model  checker  for  structural  constraints  
  • 10. Domain-­‐specific  model  refactoring   Behavior  preservaPon   •  Examples  of  temporal  proper5es   – (Specific)  A  bow  cannot  be  bent    before  having  placed  an  arrow  on  it   – (Specific)  It  should  always  be  possible   to  return  to  the  “sheathed”  state   – (Generic)  Every  gesture  in  the  model   should  eventually  be  able  to  be  triggered   – (Generic)  Every  state  should  be   reachable  from  every  other  state  
  • 11. Domain-­‐specific  model  refactoring   Behavior  preservaPon   •  Examples  of  structural  proper5es     – If  a  bow  is  in  the  bending  state,  the  number  of   available  arrows  must  be  >0     – A  bow  cannot  be  manipulated  by  more  than  one  hand  
  • 12. Domain-­‐specific  model  refactoring   Model  improvement   •  Apply  model  refactorings  to  resolve  model  smells   – Model  smells  =   desired  properPes   that  are  not  saPsfied   by  the  model   •  E.g.  It  should  always  be   possible  to  return  to   the  Sheathed  state   •  This  property  is  not   verified  in  the   following  model  è  
  • 13. Domain-­‐specific  model  refactoring   Model  improvement   •  Apply  model  refactorings  to  resolve  model  smells   – Model  smells  =   desired  properPes   that  are  not  saPsfied   by  the  model   •  E.g.  It  should  always  be   possible  to  return  to   the  Sheathed  state   •  Adding  a  gestural   transiPon  from  Drawn   to  Sheathed  makes   the  property  verified  è  
  • 14. Further  Reading   •  J.  Zhang,  Y.  Lin,  J.  Gray.  Generic  and  Domain-­‐Specific  Model   Refactoring  Using  a  Model  TransformaPon  Engine.  In  Model-­‐Driven   So,ware  Development,  Springer  (2005)   •  T.  Mens.  On  the  use  of  graph  transformaPons  for  model   refactoring.  GTTSE  (2006)   •  R.Deshayes,  Ph.  Palanque,  T.  Mens.  A  generic  framework  for   executable  gestural  interacPon  models.  VL/HCC:  35-­‐38  (2013)   •  R.  Deshayes:  A  domain-­‐specific  modeling  approach  for  gestural   interacPon.  VL/HCC:  181-­‐182  (2013)   •  R.  Deshayes,  T.  Mens,  Ph.  Palanque.  PetriNect.  A  tool  for   executable  modeling  of  gestural  interacPon.  VL/HCC:  197-­‐198   (2013)   •  B.  Meyers,  M.  Wimmer,  H.  Vangheluwe.  Towards  domain-­‐specific   property  languages:  The  ProMoBox  approach.  Proc.  ACM  workshop   Domain-­‐Specific  Modeling  (2013)