SlideShare a Scribd company logo
Markus Völter
voelter@acm.org
www.voelter.de
@markusvoelter
Using Language Workbenches
and Domain-Specific Languages
for Safety-Critical Software Development
M. Voelter, B. Kolb, K. Birken, F. Tomassetti, P.
Alff, L. Wiart, A. Wortmann, A. Nordmann
Markus Völter
voelter@acm.org
www.voelter.de
@markusvoelter
Using Language Workbenches
and Domain-Specific Languages
for Safety-Critical Software Development
M. Voelter, B. Kolb, K. Birken, F. Tomassetti, P.
Alff, L. Wiart, A. Wortmann, A. Nordmann
1
Business Context
and Problem
Context
Mobile Apps that help patients w/ treatments
Monitor side-effects and recommend actions
Manage dosage of medications
Context
Mobile Apps that help patients w/ treatments
Monitor side-effects and recommend actions
Manage dosage of medications
“Algorithms“ for recommendations and dosage at
the core of these apps.
Safety-critical, since they could hurt patients.
Customer develops many different
apps/algos like this, efficiency of
algo development is key.
Context
Safety
Productivity/
Agility
Regulatory
You
are
here
2
Solution Approach
Solution Approach
Health care professionals
directly „code“ algos, using
a suitable language.
Avoids indirections through
requirements docs.
Speed up dev significantly.
}Pretty typical
DSL-based dev-
approach.
What good is all the abstraction if we cannot
trust the translation to the implementation?
Some Language Impressions I
Some Language Impressions II
Some Language Impressions IV
Some Language Impressions V
Languages Used
Languages Used
What good is all the abstraction if we cannot
trust the translation to the implementation?
System Architecture
What good is all the abstraction if we cannot
trust the translation to the implementation?
What good is all the abstraction if we cannot
trust the translation to the implementation?
System Architecture & Safety Standards
Tools may introduce additional systematic errors if faulty.
Safety standards require reliable mitigation of such errors.
DO-178C EN50129 IEC62304 ISO26262
What good is all the abstraction if we cannot
trust the translation to the implementation?
System Architecture & Safety Standards
Tools may introduce additional systematic errors if faulty.
Safety standards require reliable mitigation of such errors.
DO-178C EN50129 IEC62304 ISO26262
Good Abstractions
Good Notations
Simulation
Testing
=> Checking
=> Review
=> Experimentation
=> Trust
3
Safety
What good is all the abstraction if we cannot
trust the translation to the implementation?
Unqualified Tools!
End-to-end testing required.
How to do this without exploding effort?
Unqualified Tools!
Redundancy
catch errors in redundant path
while reducing manual effort.
Automated
+ specific risk mitigations
+ Risk Analysis + Mitigations
Modeling Architecture
Model the Algo/System with the DSL and also
model the tests/verification. Then translate both
and execute on the level of the implementation.
Risk Analysis
Mitigations – Safe Modeling Architecture
Mitigations – Safe Modeling Architecture
use redundant execution on two execution engines
use different developers for the two trafos
review a subset of the generated code
clearly define and QA the DSL
to use fuzzing on the tests
ensure high coverage for the tests
run the tests on the final device
perform static analysis on the generated code
perform penetration testing on the final system
and use architectural safety mechanisms.
only these specific to DSL use
Mitigations – Safe Modeling Architecture
use redundant execution on two execution engines
Lots of overhead? Not really.
C++ interpreter on device
In-IDE Java Interpreter
Validation: the in-IDE interpreter is used for interactive
testing, exploration, understanding, simulation. HCP‘s
single-most appreciated use of the models!
Verification: addresses unrelated but compensating, as well
as related errors in the transformations. Does not rely on
trafo engine, so finds error in it. It‘s also simple (!fast), so acts
as a specification.
Test Stats and other Numbers
100% line coverage regarding language structure, Java
interpreter and C++ interpreter
Validation Effort Reduction from 50 PD to 15 PD
Test Setup Effort reduced by a factor of 20
Shortened Turnaround for req -> impl -> write tests ->
execute tests b/c of much better tool integration
„Tremendous Speedup“ for changes to algo after it has
been validated – automatic reexecution of everything.
Two reference Algos, 305 test cases for Bluejay, 297 for
Greenjay, plus lower-level tests for decision tables and trees
Coverage Analysis
For everything that can be seen as taking
a list of arguments, those can be synthesized.
Test Generation
For a set of tests that all succeed, if after a
change to the program they still do, this is
a problem.
Mutation / Fuzzing
4
Did it work?
Of course.
Everything got cheaper, faster and better :-)
FDA pre-sub.
Iteration times
Stakeholder collaboration
Quality
But it wasn’t all smooth sailing …
Culture Change
Investment
WRAP UP
http://voelter.de/data/pub/MPS-in-Safety-1.0.pdf
Overall Efficiency and Quality
Developing a good DSL is Work
The Safety Mechanisms Work -
Formality and Fancy Notations
A Model is not enough -
goals were achieved as expected.
both conceptually and technically.
overall error rate much lower than in manual coding
as supported by MPS are useful for validation
analysis, simulation, testing, debugging is crucial.
Yes, we‘d do it again.

More Related Content

PPTX
Regression testing
PDF
Software reliability models error seeding model and failure model-iv
PPTX
All you need to know about regression testing | David Tzemach
PDF
What is Regression Testing? | Edureka
DOCX
Concept of Failure, error, fault and defect
PPT
Taxonomy for bugs
PPT
Testing software security
PDF
Introduction to Software Testing
Regression testing
Software reliability models error seeding model and failure model-iv
All you need to know about regression testing | David Tzemach
What is Regression Testing? | Edureka
Concept of Failure, error, fault and defect
Taxonomy for bugs
Testing software security
Introduction to Software Testing

What's hot (20)

PPT
Checklist for website testing
PPT
Software Testing
PPT
Why test software
PPT
Reporting On The Testing Process
PDF
Software reliability
PDF
Stm unit1
PDF
4. The Software Development Process - Testing
PDF
Using formal methods in Industrial Software Development
PPTX
Measuring the Code Quality Using Software Metrics
PPTX
Presentation On Software Testing Bug Life Cycle
PPT
Testing fundamentals
PDF
Software testing axioms
PPT
Industrial Training in Software Testing
DOCX
Software testing techniques
PPSX
Manual testing
PDF
Software Testing without Requirements: Survival Guide
PPTX
Test case writing
PDF
Rayleigh model
ODP
Defects in software testing
Checklist for website testing
Software Testing
Why test software
Reporting On The Testing Process
Software reliability
Stm unit1
4. The Software Development Process - Testing
Using formal methods in Industrial Software Development
Measuring the Code Quality Using Software Metrics
Presentation On Software Testing Bug Life Cycle
Testing fundamentals
Software testing axioms
Industrial Training in Software Testing
Software testing techniques
Manual testing
Software Testing without Requirements: Survival Guide
Test case writing
Rayleigh model
Defects in software testing
Ad

Similar to Using language workbenches and domain-specific languages for safety-critical software development (20)

PPT
Testing Presentation
PPT
Manual testing visonia
PPTX
Automating The Process For Building Reliable Software
PDF
Enhancing Quality and Test in Medical Device Design - Part 2.pdf
 
PPT
12 sdd lesson testing and evaluating
PPTX
Software Testing Concepts
PPT
Automated Regression Testing for Embedded Systems in Action
PDF
Software_testing Unit 1 bca V.pdf
PPT
Testing Software Solutions
PPT
Future of QA
PPT
Futureofqa
PPTX
Lecture9 10.pptx or software testing pptx
PDF
OMSOFTWARE NEW Service
PDF
Software reliability engineering
PPTX
Testing concepts
DOCX
Lisa_DiFazio_SQA_Resume
PPT
Testing strategies
DOCX
Software Testing Interview Questions For Experienced
PDF
The Design, Evolution and Use of KernelF
PPTX
Automation testing
Testing Presentation
Manual testing visonia
Automating The Process For Building Reliable Software
Enhancing Quality and Test in Medical Device Design - Part 2.pdf
 
12 sdd lesson testing and evaluating
Software Testing Concepts
Automated Regression Testing for Embedded Systems in Action
Software_testing Unit 1 bca V.pdf
Testing Software Solutions
Future of QA
Futureofqa
Lecture9 10.pptx or software testing pptx
OMSOFTWARE NEW Service
Software reliability engineering
Testing concepts
Lisa_DiFazio_SQA_Resume
Testing strategies
Software Testing Interview Questions For Experienced
The Design, Evolution and Use of KernelF
Automation testing
Ad

More from Markus Voelter (20)

PPTX
Consulting
PDF
Build your own Language - Why and How?
PDF
Deklarative Smart Contracts
PDF
What's Missing in Language Workbenches
PDF
How Domains Shape Languages
PDF
Why Modeling Suck Sucks
PDF
Fusing Modeling and Programming into Language-Oriented Programming
PDF
The future of DSLs - functions and formal methods
PDF
Lessons Learned from building mbeddr
PDF
Envisioning the Future of Language Workbenches
PPTX
Architecting Domain-Specific Languages
PPTX
Generic Tools - Specific Languages (PhD Defense Slides)
PPTX
Language-Oriented Business Applications
PPTX
Generic Tools, Specific Laguages
PPTX
Domain Specific Language Design
PPTX
From Programming to Modeling And Back Again
PPTX
Faszination Segelfliegen
PPTX
Introduction To MDD
PPTX
Professional Podcasting Guide
PPTX
DSL Best Practices
Consulting
Build your own Language - Why and How?
Deklarative Smart Contracts
What's Missing in Language Workbenches
How Domains Shape Languages
Why Modeling Suck Sucks
Fusing Modeling and Programming into Language-Oriented Programming
The future of DSLs - functions and formal methods
Lessons Learned from building mbeddr
Envisioning the Future of Language Workbenches
Architecting Domain-Specific Languages
Generic Tools - Specific Languages (PhD Defense Slides)
Language-Oriented Business Applications
Generic Tools, Specific Laguages
Domain Specific Language Design
From Programming to Modeling And Back Again
Faszination Segelfliegen
Introduction To MDD
Professional Podcasting Guide
DSL Best Practices

Recently uploaded (20)

PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Essential Infomation Tech presentation.pptx
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Nekopoi APK 2025 free lastest update
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
medical staffing services at VALiNTRY
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
history of c programming in notes for students .pptx
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
L1 - Introduction to python Backend.pptx
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Reimagine Home Health with the Power of Agentic AI​
PPTX
Odoo POS Development Services by CandidRoot Solutions
Understanding Forklifts - TECH EHS Solution
Essential Infomation Tech presentation.pptx
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Nekopoi APK 2025 free lastest update
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Wondershare Filmora 15 Crack With Activation Key [2025
medical staffing services at VALiNTRY
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
history of c programming in notes for students .pptx
wealthsignaloriginal-com-DS-text-... (1).pdf
Odoo Companies in India – Driving Business Transformation.pdf
L1 - Introduction to python Backend.pptx
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Which alternative to Crystal Reports is best for small or large businesses.pdf
Reimagine Home Health with the Power of Agentic AI​
Odoo POS Development Services by CandidRoot Solutions

Using language workbenches and domain-specific languages for safety-critical software development

  • 1. Markus Völter voelter@acm.org www.voelter.de @markusvoelter Using Language Workbenches and Domain-Specific Languages for Safety-Critical Software Development M. Voelter, B. Kolb, K. Birken, F. Tomassetti, P. Alff, L. Wiart, A. Wortmann, A. Nordmann
  • 2. Markus Völter voelter@acm.org www.voelter.de @markusvoelter Using Language Workbenches and Domain-Specific Languages for Safety-Critical Software Development M. Voelter, B. Kolb, K. Birken, F. Tomassetti, P. Alff, L. Wiart, A. Wortmann, A. Nordmann
  • 4. Context Mobile Apps that help patients w/ treatments Monitor side-effects and recommend actions Manage dosage of medications
  • 5. Context Mobile Apps that help patients w/ treatments Monitor side-effects and recommend actions Manage dosage of medications “Algorithms“ for recommendations and dosage at the core of these apps. Safety-critical, since they could hurt patients. Customer develops many different apps/algos like this, efficiency of algo development is key.
  • 8. Solution Approach Health care professionals directly „code“ algos, using a suitable language. Avoids indirections through requirements docs. Speed up dev significantly. }Pretty typical DSL-based dev- approach. What good is all the abstraction if we cannot trust the translation to the implementation?
  • 15. What good is all the abstraction if we cannot trust the translation to the implementation? System Architecture What good is all the abstraction if we cannot trust the translation to the implementation?
  • 16. What good is all the abstraction if we cannot trust the translation to the implementation? System Architecture & Safety Standards Tools may introduce additional systematic errors if faulty. Safety standards require reliable mitigation of such errors. DO-178C EN50129 IEC62304 ISO26262
  • 17. What good is all the abstraction if we cannot trust the translation to the implementation? System Architecture & Safety Standards Tools may introduce additional systematic errors if faulty. Safety standards require reliable mitigation of such errors. DO-178C EN50129 IEC62304 ISO26262 Good Abstractions Good Notations Simulation Testing => Checking => Review => Experimentation => Trust
  • 19. What good is all the abstraction if we cannot trust the translation to the implementation? Unqualified Tools!
  • 20. End-to-end testing required. How to do this without exploding effort? Unqualified Tools! Redundancy catch errors in redundant path while reducing manual effort. Automated + specific risk mitigations
  • 21. + Risk Analysis + Mitigations Modeling Architecture Model the Algo/System with the DSL and also model the tests/verification. Then translate both and execute on the level of the implementation.
  • 23. Mitigations – Safe Modeling Architecture
  • 24. Mitigations – Safe Modeling Architecture use redundant execution on two execution engines use different developers for the two trafos review a subset of the generated code clearly define and QA the DSL to use fuzzing on the tests ensure high coverage for the tests run the tests on the final device perform static analysis on the generated code perform penetration testing on the final system and use architectural safety mechanisms. only these specific to DSL use
  • 25. Mitigations – Safe Modeling Architecture use redundant execution on two execution engines Lots of overhead? Not really. C++ interpreter on device In-IDE Java Interpreter Validation: the in-IDE interpreter is used for interactive testing, exploration, understanding, simulation. HCP‘s single-most appreciated use of the models! Verification: addresses unrelated but compensating, as well as related errors in the transformations. Does not rely on trafo engine, so finds error in it. It‘s also simple (!fast), so acts as a specification.
  • 26. Test Stats and other Numbers 100% line coverage regarding language structure, Java interpreter and C++ interpreter Validation Effort Reduction from 50 PD to 15 PD Test Setup Effort reduced by a factor of 20 Shortened Turnaround for req -> impl -> write tests -> execute tests b/c of much better tool integration „Tremendous Speedup“ for changes to algo after it has been validated – automatic reexecution of everything. Two reference Algos, 305 test cases for Bluejay, 297 for Greenjay, plus lower-level tests for decision tables and trees
  • 28. For everything that can be seen as taking a list of arguments, those can be synthesized. Test Generation
  • 29. For a set of tests that all succeed, if after a change to the program they still do, this is a problem. Mutation / Fuzzing
  • 31. Of course. Everything got cheaper, faster and better :-) FDA pre-sub. Iteration times Stakeholder collaboration Quality But it wasn’t all smooth sailing … Culture Change Investment
  • 34. Overall Efficiency and Quality Developing a good DSL is Work The Safety Mechanisms Work - Formality and Fancy Notations A Model is not enough - goals were achieved as expected. both conceptually and technically. overall error rate much lower than in manual coding as supported by MPS are useful for validation analysis, simulation, testing, debugging is crucial. Yes, we‘d do it again.