ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels
-
Upload
tim-geisler -
Category
Software
-
view
19 -
download
0
Transcript of ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels
![Page 1: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/1.jpg)
ConfigModeler and VClipse
Languages and IDEs for Product Modeling
on Different Abstraction Levels
Tim Geisler
webXcerpt Software GmbH
CWG 2010, Vienna 2010-04-20
![Page 2: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/2.jpg)
Product Modeling Gap
![Page 3: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/3.jpg)
● Post-merger consolidation:harmonize SAP and non-SAP systemsfor sales and configuration
● SAP ERP/PLM (VC) + SAP CRM 2007 (IPC)● Migration challenge:
How to migrate 6 product lines / more than 240 different products to VC / IPC?
(CWG 2009 Berlin talk by Gerhard Hering, NSN)
Product Modeling @
![Page 4: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/4.jpg)
Fabric-like Modeling
NSN VC framework
IPC extensions
coding conventions
Nearshore VC modeling team
Company-wide generic product structure
Standardizedproduct descriptions
![Page 5: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/5.jpg)
Fabric-like Modeling
NSN VC framework
IPC extensions
coding conventions
Nearshore VC modeling team
Company-wide generic product structure
Standardizedproduct descriptions
![Page 6: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/6.jpg)
Standardized Product Descriptions
● Product structure● Characteristics
(domains, texts, default values, interface design)
● Quantity rules for materials
● Other rules
In-house product experts specify product models
![Page 7: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/7.jpg)
Problems
Excel „template“ used as graph paper● pseudo code – manual translation required● manual tracking of changes● no guarantee for completeness● no specific tool support – just general Excel● first visual feedback with product setup
![Page 8: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/8.jpg)
Standardized Product Descriptions
![Page 9: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/9.jpg)
Standardized Product Descriptions
Formalized Product Descriptions
![Page 10: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/10.jpg)
Formalized Product Descriptions
Domain specific language● problem-oriented● human-understandable● text-based● machine-processable
Configuration Modeling Language (CML)
![Page 11: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/11.jpg)
Configuration Modeling Language
Products
Materials
Value Domains
Parameters
Equations
product CWGSwitch is #ABC000010000630 { uplink in [10GE, *1GE] is XYZ_CWGSWITCH_UPL; domain boards =
switch uplink {case 10GE : [*unequipped, 2x10GE, 8x1GE, 16x1GE];case 1GE : [*unequipped, 8x1GE, 16x1GE];};
product interfaceSubsystem is #ABC000010000640 {slot slot1 in boards is XYZ_CWGSWITCH_SLOT01;slot slot2 in boards is XYZ_CWGSWITCH_SLOT02;slot slot3 in boards is XYZ_CWGSWITCH_SLOT03;slot slot4 in boards is XYZ_CWGSWITCH_SLOT04;slotable #2x10GE is #ABC00001000634;slotable #8x1GE is #ABC00001000635;slotable #16x1GE is #ABC00001000636;check(#2x10GE > 2, "Only two 2x10GE boards allowed");
}; product powerSubsystem is #ABC000010000641 {
power in [*AC, DC] is XYZ_CWGSWITCH_PWR;powerRedundancy in
if power == AC then [*false, true] else disabled false
is XYZ_CWGSWITCH_PWRRED;amountPowerSupplies = 1 + (1 when powerRedundancy);#POWER:AC = amountPowerSupplies when power == AC;...
};...
![Page 12: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/12.jpg)
Configuration Modeling Language
Products
Materials
Value Domains
Parameters
Equations
product CWGSwitch is #ABC000010000630 { uplink in [10GE, *1GE] is XYZ_CWGSWITCH_UPL; domain boards =
switch uplink {case 10GE : [*unequipped, 2x10GE, 8x1GE, 16x1GE];case 1GE : [*unequipped, 8x1GE, 16x1GE];};
product interfaceSubsystem is #ABC000010000640 {slot slot1 in boards is XYZ_CWGSWITCH_SLOT01;slot slot2 in boards is XYZ_CWGSWITCH_SLOT02;slot slot3 in boards is XYZ_CWGSWITCH_SLOT03;slot slot4 in boards is XYZ_CWGSWITCH_SLOT04;slotable #2x10GE is #ABC00001000634;slotable #8x1GE is #ABC00001000635;slotable #16x1GE is #ABC00001000636;check(#2x10GE > 2, "Only two 2x10GE boards allowed");
}; product powerSubsystem is #ABC000010000641 {
power in [*AC, DC] is XYZ_CWGSWITCH_PWR;powerRedundancy in
if power == AC then [*false, true] else disabled false
is XYZ_CWGSWITCH_PWRRED;amountPowerSupplies = 1 + (1 when powerRedundancy);#POWER:AC = amountPowerSupplies when power == AC;...
};...
![Page 13: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/13.jpg)
Configuration Modeling Language
Products
Materials
Value Domains
Parameters
Equations
product CWGSwitch is #ABC000010000630 { uplink in [10GE, *1GE] is XYZ_CWGSWITCH_UPL; domain boards =
switch uplink {case 10GE : [*unequipped, 2x10GE, 8x1GE, 16x1GE];case 1GE : [*unequipped, 8x1GE, 16x1GE];};
product interfaceSubsystem is #ABC000010000640 {slot slot1 in boards is XYZ_CWGSWITCH_SLOT01;slot slot2 in boards is XYZ_CWGSWITCH_SLOT02;slot slot3 in boards is XYZ_CWGSWITCH_SLOT03;slot slot4 in boards is XYZ_CWGSWITCH_SLOT04;slotable #2x10GE is #ABC00001000634;slotable #8x1GE is #ABC00001000635;slotable #16x1GE is #ABC00001000636;check(#2x10GE > 2, "Only two 2x10GE boards allowed");
}; product powerSubsystem is #ABC000010000641 {
power in [*AC, DC] is XYZ_CWGSWITCH_PWR;powerRedundancy in
if power == AC then [*false, true] else disabled false
is XYZ_CWGSWITCH_PWRRED;amountPowerSupplies = 1 + (1 when powerRedundancy);#POWER:AC = amountPowerSupplies when power == AC;...
};...
![Page 14: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/14.jpg)
Configuration Modeling Language
Products
Materials
Value Domains
Parameters
Equations
product CWGSwitch is #ABC000010000630 { uplink in [10GE, *1GE] is XYZ_CWGSWITCH_UPL; domain boards =
switch uplink {case 10GE : [*unequipped, 2x10GE, 8x1GE, 16x1GE];case 1GE : [*unequipped, 8x1GE, 16x1GE];};
product interfaceSubsystem is #ABC000010000640 {slot slot1 in boards is XYZ_CWGSWITCH_SLOT01;slot slot2 in boards is XYZ_CWGSWITCH_SLOT02;slot slot3 in boards is XYZ_CWGSWITCH_SLOT03;slot slot4 in boards is XYZ_CWGSWITCH_SLOT04;slotable #2x10GE is #ABC00001000634;slotable #8x1GE is #ABC00001000635;slotable #16x1GE is #ABC00001000636;check(#2x10GE > 2, "Only two 2x10GE boards allowed");
}; product powerSubsystem is #ABC000010000641 {
power in [*AC, DC] is XYZ_CWGSWITCH_PWR;powerRedundancy in
if power == AC then [*false, true] else disabled false
is XYZ_CWGSWITCH_PWRRED;amountPowerSupplies = 1 + (1 when powerRedundancy);#POWER:AC = amountPowerSupplies when power == AC;...
};...
![Page 15: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/15.jpg)
product CWGSwitch is #ABC000010000630 { uplink in [10GE, *1GE] is XYZ_CWGSWITCH_UPL; domain boards =
switch uplink {case 10GE : [*unequipped, 2x10GE, 8x1GE, 16x1GE];case 1GE : [*unequipped, 8x1GE, 16x1GE];};
product interfaceSubsystem is #ABC000010000640 {slot slot1 in boards is XYZ_CWGSWITCH_SLOT01;slot slot2 in boards is XYZ_CWGSWITCH_SLOT02;slot slot3 in boards is XYZ_CWGSWITCH_SLOT03;slot slot4 in boards is XYZ_CWGSWITCH_SLOT04;slotable #2x10GE is #ABC00001000634;slotable #8x1GE is #ABC00001000635;slotable #16x1GE is #ABC00001000636;check(#2x10GE > 2, "Only two 2x10GE boards allowed");
}; product powerSubsystem is #ABC000010000641 {
power in [*AC, DC] is XYZ_CWGSWITCH_PWR;powerRedundancy in
if power == AC then [*false, true] else disabled false
is XYZ_CWGSWITCH_PWRRED;amountPowerSupplies = 1 + (1 when powerRedundancy);#POWER:AC = amountPowerSupplies when power == AC;...
};...
Configuration Modeling Language
Products
Materials
Value Domains
Parameters
Equations
![Page 16: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/16.jpg)
product CWGSwitch is #ABC000010000630 { uplink in [10GE, *1GE] is XYZ_CWGSWITCH_UPL; domain boards =
switch uplink {case 10GE : [*unequipped, 2x10GE, 8x1GE, 16x1GE];case 1GE : [*unequipped, 8x1GE, 16x1GE];};
product interfaceSubsystem is #ABC000010000640 {slot slot1 in boards is XYZ_CWGSWITCH_SLOT01;slot slot2 in boards is XYZ_CWGSWITCH_SLOT02;slot slot3 in boards is XYZ_CWGSWITCH_SLOT03;slot slot4 in boards is XYZ_CWGSWITCH_SLOT04;slotable #2x10GE is #ABC00001000634;slotable #8x1GE is #ABC00001000635;slotable #16x1GE is #ABC00001000636;check(#2x10GE > 2, "Only two 2x10GE boards allowed");
}; product powerSubsystem is #ABC000010000641 {
power in [*AC, DC] is XYZ_CWGSWITCH_PWR;powerRedundancy in
if power == AC then [*false, true] else disabled false
is XYZ_CWGSWITCH_PWRRED;amountPowerSupplies = 1 + (1 when powerRedundancy);#POWER:AC = amountPowerSupplies when power == AC;...
};...
Configuration Modeling Language
Identifiers
![Page 17: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/17.jpg)
product CWGSwitch is #ABC000010000630 { uplink in [10GE, *1GE] is XYZ_CWGSWITCH_UPL; domain boards =
switch uplink {case 10GE : [*unequipped, 2x10GE, 8x1GE, 16x1GE];case 1GE : [*unequipped, 8x1GE, 16x1GE];};
product interfaceSubsystem is #ABC000010000640 {slot slot1 in boards is XYZ_CWGSWITCH_SLOT01;slot slot2 in boards is XYZ_CWGSWITCH_SLOT02;slot slot3 in boards is XYZ_CWGSWITCH_SLOT03;slot slot4 in boards is XYZ_CWGSWITCH_SLOT04;slotable #2x10GE is #ABC00001000634;slotable #8x1GE is #ABC00001000635;slotable #16x1GE is #ABC00001000636;check(#2x10GE > 2, "Only two 2x10GE boards allowed");
}; product powerSubsystem is #ABC000010000641 {
power in [*AC, DC] is XYZ_CWGSWITCH_PWR;powerRedundancy in
if power == AC then [*false, true] else disabled false
is XYZ_CWGSWITCH_PWRRED;amountPowerSupplies = 1 + (1 when powerRedundancy);#POWER:AC = amountPowerSupplies when power == AC;...
};...
Configuration Modeling Language
Identifiers
Slotting
![Page 18: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/18.jpg)
product CWGSwitch is #ABC000010000630 { uplink in [10GE, *1GE] is XYZ_CWGSWITCH_UPL; domain boards =
switch uplink {case 10GE : [*unequipped, 2x10GE, 8x1GE, 16x1GE];case 1GE : [*unequipped, 8x1GE, 16x1GE];};
product interfaceSubsystem is #ABC000010000640 {slot slot1 in boards is XYZ_CWGSWITCH_SLOT01;slot slot2 in boards is XYZ_CWGSWITCH_SLOT02;slot slot3 in boards is XYZ_CWGSWITCH_SLOT03;slot slot4 in boards is XYZ_CWGSWITCH_SLOT04;slotable #2x10GE is #ABC00001000634;slotable #8x1GE is #ABC00001000635;slotable #16x1GE is #ABC00001000636;check(#2x10GE > 2, "Only two 2x10GE boards allowed");
}; product powerSubsystem is #ABC000010000641 {
power in [*AC, DC] is XYZ_CWGSWITCH_PWR;powerRedundancy in
if power == AC then [*false, true] else disabled false
is XYZ_CWGSWITCH_PWRRED;amountPowerSupplies = 1 + (1 when powerRedundancy);#POWER:AC = amountPowerSupplies when power == AC;...
};...
Configuration Modeling Language
Identifiers
Slotting
Conditionals
![Page 19: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/19.jpg)
Configuration Modeling Language
Parallel conditions● Value domains● Default values● Visibility
hw/sw inif isNewDeliverythen switch chassis {
case Chassis:A : [NoHW/SW, *HW/SW1, HW/SW2]; case Chassis:B : case Chassis:C : [NoHW/SW, *HW/SW2, HW/SW3]; case Chassis:D : disabled HW/SW1; default : invisible NoHW/SW; }
else invisible NoHW/SW;
![Page 20: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/20.jpg)
Configuration Modeling Language
Parallel conditions● Value domains● Default values● Visibility
hw/sw inif isNewDeliverythen switch chassis {
case Chassis:A : [NoHW/SW, *HW/SW1, HW/SW2]; case Chassis:B : case Chassis:C : [NoHW/SW, *HW/SW2, HW/SW3]; case Chassis:D : disabled HW/SW1; default : invisible NoHW/SW; }
else invisible NoHW/SW;
![Page 21: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/21.jpg)
Configuration Modeling Language
Parallel conditions● Value domains● Default values● Visibility
hw/sw inif isNewDeliverythen switch chassis {
case Chassis:A : [NoHW/SW, *HW/SW1, HW/SW2]; case Chassis:B : case Chassis:C : [NoHW/SW, *HW/SW2, HW/SW3]; case Chassis:D : disabled HW/SW1; default : invisible NoHW/SW; }
else invisible NoHW/SW;
![Page 22: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/22.jpg)
ConfigModeler
Integrated Development Environment (IDE)
for CML● Eclipse-based
![Page 23: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/23.jpg)
General IDE Features
Syntax checks
![Page 24: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/24.jpg)
General IDE Features
Syntax checks
Checking references
![Page 25: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/25.jpg)
General IDE Features
Syntax checks
Checking references
Checking types
![Page 26: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/26.jpg)
General IDE Features
Syntax checks
Checking references
Checking types
Code completion
![Page 27: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/27.jpg)
General IDE Features
Syntax checks
Checking references
Checking types
Code completion
Cycle detection
![Page 28: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/28.jpg)
General IDE Features
Diff and history
![Page 29: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/29.jpg)
Domain-specific IDE Features
Additional information
![Page 30: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/30.jpg)
Domain-specific IDE Features
Additional information
Dependency graph
![Page 31: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/31.jpg)
Domain-specific IDE Features
Additional information
Dependency graph
IPC preview for user interface
![Page 32: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/32.jpg)
VC Code Generation
Automatic generation of SAP product modelfrom formal specification in CML
![Page 33: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/33.jpg)
VC Code Generation
Uses NSN VC framework and coding conventions...* count slotable materialPFUNCTION Z_VC_GEN_AGG_INST_02 ( GEN_CSTIC_IN_PREFIX_01 = 'XYZ_CWGSWITCH_SLOT', GEN_CSTIC_IN_PREFIX_02 = 'NA', GEN_CSTIC_IN_PREFIX_03 = 'NA', GEN_CSTIC_IN_PREFIX_04 = 'NA', GEN_CSTIC_QTY_PREFIX = 'NA', GEN_DIGITS = 2, GEN_CSTIC_OUT = 'GEN_CML_AGG_MODULES', GEN_INSTANCE_START = 'PARENT', GEN_INCL_START_INST = 'T', GEN_INCL_SELF_INST = 'F', GEN_RECURSIVE = 'F', GEN_AGG_CTRL_SUFFIX = 'NA', GEN_AGG_CTRL_MATNR_LIST = 'NA', GEN_AGG_CTRL_CLASS = 'NA', GEN_AGG_CTRL_CSTIC = 'NA', GEN_AGG_CTRL_VAL = 'NA', GEN_MODE = 'DELETE'),* slotable material #2x10GEPFUNCTION Z_VC_GEN_GET_COMP_DATA_01 ( GEN_CSTIC_IN = 'GEN_CML_AGG_MODULES', GEN_INSTANCE_IN = 'SELF', GEN_VAL_CHAR_01 = '2x10GE', GEN_INDEX_NUM = 1, GEN_COMP_QTY = $SELF.GEN_AUX_NUM_01),PFUNCTION Z_VC_GEN_SET_VBOM_MU ( GEN_MU_ID = 'ABC00001000634', GEN_MU_QTY = $SELF.GEN_AUX_NUM_01, GEN_VBOM_CSTIC = 'GEN_VBOM_CURR') IF $SELF.GEN_AUX_NUM_01 GT 0,...
![Page 34: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/34.jpg)
VC Code Generation
Automated model setupvia Product Data Replication
PDR
![Page 35: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/35.jpg)
Use of ConfigModeler at NSN
● Product specialists specify and set upproducts models in SAP
● 20 users (10 regular)● up to now 60 products● but: not a tool for all products
![Page 36: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/36.jpg)
System Overview
RFC
Editor
ConfigModeler
CML
Compiler
![Page 37: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/37.jpg)
Product Modeling in SAP VC
existing:● textual languages for procedures and constraints● interactive creation and change of VC objects
missing:● human-readable textual language for VC objects
– diff / merge / version control– find / replace– partial models– product model as a document
![Page 38: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/38.jpg)
System Overview
RFC
Editor
ConfigModeler
CML
Compiler
![Page 39: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/39.jpg)
System Overview
RFC
Editor
Editor
ConfigModeler
VClipse
CML
VCML
Compiler
![Page 40: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/40.jpg)
VCML: DSL for SAP VC
● Simple DSL for SAP VC objectswith embedded languages for procedures and constraints
● DSL design:● Make it simple● Model only important properties of SAP objects,
others are hard-wired or defaulted
![Page 41: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/41.jpg)
VCML Example: Characteristic
characteristic WP_OPTIONS { description "Web Phone Options" documentation "Some long documentation on Web Phone Options" symbolic { numberOfChars 3 values { '001' { description "Cable for connecting monitor" } '002' { description "Voice mail" } '003' { description "Camera" } '004' { description "Additional Antenna" } '005' { description "Memory Upgrade" dependencies { WP_MEMORY_UPGRADE } } '006' { description "Self-Cleaning Screen" } } } status released [ multiValue required ]}
![Page 42: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/42.jpg)
VCML Example: Precondition
precondition WP_MEMORY_UPGRADE { description "Precond. for memory upgrade" status released source {* memory upgrade is only allowed with answering machine$self.WP_options specified and$self.WP_options = '002'. }}
![Page 43: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/43.jpg)
VClipse: Eclipse-based IDE for VCML
Syntax check
![Page 44: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/44.jpg)
VClipse: Eclipse-based IDE for VCML
Syntax check
Jump to definition
![Page 45: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/45.jpg)
VClipse: Eclipse-based IDE for VCML
Syntax check
Jump to definition
![Page 46: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/46.jpg)
VClipse: Eclipse-based IDE for VCML
Syntax check
Jump to definition
Code completion
![Page 47: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/47.jpg)
VClipse: Eclipse-based IDE for VCML
Syntax check
Jump to definition
Code completion
Outline
Document order PMEVC order
![Page 48: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/48.jpg)
VClipse: Eclipse-based IDE for VCML
Syntax check
Jump to definition
Code completion
Outline
Diff / merge
History
![Page 49: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/49.jpg)
Interfaces to SAP: RFC-based
CRUD operations
Recursive model extraction
![Page 50: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/50.jpg)
Interfaces to SAP: IDoc-based
Send complete product modelsvia Product Data Replication (PDR)
VCML JCo IDocs UPSPDR
![Page 51: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/51.jpg)
VClipse is Free
![Page 52: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/52.jpg)
VClipse is Free
![Page 53: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/53.jpg)
VClipse.org: Open Source
Use, adapt, integrate, contribute!
![Page 54: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/54.jpg)
Summary
Product modeling is like programming● Use appropriate languages ● Use appropriate tools
Tool chain for text-based product modeling● CML, VCML:
two languages with different abstraction levels● ConfigModeler, VClipse:
two Eclipse-based IDEs
![Page 55: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/55.jpg)
Summary
![Page 56: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/56.jpg)
Thanks to ...
● various persons at Nokia Siemens Networks● Peter Muthsam (VC knowledge)● Daniel Naus (CWG Sandbox)● itemis (Xtext)● webXcerpt team
![Page 57: ConfigModeler and VClipse Languages and IDEs for Product Modeling on Different Abstraction Levels](https://reader036.fdocuments.net/reader036/viewer/2022062420/55cf33adbb61ebc4728b464c/html5/thumbnails/57.jpg)