SlideShare une entreprise Scribd logo
1  sur  10
Creating DSLs that fit the users’ needs


        Jordi Cabot - AtlanMod
          Panel @ MiSE 2012
   http://modeling-languages.com
            @softmodeling



             © AtlanMod - atlanmod-contact@mines-nantes.fr   1
Before Starting

 Most DSLs should have never been created in
  the first place (many are too UML-like)

 It’s a strong investment! (will you get your
  ROI?)

 GML are not as bad as people say

 Avoid reinventing the wheel

                  © AtlanMod - atlanmod-contact@mines-nantes.fr   2
Current situation

 Good language workbenches for creating
  abstract and concrete syntaxes for your DSL

 Technology is there (well, usability of the tools
  could improve…)

 but process and quality aspects are missing




                  © AtlanMod - atlanmod-contact@mines-nantes.fr   3
Process

 DSLs are domain-specific but still it’s a non
  domain-expert who creates the DSL

 Collaboro aims to enable a more collaborative
  process

 … but we already talked about this yesterday
  (check http://modeling-
  languages.com/collaboro-slides-available/)


                  © AtlanMod - atlanmod-contact@mines-nantes.fr   4
Quality

 We know what quality properties make sense
  for models (e.g. satisfiability) but they do not
  translate well to DSLs.

 Quality of DSL = user experience

 Evaluating user experience is a challenging
  task
   – We cannot develop specific techniques for
     each different DSL
   – Need the participation of users
                  © AtlanMod - atlanmod-contact@mines-nantes.fr   5
Quality: Dealing with users is not easy




             © AtlanMod - atlanmod-contact@mines-nantes.fr   6
Quality

 2 research lines

  – Evaluating how domain experts are using
    the DSL in practice
  – Automatic Testing of the user experience




                 © AtlanMod - atlanmod-contact@mines-nantes.fr   7
Approach 1 - Corpus analysis (post
                mortem)
 Analysis of repositories of DSL models (i.e.
  instances of the DSL under analysis)

 We can analyze:
  – (meta) classes that are never used <-
    irrelevant?
  – Clusters in the DSL <- two subDSLs?
  – Complex structures (clones) that appear
    often <- is the DSL missing an important
    element?
                  © AtlanMod - atlanmod-contact@mines-nantes.fr   8
Approach 2 - Automatic testing of the
      user experience (interactive)
 Specially for concrete syntaxes

 Reuse what we know from web interaction and
  design
   – Small changes can make a huge difference
   – Even seasoned designers fail to predict upfront
     what would work
   – Different user profiles may require different
     concrete syntaxes

 What about A/B testing for DSLs?

                   © AtlanMod - atlanmod-contact@mines-nantes.fr   9
Automatic testing of the user
             experience (interactive)
 Which syntax for expressing transformation
  rules is better?
  – It’s up to the users to choose!!!


 Rule newMachine                                                Rule newMachine
          LHS                   RHS
                                                                               c1
    c1                  c1                                                           m1
           m1                   m1           equivalent
                                                                                    {del}
                                                                               c2
   c2                   c2     m2                                                             m2
                                                                                      {new}


   Extended (declarative) notation                              Compacted (operational) notation


                               © AtlanMod - atlanmod-contact@mines-nantes.fr                       10

Contenu connexe

En vedette

Model-Driven Software Engineering in Practice - Chapter 10 - Managing models
Model-Driven Software Engineering in Practice - Chapter 10 - Managing modelsModel-Driven Software Engineering in Practice - Chapter 10 - Managing models
Model-Driven Software Engineering in Practice - Chapter 10 - Managing models
Jordi Cabot
 
Model-Driven Software Engineering in Practice - Chapter 6 - Modeling Language...
Model-Driven Software Engineering in Practice - Chapter 6 - Modeling Language...Model-Driven Software Engineering in Practice - Chapter 6 - Modeling Language...
Model-Driven Software Engineering in Practice - Chapter 6 - Modeling Language...
Jordi Cabot
 
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
Jordi Cabot
 
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
Jordi Cabot
 

En vedette (7)

Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
 
Model-Driven Software Engineering in Practice - Chapter 10 - Managing models
Model-Driven Software Engineering in Practice - Chapter 10 - Managing modelsModel-Driven Software Engineering in Practice - Chapter 10 - Managing models
Model-Driven Software Engineering in Practice - Chapter 10 - Managing models
 
Model-Driven Software Engineering in Practice - Chapter 6 - Modeling Language...
Model-Driven Software Engineering in Practice - Chapter 6 - Modeling Language...Model-Driven Software Engineering in Practice - Chapter 6 - Modeling Language...
Model-Driven Software Engineering in Practice - Chapter 6 - Modeling Language...
 
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
 
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
Model-Driven Software Engineering in Practice - Chapter 8 - Model-to-model tr...
 
MetaScience: Holistic Approach for Research Modeling and Analysis
MetaScience: Holistic Approach for Research Modeling and AnalysisMetaScience: Holistic Approach for Research Modeling and Analysis
MetaScience: Holistic Approach for Research Modeling and Analysis
 
OCL tutorial
OCL tutorial OCL tutorial
OCL tutorial
 

Plus de Jordi Cabot

Plus de Jordi Cabot (20)

AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?
 
Model-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesModel-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architectures
 
Smart modeling of smart software
Smart modeling of smart softwareSmart modeling of smart software
Smart modeling of smart software
 
Modeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineModeling should be an independent scientific discipline
Modeling should be an independent scientific discipline
 
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effort
 
All Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursAll Researchers Should Become Entrepreneurs
All Researchers Should Become Entrepreneurs
 
The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21
 
Low-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringLow-code vs Model-Driven Engineering
Low-code vs Model-Driven Engineering
 
Lessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platformLessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platform
 
Future Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingFuture Trends on Software and Systems Modeling
Future Trends on Software and Systems Modeling
 
Ingeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulosIngeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulos
 
Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit
 
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
 
An LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsAn LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model Transformations
 
WAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsWAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIs
 
Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?
 
Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?
 
Temporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformTemporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platform
 
UMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL DatabasesUMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL Databases
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Dernier (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

Creating DSLs that fit the users’ needs (Panel at MiSE´12)

  • 1. Creating DSLs that fit the users’ needs Jordi Cabot - AtlanMod Panel @ MiSE 2012 http://modeling-languages.com @softmodeling © AtlanMod - atlanmod-contact@mines-nantes.fr 1
  • 2. Before Starting  Most DSLs should have never been created in the first place (many are too UML-like)  It’s a strong investment! (will you get your ROI?)  GML are not as bad as people say  Avoid reinventing the wheel © AtlanMod - atlanmod-contact@mines-nantes.fr 2
  • 3. Current situation  Good language workbenches for creating abstract and concrete syntaxes for your DSL  Technology is there (well, usability of the tools could improve…)  but process and quality aspects are missing © AtlanMod - atlanmod-contact@mines-nantes.fr 3
  • 4. Process  DSLs are domain-specific but still it’s a non domain-expert who creates the DSL  Collaboro aims to enable a more collaborative process  … but we already talked about this yesterday (check http://modeling- languages.com/collaboro-slides-available/) © AtlanMod - atlanmod-contact@mines-nantes.fr 4
  • 5. Quality  We know what quality properties make sense for models (e.g. satisfiability) but they do not translate well to DSLs.  Quality of DSL = user experience  Evaluating user experience is a challenging task – We cannot develop specific techniques for each different DSL – Need the participation of users © AtlanMod - atlanmod-contact@mines-nantes.fr 5
  • 6. Quality: Dealing with users is not easy © AtlanMod - atlanmod-contact@mines-nantes.fr 6
  • 7. Quality  2 research lines – Evaluating how domain experts are using the DSL in practice – Automatic Testing of the user experience © AtlanMod - atlanmod-contact@mines-nantes.fr 7
  • 8. Approach 1 - Corpus analysis (post mortem)  Analysis of repositories of DSL models (i.e. instances of the DSL under analysis)  We can analyze: – (meta) classes that are never used <- irrelevant? – Clusters in the DSL <- two subDSLs? – Complex structures (clones) that appear often <- is the DSL missing an important element? © AtlanMod - atlanmod-contact@mines-nantes.fr 8
  • 9. Approach 2 - Automatic testing of the user experience (interactive)  Specially for concrete syntaxes  Reuse what we know from web interaction and design – Small changes can make a huge difference – Even seasoned designers fail to predict upfront what would work – Different user profiles may require different concrete syntaxes  What about A/B testing for DSLs? © AtlanMod - atlanmod-contact@mines-nantes.fr 9
  • 10. Automatic testing of the user experience (interactive)  Which syntax for expressing transformation rules is better? – It’s up to the users to choose!!! Rule newMachine Rule newMachine LHS RHS c1 c1 c1 m1 m1 m1 equivalent {del} c2 c2 c2 m2 m2 {new} Extended (declarative) notation Compacted (operational) notation © AtlanMod - atlanmod-contact@mines-nantes.fr 10