Component-Based Development Silvio Romero de Lemos Meira Eduardo Santana de Almeida

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
COM vs. CORBA.
Domain Engineering Silvio Romero de Lemos Meira
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
What iS RMI? Remote Method Invocation. It is an approach where a method on a remote machine invokes another method on another machine to perform some computation.
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.
Basic Concepts in Component-Based Software Engineering
COP th Lecture September 26, 2005 COP 4009 Component-Based Software Engineering Fall 2005 Instructor: Masoud Sadjadi
Object-Oriented Analysis and Design
Component-based Software Engineering Marcello Bonsangue LIACS – Leiden University Fall 2005 Component Model Comparison.
Introduction to Enterprise JavaBeans. Integrating Software Development Server-side Component Model Distributed Object Architecture –CORBA –DCOM –Java.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Eduardo Santana de Almeida Aspects of scale and granularity.
Component Based Systems Analysis Introduction. Why Components? t Development alternatives: –In-house software –Standard packages –Components 60% of the.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Component Technology objects versus components -- definitions interoperability.
12-1 © Prentice Hall, 2004 Chapter 12: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
Configuration Management
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:
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Component Software: A New Software Engineering Course H. Conrad Cunningham, Yi Liu, Pallavi Tadepalli, and Mingxian Fu Software Architecture Research Group.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
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.
11 1 Object oriented DB (not in book) Database Systems: Design, Implementation, & Management, 6 th Edition, Rob & Coronel Learning objectives: What.
Jaeki Song ISQS6337 JAVA Lecture 16 Other Issues in Java.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Software Component Technology and Component Tracing CSC532 Presentation Developed & Presented by Feifei Xu.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
Component Architecture (CORBA – RMI) -Shalini Pradhan.
第十四章 J2EE 入门 Introduction What is J2EE ?
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
Last update October 18, 2004 Advanced Programming 2004 Java Beans.
Method-Oriented B2B Application Integration Chapter 4 Sungchul Hong.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
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
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
Kemal Baykal Rasim Ismayilov
ICS 123 Components, Component Models and Reuse ICS 123 Richard N. Taylor and Eric M. Dashofy UC Irvine * with.
Notes from Coulouris 5Ed Distributed Systems Notes on Components.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CBSE Component Based Software Engineering cs. upt
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 32. Review Behavioral Patterns – Observer Pattern – Chain of command.
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.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
A service Oriented Architecture & Web Service Technology.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 15 System Architecture III.
Module 4. Component Software 4.2 Introduction
Sabri Kızanlık Ural Emekçi
Distribution and components
Inventory of Distributed Computing Concepts and Web services
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
The Current State of CBSE
Seminarium on Component-based Software Engineering
Presentation transcript:

Component-Based Development Silvio Romero de Lemos Meira Eduardo Santana de Almeida

Based on

Agenda Software Development Perspective Component-Based Development Components Concepts Elements

Software Development Perspective Custom-made x Standard software –Scratch x Outsource Maintenance Interoperability Adaptability Upgrade Reorganization of the business processes

Software Development Perspective % bought 1000 Cost efficiency Flexibility, Nimbleness, Competitive edge

Component-Based Development Classical View –SW = monolithic “Blocks” –Inter-related parts –“integral” world... CBD –pieces of blocks … –To reduce complexity and time development –distributed world…

Components Mass Produced Software Components, Doug McIlroy NATO Software Engineering Conf., Garmisch, Germany,

Mass Produced Software Components, ‘68 McIlroy’s component industry:...to see standard catalogues of routines, classified by precision, robustness, time-space performance, size limits, and binding time of parameters...to apply routines in the catalogues to any one of a larger class of often quite different machines; to have confidence in the quality of the routines...[I want] different types of routine in the catalogue that are similar in purpose to be engineered uniformly, so that two similar routines should be available with similar options and two options of the same routine should be interchangeable in situations indifferent to that option

Components Assets for composition –Nomen est omen Units of deployment Classes......Objects Components –Object I.Technical (without independence notion) –State –Behavior –Polymorphism, Inheritance II. Economics and Markets –Component Markets –Services

Market versus technology Component Development – It is not easy Domain Generic solutions Deployment context –Documentation –Test suites –Help Return on Investment (ROI) –In house Time to market, maintainability, flexibility –Component Market “imperfect technology in a working market is sustainable; Perfect technology without any market will vanish.” Szyperski, 2002, pp. 18

Two perspectives: Market Orientation - Reengineering-oriented Domain - Development for reuse

Putting the Pieces Together Components Objects Interfaces Contracts Component Framework Component Model

Components Properties –Is a unit of independent deployment; –Is a unit of third-party composition; –Has no (externally) observable state. Objects’ Properties –Is a unit of instantiation, it has a unique identity; –May have state and this can be externally observable; –Encapsulates its state and behavior.

Components “ 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.” Szyperski, 2002, pp. 41 Black box –JAVA API White box –Releases {contracts}

Component and Object Comparison

Objects Entities that encapsulate state and behavior and have a unique identity Behaviors and structures defined by classes that: -Implement concept of abstract data type (ADT) -Provide abstract descriptions of behavior of objects -Provide concrete implementation of object behavior -Enable creation of objects – instances of the class

All component models based on the object- oriented programming paradigm Components define object behavior and create objects – component instances Both make functionality available through abstract behavior descriptions called interfaces Component and Object Similarities

Component and Object Differences Implementation of component is generally completely hidden and sometimes only available in binary Component may be implemented in many ways: single class, multiple classes, or traditional non– object oriented procedures Component names not used as type names. Type and implementation completely separated Components conform to standards defined by component model

Interfaces Components’ point access –A set of named operations that can be invoked by clients –Provided component contains an implementation of all operations defined by that interface –Required component requests an interaction defined in that interface and expects another component to support that interface

Contracts Contracts states: –what the client needs to do to use the interface –what the provider has to implement to meet the services promised by the interface –Pre x Pos conditions

Component Framework Analogy –Mini-operating system Components (Framework) – Processes (OS) –Infra-structure Resource Management Communication between components –Enterprise JavaBeans (EJB) Framework of servers and containers –Persistence, Transaction, Security

Component Model Component Model defines a set of standards for component implementation, interoperability, customization, composition, evolution, and deployment –Enterprise JavaBeans (EJB) –CORBA Component Model (CCM) –Microsoft COM/DCOM Component model implementation is the dedicated set of executable software elements required to support the execution of components that conform to the model –JBoss EJB application server

Component Model: Elements

Basic Elements of Component Model Standards forDescription InterfacesServes as contract between component and client. Specifies component behavior and properties; definition of Interface Description Languages (IDL) NamingGlobal unique names for names for interfaces and components Meta dataInformation about components, interfaces, and their relationships; API to services providing such information

Basic Elements of Component Model Standards forDescription Interoperability Communication and data exchange among components from different vendors, implemented in different languages CustomizationInterfaces for customizing components. User-friendly customization tools will use these interfaces

Basic Elements of Component Model Standards forDescription CompositionInterfaces and rules for combining components to create larger structures and for substituting and adding components to existing structures Evolution SupportRules and services for replacing components or interfaces by newer versions

Basic Elements of Component Model Standards forDescription Packaging and DeploymentPackaging implementation and resources needed for installing and configuring a component

Interface –Specifies component behavior and properties using an Interface Description Language (IDL) –Serves as contract between component and its clients. –Specifies services a client may request from a component. The component provides an implementation of these services –Includes constraints on usage of these services –Interface specifications are a central element in a component model –Consists of the elements -Name of each operation -Parameters of each operation -Type of each parameter -Return type for each operation

–Globally unique names for names for interfaces and components –Naming schemes - Unique identifiers  Generated by tools that use combination of specific data to guarantee uniqueness  For example, Global Unique Ids (GUIDs) used by COM/DCOM/COM+ -Hierarchical name spaces  Guaranteed to be unique if top-level names are uniquely registered with global naming authority.  For example Java-based components Naming

–Information about components, interfaces, and their relationships; API to services providing such information –Many ways of providing metadata - Interface and implementation repositories  CORBA-based systems -Type libraries  COM-based systems -Introspection  Java-based systems Meta Data

–Communication and data exchange among components from different vendors, implemented in different language For example, Enterprise Java Beans written in Java, can be deployed across various platforms and application servers –Remote interoperability based on Remote Procedure Calls (RPCs) For example, Simple Object Access Protocol (SOAP), Remote Method Invocation (RMI) for Java- based systems, serve as remote method specifications Interoperability

Customization Interfaces for customizing components. User friendly customization tools will use these interfaces. –For example, two similar EJB components can be customized differently by using different deployment descriptors for each component

–Interfaces and rules for -combining components to create larger structures -substituting and adding components to existing structures. -registration of component with component/service for notification of pre-defined events –Component composition is combination of two or more software components that yields a new component behavior –Basic types of component interactions -Client/server – remote method invocation -Publish/subscribe -Messaging –Glue languages -Support component composition at a higher level of abstraction than all- purpose programming language –Disadvantage of composition language -Glue code has to be written or graphically specified from inception Composition

–Rules and services for replacing components or interfaces by newer versions. –New version may have different implementation or provide extended or new interfaces –Ideally existing clients should be minimally affected by later versions Evolution Support

Packaging and Deployment Packaging implementation and resources needed for installing and configuring a component –For example, a deployment descriptor provides information about contents of the package and deployment information

Putting Pieces Together [SEI, 2000]

Questions ?

References [Heineman, 2001] Heineman, G., T., Council, W., T. Component- Based Software Engineering: Putting the Pieces Together, Addison- Wesley [SEI, 2000] Software Engineering Institute. Market Assessment of Component-Based Software Engineering, Technical Report, May, [Szyperski, 2002] Szyperski, Clemens. Component Software: Beyond Object-Oriented Programming, Addison-Wesley, 2002.