Back Room Front Room 2
Back Room Front Room 2
Back Room Front Room 2
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
196 ENTERPRISE INFORMATION SYSTEMS VI<br />
2.3 Proposed Model-based Software<br />
Engineering Method<br />
In (Raabe, 2003), we proposed solution domain<br />
analysis as an additional step during the software<br />
process (as shown in Fig. 1). Introducing this<br />
additional step will produce a solution domain<br />
model and will allow us to use formalized results of<br />
problem domain analysis and solution domain<br />
analysis as a basis for deriving the description of<br />
transformation from the analysis model to the<br />
implementation model.<br />
3 DOMAIN ANALYSIS<br />
Domain engineering (SEI, 2002) encompasses<br />
domain analysis, domain design, and domain<br />
implementation. Domain analysis contains the<br />
following activities:<br />
• domain scoping, where relevant domain with<br />
its sub-domains will be selected and the<br />
main area of focus will be defined, and<br />
• domain modeling, where relevant domain<br />
information is collected and integrated into a<br />
coherent domain model.<br />
Domain model defines the scope (i.e. boundary<br />
conditions) of the domain, elements or concepts that<br />
constitute the domain (i.e. domain knowledge),<br />
generic and specific features of elements and<br />
configurations, functionality and behavior.<br />
According to the different domain engineering<br />
approaches, there are several different domain<br />
analysis methods (Czarnecki and Eisenecker, 2000).<br />
3.1 Feature-Oriented DomaiAnalysis<br />
Feature modeling, also known as feature analysis, is<br />
the activity of modeling the common and the<br />
variable properties of concepts and their<br />
interdependencies.<br />
Feature-oriented domain analysis methods<br />
describe the characteristics of a problem and the<br />
required characteristics of a solution independently<br />
of their structure.<br />
Examples of feature-oriented domain analysis<br />
methods are:<br />
• Feature-Oriented Domain Analysis (FODA)<br />
from SEI (Kang et al., 1990), which became<br />
a part of their MBSE framework (SEI);<br />
• Feature-Oriented Reuse Method (FORM)<br />
developed by K. Kang (Kang, 1998);<br />
• Domain Engineering Method for Reusable<br />
Algorithmic Libraries (DEMRAL) by<br />
Czarnecki and Eisenecker (Czarnecki and<br />
Eisenecker, 2000).<br />
Feature model consists of the following<br />
elements:<br />
• concepts – any elements and structures of the<br />
domain of interest and<br />
• features – qualitative properties of the<br />
concepts.<br />
A feature model represents feature types and<br />
definitions, hierarchical decomposition of features,<br />
composition rules (i.e. dependencies between<br />
concepts) and rationale for features. It consists of a<br />
feature diagram and additional information.<br />
Feature diagram is a tree-like diagram, where the<br />
root node represents a concept and other nodes<br />
represent features of this concept and sub-features of<br />
features. An example of a feature diagram is shown<br />
in Fig. 2.<br />
From the composition point of view, the<br />
following feature types are most commonly used in<br />
feature models:<br />
• mandatory features (e.g. f1, f2, f5, f6, f7, f8, f9),<br />
• optional features (e.g. f3, f4),<br />
• alternative features (e.g. f5, f6), and<br />
• or-features (e.g. f7, f8, f9).<br />
Composition rules between features are<br />
constraints for composing features for instances of<br />
concepts (e.g. “requires”, “excludes”).<br />
f 3<br />
f 1<br />
f 4<br />
f 7<br />
C<br />
Figure 2: Example of a feature diagram<br />
From the domain point of view, it is possible to<br />
describe different feature classes.<br />
FODA (Kang et al., 1990) distinguishes between<br />
context features (non-functional characteristics of<br />
application), operational features (application<br />
functions), and representation features (interface<br />
functions).<br />
FORM (Kang, 1998) distinguishes between<br />
capability features (further divided into functional<br />
and non-functional features), operating environment<br />
features, domain technology features, and<br />
implementation technique features.<br />
DEMRAL (Czarnecki and Eisenecker, 2000)<br />
distinguishes between the following feature classes:<br />
f 5<br />
f 8<br />
f 2<br />
f 9<br />
f 6