0% found this document useful (0 votes)
4 views

LECTURE 1 Introduction To CBSE

H lol okie job j

Uploaded by

asiagoarnold
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

LECTURE 1 Introduction To CBSE

H lol okie job j

Uploaded by

asiagoarnold
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

COMPONENT-BASED SOFTWARE ENGINEERING

Software is a fundamental part of modern computing and


technology, playing a crucial role in various aspects of our
daily lives and businesses.
Software engineering is a discipline within computer
science that focuses on designing, building, testing, and
maintaining software systems and applications. It
encompasses a structured and systematic approach to
software development, with the goal of producing high
quality, reliable, and efficient software that meets the
needs of users or clients.

1
Component-based development

 Component-based software engineering (CBSE) is an


approach to software development that relies on the
reuse of entities called ‘software components’.
 It emerged from the failure of object-oriented
development to support effective reuse. Single object
classes are too detailed and specific.
 Components are more abstract than object classes and
can be considered to be stand-alone service providers.
They can exist as stand-alone entities.
2
CBSE essentials

 Independent components specified by their interfaces.


 Component standards to facilitate component
integration.
 Middleware that provides support for component
interoperability.
 A development process that is geared to reuse.

3
CBSE and design principles

 Apart from the benefits of reuse, CBSE is based on


sound software engineering design principles:
▪ Components are independent so do not interfere with each other;
▪ Component implementations are hidden;
▪ Communication is through well-defined interfaces;
▪ Component platforms are shared and reduce development
costs.

4
Component standards

 Standards need to be established so that components


can communicate with each other and inter-operate.
 Unfortunately, several competing component standards
were established:
▪ Sun’s Enterprise Java Beans
▪ Microsoft’s COM and .NET
▪ CORBA’s CCM
 In practice, these multiple standards have hindered the
uptake of CBSE. It is impossible for components
developed using different approaches to work together.

5
CBSE problems

 Component trustworthiness - how can a component with


no available source code be trusted?
 Component certification - who will certify the quality of
components?
 Emergent property prediction - how can the emergent
properties of component compositions be predicted?
 Requirements trade-offs - how do we do trade-off
analysis between the features of one component and
another?

6
Components

 Components provide a service without regard to where


the component is executing or its programming
language
▪ A component is an independent executable entity that can be
made up of one or more executable objects;
▪ The component interface is published and all interactions are
through the published interface;

7
Component definitions

Councill and Heinmann:

▪ A software component is a software element that conforms to a


component model and can be independently deployed and
composed without modification according to a composition
standard.

 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

 The component is an independent, executable entity. It


does not have to be compiled before it is used with other
components.
 The services offered by a component are made available
through an interface and all component interactions take
place through that interface.
 The component interface is expressed in terms of
parameterized operations and its internal state is never
exposed.
11
Component interfaces

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

You might also like