| A
trader for COTS components |
|
Summary
In the last
decade Component-Based
Software Engineering is generating tremendous interest due
to
the development of plug-and-play reusable software, which has led to
the
concept of "commercial off-the-shelf"
(COTS) components. Although currently more a goal to pursue a than a
reality,
this approach moves organizations from application development to
application
assembly. Constructing an application now involves the use of prefabricated
pieces, perhaps developed at diferent times, by diferent people,
and possibly with diferent uses in mind. The ultimate goal, once again,
is to be able to reduce developing times, costs, and eforts, while
improving
the flexibility, reliability, and reusability of the final application
due to the (re)use of software components already tested and validated.
Of course, this approach is challenging some of the current SE methods
and tools. For instance, the traditional top-down development method
based
on successive refinements of the system requirements until a suitable
concrete
implementation of the final application's components is reached is no
longer
valid as such. In CBSE the system designer also has to have into
account
the specification of predeveloped COTS components
that live in software repositories, that must be even considered when
building
the initial system's requirements in
order
to incorporate them into all phases of the development process [2, 3].
In this
context, our particular
long-term goal is to study the development of applications from COTS
components, right from the specification of the application's
software
architecture. This specification describes the specification of
abstract
components, that may difier from the concrete specification of the COTS
components residing in a given repository. In the simplest case each
required
service is separately specified, and each component implements just one
service. This simple case is the one considered by traditional
approaches,
and therefore the search and matching processes of components have been
de ned on a one-to-one basis [1, 4, 5].
However, this
is not the
common case in most real applications: in general, COTS components are
coarse-grained components that integrate several services and over
several
interfaces. Think for instance in an Internet navigator or a Word
processor:
apart from their core services they also o er many diferent ones, like
web page composition, spell checking, etc. In addition, we also
take
into account the services that components require from other
components,
not only the supported ones.
References
- J. Goguen,
D.
Nguyen, J. Meseguer,
Luqi, D. Zhang, and V. Berzins. Software component search. Journal of
Systems
integration, 6:93{134, September 1996.
- H. Mili,
F.
Mili, and A. Mili.
Reusing software: Issues and research directions. IEEE Trans. on
Software
engineering, 21(6):528{562, June 1995.
- S.
Robertson
and J. Robertson.
Mastering the Requirement Process. Addison-Wesley, 1999.
- A. M.
Zaremski
and J. M. Wing.
Signature matching: A tool for using software libraries. ACM Trans. on
Software Engineering and Methodology, 4(2):146{170, April 1995.
- A. M.
Zaremski
and J. M. Wing.
Specification matching of software components. ACM Trans. on Software
Engineering
and Methodology, 6(4):333{369, Oct 1997.
- more
|