fmp2rsm: Mapping Features to UML 2.0 Models Plug-in

fmp2rsm is a prototype implementation of Feature-Based Model Templates for Rational Software Modeler (RSM) or Rational Software Architect (RSA). fmp2rsm integrates Feature Modeling Plug-in (fmp) with RSM and enables product line modeling in UML and automatic product derivation. Model templates can be verified for correctness using the fmp2rsmVerifier plug-in.

Current Version: 0.0.5 - research prototype

Examples are attached to publications.

Project Status: Completed. The plug-in is no longer developed. Migrations to RSM 7.0 and 7.5 we attempted were unsuccessful.

Team Members

News

Publications

2006
Czarnecki, K., and K. Pietroszek, "Verifying feature-based model templates against well-formedness OCL constraints", 5th international conference on Generative programming and component engineering - GPCE '06, Portland, Oregon, USA, ACM Press, pp. 211, 2006. [pdf]
2005
Czarnecki, K., and M. Antkiewicz, "Mapping Features to Models: A Template Approach Based on Superimposed Variants", ACM SIGSOFT/SIGPLAN International Conference on Generative Programming and Component Engineering (GPCE'05), vol. 3676, Tallinn, Estonia, Springer-Verlag, pp. 422 - 437, 2005. [pdf][zip][zip]

Installation

Requirements:

Installation instructions:

  1. Install RSM. <RSM install location> is a folder where rationalsdp.exe file resides.
  2. Unzip fmp plug-in into <RSM install location>\eclipse.
  3. Unzip fmp2rsm plug-in into <RSM install location>\eclipse
  4. Run RSM
  5. Help->Software Updates->IBM Rational Product Updater
  6. Select IBM Rational Software Modeler and switch to the Updates pane. Install the latest updates. Restart RSM.
AttachmentSize
fmp2rsm_0.0.5.zip41.3 KB

Tutorial

See also a tool demonstration.

1. Open Navigator view.


Window->Show View->Other...->Basic->Navigator


2. Create new project. Simple->Project.




3. Import the downloaded eShop example.


Import->Zip File online-B2C-solutionExample.zip


4. Open 'online-B2C-solution.fmp' feature model.




5. The root element named 'online-B2C-solution.emx' indicates that this feature model is linked with 'online-B2C-solution.emx' UML model. Use <Alt + <Down Arrow>> on the root node to fully expand the model.





6. Open model template. Model template is a UML model with variability annotations which describes a family of systems.




7. Create configuration of eCommerce root feature.




8. Inside Configuration 1 of eCommerce select the following features:
Registered, Multilevel, Electronic Goods, and Wishlists.


9. Create template instance for given configuration. This removes parts of the model template whose presence conditions (expressed over features) evaluate to false.




10. The resulting UML model describes a single product as specified by feature configuration. Use Save As... to preserve the result without overwriting original model template.


AttachmentSize
online-B2C-solutionExample.zip40.61 KB

Version History

Version: 0.0.4.

This version works with RSM 6.0.1 (RSM 6.0.0 with RefreshPack 1) and fmp 0.6.4.

Version: 0.0.3.

This version works with RSM 6.0.1 (RSM 6.0.0 with RefreshPack 1) and old fmp 0.5.2.

Version: 0.0.2.

This version works with RSM 6.0.0.1 (RSM 6.0.0 with FixPack 1).

Known Issues

Version information:

Things that need to be done:

HOW TOs

  1. How to start?
  2. I am in the Modeling perspective. Why did my feature model disappear?
  3. How to create a model template?
  4. How to create a disjunct?
  5. How to negate a property of a disjunct?
  6. How to apply an explicit presence condition?
  7. How to apply a meta-expression?
  8. How to apply an explicit custom presence condition?
  9. How to create an instance of the model template?
  10. How to migrate the model template to the latest version of the variability profile?
  11. How to use coloring?


  1. How to start?

    - First create a feature model describing variability in your domain. Than create your UML 2.0 model. To link the feature model to the UML model simply set the name of the feature model element (root of the feature tree in the modeling pane) to the file name of the uml model (e.g.: test.emx). You can use fmp2rsm/Open Model Template action on the feature model element to create empty variability profile and apply it to the model template for the first time.

  2. I am in the modeling perspective. Why did my feature model disappear?

    - The Modeling perspective filters out anything that is not considered by it as a model file. Just switch to the Resource perspective.

  3. How to create a model template?

    - Model template is an ordinary UML 2.0 model with applied variability profile and elements annotated with presence conditions and/or meta-expressions.

  4. How to create a disjunct?

    - In the modeling pane of the feature modeling plugin select one or more features and use fmp2rsm/Create Disjunct from Selection action. This adds a new stereotype to the variability profile. Variability profile is not automatically saved. This action does not automatically migrate the model template to the latest version of the profile. (see How to migrate...)

  5. How to negate a property of a disjunct?

    - Simply use the fmp2rsm/Negate action on the property of the stereotype in variability profile. Variability profile is not automatically saved.

  6. How to apply an explicit presence condition?

    - The variability profile contains stereotypes that represent disjuncts. Apply multiple stereotypes to create a presence condition in the Disjunctive Normal Form

  7. How to apply a meta-expression?

    - First use fmp2rsm/Apply Meta-Expressions Profile action on the feature model element to create and apply the meta-expressions profile to the model template. To apply a meta-expression simply apply NameME or TypeME stereotypes to the UML element and enter XPath 2.0 expression as a value of the stereotype's expression property. The expression has to evaluate to a String value.

  8. How to apply an explicit custom presence condition?

    - Custom presence condition PC is defined in the meta-expressions profile. Apply the PC stereotype to any UML Element and enter a XPath expression that evaluates to a Boolean value as a value of the property expression.

  9. How to create an instance of the model template?

    - Use fmp2rsm/Create Template Instance action on the feature model element. The action opens only diagrams from the template instance that have changed.

  10. How to migrate the model template to the latest version of the variability profile?

    - There are two ways: (i) if the variability profile has been already applied to the model template, simply open the model template and RSM will ask you to migrate to the latest version of the profile; (ii) use fmp2rsm/Open Model Template to apply the variability profile for the first time or migrate the model template to the latest version of the profile and to open the model template and all of its diagrams.

  11. How to use coloring?

    - Choose a diagram in the Model Explorer view in the Modeling perspective. Use fmp2rsm/Apply Coloring and fmp2rsm/Remove Coloring actions. You can also use RSM's Stereotype and Visibility Type tool in the toolbar to hide variability stereotypes. NOTE: coloring doesn't work when choosing a diagram in Diagram Navigator view in the Modeling perspective.