LECTURE 1 Introduction To CBSE
LECTURE 1 Introduction To CBSE
1
Component-based development
3
CBSE and design principles
4
Component standards
5
CBSE problems
6
Components
7
Component definitions
Szyperski:
▪ A software component is a unit of composition with
contractually specified interfaces and explicit context
dependencies only. A software component can be deployed
independently and is subject to composition by third-parties.
8
Component characteristics
Component Description
characteristic
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.
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.
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.
9
Component Description
characteristic
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.
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.
10
Component as a service provider
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.
12