use cases for the open-source textual product-modeling environment vclipse
TRANSCRIPT
Use Cases forthe Open-Source
Textual Product-Modeling Environment
VClipse
Tim Geisler
webXcerpt Software GmbH
CWG 2013, Vienna 2013-05-07
VClipse is Open Source
● www.vclipse.org
● Hosted at Eclipse Labs / Google Code
● Eclipse Public License (EPL)
− Use and source code free of charge− Freedom for development, adaption,
and inclusion in your tools− Your development is only under EPL,
if you change EPL-licensed code,but not when you add new modules.
● Ongoing development and maintenance
Textual Product Modeling in VClipse
VCML: own domain-specific textual languagefor objects of VC models
Uses textual languages defined by SAPfor dependency source code
Interface to SAP ECC (ALE, RFC)
● Based on SAP JCo and IDoc library● RFC interface
− Create, Read, Update, Delete− Extract recursively: model extraction
● ALE interface− Sending models via IDocs (PDR)− Delta calculation
– Compute and send only changed objects
− „One-click delta deployment“– Send delta via PDR, automatic processing in SAP
Use Cases: Overview
● Product modeling● Model extraction● Comparing and merging models● Model validation● Model migration● High-level product modeling● Collaborative product modeling● Automatic model testing
Model Extraction
● Based on standard SAP RFCs and BAPIs
● Extraction from ERP
● Flat or recursive extraction
● Options to control what will be extracted
● Possibility to exclude already extracted objects or sets of objects common to several models
Model Extraction
● What can you do with extracted models?− View / browse / ...− Store (e.g., in a version-control system)− Modify and deploy on same / on other system− Compare / merge− Validate− Transform
Comparing and Merging Models
● Compare models from different systems− VClipse in real project: compare and merge models for
same product which diverged in different systems over time
● Compare evolution of models over time− Store extracted models in version-control system− Compare selected versions− When version-control system supports branching and
merging, also VC models can be branched and merged.
Tools for Comparing and Merging
● Comparison using Eclipse modeling technologyEMF Compare or EMF DiffMerge
− Object-based matching and comparison− Has to / can be adapted− Own comparison and merging operations
implementable– Ignore certain differences– Automatically add new values and new translations of
descriptions– ...
Model Validation
● Standard validation
● Powerful Eclipse „Problems View“:
− Can be filtered− Navigate to location of problem− Apply quick fixes
● You can easily implement your validation rules yourself in Java
− Validation wrt. company conventions− Naming conventions
− Validation wrt. VC/IPC compatibility− Implement „quick fix“ - intelligent support to fix problems
Model Transformations -Transform models to SAP VC
● VCML as textual language for VC objects− easy to generate from all kind of tools which could be
source of a model, e.g. legacy configurator, Excel, …● Transformation does not need to be complete● Manual modifications in / additions to migrated model
possible(„regions which have to be transformed manually“)
● VClipse's IDE features + general Eclipse editing features available (replace, regular expressions, templates, ...)
● VClipse's SAP backend for free
Model Transformations -Transform models from SAP VC
● Model extraction from SAP using VClipse● VCML implemented using Eclipse Modeling Framework
− Easy to navigate meta model– Containment and non-containment references
− Can be used as source for transformation● Various transformation languages can be used
− Java− Eclipse Xtend (much more concise)− Special model to model transformation languages
● Target of transformation has probably Java API
Higher-Level Product Modeling
● VClipse is used as target of transformationfrom a higher-level modeling languageimplemented with the same technologies
RFC
Editor/IDE
Editor/IDE
ConfigModeler
VClipse
CML
VCML
Code Generation
Higher-Level Product Modeling
● Project „ConfigModeler“ atNokia Siemens Networks
− High-level modeling language with NSN's concepts
− Code generation uses NSN's conventions and framework
− Integrated side languages for UI, help texts, testing
− Used for 2/3 of all models in productive system
− VClipse originates from this project
● Built several prototypes for other companies
CML: Product model
CMLUI: User Interface
CMLT: Test cases
Higher-Level Product Modelingfor Model Migration
● Idea: nearly 1:1 migration from legacy system to newly to-be designed textual modeling language xCML
− Export from legacy system– Probably export to some textual language already exists– Should be easy to implement even in legacy system itself
− xCML models can be modified manually using tools– Model cleanup using standard or language-specific Eclipse tools– Textual model does not need to be consistent / complete during all
phases of migration process
● Code generation from xCML to VCML
− Dependent on target model● Does not need to be complete – rest is done manually
Collaborative Model Development
● Eclipse has interfaces to state-of-the-art tools required for software development in a team
● Version-control system
− e.g., Subversion, CVS, Git, Perforce, ClearCase, Team Foundation Server
− Answer the question „Who changed what and why?“
− Merge, compare, and restore versions
● Task-management system
− e.g., Bugzilla, Trac, Assembla, Jira, HP Quality Center
− Collect information on tasks (specification, discussion, but also related model changes)
− Some systems provide code-review features
− Context-awareness / task-focused work through Eclipse Mylyn
− Eclipse manages work contexts which are attached to tasks
Automatic Model Testing
● Interface to ConfigConfigScanScan suite from Fysbeeallows to execute test cases from within VClipse
Test Log view
Navigate to error
Group by failures
Automatic Model Testing: VCMLT
● Test language VCMLT for describing test cases for VCML models contributed by Winfried Kung
● Test cases are connected to the model – this simplifies test-case maintenance
Summary
● Discussed several use cases for VClipse− Some from real projects, some from prototypes− Models are represented as textual documents− Documents are represented internally as data
structures− Bi-directional interface to SAP available− VClipse is free to use and to extend
● What could be your use case?
VClipse - Try It Out
● Ready-to-run from memory stick● Eclipse 4.2.2 (Juno SR2) for Windows 32/64 bit
including Java VM● VClipse installed
− win32\eclipse\eclipse.exe
− win32-x86_64\eclipse\eclipse.exe
● Sample workspace− win32\workspace
− win32-x86_64\workspace
● Configured for CWG-sandbox use
VClipse Installation and Configuration
● SAP:− for ALE interface
– 2 function modules required (providers of IDoc and UPS package numbers)
– PDR customizing: logical system
− for RFC interface– Autorizations of RFCs have to be set
● User's machine:− Eclipse (+ Java) installation− Within Eclipse, install from update site
http://update.vclipse.org− Setup of SAP system in Eclipse preferences
We are Interested in ...
● Getting more users● Feedback and new requirements from users● Further use cases● Contributions
− Bug reports− Improved user documentation− Further development (patches, new features)− In the long run:
– Community building– Patches, add-ons, and extensions by you
Extended Demo
● Contact me in after the talk, in the breaks, tomorrow afternoon for a face-to-face demo session at the conference
● Send me a mail ([email protected]) for a demo session via telco after the conference