Applying

Reuse

to

Conceptual

Modeling

an

analysis

of

existing

techniques

Ana

Paula

Ambrosio

and

Raul

Ruggia

Laboratoire

PRiSM

Universite

de

Versailles-St-Quentin-en-Yvelines

av

des

Etats-Unis

Versailles

France

email

-LCB-

ruggia

ambrosio

-RCB-

@prism

uvsq.fr

Abstract

The

notion

of

reuse

has

been

part

of

software

engineering

since

the

end

of

the

's

when

it

was

considered

as

the

solution

to

the

software

crisis

Even

though

scientists

strongly

believe

in

the

benefits

of

this

technique

reuse

has

n't

become

a

standard

practice

For

reuse

to

be

effective

the

designer

must

be

able

to

find

and

adapt

what

he

needs

faster

that

developing

it

from

scratch

Applied

to

conceptual

schema

development

reuse

would

enhance

productivity

and

quality

through

simplifying

the

tasks

of

knowledge

acquisition

conceptualisation

and

validation

of

the

conceptual

schemas

This

paper

presents

existing

techniques

that

enable

the

successful

application

of

reuse

in

the

context

of

Conceptual

Modeling

The

discussion

is

organised

following

an

analysis

framework

which

is

based

on

the

study

of

reuse

's

four

main

characteristics

abstraction

selection

modification

and

new

component

acquisition

R?sum

La

notion

de

r?utilisation

est

pr?sente

dans

le

domaine

du

g?nie

logiciel

depuis

les

ann?es

Bien

que

la

communaut

scientifique

croit

de

plus

a

plus

aux

b?n?fices

de

cette

technique

la

r?utilisation

est

loin

d'

tre

devenue

une

pratique

habituelle

Pour

que

la

r?utilisation

soit

efficace

le

concepteur

doit

tre

capable

de

trouver

et

d'adapter

ce

dont

il

a

besoin

plus

vite

que

s

il

le

re-concevait

enti?rement

lui

m?me

Appliqu

au

d?veloppement

de

sch?mas

conceptuels

la

r?utilisation

permet

d'am

liorer

la

productivit

et

la

qualit

travers

la

simplification

des

t?ches

d'acquisition

de

connaissance

de

conceptualisation

et

de

validation

de

sch?mas

conceptuels

Cet

article

pr?sente

les

techniques

existantes

qui

permettraient

d'appliquer

la

r?utilisation

de

mani?re

efficace

dans

le

contexte

de

la

conception

de

sch?mas

conceptuels

Ces

techniques

seront

pr?sent?es

selon

les

quatre

caract?ristiques

principales

de

la

r?utilisation

abstraction

s?lection

modification

et

acquisition

de

nouveaux

composants

Mots

cl?s

R?utilisation

de

composants

conception

de

bases

de

donn?es

Introduction

Reuse

Engineering

can

be

described

as

the

application

of

a

disciplined

systematic

quantifiable

approach

to

the

development

operation

and

maintenance

of

software

where

reuse

is

a

primary

consideration

The

ultimate

goal

of

software

reuse

is

to

reduce

costs

of

software

development

and

improve

the

quality

of

software

produced

Producing

reliable

software

quickly

and

economically

have

been

widely

discussed

in

recent

years

and

experience

has

shown

that

reuse

can

contribute

to

a

solution

This

is

also

true

in

the

context

of

Conceptual

Modeling

where

reuse

techniques

in

the

development

of

database

applications

may

enable

to

enhance

productivity

and

quality

-LSB-

Louc

-RSB-

The

application

of

reuse

techniques

in

this

domain

would

simplify

the

analysis

design

and

validation

tasks

by

reusing

existing

database

schemas

in

the

construction

of

new

schemas

ones

In

database

domain

the

proposition

of

Object

Oriented

Database

Models

-LSB-

Atki

-RSB-

has

signified

an

important

contribution

towards

the

application

of

reuse

techniques

Object-Oriented

Data

Models

offer

modeling

concepts

like

inheritance

overloading

and

modularization

which

give

elements

that

serve

as

the

basis

for

reuse

However

these

data

modeling

characteristics

are

not

sufficient

to

promote

reuse

in

a

large

scale

because

their

lack

of

more

sophisticated

mechanisms

concerning

the

reuse

activity

itself

-LSB-

Niers

-RSB-

First

effective

reuse

of

software

presupposes

the

existence

of

tools

to

support

the

organisation

and

retrieval

of

reusable

components

according

to

application

requirements

and

the

interactive

construction

of

new

applications

from

components

Second

present

object-oriented

methodologies

do

not

explicitly

address

the

design

of

reusable

frameworks

Finally

not

only

languages

and

tools

but

the

economics

methods

and

culture

of

software

development

must

ultimately

adapted

to

a

new

evolutionary

software

life-cycle

if

we

are

to

realise

the

benefits

of

large-scale

software

reuse

The

purpose

of

this

paper

is

to

present

existing

techniques

for

applying

reuse

in

the

context

of

Conceptual

Modeling

To

attack

the

problem

in

an

organised

manner

a

framework

for

analysing

the

key

aspects

that

characterise

the

application

of

Reuse

techniques

in

Conceptual

Modeling

has

been

defined

This

framework

distinguishes

four

main

aspects

abstraction

selection

modification

and

acquisition

of

new

reusable

components

Abstraction

concerns

the

type

of

pieces

that

will

be

reused

and

the

models

to

represent

them

Selection

concerns

the

ways

for

classifying

and

retrieving

the

reusable

pieces

Modification

concerns

the

ways

for

transforming

existing

reusable

components

into

a

new

software

piece

Finally

acquisition

of

new

reusable

components

concern

the

problems

of

defining

the

conditions

that

must

satisfy

a

reusable

component

and

how

these

type

of

components

may

be

constructed

Software

Reuse

Basic

Concepts

and

Approaches

Software

reuse

has

been

the

subject

of

on-going

research

for

more

than

twenty

years

During

this

time

several

paradigms

and

methods

have

been

proposed

and

developed

to

provide

software

reusability

The

main

ideas

about

software

reuse

are

stated

in

-LSB-

Bigg

-RSB-

which

presents

the

fundamental

concepts

and

models

and

gives

the

basis

for

understanding

software

reuse

However

results

are

far

from

what

was

expected

in

the

's

when

reuse

was

first

proposed

-LSB-

McIl

-RSB-

In

most

cases

users

still

prefer

rewriting

their

own

code

instead

of

reusing

already

existing

ones

This

situation

is

attributed

to

several

persisting

factors

which

are

hindering

the

reuse

process

inadequate

representation

technologies

the

lack

of

a

clear

and

obvious

direction

the

NIH

-LRB-

Not

Invented

Here

-RRB-

factor

the

high

initial

capitalisation

-LSB-

Bigg

-RSB-

the

conflict

between

top-down

design

and

bottom-up

construction

using

reusable

components

-LSB-

Tracz

-RSB-

Nevertheless

software

reuse

still

presents

itself

as

the

only

envisaged

solution

to

the

costeffectiveness

problem

in

the

development

of

large

software

systems

Some

of

the

observed

key

factors

that

make

reuse

successful

are

the

application

of

reuse

in

the

context

of

well

understood

domain/architecture

the

existence

of

inter-component

standards

and

infrastructure

support

-LRB-

the

usage

of

tools

to

better

define

the

reuse

process

-RRB-

In

-LSB-

Frakes

-RSB-

Biggerstaff

concludes

that

reuse

is

not

one

technology

but

it

is

a

mixture

of

different

technologies

process

models

and

cultures

Software

reuse

involves

two

main

activities

development

with

reuse

and

development

for

reuse

-LSB-

Thun

-RSB-

-LRB-

also

called

application

development

and

application

engineering

respectively

-LSB-

Niers

-RSB-

-LSB-

Niers

-RSB-

-RRB-

Development

with

reuse

is

the

software

development

where

the

focus

is

mainly

on

reusing

old

components

It

concerns

the

problems

of

component

selection/retrieval

and

component

modification

On

the

other

hand

development

for

reuse

is

the

development

where

the

purpose

is

to

construct

new

reusable

components

Development

for

reuse

concerns

the

domain

analysis

-LSB-

Nei

-RSB-

-LSB-

Prie

-RSB-

-LSB-

Prie

-RSB-

and

the

construction

of

the

software

libraries

-LRB-

or

repositories

-RRB-

-LRB-

i.e.

the

definition

of

reusable

component

structure

and

properties

and

repository

organisation

-RRB-

Reusable

Components

Development

WITH

Reuse

Development

FOR

Reuse

-LRB-

component

building

-RRB-

Retrieval

Evaluation

Modification

Classification

Qualification

Reengineering

Figure

Reusable

component

life-cycle

The

large

variety

of

approaches

to

software

reuse

can

be

classified

in

different

manners

Biggerstaff

and

Richter

-LRB-

in

-LSB-

Bigg

-RSB-

-RRB-

established

the

first

principle

composition-based

vs.

generation-based

In

the

composition-based

approach

software

development

is

performed

through

the

composition

of

existing

software

components

-LRB-

building-blocks

-RRB-

The

reusable

components

are

passive

elements

operated

upon

-LRB-

i.e.

composed

-RRB-

by

and

external

agent

The

semantics

of

the

composition

operation

varies

depending

on

the

type

of

reusable

components

Example

are

the

UNIX

pipe

mechanism

-LSB-

Kern

-RSB-

and

Smalltalk

-LRB-

in

general

the

Object-Oriented

languages

-RRB-

in

which

the

two

principles

of

component

composition

are

message

passing

specialisation

-LRB-

inheritance

-RRB-

and

parametrization

-LRB-

vertical

and

horizontal

composition

-RRB-

In

the

generation-based

approach

software

development

uses

a

generator

program

that

generates

lowlevel

code

from

high-level

and

domain

specific

language

expressions

Unlike

composition-based

systems

in

generation-based

ones

knowledge

to

be

reused

has

not

the

form

of

concrete

entities

but

is

embedded

in

the

generator

program

in

the

form

of

reusable

patterns

and

code

generation

rules

that

map

the

input

language

into

an

output

target

code

This

approach

is

commonly

based

on

very

precise

and

very

simple

specification

languages

enabling

a

highly

productive

development

with

reuse

Although

generation-based

systems

are

recognised

as

highly

productive

-LSB-

Bigg

-RSB-

-LSB-

Krue

-RSB-

-LRB-

-LSB-

Levy

-RSB-

reports

that

application

generators

have

been

used

to

product

quality

commercial

software

at

the

equivalent

rate

of

lines

of

source

code

per

day

-RRB-

Hemman

-LRB-

in

-LSB-

Hemm

-RSB-

-RRB-

considers

that

the

evolution

of

software

reuse

in

the

last

years

has

shown

that

composition-based

systems

have

gained

more

acceptance

in

practice

than

generationbased

ones

and

he

bases

his

opinion

in

the

examination

of

available

software

catalogues

-LRB-

for

example

-LSB-

ASSE

-RSB-

-RRB-

A

broader

classification

is

presented

in

-LSB-

Krue

-RSB-

which

classifies

the

approaches

to

software

reuse

in

high-level

languages

design

and

code

scavenging

source

code

components

software

schemas

application

generators

very

high-level

languages

transformational

systems

and

software

architecture

Complete

environments

for

Reuse-based

Application

Development

have

been

recently

proposed

ITHACA

-LSB-

Ader

-RSB-

and

REBOOT

-LSB-

Morel

-RSB-

are

two

notable

examples

of

this

type

of

systems

ITHACA

-LSB-

Ader

-RSB-

-LSB-

Fugi

-RSB-

-LRB-

Intelligent

Tools

for

Highly

Advanced

Commercial

Applications

-RRB-

is

an

Esprit

II

Project

started

in

January

extending

over

years

It

proposes

an

environment

for

application

development

based

on

the

intensive

usage

of

reuse

techniques

To

support

these

functions

it

offers

different

tools

an

object-oriented

language

-LRB-

CooL

-RRB-

closely

integrated

with

and

object-oriented

database

-LRB-

NooDLE

-RRB-

a

debugger

-LRB-

MaX

-RRB-

and

a

reuse-based

application

development

environment

-LRB-

ADE

-RRB-

The

REBOOT

-LSB-

Morel

-RSB-

project

's

prime

objective

is

to

enhance

productivity

and

quality

in

software

development

by

promoting

and

assisting

reuse

It

attacks

two

main

aspects

of

reuse

development

for

reuse

and

development

for

reuse

To

support

these

characteristics

the

REBOOT

environment

has

developed

two

groups

of

tools

-LRB-

-RRB-

The

Component

Building

Assistant

composed

of

RE-engineering

tool

the

Qualification

tool

and

the

Classification

tool

to

build

and

enter

reusable

components

into

the

database

and

-LRB-

-RRB-

the

Reuse

Assistant

composed

of

the

Retrieval

tool

the

Adaptation

tool

and

the

Evaluation

tool

to

retrieve

and

extract

components

The

first

supports

development

FOR

reuse

and

the

second

development

WITH

reuse

Applying

Reuse

to

Conceptual

Modeling

The

development

of

an

Information

System

consists

of

two

main

activities

the

Conceptual

Modeling

and

the

System

Design

-LSB-

Louc

-RSB-

Conceptual

Modeling

concerns

the

interpretation

and

conceptualisation

of

the

Universe

of

the

Discourse

-LRB-

UoD

-RRB-

characteristics

-LRB-

i.e.

structural

and

behavioural

aspects

-RRB-

The

result

of

this

activity

which

consists

in

a

formalisation

of

this

domain

knowledge

is

the

conceptual

schema

System

Design

concerns

the

implementation

of

the

conceptual

schema

specification

and

generates

as

result

the

operational

schema

This

paper

addresses

the

subject

of

applying

reuse

to

conceptual

modeling

Specification

of

the

problem

Information

System

development

is

not

a

unique-phase

activity

but

involves

different

phases

of

development

-LRB-

i.e.

analysis

design

implementation

-RRB-

As

consequence

the

application

of

reuse

techniques

for

Information

System

Development

must

take

into

account

this

multi-phase

characteristic

-LSB-

Ribot

-RSB-

Independently

of

the

phase

in

which

reuse

is

applied

reuse

techniques

will

be

applied

to

solve

problems

that

involve

a

great

investment

of

expert-design

effort

Examples

of

these

problems

are

the

domain

and

problem

comprehension

in

the

first

phase

the

conceptualisation

of

the

UoD

knowledge

in

terms

of

a

formal

or

semi-formal

model

in

the

second

phase

and

design

of

an

operational

schema

taking

into

account

implementation-related

aspects

in

the

third

phase

The

conceptual

modeling

process

involves

the

acquisition

of

the

application

knowledge

the

conceptualisation

of

this

knowledge

in

terms

of

a

conceptual

model

-LRB-

i.e.

the

construction

of

the

conceptual

schema

-RRB-

and

the

validation

of

the

conceptual

schema

with

respect

to

-LRB-

wrt

-RRB-

the

user

requirements

These

three

sub-tasks

are

highly

driven

by

the

designer

and

imply

capturing

large

amounts

of

problem

and

domain

knowledge

As

consequence

the

conceptual

modeling

process

remains

a

highly

costly

process

and

its

product

the

conceptual

schema

a

valuable

object

that

concentrates

the

UoD

specification

and

the

designer

expertise

into

a

formal

description

-LSB-

Louc

-RSB-

The

cost

of

the

Conceptual

Modeling

process

as

well

as

the

value

of

the

conceptual

schema

strongly

motivate

the

reuse

of

existing

schemas

in

the

development

of

new

ones

Reusing

existing

conceptual

schemas

reduces

the

costs

of

acquiring

and

specifying

UoD

concepts

in

terms

of

a

conceptual

model

as

well

as

the

effort

to

validate

the

conceptual

schema

wrt

the

client

requirements

Example

Applying

reuse

techniques

to

conceptual

modeling

Suppose

that

the

designer

wants

to

develop

an

Order

Processing

application

-LRB-

i.e.

Clients

order

Products

-RRB-

reusing

existing

conceptual

schemas

The

reuse-based

development

environment

provides

a

library

of

reusable

components

These

components

may

be

reusable

specifications

intended

to

be

adapted

and

connected

each

other

-LRB-

like

Clients

and

Products

specifications

in

Figure

-RRB-

or

standards

-LRB-

also

called

generic

frameworks

-RRB-

that

guide

the

designer

in

the

construction

of

new

applications

-LRB-

e.g.

Order-Proc-frame

in

Figure

and

-RRB-

The

library

is

classified

using

different

criteria

-LRB-

e.g.

by

application

domain

-RRB-

enabling

the

developer

to

select

the

desired

components

through

queries

and

browsing

operations

Each

component

encapsulates

a

conceptual

schema

that

models

a

certain

well-defined

problem

In

addition

to

the

conceptual

schema

reusable

components

include

documentation

-LRB-

e.g.

a

general

description

quality

attributes

the

reuse

history

-RRB-

that

serves

to

evaluate

the

reusability

of

the

component

dependencies

wrt

other

components

and

a

component

interface

that

specifies

the

visible

objects

in

the

schema

and

the

allowed

adaptation/composition

operations

applicable

to

the

component

In

the

example

the

library

includes

different

components

modeling

Client

and

Product

management

-LRB-

see

Figure

-RRB-

The

component

defines

a

minimal

description

of

Clients

and

it

has

two

refinements

-LRB-

for

banking

applications

-RRB-

and

-LRB-

for

product

rental

business

-RRB-

Product

descriptions

may

be

or

depending

on

the

inventory

policy

Documentation

CLIENTS

Documentation

CLIENTSCLIENTS

EMPLOYEE

Documentation

CLIENTSCLIENTS

Documentation

PRODUCTS

Documentation

PRODUCTS

Order-Proc-frame

Documentation

Description

Quality

att

Composition

Rules

ORDERS

Necessary

Necessary

Components

Library

Optional

Optional

Structure

Figure

A

subset

of

the

components

library

The

development-with-reuse

of

the

conceptual

schema

corresponding

to

the

Orders

Processing

application

begins

with

the

selection

of

the

useful

reusable

components

To

do

this

the

designer

queries

the

repository

and

searches

components

related

to

the

Order

Processing

problem

The

documentation

associated

to

each

component

give

the

basis

to

choose

one

or

a

set

of

components

as

starting

points

In

the

current

example

the

designer

chooses

a

standard

description

of

an

Order

Processing

system

This

description

-LRB-

named

Order-Proc-frame

-RRB-

offers

the

designer

different

configurations

for

Order

Processing

systems

and

assists

him

in

their

construction

The

next

figure

-LRB-

Figure

-RRB-

shows

a

textual

description

of

the

Order-Procframe

component

that

belongs

to

the

component

library

of

Figure

Order-Proc-frame

-LCB-

Documentation

-LCB-

-RCB-

Structure

-LCB-

-RCB-

an

Entity-Relationship

schema

Interface

-LCB-

-RCB-

visible

objects

and

allowed

operations

Dependencies

dependencies

wrt

other

components

Necessary

Clients

-LCB-

-RCB-

Products

-LCB-

or

-RCB-

Optional

Clients

-LCB-

-RCB-

Composition

rules

rules

specifying

how

connections

with

other

components

should

be

established

-LRB-

ORDERS-R

-LSB-

ORDERS

CLIENTS

PRODUCTS

-RSB-

-RRB-

-LRB-

-LRB-

o?ORDERS

-RRB-

-LRB-

o

ORDERS-R

-RRB-

o

ORDERS

o

-RRB-

-RCB-

-RCB-

-RCB-

Figure

A

zoom

of

the

Order-Proc-frame

component

of

the

library

The

Order-Proc-frame

component

includes

as

own

structure

a

specification

for

Order

management

and

specifies

connections

to

other

components

-LRB-

the

Dependencies

-RRB-

Two

connections

are

required

to

Client

and

Product

descriptions

-LRB-

Necessary

links

-RRB-

which

must

be

the

ones

mentioned

in

the

Necessary

clause

-LRB-

i.e.

and

-RRB-

or

refinements

of

them

-LRB-

e.g.

or

-RRB-

In

this

example

the

designer

constructs

a

refinement

of

-LRB-

named

-RRB-

extending

its

structure

and

connects

it

to

Order-Proc-frame

According

to

the

Order-Proc-frame

specification

other

component

would

be

-LRB-

but

not

obligatory

-RRB-

connected

to

Order-Proc-frame

-LRB-

see

the

clause

Optional

in

Figure

-RRB-

Composition

rules

like

and

-LRB-

see

Figure

-RRB-

point

out

the

different

manners

of

connecting

the

components

Concretely

establishes

a

connection

via

the

creation

of

a

relationship

ORDERS-R

and

the

addition

of

an

integrity

constraint

which

specifies

that

all

of

the

elements

in

the

entity

ORDERS

must

belong

to

the

relationship

ORDERS-R

-LRB-

i.e.

ORDERS-R

relationship

is

total

wrt

ORDERS

entity

-RRB-

Other

connection

rule

-LRB-

e.g.

-RRB-

could

suggest

an

aggregation

of

Clients

and

Products

entities

into

Orders

entity

Figure

shows

the

resulting

schema

for

the

Order

Processing

system

applying

the

connection

rule

Generic

frameworks

-LRB-

like

Order-Processing-frame

-RRB-

guide

the

designer

in

the

construction

of

a

target

application

through

-LRB-

more

or

less

-RRB-

specific

composition

rules

If

there

were

not

such

generic

frames

for

a

current

problem

the

designer

would

have

to

find

himself

the

correct

component

compositions

In

order

to

aid

the

developer

the

reuse-based

development

environment

may

use

local

component

description

-LRB-

i.e.

the

documentation

the

interface

dependencies

etc.

-RRB-

and

global

application-domain

knowledge

-LRB-

e.g.

rules

like

IF

appdomain

selling-services

THEN

compose

-LRB-

Clients

Services

-RRB-

-RRB-

to

assist

him

in

finding

the

correct

way

-LRB-

s

-RRB-

for

constructing

the

target

specification

CLIENTS

EMPLOYEE

VISITS

Order-Proc-frame

ORDERS

PRODUCTS

ORDERS-R

IC

-LRB-

-LRB-

o?ORDERS

-RRB-

-LRB-

o

ORDERS-R

-RRB-

o

ORDERS

o

-RRB-

Figure

The

resulting

conceptual

schema

applying

rule

The

example

has

given

a

feeling

about

the

different

aspects

concerned

to

the

application

of

reuse

techniques

in

the

conceptual

schema

development

the

representation

of

the

reusable

components

their

selection

from

the

library

and

the

component

refinement/composition

for

constructing

a

new

conceptual

schema

In

the

following

sections

each

of

these

aspects

is

analysed

with

more

detail

Component

Abstraction

As

stated

in

-LSB-

Hemm

-RSB-

software

reuse

is

the

process

of

incorporating

into

a

new

product

any

of

the

following

previously

tested

code

previously

developed

requirements

specifications

or

previously

used

tested

plans

data

and

procedures

The

definition

of

what

is

a

reusable

artefact

-LSB-

Krue

-RSB-

-LRB-

reusable

components.

assets

-RRB-

is

necessary

to

make

reuse

possible

We

call

this

the

component

abstraction

This

means

defining

the

information

a

component

will

contain

and

how

it

will

be

specified

It

should

be

noticed

that

the

information

given

by

the

abstraction

of

an

artefact

will

be

determinant

in

the

reuse

process

In

the

REBOOT

project

-LSB-

Morel

-RSB-

components

includes

not

only

software

code

itself

-LRB-

including

interface

-RRB-

but

also

associated

information

that

help

describe

and

understand

the

functionality

of

the

code

-LRB-

Documentation

Testdata

Design

Analysis

-RRB-

This

information

is

used

to

help

the

user

in

his

choice

of

the

artefact

that

is

better

adapted

to

his

needs

and

in

the

use

and

modification

of

the

artefact

in

the

target

system

Components

are

stored

in

a

graph

structure

where

the

links

represent

dependencies

between

components

as

well

as

component

composition

To

components

as

a

whole

a

classification

scheme

is

attached

as

well

as

a

qualification

scheme

that

measures

the

quality

and

reusability

of

the

component

and

the

history

of

previous

reuse

of

the

component

Classification

information

is

used

by

the

retrieval

system

and

the

latter

are

used

to

give

the

user

a

greater

confidence

in

the

component

Component

Analysis

Docum

Code

Testdata

Interface

Body

Design

Classification

Qualification

History

Author

Dependencies

on

other

components

Includes

Component

breakdown

Realizes

Figure

REBOOT

reusable

component

model

In

the

case

of

conceptual

schema

reuse

there

are

many

abstraction

mechanisms

that

have

been

put

together

over

the

years

to

help

in

the

specification

of

information

systems

Due

to

the

need

for

an

intensive

interaction

between

the

developers

and

the

users

in

the

process

the

resulting

systems

and

languages

used

are

of

a

much

higher

level

of

abstraction

than

those

used

in

software

development

This

is

a

great

advantage

to

the

reuse

process

and

should

be

profited

from

The

conceptual

models

used

in

the

specification

of

information

systems

permit

the

specification

of

the

structural

and

dynamic

aspects

of

database

applications

The

existing

conceptual

models

are

supposed

to

permit

the

representation

of

the

necessary

concepts

in

a

clear

way

and

be

of

easy

comprehension

for

the

developers

in

the

domain

However

these

models

are

much

more

efficient

in

the

abstraction

of

the

static

aspects

of

the

application

than

in

the

dynamic

aspects

If

we

take

the

integrity

constraints

as

an

example

a

common

approach

is

to

define

them

using

first

order

logic

This

permits

a

specification

independent

from

the

implementation

which

is

interesting

for

reuse

On

the

other

hand

as

these

constraints

become

more

complex

involving

various

concepts

the

exact

meaning

of

the

constraint

may

not

be

so

clear

Conceptual

Models

There

is

a

large

variety

of

conceptual

models

currently

available

The

most

common

ones

are

extensions

of

the

Entity-Relationship

and

the

Object-Oriented

models

Object-Oriented

models

are

considered

particularly

interesting

and

are

generally

thought

to

inherently

encourage

reusability

because

of

its

notion

of

inheritance

and

encapsulation

The

model

proposed

in

-LSB-

Sutc

-RSB-

proposes

the

integration

of

information

concerning

goals

state

transitions

transformations

and

events

to

the

OO

model

Based

on

this

information

analogical

matching

will

be

performed

TELOS

-LSB-

Koub

-RSB-

-LSB-

Cons

-RSB-

is

another

example

of

this

new

generation

of

knowledge

representation

languages

TELOS

that

tries

to

integrate

in

a

homogeneous

way

functions

that

permit

the

description

of

the

environment

within

which

the

system

will

function

as

well

as

to

describe

the

interactions

that

exist

between

the

environment

and

the

database

managed

by

the

system

Topic

related

to

schema

encapsulation

and

modularisation

have

been

addressed

in

-LSB-

Feld

-RSB-

and

-LSB-

Troy

-RSB-

where

proposals

for

modeling

conceptual

schemas

in

multiple

abstraction

levels

are

presented

Formal

Specification

languages

can

also

be

candidates

to

the

specification

of

abstractions

They

are

meant

to

support

conciseness

precision

and

formal

reasoning

and

to

have

a

sound

theoretical

basis

that

provides

precise

reasoning

about

the

behavioural

aspects

of

specifications

The

formal

theory

behind

these

methods

should

be

sufficiently

powerful

to

express

the

behaviour

of

a

substantial

class

of

real-world

systems

and

have

an

associated

calculus

for

manipulating

formal

objects

representing

system

components

and

behaviours

Abstraction

Approaches

Depending

on

the

genericity

of

the

reusable

component

and

independently

from

the

conceptual

model

being

used

two

approaches

can

be

distinguished

the

schema-based

and

the

case-based

approaches

In

the

schema-based

a

reusable

component

the

schema

correspond

to

a

solution

for

a

family

of

application

problems

Schemas

have

also

been

referred

to

by

other

names

like

plans

clich?s

generic

frameworks

and

templates

In

the

case-based

the

reusable

component

the

case

correspond

to

the

solution

of

a

concrete

application

problem

Both

design

schemas

and

cases

are

necessary

to

support

software

design

reuse

any

approach

based

only

on

one

aspect

is

inadequate

-LSB-

Lee

-RSB-

As

to

what

is

the

best

approach

depends

on

the

application

to

be

developed

Both

approaches

have

advantages

and

disadvantages

-LRB-

-RRB-

the

cost

of

generating

and

manipulating

special

abstract

structures

vs.

the

cost

of

manipulating

wide

sets

of

cases

-LRB-

-RRB-

the

higher

level

-LRB-

and

resumed

-RRB-

vision

of

the

software

pieces

vs.

the

complete

vision

of

them

-LRB-

-RRB-

a

strong

-LRB-

and

easy

to

search

in

-RRB-

classification

based

on

application

domain

vs.

more

flexible

classifications

which

can

take

into

account

other

aspects

different

from

the

application

or

domain

-LRB-

e.g.

the

role

played

by

the

concepts

the

manner

of

modeling

certain

concept

relationships

-RRB-

The

Selection

process

The

selection

process

within

a

repository

can

be

compared

to

looking

for

a

book

in

a

library

An

organisation

clear

and

of

easily

understanding

to

the

user

must

be

given

to

the

artefacts

when

storing

them

in

the

repository

and

efficient

mechanisms

must

be

provided

to

permit

the

user

to

query

the

contents

of

said

repository

If

the

effort

to

recover

an

artefact

is

greater

or

equal

to

that

of

developing

it

again

reuse

will

be

hindered

In

this

sense

the

flexibility

and

performance

offered

by

the

querying

mechanisms

are

of

upmost

importance

This

means

a

user-friendly

interface

with

retrieval

functions

provided

by

browsers

and/or

query

languages

which

permit

the

retrieval

of

schemas

or

subschemas

For

these

retrieval

functions

to

be

efficient

the

classification

given

to

the

artefacts

have

to

be

well

defined

and

adapted

to

the

contents

of

the

artefacts

Component

classification

Component

classification

is

usually

based

on

hierarchical

and/or

faceted

techniques

The

first

gives

the

components

a

general

classification

that

is

successively

refined

and

that

enables

the

search

of

artefacts

units

following

the

abstraction

hierarchy

-LRB-

i.e.

beginning

from

the

top

level

domain

descriptor

and

descending

in

the

hierarchy

-RRB-

The

second

identifies

the

important

characteristics

-LRB-

facets

-RRB-

of

the

reuse

unit

that

will

be

used

by

the

selection

mechanism

The

Hierarchical

Classification

is

commonly

used

in

well

established

domains

where

the

vocabulary

is

well

defined

and

known

It

's

the

type

of

classification

used

in

libraries

where

books

are

classified

by

domains

and

within

that

domain

they

are

further

classified

by

sub

domains

Examples

of

this

approach

can

be

found

in

the

classification

of

generic

frames

by

application

domains

of

ITHACA

-LSB-

Cons

-RSB-

and

in

IMSL

-LSB-

IMSL

-RSB-

a

library

of

mathematical

functions

The

hierarchical

approach

is

efficient

in

the

cases

that

artefacts

have

general

accepted

definitions

and

semantics

-LRB-

e.g.

sin

and

cosine

functions

a

List

ADT

-RRB-

On

the

other

hand

if

the

application

is

in

a

new

or

not

well

defined

domain

the

retrieval

of

artefacts

from

other

domains

becomes

more

difficult

In

contrast

to

hierarchical

classification

schemes

the

Faceted

Classification

-LSB-

Prie

-RSB-

is

more

flexible

and

suited

for

dynamic

domains

in

continual

expansion

and

change

A

faceted

classification

scheme

enables

to

view

an

artefact

from

several

viewpoints

called

facets

Each

facet

denotes

a

certain

property

of

the

component

and

accept

a

pre

defined

set

of

values

-LRB-

called

terms

-RRB-

The

set

of

terms

for

one

facet

can

be

related

to

each

other

depicting

relations

between

the

artefacts

actually

classified

with

the

respective

terms

This

approach

has

been

adopted

by

several

projects

-LRB-

ex

REBOOT

ITHACA

-RRB-

each

giving

never-the-less

their

own

group

of

facets

and

terms

For

REBOOT

the

adopted

classification

scheme

consists

of

four

facets

Abstraction

Operations

OperatesOn

and

Dependencies

-LSB-

Karl

-RSB-

The

Abstraction

facet

is

a

noun

characterising

the

component

-LRB-

stack

flight

reservation

-RRB-

the

Operations

facet

contains

the

operations

of

the

component

-LRB-

push

reserve

-RRB-

the

OperatesOn

facet

contains

the

entities

the

component

acts

on

-LRB-

integer

seats

-RRB-

and

the

Dependencies

facet

contains

non-functional

characteristics

-LRB-

unix-based

C++

-RRB-

Figure

shows

an

example

of

the

classification

of

the

reusable

component

in

the

context

of

REBOOT

system

The

component

Set

is

described

by

the

noun

Unordered

Collection

and

that

depends

on

the

Unix

operating

system

and

in

the

C++

programming

language

In

this

example

only

two

of

the

facets

have

been

shown

-LRB-

Abstraction

and

Dependencies

-RRB-

Notice

that

each

facet

has

a

termspace

associated

which

can

be

organised

hierarchically

-LRB-

specialisation/generalisation

-RRB-

A

link

between

the

component

and

the

terms

that

describe

it

is

established

Another

interesting

form

of

classification

specially

when

working

with

browsers

is

the

Clustering

approach

which

groups

together

the

concepts

that

are

close

according

to

a

given

distance

measure

-LSB-

Comy

-RSB-

-LSB-

Caet

-RSB-

Abstraction

Dependencies

Facets

Resources

Collection

Ordered

Collection

Unordered

Collection

Operating

System

Programming

Language

Unix

MS-DOS

C++

Ada

Concepts

-LRB-

Termspace

-RRB-

Set

Classified

by

Reusable

Component

Figure

An

example

of

REBOOT

classification

scheme

Component

retrieval

The

two

main

approaches

taken

when

defining

retrieval

functions

are

the

definition

of

browsing

mechanisms

and

query

languages

Browsing

systems

have

proven

to

be

efficient

when

the

number

of

artefacts

in

the

repository

is

not

very

big

However

when

the

number

augments

its

efficiency

drops

considerably

In

this

case

querying

mechanisms

are

better

Most

systems

try

to

combine

the

benefits

of

both

approaches

giving

the

user

the

possibility

to

use

queries

to

position

themselves

in

areas

within

the

repository

that

may

contain

relevant

artefacts

which

will

then

be

explored

through

browsing

Here

the

clustering

techniques

presented

above

are

put

into

use

Furthermore

other

distance

measures

can

also

be

defined

that

permit

the

retrieval

of

similar

artefacts

when

answering

imprecise

queries

Due

to

Smalltalk

-LSB-

Gold

-RSB-

and

hypertext

technology

browsing

is

now

a

highly

accepted

form

of

exploration

mechanism

It

is

usually

based

on

graph

structures

composed

of

nodes

and

links

and

navigational

systems

that

permit

the

exploration

of

said

graph

The

user

can

thus

navigate

the

graph

containing

the

nodes

opening

them

to

see

what

they

contain

and

if

it

interests

him

The

browser

can

eventually

give

the

user

other

relevant

information

that

will

help

him

choose

the

best

way

to

traverse

the

graph

giving

him

hints

on

interesting

things

to

see

in

the

way

These

hints

can

also

be

used

by

the

browser

to

lead

the

user

in

a

direction

likely

to

contain

relevant

information

In

reuse

the

nodes

correspond

to

the

artefacts

and

the

links

are

the

relationships

existing

between

the

artefacts

These

links

may

be

clustering

links

which

give

the

distance

measures

between

the

two

artefacts

they

unite

The

Graphical

Browser

proposed

in

-LSB-

Cons

-RSB-

for

the

reuse

of

schemas

displays

part

of

the

network

around

a

selected

object

The

neighbourhood

of

the

object

is

defined

in

terms

of

the

links

of

interest

adjacent

to

it

These

links

include

similarity

aggregation

specificity

The

size

of

the

neighbourhood

can

also

be

controlled

Traditional

databases

propose

a

query

language

which

permits

the

retrieval

of

information

contained

in

the

database

Analogously

repositories

also

should

have

associated

query

languages

which

permit

the

efficient

retrieval

of

reusable

artefacts

Unlike

standard

databases

when

the

designer

searches

reusable

components

for

developing

a

current

application

he

seldom

knows

the

exact

query

conditions

that

must

specify

for

retrieving

the

desired

components

-LRB-

e.g.

he

search

components

related

to

Clients

-RRB-

As

consequence

the

query

language

must

give

the

user

some

flexibility

permitting

the

developer

to

state

imprecise

queries

This

imprecision

can

be

obtained

in

two

ways

by

the

imprecision

of

the

values

contained

in

the

database

and

by

the

imprecision

of

the

constraints

stated

in

the

query

The

first

way

is

directly

related

to

the

fuzzy

logic

theory

which

deals

with

the

notion

that

in

the

real

world

humans

are

frequently

faced

with

imprecise

incomplete

or

vague

information

In

the

fuzzy

logic

theory

a

fuzzy

set

consist

of

objects

and

their

respective

grades

of

membership

in

the

set

That

is

the

probability

of

an

object

belonging

to

a

class

is

not

limited

to

-LRB-

true

-RRB-

or

-LRB-

false

-RRB-

but

can

be

described

by

the

entire

interval

-LSB-

-RSB-

Possibility

functions

-LSB-

Zade

-RSB-

permit

the

expression

of

information

such

as

it

is

highly

possible

that

Jane

will

succeed

in

her

exam

-LSB-

Zade

-RSB-

In

the

second

way

imprecision

can

also

be

obtained

by

permitting

the

user

to

state

vague

query

conditions

The

imprecision

in

the

constraints

of

the

queries

is

defined

to

help

the

user

in

the

search

of

attribute

values

in

the

database

that

are

within

a

given

distance

from

the

desired

value

Notice

that

the

values

are

not

imprecise

themselves

but

that

a

distance

measure

is

given

to

relate

the

domain

values

of

an

attribute

This

approach

avoids

the

user

to

have

to

modify

his

query

manually

every

time

he

wants

to

look

for

values

that

fall

within

a

certain

radius

For

example

the

user

wishes

to

know

if

there

is

a

flight

leaving

for

Paris

near

to

Hs

In

the

imprecise

querying

systems

that

permit

the

definition

of

imprecise

conditions

the

user

states

a

query

and

if

no

answer

is

found

the

original

query

is

automatically

modified

through

the

relaxation

of

the

query

conditions

following

one

of

four

approaches

the

definition

of

distance

measures

between

the

domain

values

of

the

attributes

in

the

database

-LSB-

Yen

-RSB-

-LSB-

Ichi

-RSB-

the

definition

of

vague

concepts

based

on

the

existing

attributes

-LSB-

Motr

-RSB-

-LSB-

Motr

-RSB-

the

query

modification

is

done

by

generalisation

of

cardinality

constraints

-LSB-

Anwa

-RSB-

and

the

use

of

the

database

taxonomy

through

the

generalisation

hierarchy

to

relax

the

query

-LSB-

Anwa

-RSB-

Example

Application

of

the

approach

based

on

distance

measures

Suppose

a

query

is

made

to

recover

the

comic

films

being

projected

in

a

given

district

If

no

exact

answer

is

recovered

the

query

can

be

modified

to

recover

films

being

projected

in

neighbouring

theatres

or

films

in

a

similar

genre

Example

Application

of

the

approach

based

on

generalisation

of

constraints

Suppose

a

query

made

to

recover

all

students

that

are

enrolled

in

at

least

two

courses

In

this

case

the

relaxation

of

the

query

is

done

by

relaxing

the

condition

of

at

least

two

to

at

least

one

The

Modification

process

Modification

is

the

process

applied

by

the

developer

for

adapting

and

connecting

existing

reusable

components

to

build

a

new

software

piece

In

the

analysis

of

the

modification

mechanism

two

aspects

have

to

be

considered

-LRB-

-RRB-

the

operations

that

the

designer

applies

for

constructing

the

new

artefact

and

-LRB-

-RRB-

the

type

of

design

knowledge

that

the

system

provides

for

assisting

the

developer

in

the

application

of

the

modification

operations

Based

on

the

first

aspect

i.e.

the

type

of

operations

two

different

approaches

can

be

identified

the

Composition

and

the

Generation

approaches

In

composition-based

systems

component

modification

is

mainly

achieved

through

three

families

of

operations

specialisation

enable

the

developer

to

construct

new

artefacts

through

adapting

existing

components

to

the

new

requirements

composition

enable

the

designer

to

interconnect

the

reusable

components

for

constructing

a

more

complex

artefact

and

reorganisation

operations

are

devoted

to

restructuring

class

and

component

representations

to

enhance

their

quality

and

reusability

-LRB-

e.g.

avoid

redundancies

and

conflicts

into

the

type

hierarchy

adapt

the

type

hierarchy

to

the

current

hierarchy

of

concepts

-RRB-

Component

specialisation

Specialisation

operations

enable

the

designer

to

add

new

properties

and

to

adapt

existing

ones

in

a

controlled

and

limited

form

avoiding

damaging

repercussions

-LRB-

like

lost

of

correctness

-RRB-

Specialisation

may

be

carried

out

through

inheritance

parameter

instantiation

and

through

evolution

Inheritance

enables

the

definition

of

a

new

concept

-LRB-

the

subconcept

-RRB-

which

inherits

the

properties

of

an

existing

one

-LRB-

the

superconcept

-RRB-

and

owns

other

new

properties

-LRB-

the

local

properties

-RRB-

-LSB-

Niers

-RSB-

Specialisation

through

parameter

instantiation

may

be

applied

in

different

fashions

The

best

known

is

parametric

polymorphism

-LSB-

Card

-RSB-

which

enables

the

specialisation

of

generic

-LRB-

parametric

-RRB-

definitions

-LRB-

class

or

procedure

definitions

-RRB-

through

the

instantiation

of

their

type

parameters

Some

examples

of

such

parametric

definitions

are

the

packages

of

ADA

and

the

templates

of

C++

Other

variations

of

parameter

instantiation

consist

in

general

design

options

-LRB-

not

only

type

definitions

-RRB-

that

are

controlled

not

at

programming

language

level

but

at

reuse

level

For

example

in

ITHACA

the

re-user

may

choose

options

or

instantiate

parameters

concerning

the

messages

that

the

component

exports

the

extern

components

and

classes

that

import

and

the

inclusion

of

properties

into

the

new

specific

component

-LSB-

Bell

-RSB-

Both

inheritance

and

parametric

polymorphism

are

highly

attractive

to

be

applied

for

reuse

because

the

consistency

of

the

result

is

ensured

by

the

object-oriented

model

In

spite

of

their

safety

these

types

of

specialisation

operations

have

a

disadvantage

the

lack

of

expressiveness

Inheritance

and

parametric

polymorphism

are

not

able

to

solve

an

important

set

of

component

specialisation

requirements

like

property

rename

method

signature

adaptation

-LSB-

Holzle

-RSB-

This

lack

of

expressiveness

and

the

interest

of

applying

these

more

complex

operations

not

through

source

code

modification

has

motivated

the

proposition

of

other

more

powerful

specialisation

mechanisms

-LSB-

Holzle

-RSB-

Evolution

operations

include

a

wide

spectrum

of

concept

specialisation

operations

that

enable

the

designer

to

change

a

concept

representation

in

more

arbitrary

manners

An

important

problem

in

evolution

operations

is

that

they

may

generate

inconsistent

components

As

consequence

a

main

aspect

to

cover

is

the

component

consistency

control

Some

examples

of

evolution

operations

are

class

addition/deletion

property

addition/deletion

and

object

-LRB-

class

or

property

-RRB-

renaming

The

study

of

schema

evolution

is

a

fundamental

topic

in

the

context

of

databases

where

different

mechanisms

have

been

proposed

-LSB-

Bane

-RSB-

-LSB-

Zica

-RSB-

-LSB-

Skar

-RSB-

-LSB-

Waller

-RSB-

Example

Applying

the

different

types

of

specialisation

operations

The

following

example

shows

a

simple

application

of

the

different

types

of

specialisation

operations

for

reusing

a

schema

definition

Consider

the

reusable

component

representing

a

Client-Buys-Product

relationship

in

Figure

The

designer

wants

to

reuse

this

component

-LRB-

through

specialisation

operations

-RRB-

for

constructing

the

schema

of

a

machinery

selling

application

CLIENTS

number

int

pers-data

<Personal-Data>

BUYS

date

Date

qtty-units

int

pay-contract

<Type-Pay-Contract>

PRODUCTS

number

int

name

string

unit-type

string

unit-price

float

Legend

Type

Parameters

<parameter>

Figure

The

conceptual

schema

to

be

reused

For

specialising

the

schema

in

Figure

the

developer

may

apply

different

operations

-LRB-

-RRB-

Instantiate

the

<Personal-Data>

type

parameter

-LRB-

of

CLIENTS

entity

definition

-RRB-

with

the

Personal-Data

type

of

its

application

and

the

<Type-Pay-Contract>

-LRB-

in

BUYS

relationship

-RRB-

with

the

type

of

payment

contract

applied

in

this

type

of

business

-LRB-

-RRB-

Define

different

subentities

of

PRODUCTS

for

representing

the

different

types

of

products

sold

by

the

enterprise

-LRB-

-RRB-

An

evolution

operation

may

be

applied

to

change

the

type

of

unit-type

attribute

-LRB-

in

PRODUCTS

entity

-RRB-

from

string

to

Unit-Type

The

repercussions

of

this

evolution

operation

must

be

evaluated

in

order

to

ensure

the

correctness

of

the

component

The

resulting

specialised

component

is

shown

in

Figure

Through

specialisation

the

designer

has

built

a

new

artefact

reusing

all

of

the

characteristics

defined

on

the

reusable

component

-LRB-

e.g.

attributes

methods

integrity

constraints

-RRB-

of

Figure

and

adding

new

objects

and

properties

CLIENTS

number

int

BUYS

date

Date

qtty-units

int

PRODUCTS

number

int

name

string

unit-type

Unit-Type

unit-price

float

MACHINES

weigh

float

VEHICLES

power

int

charge-capacity

int

pers-data

Company-Cli-Data

pay-contract

Company-Types-Contract

Figure

The

resulting

-LRB-

specialised

-RRB-

conceptual

schema

Component

composition

Component

composition

involves

the

connection

of

multiple

reusable

components

for

constructing

a

more

complex

artefact

It

may

be

horizontal

which

corresponds

to

connecting

components

at

the

same

abstraction

level

-LRB-

e.g.

two

components

representing

Clients

and

Products

are

connected

for

constructing

a

Product-selling

information

system

-RRB-

and

vertical

which

corresponds

to

reuse

of

a

lower

level

component

for

implementing

a

higher-level

one

-LRB-

e.g.

a

List

module

may

be

used

to

implement

a

Graph

module

-RRB-

Composition

is

usually

achieved

through

composite

objects

multiple

inheritance

and

message

passing

Object

oriented

models

include

constructors

corresponding

to

these

kind

of

object

composition

As

consequence

several

reuse-based

development

systems

-LSB-

Girar

-RSB-

-LSB-

Morel

-RSB-

benefit

from

object

oriented

capabilities

for

solving

the

component

composition

aspect

The

direct

way

for

exploiting

these

capabilities

is

representing

reusable

components

using

object

oriented

models

REBOOT

-LSB-

Morel

-RSB-

-LSB-

Ribot

-RSB-

is

an

example

of

system

where

modification

is

strongly

based

on

OO

model

capabilities

Both

specialisation

and

composition

are

achieved

through

encapsulation

inheritance

and

polymorphism

mechanisms

None-the-less

REBOOT

also

enables

the

application

of

evolution

and

reorganisation

operations

Although

object

oriented

models

offer

constructors

for

performing

composition

they

have

been

perceived

as

a

programming

technology

rather

than

as

a

software

component

production

technology

Object

oriented

models

provide

a

binding

technology

for

composing

software

at

the

level

of

language

expressions

and

statements

-LSB-

Cox

-RSB-

-LSB-

Niers

-RSB-

Furthermore

object

oriented

models

do

not

address

the

problem

of

component

interface

standardisation

and

do

not

provide

high-level

domain-oriented

rules

for

component

binding

For

example

the

construction

of

user

interfaces

through

the

composition

of

existing

graphical

components

has

its

own

rules

for

component

binding

which

are

different

from

the

ones

in

other

types

of

applications

like

stream

processing

via

pipes

-LSB-

Niers

-RSB-

-LSB-

Holzle

-RSB-

In

order

to

enable

the

composition

of

complex

software

pieces

in

a

high-level

domain-oriented

fashion

more

general

binding

technology

have

been

proposed

composition

models

-LSB-

Niers

-RSB-

-LSB-

Sing

-RSB-

and

module

interconnection

languages

-LSB-

Prie

-RSB-

-LSB-

Ning

-RSB-

Both

types

of

proposals

intend

to

model

the

connection

of

software

components

While

composition

models

integrate

component

definition

and

manipulation

in

a

single

model

module

interconnection

languages

are

mechanisms

applied

for

connecting

components

written

in

different

languages

The

composition

model

-LRB-

named

scripting

model

-RRB-

proposed

in

-LSB-

Niers

-RSB-

introduces

the

notion

of

script

for

providing

the

glue

that

binds

plug-compatible

software

components

Software

components

are

considered

as

any

piece

of

software

that

imports

-LRB-

through

input

ports

-RRB-

or

exports

-LRB-

through

output

ports

-RRB-

services

A

script

specifies

bindings

between

a

set

of

components

The

formalization

of

the

syntax

of

scripts

as

well

as

their

interpretation

is

achieved

through

a

script

model

-LRB-

or

composition

model

-RRB-

i.e.

declaring

what

port

and

link

types

are

valid

and

which

ports

are

plugcompatible

in

a

particular

application

domain

Scripts

have

a

fundamental

property

scripts

are

also

components

as

consequence

one

may

encapsulate

a

script

as

a

component

in

order

to

reuse

it

in

future

scripts

Example

Applying

the

scripting

model

of

-LSB-

Niers

-RSB-

Suppose

that

the

developer

wants

to

build

a

Data-Query

Form

for

an

Order-Processing

application

using

the

scripting

model

of

-LSB-

Niers

-RSB-

The

Data-Query

Form

will

serve

to

query

the

Orders

database

-LRB-

given

an

order

number

-RRB-

and

to

display

the

order

resulting

from

the

query

computing

the

total

price

-LRB-

Figure

-RRB-

In

order

to

solve

the

problem

-LRB-

build

the

data-query

form

-RRB-

six

kinds

of

reusable

components

will

be

used

-LRB-

-RRB-

Label

components

that

simply

display

a

constant

text

label

-LRB-

e.g.

Orders

Query

Form

Order

Number

Customer

-RRB-

-LRB-

-RRB-

Field

components

-LRB-

one

for

each

form

field

-RRB-

that

store

simple

data

values

-LRB-

e.g.

#order

customer-name

#prod

-RRB-

-LRB-

-RRB-

a

Database

component

that

stores

order

information

and

accepts

queries

-LRB-

-RRB-

a

Calculator

component

that

computes

the

total

price

-LRB-

-RRB-

components

that

extract

fields

from

database

records

and

-LRB-

-RRB-

a

Document

component

that

presents

the

assembled

information

The

Figure

shows

the

data-query

form

and

the

connections

between

its

components

Orders

Query

Form

Order

Number

Customer

Address

Product

Quantity

Price/Item

Total

Database

Calculator

customer-name

customer-address

#order

#prod

qtty

price

total

#order

price

total

customeraddress

#prod

qtty

customername

query

The

user

enters

an

Order

number

customer-name

-LRB-

a

-RRB-

The

desired

Orders

query

form

-LRB-

b

-RRB-

The

resulting

construction

of

the

Orders

Query

Form

Legend

component

name

Component

ouput

port

input

port

Connection

Constant

<constant value>

Figure

A

Data

Query

Form

for

the

Orders

database

Label

components

have

no

ports

Each

field

component

-LRB-

i.e.

#order

customername

customer-address

#prod

qtty

price

total

-RRB-

have

an

input

port

where

it

may

receive

updates

and

an

output

port

used

to

propagate

the

current

value

to

other

components

In

the

example

the

input

port

receive

the

result

of

the

query

and

in

the

case

of

the

total

field

component

the

total

price

of

the

order

The

#order

field

component

uses

its

input

port

to

accept

an

order

number

from

the

user

and

its

output

port

to

query

the

database

through

sending

an

order

number

The

Database

component

has

an

input

port

which

accepts

the

number

of

an

order

to

be

retrieved

and

an

output

port

which

sends

the

result

of

the

last

query

to

other

component

The

Calculator

component

has

two

input

ports

for

accepting

the

operands

an

other

input

port

for

the

operator

and

an

output

port

that

gives

the

result

components

have

input

ports

for

accepting

a

database

record

and

a

field

name

and

an

output

port

which

give

the

value

of

the

selected

field

in

the

database

record

In

order

to

construct

the

query-form

for

the

Order-Processing

application

-LRB-

Figure

-RRB-

the

developer

connects

the

#order

field

component

to

the

Database

component

through

a

link

that

sends

the

order

number

value

to

the

input

port

-LRB-

query

request

receiver

-RRB-

of

the

Database

component

The

Database

component

is

connected

to

components

sending

to

them

the

record

resulting

from

the

query

Each

component

accepts

a

field

name

and

extracts

the

corresponding

information

from

the

database

record

and

sends

the

field

value

to

the

corresponding

field

component

Qtty

and

price

field

components

send

their

values

to

the

Calculator

which

sends

the

result

to

the

total

field

component

Finally

all

components

are

scripted

into

a

Document

component

which

will

have

an

input

port

corresponding

to

the

order

number

value

The

previous

example

has

shown

an

application

of

the

scripting

model

This

model

is

very

general

and

it

may

be

applied

for

modeling

the

composition

of

widely

different

kinds

of

components

ITHACA

-LSB-

Bell

-RSB-

defines

a

composition

model

for

the

F-ORM

conceptual

model

applying

the

composition

model

proposed

in

-LSB-

Niers

-RSB-

as

the

basis

of

the

development

with

reuse

In

addition

to

the

mentioned

approaches

an

other

type

of

component

composition

mechanism

can

be

considered

in

the

domain

of

databases

Schema

and

View

Integration

proposals

offer

techniques

for

constructing

new

database

schemas

including

-LRB-

and

compatibilizing

-RRB-

the

characteristics

of

other

existing

ones

-LSB-

Bati

-RSB-

-LSB-

Souz

-RSB-

-LSB-

Motr

-RSB-

-LSB-

Shet

-RSB-

-LSB-

Lars

-RSB-

-LSB-

Bouz

-RSB-

-LSB-

Spac

-RSB-

-LSB-

Gott

-RSB-

Assistance

to

the

developer

Although

user

assistance

is

recognised

as

fundamental

in

all

of

the

proposals

the

ways

of

giving

this

assistance

varies

greatly

A

common

strategy

for

user

assistance

is

to

provide

documentation

about

the

application

domains

in

which

the

components

may

be

re-used

and

the

reuse

history

of

each

component

Apart

from

these

each

proposal

guides

the

designer

in

different

manners

and

based

on

different

meta

information

and

heuristics

In

ITHACA

the

development

process

begins

with

the

selection

of

an

existing

Generic

Application

Frame

-LRB-

GAF

-RRB-

from

the

Software

Information

Base

-LRB-

SIB

-RRB-

The

GAF

encapsulate

the

application

development

knowledge

-LRB-

reusable

components

and

development

guidelines

-RRB-

for

an

application

domain

Guided

by

the

GAF

the

designer

identifies

refines

and

composes

existing

specifications

for

constructing

new

ones

REBOOT

-LSB-

Morel

-RSB-

proposes

an

Evaluation

Tool

that

provides

the

developer

all

the

available

information

about

the

component

quality

-LRB-

based

on

a

quality

model

-RRB-

and

recommends

the

developer

to

apply

certain

modification

operations

considering

the

component

quality

conditions

For

example

if

a

component

lacks

of

flexibility

the

Evaluation

Tool

will

recommend

the

designer

to

modify

the

component

only

through

inheritance

REBOOT

also

provides

the

reuse

history

of

the

component

Acquisition

of

new

reusable

components

The

acquisition

of

reusable

component

-LRB-

also

called

the

library

population

process

-RRB-

is

one

of

the

most

critical

and

hardest

processes

related

to

the

reuse

Acquiring

new

reusable

components

involves

solving

three

sub-problems

-LRB-

-RRB-

define

what

is

a

reusable

component

i.e.

define

the

properties

that

characterise

a

reusable

component

-LRB-

e.g.

quality

and

reusability

conditions

-RRB-

-LRB-

-RRB-

determine

how

to

construct

such

kind

of

components

i.e.

the

ways

of

obtaining

software

components

with

the

defined

properties

-LRB-

e.g.

through

a

specialised

domain

knowledge

acquisition

activity

obtaining/constructing

the

components

in

the

same

manner

as

non

reusable

ones

and

testing

if

they

satisfy

the

required

conditions

deriving

the

reusable

components

from

non-full-reusable

components

-RRB-

and

-LRB-

-RRB-

insert

the

new

reusable

component

in

the

library

determining

how

it

is

placed

wrt

the

classification

mechanism

Quality

characteristics

Ensuring

-LRB-

and

enhancing

-RRB-

quality

characteristics

of

reusable

components

is

a

essential

aspect

in

promoting

the

application

of

reuse

techniques

Reusable

components

not

only

must

be

syntactically

correct

but

they

also

must

satisfy

certain

quality

criteria

that

ensure

their

reusability

Many

models

for

Software

Quality

have

been

proposed

-LSB-

Boehm

-RSB-

-LSB-

RADC

-RSB-

In

these

models

three

categories

of

characteristics

are

considered

the

factors

which

are

defined

from

the

user

point

of

view

-LRB-

e.g.

the

reusability

-RRB-

the

criteria

which

are

high

level

technical

software

characteristics

-LRB-

e.g.

modularity

complexity

and

self-descriptiveness

characteristics

-RRB-

and

the

metrics

which

measure

concrete

software

aspects

-LRB-

e.g.

the

cyclomatic

number

-RRB-

These

three

types

of

characteristics

are

related

in

a

hierarchical

structure

factors

are

defined

in

function

of

criteria

which

are

defined

in

function

of

metrics

The

study

of

quality

conditions

for

reuse

implies

determining

the

software

quality

criteria

that

have

a

great

impact

in

the

reuse

activity

and

determining

the

associated

metrics

to

the

criteria

Indeed

the

impact

of

different

criteria

may

be

different

depending

on

the

type

of

component

manipulation

REBOOT

-LSB-

Morel

-RSB-

proposes

a

qualification

model

which

is

based

on

the

ensurance

of

quality

factors

that

govern

reusability

These

factors

are

-LRB-

-RRB-

Portability

the

ease

with

which

software

can

be

transferred

from

one

computer

system

to

another

-LSB-

IEEE

gloss

-RSB-

-LRB-

-RRB-

Flexibility

denotes

the

existence

of

a

range

of

choices

available

to

the

designer

Flexibility

is

also

referred

to

as

generality

-LSB-

Gloss

-RSB-

-LRB-

-RRB-

Understandability

a

software

product

is

understandable

if

its

purpose

is

clear

to

the

inspector

-LSB-

Gloss

-RSB-

and

-LRB-

-RRB-

Confidence

which

is

defined

by

REBOOT

glossary

as

the

subjective

probability

that

a

module

program

or

system

performs

its

defined

purpose

satisfactorily

-LRB-

without

failure

-RRB-

In

ORT

-LSB-

Moneg

-RSB-

Monegan

considers

the

Reusability

characteristic

in

terms

of

Context

Dependent

and

Context

Independent

factors

Context

Dependent

involves

the

factors

that

are

sensitive

to

the

context

in

which

reuse

is

applied

Judgements

of

applicability

-LRB-

or

usefulness

-RRB-

can

only

be

made

properly

by

the

reuser

at

the

reusetime

and

in

function

of

the

current

problem

Context-independent

reusability

of

a

component

depends

of

the

quality

conditions

of

its

design

and

implementation

Acquiring

reusable

components

Lee

-LRB-

in

-LSB-

Lee

-RSB-

-RRB-

proposes

a

system

for

achieving

the

automated

acquisition

of

reusable

components

The

proposed

mechanism

organises

specific

cases

for

enabling

a

better

access

and

reuse

and

derives

reusable

schemas

when

an

adequate

number

of

cases

is

accumulated

To

derive

a

schema

from

a

set

of

cases

CAReT

establishes

mappings

between

corresponding

features

of

the

existing

cases

Other

proposal

for

deriving

generic

resources

-LRB-

entity

definitions

-RRB-

and

generic

process

-LRB-

behavioural

component

definitions

-RRB-

from

sets

of

specific

resource

and

process

classes

is

presented

in

-LSB-

Cast

-RSB-

and

-LSB-

Cast

-RSB-

These

proposals

address

not

only

the

problem

of

constructing

the

reusable

-LRB-

generic

-RRB-

components

but

also

the

problem

of

classifying

them

In

addition

to

the

generic

descriptions

the

proposed

mechanism

also

generates

guideline

classes

that

provide

suggestions

for

the

reuse

of

the

generic

components

The

guidelines

include

different

type

of

meta

level

information

about

the

generic

component

the

dependencies

of

the

objects

modeled

in

the

generic

component

textual

information

describing

the

ways

in

which

the

component

can

be

used

references

to

the

existing

specialisations

of

the

generic

component

and

suggested

actions

given

in

a

rule

format

that

guide

the

designer

in

the

reuse

of

the

generic

component

Conclusion

Reuse

is

recognised

as

a

fundamental

technique

in

software

engineering

It

is

also

accepted

that

it

is

more

successfully

used

in

well

known/defined

application

domains

and

with

clear

specified

languages

Other

successful

factors

include

the

facility

of

obtaining

the

implementation

from

the

specification

the

possibility

of

reasoning

about

specifications

and

the

popularity

of

the

specification

language

In

the

conceptual

modeling

domain

all

these

conditions

hold

Conceptual

Modeling

also

benefits

from

the

object-oriented

paradigm

characteristic

-LRB-

e.g.

encapsulation

inheritance

-RRB-

through

the

application

of

object

oriented

models

Nowadays

the

proposition

of

reuse-based

tools

for

Information

System

development

is

in

an

expansion

period

On

going

research

work

addresses

the

construction

of

reuse-based

environments

for

application

development

-LRB-

e.g.

REBOOT

ITHACA

NATURE

-RRB-

as

well

as

focus

individual

technical

problems

like

component

model

construction

-LSB-

Ning

-RSB-

-LSB-

Ning

-RSB-

-LSB-

Sing

-RSB-

automatic

indexing

of

software

components

-LSB-

Girar

-RSB-

and

reusability

metrics

-LSB-

Frakes

-RSB-

-LSB-

Poul

-RSB-

-LSB-

Masao

-RSB-

Furthermore

the

development

of

concept

and

domain

knowledge

dictionaries

-LSB-

Mura

-RSB-

-LSB-

Noss

-RSB-

-LSB-

Bube

-RSB-

-LSB-

Cain

-RSB-

along

with

the

advances

in

schema

repositories

may

lead

the

way

to

a

much

more

semantic

approach

to

address

the

component

representation

and

selection

problems

-LSB-

Ambr

-RSB-

Nevertheless

there

remains

several

technical

problems

to

be

solved

Although

object

oriented

languages

and

models

provide

an

important

part

of

the

needed

capabilities

they

are

not

conceived

for

domain-oriented

component

treatment

The

definition

of

mechanisms

for

assisting

the

developer

in

component

selection

and

evaluation

is

still

a

research

topic

Component

acquisition

remains

a

hard

problem

where

automated

proposals

for

component

acquisition

are

still

not

complete

enough

Thus

this

activity

remains

in

the

hands

of

a

domain-specialist

designer

Bibliography

-LSB-

Ader

-RSB-

M.

Ader

O.

Nierstrasz

et

al.

The

ITHACA

Technology

A

Landscape

for

ObjectOriented

Application

Development

ESPRIT

-LSB-

Ambr

-RSB-

A.P.

Ambrosio

Introducing

Semantics

in

Conceptual

Schema

Reuse

Workshop

of

the

CAiSE

-LSB-

Anwa

-RSB-

T.M.

Anwar

H.W.

Beck

and

S.B.

Navathe

Knowledge

Mining

by

Imprecise

Querying

A

Classification-Based

Approach

in

Int

Conference

on

Data

Engineering

-LSB-

ASSE

-RSB-

Asset

Source

for

Software

Engineering

Technology

ASEET

firm

brochure

Morgantown

WV

-LSB-

Atki

-RSB-

M.

Atkinson

F.

Bancilhon

D.

DeWit

K.

Dittrich

D.

Maier

and

S.

Zodnik

The

Object-Oriented

Database

System

Manifesto

In

Proceedings

of

the

International

Workshop

on

Object-Oriented

Database

Systems

-LSB-

Bane

-RSB-

J.Banerjee

W.Kim

J.K.Kim

and

H.

Korth

Semantics

and

Implementation

of

Schema

Evolution

in

Object-Oriented

Databases

In

Proceedings

ACM

SIGMOD

Conference

San

Francisco

CA

-LSB-

Bati

-RSB-

C.

Batini

M.Lenzerini

et

al

A

Comparative

analysis

of

methodologies

for

database

schema

integration

ACM

Computing

Surveys

dec

-LSB-

Bell

-RSB-

Bellinzona

Fugini

de

Mey

Reuse

of

Specifications

and

Designs

in

a

Development

Information

System

In

Proceedings

of

the

IFIP

WG

Conference

on

Information

System

Development

Process

Como

Italy

-LSB-

Bigg

-RSB-

Biggerstaff

Richter

Reusability

Framework

Assessment

and

Directions

in

-LSB-

Bigg

-RSB-

-LSB-

Bigg

-RSB-

Biggerstaff

and

Perlis

-LRB-

Editors

-RRB-

Software

Reusability

-LRB-

vol

-RRB-

Concepts

and

Models

Addison-Wesley

Publishing

Company

-LSB-

Boehm

-RSB-

B.

Boehm

Software

Engineering

Economics

ISBN

Prentice

hall

Inc.

Englewood

Cliffs

NJ

-LSB-

Bouz

-RSB-

M.

Bouzeghoub

and

I.

Comyn-Wattiau

View

Integration

by

Semantic

Unification

and

Transformation

of

Data

Structures

International

Conference

on

EntityRelationship

Approach

Lausanne

CH

Oct

-LSB-

Bube

-RSB-

J.

Bubenko

Towards

a

Corporate

Konowledge

Repository

Technical

Repport

no.

SYSLAB

Department

of

Computer

and

Systems

Science

Royal

Institute

of

Technology

and

Stockholm

University

-LSB-

Cain

-RSB-

T.

Cain

M.

Pazzani

and

G.

Silverstein

Using

Domain

Knowledge

to

Influence

Similarity

Judgments

Case-based

Reasoning

WorkShop

-LSB-

Card

-RSB-

Cardelli

Wegner

On

Understanding

Types

Data

Abstraction

and

Polymorphism

In

ACM

Computing

Surveys

Vol

No.

December

-LSB-

Cast

-RSB-

Castano

DeAntonelis

Zonta

Classifying

and

Reusing

Conceptual

Schemas

In

Proceedings

of

the

Entity-Relationship

Conference

-LSB-

Cast

-RSB-

Castano

DeAntonelis

San

Pietro

Reuse

of

Object-Oriented

Requirement

Specifications

Proceedings

of

the

Entity-Relationship

Conference

-LSB-

Comy

-RSB-

I.

Comyn-Wattiau

and

J.

Akoka

Un

algorithme

de

classification

automatique

de

schemas

entit

association

BD

-LSB-

Cons

-RSB-

P.

Constantopoulos

M.

Doerr

and

Y.

Vassilou

Repositories

for

Software

Reuse

The

Software

Information

Base

In

Proceedings

of

the

ERCIM

Workshop

-LSB-

Cons

-RSB-

P.

Constantopoulos

and

E.

Pataki

A

Browser

for

Software

Reuse

CAiSE

-LSB-

Cox

-RSB-

B.J.

Cox

Planning

the

Software

Industrial

Revolution

IEEE

Software

Vol

No.

Nov

-LSB-

Feld

-RSB-

P.

Feldman

and

D.

Miller

Entity

Model

Clustering

Structuring

a

Data

Model

by

Abstraction

Computer

Journal

vol

no

-LSB-

Frakes

-RSB-

W.

Frakes

Software

Reuse

Is

it

Delivering

IEEE

Int

Conf

on

Software

Engineering

-LSB-

Frakes

-RSB-

Frakes

Terry

Reuse

Level

Metrics

In

Proceedings

of

the

International

Conference

on

Software

Reuse

Nov.

Rio

de

Janeiro

Brazil

-LSB-

Fugi

-RSB-

M.G.

Fugini

O.

Nierstrasz

and

B.

Percini

Application

Development

through

Reuse

the

ITHACA

Tools

Environment

SIGOIS

-LSB-

Girar

-RSB-

Girardi

Ibrahim

A

Software

Reuse

System

based

on

Natural

Language

Specifications

Proceedings

of

the

International

Conference

on

Computing

and

Information

Sudbury

Canada

-LSB-

Girar

-RSB-

Girardi

Ibrahim

Automatic

Indexing

of

Software

Artifacts

In

Proceedings

of

the

International

Conference

on

Software

Reuse

Nov.

Rio

de

Janeiro

Brazil

-LSB-

Gloss

-RSB-

Gloss-soler

The

DACS

Glossary

A

Bibliography

of

Software

Engineering

Terms

RADC

Technical

Report

-LSB-

Gold

-RSB-

Adele

Goldberg

Smalltalk

The

Interactive

Programming

Environment

Addison-Wesley

-RSB-

-LSB-

Gott

-RSB-

Gotthard

Lockermann

Neufeld

System-Guided

View

Integration

for

OO

Databases

IEEE

Transaction

on

Knowledge

and

Data

Engineering

Vol

no.

February

-LSB-

Hemm

-RSB-

Hemman

Reuse

Approaches

in

Software

Engineering

and

Knowledge

Engineering

A

Comparison

GMD

Technical

Repport

-LSB-

Hemm

-RSB-

Hemman

How

Knowledge

Engineering

can

benefit

from

Software

Engineering

with

respect

to

Reuse

towards

Reusable

knowledge

models

In

ERCIM

Workshop

Report

Methods

and

Tools

for

Software

Reuse

Heraklion

October

-LSB-

Holzle

-RSB-

Holzle

Integrating

Independently-Developed

Components

in

Object-Oriented

Languages

In

Proceedings

of

the

ECOOP

-LSB-

Ichi

-RSB-

T.

Ichikawa

and

M.

Hirakawa

ARES

A

Relational

Database

with

the

Capability

of

Performing

Flexible

Interpretation

of

Queries

IEEE

Trans

on

Soft

Engineering

Vol

no.

May

-LSB-

IEEE

gloss

-RSB-

IEEE

Computer

Society

IEEE

Standard

Glossary

of

Software

Engineering

Terminlogy

Technical

report

ANSI/IEEE

Std

-LSB-

IMSL

-RSB-

IMSL

Math

Library

User

's

Manual

Edition

Huston

Texas

-LSB-

Karl

-RSB-

Karlsson

Sorumgard

Tryggeseth

Classification

of

Object-Oriented

components

for

reuse

In

Proceedings

of

the

TOOLS

-LRB-

Technology

of

OO

Languages

and

Systems

-RRB-

-LSB-

Kern

-RSB-

Kernigan

The

Unix

system

and

software

reusability

In

IEEE

Transactions

on

Software

Engineering

-LRB-

-RRB-

-LSB-

Koub

-RSB-

M.

Koubarakis

et

al.

Telos

a

Knowledge

Representation

Language

for

Requirements

Modelling

Technical

Report

University

of

Toronto

Dec

-LSB-

Krue

-RSB-

C.W.

Krueger

Software

Reuse

ACM

Computing

Surveys

Vol

No.

June

-LSB-

Lars

-RSB-

JA

Larson

SB

Navathe

and

R

El-Masri

A

Theory

of

Attribute

Equivalence

in

Databases

with

Application

to

Schema

Integration

IEEE

Transactions

on

Software

Engineering

Vol

-LRB-

-RRB-

-LSB-

Lee

-RSB-

Lee

Harandi

Overcoming

Shortcomings

in

Schema-based

software

design

systems

In

Proceedings

of

Intl.

Workshop

on

Software

Specification

and

Design

Como

Italy

October

-LSB-

Lee

-RSB-

Hing-Yan

Lee

Automated

Acquisition

and

Refinement

of

Reusable

Software

Design

Components

Phd

Thesis

University

of

Illinois

at

Urbana-Champaign

-LSB-

Levy

-RSB-

Levy

A

metaprogramming

method

and

its

economic

justification

In

IEEE

Transactions

on

Software

Engineering

Feb.

-LSB-

Louc

-RSB-

Loucopoulos

Conceptual

Modeling

Databases

and

CASE

Wiley

Professional

Computing

-LSB-

Masao

-RSB-

Masao

Matsumoto

Ishida

A

Nation-wide

Evaluation

of

Software

Components

Reusablility

In

Proc

of

the

Workshop

on

Software

Reuse

-LSB-

McIl

-RSB-

M.D.

McIlroy

Mass

produced

software

components

In

Software

Engineering

Report

on

a

conference

by

the

NATO

Science

Committee

Germany

Oct

-LSB-

Moneg

-RSB-

Monegan

An

Object-Oriented

Software

Reuse

Tool

Technical

Report

MIT

AI

Laboratory

April

-LSB-

Morel

-RSB-

J.M

Morel

The

REBOOT

Environment

In

Proceedings

of

the

Reuse

Woorkshop

Lucca

Italy

arch

In

IEEE

CS

Press

-LSB-

Motr

-RSB-

Motro

Superviews

Virtual

Integration

of

Multiple

Databases

IEEE

Transactions

on

Software

Engineering

vol

no

july

-LSB-

Motr

-RSB-

A.

Motro

VAGUE

A

User

Interface

to

Relational

Databases

that

permits

Vague

Queries

ACM

Trans

on

Office

Inf

Systems

Vol

no.

July

-LSB-

Motr

-RSB-

A.

Motro

Accomodating

Imprecision

in

Database

Systems

Issues

and

Solutions

SIGMOD

Record

Vol

no.

Dec

-LSB-

Mura

-RSB-

K.

Muraki

and

T.

Yokoi

EDR

Project

Interim

Evaluation

and

Remarks

on

the

Promised

Goal

Genie

Linguistique

Versailles

-LSB-

Nei

-RSB-

J.

Neighbors

DRACO

A

Method

for

Engineering

Reusable

Software

Systems

in

-LSB-

Bigg

-RSB-

-LSB-

Niers

-RSB-

Nierstrasz

Object-Oriented

Concepts

In

Active

Object

Environments

ed

Tsichritzis

Centre

Universitaire

d'Informatique

Geneve

-LSB-

Niers

-RSB-

O.M.

Nierstrasz

The

ITHACA

Application

Development

Environment

Rationale

and

Approach

ITHACA

Report

ITHACA.CUI

E.

May

-LSB-

Niers

-RSB-

Nierstrasz

Tsichritzis

de

Mey

Stadelmann

Objects

Scripts

Applications

Proceedings

Conference

Esprit

Kluwer

Academic

Publishers

-LSB-

Niers

-RSB-

Nierstrasz

Gibbs

Tsichritzis

Component-Oriented

Software

Development

In

Communications

of

the

ACM

vol

no.

-LSB-

Ning

-RSB-

Ning

Mudule

Interface

Specification

and

Large-Grain

Software

Reuse

In

Proc

of

the

Workshop

on

Software

Reuse

-LSB-

Ning

-RSB-

Ning

Miriyala

Kozaczynski

An

Architecture-Driven

Business-Specific

and

Component-Based

Approach

to

Software

Engineering

In

Proceedings

of

the

International

Conference

on

Software

Reuse

Nov.

Rio

de

Janeiro

Brazil

-LSB-

Noss

-RSB-

Nossin

Le

projet

GENELEX

EUREKA

pour

les

dictionaires

generiques

in

Genie

Logiciel

et

Language

Naturel

vol

Versailles

-LSB-

Poul

-RSB-

Poulin

Survey

of

Approaches

to

Reusability

Metrics

In

Proceedings

of

the

International

Conference

on

Software

Reuse

Nov.

Rio

de

Janeiro

Brazil

-LSB-

Prie

-RSB-

Prieto-Diaz

and

Neighbors

Module

Interconection

Languages

Journal

Systems

Software

November

-LSB-

Prie

-RSB-

Prieto-Diaz

Domain

Analysis

for

Reusability

In

Proceedings

IEEE

Computer

Software

and

Applications

pp.

-LSB-

Prie

-RSB-

R.

Prieto-Diaz

Classification

of

Reusable

Modules

IEEE

Software

-LRB-

-RRB-

-LSB-

Prie

-RSB-

Prieto-Diaz

Arango

Domain

Analysis

and

Softare

System

Modeling

IEEE

Computer

Society

Press

Los

Alamos

California

-LSB-

RADC

-RSB-

Bowen

Wigle

Jay

Specification

of

Software

Quality

Attributes

vol

II

Feb

-LSB-

Ribot

-RSB-

Ribot

Bongard

Villermain

Development

Life-Cycle

WITH

Reuse

In

Proceedings

of

the

ACM

Symposium

of

Applied

Computing

Phonix

USA

March

-LSB-

Shet

-RSB-

Sheth

Larson

Cornelio

Navathe

A

tool

for

integrating

conceptual

schemas

and

user

views

IEEE

International

Conference

on

Data

Engineering

-LSB-

Sing

-RSB-

Singhal

Batory

P

A

Language

for

Large-Scale

Reusable

Software

Components

In

Proc

of

the

Workshop

on

Software

Reuse

-LSB-

Skar

-RSB-

A.Skarra

and

S.Zdonik

The

Management

of

Changing

Types

in

an

OODB

In

OOPSLA

-LSB-

Souz

-RSB-

J.M.

de

Souza

SIS

A

Schema

Integration

System

Proc

BNCOD

conference

-LSB-

Spac

-RSB-

Spaccapietra

Parent

Dupont

Model

Indpendent

Assertions

for

Integration

of

Heterogeneous

Schemas

VLDB

Journal

-LRB-

-RRB-

-LSB-

Sutc

-RSB-

A.

Sutcliffe

and

N.

Maiden

Supporting

Component

Matching

for

Software

Reuse

CAiSE

-LSB-

Thun

-RSB-

Thunheim

Development

with

and

for

Reuse

Guidelines

from

the

REBOOT

Project

In

ERCIM

Workshop

Report

Methods

and

Tools

for

Software

Reuse

Heraklion

October

-LSB-

Tracz

-RSB-

Tracz

Software

Reuse

Maxims

In

ACM

SIGSOFT

-LRB-

-RRB-

-LSB-

Troy

-RSB-

O.

de

Troyer

and

Janssen

On

Modularity

for

Conceptual

Data

Models

and

The

Consequences

for

Subtyping

Inheritance

and

Overriding

IEEE

Proceeding

Conf

Data

Engineering

-LSB-

Uchi

-RSB-

H.

Uschida

and

T.

Kakizaki

Electronic

Dictionary

Project

Machine

Translation

Summit

Ed

M.

Nagao

published

by

Ohmsha

Eds

-LSB-

Waller

-RSB-

Waller

Schema

updates

and

consistency

In

Proceedings

of

the

DOOD

Munich

Germany

LNCS

-LSB-

Yen

-RSB-

S.J.

Yen

and

A.

Chen

Neighborhood/Conceptual

Query

Answering

with

Imprecise/Incomplete

Data

Proc

of

ER

Approach

Dec

-LSB-

Zade

-RSB-

L.A.

Zadeh

Fuzzy

sets

as

a

basis

for

a

thory

of

possibility

Memorandum

Eletronics

Research

Lab

Univ.

of

California

Berkeley

Fuzzy

Sets

and

Systems

-LRB-

-RRB-

-LSB-

Zica

-RSB-

R.

Zicari

A

Framework

for

Schema

Updates

in

an

OO

Database

System

IEEE

Data

Engineering