320 likes | 486 Views
Feature Modeling Capabilities for ViPER Platform. Feature Modeling Different approaches of Feature Modeling MetaModel of Feature Modeling for ViPER Implementation and Extension of Feature Editor in ViPER Demo Future Development. Product line Development.
E N D
Feature ModelingCapabilitiesforViPERPlatform Feature Modeling Different approaches of Feature Modeling MetaModel of Feature Modeling for ViPER Implementation and Extension of Feature Editor in ViPER Demo Future Development
Product line Development • Reusabiliy lead to different software engineering techniques. • a relatively new and widely discussed approach is the product line software engineering (PLSE) • According to SEI: • “A software product line is a set of software-intensive systems that share a common, managed set of features satisfying the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way”. [SEI] • Major activities of PLSE are • Domain Engineering • Application Engineering
Domain Engineering • Process of analysis, specification and implementation of core assets, which are used in the common development of multiple software products in the same domain, iscalledDomainEngineering. • mainfocusis at the identification and development of reusable components for an application
Domain Model • Domain engineering is divided into • Domain analysis • Domain design • Domain implementation • Results of domain analysis are collectively captured in a domainmodel • Domain model consists of • Domain definition • Domain lexicon • Concept models • Feature models • Feature models define a set of reusable and configurable requirements for specifying the systems in a domain
Feature Modeling • Increasingly popular domain in product linedevelopment • 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’s Approach • 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
RequiLine • Tool that supports the requirement engineering for product line development. • It has been developed by the Research Group Software Construction I3 at the RWTH Aachen University. • The feature model underlying RequiLine consists of the following • Dependency relationships • Domain relationships • Composition • Generalization Specialization • Implementation
RequiLine - Observations • All the other approaches have defined mandatory/optional as a property of a feature resulting in either optional features or mandatory features. • Contrary to other approaches, RequiLine visualizes the mandatory/optional not as the properties of a feature, but of the domain relationships. • According to RequiLine, the relationship between two features defines these aspects, but not the features them self.
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 Has a reference of CompositionKind 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
Future Development • Extension of feature editor to support different approaches • Possibility of import / export • E.g. ViPER <-> RequiLine • Open Issues • decorations