how to classify and retrieve components based on
component semantics, but they ignore information
for component composition.
In the stage of application engineering, the
component trustworthiness has a very strong effect
on component composition. Because the
trustworthiness of Component-Based System (CBS)
is depended on the component trustworthiness.
Recent years, trustworthiness has attracted
increasing attentions among researchers. But most
researchers focus their study on measurement and
guarantee of component trustworthiness in
application engineering. Domain analysis is the first
step in software product line and an essential activity
for successful reuse. And features are viewed as
first-class objects throughout the software life cycle
and across the problem and solution domain
(Carlton, 1999). It is necessary to consider
trustworthiness in feature modelling of domain
analysis.
This paper presents feature meta-model based on
functional semantics and trustworthiness. This meta-
model provides sufficient semantics information and
takes trustworthiness into account. On the basis of
feature meta-model, this paper describes the relevant
definition of component semantics and the algorithm
of component composition. Finally, we apply our
approach in credit rating domain.
The remainder of the paper is organized as
follows: Section 2 presents a feature meta-model
which analyzes feature dependence based on
functional semantics and discusses component
trustworthiness from many aspects. Section 3
defines component semantics, provides a component
composition algorithm based on functional
semantics, and introduces the component
composition process. Section 4 illustrates and
analyses our approach by an example of credit rating
domain. Section 5 draws a conclusion and some
suggestions for future work.
2 FEATURE META-MODEL
BASED ON FUNCTIONAL
SEMANTICS AND
COMPONENT
TRUSTWORTHINESS
Domain analysis is the basis of component
composition. Feature modelling as the mainstream
method in domain analysis provides good supports
for the component composition.
2.1 Non-Functional Attribute in
Feature Meta-Model
A feature is a prominent or distinctive and user-
visible aspect, quality, or distinctive characteristic of
a software system or systems (Michael, 2010). The
attributes of a feature are divided into non-functional
ones and functional ones. Non-functional attributes
describe the characteristics of a feature, such as the
feature name and feature description. Functional
attributes reflect the functional dependencies of a
feature with other features. For example, one feature
requests some data provided by another feature. So
there is a dependency named HasDataDep between
the two features. In Figure 1, the non-functional
attributes of a feature consist of Name, Description,
Facet, BindingTime, BindingState, etc.
Name: This attribute is the name of a feature. It is
the unique identifier of a feature. The type of Name
is a string.
Description: This attribute is the description of a
feature. It is a brief description of a feature,
including function and application domain of the
feature. The type of Description is a string.
Mandatory: This attribute denotes whether a feature
is mandatory or not. The range of Mandatory is
Boolean type. The value“True”means this feature is
mandatory, while the value “False”means this
feature is optional.
BindingTime: This attribute presents the time when
a feature is bound. The range of BindingTime is
Time. Several common types of Time include
CompileTime, InstallTime, LoadTime, RunTime.
Take CompileTime for example, CompileTime
means the feature is bound during the program
compiling phase.
BindingState: This attribute presents the binding
status of a feature. The range of BindingState is
State. Three kinds of State are distinguished as
follows: Undecided, Bound, and Removed.
Facet: This attribute describes a feature from
different perspectives, viewpoints and dimensions. It
provides precise and detailed description of a
feature. The range of Facet is Term. A facet maps a
number of terms which make up a term space.
Map: This attribute defines the mapping relation
between features and components. Usually, there
may be several components contributing to a feature.
2.2 Functional Semantics in Feature
Meta-Model
A feature is often considered as a set of tight-related
RESEARCH ON COMPONENT COMPOSITION BASED ON FEATURE MODEL
215