Language Workbench Challenge…

25
Language Workbench Challenge…

description

Language Workbench Challenge…. What is it ?. A one day event For which people prepare a solution to a given case The results of which are presented to a larger group The builders are challenged to extend their solution based on new requirements Goal : - PowerPoint PPT Presentation

Transcript of Language Workbench Challenge…

Page 1: Language Workbench Challenge…

Language Workbench Challenge…

Page 2: Language Workbench Challenge…

What is it?

A one day event

For which people prepare a solution to a given caseThe results of which are presented to a larger groupThe builders are challenged to extend their solutionbased on new requirements

Goal: Show what language workbenches can do today

Page 3: Language Workbench Challenge…

Last year

ChallengeShow key features any LWB should haveShow what makes ‘your’ LWB special

Form10 presentations, 40 minutes eachA day full of ‘broadcast’

Page 4: Language Workbench Challenge…

4

This years challenge - criteria

Use/Combine models based on multiple meta-models

Apply MDSD in a non-software domain– But controlled by software

Focus is on capabilities of tooling not on the domain itself

Limited but useful subset of domain concepts

Page 5: Language Workbench Challenge…

5

Case: Central Heating (1)

Page 6: Language Workbench Challenge…

6

Case: Central Heating (2)

Temp.

Temp.

GASIgnitionDetect

Ignite

HOT WATER

Flow Speed

THERMOSTAT

COLD WATER

BOILER

Temp.

Purpose:Central heating: Bring room temperature to set point (via thermostat)Hot water: provide hot water when requested

Page 7: Language Workbench Challenge…

7

System Context

Central Heating & Hot Water System

GAS

HOT WATER

COLD WATER

SmartEnergy Management System

THERMOSTATE

Set-pointsStatus/Measurements

Requested/ActualRoom temperature

Max boiler temperatureMax burner temperatureMax water temperatureUser profile

Page 8: Language Workbench Challenge…

8

A sample notation• Examples of symbols domain experts are used to:

– Pipe

– Joint

– System end

– Vessel

– Valve

– Pump

– Measurement instrument – see next sheet

Connected pipes

~ ~source exhaust

horizontalvessel

verticalvessel

heatexchanger

valvemanualvalve

controlvalve

pump vacuum pumpor compressor

Page 9: Language Workbench Challenge…

9

A sample heating system

~~

F1

T2

V1Boiler

Hot water

Cold waterP1

Example of P&I diagram for central heating system.

S3

Radiator

Central Heating Unit

~

Gas

V2

T4

T5

T6

Burner

Page 10: Language Workbench Challenge…

The deliverables

• A language– It’s called Language Workbench Challenge, right?

• A generator– It’s about code generation

• A running simulation (on a PLC emulator)– Not everybody got it working, unfortunately

Page 11: Language Workbench Challenge…

Program

Page 12: Language Workbench Challenge…

The participants

Page 13: Language Workbench Challenge…

What did we see?

7 (or actually 10) different solutions

Textual solutions for a graphical problem

The difficulties of (not) getting a simulation to work.

Page 14: Language Workbench Challenge…
Page 15: Language Workbench Challenge…

Lesson learned: From metamodel and language via models to simulation [V] Use a complicated, domain specific platform for this [X]

Page 16: Language Workbench Challenge…

What did we do?

Define some additional requirements

Work on those using the available tools

Work with, and demo to, the ‘audience’

Page 17: Language Workbench Challenge…

17

Additional Requirements1. Control behavior changes:

a) Give priority to hot water if water is requested (so disconnect radiator from hot water), otherwise keep the hot water to configured set point

b) The pump must be kept running 1 minute after the burner is switched off.

2. Additional safety checks:a) If burner is not burning (no flames), the gas valve must be closed.b) If the pump should be running, but is not running, the burner must be shut off. c) Add a safety limit to the temperature of the radiator itself, and turn of the burner when

this temperature reached

3. Extensions to the installationa) Introduce second room heating system (see next sheet)

Second room heating system should be controlled independently, reacting on the second thermostat.

b) Add boosters (ventilators) for convection radiators, and enable/disable these based on temperature

Page 18: Language Workbench Challenge…

18

Extension of the installation

Temp.

Temp.

GASIgnitionDetect

Ignite

HOT WATER

Flow Speed

THERMOSTAT

COLD WATER

BOILER

Temp.

Purpose:Central heating: Bring room temperature to set point (via thermostat)Hot water: provide hot water when requested

THERMOSTAT 2

Speed

PUMP 2

HeatingSystemController

Connectionsto sensors,valves, etc.

Room

Room 2

Goal:Generate software running on this controller

Page 19: Language Workbench Challenge…

19

Add a safety limit

Temp.

Temp.

GASIgnitionDetect

Ignite

HOT WATER

Flow Speed

THERMOSTAT

COLD WATER

BOILER

Temp.

Purpose:Central heating: Bring room temperature to set point (via thermostat)Hot water: provide hot water when requested

Add property that defines max temperature allowed

Switch on ventilator if temperature gets too high

Page 20: Language Workbench Challenge…

With these… added 2nd radiator

Added room concept andsublanguageChange valve metamodel,Added ventilator support

Added module supportto languageAdded safety limit toradiatorCollected user feedback

Extended language withventilator

Page 21: Language Workbench Challenge…

Overall

We had fun

We learned from each other

We found possibilities and limitations of LWBs

We continued discusison over dinner

Page 22: Language Workbench Challenge…

What’s next?

We’ll be doing it again next year

Because ideas lead to discussion

Discussion leads to better ideas

Better ideas leads to better solutions

Page 23: Language Workbench Challenge…

What’s next?

We’ll be doing it again next year

Because ideas lead to discussion

Discussion leads to better ideas

Better ideas leads to better solutions

Page 24: Language Workbench Challenge…

Links

http://www.languageworkbenches.netBlogs on LWC will be linked from here later on

http://www.twitter.com #lwc2012Have a peek at how the day developed

Page 25: Language Workbench Challenge…

The one language

workbench to rule

them all?