27.03.2014 Views

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Feature modeling and Verification based on<br />

Description Logics<br />

Guohua Shen, Zhiqiu Huang, Changbao Tian, Qiang Ge<br />

College of Computer Science and Technology<br />

Nanjing University of Aeronautics and Astronautics<br />

Nanjing, China<br />

{ghshen, zqhuang}@nuaa.edu.cn<br />

Abstract Most of the current domain engineering methods have adopted<br />

the feature model as a domain requirements capturing model. But these<br />

methods lack the semantic description of the feature model and the<br />

relationship between features. This has led to the redundancy and confusion<br />

in feature model representation between different domain engineering<br />

methods. In this paper, a description logics-based feature model, including<br />

the feature class and the constraints of the features, is presented. A group of<br />

rules for constraints are proposed, which are used to verify the consistency<br />

and completeness of feature model instances. Then, combining with a real<br />

software domain, the modeling process of the feature model with<br />

description logic and its verification are discussed systematically.<br />

Keywords feature model; requirements engineering; software reuse;<br />

model verification; description logics<br />

I. INTRODUCTION<br />

Software Product Line (SPL) is an important way to reuse software<br />

domain assets. SPL practices guide organizations towards the<br />

development of products from existing assets rather than the<br />

development of separated products one by one from scratch. Thus,<br />

features can be shared among all software products in domain. The<br />

feature model has been widely adopted as a domain requirements<br />

capturing model by most of the current domain methods, such as<br />

FODA [1], FORM [2], FeatuRSEB [3], PuLSE [4] and SPL [5].<br />

Description logics (DLs) are a family of languages for representing<br />

knowledge and reasoning about it. There are several studies proposing<br />

the usage of DL to analyze feature models, such as [6,7,8]. Intuitively, a<br />

domain-specific feature model is a concrete instance of meta-model.<br />

However, these methods do not rigorously differentiate between the<br />

feature meta-model and feature models (i.e., instances of meta-model).<br />

New concepts, roles and constraints are created for every domain<br />

feature model, which causes additional efforts and bloating in the<br />

numbers of concepts, roles and constraints. Actually, the feature metamodel<br />

is domain-independent and built for only once, while feature<br />

models are domain-dependent and must be instantiated for each<br />

domain by domain engineers.<br />

II.<br />

FEATUREMODEL<br />

A. Feature<br />

The features define both common aspects of the domain as well as<br />

differences among all products of a SPL. A Feature is a distinctive<br />

characteristic of a product, and it may refer to a requirement, a<br />

component or even to pieces of code [9].<br />

Wei Zhang<br />

School of Electronics Engineering and Computer Science<br />

Peking University<br />

Beijing, China<br />

zhangw@sei.pku.edu.cn<br />

A feature model is a compact representation of all potential<br />

products of a SPL. Feature models are used to model SPL in terms of<br />

features and relations among them.<br />

B. Feature-Oriented model<br />

The feature model is an abstraction of commonality and variability<br />

in a software family across a domain. Most proposals organize feature<br />

in hierarchy, and the parent feature is composed of children features.<br />

Figure 1 describes the feature model of the graph editor domain.<br />

graph-compose<br />

entity-add<br />

graph-add<br />

graph-select<br />

connector-add<br />

select-mode<br />

increment-select<br />

alternative<br />

or<br />

feature<br />

optional<br />

Figure 1.<br />

graph-manipulate<br />

graph-delete<br />

hori-constraint<br />

nonincrement-select<br />

moving-constraint<br />

graph-move<br />

verti-constraint<br />

dimension-value<br />

outline-move<br />

whole-part relation<br />

Feature model of graph editor.<br />

moving-mode<br />

graph-dim<br />

3D<br />

2D<br />

content-move<br />

require<br />

mutex<br />

The feature model describes the variability in two ways: i) the<br />

feature is optional; ii) the feature is a variation point (vp-feature, also<br />

called dimension feature [10]), which attaches some value features. For<br />

example, the feature moving-constraint is optional for its parent feature<br />

graph-move,andthefeaturemoving-mode is a dimension feature with<br />

two different values: content-moving and outline-moving (see Figure 1).<br />

C. Feature Model Tailoring<br />

Feature modeling is an activity of development for reuse. We<br />

customize a specific software product specification through tailoring.<br />

The system can be changed at certain time in the system’s lifecycle.<br />

Selecting some variant of the feature model is called binding the variant.<br />

Every variation point has at least one associated binding time. There are<br />

three types of binding time: reuse-time,compile-time and run-time.<br />

Every feature has the binding states like bound, removed and<br />

undecided. A bound feature means that if its pre-conditions are<br />

satisfied, this feature will be executed. A removed feature means that it<br />

422

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!