COMPONENT-BASED SOFTWARE ENGINEERING

Slides:



Advertisements
Similar presentations
Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Advertisements

Software Reuse and Component-Based Software Engineering
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Multimedia Specification Design and Production 2013 / Semester 1 / week 7 Lecturer: Dr. Nikos Gazepidis
Chapter 4 Quality Assurance in Context
P RESENTATION ON C OMPONENT B ASED S OFTWARE E NGINEERING Presented by: Richard Akono Burak Çamdereli Yousef Al Sharma Volkan Ozdamar Eastern Mediterranean.
Basic Concepts in Component-Based Software Engineering
Page 1 Building Reliable Component-based Systems Chapter 16 - Component based embedded systems Chapter 16 Component based embedded systems.
Software Reuse Building software from reusable components Objectives
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 19 Slide 1 Component-based software engineering.
Component-Based Development Process
- 1 - Component Based Development R&D SDM Theo Schouten.
Component-Based Software Development Jacob Fetner.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Testing Components in the Context of a System CMSC 737 Fall 2006 Sharath Srinivas.
Introduction to Software Testing
Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University URL:
 1. Introduction  2. Development Life-Cycle  3. Current Component Technologies  4. Component Quality Assurance  5. Advantages and Disadvantages.
Dr. Eman M. Saleh Al-Maghary
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
CSE 303 – Software Design and Architecture
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
Software Component Technology and Component Tracing CSC532 Presentation Developed & Presented by Feifei Xu.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Ch:10 Component Level Design Unit 4. What is Component? A component is a modular building block for computer software Because components reside within.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Software Measurement & Metrics
Component-Based Software Engineering X LIU, School of Computing, Napier University TIP This chapter will present a complete picture of how to develop software.
Chapter :11 Component-Level Design
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
21-22 May 2004IMPROQ 2004 / Impact of SW Processes on Quality Workshop 1 Quality for Components: Component and Component- Based Software Quality Issues.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Component-Based Software Engineering(CBSE) Xingui Tang CS532, Fall /6/2015.
Component Oriented Programming 1 Introduction to COP.
Chapter 3: Software Project Management Metrics
Basic Concepts of Component- Based Software Development (CBSD) Model-Based Programming and Verification.
CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Software Development Life Cycle (SDLC)
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
 Many models have been proposed to deal with the problems of defining activities and associating them with each other  The first model proposed was the.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Lecture 21: Component-Based Software Engineering
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Component-based Software Engineering CBSE seminar, Oslo, 4 Feb Christian Bunse
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Tempus Software Maintenance and Evolution JMSE-SM&E Unit 4: Software Reuse (Building Software From Reusable Components) Prof. Mohammad A. Mikki Gaza, Palestine,
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
System Architecture CS 560. Project Design The requirements describe the function of a system as seen by the client. The software team must design a system.
Software Engineering Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
COMPONENT BASED SOFTWARE ENGINEERING
Software Project Configuration Management
Lecture 3 Prescriptive Process Models
Modern Systems Analysis and Design Third Edition
Chapter 17 - Component-based software engineering
Component Based Software Engineering
Object oriented system development life cycle
Component Based Software Engineering
Introduction Software is becoming very expensive:
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Component-Based Software Engineering
Quality Assurance for Component-Based Software Development
Component Based Software Engineering (CBSE)
Chapter 17 - Component-based software engineering
Presentation transcript:

COMPONENT-BASED SOFTWARE ENGINEERING SANDEEP DASARI

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

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.

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.

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.

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.

The CBSE Process

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.

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

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.

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

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.

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.

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.

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.

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.

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.

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.

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

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

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.