foreign language teaching and learning: challenge and change
Language Workbench Challenge…
description
Transcript of Language Workbench Challenge…
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?