introducing language-oriented business applications - markus voelter
TRANSCRIPT
L O B A Language-‐Oriented Business Applica4ons
Markus Völter
[email protected] www.voelter.de @markusvoelter
Introducing
1 Business Agility 2 Language Workbenches 3 JetBrains MPS 4 LOBA Examples + Demo 5 The Big Picture 6 Summary
Expressivity for Core Domain Knowledge
User-‐Friendly Nota4on
Tes4ng
Meaningful Analyses
Synthesis of SoZware
Freely define integrate
them
languages and
Language Workbench
(Mar4n Fowler)
+ more detailed criteria I will omit here
powerful edi4ng tes4ng
refactoring debugging
language defini4on IDE defini4on
implies
+ teamwork
Language Workbench
(Mar4n Fowler)
LWBs make Languages Easier
Several different LWBs exist.
Blur the dis4nc4on between programming and modeling.
h4p://languageworkbenches.net
L2 L1
Separate Files In One File
Type System Transforma4on Constraints
Type System Transforma4on Constraints Syntax IDE
Language Composi4on [Projec4onal Edi4ng]
50+ extensions to C 10+ extensions to requirements lang.
Projec4onal Edi4ng provides syntac4c flexibility and lang. extensibility.
Usability Issues are mostly solved.
MPS is great, but alterna4ves exist.
[Enterprise Applica4on] Modellwerkstae
Retail: Invoice Checking, Cash Point Con-‐ trolling, Purchasing Contracts, Inventory Mgt
End Users: 40 users, several sites
Language Users: 6
Language Developers: 1.5
h4p://www.modellwerksta4.org/
Size of System/Data: ??
[Enterprise Applica4on] Bundesagentur für Arbeit
Government Administra4on: IT system for the German employment agency
End Users: 120.000
Language Users: 60 in 6 Scrum Teams
Language Developers: > 10
Size of System/Data: 5.000 model (text) files with 400 UI masks (when done), 300 enTTes, 1.100 operaTons. Database 8TB. 70 App Servers, 15 Linux Boxes.
[Business Applica4on] Insurance Configura4on Tool
Insurance Contract Defini4on: Insurance Math, data types, business/payment rules
End Users: Thousands
Language Users: Dozens
Language Developers: 3
Size of System/Data: ??
<no variables> <no parent>
<no libraries>
<no business objects>
<no parent>
[Business Applica4on] Insurance Configura4on Tool
[Business Applica4on] Insurance Configura4on Tool
Insurance Contract Defini4on: Insurance math, pension payment rules
End Users: Thousands
Language Users: Dozens
Language Developers: 3
Size of System/Data: ??
[Tax/Benefits Applica4on] Dutch Tax Agency (Evalua4on)
Benefits Calcula4on:
End Users: Hundreds
Language Users: 15
Language Developers: 2
Size of System/Data: Process data for 6 million ciTzens, 250 data types, 160 business concepts, 400 message types, 100 business funcTons, 10 services
[Business Applica4on] Telco Demo App
Telco Price Calcula4ons: Data structures, math rules, business rules, contract definiTons
End Users: -‐-‐
Language Users: -‐-‐
Language Developers: 1
Size of System/Data: -‐-‐
[LOBA]
Core Business
Logic }Business Rules (Financial) Calculations
Data Structures Mappings or Queries
Validations Scientific Processes
Contracts
Processes UI
Most business people are able to and want to express themselves precisely!
Let‘s give them the tools to do it!
Structure, Constraints, SemanTcs
+ Syntax + IDE Data Format
Language
Language Workbenches
[almost]
Language Engineering }author analyze
compose execute
Language Workbenches enable us (developers) to build really
expressive tools for business people to work with data effec4vely.
Structure Nota4on Guidance Layout Views IDE/Tool
+ Mixed
+ Predefined
* Clean
-‐ Text -‐
Custom 1
Powerful
Structure Nota4on Guidance Layout Views IDE/Tool
Business oriented languages are very different from what we have
learned about languages for developers. LWBs let you build
such languages.
Let‘s combines the best of Languages and Form-‐based Tools.
L O B A
„Language“ inter-‐ preted liberally – new styles for languages.
A new Paradigm for Applica4ons
L O B A
„Language“ inter-‐ preted liberally – new styles for languages.
A new Paradigm for Applica4ons
Form Lang
Form Language
Expressions „Code“
Code CompleTon Error HighlighTng Version Control Refactoring Debugging
Helper Bu4ons Tables
Rigid Structures Tree Views
VisualizaTons Live InterpretaTon Math NotaTon
Graphical Prose + Code
Expressivity for Core Domain Knowledge User-‐Friendly Nota4on Tes4ng Meaningful Analyses Synthesis of SoZware
Expressivity for Core Domain Knowledge User-‐Friendly Nota4on Tes4ng Meaningful Analyses Synthesis of SoZware
Build Language for Domain!
Expressivity for Core Domain Knowledge User-‐Friendly Nota4on Tes4ng Meaningful Analyses Synthesis of SoZware
Build Language for Domain! You‘ve seen the demos.
Expressivity for Core Domain Knowledge User-‐Friendly Nota4on Tes4ng Meaningful Analyses Synthesis of SoZware
Build Language for Domain! You‘ve seen the demos. Integrated DSLs for tes4ng.
Expressivity for Core Domain Knowledge User-‐Friendly Nota4on Tes4ng Meaningful Analyses Synthesis of SoZware
Build Language for Domain! You‘ve seen the demos. An integrated DSL for tes4ng. Types, Consistency, Checking
Expressivity for Core Domain Knowledge User-‐Friendly Nota4on Tes4ng Meaningful Analyses Synthesis of SoZware
Build Language for Domain! You‘ve seen the demos. An integrated DSL for tes4ng. Types, Consistency, Checking Code Genera4on.
LWBs on the Web Xtext and MPS teams are working on it
It will be months to years un4l these are finished/robust.
Other web-‐LWBs (prototypes) exist: hep://languageworkbenches.net
The Web
If you have to build a business app,
consider using an LWB as the founda4on,
and recas4ng the „applica4on“ as a set of languages.