Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1."— Presentation transcript:

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

2 ©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

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

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

5 ©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?

6 ©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;

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

8 ©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.

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

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

11 ©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.

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

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

14 ©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.

15 ©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.

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

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

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

19 ©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.

20 ©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.

21 ©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.

22 ©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.

23 ©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.

24 ©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.


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

Similar presentations


Ads by Google