We present ConfigModeler and VClipse, two domain-specific languages and corresponding Eclipse-based integrated development environments (IDEs) for product modeling on different levels of abstraction.
VClipse supports the direct specification of objects and dependencies using VC's abstraction level in a textual language called VCML. VC objects and dependencies can be transferred to an SAP system using RFC or product data replication (PDR) via IDocs. It is also possible to extract product models from an SAP system. This enables the use of standard text comparison tools and version control systems. VClipse is released as an open-source project on http://www.vclipse.org.
ConfigModeler supports the specification of product models in a language supporting a high degree of abstraction. Developed in a customer project at Nokia Siemens Networks, this language has been designed according to the customer's needs, uses the customer's concepts, and fits into the customer’s VC and IPC add-ons. ConfigModeler translates the product models to VC objects and dependencies represented as VCML code.
We will give a demonstration of the two development environments and give an outlook to current and future developments.
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)
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!
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)
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
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
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?