250 likes | 337 Views
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 :
E N D
What is it? A oneday event For whichpeopleprepare a solution to a given case The results of which are presentedto a largergroup The builders are challengedtoextendtheir solution based on new requirements Goal: Show whatlanguageworkbenchescan do today
Last year Challenge Show key features any LWB should have Show whatmakes ‘your’ LWB special Form 10 presentations, 40 minutes each A day full of ‘broadcast’
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
Case: Central Heating (2) THERMOSTAT BOILER Temp. HOT WATER Speed Flow Temp. COLD WATER Purpose: Central heating: Bring room temperature to set point (via thermostat) Hot water: provide hot water when requested Temp. Ignition Detect GAS Ignite
System Context SmartEnergy Management System Max boiler temperature Max burner temperature Max water temperature User profile Set-points Status/ Measurements Requested/ Actual Room temperature THERMOSTATE Central Heating & Hot Water System HOT WATER COLD WATER GAS
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 horizontal vessel vertical vessel heat exchanger manual valve control valve valve vacuum pump or compressor pump
A sample heating system Example of P&I diagram for central heating system. V1 Boiler ~ Radiator Hot water ~ Cold water P1 S 3 T 2 F 1 T 4 T 5 T 6 Central Heating Unit ~ Burner Gas V2
The deliverables • A language • It’s calledLanguage Workbench Challenge, right? • A generator • It’s aboutcode generation • A running simulation (on a PLC emulator) • Noteverybodygotitworking, unfortunately
Whatdid we see? 7 (or actually 10) differentsolutions Textualsolutionsfor a graphicalproblem The difficultiesof (not) getting a simulationtowork.
Lessonlearned: From metamodel andlanguage via modelstosimulation [V] Use a complicated, domain specific platform forthis [X]
Whatdid we do? Definesomeadditionalrequirements Workon thoseusingthe available tools Workwith, and demo to, the ‘audience’
Additional Requirements • Control behavior changes: • Give priority to hot water if water is requested (so disconnect radiator from hot water), otherwise keep the hot water to configured set point • The pump must be kept running 1 minute after the burner is switched off. • Additional safety checks: • If burner is not burning (no flames), the gas valve must be closed. • If the pump should be running, but is not running, the burner must be shut off. • Add a safety limit to the temperature of the radiator itself, and turn of the burner when this temperature reached • Extensions to the installation • Introduce second room heating system (see next sheet)Second room heating system should be controlled independently, reacting on the second thermostat. • Add boosters (ventilators) for convection radiators, and enable/disable these based on temperature
Goal: Generate softwarerunning on this controller Extension of the installation Heating System Controller Room Connectionsto sensors,valves, etc. THERMOSTAT BOILER Temp. HOT WATER PUMP 2 Speed Flow Speed Temp. COLD WATER THERMOSTAT 2 Purpose: Central heating: Bring room temperature to set point (via thermostat) Hot water: provide hot water when requested Temp. Room 2 Ignition Detect GAS Ignite
Add a safety limit THERMOSTAT Add property that defines max temperature allowed BOILER Temp. HOT WATER Speed Flow Switch on ventilator iftemperaturegetstoo high Temp. COLD WATER Purpose: Central heating: Bring room temperature to set point (via thermostat) Hot water: provide hot water when requested Temp. Ignition Detect GAS Ignite
With these… added 2nd radiator Added room concept and sublanguage Change valve metamodel, Added ventilator support Added module support to language Added safety limit to radiator Collected user feedback Extended language with ventilator
Overall We had fun We learnedfromeachother We found possibilitiesandlimitationsof LWBs We continueddiscusison over dinner
What’s next? We’llbedoingitagainnext year Becauseideaslead todiscussion Discussionleads tobetterideas Betterideasleads tobettersolutions
What’s next? We’llbedoingitagainnext year Becauseideaslead todiscussion Discussionleads tobetterideas Betterideasleads tobettersolutions
Links http://www.languageworkbenches.net Blogs on LWC willbelinkedfromhere later on http://www.twitter.com #lwc2012 Have a peek at how the daydeveloped
The onelanguage workbench to rulethem all?