SlideShare uma empresa Scribd logo
1 de 76
Baixar para ler offline
12 April 2014
Juha-Pekka Tolvanen
The business cases for
modeling and generators
Various styles of modeling
MDD done correctly
 Work at a higher level of abstraction and automatically
produce code, library calls, configuration, simulation...
 Specify less, generate more!
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
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.
Number of railway languages?
1) Mark Blackburn, Peter Denno, Virtual Design and Verification of Cyber-physical Systems: Industrial
Process Plant Design, Procedia Computer Science, Volume 28, 2014
Detected productivity increase
* Productivity proportional to earlier practice
500 %
300 %
750 %
600 %
200 %
750 %
500 %
600 %
0 % 100 % 200 % 300 % 400 % 500 % 600 % 700 % 800 %
Embedded UI applications
Message translation &
validation
Phone switch features
Call processing services
Adaptive cruise control
Heart rate monitor
J2EE web application
Home automation
Domain
Percent Increase
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;
...
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
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
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
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
MetaEdit: abstract & concrete syntax
MetaEdit Personal, MetaCase, 1991
 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)
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
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
 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)
 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
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
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!
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
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
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
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
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
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.
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
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

Mais conteúdo relacionado

Semelhante a Keynote at Code Generation 2014: The business cases of modeling and generators

Week 4 Assignment - Software Development PlanScenario-Your team has be.docx
Week 4 Assignment - Software Development PlanScenario-Your team has be.docxWeek 4 Assignment - Software Development PlanScenario-Your team has be.docx
Week 4 Assignment - Software Development PlanScenario-Your team has be.docxestefana2345678
 
Resume_Arindom_Updated
Resume_Arindom_UpdatedResume_Arindom_Updated
Resume_Arindom_UpdatedArindom Biswas
 
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
Extreme  Programming    Talk Wise  Consulting   Www.TalkwiseconsultingExtreme  Programming    Talk Wise  Consulting   Www.Talkwiseconsulting
Extreme Programming Talk Wise Consulting Www.Talkwiseconsultingtalkwiseone
 
Extreme programming talk wise consulting - www.talkwiseconsulting
Extreme programming   talk wise consulting - www.talkwiseconsultingExtreme programming   talk wise consulting - www.talkwiseconsulting
Extreme programming talk wise consulting - www.talkwiseconsultingtalkwiseone
 
PratheshBV_Resume
PratheshBV_ResumePratheshBV_Resume
PratheshBV_Resumepradeesh bv
 
Resume_Arindom-March-3rd
Resume_Arindom-March-3rdResume_Arindom-March-3rd
Resume_Arindom-March-3rdArindom Biswas
 
Application Transformation Workshop
Application Transformation WorkshopApplication Transformation Workshop
Application Transformation WorkshopVMware Tanzu
 
Introduction To Software Engineering
 Introduction To Software Engineering Introduction To Software Engineering
Introduction To Software EngineeringMohsinAli773
 
Actminds Outsourcing Summit 07
Actminds Outsourcing Summit 07Actminds Outsourcing Summit 07
Actminds Outsourcing Summit 07cnetto
 
Industrial experiences on Domain-Specific Modeling
Industrial experiences on Domain-Specific ModelingIndustrial experiences on Domain-Specific Modeling
Industrial experiences on Domain-Specific ModelingJuha-Pekka Tolvanen
 
Resume Manoj Kumar M
Resume Manoj Kumar MResume Manoj Kumar M
Resume Manoj Kumar MManoj Kumar
 
Cs 568 Spring 10 Lecture 5 Estimation
Cs 568 Spring 10  Lecture 5 EstimationCs 568 Spring 10  Lecture 5 Estimation
Cs 568 Spring 10 Lecture 5 EstimationLawrence Bernstein
 

Semelhante a Keynote at Code Generation 2014: The business cases of modeling and generators (20)

Week 4 Assignment - Software Development PlanScenario-Your team has be.docx
Week 4 Assignment - Software Development PlanScenario-Your team has be.docxWeek 4 Assignment - Software Development PlanScenario-Your team has be.docx
Week 4 Assignment - Software Development PlanScenario-Your team has be.docx
 
Resume_Arindom_Updated
Resume_Arindom_UpdatedResume_Arindom_Updated
Resume_Arindom_Updated
 
Sourabh_Resume_1
Sourabh_Resume_1Sourabh_Resume_1
Sourabh_Resume_1
 
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
Extreme  Programming    Talk Wise  Consulting   Www.TalkwiseconsultingExtreme  Programming    Talk Wise  Consulting   Www.Talkwiseconsulting
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
 
Extreme programming talk wise consulting - www.talkwiseconsulting
Extreme programming   talk wise consulting - www.talkwiseconsultingExtreme programming   talk wise consulting - www.talkwiseconsulting
Extreme programming talk wise consulting - www.talkwiseconsulting
 
Spi Cost Roi
Spi Cost RoiSpi Cost Roi
Spi Cost Roi
 
PratheshBV_Resume
PratheshBV_ResumePratheshBV_Resume
PratheshBV_Resume
 
Resume_Arindom-March-3rd
Resume_Arindom-March-3rdResume_Arindom-March-3rd
Resume_Arindom-March-3rd
 
Pravin_CV_4+years
Pravin_CV_4+yearsPravin_CV_4+years
Pravin_CV_4+years
 
Application Transformation Workshop
Application Transformation WorkshopApplication Transformation Workshop
Application Transformation Workshop
 
Narayanan Doraiswamy Resume
Narayanan Doraiswamy ResumeNarayanan Doraiswamy Resume
Narayanan Doraiswamy Resume
 
Introduction To Software Engineering
 Introduction To Software Engineering Introduction To Software Engineering
Introduction To Software Engineering
 
Pandarakkannu P S-My Resume
Pandarakkannu P S-My ResumePandarakkannu P S-My Resume
Pandarakkannu P S-My Resume
 
2015ResumePlusCoverLetter
2015ResumePlusCoverLetter2015ResumePlusCoverLetter
2015ResumePlusCoverLetter
 
Actminds Outsourcing Summit 07
Actminds Outsourcing Summit 07Actminds Outsourcing Summit 07
Actminds Outsourcing Summit 07
 
JHS resume 10_29_15
JHS resume 10_29_15JHS resume 10_29_15
JHS resume 10_29_15
 
Industrial experiences on Domain-Specific Modeling
Industrial experiences on Domain-Specific ModelingIndustrial experiences on Domain-Specific Modeling
Industrial experiences on Domain-Specific Modeling
 
Resume Manoj Kumar M
Resume Manoj Kumar MResume Manoj Kumar M
Resume Manoj Kumar M
 
Mayuresh Warkhandkar_Resume
Mayuresh Warkhandkar_ResumeMayuresh Warkhandkar_Resume
Mayuresh Warkhandkar_Resume
 
Cs 568 Spring 10 Lecture 5 Estimation
Cs 568 Spring 10  Lecture 5 EstimationCs 568 Spring 10  Lecture 5 Estimation
Cs 568 Spring 10 Lecture 5 Estimation
 

Mais de Juha-Pekka Tolvanen

How to formalize a ubiquitous language into a domain-specific language.pdf
How to formalize a ubiquitous language into a domain-specific language.pdfHow to formalize a ubiquitous language into a domain-specific language.pdf
How to formalize a ubiquitous language into a domain-specific language.pdfJuha-Pekka Tolvanen
 
Measuring Productivity from Model-Based Development
Measuring Productivity from Model-Based DevelopmentMeasuring Productivity from Model-Based Development
Measuring Productivity from Model-Based DevelopmentJuha-Pekka Tolvanen
 
How domain specific modeling languages address variability: investigation of ...
How domain specific modeling languages address variability: investigation of ...How domain specific modeling languages address variability: investigation of ...
How domain specific modeling languages address variability: investigation of ...Juha-Pekka Tolvanen
 
Effort Used to Create Domain-Specific Modeling Languages
Effort Used to Create Domain-Specific Modeling LanguagesEffort Used to Create Domain-Specific Modeling Languages
Effort Used to Create Domain-Specific Modeling LanguagesJuha-Pekka Tolvanen
 
Automating safety engineering with model based techniques
Automating safety engineering with model based techniquesAutomating safety engineering with model based techniques
Automating safety engineering with model based techniquesJuha-Pekka Tolvanen
 
Collaborative language engineering and language use: demo with MetaEdit+
Collaborative language engineering and language use: demo with MetaEdit+Collaborative language engineering and language use: demo with MetaEdit+
Collaborative language engineering and language use: demo with MetaEdit+Juha-Pekka Tolvanen
 
Automotive architecture examples with EAST-ADL models
Automotive architecture examples with EAST-ADL modelsAutomotive architecture examples with EAST-ADL models
Automotive architecture examples with EAST-ADL modelsJuha-Pekka Tolvanen
 
Collaborative modeling and metamodeling
Collaborative modeling and metamodelingCollaborative modeling and metamodeling
Collaborative modeling and metamodelingJuha-Pekka Tolvanen
 
Collaborative modeling and metamodeling in MetaEdit+
Collaborative modeling and metamodeling in MetaEdit+Collaborative modeling and metamodeling in MetaEdit+
Collaborative modeling and metamodeling in MetaEdit+Juha-Pekka Tolvanen
 
20 examples on Domain-Specific Modeling Languages
20 examples on Domain-Specific Modeling Languages20 examples on Domain-Specific Modeling Languages
20 examples on Domain-Specific Modeling LanguagesJuha-Pekka Tolvanen
 
Model level debugging and profiling, Code Generation Conference 2014
Model level debugging and profiling, Code Generation Conference 2014Model level debugging and profiling, Code Generation Conference 2014
Model level debugging and profiling, Code Generation Conference 2014Juha-Pekka Tolvanen
 

Mais de Juha-Pekka Tolvanen (11)

How to formalize a ubiquitous language into a domain-specific language.pdf
How to formalize a ubiquitous language into a domain-specific language.pdfHow to formalize a ubiquitous language into a domain-specific language.pdf
How to formalize a ubiquitous language into a domain-specific language.pdf
 
Measuring Productivity from Model-Based Development
Measuring Productivity from Model-Based DevelopmentMeasuring Productivity from Model-Based Development
Measuring Productivity from Model-Based Development
 
How domain specific modeling languages address variability: investigation of ...
How domain specific modeling languages address variability: investigation of ...How domain specific modeling languages address variability: investigation of ...
How domain specific modeling languages address variability: investigation of ...
 
Effort Used to Create Domain-Specific Modeling Languages
Effort Used to Create Domain-Specific Modeling LanguagesEffort Used to Create Domain-Specific Modeling Languages
Effort Used to Create Domain-Specific Modeling Languages
 
Automating safety engineering with model based techniques
Automating safety engineering with model based techniquesAutomating safety engineering with model based techniques
Automating safety engineering with model based techniques
 
Collaborative language engineering and language use: demo with MetaEdit+
Collaborative language engineering and language use: demo with MetaEdit+Collaborative language engineering and language use: demo with MetaEdit+
Collaborative language engineering and language use: demo with MetaEdit+
 
Automotive architecture examples with EAST-ADL models
Automotive architecture examples with EAST-ADL modelsAutomotive architecture examples with EAST-ADL models
Automotive architecture examples with EAST-ADL models
 
Collaborative modeling and metamodeling
Collaborative modeling and metamodelingCollaborative modeling and metamodeling
Collaborative modeling and metamodeling
 
Collaborative modeling and metamodeling in MetaEdit+
Collaborative modeling and metamodeling in MetaEdit+Collaborative modeling and metamodeling in MetaEdit+
Collaborative modeling and metamodeling in MetaEdit+
 
20 examples on Domain-Specific Modeling Languages
20 examples on Domain-Specific Modeling Languages20 examples on Domain-Specific Modeling Languages
20 examples on Domain-Specific Modeling Languages
 
Model level debugging and profiling, Code Generation Conference 2014
Model level debugging and profiling, Code Generation Conference 2014Model level debugging and profiling, Code Generation Conference 2014
Model level debugging and profiling, Code Generation Conference 2014
 

Último

Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 

Último (20)

Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 

Keynote at Code Generation 2014: The business cases of modeling and generators

  • 1. 12 April 2014 Juha-Pekka Tolvanen The business cases for modeling and generators
  • 2. Various styles of modeling
  • 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.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50. Number of railway languages?
  • 51.
  • 52. 1) Mark Blackburn, Peter Denno, Virtual Design and Verification of Cyber-physical Systems: Industrial Process Plant Design, Procedia Computer Science, Volume 28, 2014
  • 53. Detected productivity increase * Productivity proportional to earlier practice 500 % 300 % 750 % 600 % 200 % 750 % 500 % 600 % 0 % 100 % 200 % 300 % 400 % 500 % 600 % 700 % 800 % Embedded UI applications Message translation & validation Phone switch features Call processing services Adaptive cruise control Heart rate monitor J2EE web application Home automation Domain Percent Increase
  • 54.
  • 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
  • 61. MetaEdit: abstract & concrete syntax MetaEdit Personal, MetaCase, 1991
  • 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