language workbench challenge…

Post on 26-Feb-2016

29 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

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

Last year

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

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

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

5

Case: Central Heating (1)

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

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

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

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

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

Program

The participants

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.

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

What did we do?

Define some additional requirements

Work on those using the available tools

Work with, and demo to, the ‘audience’

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

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

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

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

Overall

We had fun

We learned from each other

We found possibilities and limitations of LWBs

We continued discusison over dinner

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

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

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

The one language

workbench to rule

them all?

top related