let‘s build like they build · apps/algos like this, efficiency of algo development is key....

102
Let‘s build Markus Völter [email protected] www.voelter.de @markusvoelter like they build Bernd Kolb [email protected] www.itemis.de @berndkolb

Upload: others

Post on 22-Mar-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Let‘sbuild

MarkusVö[email protected]@markusvoelter

liketheybuild

[email protected]

@berndkolb

Page 2: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

0Motivation

B

Page 3: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,
Page 4: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

1Examples

Page 5: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Healthcare

M

Page 6: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Context&MotivationMobileAppsthathelppatientsw/treatmentsMonitorside-effectsandrecommendactionsManagedosageofmedications

Page 7: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Context&MotivationMobileAppsthathelppatientsw/treatmentsMonitorside-effectsandrecommendactionsManagedosageofmedications

“Algorithms“forrecommendationsanddosageatthecoreoftheseapps.Safety-critical,sincetheycouldhurtpatients.

Customerdevelopsmanydifferentapps/algoslikethis,efficiencyofalgodevelopmentiskey.

Page 8: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Context&Motivation

Healthcareprofessionalsdirectly„code“algos,usingasuitablelanguage.Avoidsindirectionsthroughrequirementsdocs.Speedupdevsignificantly.

} PrettytypicalDSL-baseddev-approach.

Page 9: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

SomeLanguageImpressionsI

Page 10: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

SomeLanguageImpressionsII

Page 11: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

SomeLanguageImpressionsIII

Page 12: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Insurance

B

Page 13: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Context&Motivation

InsurancePrograms

Specify/Program

WriteformalcodeinaDSLmixedwithtablesandtext

NotoolsupportwhatsoeverNotesting(exceptinspection)

NoreuseNomodularityNovaribility

Page 14: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Context&Motivation

InsurancePrograms

Specify/Program

WriteformalcodeinaDSLmixedwithtablesandtext

NotoolsupportwhatsoeverNotesting(exceptinspection)

NoreuseNomodularityNovaribility

Page 15: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

ArealExample:Legacy

InsurancePrograms

„Pixelcrap“ CCode

Debug

Implement

Specify/Program

WriteformalcodeinaDSLmixedwithtablesandtext

NotoolsupportwhatsoeverNotesting(exceptinspection)

Printed,PDF Developerreads„spec“Veryidiomaticimplementation

DevactsasahumancompilerandimplementsitinC

DebuggingdirectlyinCSearch-for-usebytextsearchDon‘ttrustthedocuments–

maybeoutdated!

NoreuseNomodularityNovaribility

Page 16: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

SolutionApproach

InsurancePrograms

WriteformalcodeinaDSLmixedwithtablesandtext

NowwithIDEsupportandexecutabletests

Thesamenotation!

Specify/Program/Test/Debug

Page 17: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

ArealExample:Future

InsurancePrograms

CCode

Generate

IncrementalRefinement/Refactoringoflanguages:

PartiallyautomatedmigrationofmodelsAddmodelnaturalnotations(insurance-specific,math)AddSupportformodularity,reuse,variants

StillexactlythesameCcode,orimprovedasneeded.

Specify/Program/Test/Debug

Page 18: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Salary

M

Page 19: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Context&MotivationCalculateSalaries+TaxesforEmployeesVariousdeploymentplatforms

Variabilityover16StatesBasedonevolvingLaw

ComplexBusinessLogic

TemporalData+ArithmeticsReactiveRules

Dates&Currencies

Page 20: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

CurrenciesandDates

Page 21: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

TemporalData

Page 22: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

ResultDataandRules

Page 23: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

ResultDataandRules

Page 24: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

IDESupport

Page 25: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

2ApproachinaNutshell

B

Page 26: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

IntegrationofFachler

Page 27: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

[BusinessKnowledge]It‘s what makes a business tick.

Distinguishes the business.Business Rules

(Financial) CalculationsData Structures

Mappings or QueriesValidations

Scientific ProcessesContracts

ProcessesUIs

}

Page 28: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

[BusinessKnowledge]It‘s what makes a business tick.

Distinguishes the business.

Contributed not by developers

... but typically implemented in software

Page 29: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

[BusinessKnowledge]SO HOW DOES IT GETINTO THE SOFTWARE?

Contributed not by developers

... but typically implemented in software

Page 30: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Reality

Page 31: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Goal!?

Page 32: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

LetBusiness/Domainpeoplecontributedirectly!

Givethemexpressive,productivetoolstodoso!

Page 33: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

ExpressivityforCoreDomainKnowledge

User-FriendlyNotationGreatTool/IDE

Testing

MeaningfulAnalyses

SynthesisofSoftware

Page 34: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

SeparationfromTechnology

B

Page 35: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

OutdatedTechnologyObscureBusinessLogic

Page 36: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

OutdatedTechnologyNon-UnderstandableLogicExpensivetoEvolve

Fachlichkeit„burried“inimplementationcode.

Page 37: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Technology&BusinessLogicnowhaveconnectedlifecycles.

Page 38: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Goal:SeparatetheLifecycles

Fachlichkeit Technology

Page 39: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

3Technical

M

Page 40: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,
Page 41: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

OutdatedTechnologyNon-UnderstandableLogicExpensivetoEvolve

BusinessLogic

Technology

Page 42: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

MetamodelforBusinessLogic

Clearlydefineddatastructuretoexpressallbusiness-relevantstructures,behaviorsand

non-functionalconcerns.

Page 43: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

MetamodelforBusinessLogic {DataStructures

BehavioralRulesExpressionsValidationsSpecialTypes(eg.temporal)...

Page 44: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

MetamodelforBusinessLogic {DataStructures

BehavioralRulesExpressionsValidationsSpecialTypes(eg.temporal)...

Domainsoftenhavearichlanguage/vocabularyanyway;itjustneedstobeformalized.(DDD:UbiquituousLanguge)

Page 45: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

MetamodelforBusinessLogic

Semantics

Clearlydefineddatastructuretoexpressallbusiness-relevantstructures,behaviorsand

non-functionalconcerns.

Well-definedmeaningofthisdatastructure

Page 46: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

MetamodelforBusinessLogic

Clearlydefineddatastructuretoexpressallbusiness-relevantstructures,behaviorsand

non-functionalconcerns.

Well-definedmeaningofthisdatastructure

IDESupportispossibleEvolutionispossiblePortabilityispossible

TypeCheckingSolver-IntegrationModelCheckingContracts

Semantics

Page 47: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

TechInfrastructure

MetamodelforBusinessLogic

Clearlydefineddatastructuretoexpressallbusiness-relevantstructures,behaviorsand

non-functionalconcerns.

Well-definedmeaningofthisdatastructure

ExecutionEngine

TechnicalPlatformforcorrect,efficientandscalableexecution

Semantics

Page 48: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

MetamodelforBusinessLogic

Clearlydefineddatastructuretoexpressallbusiness-relevantstructures,behaviorsand

non-functionalconcerns.

Well-definedmeaningofthisdatastructure

TechnicalPlatformforcorrect,efficientandscalableexecution

TechInfrastructure

generatecode,deploy

transferdata,interpret

generatecode,deploy

transferdata,interpret

Semantics

Page 49: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

MetamodelforBusinessLogic

TechInfrastructure

generatecode,deploy

transferdata,interpret

Semantics

Page 50: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

TechInfrastructure

MetamodelforBusinessLogic

SemanticsSyntax

Language

generatecode,deploy

transferdata,interpret

Page 51: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

TechInfrastructure

MetamodelforBusinessLogic

SemanticsSyntax

Language

generatecode,deploy

transferdata,interpret

Syntaxiscriticallyimportantfor

ProductivityCommunicationandReviewDomainExpertIntegration

OnlyButtonsandFormsdon‘twork!

Page 52: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

TechInfrastructure

MetamodelforBusinessLogic

SemanticsSyntax

Language

generatecode,deploy

transferdata,interpret

Page 53: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

LanguageWorbench

TechInfrastructure

MetamodelforBusinessLogic

SemanticsSyntax

Language

generatecode,deploy

transferdata,interpret

Page 54: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

ALanguageWorkbench–atoolfordefining,composingandusingecosystemsoflanguages.

Page 55: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

TUDelft

itemis/Typefox

CWIAmsterdam

Solmi/Persiani

Rascal

TheWholePlatform

OtherLanguageWorkbenches

Page 56: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

http://voelter.de/data/pub/LWB-ResultsAndBenchmarks.pdf

Page 57: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

4LessonsLearned

Page 58: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

ALanguageisnotEnough

B

Page 59: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Language

GreatIDE

Analyses

Refactorings

Testing

Debuggers

AbstractionsNotations

SyntaxColoringCodeCompletionGotoDefinition

RelevantGoodErrors

AlignedwithProcesses

WriteTestsRunthem

ReportBack

AnimateExecutionSimulators

GOOD

GREAT

LanguageDesign::MorethanLang

Page 60: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

NotationNotationNotation

B

Page 61: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Math

InsuranceMath

Page 62: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

FeatureModels

ComponentArchitectures

Page 63: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

DataflowDiagrams

Page 64: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

FormStyle

Page 65: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

FormStyle

Fixed

DS

Page 66: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

InfluencesontheLanguage

M

Page 67: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

DomainStructure

ModelPurpose

Analyze,Generate

UserSkills

SoftwareEngineeringPractices

NonFunctionalsPermissions,IP,Sharing

ToolCapabilities

Notations,Editing,Scale

Sep.ofConcernsDifferentViews

Getabetter tool:-)

RefactortowardsStructure

Educate,Putresultsincontext

LanguageDesign::Influences

Page 68: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

DomainStructure

ModelPurpose

Analyze,Generate

UserSkills

SoftwareEngineeringPractices

NonFunctionalsPermissions,IP,Sharing

ToolCapabilities

Notations,Editing,Scale

Sep.ofConcernsDifferentViews

Getabetter tool:-)

RefactortowardsStructure

Educate,Putresultsincontext

LanguageDesign::Influences

Page 69: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

HowtomakePeopleprecise?

M

Page 70: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Precision

Programming!={ Formulas,Rules

DataStructuresTablesValues

}PerformanceScalability

RobustnessDeployment

Page 71: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Doesthisscale?

B

Page 72: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Doestheapproachscale?

Ifstructure,formalization,andtoolsupportdon‘tscale,

Whatarethealternatives?Excel?Wikis?ProseDocuments?

thenwhatwill??

Page 73: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Dothetoolsscale?Intermsofoverallsystemsize?Yes,thesystemhastobebrokendownintomodelsofmanageablesize,asusual.Thisrequiressomethought.

Intermsofteamsize?Yes,sincewerelyonestablishedversioncontrolsystems(git)todealwithgroupwareaspects;andyes,diff/mergeworksasexpected.

Intermsoflanguagecomplexity?Yes,inparticular,sinceyoucanmodularizethelanguagedefinitions.

Page 74: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

CanIfindthepeopletodothis?Yes,butitisasignificantchange,so:- itmaybeasignificanteducation/trainingeffort.- afewpeoplemightnotgetit- afewpeoplemaynotwanttodoit.

Page 75: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Thisisathreat!

B

Page 76: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

PrecisionandFormalityDifferentProcessesHigherEfficiency

->NewSkills->RoleChange->JobLoss

AutomationFocusonEngineeringEmpowerBusinessPpl

->JobLoss->RoleChange->LessImportance

Page 77: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Somepeopleareafraidofthis.Takethemseriously.

Page 78: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Achangeof

thatmustbemanaged!

Page 79: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Isthisthenextlegacysystem?

M

Page 80: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

„ “Today‘ssoftwareistomorrow‘slegacysystem.

Orisit?

Page 81: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

„ “Today‘ssoftwareistomorrow‘s legacysystem.

BusinesschangeishardTechnologychangeishard

SeparationofConcernsKeepBLfreeoftechnology

Makeit„portable“

Page 82: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

LanguageTech1

V1

RuntimeT1

Generator1

Page 83: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

LanguageTech1

V1 V2 V3 ....

Evolution

ExistingmodelsbecomeincompatblewithnewlanguageÞ LanguageVersions

MigrationScripts

RuntimeT1

Generator1

Page 84: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

LanguageTech1

V1 V2 V3 ....

Evolution

RuntimeT1

Generator1

RuntimeT2

Generator2

Retargetting

RuntimeTechoutdated,uncoolorslowÞKeepLangTechnology

KeepModelsBuildnewGenerator

Page 85: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

LanguageTech1 LanguageTech2

....

Migration

V1 V2 V3 .... V4 V5 V6 ....

Evolution Evolution

RuntimeT1

Generator1

RuntimeT2

Generator2 Generator3

LanguageTechoutdated,uncoolÞBuildnewTool

MigrateData Simple,becauseitwell-defineddomainsemanticsandfreefrom„technologystuff“

Retargetting

Page 86: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

„ “Today‘ssoftwareistomorrow‘slegacysystem.

No,itisnot.

Page 87: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

InconflictwithAgile?

M

Page 88: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

MD*andAgileisinConflict.„ “Project Language

DevelopmentSystem

DevelopmentDependon,use

Project1 LanguageDevelopment

Project2 SystemDevelopment

ProjectN…

Dep’don,use

Later:

1

2

Page 89: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

MD*andAgileisinConflict.„ “Project Language

DevelopmentSystem

DevelopmentDependon,use

1

Framework

Library

Platform

Managelikeanyotherintra-projectdependency.

Evolutionofclientcodeiseasier thanforF/L/Pbecauseof

migrationsupport!

Page 90: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

MD*andAgileisinConflict.„ “Project1 Language

Development

Project2 SystemDevelopment

…Dep’don,use

Later:

2

Framework Library Platform

Managelikeanyother3rdpartydepencency: DevelopmentRoadmap

IssueTrackerReleaseNotes...

Page 91: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

MD*andAgileisinConflict.„ “Project2 System

Development3

ModelsandDSLsareanEnabler forAgility: IntegrationofDomainExperts

„Living“RequirementsDecoupledFachlichkeit&Technik

Page 92: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

MD*andAgileisinConflict.„ “Project1 Language

Development4

LeadingLWBsaresoproductive,youcanliterallysitwiththedomainexpertsandinteractivelyprototypelanguages(andthencleanuplater)

I’velookedattheimplementationofthe

languageinMPS,butIdidn’tfindmuch.Isthisallthereis?

Where’sthemagic?

[Customer]

Page 93: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

MD*andAgileisinConflict.„ “Project1 Language

Development4

LeadingLWBsaresoproductive,youcanliterallysitwiththedomainexpertsandinteractivelyprototypelanguages(andthencleanuplater)

Analyze Build Tryout

Cleanup

Stabilize

Validate

1to3days

1hour

I’velookedattheimplementationofthe

languageinMPS,butIdidn’tfindmuch.Isthisallthereis?

Where’sthemagic?

[Customer]

Page 94: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Skills?

B

Page 95: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Organizationsdonothavethenecessaryskills.True.But...„ “

AI BigData

R ES T

Sobuiltit.Evolve.Hire.Buy.

Page 96: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Rockets????

M

Page 97: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,
Page 98: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Furtherdomain-specificextensionstoC.Developedbyend-userlangengineer.

Page 99: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

InfrastructureSpecifics inC

Page 100: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

InfrastructureSpecifics inC

Page 101: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

GeneratedDocumentation

Page 102: Let‘s build like they build · apps/algos like this, efficiency of algo development is key. Context & Motivation Health care professionals directly „code“ algos, using ... Formulas,

Separationofconcernsiskeytoavoidthelegacytrap

DSLscanisolatebusinesslogiccompletelyfromtechnicalconcerns

DSLscanhelpintegratedomainexpertswithcommunication/revieworevencoding

LanguageWorkbenchesenableDSLsbyreducingefforttobuild,composeandmaintainthem

MigratingtoanewLWBisfeasibleb/csemanticsofallmodelsareknown,bydefinition.