- start?
- first create a simple project. In Resource perspective, Navigator view, use New->Project…->General->Project action from the pop-up menu. Example models can be imported into the project using Import…->General->File System or Import…->General->Archive File actions.
- set max to * (unbounded)?
- use -1 as a value
- create a feature diagram?
- feature diagram is contained directly by feature model element (the root of the feature tree in the modeling pane) and represented by a root feature
- create a configuration?
- configuration is performed with respect to feature diagram. A feature diagram can have multiple configurations. A configurations can have further configurations. To create new configuration use New Configuration of Root Feature action from the context menu on a feature. Any feature can be configured.
- configure?
- select a configuration and expand it (<alt>+<down arrow> is a useful shortcut). Select feature by left-clicking on a checkbox, eliminate using <ctrl>+<left-click>. You can also override machine selections and eliminations. The conflicts are automatically resolved. Additionally, features with max cardinality greater than 1 or * can be cloned by <dbl-click> on the icon (circles).
- We refer to the original feature as prototype and its instances as clones. The prototype does not belong to the configuration, the same way as an unchecked optional feature. The difference is that, the prototype can be pre-configured and each of the clones will be an exact copy which can be further configured.
- use in-place editing?
- you can conveniently enter feature names and set diagram references in the Modeling pane using in-place editing. To enter in-place editing mode select a feature or a reference and press space or double left-click. Confirm changes by pressing enter and cancel by pressing escape. In-place editing can also be used for setting feature attribute values in configuration as well.
- set feature diagram reference?
- the easiest way is to simply drag a root feature of the diagram and drop it on the reference. Another way is to use the drop down menu of the reference and choose a root feature.
- set up a diagram reference to the diagram from another feature model?
- use Load Resource… action from FeatureMdl Editor menu to load another feature model into editor’s resource set. Diagrams from every model in the editor’s resource set are available for selection from the drop down menu of the reference. Another possibility is to arrange two editors besides each other and use drag & drop to set a reference.
- use reference attribute?
- reference attribute, unlike integer, string and float attributes, does not have default value. Instead it has a type. The reference attribute’s type can be set in the model and specifies a feature of which clones can be chosen as reference attribute’s value during specialization and configuration. If the type is unspecified, any feature can be a value.
- set reference attribute’s type in the Properties view?
- the properties view is linked with the editor and updates its contents to the current editor’s selection. To set reference attribute’s type first unlink the properties view using link/unlink button . Next drag & drop a feature from the feature model onto the reference attribute’s type. Remember to link the Properties view back to the editor.
- write a constraint?
- constraints reside in root features. Select a root feature in the editor’s modeling pane. If the Constraints view is linked with the editor it displays a list of constraints of the selected root feature. Use Add constraint from the pop-up menu. Write a constraint expression using XPath 2.0. You can also use two templates accessible from the context menu. It is important to use ‘;’ at the end of the constraint.
- Every feature model element has a unique ID (withing the scope of a root feature). IDs are used in constraints to refer to feature model elements. IDs are created automatically when setting the name of the feature for the first time. IDs start with a lower case letter and consist only of letters and numbers. For example ID of feature ‘0 My New (*& feaTure’ is ‘myNewfeaTure’. IDs are case sensitive.
- write
f1 requires f2
constraint?
- if (//f1) then (//f2) else true();
or using our extended syntax: (//f1) -> (//f2);
.
- write
f1 excludes f2
constraint?
- if (//f1) then not (//f2) else true();
- check constraints?
- In this version of the plug-in the constraints are being automatically checked and enforced. Constraint propagation propagates choices to satisfy the constraints. Conflict resolution accepts the latest selection and resolves conflicts (if any) so that the constraints are always satisfied.
- show hidden meta-model extensions?
- optional extensions of the meta-model are by default hidden in the Properties view. Use Show/hide unused annotations button located in the Properties view’s toolbar.
- incorporate new meta-model extensions to the model and all configurations of its diagrams?
- what you see in the Properties view of any selected modeling element is actually a configuration of the meta-model diagram for that element (e.g.:SolitaryFeature). Modifications of the meta-model diagram have to be Synchronized with all configurations of that diagram. Use Synchronize action from the pop-up menu on the root feature of the meta-model diagram.
- use the Feature Comparison view?
- Feature Comparison view is usefull for comparing different configurations. Create at least one configuration of the root feature and use Feature Comparison action from the context menu.