SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
Domain Specific Languages
for
Product Modeling
Tim Geisler
webXcerpt Software GmbH
tg@webxcerpt.com
CWG 2011, Cologne 2011-05-10
Product Modeling
Product Modeling
Specification Coding in SAP R/3
● Materials
● BOMs
● Classes
● Cstics
● Procedures
● Constraints
● Selection Conditions
● Interface Designs
Domain-Specific Languages
Domain-Specific Languages
Domain-specific language (noun): a computer
programming language of limited expressiveness
focused on a particular domain.
The two main reasons why DSLs are popular:
●
Improving productivity for developers
●
Improving communication with domain experts
(Martin Fowler)
Customer Project @
Company-wide
generic product
structure
NSN VC framework
IPC extensions
coding conventions
Standardized
product
descriptions
Customer Project @
Company-wide
generic product
structure
NSN VC framework
IPC extensions
coding conventions
product
descriptions
Standardized Formalized
Customer Project @
Company-wide
generic product
structure
NSN VC framework
IPC extensions
coding conventions
product
descriptions
Standardized Formalized
Tooling: Eclipse-based IDEs
ConfigModeler
VClipse
Domain Specific Languages
CML + CMLUI + CMLT
VCML
ConfigModeler and Vclipse:
Two DSLs with Eclipse-based IDE
RFC
Editor/IDE
Editor/IDE
ConfigModeler
VClipse
CML
VCML
Code Generation
CML: Customer's abstractions
product structure
grouping for order structure
logical materials
domains
complex expressions
equations
counting
VCML: SAP's abstractions
Language elements for
describing VC objects:
● cstic
● class
● dependency net
● …
Embedded SAP
languages for
dependencies
Code Generation: CML to VCML
Generate VC objects and dependencies
●
correct ordering of procedures
Use NSN VC framework
●
use generic variant functions
●
use generic cstics
●
use generic procedures and dependency nets
●
respect NSN naming conventions
Code generation on the fly
●
using Eclipse builder infrastructure
(CWG 2011 presentation
by P. Muthsam/M. Titerea)
Interfacing SAP
Two mechanisms for interfacing SAP
●
ALE via IDocs (Product Data Replication)
●
create/change/read/delete objects via RFC
Reading objects via RFC
●
Model extraction from SAP to VCML
No extraction of CML from SAP possible!
“When you think product modeling,
think programming.”
(Peter Illing, CWG 2011)
IDE: Tooling for Modelers
IDE: Tooling for Modelers
Syntax checking
Cross references
Semantic checking
IDE: Tooling for Modelers
Outline
Templates
Content Assist
Folding
Companion Languages
Companion Language I: CMLUI
NSN UI Enhancement Framework
CWG 2011 presentation by
Krisztian Kovacz (Siemens ICT)
Maintenance Dialogs DSL + IDE Tooling
Companion Language II: CMLT
Automated Model Testing
Test tool:
Fysbee's ConfigScan
CWG 2011 presentation by
Winfried Kung
DSL for describing test
cases
Transformation into
ConfigScan XML input
format
Use of ConfigModeler @
More than 100 product models are currently in
development using ConfigModeler.
(prototypes not included)
40% of these product models are already on
production system.
About 50% of all product models on production
system have been built with ConfigModeler.
(size and complexity not taken into account)
Showtime
Product “hiT 7030”
Multiplexes STM-1/STM-4 to 2M, 34/45M, STM-1, STM4
1 uplink board with 2 SFP module slots
3 downlink boards with 0-6 SFP module slots
Life Demo: Modeling with DSLs
Demo: Deployment to SAP
●
Using PDR
Technology in Use
Open source technology based on Java
●
Eclipse: IDE platform
●
Xtext:
●
domain-specific language framework
●
ANTLR-based parser
●
IDE generated automatically
●
adaptable via dependency injection (Google Guice)
●
EMF: Eclipse Modeling Framework
SAP JCo / IDocs library
Xtext – Some Code Snippets
What's new wrt. CWG Vienna 2010?
ConfigModeler
●
ConfigModeler implemented with Xtext
●
improved language and tooling
●
language for NSN UI Extensions
●
language for test cases (Fysbee ConfigScan)
●
new features: variant functions, modularization
VClipse
●
delta calculation
●
minor changes and bugfixes
Future
ConfigModeler + VClipse
●
migration to Xtext 2.0 and Eclipse Indigo (3.7)
– improved text-hover information
– improved performance
– code refactoring (e.g. renaming)
●
model-validation rules
●
variant-table contents
●
Engineering Change Management
VClipse
●
language reorganisation
●
features for Advanced Mode
VClipse is Free
VClipse is Free
VClipse.org: Open Source
Use, adapt, integrate, contribute!
Use Cases for VClipse
Mass upload (of parts) of configuration
Model comparison
– Use textual or EMF diff tools to compare models
Model versioning
– use version control system for textual models
Model refactoring
– rename objects, move cstics
Model validation
– check own naming conventions
– check for syntactic and semantic errors
Conclusion
Conclusion
Textual Domain-Specfic Languages
●
suitable for product modeling
●
modern tooling easy to create
with Eclipse / Xtext
VClipse
●
interface to SAP system when using DSLs
●
open-source tool useful for various
product-modeling tasks
Thanks to ...
●
various persons at Nokia Siemens Networks
●
Peter Muthsam & Michael Wilhelm (SAP VC)
●
Daniel Naus (CWG Sandbox)
●
various persons at itemis (Xtext)
●
webXcerpt team
Can product modeling with textual DSLs
be suitable for your domain and your company?
Domain-Specific Languages for Product Modeling (CWG 2011 Cologne, SAP Configuration Workgroup Conference)

Weitere ähnliche Inhalte

Was ist angesagt?

Rhapsody Eclipse
Rhapsody EclipseRhapsody Eclipse
Rhapsody EclipseBill Duncan
 
Installing Installing IBM Rational Rhapsody Designer and Architect for MBSE
Installing Installing IBM Rational Rhapsody Designer and Architect for MBSEInstalling Installing IBM Rational Rhapsody Designer and Architect for MBSE
Installing Installing IBM Rational Rhapsody Designer and Architect for MBSEFraser Chadburn
 
Product wise computer vision development
Product wise computer vision developmentProduct wise computer vision development
Product wise computer vision developmentYoss Cohen
 
Getting started with IBM Rational Rhapsody in Ada
Getting started with IBM Rational Rhapsody in AdaGetting started with IBM Rational Rhapsody in Ada
Getting started with IBM Rational Rhapsody in AdaFrank Braun
 
Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...
Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...
Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...mfrancis
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWareMichael Vorburger
 
Model-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical SoftwareModel-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical Softwaregjuljo
 
Comparison of Programming Platforms
Comparison of Programming PlatformsComparison of Programming Platforms
Comparison of Programming PlatformsAnup Hariharan Nair
 
Advanced IDE functionality in modern language workbenches
Advanced IDE functionality in modern language workbenchesAdvanced IDE functionality in modern language workbenches
Advanced IDE functionality in modern language workbenchesVaclav Pech
 
Randomization and Constraints - Workshop at BMS College
Randomization and Constraints - Workshop at BMS CollegeRandomization and Constraints - Workshop at BMS College
Randomization and Constraints - Workshop at BMS CollegeRamdas Mozhikunnath
 
How to contribute textual tooling for apache camel in several id es
How to contribute textual tooling for apache camel in several id esHow to contribute textual tooling for apache camel in several id es
How to contribute textual tooling for apache camel in several id esAurélien Pupier
 
Rational Rhapsody Workflow Integration with Visual Studio
Rational Rhapsody Workflow Integration with Visual Studio Rational Rhapsody Workflow Integration with Visual Studio
Rational Rhapsody Workflow Integration with Visual Studio Frank Braun
 

Was ist angesagt? (20)

Kumar_J
Kumar_JKumar_J
Kumar_J
 
Diwakar Nag
Diwakar NagDiwakar Nag
Diwakar Nag
 
desktop_resume
desktop_resumedesktop_resume
desktop_resume
 
Rhapsody Eclipse
Rhapsody EclipseRhapsody Eclipse
Rhapsody Eclipse
 
Installing Installing IBM Rational Rhapsody Designer and Architect for MBSE
Installing Installing IBM Rational Rhapsody Designer and Architect for MBSEInstalling Installing IBM Rational Rhapsody Designer and Architect for MBSE
Installing Installing IBM Rational Rhapsody Designer and Architect for MBSE
 
MPHS RC Design Flow
MPHS RC Design FlowMPHS RC Design Flow
MPHS RC Design Flow
 
Product wise computer vision development
Product wise computer vision developmentProduct wise computer vision development
Product wise computer vision development
 
CAN FD Stack Introduction & Related FAQ
CAN FD Stack Introduction & Related FAQCAN FD Stack Introduction & Related FAQ
CAN FD Stack Introduction & Related FAQ
 
Getting started with IBM Rational Rhapsody in Ada
Getting started with IBM Rational Rhapsody in AdaGetting started with IBM Rational Rhapsody in Ada
Getting started with IBM Rational Rhapsody in Ada
 
Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...
Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...
Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
 
Model-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical SoftwareModel-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical Software
 
RFT - Ashish Mathur
RFT - Ashish MathurRFT - Ashish Mathur
RFT - Ashish Mathur
 
Resume
ResumeResume
Resume
 
.Net language support
.Net language support.Net language support
.Net language support
 
Comparison of Programming Platforms
Comparison of Programming PlatformsComparison of Programming Platforms
Comparison of Programming Platforms
 
Advanced IDE functionality in modern language workbenches
Advanced IDE functionality in modern language workbenchesAdvanced IDE functionality in modern language workbenches
Advanced IDE functionality in modern language workbenches
 
Randomization and Constraints - Workshop at BMS College
Randomization and Constraints - Workshop at BMS CollegeRandomization and Constraints - Workshop at BMS College
Randomization and Constraints - Workshop at BMS College
 
How to contribute textual tooling for apache camel in several id es
How to contribute textual tooling for apache camel in several id esHow to contribute textual tooling for apache camel in several id es
How to contribute textual tooling for apache camel in several id es
 
Rational Rhapsody Workflow Integration with Visual Studio
Rational Rhapsody Workflow Integration with Visual Studio Rational Rhapsody Workflow Integration with Visual Studio
Rational Rhapsody Workflow Integration with Visual Studio
 

Ähnlich wie Domain-Specific Languages for Product Modeling (CWG 2011 Cologne, SAP Configuration Workgroup Conference)

Ugif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutesUgif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutesUGIF
 
DCC Labs Company Presentation
DCC Labs Company PresentationDCC Labs Company Presentation
DCC Labs Company PresentationDCC Labs
 
.NET Fundamentals and Business Application Development
.NET Fundamentals and Business Application Development.NET Fundamentals and Business Application Development
.NET Fundamentals and Business Application Development명신 김
 
CRH Embedded 11-2016
CRH Embedded 11-2016CRH Embedded 11-2016
CRH Embedded 11-2016Charles Hale
 
HARISH_Resume_Embedded_SW
HARISH_Resume_Embedded_SWHARISH_Resume_Embedded_SW
HARISH_Resume_Embedded_SWHarish Kumar S
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth Pilli
 
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...Christopher Diamantopoulos
 
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...Intel® Software
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Toolsghodgkinson
 
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"Fwdays
 
20070925 03 - La qualimétrie en environnement industriel (Schneider automation)
20070925 03 - La qualimétrie en environnement industriel (Schneider automation)20070925 03 - La qualimétrie en environnement industriel (Schneider automation)
20070925 03 - La qualimétrie en environnement industriel (Schneider automation)LeClubQualiteLogicielle
 

Ähnlich wie Domain-Specific Languages for Product Modeling (CWG 2011 Cologne, SAP Configuration Workgroup Conference) (20)

SivaBorra
SivaBorraSivaBorra
SivaBorra
 
Ugif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutesUgif 10 2012 lycia2 introduction in 45 minutes
Ugif 10 2012 lycia2 introduction in 45 minutes
 
Ankit sarin
Ankit sarinAnkit sarin
Ankit sarin
 
Resume M_Shams_qureshi
Resume M_Shams_qureshi Resume M_Shams_qureshi
Resume M_Shams_qureshi
 
Rashmi_Resume
Rashmi_ResumeRashmi_Resume
Rashmi_Resume
 
DCC Labs Company Presentation
DCC Labs Company PresentationDCC Labs Company Presentation
DCC Labs Company Presentation
 
Sumanth
SumanthSumanth
Sumanth
 
Basavanthrao_resume_vlsi
Basavanthrao_resume_vlsiBasavanthrao_resume_vlsi
Basavanthrao_resume_vlsi
 
.NET Fundamentals and Business Application Development
.NET Fundamentals and Business Application Development.NET Fundamentals and Business Application Development
.NET Fundamentals and Business Application Development
 
CRH Embedded 11-2016
CRH Embedded 11-2016CRH Embedded 11-2016
CRH Embedded 11-2016
 
Resume_suresh_final
Resume_suresh_finalResume_suresh_final
Resume_suresh_final
 
My Profile
My ProfileMy Profile
My Profile
 
HARISH_Resume_Embedded_SW
HARISH_Resume_Embedded_SWHARISH_Resume_Embedded_SW
HARISH_Resume_Embedded_SW
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latest
 
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
 
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
 
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
 
IBM Application Delivery Foundation for z Systems
IBM Application Delivery Foundation for z SystemsIBM Application Delivery Foundation for z Systems
IBM Application Delivery Foundation for z Systems
 
20070925 03 - La qualimétrie en environnement industriel (Schneider automation)
20070925 03 - La qualimétrie en environnement industriel (Schneider automation)20070925 03 - La qualimétrie en environnement industriel (Schneider automation)
20070925 03 - La qualimétrie en environnement industriel (Schneider automation)
 

Kürzlich hochgeladen

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
 
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
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
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
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
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
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
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
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
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.
 

Kürzlich hochgeladen (20)

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
 
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
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
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
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
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
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
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
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
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...
 

Domain-Specific Languages for Product Modeling (CWG 2011 Cologne, SAP Configuration Workgroup Conference)

  • 1. Domain Specific Languages for Product Modeling Tim Geisler webXcerpt Software GmbH tg@webxcerpt.com CWG 2011, Cologne 2011-05-10
  • 3. Product Modeling Specification Coding in SAP R/3 ● Materials ● BOMs ● Classes ● Cstics ● Procedures ● Constraints ● Selection Conditions ● Interface Designs
  • 5. Domain-Specific Languages Domain-specific language (noun): a computer programming language of limited expressiveness focused on a particular domain. The two main reasons why DSLs are popular: ● Improving productivity for developers ● Improving communication with domain experts (Martin Fowler)
  • 6. Customer Project @ Company-wide generic product structure NSN VC framework IPC extensions coding conventions Standardized product descriptions
  • 7. Customer Project @ Company-wide generic product structure NSN VC framework IPC extensions coding conventions product descriptions Standardized Formalized
  • 8. Customer Project @ Company-wide generic product structure NSN VC framework IPC extensions coding conventions product descriptions Standardized Formalized Tooling: Eclipse-based IDEs ConfigModeler VClipse Domain Specific Languages CML + CMLUI + CMLT VCML
  • 9. ConfigModeler and Vclipse: Two DSLs with Eclipse-based IDE RFC Editor/IDE Editor/IDE ConfigModeler VClipse CML VCML Code Generation
  • 10. CML: Customer's abstractions product structure grouping for order structure logical materials domains complex expressions equations counting
  • 11. VCML: SAP's abstractions Language elements for describing VC objects: ● cstic ● class ● dependency net ● … Embedded SAP languages for dependencies
  • 12. Code Generation: CML to VCML Generate VC objects and dependencies ● correct ordering of procedures Use NSN VC framework ● use generic variant functions ● use generic cstics ● use generic procedures and dependency nets ● respect NSN naming conventions Code generation on the fly ● using Eclipse builder infrastructure (CWG 2011 presentation by P. Muthsam/M. Titerea)
  • 13. Interfacing SAP Two mechanisms for interfacing SAP ● ALE via IDocs (Product Data Replication) ● create/change/read/delete objects via RFC Reading objects via RFC ● Model extraction from SAP to VCML No extraction of CML from SAP possible!
  • 14. “When you think product modeling, think programming.” (Peter Illing, CWG 2011)
  • 15. IDE: Tooling for Modelers
  • 16. IDE: Tooling for Modelers Syntax checking Cross references Semantic checking
  • 17. IDE: Tooling for Modelers Outline Templates Content Assist Folding
  • 19. Companion Language I: CMLUI NSN UI Enhancement Framework CWG 2011 presentation by Krisztian Kovacz (Siemens ICT) Maintenance Dialogs DSL + IDE Tooling
  • 20. Companion Language II: CMLT Automated Model Testing Test tool: Fysbee's ConfigScan CWG 2011 presentation by Winfried Kung DSL for describing test cases Transformation into ConfigScan XML input format
  • 21. Use of ConfigModeler @ More than 100 product models are currently in development using ConfigModeler. (prototypes not included) 40% of these product models are already on production system. About 50% of all product models on production system have been built with ConfigModeler. (size and complexity not taken into account)
  • 23. Product “hiT 7030” Multiplexes STM-1/STM-4 to 2M, 34/45M, STM-1, STM4 1 uplink board with 2 SFP module slots 3 downlink boards with 0-6 SFP module slots
  • 24.
  • 25. Life Demo: Modeling with DSLs
  • 26. Demo: Deployment to SAP ● Using PDR
  • 27.
  • 28. Technology in Use Open source technology based on Java ● Eclipse: IDE platform ● Xtext: ● domain-specific language framework ● ANTLR-based parser ● IDE generated automatically ● adaptable via dependency injection (Google Guice) ● EMF: Eclipse Modeling Framework SAP JCo / IDocs library
  • 29. Xtext – Some Code Snippets
  • 30.
  • 31. What's new wrt. CWG Vienna 2010? ConfigModeler ● ConfigModeler implemented with Xtext ● improved language and tooling ● language for NSN UI Extensions ● language for test cases (Fysbee ConfigScan) ● new features: variant functions, modularization VClipse ● delta calculation ● minor changes and bugfixes
  • 32. Future ConfigModeler + VClipse ● migration to Xtext 2.0 and Eclipse Indigo (3.7) – improved text-hover information – improved performance – code refactoring (e.g. renaming) ● model-validation rules ● variant-table contents ● Engineering Change Management VClipse ● language reorganisation ● features for Advanced Mode
  • 35. VClipse.org: Open Source Use, adapt, integrate, contribute!
  • 36. Use Cases for VClipse Mass upload (of parts) of configuration Model comparison – Use textual or EMF diff tools to compare models Model versioning – use version control system for textual models Model refactoring – rename objects, move cstics Model validation – check own naming conventions – check for syntactic and semantic errors
  • 38. Conclusion Textual Domain-Specfic Languages ● suitable for product modeling ● modern tooling easy to create with Eclipse / Xtext VClipse ● interface to SAP system when using DSLs ● open-source tool useful for various product-modeling tasks
  • 39. Thanks to ... ● various persons at Nokia Siemens Networks ● Peter Muthsam & Michael Wilhelm (SAP VC) ● Daniel Naus (CWG Sandbox) ● various persons at itemis (Xtext) ● webXcerpt team
  • 40. Can product modeling with textual DSLs be suitable for your domain and your company?