Open reuse of component designs in OPM/Web

16
1 Open Reuse of Component Designs in OPM/Web Iris Reinhartz-Berger 1 Dov Dori 1,2 and Shmuel Katz 1 1 Technion, Israel Institute of Technology Technion City, Haifa 32000, Israel 2 Massachusetts Institute of Technology 77 Massachusetts Avenue Cambridge, MA 02139, USA Emails: {ieiris@tx, dori@ie, katz@cs}.technion.ac.il Abstract As system structural and behavioral complexity has increased, so has the interest in reusing software components in early development phases. While most current modeling methods support design of generic parameterized frameworks or patterns and weaving them into specific models, they do not support open reuse, i.e., the ability to develop partially specified components and refine them in the target application. We introduce an open reuse formalism that is based on principles from aspect- orientation and OPM/Web, an extension of Object-Process Methodology for distributed systems and Web applications. Our open reuse is accomplished by a three-step process, consisting of designing reusable models, creating basic woven models, and enhancing their specification. We model a reusable component through partially specified environmental objects, processes, and links that are bound to concrete counterparts when the component is integrated into the system under development. Rules for modeling and combining components are defined and exemplified through cases from the domain of Web applications. Keywords: component-based software development; software architecture, framework, and design patterns; distributed systems; Internet and Web-based systems; aspect-oriented programming; Object- Process Methodology. 1. Introduction The last few decades have witnessed increasing interest in software reuse, i.e., the use of existing software artifacts or knowledge to create new software [FT96]. Software reuse aims at improving software quality and productivity by integrating commercial off-the-shelf (COTS) products, which reduce debugging and maintenance time. Early software reuse concerned the combination of reusable source code components, including COTS ones, to produce application software [MMM95]. The object-oriented paradigm highlighted the importance of reusability as part of the development process by using classes, packages (modules), and the inheritance mechanism as primary linguistic vehicles for reuse [BO94]. The current definition of software reuse encompasses all the resources used and produced during the development process, including reuse of requirements, architecture, design, implementation, and documentation.

Transcript of Open reuse of component designs in OPM/Web

1

Open Reuse of Component Designs in OPM/Web

Iris Reinhartz-Berger1 Dov Dori1,2 and Shmuel Katz1 1 Technion, Israel Institute of Technology

Technion City, Haifa 32000, Israel 2 Massachusetts Institute of Technology

77 Massachusetts Avenue Cambridge, MA 02139, USA

Emails: {ieiris@tx, dori@ie, katz@cs}.technion.ac.il Abstract

As system structural and behavioral complexity has increased, so has the interest in reusing software

components in early development phases. While most current modeling methods support design of

generic parameterized frameworks or patterns and weaving them into specific models, they do not

support open reuse, i.e., the ability to develop partially specified components and refine them in the

target application. We introduce an open reuse formalism that is based on principles from aspect-

orientation and OPM/Web, an extension of Object-Process Methodology for distributed systems and

Web applications. Our open reuse is accomplished by a three-step process, consisting of designing

reusable models, creating basic woven models, and enhancing their specification. We model a reusable

component through partially specified environmental objects, processes, and links that are bound to

concrete counterparts when the component is integrated into the system under development. Rules for

modeling and combining components are defined and exemplified through cases from the domain of

Web applications.

Keywords: component-based software development; software architecture, framework, and design

patterns; distributed systems; Internet and Web-based systems; aspect-oriented programming; Object-

Process Methodology.

1. Introduction

The last few decades have witnessed increasing interest in software reuse, i.e., the use of existing

software artifacts or knowledge to create new software [FT96]. Software reuse aims at improving

software quality and productivity by integrating commercial off-the-shelf (COTS) products, which

reduce debugging and maintenance time. Early software reuse concerned the combination of reusable

source code components, including COTS ones, to produce application software [MMM95]. The

object-oriented paradigm highlighted the importance of reusability as part of the development process

by using classes, packages (modules), and the inheritance mechanism as primary linguistic vehicles

for reuse [BO94]. The current definition of software reuse encompasses all the resources used and

produced during the development process, including reuse of requirements, architecture, design,

implementation, and documentation.

2

We distinguish two reuse categories: closed reuse and open reuse. Closed reuse incorporates

existing complete, stand-alone modules or components, such as packages or classes, into new

applications via the components' interfaces [BGJ99]. Most software engineering methods support

closed reuse by parameterization and binding capabilities. In open reuse, we integrate partially

specified components into one combined model. Like closed reuse, open reuse encompasses the

design of reusable models and their complex integration with the system under construction. In

addition, open reuse enables enhancing and optimizing the integrated components during the analysis

and design phases. Such optimization is possible by specifying the open constituents within the

reusable components in a way that best suits the task at hand.

The platform we suggest for both the closed and open reuse formalism is OPM/Web [RDK02], an

extension to the Object-Process Methodology (OPM) for distributed systems and Web applications.

OPM [DO95, DO02] extends the object-oriented paradigm with a new entity, called process, which is

a pattern of transformation (consumption, generation, or change) that objects undergo. This provides

OPM with a straightforward way for specifying stand-alone processes. Such processes, which are not

owned by (or encapsulated in) a specific object and therefore cannot abide by the object-oriented

encapsulation principle, are prevalent in models of real-life systems. For example, manufacturing

cannot conceivably be owned by raw materials, machines, products, or models. Rather, it involves all

of them.

The paper is organized as follows. Section 2 reviews existing reuse specification techniques and

argues that they handle primarily closed reuse. Section 3 specifies rules for weaving components in

OPM/Web and discusses the semantics of the resulting models. Section 4 demonstrates the process of

weaving models on a Web-based example, while Section 5 summarizes the contributions of this work.

2. Reuse of Component Designs in Modeling Techniques

Current object-oriented approaches, notably UML [UML00, MLS98, LWB98] and OPEN [GHY97],

emphasize the importance of reuse during the development process and enable it through classes,

packages, and the inheritance mechanism. However, once the classes and packages have been

modeled, they are treated as closed, black boxes with interfaces, through which other parts of the

model or other models can communicate. This approach hinders reusing generic models in different

contexts, where they can be effectively woven into various locations throughout an application under

development. To respond to this challenge, aspect-oriented approaches [CES97, CA99] introduce the

concept of aspect, which modularizes the features for a particular concern and describes how these

features should be woven, i.e., incorporated and integrated, into the system model. Superimposition

language constructs [KA93, BF88, BK89] similarly extend the functionality of process-oriented

systems, again cutting across the software architecture of process hierarchy.

Recent attempts have been made to extend the aspect notion from programming to software design

[BE98, KM99, CBE99] and to software engineering [ASE01, GR00]. Most aspect-oriented modeling

3

techniques are based on UML and add stereotypes to model the new aspect-oriented concepts.

Catalysis [DW98] is an example of an OMG-compliant methodology for component and framework-

based development. Troll [EAN01] and Composition Patterns [CW01] suggest adding

parameterization and binding capabilities to UML packages. Mixin-based approaches [FKF98] apply a

calculus for defining generic subclasses, which are parameterized over superclasses. While these

methods handle closed reuse, they lack the ability to support the development of several components

into complete systems. Such support is often essential for optimizing and enhancing the design of an

entire model – a mission that goes beyond binding existing components together.

Object-Process Methodology (OPM) [DO95, DG96, PD99, DO01, DO02] has been found to be a

suitable candidate for serving as a basis for open reuse, since it integrates concepts from the object-

and process-oriented approaches within a single frame of reference. The elements of the OPM

ontology are things and links. A thing is a generalization of an object and a process – the two basic

building blocks of any system expressed in OPM. Analogously, links can be structural or procedural.

Structural links express structural relations between pairs of objects, such as aggregation and

generalization, in order to model the static view of a system, which is hardly changed over time.

Procedural links connect objects and processes to describe the behavior of a system – how processes

transform (generate, consume, or change) objects. OPM manages complex system models through two

refinement/abstraction mechanisms: unfolding/folding, which is used for detailing/abstracting the

structural parts of a thing, and in-zooming/out-zooming, which exposes/hides the inner details of a

thing within its frame. This way OPM enables specifying a system to any desired level of detail

without losing legibility and comprehension of the resulting model. Modeling the system’s structure

and dynamics in the single OPM model benefits from the ability to automatically generate

implementation artifacts. In other words, the code generated from an OPM model describes the system

dynamics, not just its skeleton, as is often the case with other modeling approaches. The main

limitation of OPM with respect to reusability is that it is not geared towards the integration of a

number of semi-specified component designs into one model of a complete application.

3. Weaving OPM/Web Models

OPM/Web [RDK02] extends OPM for the domains of distributed systems and Web applications.

These extensions include the ability to characterize links with specific features (objects and/or

processes), extending the refining mechanisms to increase modularity, separating between the

definition of a process class and process instances (occurrences) of that class to model code migration,

and adding global data integrity and control constraints to express dependence or temporal relations

among physically separate modules. In this work, we endow OPM/Web with open reuse capability.

The open reuse is achieved by a three-step process, consisting of (1) designing reusable components,

(2) integrating these components to create basic woven models, and (3) enhancing the basic woven

models into complete applications. While the first two steps could be partially carried out by applying

4

UML, the third step is not supported by object-oriented methods, since their resulting woven models

are structural in nature and closed through pre-defined parameters. This section explains the

semantics of each step of the weaving process and specifies the rules for checking and validating its

legality.

3.1 Designing Reusable Models

The specification and design of each reusable model is carried out using OPM/Web. A thing (object or

process) in an OPM/Web model, which needs further specification in the target system to which it

may be bound, is defined as environmental. In OPM, an environmental thing is completely external to

the system, as opposed to a systemic thing, which is internal to the system. In OPM/Web, an

environmental thing can have partly specified internal structure, which may contain both systemic and

environmental components. When components are woven into one model, each environmental thing in

the combined model is either bound to a specific thing or left as an unbound requirement. A

component may also include requirements related to things in the target system to which it is bound.

Such requirements are expressed by environmental (symbolized as dashed) links, which connect pairs

of environmental things. As explained in Section 3.2, an environmental link in a reusable component

requires the existence of a corresponding link in the target system model.

Figure 1. A reusable Timed Execution Model

Figure 1 shows an example of a reusable model for adding time recording capability to a process

execution. The model, called Timed Execution Model, attaches to each Data Item a timestamp, Time.

Data Item and Time characterize (are the attributes of) Node. Data Item is environmental since it needs

to be refined and adapted to the various contexts in which this model is reused. Time, on the other

hand, is systemic – it is internal to the model and will remain the same regardless of the context of

Data Item. Similarly, Process Executing should be adapted to a specific process in the target system

and is therefore denoted as an environmental process, while Time Recording is a systemic process. The

environmental effect link between Process Executing and Data Item means that a systemic effect link

must exist between the process bound to Process Executing and the object bound to Data Item. This

implies that the Timed Execution Model is to be reused only with processes that affect the data, i.e.,

LEGEND Systemic object

Environmental object

Systemic process

Environmental process

Characterization

Instrument link

Effect link

Environmental effect link

5

change its value. If Data Item and Process Executing were not related in the reusable model, Process

Executing could be bound to a process that is not necessarily connected to the object bound to Data

Item, or has arbitrary connection with it.

3.1.1 Intra-Model Weaving Rules

OPM/Web models are required to abide by intra-model weaving rules, which include the scaling and

the link attachment rules defined below. These rules state what can and cannot be done within a single

OPM/Web model.

The scaling rule: A systemic thing can only be refined (unfolded or in-zoomed) by other systemic

things, while an environmental thing can be refined by environmental or systemic things.

In Figure 1, Time-Stamped Executing is an environmental process, since it contains an

environmental process, Process Executing. Similarly, the object Node is environmental, since one of

its attributes, Data Item, is environmental.

The link attachment rule: Two things in a reusable component that are connected by an

environmental link must both be environmental, while systemic links can connect either systemic or

environmental things. Note that a systemic link can connect two environmental things, implying that

even if the things bound to the environmental things are not explicitly connected in the target model,

an implicit systemic link between them exists in the combination. For example, if the environmental

effect link between Data Item and Process Executing in Figure 1 was replaced by a systemic one, then

the things in the target model that are bound to Data Item and Process Executing would have been

connected by an effect link, even though this link might not be explicitly specified in their model.

3.2 Creating Basic Woven Models

Having created a set of OPM/Web components, the designer should decide which components are to

be woven into the target model and how to weave them such that the combined model meets the

required specifications. Each model, be it a reusable component or a target model, is contained in a

rectangular frame, called a model object. We thus consider integrating model objects. The relations

between the model objects can be bi-directional, although usually one model object is a generic

reusable component and the other model object is the target one and is specific. The resultant model,

i.e., the woven model, can be entirely concrete, or it may still contain environmental elements, which

imply that the weaving process is not yet complete.

Next, the designer can connect each environmental thing of an OPM/Web model object with an

environmental or systemic thing of another model object. Since each model object may contain things

that need to be bound at different levels of refinement, the designer can successively apply the

appropriate series of refining steps to get the needed design portion. The model in Figure 2, for

example, weaves the Timed Execution Model of Figure 1 into a specific DB Maintenance Model, such

that the combined specification contains two model objects – the Timed Execution Model and the DB

6

Maintenance Model. The Timed Execution Model shows Time-Stamped Executing in-zoomed, while the

DB Maintenance Model shows DB Handling in-zoomed.

Generalization-specialization relations are the primary means for binding between things in any two

different models. This relation gives rise to object-oriented inheritance by providing not only for

structural object inheritance, but also for process inheritance, which is behavioral in nature. Object

inheritance implies that the sub-object class exhibits at least the same set of attributes and methods as

the super-object class. Process inheritance means that the sub-process class has at least the same

interface (i.e., the set of procedural links) and behavior (i.e., sub-processes) as the super-process class.

The interface and behavior of the inheriting process class may be extended or restricted. This way,

things in OPM/Web can inherit not just complete classes, as in UML, but also partially specified

objects or processes. In both inheritance types, multiple inheritance and cases in which several sub-

classes inherit from the same super-class are allowed.

Figure 2. A legal OPM/Web woven model. The Timed Execution Model is woven into the

DB Maintenance Model.

Figure 2 shows three generalization-specialization relations: one object inheritance relation –

between Data Item and Record, and two process inheritance relations – one between Process Executing

and DB Updating and the other between Time-Stamped Executing and DB Handling. These relations

imply that in the combined model, DB Updating affects Record and uses Time as an instrument without

changing it.

LEGEND Systemic object

Environmental object

Systemic process

Environmental process

Characterization

Aggregation

Generalization

Instrument link

Effect link

Environmental effect link

Timed Execution Model – In zooming of Time Stamped Executing

DB Maintenance Model – In zooming of DB Handling

7

3.2.1 Inter-Model Weaving Rules

Each woven model is required to preserve the intra-model weaving rules, i.e., the scaling and link

attachment rules defined in Section 3.1.1. In addition, they should preserve three inter-model weaving

rules, which apply to an integration of several models. These rules, the minimal binding, hierarchy

congruence, and link precedence rules, are defined below.

The minimal binding rule: Each environmental thing in a model object must be bound to a

corresponding thing in another model object, either explicitly or implicitly. A generalization-

specialization relation achieves explicit binding, while implicit binding is applicable only to a

compound environmental thing. A compound thing is an object or a process that is further refined and

is therefore not at the lowest level of detail. For each compound environmental thing in the reusable

model that is not explicitly bound to a thing in the target model, a default systemic thing is considered

to be generated in the combined model. This default thing includes all the specific things bound to its

environmental constituents.

The woven model in Figure 2 explicitly binds three environmental things from the Timed Execution

Model: Data Item, Time-Stamped Executing, and Process Executing. For the fourth environmental thing

in that model, Node , a default systemic object is implicitly generated in the combined model, including

Record. The default object also inherits Time from Node. Likewise, if there was no process inheritance

relation between Time-Stamped Executing and DB Handling, then a default process would be implicitly

generated for Time-Stamped Executing, consisting of DB Updating and inheriting Time Recording from

Time-Stamped Executing. Since DB Handling is bound to Time-Stamped Executing, their combination

also includes Consistency Checking. Data Item and Process Executing must be explicitly bound to

things in the target model since they are lowest level things.

The hierarchy congruence rule: The hierarchy structure between environmental things in a

reusable model must be congruent with that of the things bound to them in the target model. Hence, if

there is a parent-child relation between two environmental things in a reusable component and these

things are explicitly bound to things in the target model, then there must be a parent-child relation

between the corresponding bound things.

As an example, DB Handling in Figure 2 is bound to Time-Stamped Executing, while Process

Executing is bound to DB Updating. The parent-child relation between Time-Stamped Executing and

Process Executing is maintained in the specif ic model by DB Handling and DB Updating. The hierarchy

congruence rule disallows binding Time-Stamped Executing with Consistency Checking and at the

same time Process Executing with DB Updating.

The link precedence rule: The binding of an environmental link is implicitly determined from the

bindings of its connected things. Moreover, environmental links can be bound to systemic links which

are at least as strong as the environmental according to the link precedence order. OPM’s link

8

precedence order determines that the consumption/result links are the most powerful. These links are

followed by effect links, then agent and instrument links, and finally condition and event links.

The environmental effect link between Data Item and Process Executing in Figure 2 is implicitly

bound to the systemic effect link between Record and DB Updating. The link precedence rule implies

that the link between any object and process that are bound to Data Item and Process Executing must

be at least as strong as an effect link. Thus, a legal binding can connect them with an object and a

process which are already connected by a consumption, result, or effect link.

3.2.2 Semantics of Basic Woven Models

The semantics of the generalization-specialization relation between model objects is similar to their

semantics within a single model. An object can inherit the features (attributes and operations) of a

partially specified (environmental) object. Similarly, a process can inherit the behavior (sub-processes)

and interface (procedural links) of a partially specified (environmental) process. In the woven model

of Figure 2, Node exhibits two attributes, Time and Record, where the latter inherits from Data Item. DB

Handling consists of three sub-processes: Time Recording, DB Updating, and Consistency Checking. DB

Updating inherits from Process Executing an instrument link to Time and adds an effect link to Record.

In other words, DB Updating uses Time as an extra input and changes Record.

If different types of links exist between two environmental things and their corresponding things in

a bound model, then the more powerful link (according to the link precedence order) prevails. If there

was a systemic instrument link between Data Item and Process Executing in the Timed Execution Model

of Figure 2, it would be subsumed by the effect link between Record and DB Updating in the

combination, because an effect link takes precedence over an instrument link.

Generalization-specialization relations between processes define also a partial execution order

between the sub-processes of an individual process. The time axis in an OPM/Web System Diagram

(SD) goes from the top of the diagram to its bottom within each in-zoomed process. Hence, two

independent or concurrent sub-processes are depicted at the same vertical level. The generalization-

specialization relations between models merge the partial orders from each model into one combined

partial order. In Figure 2, there is a total order in both the Time Execution Model (first Time Recording

and then Process Executing) and in the DB Handling Model (first DB Updating and then Consistency

Checking). The generalization-specialization relation between Process Executing and DB Updating

defines a complete execution order in the woven model: Time Recording, DB Updating, and

Consistency Checking. If DB Handling contained a sub-process before DB Updating, say DB Reporting,

then the generalization-specialization relation between Process Executing and DB Updating would

determine a partial order, in which Time Recording and DB Reporting are independently executed first,

followed by DB Updating, and finally Consistency Checking.

The single model constructed by applying the above semantics of environmental elements and

generalization-specialization relations is the fully expanded model. The woven models can be

9

maintained either as component models, or as fully expanded models, as will be demonstrated in

Section 4.2. Assuming a semantic definition of a single OPM/Web model, the equivalent fully

expanded model is the semantics of the basic woven models.

3.3 Enhancing Basic Woven Models

Having created the basic woven model, the system architect can continue specifying the combined

system in a separate layer without affecting the composing model objects. This layer includes the

generalization-specialization relations between the model objects and additional intra- and inter-

relations. This stage may include reusing aspects, integrating stand-alone modules, or modeling new

requirements following OPM/Web rules. As demonstrated in Section 4.3, this stage enables

optimization and minimization of the combined models as a complete application which offers

functionality that goes beyond that of each of the individual model objects.

4. Reusing OPM/Web Models: The Accelerated Search Web-Based Example

We use the Accelerated Search System to demonstrate the OPM/Web weaving process described in

Section 3. The Accelerated Search System implements an algorithm for improving the performance of

a search engine that uses very large databases requiring time-consuming search algorithms.

The design of the Accelerated Search System includes two model objects – a reusable one, called

the Acceleration Model, and a specific one, called the Multi-Search Model. The Acceleration Model

specifies a generic algorithm that reduces the execution time of an input-output part of a system by

trying first to retrieve the output, which is determined by the input, from a database. If the entry is not

already in the database, it activates a process that calculates the sought output and records it in the

database to accelerate future executions of the algorithm with the same input. The Multi-Search Model

implements a new search engine that benefits from existing search engines by combining their results

and ordering them according to a weighted score. We assume that the database in which the term is

searched is static and rarely changed, so the query results remain valid in consequent activations of the

query with the same input. Previous query results can therefore be stored to avoid executing the costly

calculation each time a query with that input is submitted.

4.1 The Acceleration and Multi-Search Models

Figure 3 specifies the Acceleration Model in OPM/Web. The algorithm consists of three main steps:

searching the DB for an input-output entry, retrieving the output if it was found in the database, and

activating the full process otherwise. The Acceleration Model contains two environmental objects, Input

and Output, and one simple lowest-level environmental process, Original Processing. The scaling rule

implies that Accelerating and Full Process Activating are also environmental processes, since they

contain an environmental process, Original Processing. All the other things, including the object DB,

10

the Boolean object Found, and the processes DB Searching and Output Retrieving, are systemic, as they

are internal to the generic model.

Figure 3. An OPM/Web specification of the Acceleration Model. (a) SD is the top-level

diagram. (b) SD1 zooms into Accelerating of SD. (c) SD1.1 zooms into Full Process

Activating of SD1.

Figure 4. An OPM/Web specification of the Multi-Search Model. (a) SD is the top-level

diagram. (b) SD1 zooms into Multi Searching of SD.

LEGEND Systemic object

Environmental object

Systemic process

Environmental process

Generalization

Instrument link

Result/consumption link

Effect link

Condition link

c

(a) SD

(b) SD1

(c) SD1.1

(b) SD1 (a) SD

11

Figure 4 contains an OPM/Web specification of the Multi-Search algorithm. Figure 4(a) is the top-

level diagram which specifies the inputs (Term and Query Result Msg) and outputs (Query Msg and

Search Result) of the algorithm. The diagram in Figure 4(b) shows that Start Searching uses Term to

create three queries, one for each search engine. Query Sending then sends the three queries to the

relevant search engines and Result Waiting waits until all three replies have arrived and then outputs

them. Finally Result Merging combines the results to get the Search Result.

Since the Multi-Searching process depends on the speed of each search engine, the network response

time, and the number of results each search engine supplies, the response time of Multi-Searching may

be slow. To improve this response time, we weave the Acceleration Model into the Multi-Search Model,

so the latest searched terms and their results are saved in a local database, which is searched before

invoking the entire Multi-Searching process.

4.2 The Basic Acceleration/Multi-Search Model

Figure 5 shows the generic Acceleration Model woven into the target Multi-Search Model to create the

basic woven model, called Acceleration/Multi Search Model, which consists of two model objects. The

Acceleration Model object shows Full Process Activating of Accelerating in-zoomed, while the Multi-

Search Model object shows the top-level diagram. Three generalization-specialization relations connect

the two model objects. Two of these relations are between object classes, specifying that Term is an

Input and that Search-Result is an Output. The third generalization-specialization relation is between

two process classes, specifying that Multi-Searching specializes Original-Processing. Full Process

Activating is implicitly bound to a default systemic process that includes just Multi-Searching. These

bindings are legal according to the minimal binding rule, since each one of them connects a simple

(lowest level) thing: Input, Output, and Original Processing.

Figure 5. An OPM/Web specification of the Acceleration/Multi-Search Model

Acceleration Model –

Full Process Activating of Accelerating

Multi-Search Model– Top Level

Acceleration/Multi-Search Model

LEGEND Systemic object

Environmental object

Systemic process

Environmental process

Generalization

Instrument link

Result/consumption link

Effect link

Condition link

c

12

To show the advantage of weaving a generic model over conventional modeling, Figure 6 shows an

OPM/Web specification of the fully expanded version of the Acceleration/Multi-Search Model achieved

by completely specifying the same system without weaving any reusable model. The resulting model

is specific to the problem and is more complex than the one obtained by weaving. In order to reuse the

acceleration part of this model in another system, such as a system that finds the shortest path between

two nodes in a network, the developer must remodel the acceleration functionality to fit the new

problem. The woven model in Figure 5 enjoys the benefits of generality, which makes it reusable for a

variety of functions having the same core architecture.

Figure 6. The expanded Acceleration/Multi-Search Model. (a) SD is the top-level diagram.

(b) SD1 zooms into Accelerating/Multi-Searching of SD. (c) SD1.1 zooms into Full Search

Activating of SD1. (d) SD1.1.1 zooms into Multi searching of SD1.1.

4.3 Enhancing the Basic Acceleration/Multi-Search Model

The equivalent semantics of the woven and expanded models, shown in Figures 5 and 6 respectively,

makes it possible to treat woven models as regular OPM/Web models. The designer can continue

specifying the combined system and integrate other reusable models into it. Below we show how the

Acceleration/Multi-Search Model can be extended to maintain a log file or to improve the Result

(d) SD1.1.1

(b) SD1

(c) SD1.1

(a) SD

13

Merging algorithm. Any combination of these refinements can be part of the system design, and they

may be incorporated into the system in any order.

Figure 7. Reusing of the Log Recording Model in the Acceleration/Multi-Search Model

Figure 8. An improvement of the Result Merging algorithm of the Acceleration/Multi-

Search Model

Acceleration/ Multi-Search Model

Multi-Search Model – Multi -Searching

Acceleration Model – Full Process Activating

of Accelerating

LEGEND Systemic object

Environmental object

Systemic process

Environmental process

Inheritance

Characterization

Aggregation

Instrument link

Result/consumption link

Effect link

Event link

Condition link

Invocation link c

e

Acceleration Model –

Full Process Activating of Accelerating

Multi-Search Model–

Top Level

Acceleration/Multi-Search Model

Log Recording Model - Top Level

e

14

Figure 7 shows an integration of a Log Recording Model into the Acceleration/Multi-Search Model.

The Log Recording Model includes a Log File along with its Log Records and a Recording operation.

The interface to the Log Recording Model consists of the recording Input. When weaving the model

into the Acceleration/Multi-Search Model, Term serves as an Input. In addition, the models are connected

with an event link and an invocation link to denote the recording triggers: Recording is activated

through a DB change event or a Multi-Searching process termination event, respectively.

As another example, consider improving the Result Merging process by adding the capability to

retrieve from the database related term-result pairs and use them to decide how to score the new search

results. To achieve this function, the Acceleration/Multi-Search Model is refined with an extra

instrument link from DB (of the Acceleration Model) to Result Merging (of the Multi-Search Model), as

shown in Figure 8. This means that DB is an additional input to Result Merging. In order to allow this

binding, the in-zoomed version of the Multi Searching process is shown in the Multi-Search Model

object. Further in-zooming of Result Merging would contain details of how the database added by the

Acceleration Model improves the merging of the query results.

5. Summary

OPM/Web supports open and closed reuse through several extensions to the basic OPM model. The

main extensions are the distinction between systemic and environmental elements (objects, processes,

and links), and the ability to construct a system model from several model objects. A set of rules

determines how to create reusable models and how to weave them into various target models to obtain

refined models. The weaving process of OPM/Web includes developing reusable models by using

environmental elements, binding models via structural and procedural links, and continuing the

specification process of the combined model. This approach advocates maintaining the reusable

models at a high level of abstraction and refining them in specific contexts. The use of a combination

of object- and process-oriented vocabulary through OPM/Web enables also modeling partially

specified processes and adapting them to specific target models. Potentially, the OPM/Web weaving

mechanism proposed in this work should allow automatic generation of the combined model

implementations – both code and database schemes. Further work is planned to establish a software

system development process that employs OPM/Web to weave generic models, and support version

control and configuration management of its models.

References

[ASE01] The Aspect-Oriented Software Engineering Web site. http://www.comp.lancs.

ac.uk/computing/aop/index.html

[BE98] Becker, U. D2AL – A design-based aspect language for distribution control. Proceedings of

the Europe Conference on Object-Oriented Programming (ECOOP), 1998.

15

[BF88] Bouge, L. and Francez, N. A Compositional Approach to Superimposition. Proceedings of

ACM POPL88 Symposium, 1998, pp. 240-249.

[BGJ99] Barber, K.S., Graser, T.J. and Jernigan, S. R. Increasing Opportunities for Reuse through

Tool and Methodology Support for Enterprise-wide Requirements Reuse and Evolution.

Proceedings of the 1st International Conference on Enterprise Information Systems, 1999, pp.

383-390.

[BK89] Back, R.J.R. and Kurki-Suonio, R. Decentralization of Process Nets with Centralized

Control. Distributed Computers, 3, 1989, Springer-Verlag, pp. 73-87.

[BO94] Booch, G. Object-Oriented Analysis and Design with Application. Benjamin/Cummings

Publishing Company, Inc., 1994.

[CA99] Cardone, R. On the Relationship of Aspect-Oriented Programming and GenVoca.

Proceedings of the 9th International Workshop on Software Reuse (WISR’99), 1999.

http://www.cs.utexas.edu/users/richcar/aopwisr.html

[CBE99] Constantinides, C. A., Bader, A., and Elrad, T. An Aspect-Oriented Design Framework

for Concurrent Systems. Proceedings of the Europe Conference on Object-Oriented

Programming (ECOOP), 1999, pp. 340-352.

[CES97] Czarnecki, K., Eisenecker, U. W. and Steyaert, P. Beyond Object: Generative

Programming. Proceeding of the Aspect-Oriented Programming Workshop at ECOOP’97, June

1997, pp. 1-8.

[CW01] Clarke, S. and Walker, R.J. Composition Patterns: An Approach to Designing Reusable

Aspects. Proceeding of the International Conference on Software Engineering, 2001.

[DG96] Dori, D. and Goodman M. From Object-Process Analysis to Object-Process Design. Annals

of Software Engineering, vol. 2, 1996, pp. 25-40.

[DO95] Dori, D. Object-Process Analysis: Maintaining the Balance between System Structure and

Behavior. Journal of Logic and Computation, vol. 5, no. 2, 1995, pp. 227-249.

[DO01] Dori, D. Object-Process Methodology Applied to Modeling Credit Card Transactions.

Journal of Database Management, vol. 12, no.1, pp. 2-12, 2001 (to appear).

http://iew3.technion.ac.il:8080/Home/Users/dori/JDM-Dori-OPM.pdf.

[DO02] Dori, D. Object-Process Methodology - A Holistic Systems Paradigm. Springer Verlag,

Heidelberg, NY, in press, 2002.

[DW98] D’Souza, D. and Wills, A.C. Objects, Frameworks and Components with UML – The

Catalysis Approach. Addison-Wesley, 1998.

[EAN01] Eckstein, S., Ahlbrecht, P. and Neumann, K. Increasing Reusability in Information

Systems Development by Applying Generic Methods. Proceeding of the 13th international

Conference CAiSE’01, LNCS 2068, June 2001, pp. 251-266.

[FKF98] Flatt, M., Krishnamurthi, S., and Felleisen, M. Classes and Mixins. Proceedings of ACM

Symposium on Principles of Programming Languages, 1998, pp. 171-184

16

[FT99] Frakes, W. and Terry, C. Software Reuse: Metrics and Models. ACM Computing Surveys,

Vol. 28, No. 2, June 1996, pp. 415-435.

[GHY97] Graham, I., Henderson-Sellers, B., and Younessi, H. The OPEN Process Specification,

Addison-Wesley, 1997, pp. 126-131.

[GR00] Grundy, J. Multi-Perspective Specification, Design and Implementation of Software

Components using Aspects. International Journal of Software Engineering and Knowledge

Engineering, vol. 10, no. 6, December 2000.

[KM99] Kersten, M. and Murphy, G. C. Atlas: A Case Study in Building a Web-Based Learning

Environment using Aspect-Oriented Programming. Conference on Object-Oriented

Programming, Systems, Languages and Applications (OOPSLA), 1999.

[KA93] Katz, S. A Superimposition Control Construct for Distributed Systems. ACM Transactions

on Programming Languages and Systems, vol. 15, No. 2, 1993, pp. 337-356.

[LWB98] Lester, N. G., Wilkie, F. G. and Bustard, D. W. Applying UML Extensions to Facilitate

Software Reuse. The Unified Modeling Language (UML'98) - Beyond the Notation. LNCS 1618,

June 1998, pp. 393-405.

[MLS98] Mens, T., Lucas, C. and Steyaert, P. Giving Precise Semantics to Reuse and Evolution in

UML. Proceedings PSMT'98 Workshop on Precise Semantics for Modeling Techniques, 1998.

[MMM95] Mili, H., Mili, F. and Mili, A. Reusing Software: Issues and Research Directions. IEEE

transactions on Software Engineering, Vol. 21, No. 5, June 1995, pp. 528-562.

[PD99] Peleg, M. and Dori, D. Extending the Object-Process Methodology to Handle Real-Time

Systems. Journal of Object-Oriented Programming, vol. 11, no. 8, 1999, pp. 53-58.

[RDK02] Reinhartz-Berger, I., Dori, D. and Katz, S. OPM/Web – Object-Process Methodology for

Developing Web Applications. Annals on Software Engineering – Special Issue on Object-

Oriented Web-based Software Engineering, , 2002 (to appear).

[UML00] Unified Modeling Language Specification – version 1.3,

http://www.rational.com/media/uml/resources/documentation/ad99-06-08-ps.zip.