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.

means patterns which are shown in section V.A. In particular,<br />

predicates, where constraints are described, are checked.<br />

Correction method of feature selection compares causes of<br />

errors with chosen features in order to detect causes of errors.<br />

The Alloy Analyzer automatically searches that what features<br />

should be chosen based on each correction method.<br />

Consistency checking method for correspondence relations<br />

between requirement model and config model checks whether<br />

an instance of config model satisfies an instance of requirement<br />

model. This check is implemented by set operators of Alloy.<br />

In particular, Alloy checks whether a set of combination of<br />

setting item and parameter which is required by an instance<br />

of requirement model is subset of an instance of config model.<br />

Correction method of correspondence relations also searches<br />

instances. The Alloy Analyzer searches an instance of config<br />

model which includes the existing instance and features which<br />

are needed for correction.<br />

VI. EXPERIMENT<br />

In the experiment, we apply our method to a Web application<br />

system which consists of an application and an execution<br />

environment. We deal with an address book application as<br />

application. Execution environment consists of some software,<br />

and each software use configuration file.<br />

A. Preparing for checking<br />

1) Analysis of application: An address book application<br />

has some functions such as showing, registration and editing.<br />

Those functions have variations. There are some methods for<br />

data registration. For example, files which contain data are<br />

uploaded to a server, or users input data into a form on a web<br />

page. Files or database are used in order to save data. Editing<br />

data is data correction or deleting. In this way, functions<br />

of application are analyzed. Analysis of configuration file<br />

description for operation of each requirement is discussed later.<br />

2) Analysis of configuration files: At least three kinds<br />

of software, web server, server-side programming language<br />

environment, and database server are needed. So, each of<br />

software’s configuration file should be analyzed. For web<br />

server, we assume that Apache is used. Basic configuration<br />

for web server is needed. Besides, configuration for server-side<br />

programming or cgi is needed. For server-side programming<br />

environment, we assume that PHP is used. Configuration for<br />

connecting to database server is needed. For database server,<br />

we assume that PostgreSQL is used. Basic configuration for<br />

database server is needed.<br />

3) Analysis of correspondence relations: Which combinations<br />

of setting item and parameter are needed for executing<br />

each function is analyzed. Web server is needed in order to<br />

show contents of address book, CGI or PHP are needed in<br />

order to execute functions such as registration and deleting.<br />

Database server is needed in order to save data.<br />

4) Describing configuration model: A configuration model<br />

is described based on analysis results. The configuration model<br />

is shown in Fig. 4. The configuration model has to be described<br />

in Alloy in order to check it. However, Alloy description is<br />

omitted this time.<br />

B. Consistency checking<br />

In our method, feature diagrams and correspondence relations<br />

between instances of them are checked separately.<br />

Because, it makes no sense to check correspondence relations,<br />

if there is no instance of requirement model or config model.<br />

1) Feature diagram: We choose some features from the<br />

requirement model and check it using the Alloy Analyzer. The<br />

result is shown in Fig. 5.<br />

Fig. 5.<br />

Result of Checking (Feature diagram)<br />

In Fig. 5, “field configuration” shows set of chosen features.<br />

“field validity” shows presence or absence of error. “field<br />

inconsistent” shows causes of error and correction methods.<br />

“field corrected” shows a candidate of corrected chosen features.<br />

As the result of this checking, errors are detected, and<br />

causes of errors and correction methods are shown.<br />

2) Correspondence relations: We assume that there are<br />

instances of requirement model and config model. A result<br />

of checking of correspondence relations is shown in Fig. 6.<br />

Fig. 6.<br />

Result of Checking (Correspondence relation)<br />

In Fig. 6, “field Ains E” shows what features are required<br />

by the instance of requirement model. “field diff” shows that<br />

what features are lacking in the instance of config model.<br />

“field validity” shows presence or absence of error. As the<br />

result of checking, there is one error. The error means that<br />

“PostgreSQL” is not included in the instance of config model<br />

although the application requires database. So, correction<br />

method applies to the instance of config model. The result<br />

of correction is shown in Fig. 7.<br />

Fig. 7.<br />

A Candidate of Corrected Instance<br />

A candidate of corrected instance is shown in left side of<br />

Fig. 7. In right side of Fig 7, causes of inconsistencies and<br />

correction methods of them are also shown.<br />

676

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

Saved successfully!

Ooh no, something went wrong!