Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

How to Create Your Own Product-Modeling Environment

Wird geladen in …3
×

Hier ansehen

1 von 52
1 von 52

How to Create Your Own Product-Modeling Environment

Herunterladen, um offline zu lesen

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 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.

An integration of the automatic testing tool ConfigScan allows to validate the product models.

We will give a demonstration of the two development environments and give an outlook to current and future developments.

We sketch what has to be done when you consider to take a similar approach for product modeling in your domain.

2011 North American CWG Conference - Marco Island, Florida, USA

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 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.

An integration of the automatic testing tool ConfigScan allows to validate the product models.

We will give a demonstration of the two development environments and give an outlook to current and future developments.

We sketch what has to be done when you consider to take a similar approach for product modeling in your domain.

2011 North American CWG Conference - Marco Island, Florida, USA

Weitere Verwandte Inhalte

Ähnliche Bücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

Ähnliche Hörbücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

How to Create Your Own Product-Modeling Environment

  1. 1. How to Create Your Own Product Modeling Environment Tim Geisler webXcerpt Software GmbH tg@webxcerpt.com CWG 2011, Marco Island 2011-10-04
  2. 2. Product Modeling
  3. 3. Product Modeling Specification Coding in SAP R/3 ● Materials ● BOMs ● Classes ● Cstics ● Procedures ● Constraints ● Selection Conditions ● Interface Designs
  4. 4. Product Modeling Environment Means for describing product model ➔ Textual domain-specific language ➔ Tailored to your needs Tooling ➔ Eclipse-based Integrated Development Environment (IDE) ➔ Functionality tailored to your needs
  5. 5. Domain-Specific Languages
  6. 6. 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)
  7. 7. Customer Project @ Company-wide generic product structure NSN VC framework IPC extensions coding conventions Standardized product descriptions
  8. 8. Customer Project @ Company-wide generic product structure NSN VC framework IPC extensions coding conventions product descriptions Standardized Formalized
  9. 9. 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
  10. 10. ConfigModeler and Vclipse: Two DSLs with Eclipse-based IDE RFC Editor/IDE Editor/IDE ConfigModeler VClipse CML VCML Code Generation
  11. 11. CML: Customer's Concepts product structure grouping for order structure logical materials domains complex expressions equations counting
  12. 12. VCML: SAP's Concepts Language elements for describing VC objects: ● cstic ● class ● dependency net ● … Embedded SAP languages for dependencies
  13. 13. 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
  14. 14. 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!
  15. 15. IDE: Tooling for Modelers
  16. 16. IDE: Tooling for Modelers Syntax checking Cross references Semantic checking
  17. 17. IDE: Tooling for Modelers Outline Templates Content AssistFolding Rename refactoring
  18. 18. Companion Languages
  19. 19. Companion Language I: CMLUI NSN UI Enhancement Framework Framework for describing ● widgets (headings, checkboxes, notes, …) and ● layout (columns, font, color, spacing) Old: Maintenance Dialogs New: DSL + IDE Tooling
  20. 20. Companion Language II: CMLT Automated Model Testing Test tool at NSN: Fysbee's ConfigScan DSL for describing test cases using CML concepts
  21. 21. Companion Language II: CMLT Test-Case Execution ● Remote call of ConfigScan from ConfigModeler ● Display of test results in separate view ● Navigation to corresponding test statement in test-case language
  22. 22. Companion Language II: CMLT Support for Test-Case Maintenance ● Test-coverage analysis (static) Is there a test case for each material, cstic, ...? ● Fully integrated languages CML / CMLT ● Robustness: generation of ConfigScan code ● Import of test cases from IPC export files
  23. 23. Use of ConfigModeler @ More than 100 product models are currently in development using ConfigModeler. (prototypes not included) About 50% 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)
  24. 24. Showtime
  25. 25. 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
  26. 26. Life Demo: Modeling with DSLs
  27. 27. Demo: Deployment to SAP ● Using PDR
  28. 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. 29. VClipse is Free
  30. 30. VClipse is Free
  31. 31. VClipse.org: Open Source Use, adapt, integrate, contribute!
  32. 32. 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
  33. 33. How to Create Your Own Product Modeling Environment?
  34. 34. Product Modeling Environment @ NSN RFC Editor/IDE Editor/IDE ConfigModeler VClipse CML VCML Code Generation
  35. 35. My Own Product-Modeling Environment RFC Editor/IDE Editor/IDE my ConfigModeler VClipse myCML VCML my Code Generation
  36. 36. Building Blocks Metamodel Editor/IDE my ConfigModeler myCML my Code Generation Scoping + Validation Target Architecture Grammar Import from Legacy Configurators or Specifications Export / Reports Vclipse adaptions Code Generation IDE adaptions
  37. 37. Defining your Modeling-Language Grammar ● using the Xtext grammar language ● from this grammar, the following is derived: ● metamodel (Ecore + Java classes) ● parser ● editor with syntax highlighting, content assist, outline, folding, ...
  38. 38. Defining your Modeling-Language Metamodel Represents all product models in the domain (like a schema) ● EMF Ecore Meta Model ● Generated from grammar or defined separately ● Source of transformation
  39. 39. Scoping + Validation Language Aspects not Represented in Grammar Scoping: visibility of objects for cross-references Validation: checks for complex model properties
  40. 40. Defining your Target Architecture Clear: SAP Variant Configuration Open aspects: ● Naming conventions ● Which objects should be modeled? ● Constraints / conditions on values? ● BOM calculation ● Use of variant tables ● Use of certain variant functions ● … Might be very company-specific!
  41. 41. Code Generation Task: map myCML models (instances of your metamodel) to VCML models ● Respect your target architecture ● Various means to implement: ● Java ● EMF model transformation languages
  42. 42. IDE Adaptions ● Xtext-based editors are highly configurable through dependency injection using Google Guice ● Nearly each part of system can be adapted and replaced.
  43. 43. Import from Legacy Configurators ● Task: map models of your legacy configurator to xCML models ● Various means to implement, depending on your legacy configurator: ● Extension of legacy transformator ● XML transformation using e.g. XSLT ● Implement DSL for legacy configurator use model 2 model transformation to transform to xCML ● ...
  44. 44. Export / Reports ● Use EMF model to text transformation language ●
  45. 45. Features for Free ● Due to the use of Eclipse as platform, you get a lot of features for free: ● Integration of all modern version control systems (CVS, Subversion, Git, …) ● Textual file comparison ● Task-focused work using Mylyn ● Integration of bug-tracking systems ● Query / replace with regular expressions ● ...
  46. 46. Conclusion
  47. 47. 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 modeling tasks How to create your own product-modeling environment ● identified several building blocks
  48. 48. Thanks to ... ● various persons at Nokia Siemens Networks ● Peter Muthsam & Michael Wilhelm (SAP VC) ● Fysbee team for ConfigScan support ● Daniel Naus (CWG Sandbox) ● various persons at itemis (Xtext) ● webXcerpt team
  49. 49. How could product modeling with textual DSLs look like for your domain and your company?

×