SlideShare a Scribd company logo
1 of 96
Markus Voelter
independent/itemis
voelter@acm.org
www.voelter.de
@markusvoelter
Bernd Kolb
itemis
kolb@itemis.de
www.itemis.de
@berndkolb
Language-Oriented
Business Applications
On the way to DSLs for non-programmers
Jos Warmer
OpenModeling
Jos.warmer@openmodeling.nl
openmodeling.nl
1 Background: mbeddr
2 mbeddr Demo 1
3 JetBrains MPS
4 mbeddr Demo 2
5 Generalization
6 LOBA
7 Evaluation
8 Conclusion
where we are
what is missing
why
About mbeddr
About mbeddr
Language Engineering Embedded Software
An extensible collection of integrated
languages for embedded software engineering.
About mbeddr
Language Engineering Embedded Software
An IDE + Debugger for all of them
About mbeddr
Language Engineering Embedded Software
Open Source
Eclipse Public License
http://mbeddr.com
http://www.eclipse.org/proposals/technology.mbeddr/
mbeddr Demo I
C & Extensions
JetBrains MPS
About mbeddr
Built on JetBrains MPS
A Language Workbench
About mbeddr
Built on JetBrains MPS
Open Source
Apache 2.0
http://jetbrains.com/mps
About MPS
Rich Set of Language Aspects
+ Refactorings, Find Usages, Syntax Coloring, Debugging, ...
About MPS
Projectional Editing
Parsing Projection
About MPS
Notational Flexibility
Regular Code/Text Mathematical
Tables Graphical
About MPS
Language Composition
L2 L1
Separate Files In One File
Type System
Transformation
Constraints
Type System
Transformation
Constraints
Syntax
Editor/IDE
mbeddr Demo II
Other Languages
Generalization
Thought Process
From Data Formats To Languages
Structure, Constraints, Semantics
+ Syntax + IDEData Format
Language
Thought Process
Language Engineering
Languages
Language Reuse
Language Modularization
Language Composition
Language Engineering
Thought Process
Language Engineering
Languages
Language Engineering
Syntactic Diversity
Text
Tables
Math
Symbols
Graphics
Forms
Thought Process
Language Workbenches
Languages
Language Engineering
Syntactic Diversity
But does this really work?
Language Workbenches
Generic Tools, Specific Languages
Ingredients
Languages
Language Engineering
Syntactic Diversity
Language WorkbenchesGeneric Tools
Specific
Languages
(we don‘t have to reimplement
editors and synchronizers)
Generic Tools, Specific Languages
Ingredients
Languages
Language Engineering
Syntactic Diversity
Language WorkbenchesGeneric Tools
Specific
Languages
support
Language Workbenches
Typical Features
Goto Definition/Find Usages
Error Markup/Quick Fixes
Syntax Highlighting
Code Completion
Search/Replace
Refactoring
Debugging
Reporting
Visualization
Version Control
Language Workbenches
Typical Features
for any
Language!
Language Workbenches
Typical Features
Language
Workbenches act
as the foundation
for IDEs for any
language.
LOBA where we are
what is missing
why
LOBA where we are
what is missing
why
End User Need
Data is King!
End-Users want to
essentially operate on data.
Prof. Dr. Florian Matthes
Software Engineering for Business Information System
TU Munich
LOBA: Why
For which kinds of Systems?
Language
Workbenches act as
the foundation for
IDEs for any
language.
LOBA: Why
For which kinds of Systems?
Language
Workbenches act as
the foundation for
IDEs for (m)any
applications.
LOBA: Why
For which kinds of Systems?
many applications?
Structured or Formalizable
Mathematical
Data-Oriented
Language-y
LOBA: Why
For which kinds of Systems?
many applications?
Data Models
Pricing Calculations
Financial Calculations
Contracts
Business Rules
Highly Structured Requirements
LOBA: Why
[Motivation] Languages!
A language may be hiding
behind many of these!
LOBA: Why
[Motivation] Languages!
But: users don‘t want to
be programmers!
LOBA: Why
[Motivation] Languages!
What makes a business user
feel like a programmer???
LOBA: IT versus Business
Structured or Free-form
Programmers dislike structure.
• Prefer plain text and a parser to tell them what
is wrong
• Copy-paste: Manually try to select semantically
meaningfull pieces of text like e.g. a variable
declaration, an if statement, a condition in an if,
one or more method parameters, etc.
LOBA: IT versus Business
Structured or Free-form
Business People like structure.
• Structured editing can only create correct input
• Copy-paste selects semantically meaningfull
pieces automatically
You would expect otherwise: IT people are formally trained compared
to business people, so expectation is the other way around.
LOBA: IT versus Business
Text versus „anything else“
Programmers prefer text over everything
• Diagrams: remember UML bashing ?
• „real programmers don‘t draw pictures“
• Programmers like tables in HTML, XML, Wikis,
but why have them in code?
Even for tables, where text is clearly totally unsuitable !
LOBA: IT versus Business
Text versus „anything else“
Business People like many notations
• Diagrams, Tables, Mathematical Formulas,
Trees, Text, etc.
• ... and combine them !
Business people feel restricted if they nhave to use a notation
that is not suitable for what they want to express.
LOBA: IT versus Business
Clean Sheets vs. Scaffolding
Programmers like clean sheets
• Who needs guidance anyway?
• It‘s beneath a developer to need any help !
Nobody tells me what to do!
It hinders my artistic freedom!
LOBA: IT versus Business
Clean Sheets vs. Scaffolding
Business People like scaffolding
• Clean sheet is confusing
• Prefer guidance on what can/should be done.
• What am I supposed to do with an empty page?
• Forms are nice, they tell me what to do and
where to put what
Why remember if the computer can tell you what to do ?
And where to do it !
LOBA: IT versus Business
Layout
Programmers do their own layout
• Even getting developers to use the same
formatter with the same configuration turns out
to be really hard.
• I‘ve been told quite often to not even try that.
Why is it so important that my IF statement looks different from
the IF statement of my collegue programmer?
LOBA: IT versus Business
Layout
Business People prefer stanardized layout
• Prefer layout of similar things to be identical
• Is always recognizable
• Don‘t want to waste time on doing manual
layout
Do developers really like to waste time ? Why ?
LOBA: IT versus Business
Viewpoints
Programmers use one notation and view
• Use folding, but still see the folded element.
• Use design techniques to decompose aspects
I want to see everything that is there,
cannot afford to miss anything
LOBA: IT versus Business
Viewpoints
Business People use diverse notations
and views
• Different viewpoints, e.g. textual and visual
• Only show information needed for a task, hide
parts of the model
I only want to see what I need, no less, no more.
LOBA: IT versus Business
Summing Up
All these differences mean that the
requirements for business oriented
DSL‘s are very different from what
we have learned about DSL‘s for
developers
(which is most DSL‘s we have today)
LOBA: IT versus Business
Summing Up
Combine the best of
Applications/Forms/UIs
and
Languages and IDEs.
LOBA: Why
[Motivation] Languages!
Applications/Forms/UIs
Structure
User Guidance
Tables
Views
Languages + IDEs
Expressions
Complex Structures
Code Completion
Type Checking
Debugging
Refactoring
vs.
LOBA where we are
what is missing
why
LOBA: Where we are.
[Notation] Math (old)
LOBA: Where we are.
[Notation] Math (new) I
LOBA: Where we are.
[Notation] Math (new) II
LOBA: Where we are.
[Notation] Tables
LOBA: Where we are.
[Notation] Tables II
LOBA: Where we are.
[Notation] Graphical
LOBA: Where we are.
[Notation] Mixed Content
LOBA: Where we are.
[Guided Editing] Form-Like
LOBA: Where we are.
[Guided Editing] Form-Like
LOBA: Where we are.
[Guided Editing] Form-Like II
LOBA: Where we are.
[Guided Editing] Editor Buttons
LOBA: Where we are.
[Guided Editing] Code Completion
Business Apps
[Context Aware] Different Projections
Business Apps
[Context Aware] Different Projections
LOBA: Where we are.
[Structure] Tree Views I
LOBA: Where we are.
[Structure] Tree Views II
LOBA: Where we are.
[Context Aware] Visualization
LOBA: Where we are.
[Context Aware] Visualization II
LOBA: Where we are.
[Live Code] Error Checking
LOBA: Where we are.
[Live Code] Interpreted Tests
LOBA: Where we are.
[Live Code] Debugging
End User Need
Data is King!
End-Users want to
essentially operate on data.
Prof. Dr. Florian Matthes
Software Engineering for Business Information System
TU Munich
End User Need
Data is King!
End-Users want to
essentially operate on data.
Prof. Dr. Florian Matthes
Software Engineering for Business Information System
TU Munich
Language Workbenches
All the IDE Support We Expect
Goto Definition/Find Usages
Error Markup/Quick Fixes
Syntax Highlighting
Code Completion
Search/Replace
Refactoring
Reporting
Visualization
Version Control
Language Workbenches
Where does App Funtionality go?
Debugging
Live Tests in IDE
Advanced Analyses
Execition via Generation
LOBA
What is the Scope?
not the mass data –
this remains in databases.
Complex structures,
calculations, rules or analyses
at the heart of a
business domain.
LOBA where we are
what is missing
why
LOBA: What is missing/Challenges
Apparent Tool Complexity
Too many (too big)
menus and buttons
LOBA: What is missing/Challenges
Need for Simplified Version Control
Too many options.
Locking?
Realtime?
LOBA: What is missing/Challenges
Some Shortcomings in MPS
Adressed by JetBrains in 2014.
Cross-model generation
Projection of computed collections
Better Graphical Editing
Type System Performance
Some Editor Usability
LOBA: What is missing/Challenges
Training
Users may not be used to this approach.
Training is important.
Productivity more useful than Learnability.
LOBA: What is missing/Challenges
SE Best Practices
Modularity, Reuse, Injeritance, ...
Users may not know about these
things, but they may still be necessary
for efficiency reasons.
Evaluation
Evaluation
Usability Guru Jakon Nielsen
10 Usability Heuristics for UI Design
Evaluation
J. Nielsen: Usability Heuristics for UI
Design
Visibility of system status
The system should always keep users informed
about what is going on, through appropriate
feedback within reasonable time.
Program is always visible
Realtime Type Checking
Scaffolding
Evaluation
J. Nielsen: Usability Heuristics for UI
Design
Match between system and the real world
The system should speak the users' language,
with words, phrases and concepts familiar to the
user, rather than system-oriented terms. Follow
real-world conventions, making information
appear in a natural and logical order.
DSLs
Domain Notations (Math, Tables)
Extensibility, „Grow Language“
Evaluation
J. Nielsen: Usability Heuristics for UI
Design
User control and freedom
Users often choose system functions by mistake
and will need a clearly marked "emergency exit"
to leave the unwanted state without having to go
through an extended dialogue. Support undo
and redo.
Undo/Redo
Revert in Version Control
Evaluation
J. Nielsen: Usability Heuristics for UI
Design
Consistency and standards
Users should not have to wonder whether
different words, situations, or actions mean the
same thing. Follow platform conventions.
Consistent IDE
All languages „work“ the same
Design unambiguous syntax
Evaluation
J. Nielsen: Usability Heuristics for UI
Design
Error prevention
Even better than good error messages is a
careful design which prevents a problem from
occurring in the first place. Either eliminate
error-prone conditions or check for them and
present users with a confirmation option before
they commit to the action.
Language Structure/Constraints
Scaffolding
Evaluation
J. Nielsen: Usability Heuristics for UI
Design
Recognition rather than recall
Minimize the user's memory load by making
objects, actions, and options visible. The user
should not have to remember information from
one part of the dialogue to another. Instructions
for use of the system should be visible or easily
retrievable whenever appropriate.
Non-Modality
CC, Intentions, Menus
Evaluation
J. Nielsen: Usability Heuristics for UI
Design
Flexibility and efficiency of use
Accelerators – unseen by the novice user – may
often speed up the interaction for the expert
user such that the system can cater to both
inexperienced and experienced users. Allow
users to tailor frequent actions.
Keyboard Shortcuts (adaptable)
Intentions, Quickfixes, Refac‘ings
Evaluation
J. Nielsen: Usability Heuristics for UI
Design
Aesthetic and minimalist design
Dialogues should not contain information which
is irrelevant or rarely needed. Every extra unit of
information in a dialogue competes with the
relevant units of information and diminishes
their relative visibility.
Multiple Projections/Views
Intentions, Quick Fixes, etc.
Evaluation
J. Nielsen: Usability Heuristics for UI
Design
Help users recognize, diagnose,
and recover from errors
Error messages should be expressed in plain
language (no codes), precisely indicate the
problem, and constructively suggest a solution.
Up to the language designer.
Quick Fixes
Evaluation
J. Nielsen: Usability Heuristics for UI
Design
Help and documentation
Even though it is better if the system can be
used without documentation, it may be
necessary to provide help and documentation.
Any such information should be easy to search,
focused on the user's task, list concrete steps to
be carried out, and not be too large.
Up to the language designer.
Conclusions
Conclusions
Applications „hide“ Languages
No Explicit Tool Support for them
LOBAs are useful alternative
Connect Business & IT
Points to take away
LWBs are powerful enough
In particular, notations!
A lot of stuff is Open Source!
THE END.
Markus Voelter
independent/itemis
voelter@acm.org
www.voelter.de
@markusvoelter
Bernd Kolb
itemis
kolb@itemis.de
www.itemis.de
@berndkolb
Jos Warmer
OpenModeling
Jos.warmer@openmodeling.nl
openmodeling.nl
Language-Oriented
Business Applications
On the way to DSLs for non-programmers

More Related Content

What's hot

Feedback on Part 1 of the Software Engineering Large Practical
Feedback on Part 1 of the Software Engineering Large PracticalFeedback on Part 1 of the Software Engineering Large Practical
Feedback on Part 1 of the Software Engineering Large PracticalStephen Gilmore
 
Zoo of domain-specific languages
Zoo of domain-specific languagesZoo of domain-specific languages
Zoo of domain-specific languagesMikhail Barash
 
Coding standards
Coding standardsCoding standards
Coding standardsMimoh Ojha
 
Envisioning the Future of Language Workbenches
Envisioning the Future of Language WorkbenchesEnvisioning the Future of Language Workbenches
Envisioning the Future of Language WorkbenchesMarkus Voelter
 
The Programmer Life Cycle
The Programmer Life CycleThe Programmer Life Cycle
The Programmer Life CycleRussell Ovans
 
Principles of programming
Principles of programmingPrinciples of programming
Principles of programmingRob Paok
 
Programming Languages
Programming Languages Programming Languages
Programming Languages knowledge1995
 
Programming languages and paradigms
Programming languages and paradigmsProgramming languages and paradigms
Programming languages and paradigmsJohn Paul Hallasgo
 
ICT, Importance of programming and programming languages
ICT, Importance of programming and programming languagesICT, Importance of programming and programming languages
ICT, Importance of programming and programming languagesEbin Robinson
 
Ch1 language design issue
Ch1 language design issueCh1 language design issue
Ch1 language design issueJigisha Pandya
 
Coding principles
Coding principles Coding principles
Coding principles DevAdnani
 
Logical programming languages and functional programming languages
Logical programming languages and functional programming languagesLogical programming languages and functional programming languages
Logical programming languages and functional programming languagesnahianzarif
 

What's hot (20)

Feedback on Part 1 of the Software Engineering Large Practical
Feedback on Part 1 of the Software Engineering Large PracticalFeedback on Part 1 of the Software Engineering Large Practical
Feedback on Part 1 of the Software Engineering Large Practical
 
PROGRAMMING AND LANGUAGES
PROGRAMMING AND LANGUAGES  PROGRAMMING AND LANGUAGES
PROGRAMMING AND LANGUAGES
 
Java
JavaJava
Java
 
DSL development
DSL developmentDSL development
DSL development
 
Zoo of domain-specific languages
Zoo of domain-specific languagesZoo of domain-specific languages
Zoo of domain-specific languages
 
Coding standards
Coding standardsCoding standards
Coding standards
 
DSLs: what, why, how
DSLs: what, why, howDSLs: what, why, how
DSLs: what, why, how
 
Envisioning the Future of Language Workbenches
Envisioning the Future of Language WorkbenchesEnvisioning the Future of Language Workbenches
Envisioning the Future of Language Workbenches
 
The Programmer Life Cycle
The Programmer Life CycleThe Programmer Life Cycle
The Programmer Life Cycle
 
Principles of programming
Principles of programmingPrinciples of programming
Principles of programming
 
Language Workbenches
Language WorkbenchesLanguage Workbenches
Language Workbenches
 
Programming Languages
Programming Languages Programming Languages
Programming Languages
 
Programming languages and paradigms
Programming languages and paradigmsProgramming languages and paradigms
Programming languages and paradigms
 
sitHH - No comment?
sitHH - No comment?sitHH - No comment?
sitHH - No comment?
 
ICT, Importance of programming and programming languages
ICT, Importance of programming and programming languagesICT, Importance of programming and programming languages
ICT, Importance of programming and programming languages
 
Ch1 language design issue
Ch1 language design issueCh1 language design issue
Ch1 language design issue
 
Evolution and History of Programming Languages - Software/Hardware/System
Evolution and History of Programming Languages - Software/Hardware/SystemEvolution and History of Programming Languages - Software/Hardware/System
Evolution and History of Programming Languages - Software/Hardware/System
 
Coding principles
Coding principles Coding principles
Coding principles
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Logical programming languages and functional programming languages
Logical programming languages and functional programming languagesLogical programming languages and functional programming languages
Logical programming languages and functional programming languages
 

Similar to Language-Oriented Business Applications

Introducing Language-Oriented Business Applications - Markus Voelter
Introducing Language-Oriented Business Applications - Markus VoelterIntroducing Language-Oriented Business Applications - Markus Voelter
Introducing Language-Oriented Business Applications - Markus VoelterJAXLondon2014
 
How to Implement Domain Driven Design in Real Life SDLC
How to Implement Domain Driven Design  in Real Life SDLCHow to Implement Domain Driven Design  in Real Life SDLC
How to Implement Domain Driven Design in Real Life SDLCAbdul Karim
 
VSTO + LOB Apps
VSTO + LOB AppsVSTO + LOB Apps
VSTO + LOB AppsJoao Livio
 
VSTO + LOB Apps Information Matters
VSTO + LOB Apps Information MattersVSTO + LOB Apps Information Matters
VSTO + LOB Apps Information MattersComunidade NetPonto
 
Build your own Language - Why and How?
Build your own Language - Why and How?Build your own Language - Why and How?
Build your own Language - Why and How?Markus Voelter
 
“One man” development process model
“One man” development process model“One man” development process model
“One man” development process modelSilicon Straits
 
What Is Coding And Why Should You Learn It?
What Is Coding And Why Should You Learn It?What Is Coding And Why Should You Learn It?
What Is Coding And Why Should You Learn It?Syed Hassan Raza
 
How to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software DeveloperHow to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software Developerjeetendra mandal
 
Dtp, web design & presentation software revision
Dtp, web design & presentation software revisionDtp, web design & presentation software revision
Dtp, web design & presentation software revisionMrJRogers
 
Markdown - friend or foe?
Markdown - friend or foe?Markdown - friend or foe?
Markdown - friend or foe?Ellis Pratt
 
Top Object-Oriented Programming Languages To Follow In December 2022.pdf
Top Object-Oriented Programming Languages To Follow In December 2022.pdfTop Object-Oriented Programming Languages To Follow In December 2022.pdf
Top Object-Oriented Programming Languages To Follow In December 2022.pdfJamesEddie2
 
Metaprogramming Go
Metaprogramming GoMetaprogramming Go
Metaprogramming GoWeng Wei
 
Good vs Evil SharePoint Customizing
Good vs Evil SharePoint CustomizingGood vs Evil SharePoint Customizing
Good vs Evil SharePoint CustomizingStacy Deere
 
Java Design Pattern Interview Questions
Java Design Pattern Interview QuestionsJava Design Pattern Interview Questions
Java Design Pattern Interview Questionsjbashask
 
Breaking Barriers & Leveraging the Latest Developments in AI Technology
Breaking Barriers & Leveraging the Latest Developments in AI TechnologyBreaking Barriers & Leveraging the Latest Developments in AI Technology
Breaking Barriers & Leveraging the Latest Developments in AI TechnologySafe Software
 
Programming using C++ - slides.pptx
Programming using C++ - slides.pptxProgramming using C++ - slides.pptx
Programming using C++ - slides.pptxHeadoftheDepartment
 
Java And Community Support
Java And Community SupportJava And Community Support
Java And Community SupportWilliam Grosso
 
How To be a Backend developer
How To be a Backend developer    How To be a Backend developer
How To be a Backend developer Ramy Hakam
 

Similar to Language-Oriented Business Applications (20)

vbaintro.pdf
vbaintro.pdfvbaintro.pdf
vbaintro.pdf
 
Introducing Language-Oriented Business Applications - Markus Voelter
Introducing Language-Oriented Business Applications - Markus VoelterIntroducing Language-Oriented Business Applications - Markus Voelter
Introducing Language-Oriented Business Applications - Markus Voelter
 
How to Implement Domain Driven Design in Real Life SDLC
How to Implement Domain Driven Design  in Real Life SDLCHow to Implement Domain Driven Design  in Real Life SDLC
How to Implement Domain Driven Design in Real Life SDLC
 
VSTO + LOB Apps
VSTO + LOB AppsVSTO + LOB Apps
VSTO + LOB Apps
 
VSTO + LOB Apps Information Matters
VSTO + LOB Apps Information MattersVSTO + LOB Apps Information Matters
VSTO + LOB Apps Information Matters
 
Build your own Language - Why and How?
Build your own Language - Why and How?Build your own Language - Why and How?
Build your own Language - Why and How?
 
“One man” development process model
“One man” development process model“One man” development process model
“One man” development process model
 
What Is Coding And Why Should You Learn It?
What Is Coding And Why Should You Learn It?What Is Coding And Why Should You Learn It?
What Is Coding And Why Should You Learn It?
 
How to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software DeveloperHow to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software Developer
 
Dtp, web design & presentation software revision
Dtp, web design & presentation software revisionDtp, web design & presentation software revision
Dtp, web design & presentation software revision
 
Markdown - friend or foe?
Markdown - friend or foe?Markdown - friend or foe?
Markdown - friend or foe?
 
Top Object-Oriented Programming Languages To Follow In December 2022.pdf
Top Object-Oriented Programming Languages To Follow In December 2022.pdfTop Object-Oriented Programming Languages To Follow In December 2022.pdf
Top Object-Oriented Programming Languages To Follow In December 2022.pdf
 
Metaprogramming Go
Metaprogramming GoMetaprogramming Go
Metaprogramming Go
 
Good vs Evil SharePoint Customizing
Good vs Evil SharePoint CustomizingGood vs Evil SharePoint Customizing
Good vs Evil SharePoint Customizing
 
Java Design Pattern Interview Questions
Java Design Pattern Interview QuestionsJava Design Pattern Interview Questions
Java Design Pattern Interview Questions
 
Developer Efficiency
Developer EfficiencyDeveloper Efficiency
Developer Efficiency
 
Breaking Barriers & Leveraging the Latest Developments in AI Technology
Breaking Barriers & Leveraging the Latest Developments in AI TechnologyBreaking Barriers & Leveraging the Latest Developments in AI Technology
Breaking Barriers & Leveraging the Latest Developments in AI Technology
 
Programming using C++ - slides.pptx
Programming using C++ - slides.pptxProgramming using C++ - slides.pptx
Programming using C++ - slides.pptx
 
Java And Community Support
Java And Community SupportJava And Community Support
Java And Community Support
 
How To be a Backend developer
How To be a Backend developer    How To be a Backend developer
How To be a Backend developer
 

More from Markus Voelter

Deklarative Smart Contracts
Deklarative Smart ContractsDeklarative Smart Contracts
Deklarative Smart ContractsMarkus Voelter
 
Using language workbenches and domain-specific languages for safety-critical ...
Using language workbenches and domain-specific languages for safety-critical ...Using language workbenches and domain-specific languages for safety-critical ...
Using language workbenches and domain-specific languages for safety-critical ...Markus Voelter
 
What's Missing in Language Workbenches
What's Missing in Language WorkbenchesWhat's Missing in Language Workbenches
What's Missing in Language WorkbenchesMarkus Voelter
 
How Domains Shape Languages
 How Domains Shape Languages How Domains Shape Languages
How Domains Shape LanguagesMarkus Voelter
 
Why Modeling Suck Sucks
Why Modeling Suck SucksWhy Modeling Suck Sucks
Why Modeling Suck SucksMarkus Voelter
 
Fusing Modeling and Programming into Language-Oriented Programming
Fusing Modeling and Programming into Language-Oriented ProgrammingFusing Modeling and Programming into Language-Oriented Programming
Fusing Modeling and Programming into Language-Oriented ProgrammingMarkus Voelter
 
The future of DSLs - functions and formal methods
The future of DSLs - functions and formal methodsThe future of DSLs - functions and formal methods
The future of DSLs - functions and formal methodsMarkus Voelter
 
Lessons Learned from building mbeddr
Lessons Learned from building mbeddrLessons Learned from building mbeddr
Lessons Learned from building mbeddrMarkus Voelter
 
Domain Specific Language Design
Domain Specific Language DesignDomain Specific Language Design
Domain Specific Language DesignMarkus Voelter
 
Faszination Segelfliegen
Faszination SegelfliegenFaszination Segelfliegen
Faszination SegelfliegenMarkus Voelter
 
Professional Podcasting Guide
Professional Podcasting GuideProfessional Podcasting Guide
Professional Podcasting GuideMarkus Voelter
 
Fundamentals Of Software Architecture
Fundamentals Of Software ArchitectureFundamentals Of Software Architecture
Fundamentals Of Software ArchitectureMarkus Voelter
 
Architecture As Language
Architecture As LanguageArchitecture As Language
Architecture As LanguageMarkus Voelter
 
Model-Driven Development in the context of Software Product Lines
Model-Driven Development in the context of Software Product LinesModel-Driven Development in the context of Software Product Lines
Model-Driven Development in the context of Software Product LinesMarkus Voelter
 
Trends In Languages 2010
Trends In Languages 2010Trends In Languages 2010
Trends In Languages 2010Markus Voelter
 
Visual Profile - Markus Voelter, Jan 1, 2009
Visual Profile - Markus Voelter, Jan 1, 2009Visual Profile - Markus Voelter, Jan 1, 2009
Visual Profile - Markus Voelter, Jan 1, 2009Markus Voelter
 

More from Markus Voelter (19)

Consulting
ConsultingConsulting
Consulting
 
Deklarative Smart Contracts
Deklarative Smart ContractsDeklarative Smart Contracts
Deklarative Smart Contracts
 
Using language workbenches and domain-specific languages for safety-critical ...
Using language workbenches and domain-specific languages for safety-critical ...Using language workbenches and domain-specific languages for safety-critical ...
Using language workbenches and domain-specific languages for safety-critical ...
 
What's Missing in Language Workbenches
What's Missing in Language WorkbenchesWhat's Missing in Language Workbenches
What's Missing in Language Workbenches
 
How Domains Shape Languages
 How Domains Shape Languages How Domains Shape Languages
How Domains Shape Languages
 
Why Modeling Suck Sucks
Why Modeling Suck SucksWhy Modeling Suck Sucks
Why Modeling Suck Sucks
 
Fusing Modeling and Programming into Language-Oriented Programming
Fusing Modeling and Programming into Language-Oriented ProgrammingFusing Modeling and Programming into Language-Oriented Programming
Fusing Modeling and Programming into Language-Oriented Programming
 
The future of DSLs - functions and formal methods
The future of DSLs - functions and formal methodsThe future of DSLs - functions and formal methods
The future of DSLs - functions and formal methods
 
Lessons Learned from building mbeddr
Lessons Learned from building mbeddrLessons Learned from building mbeddr
Lessons Learned from building mbeddr
 
Domain Specific Language Design
Domain Specific Language DesignDomain Specific Language Design
Domain Specific Language Design
 
Faszination Segelfliegen
Faszination SegelfliegenFaszination Segelfliegen
Faszination Segelfliegen
 
Introduction To MDD
Introduction To MDDIntroduction To MDD
Introduction To MDD
 
Professional Podcasting Guide
Professional Podcasting GuideProfessional Podcasting Guide
Professional Podcasting Guide
 
DSL Best Practices
DSL Best PracticesDSL Best Practices
DSL Best Practices
 
Fundamentals Of Software Architecture
Fundamentals Of Software ArchitectureFundamentals Of Software Architecture
Fundamentals Of Software Architecture
 
Architecture As Language
Architecture As LanguageArchitecture As Language
Architecture As Language
 
Model-Driven Development in the context of Software Product Lines
Model-Driven Development in the context of Software Product LinesModel-Driven Development in the context of Software Product Lines
Model-Driven Development in the context of Software Product Lines
 
Trends In Languages 2010
Trends In Languages 2010Trends In Languages 2010
Trends In Languages 2010
 
Visual Profile - Markus Voelter, Jan 1, 2009
Visual Profile - Markus Voelter, Jan 1, 2009Visual Profile - Markus Voelter, Jan 1, 2009
Visual Profile - Markus Voelter, Jan 1, 2009
 

Recently uploaded

Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineeringssuserb3a23b
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 

Recently uploaded (20)

Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineering
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 

Language-Oriented Business Applications

  • 1. Markus Voelter independent/itemis voelter@acm.org www.voelter.de @markusvoelter Bernd Kolb itemis kolb@itemis.de www.itemis.de @berndkolb Language-Oriented Business Applications On the way to DSLs for non-programmers Jos Warmer OpenModeling Jos.warmer@openmodeling.nl openmodeling.nl
  • 2. 1 Background: mbeddr 2 mbeddr Demo 1 3 JetBrains MPS 4 mbeddr Demo 2 5 Generalization 6 LOBA 7 Evaluation 8 Conclusion where we are what is missing why
  • 4. About mbeddr Language Engineering Embedded Software An extensible collection of integrated languages for embedded software engineering.
  • 5. About mbeddr Language Engineering Embedded Software An IDE + Debugger for all of them
  • 6. About mbeddr Language Engineering Embedded Software Open Source Eclipse Public License http://mbeddr.com http://www.eclipse.org/proposals/technology.mbeddr/
  • 7. mbeddr Demo I C & Extensions
  • 9. About mbeddr Built on JetBrains MPS A Language Workbench
  • 10. About mbeddr Built on JetBrains MPS Open Source Apache 2.0 http://jetbrains.com/mps
  • 11. About MPS Rich Set of Language Aspects + Refactorings, Find Usages, Syntax Coloring, Debugging, ...
  • 13. About MPS Notational Flexibility Regular Code/Text Mathematical Tables Graphical
  • 14. About MPS Language Composition L2 L1 Separate Files In One File Type System Transformation Constraints Type System Transformation Constraints Syntax Editor/IDE
  • 15. mbeddr Demo II Other Languages
  • 17. Thought Process From Data Formats To Languages Structure, Constraints, Semantics + Syntax + IDEData Format Language
  • 18. Thought Process Language Engineering Languages Language Reuse Language Modularization Language Composition Language Engineering
  • 19. Thought Process Language Engineering Languages Language Engineering Syntactic Diversity Text Tables Math Symbols Graphics Forms
  • 20. Thought Process Language Workbenches Languages Language Engineering Syntactic Diversity But does this really work? Language Workbenches
  • 21. Generic Tools, Specific Languages Ingredients Languages Language Engineering Syntactic Diversity Language WorkbenchesGeneric Tools Specific Languages (we don‘t have to reimplement editors and synchronizers)
  • 22. Generic Tools, Specific Languages Ingredients Languages Language Engineering Syntactic Diversity Language WorkbenchesGeneric Tools Specific Languages support
  • 23. Language Workbenches Typical Features Goto Definition/Find Usages Error Markup/Quick Fixes Syntax Highlighting Code Completion Search/Replace Refactoring Debugging Reporting Visualization Version Control
  • 25. Language Workbenches Typical Features Language Workbenches act as the foundation for IDEs for any language.
  • 26. LOBA where we are what is missing why
  • 27. LOBA where we are what is missing why
  • 28. End User Need Data is King! End-Users want to essentially operate on data. Prof. Dr. Florian Matthes Software Engineering for Business Information System TU Munich
  • 29. LOBA: Why For which kinds of Systems? Language Workbenches act as the foundation for IDEs for any language.
  • 30. LOBA: Why For which kinds of Systems? Language Workbenches act as the foundation for IDEs for (m)any applications.
  • 31. LOBA: Why For which kinds of Systems? many applications? Structured or Formalizable Mathematical Data-Oriented Language-y
  • 32. LOBA: Why For which kinds of Systems? many applications? Data Models Pricing Calculations Financial Calculations Contracts Business Rules Highly Structured Requirements
  • 33. LOBA: Why [Motivation] Languages! A language may be hiding behind many of these!
  • 34. LOBA: Why [Motivation] Languages! But: users don‘t want to be programmers!
  • 35. LOBA: Why [Motivation] Languages! What makes a business user feel like a programmer???
  • 36. LOBA: IT versus Business Structured or Free-form Programmers dislike structure. • Prefer plain text and a parser to tell them what is wrong • Copy-paste: Manually try to select semantically meaningfull pieces of text like e.g. a variable declaration, an if statement, a condition in an if, one or more method parameters, etc.
  • 37. LOBA: IT versus Business Structured or Free-form Business People like structure. • Structured editing can only create correct input • Copy-paste selects semantically meaningfull pieces automatically You would expect otherwise: IT people are formally trained compared to business people, so expectation is the other way around.
  • 38. LOBA: IT versus Business Text versus „anything else“ Programmers prefer text over everything • Diagrams: remember UML bashing ? • „real programmers don‘t draw pictures“ • Programmers like tables in HTML, XML, Wikis, but why have them in code? Even for tables, where text is clearly totally unsuitable !
  • 39. LOBA: IT versus Business Text versus „anything else“ Business People like many notations • Diagrams, Tables, Mathematical Formulas, Trees, Text, etc. • ... and combine them ! Business people feel restricted if they nhave to use a notation that is not suitable for what they want to express.
  • 40. LOBA: IT versus Business Clean Sheets vs. Scaffolding Programmers like clean sheets • Who needs guidance anyway? • It‘s beneath a developer to need any help ! Nobody tells me what to do! It hinders my artistic freedom!
  • 41. LOBA: IT versus Business Clean Sheets vs. Scaffolding Business People like scaffolding • Clean sheet is confusing • Prefer guidance on what can/should be done. • What am I supposed to do with an empty page? • Forms are nice, they tell me what to do and where to put what Why remember if the computer can tell you what to do ? And where to do it !
  • 42. LOBA: IT versus Business Layout Programmers do their own layout • Even getting developers to use the same formatter with the same configuration turns out to be really hard. • I‘ve been told quite often to not even try that. Why is it so important that my IF statement looks different from the IF statement of my collegue programmer?
  • 43. LOBA: IT versus Business Layout Business People prefer stanardized layout • Prefer layout of similar things to be identical • Is always recognizable • Don‘t want to waste time on doing manual layout Do developers really like to waste time ? Why ?
  • 44. LOBA: IT versus Business Viewpoints Programmers use one notation and view • Use folding, but still see the folded element. • Use design techniques to decompose aspects I want to see everything that is there, cannot afford to miss anything
  • 45. LOBA: IT versus Business Viewpoints Business People use diverse notations and views • Different viewpoints, e.g. textual and visual • Only show information needed for a task, hide parts of the model I only want to see what I need, no less, no more.
  • 46. LOBA: IT versus Business Summing Up All these differences mean that the requirements for business oriented DSL‘s are very different from what we have learned about DSL‘s for developers (which is most DSL‘s we have today)
  • 47. LOBA: IT versus Business Summing Up Combine the best of Applications/Forms/UIs and Languages and IDEs.
  • 48. LOBA: Why [Motivation] Languages! Applications/Forms/UIs Structure User Guidance Tables Views Languages + IDEs Expressions Complex Structures Code Completion Type Checking Debugging Refactoring vs.
  • 49. LOBA where we are what is missing why
  • 50. LOBA: Where we are. [Notation] Math (old)
  • 51. LOBA: Where we are. [Notation] Math (new) I
  • 52. LOBA: Where we are. [Notation] Math (new) II
  • 53. LOBA: Where we are. [Notation] Tables
  • 54. LOBA: Where we are. [Notation] Tables II
  • 55. LOBA: Where we are. [Notation] Graphical
  • 56. LOBA: Where we are. [Notation] Mixed Content
  • 57. LOBA: Where we are. [Guided Editing] Form-Like
  • 58. LOBA: Where we are. [Guided Editing] Form-Like
  • 59. LOBA: Where we are. [Guided Editing] Form-Like II
  • 60. LOBA: Where we are. [Guided Editing] Editor Buttons
  • 61. LOBA: Where we are. [Guided Editing] Code Completion
  • 62. Business Apps [Context Aware] Different Projections
  • 63. Business Apps [Context Aware] Different Projections
  • 64. LOBA: Where we are. [Structure] Tree Views I
  • 65. LOBA: Where we are. [Structure] Tree Views II
  • 66. LOBA: Where we are. [Context Aware] Visualization
  • 67. LOBA: Where we are. [Context Aware] Visualization II
  • 68. LOBA: Where we are. [Live Code] Error Checking
  • 69. LOBA: Where we are. [Live Code] Interpreted Tests
  • 70. LOBA: Where we are. [Live Code] Debugging
  • 71. End User Need Data is King! End-Users want to essentially operate on data. Prof. Dr. Florian Matthes Software Engineering for Business Information System TU Munich
  • 72. End User Need Data is King! End-Users want to essentially operate on data. Prof. Dr. Florian Matthes Software Engineering for Business Information System TU Munich
  • 73. Language Workbenches All the IDE Support We Expect Goto Definition/Find Usages Error Markup/Quick Fixes Syntax Highlighting Code Completion Search/Replace Refactoring Reporting Visualization Version Control
  • 74. Language Workbenches Where does App Funtionality go? Debugging Live Tests in IDE Advanced Analyses Execition via Generation
  • 75. LOBA What is the Scope? not the mass data – this remains in databases. Complex structures, calculations, rules or analyses at the heart of a business domain.
  • 76. LOBA where we are what is missing why
  • 77. LOBA: What is missing/Challenges Apparent Tool Complexity Too many (too big) menus and buttons
  • 78. LOBA: What is missing/Challenges Need for Simplified Version Control Too many options. Locking? Realtime?
  • 79. LOBA: What is missing/Challenges Some Shortcomings in MPS Adressed by JetBrains in 2014. Cross-model generation Projection of computed collections Better Graphical Editing Type System Performance Some Editor Usability
  • 80. LOBA: What is missing/Challenges Training Users may not be used to this approach. Training is important. Productivity more useful than Learnability.
  • 81. LOBA: What is missing/Challenges SE Best Practices Modularity, Reuse, Injeritance, ... Users may not know about these things, but they may still be necessary for efficiency reasons.
  • 83. Evaluation Usability Guru Jakon Nielsen 10 Usability Heuristics for UI Design
  • 84. Evaluation J. Nielsen: Usability Heuristics for UI Design Visibility of system status The system should always keep users informed about what is going on, through appropriate feedback within reasonable time. Program is always visible Realtime Type Checking Scaffolding
  • 85. Evaluation J. Nielsen: Usability Heuristics for UI Design Match between system and the real world The system should speak the users' language, with words, phrases and concepts familiar to the user, rather than system-oriented terms. Follow real-world conventions, making information appear in a natural and logical order. DSLs Domain Notations (Math, Tables) Extensibility, „Grow Language“
  • 86. Evaluation J. Nielsen: Usability Heuristics for UI Design User control and freedom Users often choose system functions by mistake and will need a clearly marked "emergency exit" to leave the unwanted state without having to go through an extended dialogue. Support undo and redo. Undo/Redo Revert in Version Control
  • 87. Evaluation J. Nielsen: Usability Heuristics for UI Design Consistency and standards Users should not have to wonder whether different words, situations, or actions mean the same thing. Follow platform conventions. Consistent IDE All languages „work“ the same Design unambiguous syntax
  • 88. Evaluation J. Nielsen: Usability Heuristics for UI Design Error prevention Even better than good error messages is a careful design which prevents a problem from occurring in the first place. Either eliminate error-prone conditions or check for them and present users with a confirmation option before they commit to the action. Language Structure/Constraints Scaffolding
  • 89. Evaluation J. Nielsen: Usability Heuristics for UI Design Recognition rather than recall Minimize the user's memory load by making objects, actions, and options visible. The user should not have to remember information from one part of the dialogue to another. Instructions for use of the system should be visible or easily retrievable whenever appropriate. Non-Modality CC, Intentions, Menus
  • 90. Evaluation J. Nielsen: Usability Heuristics for UI Design Flexibility and efficiency of use Accelerators – unseen by the novice user – may often speed up the interaction for the expert user such that the system can cater to both inexperienced and experienced users. Allow users to tailor frequent actions. Keyboard Shortcuts (adaptable) Intentions, Quickfixes, Refac‘ings
  • 91. Evaluation J. Nielsen: Usability Heuristics for UI Design Aesthetic and minimalist design Dialogues should not contain information which is irrelevant or rarely needed. Every extra unit of information in a dialogue competes with the relevant units of information and diminishes their relative visibility. Multiple Projections/Views Intentions, Quick Fixes, etc.
  • 92. Evaluation J. Nielsen: Usability Heuristics for UI Design Help users recognize, diagnose, and recover from errors Error messages should be expressed in plain language (no codes), precisely indicate the problem, and constructively suggest a solution. Up to the language designer. Quick Fixes
  • 93. Evaluation J. Nielsen: Usability Heuristics for UI Design Help and documentation Even though it is better if the system can be used without documentation, it may be necessary to provide help and documentation. Any such information should be easy to search, focused on the user's task, list concrete steps to be carried out, and not be too large. Up to the language designer.
  • 95. Conclusions Applications „hide“ Languages No Explicit Tool Support for them LOBAs are useful alternative Connect Business & IT Points to take away LWBs are powerful enough In particular, notations! A lot of stuff is Open Source!
  • 96. THE END. Markus Voelter independent/itemis voelter@acm.org www.voelter.de @markusvoelter Bernd Kolb itemis kolb@itemis.de www.itemis.de @berndkolb Jos Warmer OpenModeling Jos.warmer@openmodeling.nl openmodeling.nl Language-Oriented Business Applications On the way to DSLs for non-programmers