Building applications from of-the-shelf pieces, like libraries and components, is a promising approach to the future of software development. As such pieces are a subject to reuse, they have to have their interfaces and semantics clearly defined. To combine components from various vendors, one need a way to reason about component compatibility. Our experience with distributed component-based application has shown that reasoning about component compatibility based only on comparing component types (interface/method signatures) is not sufficient. Therefore, a kind of component semantic/behavioral specification is necessary. Fractal [1] provides a hierarchical component model, where components may be nested (forming composite components) and only the lowest-level (primitive) components are implemented in a programming language. The architecture of a component application is described in the Fractal Architecture Description Language (ADL). For each component, its behavioral specification may be stated in the application ADL file. In this paper, we describe results of the work on the “Component Reliability Extensions for Fractal Component Model” project [7] funded by France Telecom. The goal of the project is to extend the Fractal Component model and its Julia implementation with support for behavior protocols [8]. The paper is structured as follows: In Sect. 2, behavior protocols as a way of specifying component behavior are described, while Sect. 3 introduces various types of compatibility checks. Sect. 4 provides evaluation and concludes the paper.
[1]
Tomas Bures,et al.
Component Reliability Extensions for Fractal component model : Architecture / Design manual and User manual : Final deliverable ( T 0 + 18 )
,
2006
.
[2]
Frantisek Plasil,et al.
Behavior Protocols for Software Components
,
2002,
IEEE Trans. Software Eng..
[3]
Jan Kofron,et al.
Model Checking of Component Behavior Specification: A Real Life Experience
,
2006,
Electron. Notes Theor. Comput. Sci..
[4]
Jan Kofron,et al.
Model Checking of Software Components: Making Java PathFinder Cooperate with Behavior Protocol Checker
,
2006
.
[5]
Jirí Adámek,et al.
Component composition errors and update atomicity: static analysis
,
2005,
J. Softw. Maintenance Res. Pract..
[6]
Thierry Coupaye,et al.
An Open Component Model and Its Support in Java
,
2004,
CBSE.
[7]
Frantisek Plasil,et al.
Specification and Generation of Environment for Model Checking of Software Components
,
2007,
Electron. Notes Theor. Comput. Sci..