Jordan - Amman Tel:5609999 Fax:5232899 P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved ASU Open Course.

Slides:



Advertisements
Similar presentations
1 Note content copyright © 2004 Ian Sommerville. NU-specific content copyright © 2004 M. E. Kabay. All rights reserved. Component-Based Software Engineering.
Advertisements

Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Chapter 17 Component-based software engineering
Software Architectural Design Software Components Instructor Dr. Lawrence Chung.
Figures – Chapter 17. Figure 17.1 Component characteristics Component characteristic Description StandardizedComponent standardization means that a component.
Basic Concepts in Component-Based Software Engineering
COP th Lecture September 26, 2005 COP 4009 Component-Based Software Engineering Fall 2005 Instructor: Masoud Sadjadi
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 19 Slide 1 Component-based software engineering.
- 1 - Component Based Development R&D SDM Theo Schouten.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Building software from reusable components.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Component-Based Software Engineering Dr R Bahsoon 1 Lecture 1. Introduction Component-Based Software Dr. Rami Bahsoon School of Computer Science The University.
Dr. Eman M. Saleh Al-Maghary
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
©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.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 2.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
Topic 6 Component-based software engineering
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
CSE 303 – Software Design and Architecture
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
©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.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.
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.
CSC 532 Term Paper Presentation Hybrid approach to component based Engineering  Introduction.  Component based development (CBD).  Pros and Cons of.
Component Oriented Programming 1 Introduction to COP.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Part VII: Design Continuous
Basic Concepts of Component- Based Software Development (CBSD) Model-Based Programming and Verification.
©Ian Sommerville 2000 Software Engineering. Chapter 18Slide 1 Chapters 18/19 Software Reuse / CBSE.
OBJECT ORIENTED AND FUNCTION ORIENTED DESIGN 1 Chapter 6.
Component Based Software Engineering Master of Software Engineering + Master of Information Technology 2010/2011 Conf.dr.ing. Ioana ora
Notes from Coulouris 5Ed Distributed Systems Notes on Components.
CBSE Component Based Software Engineering cs. upt
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 32. Review Behavioral Patterns – Observer Pattern – Chain of command.
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.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Introduction to business component technologies. Component definitions Szyperski: A software component is a unit of composition with contractually specified.
Lecture 21: Component-Based Software Engineering
©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.
Component Based Software Engineering Master of Software Engineering + Master of Information Technology 2010/2011 Conf.dr.ing. Ioana ora
Software Implementation Components and Services 1.
Chapter 17 - Component-based software engineering
Chapter 17 - Component-based software engineering
Distribution and components
Component Based Software Engineering
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Component-Based Software Engineering
Component--based development
ISpec: A Compositional Approach to Interface Specification
Quality Assurance for Component-Based Software Development
Chapter 17 - Component-based software engineering
COMPONENT – BASED SOFTWARE ENGINEERING MODULE 2 – SECOND SEMESTER MKHIZE, BSC HONS COMPUTER SCIENCES, DIP IT, ICDL.
Presentation transcript:

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved ASU Open Course System Jordan - Amman Tel: Fax: P.O.Box : 166 Component-Based Software Engineering Basic Concepts Dr. Eman M. Saleh Al-Maghary – Ext SE Department Faculty of Information Technology –

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Component-Based Software Engineering Prerequisite: Course Description Text Books: “Building Reliable Component Based Software Systems, Ivica Crnkovic and Magnus Larsson, Artech House, 2002.“Building Reliable Component Based Software Systems, Ivica Crnkovic and Magnus Larsson, Artech House, “Software Engineering, Ian Sommerville, 9 th Ed., 2012.“Software Engineering, Ian Sommerville, 9 th Ed., 2012.

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Lecture Contents Introduction Goals and advantages of CBSE Essentials of CBSE Components definition and charactestics 3

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Introduction What is this course about ? –A journey in searching for the “holy grail” of software “integrated circuits”

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Introduction What is this course about ? –A journey in searching for the “holy grail” of software “integrated circuits”

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Component-Based Software Engineering Component-based software engineering (CBSE) is an approach to software development that relies on the reuse of entities called ‘software components’. 6Chapter 17 Software reuse

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Component-Based Software Engineering Component-based software engineering (CBSE) is The process of defining, implementing and integrating (or composing) loosely coupled, independent components into systems. 7Chapter 17 Software reuse

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved It emerged from the failure of object- oriented development to support effective reuse. Single object classes are too detailed and specific. Components are more abstract than object classes and can be considered to be stand-alone service providers. They can exist as stand-alone entities. 8Chapter 17 Software reuse Component-Based Software Engineering

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved 9 CBSE (Component-Based Software Engineering) Definition Component-based software engineering (CBSE) is a branch of software engineering, the priority of which is the separation of concerns in respect of the wide-ranging functionality available throughout a given software system Developing new software from pre-built components. Attempt to make an association between SE and other engineering disciplines. It emerged from the failure of object-oriented development to support effective reuse.

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved 10 Reuse via Components Catalogue of software components Customer requirements Software application Component Providers Component integrator

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved 11 Why CBSE Software systems contain many similar or even identical components that are developed from scratch over and over again has led to reuse existing components (reusability- lower cost) Structuring a system into largely independent components make it easy to distribute the components among various engineers to allow parallel development (easier management - Work breakdown in PM) Maintenance: Lower cost of maintenance, easier to replace and upgrade Better quality and efficiency (next few slides) Support distributed systems (next few slides) Time-to-mark (next few slides)

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Goals of CBSE 1: Software construction Application Software construction vs. creation: application is developed as an assembly of “integrated circuits”

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Goals of CBSE 2: Reuse C1 Application 1 Application 2 Software “integrated circuits” are reusable entities It pays off to have as many applications that reuse an entity

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Goals of CBSE 3: Maintenance & Evolution C1 Application C1new update Maintenance and upgrading can be done by replacing parts, maybe even at runtime

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved 15 Improve Quality: Idea: Assuming that a collection of high- quality components is available, assembling these should yield systems of high-quality. 1.The cost of establishing the high quality of components is amortized over multiple use. 2.Multiple use of a component increases the likelihood of finding and removing errors.

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved 16 Time-to-market If the reuse of a component requires less time than the development of a component, systems can be built faster.

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved 17 Support Distributed system A computer running several software components is often called an application server. Using this combination of application servers and software components is usually called distributed computing. The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example, purchasing, sales, HR management ).

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved 18 Integration of heterogeneous sources: –operating systems –programming language –network protocol –data representation

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved 19 Components should provide services to clients running locally or remotely Remote CLIENTS EJB Container EJB Remote CLIENTS Remote CLIENTS Local CLIENTS

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved CBSE essentials Independent components specified by their interfaces. Component standards to facilitate component integration. Middleware that provides support for component inter-operability. A development process that is geared to CBSE. 20 Chapter 17 sommerville

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved CBSE and design principles Apart from the benefits of reuse, CBSE is based on sound software engineering design principles: –Components are independent so do not interfere with each other; –Component implementations are hidden; –Communication is through well-defined interfaces; –Component platforms are shared and reduce development costs. 21 Chapter 17 Software reuse

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Components 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; 22Chapter 17 Software reuse

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Component definitions 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. 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. 23

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Component Definition (Szyperski)

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Component Definition (Szyperski)

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Component Definition (Szyperski)

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Component Definition (Szyperski) What is independent deployment? –no dependencies on peer-components –never partially deployed

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Component characteristics Component characteristic Description StandardizedComponent standardization means that a component used in a CBSE process has to conform to a standard component model. This model may define component interfaces, component metadata, documentation, composition, and deployment. IndependentA component should be independent—it should be possible to compose and deploy it without having to use other specific components. In situations where the component needs externally provided services, these should be explicitly set out in a ‘requires’ interface specification. ComposableFor a component to be composable, all external interactions must take place through publicly defined interfaces. In addition, it must provide external access to information about itself, such as its methods and attributes. 28Chapter 17 Software reuse

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Component characteristics Component characteristic Description DeployableTo be deployable, a component has to be self-contained. It must be able to operate as a stand-alone entity on a component platform that provides an implementation of the component model. This usually means that the component is binary and does not have to be compiled before it is deployed. If a component is implemented as a service, it does not have to be deployed by a user of a component. Rather, it is deployed by the service provider. DocumentedComponents have to be fully documented so that potential users can decide whether or not the components meet their needs. The syntax and, ideally, the semantics of all component interfaces should be specified. 29 Chapter 17 Software reuse

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Component (Models) standards Standards need to be established so that components can communicate with each other and inter-operate. Unfortunately, several competing component standards were established: –Sun’s Enterprise Java Beans –Microsoft’s COM and.NET –CORBA’s CCM In practice, these multiple standards have hindered the uptake of CBSE. It is impossible for components developed using different approaches to work together. 30 Chapter 17 Software reuse

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved CBSE problems Component trustworthiness - how can a component with no available source code be trusted? Component certification - who will certify the quality of components? Emergent property prediction - how can the emergent properties of component compositions be predicted? Requirements trade-offs - how do we do trade-off analysis between the features of one component and another? Higher initial cost to build (making it more general, more testing, etc 31 Chapter 17 Sommerville

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Component as a service provider The component is an independent, executable entity. It does not have to be compiled before it is used with other components. The services offered by a component are made available through an interface and all component interactions take place through that interface. The component interface is expressed in terms of parameterized operations and its internal state is never exposed. 32 Sommerville,Chapter 17

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Component interfaces Provides interface –Defines the services that are provided by the component to other components. Requires interface –Specifies what services must be made available for the component to execute as specified. 33

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved Component interfaces Note UML notation. Ball and sockets can fit together. 34

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved A model of a data collector component 35

Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights ReservedContracts A more accurate specification of a component's behavior can be achieved through contracts. A contract is comprised of: – The Invariant, the global constraints which the component will maintain; – The Pre-condition, the constraints which need to be met by the client; – The Post-condition, the constraints which the component promises to establish in return. A contract specifies the interactions among components, in terms of: – The set of participating components; – The role of each component through its contractual obligations, such as type and casual obligations; – The invariant to be maintained by the components; – The specification of the methods which instantiate the contract.