Component Based Development

Slides:



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

COM vs. CORBA.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
Software Reuse SEII-Lecture 28
Component-Based Software Development: Technologies, Quality Assurance Schemes, and Risk Analysis Tools Cai Xia Supervisor: Prof. Michael R. Lyu Markers:
Jordan - Amman Tel: Fax: P.O.Box : 166 Copyright © 2011 Applied Science University. All Rights Reserved ASU Open Course.
Seminarium on Component-based Software Engineering Jan Willem Klinkenberg CORBA.
COP th Lecture September 26, 2005 COP 4009 Component-Based Software Engineering Fall 2005 Instructor: Masoud Sadjadi
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 19 Slide 1 Component-based software engineering.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
- 1 - Component Based Development R&D SDM Theo Schouten.
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.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University URL:
QoS-enabled middleware by Saltanat Mashirova. Distributed applications Distributed applications have distinctly different characteristics than conventional.
 1. Introduction  2. Development Life-Cycle  3. Current Component Technologies  4. Component Quality Assurance  5. Advantages and Disadvantages.
COMPONENT-BASED SOFTWARE ENGINEERING
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
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
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
An Introduction to Software 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 Architecture (CORBA – RMI) -Shalini Pradhan.
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Chapter :11 Component-Level Design
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
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.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
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.
©Ian Sommerville 2000 Software Engineering. Chapter 18Slide 1 Chapters 18/19 Software Reuse / CBSE.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
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.
CBSE Component Based Software Engineering cs. upt
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.
Chapter 14 컴포넌트-수준 설계 Component-Level Design
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.
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
©Ian Sommerville 2007COTS-based System Engineering Slide 1 COTS-based System Engineering.
Component-based software engineering (Sommervile chapter 17) 1Chapter 17 Software reuse.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.1.
Chapter 17 - Component-based software engineering
Chapter 14 Component-Level Design
Chapter 17 - Component-based software engineering
Component-Level Design
Component Based Software Engineering
Ch > 28.4.
Chapter 10 Component-Level Design
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Component-Based Software Engineering
Inventory of Distributed Computing Concepts
Component--based development
Quality Assurance for Component-Based Software Development
Chapter 17 - Component-based software engineering
Presentation transcript:

Component Based Development R&D SDM 1 2010 Theo Schouten

Content Component Based Development, what is it Engineering of Component Based Software Development Domain Engineering Component Based Development Standard Software packages book chapter 30 Component-Based Software Engineering 7th ch 10 Component level design

Elements of CBD Reuse of software components Buy, don’t develop ‘Commercial off-the-shelf’ (COTS) Shift of attention: From programming to composing From design to selection Speed of development Cost efficient

History functions (subroutine) in first “high level” programming languages, provided reuse in libraries LINPACK, EISPACK (1970’s), LAPACK (1992-now) Object Oriented languages reuse of classes and sets thereof 1968 Douglas McIlroy “Mass Produced Software Components” leaded to pipes and filters in Unix 1986 Brad Cox Objective-C strict superset of C with Smalltalk-style messaging Steve Job, NEXT, Mac OS X, Cocoa API became very popular last year (see TIOBE)

Origin CBD (or CBSE) Component-based software engineering (CBSE) is a general approach to software development that is based on software reuse. 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.

Definitions ‘Component Based Software Engineering (CBSE) is changing the way software systems are developed. CBSE embodies the ‘buy, don’t build’ philosophy…… CBSE shifts the emphasis from programming software to composing software systems. Implementation has given way to integration as the focus. At its foundation is the assumption that there is sufficient commonality in many large software systems to justify developing reusable components to exploit and satisfy that commonality’ Clements 1995

What is a Component? OMG Unified Modeling Language Specification [OMG01] defines a component as “… a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces.”” OO view: a component contains a set of collaborating classes Conventional view: a component contains processing logic, the internal data structures that are required to implement the processing logic, and an interface that enables the component to be invoked and data to be passed to it.

CBSE essentials Independent components specified by their interfaces. Component standards to facilitate component integration. Middleware that provides support for component interoperability. A development process that is geared to reuse.

Design principles Components are independent, no interference Component implementations are hidden Communication is through well-defined interfaces Container: service provider for locating and getting component interface Container Component Implementation Interface

Component models A component model is a definition of standards for component implementation, documentation and deployment. Examples of component models EJB model (Enterprise Java Beans) COM+ model (.NET model) OMG Corba Component Model The component model specifies how interfaces should be defined and the elements that should be included in an interface definition.

OMG/ CORBA The Object Management Group has published a common object request broker architecture (OMG/CORBA). An object request broker (ORB) provides services that enable reusable components (objects) to communicate with other components, regardless of their location within a system. Integration of CORBA components (without modification) within a system is assured if an interface definition language (IDL) interface is created for every component. Objects within the client application request one or more services from the ORB server. Requests are made via an IDL or dynamically at run time. An interface repository contains all necessary information about the service’s request and response formats.

Sun JavaBeans The JavaBeans component system is a portable, platform independent CBSE infrastructure developed using Java It encompasses a set of tools, called the Bean Development Kit (BDK), that allows developers to analyze how existing Beans (components) work customize their behavior and appearance establish mechanisms for coordination and communication develop custom Beans for use in a specific application test and evaluate Bean behavior.

Microsoft COM The component object model (COM) provides a specification for using components produced by various vendors within a single application running under the Windows operating system. COM encompasses two elements: COM interfaces (implemented as COM objects) a set of mechanisms for registering and passing messages between COM interfaces.

Decision place in classical development Phase 1 Definition Phase 2 Design Phase 3 Realize Phase 4 Implement Phases Questions: Is COTS available to fulfill the requirements ? Are internally developed modules suitable? Are the interfaces of the components compatible with the architecture? Steps No Vaststellen Systeem Behoeften Definitie studie Requirements Analysis Functioneel Ontwerp Functionele Specificatie Haalbaarheids- studie Haalbaarheids Rapport Technisch Ontwerp Technische Specificatie Yes Component Based Development Documents

Engineering of CBS This should fill in the following aspects: Identifying the components which are candidates for implementation Qualifying the interfaces of the components Adapting of the components to the architecture Updating of the components due to changes in the requirements. CBSE Process: Domain Engineering: Library Function Component Based Development: Implementation Function Make a formal difference between maintaining the ‘standard’ components and the implemented components. For updates the standard components are leading!

CBSE Analysis Construction Dissemination Domain Engineering Software Architecture Development ReUsable Component Model Structural Library Repository Components Component Based Development Analysis Architecture Design Component Composition Update Adaptation Qualification Engineering Testing Application Software Implementation

Domain Engineering identify, construct, catalog and disseminate a set of software components that can be applied to existing and future software for a particular domain Most important functions: Analysis, Construction and Dissemination

Domain Engineering Analysis Define the domain to be investigated Representative sample of applications in the domain business rules, best practices Develop a model for the domain

Domain Engineering Construction Selection of function or object Reuse?: Is the functionality needed for future implementations? What is the degree of reusability (commonality)? Is there a duplication of the functions in the domain? Is the component hardware dependent? Is the design optimal for future implementations? Can a non-reusable component be re-parameterized such that it becomes reusable? Is it useful to decompose or re-parameterize a component for reuse? construct a structural model

Domain Engineering: Dissemination Library of components characterization for possible reuse looking to various aspects for it Product/Technology Requirements Stability Concurrent Software Memory Constraints Application Size User Interface Complexity Programming Languages Safety/Reliability Lifetime Requirements Product Quality Product Reliability Process Process Model Process Conformance Project Environment Schedule Constraints Budget Constraints Productivity People Motivation Education Experience/Training Application domain Process Platform Language Development Team Productivity

Component Based Development Analysis of the particular application referring to the domain model Architectural design referring to the structural model Component qualification, adaption, composition possible engineer another component testing

Component qualification can a selected component effectively be reused? its interface development and integration tools required runtime requirements : resources, speed, network protocol services requirements like OS interfaces and support of other components security features like access control and authentication protocols

Component adaption Assure that the component integrates easily in the architecture: consistent methods for resource management for all components; common activities for e.g. data management for all components; interfaces between components and the outside world have been developed in a consistent way. use component wrapping or custom component?

Component composition assembling of qualified, adapted or engineered components Common architecture environment, elements: Data Exchange model: human-to-software, between components, among system resources Automation, tools macro’s and scripts Structured Storage, accessing heterogeneous data in a single data structure Underlying Object Model, assures interoperability

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?

Ariane launcher failure In 1996, the 1st test flight of the Ariane 5 rocket ended in disaster when the launcher went out of control 37 seconds after take off. The problem was due to a reused component from a previous version of the launcher (the Inertial Navigation System) that failed because assumptions made when that component was developed did not hold for Ariane 5. The functionality that failed in this component was not required in Ariane 5.

Standard packages SAP, Oracle, Peoplesoft, etc. developed for specific business processes; Strong development in the last years (shift from custom made to standard packages); ‘Enabler’ of working in a process way (BPR); ‘Best practice’ business processes build in; Started in the ERP environment (‘Enterprise Resource Planning’) = primary business processes, extended to many other environments large changes in methodology for implementation of software systems.

Final remarks CBSE and standard packages change an implementation from ‘programming to composing’ and from ‘design to select’; Integration of modules in existing architectures becomes more and more important: interfaces; Custom made around the standard applications cq. modules becomes complex and has to be integrated; Aspects with relation to what is leading, my ‘requirement’ or the ‘package’ become important issues; Management and ‘human factors’ stay the most important aspects for the success of a implementation.