eingebeAeter Systeme Markus Vlter voelter@acm.org www.voelter.de - - PowerPoint PPT Presentation

eingebeaeter systeme
SMART_READER_LITE
LIVE PREVIEW

eingebeAeter Systeme Markus Vlter voelter@acm.org www.voelter.de - - PowerPoint PPT Presentation

Eine Architektur-DSL zur Beschrei- bung und formalen Verifika@on eingebeAeter Systeme Markus Vlter voelter@acm.org www.voelter.de @markusvoelter 1 Industry Trends Complexity Mass Customization Time To Market 2 Posi@oning and Current


slide-1
SLIDE 1

Markus Völter voelter@acm.org

www.voelter.de @markusvoelter

Eine Architektur-DSL zur Beschrei- bung und formalen Verifika@on eingebeAeter Systeme

slide-2
SLIDE 2

1

Industry Trends

slide-3
SLIDE 3

Complexity

slide-4
SLIDE 4

Mass Customization

slide-5
SLIDE 5

Time To Market

slide-6
SLIDE 6

2

Posi@oning and Current Challenges

slide-7
SLIDE 7

Requirements + Architecture

Requirements Architecture Itera@on 1 Itera@on 2 Itera@on 3 Itera@on n Specifica@on = + ...

slide-8
SLIDE 8

Requirements System Architecture System Design So<ware Architecture So<ware Implementa?on So<ware Intergra?on Component Integra?on System Acceptance System Integra?on

Posi@oning

slide-9
SLIDE 9

Current Challenges I

Integra@on of Different Viewpoints

Different viewpoints/aspects are specified with different tools. Their integra@on in terms of referen@al integrity, seman@cs tooling and version control is tedious and error prone. Leads to Wissensverlust.

Ubiquituous Tracing

Many different norms require that (parts of) ar@facts are traced to

  • ther (p.o.) ar@facts. Ubiquituous tracing is currently not available.

Suitable Abstrac@ons and Nota@ons

Different viewpoints/stakeholders require different abstrac@ons and different nota@ons. Current tools cannot easily accomodate.

slide-10
SLIDE 10

Current Challenges II

„Live Models“

Models must be more than „just“ the specifica@on. Meaningful analyses, simula@on or deriva@on of other ar@facts are o]en not supported – helps models stay relevant over @me.

Tool Produc@vity

Many of today‘s modeling tools are just painful to use in terms of produc@vity and usability. A significant improvement is necessary to make people want to use these tools.

Extensibility/Adaptability

Tools, Languages and Analyses should be adaptable to the specific needs of domains, projects and organiza@ons.

slide-11
SLIDE 11

3

IETS3 Approach

slide-12
SLIDE 12

IETS3 Approach I

A common, extensible tool plaaorm

Supports Integra@on of Different Viewpoints because all are just languages on that same plaaorm. All models are stored in VCS with the associated diff/merge workflows. Supports Ubiquituous Tracing because traces can be aAached to arbitrary model elements and may point to another element or to targets outside the plaaorm.

A Language Workbench as the Basis

Every Viewpoint is expressed as a language that uses suitable abstrac@ons and nota@ons (text, diagrams, tables, math). It also supports modular Extensibility of all of these lagbuages. New, project-specific languages can be built. LWB is an IDE, with proven Produc@vity and and Usability.

slide-13
SLIDE 13

IETS3 Approach II

Increased Formality

Supports different degrees of formality (non-formal, semi-formal and formal languages). This is the basis for Live Models in terms of analyses, simula@on and execu@on. In par@cular, analyses are integrated as first class ci@zens and include referen@al integrity checks, simple constraints, type systems and formal verifica@on tools.

Incrementality

We will support the incremental increase of formality both between languages (textual requirements vs. mathema@cal equa@ons) but also within languages (data item name -> type -> constraints -> overlap) to support the natural increase in precision as a specifica@on matures.

slide-14
SLIDE 14

Unstructured Structured Precise Verifiable

Prose documents, e.g. in Word or Excel Prose++, ontologies, iden@fiable parts; DOORS. Variables, numbers, ranges, formulas, CNL Consistent formalisms (math, logics, tables, state machines) Read Understand? Referencing Tracing Links Clear Some Checks Measure @ RT Type Checks Solving Model Check‘g

Levels of Formality

slide-15
SLIDE 15

Verifica@on

Constraints/ Type Checks Analy@cal Solving Simula@on Run@me Checks

In IDE Local Rather Obvious Errors Real@me Feedback Simple to build In IDE Global Tricky Errors Explitly Triggered Harder to Build In IDE or External Tool Global Op@miza@ons May take some @me to run Expensive to Build In System; Report in IDE? Global Op@miza@ons and Errors Logged during Tests or in Field Cost in the final system

slide-16
SLIDE 16

4

Enabler: Language Workbench

slide-17
SLIDE 17

Freely

define integrate

them languages and

Language Workbench

(Mar@n Fowler, 2004)

slide-18
SLIDE 18

powerful

edi@ng tes@ng refactoring debugging

language defini@on IDE defini@on

implies

+

groupware

Language Workbench

(Mar@n Fowler, 2004)

slide-19
SLIDE 19

support for

„classical“

programming

„classical“

modeling

and

+

Language Workbench

(Mar@n Fowler, 2004)

There‘s no difference!

slide-20
SLIDE 20
slide-21
SLIDE 21

A Language Workbench –

a tool for defining, composing and using ecosystems of languages.

slide-22
SLIDE 22

Open Source Apache 2.0 hAp://jetbrains.com/mps

slide-23
SLIDE 23

V 3.3 is current V 3.4 to be released Summer 2016

slide-24
SLIDE 24

[Language Workbench]

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

Comprehensive Support for many aspects of Language Defini@on.

slide-25
SLIDE 25
slide-26
SLIDE 26
slide-27
SLIDE 27

Parsing Projec@onal Edi@ng

[Projec@onal Edi@ng]

slide-28
SLIDE 28

Regular Code/Text Mathema@cal Tables Graphical

Syntac@c Flexibility

[Projec@onal Edi@ng]

slide-29
SLIDE 29

Regular Code/Text Mathema@cal Tables Graphical

Syntac@c Flexibility

[Projec@onal Edi@ng]

slide-30
SLIDE 30

L2 L1

Separate Files In One File Type System Transforma@on Constraints Type System Transforma@on Constraints Syntax IDE

Language Composi@on

[Projec@onal Edi@ng]

50+ extensions to C 10+ extensions to requirements lang.

slide-31
SLIDE 31

No change to defini@on of or

Modular Language Composi@on

[Projec@onal Edi@ng]

L2 L1

in order to use them together.

LHost LEmb

+

Embedding

=

LAdapt + LBase LExt

+

Extension

=

LBase LExt1

+

Extension Composi@on

=

LExt2

+

slide-32
SLIDE 32

4

Integra@on T vs. L

slide-33
SLIDE 33

MPS

Requirements Component Architectures Feature Models Expres- sions Performance Safety Security (User Extensions) High-Level Behavior

slide-34
SLIDE 34

Core Languages

slide-35
SLIDE 35

Aspects of System Models

Structure

Signatures Modularity Provides/Uses

Behavior

Data Ranges Condi@ons Pre/Post Condi@ons Protocol State Machines

QoS/Non-Func.

Performance Timing, Frequency Resources Security Safety

slide-36
SLIDE 36
slide-37
SLIDE 37

[Typical Integra@on]

DSL 1

Tool A

DSL 2 DSL 3

Tool B

DSL 4

Tool B

DSL 5

slide-38
SLIDE 38

[Typical Integra@on: Problems]

Syntax Type System Semantics IDE Tools in general File Formats

Essential Accidental

Implementation Platforms Bad or incomplete APIs Lossy/Undocumented File Formats Business Reasons

slide-39
SLIDE 39
slide-40
SLIDE 40

[Language-Oriented Applica@ons]

DSL 1

Workbench

DSL 2 DSL 3 DSL 4 DSL 5 DSL N

...

slide-41
SLIDE 41

Integrate Every Tool into one? Realis@c?

G I K A M B J C F H L E D

slide-42
SLIDE 42

Integrate Every Tool into one? Realis@c?

G I K A B C F H L E D J

slide-43
SLIDE 43

Integrate Every Tool into one? Realis@c?

A B CDE F G

Cohesion & Coupling

As with all other so<ware ...

Guided by

slide-44
SLIDE 44
slide-45
SLIDE 45

5

Candidate Languages

slide-46
SLIDE 46

Possible Languages - Structure

Glossaries

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

Ontologies

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

Product Breakdown Structures

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

Komponentendiagramme

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

Datenstrukturen

slide-47
SLIDE 47

Possible Languages – Behavior I

Boolesche Regeln (incl. Latching, Edge Detec?on, Zeitverzögerungen) Mathema@sche Abstrak@onen

und Nota?onen mit Symbolen wie Bruchstrich, Sum-Symbol oder Wurzelzeichen

Tabellarische Wertesammlungen

mit Konsistenzregeln und Beziehungen

Ablauvechreibungen/Prozess

angelehnt an Ak?vitätsdiagramme

Zustandsmaschinen

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

Geschä]sregeln à la Drools

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

Message Sequence Charts

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

slide-48
SLIDE 48

Possible Languages – Behavior II

Timing Diagramme

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

Controlled Natural Language

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

Expressive Decision Tables

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

Parnas' Tables

hNps://cs.uwaterloo.ca/~jmatlee/talks/parnas01.pdf

BDD Spezifika@onen

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

slide-49
SLIDE 49

Possible Languages – Non-Func@onals

Qualitäts-/SicherheitsaAribute Safety PaAerns Goal Structuring Nota@on (GSN) hNp://www.goalstructuringnota?on.info/ Failure Mode and Effects Analysis (FMEA) hNp://de.wikipedia.org/wiki/FMEA Fault Tree Analysis (FTA)

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

slide-50
SLIDE 50

Possible Languages – Cross Cu{ng

Feature Models

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

slide-51
SLIDE 51

5a

Exis@ng Languages

slide-52
SLIDE 52

Requirements

slide-53
SLIDE 53

Feature Modeling

slide-54
SLIDE 54

Func@onal Expressions

slide-55
SLIDE 55

Data Modeling

slide-56
SLIDE 56

Hierarchical Components

slide-57
SLIDE 57

Performance Modeling I

slide-58
SLIDE 58

Performance Modeling II

slide-59
SLIDE 59

Performance Modeling III

slide-60
SLIDE 60

6

Lessons Learned

slide-61
SLIDE 61

Why Version Control

slide-62
SLIDE 62

Why Version Control

Consistency across Team

slide-63
SLIDE 63

Why Version Control

Consistency across Team Development History

slide-64
SLIDE 64

Why Version Control

Consistency across Team Development History Time Machine

slide-65
SLIDE 65

Why Version Control

Consistency across Team Development History Time Machine Branching (Feature, Version)

slide-66
SLIDE 66

Why Version Control

Consistency across Team Development History Time Machine Branching (Feature, Version) Support Staging

slide-67
SLIDE 67
slide-68
SLIDE 68

How do you achieve Consistency

slide-69
SLIDE 69

Strict Language Cross-References Modulariza@on and Reuse Automa@c Deriva@on based on rules (transforma@on, genera@on)

slide-70
SLIDE 70

Common Respository Version Control System Periodic, Global Checks/Reports

slide-71
SLIDE 71
slide-72
SLIDE 72

The Language is not Enough

slide-73
SLIDE 73

Language Great IDE Analyses Refactorings Tes@ng Debuggers

Abstrac@ons Nota@ons Syntax Coloring Code Comple@on Goto Defini@on Relevant Good Errors Aligned with Processes Write Tests Run them Report Back Animate Execu@on Simulators

GOOD GREAT

slide-74
SLIDE 74
slide-75
SLIDE 75

Requirements on the tool

slide-76
SLIDE 76

Be a great LWB

Support all the language goodness we talked about so far.

  • bviously
slide-77
SLIDE 77

Produc@vity

Quickly evolve the language as the (understanding of) domain changes

slide-78
SLIDE 78

Performance

Nobody wants to work with a sluggish tool

slide-79
SLIDE 79

Scalability

Non-trivial languages and significant model sizes

slide-80
SLIDE 80

Evolu@on Support

Migrate exis@ng models as the languages evolve.

slide-81
SLIDE 81

Friendliness

Don‘t overwhelm end users with too much „cru]“

slide-82
SLIDE 82

Explorability

Ensure the language can be explored

slide-83
SLIDE 83
slide-84
SLIDE 84

Does this scale?

slide-85
SLIDE 85

Does the approach scale?

If structure, formaliza@on, and tool support don‘t scale,

What are the alterna@ves? Excel? Wikis? Prose Documents?

then what will??

slide-86
SLIDE 86

Do the tools scale?

In terms of overall system size?

Yes, the system has to be broken down into models

  • f manageable size, as usual. This requires some thought.

In terms of team size?

Yes, since we rely on established version control systems (git) to deal with groupware aspects; and yes, diff/merge works as expected.

In terms of language complexity?

Yes, in par@cular, since you can modularize the language defini@ons.

slide-87
SLIDE 87

Can I find the people to do this?

slide-88
SLIDE 88

Can I find the people to do this?

Yes, but it is a significant change, so:

  • it may be a significant educa@on/training effort.
  • a few people might not get it
  • a few people may not want to do it.
slide-89
SLIDE 89

Can I find the people to do this?

Yes, but it is a significant change, so:

  • it may be a significant educa@on/training effort.
  • a few people might not get it
  • a few people may not want to do it.
slide-90
SLIDE 90
slide-91
SLIDE 91

8

Summary

slide-92
SLIDE 92

System Specifica@on requires an integrated mix of increasingly formal languages.

IETS3 is developing an IDE

based on these principles.

slide-93
SLIDE 93

s

  • u

r c e

slide-94
SLIDE 94

[Read & Learn]

slide-95
SLIDE 95

Thank you!

voelter@acm.org www.voelter.de @markusvoelter