COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

21
COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI

Transcript of COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

Page 1: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

COMPONENT-BASED SOFTWARE ENGINEERING

SANDEEP DASARI

Page 2: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

What is Component-Based software engineeringCBSE is a process for developing computer

systems using reusable software components.

It is concerned with assembling of pre-existing software components into larger pieces of software

Page 3: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

Component

A software component is an independently deployable implementation of some functionality, to be reused as it is in a broad spectrum of applications.

For a software component what it provides and requires should be clearly stated so that it can be used without any ambiguity.

Page 4: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

Categories Of Components

Commercial of-the-shelf components- readily available in the market.

Qualified components—assessed by software engineers to ensure that not only functionality, but also performance, reliability, usability, and other quality factors conform to the requirements of the system/product to be built.

Page 5: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

Categories of componentsAdapted components—adapted to modify

(wrapping) unwanted or undesired characteristics.

Assembled components—integrated into an architectural style and interconnected with an appropriate component infrastructure that allows the components to be coordinated and managed effectively.

Updated components—replacing existing software as new versions of components become available.

Page 6: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

The CBSE Process• The CBSE process includes to identify candidate

components, to qualify each component’s interface, to adapt components to remove architectural mismatches, to assembly components into a selected architectural style, and to update components as requirements for the system change.

• The process model for component-based software engineering emphasizes parallel tracks in which domain engineering occurs concurrently with component-based development.

Page 7: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

The CBSE ProcessDomain Engineering

Component-BasedDevelopment

DomainAnalysis

TestingComponentEngineering

ArchitecturalDesignAnalysis

ReusableComponent

Development

SoftwareArchitectureDevelopment

DomainModel

StructuralModel

ComponentQualification

ComponentAdaptation

ComponentComposition

ComponentUpdate

RepositoryReusableArtifacts/

Components

ApplicationSoftware

Page 8: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

Domain EngineeringThe idea of domain engineering is to identify,

construct, catalogue and disseminate a set of software components that have applicability in existing and in the future software application.

The overall goal is to identify the common properties between various software systems and develop components so that they can be reused in various systems accordingly.

Page 9: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

Domain Engineering

It begins by identifying the domain to be analyzed.

This model guides the developer to identify and categorize the components which are later implemented in the domain

Page 10: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

Domain characteristics

A domain characteristic is something that is shared by all the components that are present in the given domain.

With the help of these domain characteristics it is easier to identify the components that can be used.

Page 11: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

Component Based DevelopmentThis process basically consists of three main

stages namely

qualification, adaptation and composition

Page 12: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

Component QualificationComponent qualification ensures that a

candidate component will perform the function required, will properly fit into the architectural style

specified for the system, and will exhibit the quality characteristics (e.g.,

performance, reliability, usability) required for the application.

Page 13: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

Component AdaptionMost of the times even after the component

has been qualified for use in the architecture it exhibits some conflicts.

To soothe these conflicts certain techniques such as component wrapping is used.

Page 14: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

WrappingWhite-Box wrapping – this wrapping involves

code level modifications in the components to avoid conflicts.

This is not widely used because the

COTS products are not provided with the source code.

Page 15: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

WrappingGrey-Box wrapping- applied when the

component library provides a component extension language or API that enables conflicts to be removed.

Black-box wrapping - introduction of pre- and post-processing at the component interface to remove or mask conflicts.

Page 16: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

Component CompositionArchitectural style depends the connection

between various components and their relationships

The design of the software system should be In such a way that most of the components are replaceable or can be reused in other systems.

Page 17: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

Quality

Ideally the components for reuse would be verified and defect-free

As the component is reused in many software systems any defect if there would be detected and corrected. So after a couple of reuses the component will have no defects.

Page 18: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

Productivity

Productivity is increased as every time the code need not be re-written from the scratch.

The time taken to design and write the code also decreases with the use of software components.

Page 19: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

CostThe major expense is for the following

Commercial of-the-shelf componentsThe creation and maintenance of reuse

repositoryTraining of personnel in reuse and creation of

components

Page 20: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

Reuse measure

The benefit associated with the reuse of components in a system t is given by

R(t) = [Cnoreuse – Creuse]/ Cnoreuse

where Cnoreuse = cost of developing S with no reuse

and Creuse = cost of developing S with reuse

Page 21: COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI.

Reuse measureThe value of R(t) is dependent on the number

of components that can be reused within the given system.

The value of R(t) can be varied by changing the architectural design.

Hence the cost of development is dependent on the effectiveness of the architectural design.