rect rect rect rect rect rect rect
You are viewing an archived version of CBSE 1998. This page has been archived via the Internet Archive Wayback Machine for the ICSA conference series history. Some links on this page might not work.
← return to the ICSA homepage.
General Navigation ../buttons - Home | Search | Contact Us | Site Map | Whats New
engineering graphic
engineering
COTS-Based Systems
Overview
Activity Areas
Products and Services
References
Briefings, Courses, and Workshops
CURE (COTS Usage Risk Evaluation)
EPIC
Publications
COTS_Spot Column
Integration of Software-Intensive Systems
Performance Critical Systems
About SEI|Mgt|Eng|Acq|Collaboration|Prod.& Services|Pubs
Rollover Popup Hints for Topic Navigation ../buttons above
Verifying components under development at the design stage: A Tool to support the composition of component design models


Siobhan Clarke
School of Computer Applications
Dublin City University
Dublin 9.
sclarke@compapp.dcu.ie

John Murphy
School of Computer Applications
Dublin City University
Dublin 9.

A position paper presented at the 1998 International Workshop on Component-Based Software Engineering



Abstract

Two of the main objectives associated with the development of a business component destined for a component-based environment are that the component provides the business service precisely as stated, and that it provides an interface with which other components can work. Testing these objectives often occurs at the system test phase. We are developing a tool that supports the composition of UML design models, which will allow the verification of the design of a component occur at an earlier stage in the development cycle.



1. Introduction

In [CM97] we introduced research into a tool designed to support the development of large-scale systems by allowing the composition of component parts. This can be done at any stage during the development cycle, as components may be design models as well as code components. Development of a component to support some specific business requirement that is required to work within a component-based environment is similar in some ways to developing one small part of a large-scale system which will be finally composed into the final application. The component in a component-based development must provide precisely the stated functionality, and must provide usable interfaces. Obviously, a well-run project will test the component prior to release. It is well documented that the earlier problems are found in the development cycle, the cheaper it is to fix them. Therefore, the composition of the design models of components will verify the compatibility of the components and isolate conflicts and gaps in the business functionality provided. The gaps might be filled by other components or, if there do not appear to be other components supporting the missing functionality, this might result in a requirement for the development of a new component.

This implies that the component designs are available for composition, which may not always be the case. However, there is much discussion on the need for precise descriptions of components. UML design models provide accessible, relatively precise descriptions of the specification of a component, and therefore might be a candidate for a standard way in which the descriptions of components might be published. If this were the case, then composition of the design models for verification purposes would be possible. Within a single vendor environment, however, verification of the components under development using this mechanism is possible, since the design models are probably available.



2. Related Work

There is considerable research on-going into object-oriented software composition, with many different techniques around. One mechanism to support the composition of object-oriented programs, called subject-oriented programming, is based on the packaging of object oriented systems into "subjects", with a compositor program used to compose subjects into larger subjects, and eventually entire systems [OKKHK96]. When composing subjects, composition designers consider issues of both correspondence and combination. Correspondences between different elements of the subjects may be based on having the same name, or some other rule. Combination can be performed in a variety of different ways. For example, one subject�s elements may replace those of another. Alternatively, use of join combination aggregates, rather than replaces, functionality.

We believe that composition at the design level is also a very useful mechanism. The notion of model templates is discussed in [DW98] where a template is a model of a design pattern � i.e., a generic piece of model. Models and designs may be built by application of the templates. Applying a template to the model effectively merges the specification of the template with the model, ensuring that the model is refined with the generic template. Specification of the model template is similar to the specification of the design model. On application of the template to the model, the names of the template are replaced by the names in the model. Our tool could easily support this approach.



3. Tool Functionality

The design of the compositor tool has drawn from the flexibility of the composition rules concept from subject-oriented programming and the notion of templates from Catalysis. The objective is to automate the composition process as far as possible, which requires support for flexible specification of rules guiding the compositor component on what is required when a conflict arises. The following main areas support the composition of design models, and are described in more detail in [CM98].


3.1. Composition of Design Models

The composition of design models is performed based on a set of composition rules, which include the rules associated with element correspondence and rules defining the combination technique. During the composition, there is considerable potential for conflict. One example of a conflict might be if two design elements, one from each of two components being composed, have the same name but have different properties defined. In the absence of a generic rule to cover a particular conflict case, the tool notifies the designer to resolve the conflict by specifying the properties for the conflicting elements in the composed model. There are two kinds of conflicts: one where the "correctness" of the composed model is compromised, and one where the business information of the design elements contradict. Both cases may have the potential to be covered by rules which may be selectively added to the high-level composition rule on which the composition process is based.


3.2. Specification of Generic Rules to Automate Conflict Resolution

Design elements in a UML design model are constrained by the rules of the UML meta-model. As an instance of a meta-class, a design element has properties and rules associated with it. During the design of a component, the tool ensures the "correctness" of the model at all times. In the same way, a tool composing models into a new model must ensure that the composed model also conforms to the "correctness" rules of UML. In general, where we have a design element property with a UML rule attached [UML97], these must be considered as a pair with a two-way impact. The design element�s properties in a particular stage of the design will impact, based on a UML rule, the creation or change of the other properties of the same design element and/or the creation or change of other design elements. Conversely, an attempt to change the properties of a design element may be restricted, based on a UML rule, by the values of other properties in the same design element and/or the values of the properties of other design elements. When composing two models designed separately, conflicts associated with the (property,rule) pair may arise. The composition tool allows the specification of generic rules that allow the compositor component of the tool to automatically handle conflicts associated with the (property,rule) pair when they arise.

In addition, during the composition of design models, designers may also be required to resolve conflicts between design elements that result from differences between different designers� knowledge of the problem domain. The designer attempting the composition of design models may intercede in these conflicts by defining the properties for the design elements in the composed model. We consider that there is potential to build a specific rule for each decision made by maintaining the design element values selected for the composed model. In every future encounter with that design element, even if not in this composition effort, application of the rule would result in the previously stored properties being applied.



References

[CM97] Siobhan Clarke, John Murphy. "Developing a Tool to Support the Composition of the Components in a Large-Scale Development" Workshop on Object-Oriented Behavioural Semantics, OOPSLA (1997)
[CM98] Siobhan Clarke, John Murphy. "Composition of UML Design Models: A tool to support the resolution of conflicts" submitted to OOIS (1998)
[DW98] Desmond D�Souza, Alan Wills. "Objects, Components and Frameworks with UML: The Catalysis Approach" Addison-Wesley (1998).
[OKKHK96] Harold Ossher, Matthew Kaplan, Alexander Katz, William Harrison, Vincent Kruskal. "Specifying Subject-Oriented Composition" Theory and Practice of Object Systems, Volume 2, Number 3, (1996).
[UML97] UML Consortium. Unified Modeling Language Semantics Version 1.1.available from http://www.rational.com





[papers] [presentations] [program] [next] [prev]
contact the author contact the organizers [report errors]
[report in pdf format]


The Software Engineering Institute (SEI) is a federally funded research and development center sponsored by the U.S. Department of Defense and operated by Carnegie Mellon University.

Copyright 2004 by Carnegie Mellon University
Terms of Use
URL: http://www.sei.cmu.edu/papers/p3.html
Last Modified: 11 August 2004