Date post: | 27-Aug-2014 |
Category: |
Software |
Upload: | markus-voelter |
View: | 759 times |
Download: | 0 times |
Markus Voelterindependent/itemis
[email protected]@markusvoelter
Bernd Kolbitemis
@berndkolb
Language-OrientedBusiness Applications
On the way to DSLs for non-programmers
Jos WarmerOpenModeling
1 Background: mbeddr 2 mbeddr Demo 13 JetBrains MPS4 mbeddr Demo 25 Generalization6 LOBA7 Evaluation8 Conclusion
where we arewhat is missing
why
1About mbeddr
About mbeddrLanguage Engineering Embedded Software
An extensible collection of integratedlanguages for embedded software engineering.
About mbeddrLanguage Engineering Embedded Software
An IDE + Debugger for all of them
About mbeddrLanguage Engineering Embedded Software
Open SourceEclipse Public License
http://mbeddr.comhttp://www.eclipse.org/proposals/technology.mbeddr/
2mbeddr Demo IC & Extensions
3JetBrains MPS
About mbeddrBuilt on JetBrains MPS
A Language Workbench
About mbeddrBuilt on JetBrains MPS
Open SourceApache 2.0http://jetbrains.com/mps
About MPSRich Set of Language Aspects
+ Refactorings, Find Usages, Syntax Coloring, Debugging, ...
About MPSProjectional Editing
Parsing Projection
About MPSNotational Flexibility
Regular Code/Text Mathematical
Tables Graphical
About MPSLanguage Composition
L2 L1
Separate Files In One File
Type SystemTransformationConstraints
Type SystemTransformationConstraintsSyntaxEditor/IDE
4mbeddr Demo IIOther Languages
5Generalization
Thought ProcessFrom Data Formats To Languages
Structure, Constraints, Semantics+ Syntax + IDEData Format
Language
Thought ProcessLanguage Engineering
LanguagesLanguage ReuseLanguage ModularizationLanguage CompositionLanguage Engineering
Thought ProcessLanguage Engineering
LanguagesLanguage Engineering
Syntactic Diversity
Text Tables
Math Symbols
GraphicsForms
Thought ProcessLanguage Workbenches
LanguagesLanguage Engineering
Syntactic DiversityBut does this really work?Language Workbenches
Generic Tools, Specific LanguagesIngredients
LanguagesLanguage Engineering
Syntactic Diversity
Language WorkbenchesGeneric Tools
Specific Languag
es(we don‘t have to reimplement editors and synchronizers)
Generic Tools, Specific LanguagesIngredients
LanguagesLanguage Engineering
Syntactic Diversity
Language WorkbenchesGeneric Tools
Specific Languag
essupport
Language WorkbenchesTypical Features
Goto Definition/Find UsagesError Markup/Quick FixesSyntax HighlightingCode CompletionSearch/ReplaceRefactoringDebugging
ReportingVisualizationVersion
Control
Language WorkbenchesTypical Features
for any Language!
Language WorkbenchesTypical Features
Language Workbenches act as the foundation for IDEs for any language.
6LOBA where we are
what is missing
why
6LOBA where we are
what is missing
why
„End User NeedData is King!
“End-Users want to essentially operate on data.
Prof. Dr. Florian MatthesSoftware Engineering for Business Information System
TU Munich
LOBA: WhyFor which kinds of Systems?
Language Workbenches act as the foundation for IDEs for any language.
LOBA: WhyFor which kinds of Systems?
Language Workbenches act as the foundation for IDEs for (m)any applications.
LOBA: WhyFor which kinds of Systems?
many applications?Structured or Formalizable MathematicalData-OrientedLanguage-y
LOBA: WhyFor which kinds of Systems?
many applications?Data ModelsPricing CalculationsFinancial Calculations
ContractsBusiness RulesHighly 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 BusinessStructured 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 BusinessStructured 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 BusinessText 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 BusinessText 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 BusinessClean 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 BusinessClean 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 BusinessLayout
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 BusinessLayout
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 BusinessViewpoints
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 BusinessViewpoints
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 BusinessSumming 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 BusinessSumming Up
Combine the best of Applications/Forms/UIs
and Languages and IDEs.
LOBA: Why[Motivation] Languages!
Applications/Forms/UIs
StructureUser GuidanceTablesViews
Languages + IDEsExpressionsComplex StructuresCode CompletionType CheckingDebuggingRefactoring
vs.
6LOBA 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 NeedData is King!
“End-Users want to essentially operate on data.
Prof. Dr. Florian MatthesSoftware Engineering for Business Information System
TU Munich
„End User NeedData is King!
“End-Users want to essentially operate on data.
Prof. Dr. Florian MatthesSoftware Engineering for Business Information System
TU Munich
Language WorkbenchesAll the IDE Support We Expect
Goto Definition/Find UsagesError Markup/Quick FixesSyntax HighlightingCode CompletionSearch/ReplaceRefactoring
ReportingVisualizationVersion
Control
Language WorkbenchesWhere does App Funtionality go?
DebuggingLive Tests in IDEAdvanced AnalysesExecition via Generation
LOBAWhat is the Scope?
not the mass data – this remains in
databases.
Complex structures, calculations, rules or analyses
at the heart of a business domain.
6LOBA where we are
what is missing
why
LOBA: What is missing/ChallengesApparent Tool Complexity
Too many (too big)menus and buttons
LOBA: What is missing/ChallengesNeed for Simplified Version Control
Too many options.Locking?Realtime?
LOBA: What is missing/ChallengesSome Shortcomings in MPS
Adressed by JetBrains in 2014.
Cross-model generationProjection of computed collectionsBetter Graphical EditingType System PerformanceSome Editor Usability
LOBA: What is missing/ChallengesTraining
Users may not be used to this approach.Training is important.Productivity more useful than Learnability.
LOBA: What is missing/ChallengesSE Best PracticesModularity, Reuse, Injeritance, ...Users may not know
about thesethings, but they may still be necessaryfor efficiency reasons.
7Evaluation
EvaluationUsability Guru Jakon Nielsen
10 Usability Heuristics for UI Design
EvaluationJ. Nielsen: Usability Heuristics for UI Design
Visibility of system statusThe system should always keep users informed about what is going on, through appropriate feedback within reasonable time.
Program is always visibleRealtime Type CheckingScaffolding
EvaluationJ. Nielsen: Usability Heuristics for UI Design
Match between system and the real worldThe 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.
DSLsDomain Notations (Math, Tables)Extensibility, „Grow Language“
EvaluationJ. Nielsen: Usability Heuristics for UI Design
User control and freedomUsers 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/RedoRevert in Version Control
EvaluationJ. Nielsen: Usability Heuristics for UI Design
Consistency and standardsUsers should not have to wonder whether different words, situations, or actions mean the same thing. Follow platform conventions.
Consistent IDEAll languages „work“ the sameDesign unambiguous syntax
EvaluationJ. Nielsen: Usability Heuristics for UI Design
Error preventionEven 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/ConstraintsScaffolding
EvaluationJ. Nielsen: Usability Heuristics for UI Design
Recognition rather than recallMinimize 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-ModalityCC, Intentions, Menus
EvaluationJ. Nielsen: Usability Heuristics for UI Design
Flexibility and efficiency of useAccelerators – 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
EvaluationJ. Nielsen: Usability Heuristics for UI Design
Aesthetic and minimalist designDialogues 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/ViewsIntentions, Quick Fixes, etc.
EvaluationJ. Nielsen: Usability Heuristics for UI Design
Help users recognize, diagnose, and recover from errorsError 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
EvaluationJ. Nielsen: Usability Heuristics for UI Design
Help and documentationEven 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.
8Conclusions
Conclusions
Applications „hide“ LanguagesNo Explicit Tool Support for them
LOBAs are useful alternative
Connect Business & IT
Points to take away
LWBs are powerful enoughIn particular, notations!
A lot of stuff is Open Source!
THE END.Markus Voelter
independent/[email protected]@markusvoelter
Bernd Kolbitemis
@berndkolb
Jos WarmerOpenModeling
Language-OrientedBusiness Applications
On the way to DSLs for non-programmers