290 likes | 540 Views
Feature Modeling Capabilities for ViPER Platform. Feature Modeling Different approaches of Feature Modeling Explanation and examples of few MetaModel of Feature Modeling for ViPER Implementation and Extension of Feature Editor in ViPER Demo Current / Future Development. Feature Modeling.
E N D
Feature ModelingCapabilitiesforViPERPlatform Feature Modeling Different approaches of Feature Modeling Explanation and examples of few MetaModel of Feature Modeling for ViPER Implementation and Extension of Feature Editor in ViPER Demo Current / Future Development
Feature Modeling • Increasingly popular domain in product linedevelopment • PL is a set of systems with common characteristics. Goal is to improve productivity and quality of application development. • Used for managing common and variable properties of a concept and their interdependencies • Features are primarily used in order to discriminate between choices • A feature can further be decomposed into sub features • Organization of these into a coherent model is called Feature Model
Feature Model • Feature Model structure requirements by generalizing them by concepts • Purpose is to organize the features in multiple levels with increasing details • Describes a set of valid feature combinations • Variability defines which combinations are allowed • The variability in feature model is expressed through different notations like • Optional Feature • Mandatory Feature • Alternate / Or Relationship • Require / Exclude Relationship • Attributes
Variants of Feature Modeling • In practice there are number of approaches being used for feature modeling • FODA • Feature Oriented Domain Analysis • FORM • Feature Oriented Reuse Model • FeatuRSEB • A combination between FODA and Reuse-Driven Software Engineering Business • RequiLine • Czarnecki • Approach by Krzysztof Czarnecki • A few others as well
FODA • FODA is a domain analysis method that focuses on the “features” of the domain's systems. • A Feature in FODA is an aspect, quality or characteristics visible to end user • FODA feature model contains of 4 elements • Feature diagram • Feature definitions • Composition rules for features • Rationale for features • Feature diagram describes the decomposition in hierarchal way. • Sub-features of a feature may be • Mandatory • Optional • Alternative • Two types of composition rules of features exist • Require rule • Mutually exclusive rule
FORM • FORM defines a systematic procedure of development of product lines. • Modeling of domain functionality • Modeling of alternate implementation of identified features • Construction of a Feature Model • As a Feature Model characterizes a Domain, it can be used to compare the domains. • The degree of reusability can be guessed, as a Feature Model contains the commonalities of Product Line • Feature Model serves the purpose of deciding the important matters involved in the development
ViPER Feature Model • Is an extension of the above mentioned approaches, features of which are put together keeping the requirements of ViPER Feature Editor • It contains • Features and Attributes • Domain Relationships • Dependencies • Affect-Relationship • Feature Sets, Feature Model
Feature • A Feature is • An aspect, quality or characteristic • It has • name • description • attributes
Feature Relationship • Could be • Domain Relationship • Dependency Relationship • Affect Relationship
Could be Specialization Composition mandatory optional Or mandatory optional Alternative mandatory optional Domain Relationship
Could be Require feature A requires feature B uni-directional Exclude feature A exclude feature B bi-directional Dependency Relationship
Is between the Attributes of the Features An attribute can effect / change the value of another attribute Affect Relationship
Acts as a container Contains All the Features Feature Sets Relationships Model
Feature Editor • Main task was to implement a Feature Editor in ViPER platform, through which feature diagrams can be made. • This is done using EMF, GEF and Eclipse. • So far, only a UML2Editor has been implemented in ViPER with possibility to add different UML2 diagram categories as plug-ins. • For this purpose, the base implementations should be extended
EMF • EMF consists of following fundamental blocks • EMF - The core EMF framework includes a (meta) meta model (Ecore) for describing models and runtime support for the models • EMF.Edit - The EMF.Edit framework includes generic reusable classes for building (non-graphical) editors for EMF models. It includes • content and label provider classes • a command framework • EMF.Codegen - The EMF code generation facility is capable of generating everything needed to build a complete (non-graphical) editor for an EMF model. It includes a GUI from which generation options can be specified, and generators can be invoked.
GEF • The Graphical Editing Framework (GEF) allows developers to create a rich graphical editor from an existing application model. • GEF consists of 2 plug-ins. • The org.eclipse.draw2d plug-in provides a layout and rendering toolkit for displaying graphics. • The developer can then take advantage of the many common operations provided by org.eclipse.gef and/or extend them for the specific domain. • GEF employs a model-view-controller architecture. • GEF is completely application neutral and provides the groundwork to build almost any application.
Draw2D • Features of Draw2d • Efficient layout and rendering support • Various figure and layout implementations • Borders • Cursors and tooltip support • Connection anchoring, routing, and decorating • Multiple, transparent layers • Flexible coordinate systems • Overview window • Printing
EditorPart is a base implementation for all workbench editors In order to define new Client editors, this class should be sub classed For ViPER, DiagramEditor class has been implemented All the editors must either directly sub class this class, or sub class ExtensibleDiagramEditor Feature Editor
Feature Editor • ExtensibleDiagramEditor class is implemented to support different diagram categories under single diagram editor. E.g. UML2 • E.g. Use case, Sequence, Composition etc • Feature editor does not have different kinds of diagrams • Only a single type of diagram is to be made • It is sub classed directly from DiagramEditor class.
Feature Editor Wizards • To create the feature diagram, feature model and feature namespace, the following wizards are implemented as well. • FeatureModellingDiagramCreationWizard • Creates the Feature diagram and model • FeatureModellingNamespaceCreationWizard • Creates the Feature Namespace • FeatureModellingNamespaceResourceAndNamespaceSelectionWizardPage • These wizards are used to create a Feature diagram and all the related resources.
The wizard classes are extended from Wizard class provided by Eclipse Used to create Feature Diagram Feature Model FeatureModellingDiagramCreationWizard
This wizard is used to create the namespace for the feature diagram. The namespace for feature diagram can either be Feature set Feature Model FeatureModellingNamespaceCreationWizard
Current / Future Development • Editor finishing touches • Curve for Alternate and Or relationships. • Icons for Attributes • Icons for Palate entries • Diagram layout • Code cleanup • Report writing