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

Slides:



Advertisements
Similar presentations
Software Requirements
Advertisements

© 2005 by Prentice Hall Appendix 3 Object-Oriented Analysis and Design Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George.
Chapter 7 System Models.
Chapter 14 Design with Reuse.
Chapter 8 Software Prototyping.
Chapter 27 Software Change.
1 Copyright © 2010, Elsevier Inc. All rights Reserved Fig 2.1 Chapter 2.
Service Oriented Architecture Reference Model
Introduction to Product Family Engineering. 11 Oct 2002 Ver 2.0 ©Copyright 2002 Vortex System Concepts 2 Product Family Engineering Overview Project Engineering.
Business Transaction Management Software for Application Coordination 1 Business Processes and Coordination.
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
Presented to: By: Date: Federal Aviation Administration Registry/Repository in a SOA Environment SOA Brown Bag #5 SWIM Team March 9, 2011.
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
0 - 0.
DIVIDING INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
Addition Facts
Making the System Operational
ZMQS ZMQS
Chapter 7 – Design and Implementation
BT Wholesale October Creating your own telephone network WHOLESALE CALLS LINE ASSOCIATED.
Configuration management
Software change management
Cost as a Business Driver 1 John Brown C Eng MIEE mr_ Software Cost Estimation.
Software testing.
Defect testing Objectives
Testing Workflow Purpose
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 31 Slide 1 Service-centric Software Engineering.
INTRODUCTION TO SIMULATION WITH OMNET++ José Daniel García Sánchez ARCOS Group – University Carlos III of Madrid.
การทดสอบโปรแกรม กระบวนการในการทดสอบ
IONA Technologies Position Paper Constraints and Capabilities for Web Services
Software Processes.
Database System Concepts and Architecture
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software processes 2.
Lecture 8: Testing, Verification and Validation
Lecture 6: Software Design (Part I)
Chapter 10 Software Testing
Chapter 11 Software Evolution
Global Analysis and Distributed Systems Software Architecture Lecture # 5-6.
Addition 1’s to 20.
25 seconds left…...
Week 1.
We will resume in: 25 Minutes.
Chapter 11 Component-Level Design
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 31 Slide 1 Service-centric Software Engineering 1.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Modeling Main issues: What do we want to build How do we write this down.
User Interface Design Main issues: What is the user interface How to design a user interface.
From Model-based to Model-driven Design of User Interfaces.
Main issues: • Why is reuse so difficult • How to realize reuse
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
- 1 - Component Based Development R&D SDM Theo Schouten.
Testing Components in the Context of a System CMSC 737 Fall 2006 Sharath Srinivas.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Component-Based Software Engineering and Software Assurance SSW-540, Unit 12.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
Chapter 2 The process Process, Methods, and Tools
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
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.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
1 Unified Modeling Language, Version 2.0 Chapter 2.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 32. Review Behavioral Patterns – Observer Pattern – Chain of command.
Chapter 8 – Software Testing
Distribution and components
Component Based Software Engineering
Component-Based Software Engineering
Presentation transcript:

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

SE, CBSE, Hans van Vliet, © LEGO analogy  Set of building blocks in different shapes and colors  Can be combined in different ways  Composition through small stubs in one and corresponding holes in another building block   LEGO blocks are generic and easily composable  LEGO can be combined with LEGO, not with Meccano

SE, CBSE, Hans van Vliet, © Why CBSE?  CBSE increases quality, especially evolvability and maintainability  CBSE increases productivity  CBSE shortens development time

SE, CBSE, Hans van Vliet, © Component model  Defines the types of building block, and the recipe for putting them together  More precisely, a component model defines standards for:  Properties individual components must satisfy  Methods and mechanisms for composing components  Consequently, a component has to conform to some component model

SE, CBSE, Hans van Vliet, © A software component:  Implements some functionality  Has explicit dependencies through provides and required interfaces  Communicates through its interfaces only  Has structure and behavior that conforms to a component model

SE, CBSE, Hans van Vliet, © A component technology  Is the implementation of a component model, by means of:  Standards and guidelines for the implementation and execution of software components  Executable software that supports the implementation, assembly, deployment, execution of components  Examples: EJB, COM+,.NET, CORBA

SE, CBSE, Hans van Vliet, © Component forms  Component goes through different stages: development, packaging, distribution, deployment, execution  Across these stages, components are represented in different forms:  During development: UML, e.g.  When packaging: in a.zip file, e.g.  In the execution stage: blocks of code and data

SE, CBSE, Hans van Vliet, © Characterization of component forms

SE, CBSE, Hans van Vliet, © Component forms in different stages

SE, CBSE, Hans van Vliet, © Component specification vs component interface  Specification describes properties to be realized: realization contract  Interface describes how components interact: usage contract  Different in scope as well: specification is about the component as a whole, while an interface might be about part of a component only

SE, CBSE, Hans van Vliet, © Hiding of component internals  Black box: only specification is known  Glass box: internals may be inspected, but not changed  Grey box: part of the internals may be inspected, limited modification is allowed  While box: component is open to inspection and modification

SE, CBSE, Hans van Vliet, © Managing quality in CBSE  Who manages the quality: the component, or the execution platform  Scope of management: per-collaboration, or system-wide

SE, CBSE, Hans van Vliet, © Quality management in CBSE

SE, CBSE, Hans van Vliet, © Managing quality in CBSE  Approach A: left to the designers (e.g. when integrating COTS components)  Approach B: model provides standardized facilities for managing qualities  Approach C: component only addresses functionality, quality in surrounding container  Approach D: similar to C, but container interacts with platform on quality issues

SE, CBSE, Hans van Vliet, © Common features of component models  Infrastructure mechanisms, for binding, execution, etc  Instantiation  Binding (design time, compile time, …)  Mechanisms for communication between components  Discovery of components  Announcement of component capabilities (interfaces)  Development support  Language independence  Platform independence  Analysis support  Support for upgrading and extension  Support for quality properties

SE, CBSE, Hans van Vliet, © Development process in CBSE  Two separate development processes:  Development of components  Development of systems out of components  Separate process to assess components

SE, CBSE, Hans van Vliet, © CBSE system development process  Requirements: also considers availability of components (like in COTS)  Analysis and design: very similar to what we normally do  Implementation: less coding, focus on selection of components, provision of glue code  Integration: largely automated  Testing: verification of components is necessary  Release: as in classical approaches  Maintenance: replace components

SE, CBSE, Hans van Vliet, © Component assessment  Find components  Verify components  Store components in repository

SE, CBSE, Hans van Vliet, © Component development process  Components are intended for reuse   Managing requirements is more difficult  More effort required to develop reusable components  More effort in documentation for consumers

SE, CBSE, Hans van Vliet, © Component development process  Requirements: combination of top-down (from system) and bottom-up (generality)  Analysis and design: generality is an issue, assumptions about system (use) must be made  Implementation: largely determined by component technology  Testing: extensive (no assumptions of usage!), and well-documented  Release: not only executables, also metadata

SE, CBSE, Hans van Vliet, © Component maintenance  Who is responsible: producer or consumer?  Blame analysis: relation between manifestation of a fault and its cause, e.g.  Component A requires more CPU time  As a consequence, B does not complete in time  As required by C, so  C issues a time-out error to its user  Analysis: goes from C to B to A to input of A  Who does the analysis, if producers of A,B,C are different?

SE, CBSE, Hans van Vliet, © Architecture and CBSE  Architecture-driven: top-down: components are identified as part of an architectural design  Product line: family of similar products, with 1 architecture  COTS-based: bottom-up, architecture is secondary to components found

SE, CBSE, Hans van Vliet, © Summary  To enable composition, components must be compatible: achieved by component model  Separation of development process for components from that of assembling systems out of components  Architectural plan organizes how components fit together and meet quality requirements