1 / 21

COMPONENT-BASED SOFTWARE ENGINEERING

COMPONENT-BASED SOFTWARE ENGINEERING. SANDEEP DASARI. What is Component-Based software engineering. CBSE is a process for developing computer systems using reusable software components.

betty_james
Download Presentation

COMPONENT-BASED SOFTWARE ENGINEERING

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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.

More Related