Domain-Specific Modeling Languages and Generators Examples 4.11.2002 Juha-Pekka Tolvanen MetaCase Consulting 1
Selected samples Financial products Java Notes apps Notes definitions, checkings and documentation
Web-application XML, Java, stylesheets Voicemenu for micro controller systems Assembler-like
Embedded product Java, MIDP 2 Case: Insurance products & eCommerce Developing portal for insurances and financial products
Marketplace and broker Need to specify several hundred financial products Insurance experts specify visually insurance products and generate code to the portal Basic data structures and engine reflect the architecture Capture insurance knowledge in the graphical form
Reusable component library for data structures and functionality Code generators produces running Java (100% of the code needed) Comparison to writing directly Java after first 30 products = DSVL at least 3 times faster 3
4 5 Case: Notes Modeling method for Notes applications
Apply Notes concepts directly in designs Documentation generators according to company standards for internal use and for customers 6 7
8 Case: Web application Web application for e-commerce; product catalogs, events, press releases, and discussion forums Core components and basic functionality available for reuse
and customization needs Each customer can specify own data content, behavioral logic and user interface Code generators produce running Java applets, stylesheets and xml files Generation of documents for both internal and external use
9 10 11 Case: VoiceMenu for micro controller app
VoiceMenu for micro controller based home automation system Remote control for lights, heating, alarms, etc. VoiceMenus are programmed straight to the device with assembler-like language (8bit) Modelling language to define overall menu structure and
individual voice prompts Code generator produces 100% of menu implementation Development time for a feature from a week to a day 12 13
14 Case: Wrist watches product family Product family Different watch models: Sport, Kid, Traveler, Diver, Luxery etc.
Common architecture of time-based applications Time, Timer, LapTime, WorldTime, StopWatch, Alarm, etc. Family-specific language and generators New models specified with high-level watch concepts Alarms, buttons, displays, icons, states, etc.
Code generators to produce 100% implementation in Java from graphical models 15 16
17 Thank you, questions please Juha-Pekka Tolvanen MetaCase Consulting Ylistnmentie 31
FIN - 40500 Jyvskyl, Finland Phone +358 14 4451 400, Fax +358 14 4451 405 email: [email protected] http://www.metacase.com 18