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

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.
- Meta-expressions no longer work.
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.
- Feature names restricted to valid Java identifiers only
- Coloring of diagrams works when selecting diagram in both Model Explorer and Diagram Navigator views from the Modeling perspective
Version: 0.0.2.
This version works with RSM 6.0.0.1 (RSM 6.0.0 with FixPack 1).
- handling of the entire UML 2.0
- removal analysis, patches and clean-up for activity diagrams
- XPath 2.0 presence conditions in DNF and the custom presence condition PC
- XPath 2.0 meta-expressions: NameME and TypeME
- Create Disjunct from Selection and Negate actions for easy creation of variability profile
- Create Template Instance action
- Apply Meta-Expressions Profile action
- Open Model Template action
- Apply Coloring and Remove Coloring actions
- Transformation message logging to the Console view