visual notation using Colored Petri Net (CPN). Sec-
tion 4 presents a process for identifying the adaptable
components to the given requirements using visually
expressed specifications.
2 RESOLVING GAPS BETWEEN
REQUIREMENTS AND
COMPONENTS
Before discussing component adaptability, we first
define what a component is. The word component
is often used vaguely in several contexts and situa-
tions. In CBSD, it usually means a unit of reuse,
however there are different kinds of units depending
on what programming environment we use. For ex-
ample, while procedural languages regard a subrou-
tine, a function, or a module as a unit of reuse, recent
object oriented languages regard a class as a unit of
reuse. The paper mainly focuses on the object ori-
ented programming environment, since it is one of the
most commonly used environments today, and reuse
is one of the most critical issues in it.
Roughly speaking, object orientation provides us
with two different ways for component reuse, that is,
class inheritance and method invocation. As a result,
there are two different units of reuse, namely a class
and a method. A class is a template of an object that
expresses encapsulated data and operations. The data
is implemented as a set of instance variables, and the
operations are implemented as a set of methods de-
fined in the class.
When we consider reusing an existing class
through inheritance, we have to decide whether each
method in the class is reused, overridden, or ig-
nored. In this decision, we evaluate the adaptability
of each method to a given requirement, and therefore
a method can be regarded as a unit of reuse even in
the class inheritance. Therefore, we treat a method
as a unit of reuse henceforth, and discuss how those
methods are reused.
The adaptability of a method is evaluated by com-
paring its specification with a requirement specifica-
tion. Those specifications have to be homogeneous
between requirements and components for rigorous
evaluation. However there could be several gaps be-
tween them.
2.1 Resolving a Semantic Gap
In order to create the specifications of requirements,
we first model the requirements from various view-
points. Since we focus on methods in classes for
reuse, function and behavior are the most essential
viewpoints for modeling. From a functional view-
point, a method acts as a data transducer which trans-
forms the arguments into the result value. On the
other hand, a method acts as a finite state machine
from a behavioral viewpoint, which responds to the
stimuli.
The specifications of components are also created
from either of the above two viewpoints. When a
requirement specification is compared with a com-
ponent specification for adaptability evaluation, both
the specifications have to be prepared from the same
viewpoint, unless we can not compare them eas-
ily. Consequently, all the requirement and component
specifications involved in the adaptability evaluation
must be prepared from the same viewpoint. If some
of the specifications have been prepared from the dif-
ferent viewpoint, there arises a gap between require-
ments and components.
Since those viewpoints give semantics to require-
ments and components, we refer to such gap as a se-
mantic gap. In order to resolve this gap, we first inves-
tigate the essential differences between function and
behavior.
A functional aspect of requirements and compo-
nents can be expressed by S-sorted functions in terms
of many sorted Σ algebra (Shinkawa and Matsumoto,
2000). Σ algebra provides an interpretation for the
signature Σ=(S, Ω), where S is a set of sorts, and Ω
is an S
∗
× S sorted set of operation names. S
∗
is the
set of finite sequences of elements of S.AΣ algebra
is an algebra (A, F ), where
1. A = {A
σ
|σ ∈ S} (a set of carriers) and
2. F = {f
A
|f ∈ Ω
σ
1
...σ
n
,σ
}
f
A
: A
σ
1
×···×A
σ
n
→ A
σ
(σ
1
,...,σ
n
,σ ∈ S).
When this f
A
map an element u
1
,...,u
n
in the
domain of definition A
σ
1
×···A
σ
n
to an element v
in the co-domain A
σ
, we denote
f
A
(u
1
,...,u
n
)=v
S-sorted function f
A
is said to have arity σ
1
...σ
n
and result sort σ. The series of arity and result sort is
called the rank of the function.
If f
A
is a partial function, that is, if some elements
in the domain of definition A
σ
1
×···×A
σ
n
are not
mapped into the co-domain A
σ
, f
A
is denoted by
f : D (⊆ A
σ
1
×···×A
σ
n
) −→ A
σ
where D is a subset of the original domain of defini-
tion.
On the other hand, the behavioral aspect of a
requirement is expressed in many ways, e.g., Finite
State Machines (FSMs), Petri Nets, process algebra,
and so on. The behavioral aspect of a requirement
or a component expressed in the form of FSM is
represented as a sextuplet
Σ, Γ,S,s
0
,δ,ω where
ICEIS 2006 - INFORMATION SYSTEMS ANALYSIS AND SPECIFICATION
262