Eine Architektur-DSL zur Beschrei- bung und formalen ...

95
Markus Völter [email protected] www.voelter.de @markusvoelter Eine Architektur-DSL zur Beschrei- bung und formalen Verifika@on eingebeAeter Systeme

Transcript of Eine Architektur-DSL zur Beschrei- bung und formalen ...

MarkusVölter [email protected]@markusvoelter

EineArchitektur-DSLzurBeschrei-bungundformalenVerifika@on

eingebeAeterSysteme

1IndustryTrends

Complexity

Mass Customization

Time To Market

2Posi@oningand

CurrentChallenges

Requirements+Architecture

Requirements Architecture

Itera@on1

Itera@on2

Itera@on3

Itera@onn

Specifica@on= +

...

Requirements

SystemArchitecture

SystemDesign

So<wareArchitecture

So<wareImplementa?on

So<wareIntergra?on

ComponentIntegra?on

SystemAcceptance

SystemIntegra?on

Posi@oning

CurrentChallengesIIntegra@onofDifferentViewpointsDifferentviewpoints/aspectsarespecifiedwithdifferenttools.Theirintegra@onintermsofreferen@alintegrity,seman@cstoolingandversioncontrolistediousanderrorprone.LeadstoWissensverlust.

UbiquituousTracingManydifferentnormsrequirethat(partsof)ar@factsaretracedtoother(p.o.)[email protected].

SuitableAbstrac@onsandNota@onsDifferentviewpoints/stakeholdersrequiredifferentabstrac@[email protected].

CurrentChallengesII„LiveModels“Modelsmustbemorethan„just“[email protected],simula@onorderiva@onofotherar@factsareo]ennotsupported–helpsmodelsstayrelevantover@me.

ToolProduc@vityManyoftoday‘smodelingtoolsarejustpainfultouseintermsofproduc@vityandusability.Asignificantimprovementisnecessarytomakepeoplewanttousethesetools.

Extensibility/AdaptabilityTools,LanguagesandAnalysesshouldbeadaptabletothespecificneedsofdomains,projectsandorganiza@ons.

3IETS3Approach

IETS3ApproachIAcommon,extensibletoolplaaormSupportsIntegra@onofDifferentViewpointsbecauseallarejustlanguagesonthatsameplaaorm.AllmodelsarestoredinVCSwiththeassociateddiff/mergeworkflows.SupportsUbiquituousTracingbecausetracescanbeaAachedtoarbitrarymodelelementsandmaypointtoanotherelementortotargetsoutsidetheplaaorm.

ALanguageWorkbenchastheBasisEveryViewpointisexpressedasalanguagethatusessuitableabstrac@onsandnota@ons(text,diagrams,tables,math).ItalsosupportsmodularExtensibilityofalloftheselagbuages.New,project-specificlanguagescanbebuilt.LWBisanIDE,withprovenProduc@vityandandUsability.

IETS3ApproachIIIncreasedFormalitySupportsdifferentdegreesofformality(non-formal,semi-formalandformallanguages).ThisisthebasisforLiveModelsintermsofanalyses,simula@[email protected]@cular,analysesareintegratedasfirstclassci@zensandincludereferen@alintegritychecks,simpleconstraints,typesystemsandformalverifica@ontools.

IncrementalityWewillsupporttheincrementalincreaseofformalitybothbetweenlanguages(textualrequirementsvs.mathema@calequa@ons)butalsowithinlanguages(dataitemname->type->constraints->overlap)tosupportthenaturalincreaseinprecisionasaspecifica@onmatures.

UnstructuredStructuredPreciseVerifiable

Prosedocuments,e.g.inWordorExcel

Prose++,ontologies,iden@fiableparts;DOORS.

Variables,numbers,ranges,formulas,CNL

Consistentformalisms(math,logics,tables,statemachines)

ReadUnderstand?

ReferencingTracingLinks

ClearSomeChecksMeasure@RT

TypeChecksSolvingModelCheck‘g

LevelsofFormality

Verifica@on

Constraints/TypeChecks

Analy@calSolving

Simula@on Run@meChecks

InIDELocalRatherObviousErrorsReal@meFeedbackSimpletobuild

InIDEGlobalTrickyErrorsExplitlyTriggeredHardertoBuild

InIDEorExternalToolGlobalOp@miza@onsMaytakesome@metorunExpensivetoBuild

InSystem;ReportinIDE?GlobalOp@miza@onsandErrorsLoggedduringTestsorinFieldCostinthefinalsystem

4Enabler:

LanguageWorkbench

Freelydefineintegrate

them

languagesand

LanguageWorkbench

(Mar@nFowler,2004)

powerfuledi@ngtes@ng

refactoringdebugging

languagedefini@onIDEdefini@on

implies

+groupware

LanguageWorkbench

(Mar@nFowler,2004)

supportfor„classical“programming

„classical“modeling

and+

LanguageWorkbench

(Mar@nFowler,2004)

There‘snodifference!

ALanguageWorkbench–atoolfordefining,composingandusingecosystemsoflanguages.

OpenSourceApache2.0hAp://jetbrains.com/mps

V3.3iscurrentV3.4tobereleasedSummer2016

[LanguageWorkbench]

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

ComprehensiveSupportformanyaspectsofLanguageDefini@on.

Parsing Projec@onalEdi@ng

[Projec@onalEdi@ng]

RegularCode/Text Mathema@cal

Tables Graphical

Syntac@cFlexibility[Projec@onalEdi@ng]

RegularCode/Text Mathema@cal

Tables Graphical

Syntac@cFlexibility[Projec@onalEdi@ng]

L2 L1

SeparateFiles InOneFile

TypeSystemTransforma@onConstraints

TypeSystemTransforma@onConstraintsSyntaxIDE

LanguageComposi@on[Projec@onalEdi@ng]

50+extensionstoC10+extensionstorequirementslang.

Nochangetodefini@onofor

ModularLanguageComposi@on[Projec@onalEdi@ng]

L2L1

inordertousethemtogether.

LHost LEmb+Embedding

=LAdapt +

LBase LExt+Extension

=

LBase LExt1+

ExtensionComposi@on

=LExt2+

4Integra@on

Tvs.L

MPS

Requirements

ComponentArchitectures

FeatureModels

Expres-sions

Performance

Safety

Security

(UserExtensions)

High-LevelBehavior

CoreLanguages

AspectsofSystemModels

StructureSignaturesModularityProvides/Uses

BehaviorDataRangesCondi@onsPre/PostCondi@onsProtocolStateMachines

QoS/Non-Func.PerformanceTiming,FrequencyResourcesSecuritySafety

[TypicalIntegra@on]

DSL 1

Tool A

DSL 2

DSL 3

Tool B

DSL 4

Tool B

DSL 5

[TypicalIntegra@on:Problems]

Syntax Type System Semantics

IDE Tools in general File Formats

Essential

Accid

ental Implementation Platforms

Bad or incomplete APIs Lossy/Undocumented File Formats Business Reasons

[Language-OrientedApplica@ons]

DSL 1

Workbench

DSL 2 DSL 3

DSL 4 DSL 5 DSL N ...

IntegrateEveryToolintoone?Realis@c?

G

IK

AM

B

J

C

F

H

LE

D

IntegrateEveryToolintoone?Realis@c?

G

IK

A

B

C

F

H

LE

D

J

IntegrateEveryToolintoone?Realis@c?

A B

CDEF

G

Cohesion&CouplingAswithallotherso<ware...

Guidedby

5CandidateLanguages

PossibleLanguages-Structure

Glossaries hNp://de.wikipedia.org/wiki/GlossarOntologies

hNp://de.wikipedia.org/wiki/Ontologie_%28Informa?k%29ProductBreakdownStructures

hNp://en.wikipedia.org/wiki/Product_breakdown_structureKomponentendiagramme

hNp://de.wikipedia.org/wiki/KomponentendiagrammDatenstrukturen

PossibleLanguages–BehaviorIBoolescheRegeln

(incl.Latching,EdgeDetec?on,Zeitverzögerungen)

Mathema@scheAbstrak@onenundNota?onenmitSymbolenwieBruchstrich,Sum-SymboloderWurzelzeichen

TabellarischeWertesammlungenmitKonsistenzregelnundBeziehungen

Ablauvechreibungen/ProzessangelehntanAk?vitätsdiagramme

ZustandsmaschinenhNp://de.wikipedia.org/wiki/Zustandsdiagramm_%28UML%29

Geschä]sregelnàlaDrools

hNp://en.wikipedia.org/wiki/Drools

MessageSequenceChartshNp://de.wikipedia.org/wiki/Message_Sequence_Chart

PossibleLanguages–BehaviorII

TimingDiagrammehNp://de.wikipedia.org/wiki/Zeitverlaufsdiagramm

ControlledNaturalLanguage

hNp://en.wikipedia.org/wiki/Controlled_natural_languageExpressiveDecisionTables

hNp://ieeexplore.ieee.org/xpl/ar?cleDetails.jsp?tp=&arnumber=6800429Parnas'Tables

hNps://cs.uwaterloo.ca/~jmatlee/talks/parnas01.pdfBDDSpezifika@onen

hNp://de.wikipedia.org/wiki/Behavior_Driven_Development

PossibleLanguages–Non-Func@onals

Qualitäts-/SicherheitsaAributeSafetyPaAernsGoalStructuringNota@on(GSN)

hNp://www.goalstructuringnota?on.info/FailureModeandEffectsAnalysis(FMEA)

hNp://de.wikipedia.org/wiki/FMEAFaultTreeAnalysis(FTA)

hNp://en.wikipedia.org/wiki/Fault_tree_analysis

PossibleLanguages–CrossCu{ng

FeatureModelshNp://en.wikipedia.org/wiki/Feature_model

5aExis@ngLanguages

Requirements

FeatureModeling

Func@onalExpressions

DataModeling

HierarchicalComponents

PerformanceModelingI

PerformanceModelingII

PerformanceModelingIII

6LessonsLearned

WhyVersionControl

WhyVersionControl

ConsistencyacrossTeam

WhyVersionControl

ConsistencyacrossTeamDevelopmentHistory

WhyVersionControl

ConsistencyacrossTeamDevelopmentHistoryTimeMachine

WhyVersionControl

ConsistencyacrossTeamDevelopmentHistoryTimeMachineBranching(Feature,Version)

WhyVersionControl

ConsistencyacrossTeamDevelopmentHistoryTimeMachineBranching(Feature,Version)SupportStaging

HowdoyouachieveConsistency

StrictLanguageCross-ReferencesModulariza@onandReuseAutoma@cDeriva@onbasedonrules(transforma@on,genera@on)

CommonRespositoryVersionControlSystemPeriodic,GlobalChecks/Reports

TheLanguageisnotEnough

Language

GreatIDE

Analyses

Refactorings

Tes@ng

Debuggers

Abstrac@onsNota@ons

SyntaxColoringCodeComple@onGotoDefini@on

RelevantGoodErrors

AlignedwithProcesses

WriteTestsRunthem

ReportBack

AnimateExecu@onSimulators

GOOD

GREAT

Requirementsonthetool

BeagreatLWB

Supportallthelanguagegoodnesswetalked

aboutsofar.

obviously

Produc@vity

Quicklyevolvethelanguageasthe

(understandingof)domainchanges

Performance

Nobodywantstoworkwithasluggishtool

Scalability

Non-triviallanguagesand

significantmodelsizes

Evolu@onSupport

Migrateexis@ngmodelsasthelanguagesevolve.

Friendliness

Don‘toverwhelmenduserswithtoomuch„cru]“

Explorability

Ensurethelanguagecanbeexplored

Doesthisscale?

Doestheapproachscale?

Ifstructure,formaliza@on,andtoolsupportdon‘tscale,

Whatarethealterna@ves?Excel?Wikis?ProseDocuments?

thenwhatwill??

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

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

Intermsoflanguagecomplexity?Yes,inpar@cular,sinceyoucanmodularizethelanguagedefini@ons.

CanIfindthepeopletodothis?

CanIfindthepeopletodothis?Yes,butitisasignificantchange,so:-itmaybeasignificanteduca@on/trainingeffort.-afewpeoplemightnotgetit-afewpeoplemaynotwanttodoit.

CanIfindthepeopletodothis?Yes,butitisasignificantchange,so:-itmaybeasignificanteduca@on/trainingeffort.-afewpeoplemightnotgetit-afewpeoplemaynotwanttodoit.

8Summary

SystemSpecifica@onrequiresanintegratedmixofincreasingly

formallanguages.

IETS3isdevelopinganIDEbasedontheseprinciples.

source

[Read&Learn]

Thank [email protected]@markusvoelter