Language-Oriented Business Applications

96
Markus Voelter independent/itemis [email protected] www.voelter.de @markusvoelter Bernd Kolb itemis [email protected] www.itemis.de @berndkolb Language-Oriented siness Applicatio n the way to DSLs for non-programme Jos Warmer OpenModeling Jos.warmer@openmodeling. nl openmodeling.nl

description

Traditionally, DSLs have been targeted at "specialized programmers" or at least at people with a strong technical background such as engineers, mathematicians or scientists. However, DSLs can also be very useful for people who work in fields that are less technical, and more on the business side of the universe. In this session we discuss our experiences in building DSLs for business people, i.e. non-IT people who know their respective domain well. These people are not necessarily experienced in structured (or even formal) representation of their expert knowledge, and might not even be experts in computer usage. Over the last few years, Markus, Jos & Bernd have gained some valuable experience into the kinds of domains, people, languages, and notations that make this approach feasible. It turns out that the requirements for DSLs and the tools used can be quite different for business users. The goal of this session is to present this experience and start a discussion about how to move the field forward. The experiences are taken from Bernd's and Markus's work with Intentional and Achmea Insurance, Jos's work for an insurance company in Porto, and Markus's and Bernd's work on the requirements language in mbeddr.

Transcript of Language-Oriented Business Applications

Page 1: Language-Oriented Business Applications

Markus Voelterindependent/itemis

[email protected]@markusvoelter

Bernd Kolbitemis

[email protected]

@berndkolb

Language-OrientedBusiness Applications

On the way to DSLs for non-programmers

Jos WarmerOpenModeling

[email protected]

Page 2: Language-Oriented Business Applications

1 Background: mbeddr 2 mbeddr Demo 13 JetBrains MPS4 mbeddr Demo 25 Generalization6 LOBA7 Evaluation8 Conclusion

where we arewhat is missing

why

Page 3: Language-Oriented Business Applications

1About mbeddr

Page 4: Language-Oriented Business Applications

About mbeddrLanguage Engineering Embedded Software

An extensible collection of integratedlanguages for embedded software engineering.

Page 5: Language-Oriented Business Applications

About mbeddrLanguage Engineering Embedded Software

An IDE + Debugger for all of them

Page 6: Language-Oriented Business Applications

About mbeddrLanguage Engineering Embedded Software

Open SourceEclipse Public License

http://mbeddr.comhttp://www.eclipse.org/proposals/technology.mbeddr/

Page 7: Language-Oriented Business Applications

2mbeddr Demo IC & Extensions

Page 8: Language-Oriented Business Applications

3JetBrains MPS

Page 9: Language-Oriented Business Applications

About mbeddrBuilt on JetBrains MPS

A Language Workbench

Page 10: Language-Oriented Business Applications

About mbeddrBuilt on JetBrains MPS

Open SourceApache 2.0http://jetbrains.com/mps

Page 11: Language-Oriented Business Applications

About MPSRich Set of Language Aspects

+ Refactorings, Find Usages, Syntax Coloring, Debugging, ...

Page 12: Language-Oriented Business Applications

About MPSProjectional Editing

Parsing Projection

Page 13: Language-Oriented Business Applications

About MPSNotational Flexibility

Regular Code/Text Mathematical

Tables Graphical

Page 14: Language-Oriented Business Applications

About MPSLanguage Composition

L2 L1

Separate Files In One File

Type SystemTransformationConstraints

Type SystemTransformationConstraintsSyntaxEditor/IDE

Page 15: Language-Oriented Business Applications

4mbeddr Demo IIOther Languages

Page 16: Language-Oriented Business Applications

5Generalization

Page 17: Language-Oriented Business Applications

Thought ProcessFrom Data Formats To Languages

Structure, Constraints, Semantics+ Syntax + IDEData Format

Language

Page 18: Language-Oriented Business Applications

Thought ProcessLanguage Engineering

LanguagesLanguage ReuseLanguage ModularizationLanguage CompositionLanguage Engineering

Page 19: Language-Oriented Business Applications

Thought ProcessLanguage Engineering

LanguagesLanguage Engineering

Syntactic Diversity

Text Tables

Math Symbols

GraphicsForms

Page 20: Language-Oriented Business Applications

Thought ProcessLanguage Workbenches

LanguagesLanguage Engineering

Syntactic DiversityBut does this really work?Language Workbenches

Page 21: Language-Oriented Business Applications

Generic Tools, Specific LanguagesIngredients

LanguagesLanguage Engineering

Syntactic Diversity

Language WorkbenchesGeneric Tools

Specific Languag

es(we don‘t have to reimplement editors and synchronizers)

Page 22: Language-Oriented Business Applications

Generic Tools, Specific LanguagesIngredients

LanguagesLanguage Engineering

Syntactic Diversity

Language WorkbenchesGeneric Tools

Specific Languag

essupport

Page 23: Language-Oriented Business Applications

Language WorkbenchesTypical Features

Goto Definition/Find UsagesError Markup/Quick FixesSyntax HighlightingCode CompletionSearch/ReplaceRefactoringDebugging

ReportingVisualizationVersion

Control

Page 24: Language-Oriented Business Applications

Language WorkbenchesTypical Features

for any Language!

Page 25: Language-Oriented Business Applications

Language WorkbenchesTypical Features

Language Workbenches act as the foundation for IDEs for any language.

Page 26: Language-Oriented Business Applications

6LOBA where we are

what is missing

why

Page 27: Language-Oriented Business Applications

6LOBA where we are

what is missing

why

Page 28: Language-Oriented Business Applications

„End User NeedData is King!

“End-Users want to essentially operate on data.

Prof. Dr. Florian MatthesSoftware Engineering for Business Information System

TU Munich

Page 29: Language-Oriented Business Applications

LOBA: WhyFor which kinds of Systems?

Language Workbenches act as the foundation for IDEs for any language.

Page 30: Language-Oriented Business Applications

LOBA: WhyFor which kinds of Systems?

Language Workbenches act as the foundation for IDEs for (m)any applications.

Page 31: Language-Oriented Business Applications

LOBA: WhyFor which kinds of Systems?

many applications?Structured or Formalizable MathematicalData-OrientedLanguage-y

Page 32: Language-Oriented Business Applications

LOBA: WhyFor which kinds of Systems?

many applications?Data ModelsPricing CalculationsFinancial Calculations

ContractsBusiness RulesHighly Structured Requirements

Page 33: Language-Oriented Business Applications

LOBA: Why[Motivation] Languages!

A language may be hiding behind many of these!

Page 34: Language-Oriented Business Applications

LOBA: Why[Motivation] Languages!

But: users don‘t want to be programmers!

Page 35: Language-Oriented Business Applications

LOBA: Why[Motivation] Languages!

What makes a business user feel like a programmer???

Page 36: Language-Oriented Business Applications

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.

Page 37: Language-Oriented Business Applications

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.

Page 38: Language-Oriented Business Applications

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 !

Page 39: Language-Oriented Business Applications

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.

Page 40: Language-Oriented Business Applications

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!

Page 41: Language-Oriented Business Applications

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 !

Page 42: Language-Oriented Business Applications

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?

Page 43: Language-Oriented Business Applications

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 ?

Page 44: Language-Oriented Business Applications

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

Page 45: Language-Oriented Business Applications

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.

Page 46: Language-Oriented Business Applications

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)

Page 47: Language-Oriented Business Applications

LOBA: IT versus BusinessSumming Up

Combine the best of Applications/Forms/UIs

and Languages and IDEs.

Page 48: Language-Oriented Business Applications

LOBA: Why[Motivation] Languages!

Applications/Forms/UIs

StructureUser GuidanceTablesViews

Languages + IDEsExpressionsComplex StructuresCode CompletionType CheckingDebuggingRefactoring

vs.

Page 49: Language-Oriented Business Applications

6LOBA where we are

what is missing

why

Page 50: Language-Oriented Business Applications

LOBA: Where we are.[Notation] Math (old)

Page 51: Language-Oriented Business Applications

LOBA: Where we are.[Notation] Math (new) I

Page 52: Language-Oriented Business Applications

LOBA: Where we are.[Notation] Math (new) II

Page 53: Language-Oriented Business Applications

LOBA: Where we are.[Notation] Tables

Page 54: Language-Oriented Business Applications

LOBA: Where we are.[Notation] Tables II

Page 55: Language-Oriented Business Applications

LOBA: Where we are.[Notation] Graphical

Page 56: Language-Oriented Business Applications

LOBA: Where we are.[Notation] Mixed Content

Page 57: Language-Oriented Business Applications

LOBA: Where we are.[Guided Editing] Form-Like

Page 58: Language-Oriented Business Applications

LOBA: Where we are.[Guided Editing] Form-Like

Page 59: Language-Oriented Business Applications

LOBA: Where we are.[Guided Editing] Form-Like II

Page 60: Language-Oriented Business Applications

LOBA: Where we are.[Guided Editing] Editor Buttons

Page 61: Language-Oriented Business Applications

LOBA: Where we are.[Guided Editing] Code Completion

Page 62: Language-Oriented Business Applications

Business Apps[Context Aware] Different Projections

Page 63: Language-Oriented Business Applications

Business Apps[Context Aware] Different Projections

Page 64: Language-Oriented Business Applications

LOBA: Where we are.[Structure] Tree Views I

Page 65: Language-Oriented Business Applications

LOBA: Where we are.[Structure] Tree Views II

Page 66: Language-Oriented Business Applications

LOBA: Where we are.[Context Aware] Visualization

Page 67: Language-Oriented Business Applications

LOBA: Where we are.[Context Aware] Visualization II

Page 68: Language-Oriented Business Applications

LOBA: Where we are.[Live Code] Error Checking

Page 69: Language-Oriented Business Applications

LOBA: Where we are.[Live Code] Interpreted Tests

Page 70: Language-Oriented Business Applications

LOBA: Where we are.[Live Code] Debugging

Page 71: Language-Oriented Business Applications

„End User NeedData is King!

“End-Users want to essentially operate on data.

Prof. Dr. Florian MatthesSoftware Engineering for Business Information System

TU Munich

Page 72: Language-Oriented Business Applications

„End User NeedData is King!

“End-Users want to essentially operate on data.

Prof. Dr. Florian MatthesSoftware Engineering for Business Information System

TU Munich

Page 73: Language-Oriented Business Applications

Language WorkbenchesAll the IDE Support We Expect

Goto Definition/Find UsagesError Markup/Quick FixesSyntax HighlightingCode CompletionSearch/ReplaceRefactoring

ReportingVisualizationVersion

Control

Page 74: Language-Oriented Business Applications

Language WorkbenchesWhere does App Funtionality go?

DebuggingLive Tests in IDEAdvanced AnalysesExecition via Generation

Page 75: Language-Oriented Business Applications

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.

Page 76: Language-Oriented Business Applications

6LOBA where we are

what is missing

why

Page 77: Language-Oriented Business Applications

LOBA: What is missing/ChallengesApparent Tool Complexity

Too many (too big)menus and buttons

Page 78: Language-Oriented Business Applications

LOBA: What is missing/ChallengesNeed for Simplified Version Control

Too many options.Locking?Realtime?

Page 79: Language-Oriented Business Applications

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

Page 80: Language-Oriented Business Applications

LOBA: What is missing/ChallengesTraining

Users may not be used to this approach.Training is important.Productivity more useful than Learnability.

Page 81: Language-Oriented Business Applications

LOBA: What is missing/ChallengesSE Best PracticesModularity, Reuse, Injeritance, ...Users may not know

about thesethings, but they may still be necessaryfor efficiency reasons.

Page 82: Language-Oriented Business Applications

7Evaluation

Page 83: Language-Oriented Business Applications

EvaluationUsability Guru Jakon Nielsen

10 Usability Heuristics for UI Design

Page 84: Language-Oriented Business Applications

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

Page 85: Language-Oriented Business Applications

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“

Page 86: Language-Oriented Business Applications

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

Page 87: Language-Oriented Business Applications

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

Page 88: Language-Oriented Business Applications

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

Page 89: Language-Oriented Business Applications

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

Page 90: Language-Oriented Business Applications

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

Page 91: Language-Oriented Business Applications

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.

Page 92: Language-Oriented Business Applications

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

Page 93: Language-Oriented Business Applications

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.

Page 94: Language-Oriented Business Applications

8Conclusions

Page 95: Language-Oriented Business Applications

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!

Page 96: Language-Oriented Business Applications

THE END.Markus Voelter

independent/[email protected]@markusvoelter

Bernd Kolbitemis

[email protected]

@berndkolb

Jos WarmerOpenModeling

[email protected]

Language-OrientedBusiness Applications

On the way to DSLs for non-programmers