Chapter 16 Component-Based Software Engineering 1 19/11/2014
Chapter 16 Component-Based Software Engineering 1 19/11/2014
engineering
Component Description
characteristic
Composable For a component to be composable, all external interactions must
take place through publicly defined interfaces. In addition, it must
provide external access to information about itself, such as its
methods and attributes.
Deployable To be deployable, a component has to be self-contained. It must be
able to operate as a stand-alone entity on a component platform that
provides an implementation of the component model. This usually
means that the component is binary and does not have to be
compiled before it is deployed. If a component is implemented as a
service, it does not have to be deployed by a user of a component.
Rather, it is deployed by the service provider.
Component Description
characteristic
Documented Components have to be fully documented so that potential users can
decide whether or not the components meet their needs. The syntax
and, ideally, the semantics of all component interfaces should be
specified.
Independent A component should be independent—it should be possible to
compose and deploy it without having to use other specific
components. In situations where the component needs externally
provided services, these should be explicitly set out in a ‘requires’
interface specification.
Standardized Component standardization means that a component used in a CBSE
process has to conform to a standard component model. This model
may define component interfaces, component metadata,
documentation, composition, and deployment.
Provides interface
Defines the services that are provided by the component to other
components.
This interface, essentially, is the component API. It defines the
methods that can be called by a user of the component.
Requires interface
Defines the services that specifies what services must be made
available for the component to execute as specified.
This does not compromise the independence or deployability of
a component because the ‘requires’ interface does not define
how these services should be provided.
Interfaces
Components are defined by specifying their interfaces. The
component model specifies how the interfaces should be defined
and the elements, such as operation names, parameters and
exceptions, which should be included in the interface definition.
Usage
In order for components to be distributed and accessed
remotely, they need to have a unique name or handle associated
with them. This has to be globally unique.
Deployment
The component model includes a specification of how
components should be packaged for deployment as
independent, executable entities.
19/11/2014 Chapter 16 Component-based software engineering 20
Middleware support
“is the photograph descriptor associated with the catalogue entry as well
as the photograph i.e. if I delete the photograph, do I also delete the
catalogue information?”
-- The context keyword names the component to which the conditions apply
context addItem
context delete