©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.

Slides:



Advertisements
Similar presentations
Chapter 14 Design with Reuse.
Advertisements

1 Note content copyright © 2004 Ian Sommerville. NU-specific content copyright © 2004 M. E. Kabay. All rights reserved. Component-Based Software Engineering.
Chapter 19 – Service-oriented Architecture
Chapter 17 Component-based software engineering
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 31 Slide 1 Service-centric Software Engineering 1.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Reuse SEII-Lecture 28
Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved ASU Open Course.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
Software Reuse Building software from reusable components Objectives
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 19 Slide 1 Component-based software engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
- 1 - Component Based Development R&D SDM Theo Schouten.
Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Reuse Reading: I. Sommerville, Chap. 20.
Building software from reusable components.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
Software Reuse Prof. Ian Sommerville
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved ASU Open Course.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 2.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Topic 6 Component-based software engineering
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Lecture 21 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Chapter 17 Component-based software engineering 1Chapter 17 Software reuse CS 425 November 20, 2014 Ian Sommerville, Software Engineering, 9 th Edition.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering.
SWE 316: Software Design and Architecture Objectives Lecture # 18 Introduction to Components SWE 316: Software Design and Architecture To learn:  benefits.
Component Oriented Programming 1 Introduction to COP.
©Ian Sommerville 2000 Software Engineering. Chapter 18Slide 1 Chapters 18/19 Software Reuse / CBSE.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Chapter 14 Design with Reuse.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
CBSE Component Based Software Engineering cs. upt
Chapter 16 - Component-based software engineering Chapter 16 Component-based software engineering119/11/2014.
Chapter 16 Component-based software engineering 1 CS 425 November 19, 2015 Ian Sommerville, Software Engineering, 10 th Edition Pearson Education, Addison-Wesley.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
©Ian Sommerville 2006MSc module: Advanced Software Engineering Slide 1 Component-based software engineering.
Component-based Software Engineering CBSE seminar, Oslo, 4 Feb Christian Bunse
Component-based software engineering (Sommervile chapter 17) 1Chapter 17 Software reuse.
Software Implementation Components and Services 1.
Chapter 17 - Component-based software engineering
Chapter 17 - Component-based software engineering
Component Based Software Engineering
Software Reuse Objectives
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Service-centric Software Engineering 1
Component-Based Software Engineering
Component--based development
Chapter 7 –Implementation Issues
Chapter 17 - Component-based software engineering
COMPONENT – BASED SOFTWARE ENGINEERING MODULE 2 – SECOND SEMESTER MKHIZE, BSC HONS COMPUTER SCIENCES, DIP IT, ICDL.
Presentation transcript:

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 2 Objectives l To explain that CBSE is concerned with developing standardised components and composing these into applications l To describe components and component models l To show the principal activities in the CBSE process l To discuss approaches to component composition and problems that may arise

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 3 Component-based development l Component-based software engineering (CBSE) is an approach to software development that relies on software reuse. l It emerged from the failure of object-oriented development to support effective reuse. Single object classes are too detailed and specific. l Components are more abstract than object classes and can be considered to be stand- alone service providers.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 4 CBSE essentials l Independent components specified by their interfaces. l Component standards to facilitate component integration. l Middleware that provides support for component inter-operability. l A development process that is geared to reuse.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 5 CBSE problems l Component trustworthiness - how can a component with no available source code be trusted? l Component certification - who will certify the quality of components? l Emergent property prediction - how can the emergent properties of component compositions be predicted? l Requirements trade-offs - how do we do trade-off analysis between the features of one component and another?

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 6 Components l 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;

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 7 Component definitions l 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. l 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.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 8 Component as a service provider l The component is an independent, executable entity. It does not have to be compiled before it is used with other components. l The services offered by a component are made available through an interface and all component interactions take place through that interface.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 9 Component characteristics 1

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 10 Component characteristics 2

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 11 Component interfaces l Provides interface Defines the services that are provided by the component to other components. l Requires interface Defines the services that specifies what services must be made available for the component to execute as specified.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 12 Component interfaces

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 13 A data collector component

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 14 Components and objects l Components are deployable entities. l Components do not define types. l Component implementations are opaque. l Components are language-independent. l Components are standardised.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 15 Component models l A component model is a definition of standards for component implementation, documentation and deployment. l Examples of component models EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model l The component model specifies how interfaces should be defined and the elements that should be included in an interface definition.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 16 Elements of a component model

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 17 Middleware support l Component models are the basis for middleware that provides support for executing components. l Component model implementations provide: Platform services that allow components written according to the model to communicate; Horizontal services that are application-independent services used by different components. l To use services provided by a model, components are deployed in a container. This is a set of interfaces used to access the service implementations.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 18 Component model services

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 19 Component development for reuse l Components developed for a specific application usually have to be generalised to make them reusable. l A component is most likely to be reusable if it associated with a stable domain abstraction (business object). l For example, in a hospital stable domain abstractions are associated with the fundamental purpose - nurses, patients, treatments, etc.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 20 Component development for reuse l Components for reuse may be specially constructed by generalising existing components. l Component reusability Should reflect stable domain abstractions; Should hide state representation; Should be as independent as possible; Should publish exceptions through the component interface. l There is a trade-off between reusability and usability The more general the interface, the greater the reusability but it is then more complex and hence less usable.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 21 Changes for reusability l Remove application-specific methods. l Change names to make them general. l Add methods to broaden coverage. l Make exception handling consistent. l Add a configuration interface for component adaptation. l Integrate required components to reduce dependencies.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 22 Legacy system components l Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse. l This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system. l Although costly, this can be much less expensive than rewriting the legacy system.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 23 Reusable components l The development cost of reusable components may be higher than the cost of specific equivalents. This extra reusability enhancement cost should be an organization rather than a project cost. l Generic components may be less space-efficient and may have longer execution times than their specific equivalents.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 24 Key points l CBSE is a reuse-based approach to defining and implementing loosely coupled components into systems. l A component is a software unit whose functionality and dependencies are completely defined by its interfaces. l A component model defines a set of standards that component providers and composers should follow. l During the CBSE process, the processes of requirements engineering and system design are interleaved.