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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

A Variability Management Method for Software<br />

Configuration Files<br />

Hiroaki Tanizaki, Toshiaki Aoki, Takuya Katayama<br />

Japan Advanced <strong>Institute</strong> of Science and Technology<br />

1-1 Asahidai, Nomi, Ishikawa, Japan<br />

Email: {tani-h, toshiaki, katayama}@jaist.ac.jp<br />

Abstract—Configuration files of software systems should be<br />

made correctly when software systems are operated. However, it<br />

is hard to figure out syntax and constraints of configuration files<br />

due to their complexity and size. Therefore, it becomes hard to<br />

make correct configuration files.<br />

We focus on two problems. One is syntax error that configuration<br />

file description is invalid. The other is semantic error that<br />

required functions do not perform due to mismatch between<br />

requirements and configuration file description. One solution to<br />

prevent these errors is to manage variability of configuration files.<br />

We propose a method which manages variability of configuration<br />

files. In particular, we use a model which organizes variability and<br />

constraints of configuration file description. Requirements and<br />

dependencies between requirements and organized information<br />

are also included in the model. The model is described by using<br />

the feature diagram. By using the feature diagram to describe<br />

the model, it becomes possible to check consistency between the<br />

model and a configuration file. Our method deals with detection<br />

and correction of errors of configuration files.<br />

I. INTRODUCTION<br />

Configuration files take an important role when software<br />

systems are operated because functions and performances of<br />

software systems depend on configuration file descriptions.<br />

When software systems are developed, specifications or source<br />

code are verified in order to check whether software systems<br />

have no error. Besides it is important to verify whether<br />

configuration files are correct. If configuration files have errors,<br />

software systems do not operate or functions which are needed<br />

by users do not execute. Errors of configuration files are<br />

syntax and semantic error [7]. One of causes of syntax error<br />

is scale and complexity of configuration files. Semantic error<br />

means that mismatch between user’s purpose and configuration<br />

file descriptions. User’s purpose means functions which are<br />

needed by users and is a kind of requirement for configuration<br />

files. One of causes of semantic error is that correspondence<br />

relations between configuration file descriptions and requirements<br />

are not clear. In order to make correct configuration<br />

files, variability of configuration files should be managed.<br />

Variability consists of syntax and correspondence relations<br />

between requirements. However, it is not easy to manage<br />

variability of configuration files because the complexity of<br />

configuration files is becoming higher and higher according<br />

to the increase of their size[2]. Besides, errors have to be<br />

corrected, but error correction is also not easy for users and<br />

administrators.<br />

The purpose of our research is to propose a method which<br />

supports users and administrators to make correct configuration<br />

files. In order to make correct configuration files, our<br />

method detects syntax and semantic errors and corrects them.<br />

In particular, syntax and candidate of configuration file description<br />

and correspondence relations between requirements<br />

are modeled, and our method checks consistency between the<br />

model and a configuration file.<br />

In this paper, we show our approach in the following way. In<br />

Section II, we introduce configuration files. Section III shows<br />

outline of our approach. In Section IV, we propose a model<br />

which organizes configuration file descriptions and requirements.<br />

In Section V, we explain a method for support making<br />

configuration files. Section VI shows an experiment using our<br />

approach. In Section VII, we discuss about the effectiveness<br />

of our approach. Section VIII shows related works. In Section<br />

IX, we conclude this paper.<br />

II. CONFIGURATION FILES<br />

Configuration files are widely used in software systems such<br />

as operating system, middleware software and application software.<br />

We focus on configuration files of servers. Configuration<br />

files of servers are directly made by users or administrators and<br />

should be made correctly.<br />

Configuration files are used to customize configuration and<br />

functions of software systems. So, reliability of configuration<br />

files is important to operate software systems, and should be<br />

verified. Although there are some formats for configuration<br />

files, basically combinations of setting item and parameters<br />

are written. Each setting item has candidates of parameter.<br />

Besides, a combination of setting item and parameter may<br />

need other specific combinations in order to perform functions.<br />

A. Requirements for configuration files<br />

Users and administrators have their own purposes when they<br />

make configuration files. Their purposes mean that specific<br />

functions are performed. Therefore, we consider that purposes<br />

are requirements for making configuration files.<br />

For server software, configuration which is appropriate to<br />

application which performs on the server is needed. For<br />

example, when administrators make configuration files of<br />

web servers and application servers which are used for a<br />

web application execution environment, administrators should<br />

configure functions for application which is executed on the<br />

672

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

Saved successfully!

Ooh no, something went wrong!