Presentation is loading. Please wait.

Presentation is loading. Please wait.

COMPONENT-BASED SOFTWARE ENGINEERING

Similar presentations


Presentation on theme: "COMPONENT-BASED SOFTWARE ENGINEERING"— Presentation transcript:

1 COMPONENT-BASED SOFTWARE ENGINEERING
SANDEEP DASARI

2 What is Component-Based software engineering
CBSE 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

3 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.

4 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.

5 Categories of components
Adapted 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.

6 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.

7 The CBSE Process

8 Domain Engineering The 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.

9 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

10 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.

11 Component Based Development
This process basically consists of three main stages namely qualification, adaptation and composition

12 Component Qualification
Component 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.

13 Component Adaption Most 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.

14 Wrapping White-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.

15 Wrapping Grey-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.

16 Component Composition
Architectural 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.

17 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.

18 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.

19 Cost The major expense is for the following
Commercial of-the-shelf components The creation and maintenance of reuse repository Training of personnel in reuse and creation of components

20 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

21 Reuse measure The 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.


Download ppt "COMPONENT-BASED SOFTWARE ENGINEERING"

Similar presentations


Ads by Google