There is no business case for modelling and generators – only for a specific language and generator in a specific situation. The right language in the right situation can improve productivity by an order of magnitude; the wrong language will reduce it. So what makes a language “right”?
In this talk we look what kinds of modelling languages and generators tend to be more beneficial than others –from the early days of modelling right up to the latest research. Getting more out of the models than their original creation required, raising the level of abstraction and addressing a specific need seem to be common characteristics of successful modelling and code generation approaches.
To evaluate the full business case we also need to look at the costs and benefits of creating languages, generators and tools. By applying the above principles to language creation itself, we can improve the quality of the resulting modelling language, whilst lowering the time and effort needed to create and maintain it. Other features important to the language developer include enabling tools to support language evolution, and improving tool scalability to tackle larger systems and teams.
In this presentation, we can see how we can use artificial intelligence in software engineering to develop faster and more efficient projects of the best quality.
In this presentation, we can see how we can use artificial intelligence in software engineering to develop faster and more efficient projects of the best quality.
I am Mohsin Ali Student of Sofware Engineering. Software Engineering Sir give us these slides to read and learn from it. And these Slides are very interesting for Sofware Eng Students.
Domain-Specific Modeling (DSM) enables raising the level of abstraction close to the problem domain yet generating production code from the models. These slides describe industrial experiences on DSM in four different domains: home automation, military radio, touch screen device and sports computer applications.
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
Modeling languages are generally applied for developing systems and software – both internally, with domain-specific languages, and with standardized languages targeting a general purpose and a wide audience. Way too often these languages are weakly created and defined leading to poor quality: Language definitions tend to contain errors and inconsistencies; notations do not recognize the communication and problem-solving needs of humans; standardization organizations push exchange formats that do not fully work and offer certificates that do not measure mastery of the language. We describe common problems in language development and point them out with examples from known cases. To overcome these problems, we suggest several solutions to improve language development, including using modeling languages specifically designed to define modeling languages, continuous testing and prototyping, and keeping language users in the loop.
How to formalize a ubiquitous language into a domain-specific language.pdfJuha-Pekka Tolvanen
Language defines the boundary to our world: it sets what we can describe and what we can’t. This talk describes and demonstrates how to formalize a ubiquitous language into a domain-specific language. If we do this move the language is not used only for communication and collaboration as well as used as a basis for generating code, tests, configs, etc. It means that domain experts/subject matter experts use the language. The talk is based on industry cases from various domains, such as banking and insurance, industry automation and automotive, and been demonstrated during the talk.
More Related Content
Similar to Keynote at Code Generation 2014: The business cases of modeling and generators
I am Mohsin Ali Student of Sofware Engineering. Software Engineering Sir give us these slides to read and learn from it. And these Slides are very interesting for Sofware Eng Students.
Domain-Specific Modeling (DSM) enables raising the level of abstraction close to the problem domain yet generating production code from the models. These slides describe industrial experiences on DSM in four different domains: home automation, military radio, touch screen device and sports computer applications.
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
Modeling languages are generally applied for developing systems and software – both internally, with domain-specific languages, and with standardized languages targeting a general purpose and a wide audience. Way too often these languages are weakly created and defined leading to poor quality: Language definitions tend to contain errors and inconsistencies; notations do not recognize the communication and problem-solving needs of humans; standardization organizations push exchange formats that do not fully work and offer certificates that do not measure mastery of the language. We describe common problems in language development and point them out with examples from known cases. To overcome these problems, we suggest several solutions to improve language development, including using modeling languages specifically designed to define modeling languages, continuous testing and prototyping, and keeping language users in the loop.
How to formalize a ubiquitous language into a domain-specific language.pdfJuha-Pekka Tolvanen
Language defines the boundary to our world: it sets what we can describe and what we can’t. This talk describes and demonstrates how to formalize a ubiquitous language into a domain-specific language. If we do this move the language is not used only for communication and collaboration as well as used as a basis for generating code, tests, configs, etc. It means that domain experts/subject matter experts use the language. The talk is based on industry cases from various domains, such as banking and insurance, industry automation and automotive, and been demonstrated during the talk.
Model-based development, using models as the primary source when creating systems and software, is claimed to improve productivity but this is often hard to justify in practice. It requires a lot of resources and time to do it in “academic” way by building the same system twice, having parallel teams, many developers and covering large numbers of development tasks. We describe, based on successful cases from practice, how evaluation can be conducted in practical use in a commercial setting. It is based on the same approach that is the basis for daily project business: Inspect how much effort was needed to implement an application that met customer requirements. We give examples of this by describing evaluations done in two different kind of companies: one developing embedded products for consumer electronics and the other web-based enterprise applications for the cloud. The talk shows the evaluation approaches that are realistic but require modest investments both in time and resources. We detail the evaluation procedures so that participants can repeat them in their own teams and companies. This helps to evaluate if a particular model-based development approach is suitable for the company.
How domain specific modeling languages address variability: investigation of ...Juha-Pekka Tolvanen
Domain-Specific Modeling raises the level of abstraction beyond programming by specifying the solution directly with domain concepts. Within product lines domain-specific approaches are applied to specify variability and then generate final products together with commonality. Such automated product derivation is possible because both the modeling language and generator are made for a particular product line — often inside a single company. We examine which kinds of reuse and product line approaches are applied in industry with domain-specific modeling. Our work is based on empirical analysis of 23 cases and the languages and models created there. The analysis reveals a wide variety and some commonalities in the size of languages and in the ways they apply reuse and product line approaches.
Domain-specific modeling languages and generators have been
shown to significantly improve the productivity and quality of
system and software development. These benefits are typically
reported without explaining the size of the initial investment in
creating the languages, generators and related tooling. We compare the investment needed across ten cases, in two different ways, focusing on the effort to develop a complete modeling solution for a particular domain with the MetaEdit+ tool. Firstly, we use a case study research method to obtain detailed data on the development effort of implementing two realistically-sized domain-specific modeling solutions. Secondly, we review eight publicly available cases
from various companies to obtain data from industry experiences with the same tool, and compare them with the results from our case studies. Both the case studies and the industry reports indicate that, for this tool, the investment required to create domain-specific modeling support is modest: ranging from 3 to 15 man-days with an average of 10 days
Automating safety engineering with model based techniquesJuha-Pekka Tolvanen
Fault Trees and Failure Models and Effects Analyses are well known methods in safety and reliability engineering. Their use, however, requires a considerable amount of work, in particular when the system evolves and grows. We describe an approach that automates parts of safety design flow. First, existing architecture models can be translated to dependability and error models. Safety engineers can then adapt the models for various safety cases and finally run analysis calling a suitable tool. We demonstrate the approach within automotive domain: System is specified with domain-specific languages and the created models are translated to analysis tools. This approach provides several benefits. It helps to ensure that safety analysis is done for the intended/designed architecture. It also makes safety analysis faster as it is partly automated, reduces error-prone routine work and makes safety analysis easier to use and accessible.
Collaborative language engineering and language use: demo with MetaEdit+Juha-Pekka Tolvanen
Video part of the demonstration: http://www.metacase.com/webcasts/Multi-user.html.
Almost all software development activities require collaboration and language engineering is no exception. First, there is a need for collaboration among language engineers as it is not realistic to expect one man to master all. Second, there is a natural need for collaboration among language users. Finally, there is a need for collaboration among language engineers and language users: Not only when languages are originally designed but more importantly when they are maintained along with the work already created with them. Unfortunately too often tools ignore collaboration by unnecessarily splitting the work into separate formats, tools and roles. We describe and demonstrate collaborative tool capabilities implemented into MetaEdit+ tool and describe experiences on their use in practice.
The slides presents end-to-end example of architecture modeling with EAST-ADL using a PowerWindow example following the V-model. MetaEdit+ tool provides EAST-ADL support for safety analysis, code generation and integration with external tools.
Almost all software development activities require collaboration, and model-based software development is no exception. In modern model-based development collaboration comes in two levels. We start from collaborative language creation (aka metamodeling) and describe the benefits it can provide and then do the same for collaborative language use (aka modeling). We conclude by inspecting how the collaboration enables scalability in terms of multiple engineers, multiple languages, large models, and transformations.
In modern model-based development collaboration comes in two levels. First, developers want to create, edit and check the same shared specifications and avoid handling conflicts, run diff and merge activities etc. all taking time from the actual development work. Second, also language developers defining modeling languages, generators, notations, checks etc. want to collaborate similarly too. Slides describe how to work collaboratively in MetaEdit+ tool with models and metamodelsand as well as describe the benefits it provides.
These slides illustrate 20 different examples on using Domain-Specific Modeling: Models are expressed using directly the concepts of the problem domain and generate the code for a given target/programming language.
Model level debugging and profiling, Code Generation Conference 2014Juha-Pekka Tolvanen
Most Model-Driven Development today drops right back down to the code level as soon as developers have to debug, profile or otherwise analyse the running application. Debugging code you have never seen is a major productivity killer – just as it was when early 3GLs lacked support for source-level debugging. In this session we will show how true model-level debugging, profiling and runtime analysis can realise the full value of MDD.
We will show how models can be used as first class citizens not only for code generation but also during debugging and profiling: animating application execution, showing data on the current state, highlighting the paths executed, adding performance and trace information into the models. Breakpoints can be set in the model, just as you would in an IDE. All this can be added to any modelling language with minimal effort, integrating with your existing code IDE back-end, as we shall show with practical examples in tools like MetaEdit+, Visual Studio and Eclipse.
Transform Your Communication with Cloud-Based IVR SolutionsTheSMSPoint
Discover the power of Cloud-Based IVR Solutions to streamline communication processes. Embrace scalability and cost-efficiency while enhancing customer experiences with features like automated call routing and voice recognition. Accessible from anywhere, these solutions integrate seamlessly with existing systems, providing real-time analytics for continuous improvement. Revolutionize your communication strategy today with Cloud-Based IVR Solutions. Learn more at: https://thesmspoint.com/channel/cloud-telephony
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppGoogle
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-fusion-buddy-review
AI Fusion Buddy Review: Key Features
✅Create Stunning AI App Suite Fully Powered By Google's Latest AI technology, Gemini
✅Use Gemini to Build high-converting Converting Sales Video Scripts, ad copies, Trending Articles, blogs, etc.100% unique!
✅Create Ultra-HD graphics with a single keyword or phrase that commands 10x eyeballs!
✅Fully automated AI articles bulk generation!
✅Auto-post or schedule stunning AI content across all your accounts at once—WordPress, Facebook, LinkedIn, Blogger, and more.
✅With one keyword or URL, generate complete websites, landing pages, and more…
✅Automatically create & sell AI content, graphics, websites, landing pages, & all that gets you paid non-stop 24*7.
✅Pre-built High-Converting 100+ website Templates and 2000+ graphic templates logos, banners, and thumbnail images in Trending Niches.
✅Say goodbye to wasting time logging into multiple Chat GPT & AI Apps once & for all!
✅Save over $5000 per year and kick out dependency on third parties completely!
✅Brand New App: Not available anywhere else!
✅ Beginner-friendly!
✅ZERO upfront cost or any extra expenses
✅Risk-Free: 30-Day Money-Back Guarantee!
✅Commercial License included!
See My Other Reviews Article:
(1) AI Genie Review: https://sumonreview.com/ai-genie-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
#AIFusionBuddyReview,
#AIFusionBuddyFeatures,
#AIFusionBuddyPricing,
#AIFusionBuddyProsandCons,
#AIFusionBuddyTutorial,
#AIFusionBuddyUserExperience
#AIFusionBuddyforBeginners,
#AIFusionBuddyBenefits,
#AIFusionBuddyComparison,
#AIFusionBuddyInstallation,
#AIFusionBuddyRefundPolicy,
#AIFusionBuddyDemo,
#AIFusionBuddyMaintenanceFees,
#AIFusionBuddyNewbieFriendly,
#WhatIsAIFusionBuddy?,
#HowDoesAIFusionBuddyWorks
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Zoom is a comprehensive platform designed to connect individuals and teams efficiently. With its user-friendly interface and powerful features, Zoom has become a go-to solution for virtual communication and collaboration. It offers a range of tools, including virtual meetings, team chat, VoIP phone systems, online whiteboards, and AI companions, to streamline workflows and enhance productivity.
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Looking for a reliable mobile app development company in Noida? Look no further than Drona Infotech. We specialize in creating customized apps for your business needs.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Atelier - Innover avec l’IA Générative et les graphes de connaissancesNeo4j
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Allez au-delà du battage médiatique autour de l’IA et découvrez des techniques pratiques pour utiliser l’IA de manière responsable à travers les données de votre organisation. Explorez comment utiliser les graphes de connaissances pour augmenter la précision, la transparence et la capacité d’explication dans les systèmes d’IA générative. Vous partirez avec une expérience pratique combinant les relations entre les données et les LLM pour apporter du contexte spécifique à votre domaine et améliorer votre raisonnement.
Amenez votre ordinateur portable et nous vous guiderons sur la mise en place de votre propre pile d’IA générative, en vous fournissant des exemples pratiques et codés pour démarrer en quelques minutes.
3. MDD done correctly
Work at a higher level of abstraction and automatically
produce code, library calls, configuration, simulation...
Specify less, generate more!
4. Gains
“The work that earlier took a whole week, is now done
during an afternoon”, an engineer at Elektrobit
The measurement (n=6) revealed that Domain-Specific
Modeling solution was on average 10 times as productive
as the current development approach, study1 at Polar
Productivity improvement is 289%, study2 at USAF
– Over 130 tasks, both initial development and maintenance
– The differences in the average performance of the subjects
are statistically significant at confidence levels exceeding 99%
1) Kärnä, J., et al., Evaluating the Use of Domain-Specific Modeling in Practice, Workshop on DSM, 2007
2) Kieburtz, R., et al. A software engineering experiment in software component generation, ICSE, 1996
5. MDD research
Recent empirical research in industry practices found that:
success with modeling is most likely when companies
develop their own bespoke modeling approaches,
languages and tools rather than simply applying off-the-
shelf solutions
1) Hutchinson, J., Whittle, J., Rouncefield, M. and Kristoffersen, S., “Empirical Assessment of MDE in
Industry,” 2011 International Conference on Software Engineering (ICSE), pp.471-480.
2) Hutchinson, J., Rouncefield, M. and Whittle, J., “Model Driven Engineering Practices in Industry,” 2011
International Conference on Software Engineering (ICSE), pp. 633-642.
52. 1) Mark Blackburn, Peter Denno, Virtual Design and Verification of Cyber-physical Systems: Industrial
Process Plant Design, Procedia Computer Science, Volume 28, 2014
55. PROCESS abc;
START;
TASK b_subscriber := subscriber_t_find (b_subnum);
DECISION b_subscriber.bill_paid AND reserve_vc (b_vc);
(T):
OUTPUT initiate_answering_s (b_subscriber);
NEXTSTATE works_done;
(F):
OUTPUT setup_nak_s TO cci_party;
STOP;
ENDDECISION;
STATE works_done;
INPUT ringing_s;
TASK sso_party := SENDER;
OUTPUT setup_ack_s TO cci_party;
NEXTSTATE waiting_off_hook_s;
INPUT input_busy_s;
OUTPUT disconnect_fwd_req_s TO cci_party;
NEXTSTATE waiting_disconnect_fwd_ack_s;
ENDSTATE wait_ringing;
STATE waiting_disconnect_fwd_ack_s;
INPUT disconnect_fwd_ack_s;
STOP;
ENDSTATE waiting_disconnect_fwd_ack_s;
STATE waiting_off_hook_s;
INPUT off_hook_s;
...
56. Who creates and maintains them?
1. Standardization bodies:
– ISO, OMG, etc.
2. Industry associations and groups:
– ITU, SAE, AUTOSAR, EAST-ADL association, etc.
3. Tool vendors:
– Labview, Simulink, Mendix, etc.
4. In-house:
– Language engineers, tool-smiths, generator developers
57. 6 ways to get the tools needed
1. Find an existing and suitable tool
2. Write own tool from scratch
3. Write own tool based on frameworks
4. Metamodel, generate tool skeleton, add code for the rest
5. Metamodel, generate full tool over a framework
6. Metamodel, configure an existing tool with own language
& generator
Use tools to get your tool!
– Meta-tools, CASE shells, metasystems, metaCASE tools, DSL
tools, language workbenches
58.
59. PSL/PSA
Defining languages with:
– Objects
– Properties
– Relationships
1 PROCESS hourly-enployee-procesing;
2 /* DATE OF IAST CHIANGE - JUN 26, 1976, 13:56:44 */
3 DESCRIPTIONS;
4 this process performs those actions needed to interpret
5 time cards to produce a pay statement for each hourly
6 employee.;
7 KEYWORDS: independent;
8 ATTRIBUTES ARE:
9 complexity-level
10 high;
11 GENERATES: pay-statement, error-listing,
12 hourly-employee-report;
13 RECEIVES: time-card;
14 SUBPARTS ARE: hourly-paycheck-validation, hourly-emp-update,
15 h-report-entry-generation,
16 hourly-paycheck-production;
17 PART OF: payroll-processing;
18 DERIVES: pay-statement
19 USING: time-card, hourly-employee-record;
20 DERIVES: hourly-employee-report
21 USING: time-card, hourly-employee-record;
22 DERIVES: error-listing
23 USING: time-card, hourly-employee-record;
24 PROCEDURE;
25 1. compute gross pay from time card data.
26 2. compute tax, from gross pay.
27 3. subtract tax from gross pay to obtain net pay.
28 4. update hourly employee record accordingly.
29 5. update department record accordingly.
30 6. generate paycheck.
31 note: if status code specifies that the employee did not work
32 this week, no processing will be done for this employee.;
33 HAPPENS:
34 number-of-payments TIMES-PER pay-period;
35 TRIGGERED BY: hourly-emp-processing-event;
36 TERMINATION-CAUSES:
37 new-employee-processing-event;
38 SECURITY IS: company-only;
Teichroew, D., Hershey, E., PSL/PSA, IEEE Trans.
on Software Engineering, Vol SE-3 , 1, 1977
60. Eclipse TBK
Three parts in modeling tool definition:
– Types
• Node and link
– Representation
• Symbols containing shapes
– UI
• Menus, selectors…
MacRoibeaird, S., Developing & Integrating Tools In Eclipse/PCTE, 1990
62. Quality of the language depends on its definition!
Definition of UML contains rules for elements that have
been removed several versions ago - 5 years ago
Fragmented definition
• Concepts in metamodel
• Rules in constraint language
• Notation in symbol
definitions
• Transformations in code, …
• Tool functions in code, .ico …
Integrated definition
• Change in one place
updates it everywhere:
• in rules and constraints,
• in symbols,
• in generators,
• toolbars, icons, etc.
361 errors in UML 2.0: Bauerdick et al, in Procs of UML 2004, LNCS 3273, Springer, 2004
320 errors in UML 2.3: Wilke & Demuth, 2010, journal.ub.tu-berlin.de/eceasst/article/download/669/682
Quality of resulting language (& tool)
63. Incremental language development
Nobody gets the language right at the first try!
The best way to build languages is in incremental steps
together with language users
• Language defined
disconnected from the users
• Language defined as a spec
on paper
• Partial, like plain schema
• Language changed without
considering work done
• Language users are
directly involved
• Each “unit” of the language
tried out in the real world
• Influence of language
change checked against
other parts of the language
64. Effort to define language (& tool)
Two insurance-specific languages:
“Insurance experts specify (with a tool) insurance
products while at the backend the models are exported to
a runtime execution environment”
Case from CodeGen’11 talk Case in www.dsmbook.com
PropertySpec:
/ Renewal Date
RoleSpec:
Named Driver
RuleSpec:
Minimum
Insured Age
Calculation:
Calculate
Renewal
Date
Product:
FleetPlan
Product:
FleetN-N
Product:
FleetN-N
65. Big variety in the effort to define DSL:
– Insurance DSL in CodeGen’11: 6 calendar months, 7 persons
– Insurance DSL in dsmbook.com: 11 days, 1 person
Fully-loaded annual pay rate: 80.000 USD
– Cost varies a lot based on organizations and countries
Case from CodeGen’11 talk
Calendar months: 6
Persons: 7
Investment in time: 3½ years
Investment in $: 280.000
Case in www.dsmbook.com
Calendar months: 0,5
Persons: 1
Investment in time: 11 days
Investment in $: 3.520
Effort to define language (& tool)
66. Empirical tool comparison*:
– Same language, different tools
* El Kouhen et al. Evaluation of Modeling Tools Adaptation, 2012, http://hal.archives-
ouvertes.fr/docs/00/70/68/41/PDF/Evaluation_of_Modeling_Tools_Adaptation.pdf
Effort to get tool support
Days to implement
BPMN language
67. From products to projects
Product development
Apply many times
– Several apps/features
Maintenance
Predictability
Initial investment
shared over time/
products/variants
Projects
Apply mainly for the
current case
Next customer?
A single project does not
usually have a budget
for language and
generator development
68. To apply languages and generators
in project organizations…
Build them fast
Accept uncertainty on the language constructs
Be ready to change frequently
Be ready to throw away, and start another
Allow language users to participate
Language Workbenches must support project
organizations too!
69. Time needed to create languages
and generators must be short
63 language concepts XML
generator
60 language concepts
C, HTML, build script generators
36 language concepts
Assembler generator
77 language concepts
Python generator
Java generator for simulation
143 language concepts J2EE
generator
Man days
70. MetaEdit Personal, MetaCase, 1991
Evolution (of language & models)
Maintenance is the biggest part in development!
Insurance DSL in CodeGen 2011: “took 5 months to
update models when language evolved”
Language update scenario 1
1. Change language
2. Change tooling
3. Share/package updates
4. Install updates for all...
5. Update existing models
Language update scenario 2
1. Change language
– shared automatically
– automatic tool update
– models update
automatically
71. Business case in terms of money
5 months of work:
– By one person: 33.000 USD (or whole team: 233.000 USD)
– What the other language users are doing meanwhile?
Missed opportunity: 5 months later is often bigger cost
than 5 months of work!
Calendar months: 5
Investment in $:
33.000 - 233.000
Calendar months: 0
Investment in $: 0
72. Generator development process
Generator developer needs to master many things:
metamodel (&models), generator language, target
language/libraries
Fragmented:
• Metamodel in X(SD)
• Model in X(ML)
• Generator in X(SLT)
• Output in .x files
Integrated:
• Access metamodel from
generator definition
• Get from generated
code to source models
• Access models while
debugging generators
73. Generator speed
A company visiting CodeGen few years ago was using
4-core Pentium machine to run their generator for a
nightly build... and nights became too short!
Big differences between tools and generators
Comparison with an example*:
• Read model
• Read metamodel
• Use temporary model storage/M2M
• + execution
Cuadrado & Molina, Building Domain-Specific Languages for Model-
Driven Development, IEEE Software, 2007, http://doi.ieeecomputersociety.org/10.1109/MS.2007.135 &
Kelly, S., blog: http://www.metacase.com/blogs/stevek/blogView?entry=3385914921
74. Scalability, Collaboration
Development is about collaboration!
MDD is more than a few diagrams, it can be gigabytes of
models
Single-user tool
• 1 (XML) file
• 1 person edits or…
• diff & merge done later
• Opening a larger model
may take minutes...
Collaboration tool
• Repository with projects
• Collaborative editing
• No need to diff & merge
• Handle billions of
elements, use lazy
loading, etc.
75. MDD solution created correctly
Work at higher level of abstraction during language
creation too!
Define only the needed parts, get rest automatically
Special attention to:
– Improving quality of language definitions
– Incremental development approach, user participation
– Expect (continuous) change in the domain
– Effort and costs of language development
– Generator development process and generator speed
– Scalability of the tools
76. Thank you!
For references, contact jpt@metacase.com
* Some of the examples shown are available to download at www.metacase.com
Europe:
MetaCase
Ylistönmäentie 31
FI-40500 Jyväskylä, Finland
Phone +358 14 641 000
Fax +358 420 648 606
USA:
MetaCase
5605 North MacArthur Blvd.
11th Floor, Irving, Texas 75038
Phone (972) 819-2039
Fax (480) 247-5501