ICS 123 Components, Component Models and Reuse ICS 123 Richard N. Taylor and Eric M. Dashofy UC Irvine * with.

Slides:



Advertisements
Similar presentations
COM vs. CORBA.
Advertisements

General introduction to Web services and an implementation example
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
Software Architectural Design Software Components Instructor Dr. Lawrence Chung.
Software Reuse SEII-Lecture 28
The road to reliable, autonomous distributed systems
Seminarium on Component-based Software Engineering Jan Willem Klinkenberg CORBA.
Component-based Software Engineering Marcello Bonsangue LIACS – Leiden University Fall 2005 Component Model Comparison.
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
Component Models and Technology Component-based Software Engineering
ICS 123 Interoperability ICS 123 Richard N. Taylor and Eric M. Dashofy UC Irvine
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
DCS Architecture Bob Krzaczek. Key Design Requirement Distilled from the DCS Mission statement and the results of the Conceptual Design Review (June 1999):
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
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.
Page 1 Building Reliable Component-based Systems Chapter 4 - Component Models and Technology Chapter 4 Component Models and Technology.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
12-1 © Prentice Hall, 2004 Chapter 12: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
Course Instructor: Aisha Azeem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
MDA Guide Version CYT. 2 Outline OMG Vision and Process Introduction to MDA How is MDA Used? MDA Transformations Other MDA Capabilities Using the.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
Software Reuse Prof. Ian Sommerville
©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.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
Component-Based Development Silvio Romero de Lemos Meira Eduardo Santana de Almeida
Middleware-Based OS Distributed OS Networked OS 1MEIT Application Distributed Operating System Services Application Network OS.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
Enterprise Java Beans Part I Kyungmin Cho 2001/04/10.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
SOFTWARE REUSE 28 March 2013 William W. McMillan.
Component Architecture (CORBA – RMI) -Shalini Pradhan.
Introduction to MDA (Model Driven Architecture) CYT.
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
Information Management NTU Interprocess Communication and Middleware.
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
Interfacing Registry Systems December 2000.
Introduction into component programming based on Java beans Dušan Tošić
CSC480 Software Engineering Lecture 11 September 30, 2002.
CORBA IS 8030 – Integrated Computing Environments Dr. Hoganson CORBA Common Object Request Broker Architecture Published by Object Management Group (OMG)
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Semantic Web Technologies Research Topics and Projects discussion Brief Readings Discussion Research Presentations.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
CS551 - Lecture 11 1 CS551 Object Oriented Middleware (III) (Chap. 5 of EDO) Yugi Lee STB #555 (816)
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Lecture 21: Component-Based Software Engineering
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 15 System Architecture III.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Common Object Request Broker Architecture (CORBA)
Chapter 16 – Software Reuse
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.
Inventory of Distributed Computing Concepts
Component--based development
Quality Assurance for Component-Based Software Development
CORBA and COM TIP Two practical techniques for object composition
Presentation transcript:

ICS 123 Components, Component Models and Reuse ICS 123 Richard N. Taylor and Eric M. Dashofy UC Irvine * with very special thanks to David S. Rosenblum for the use of his materials..

ICS Topic 11 Components, Component Models and Reuse What Is Reuse? (I) Develop systems of components of a reasonable size and reuse them –Further use or repeated use of a component –Adapting components for use outside their original context Extend the idea beyond code to other development artifacts Goals of reuse are primarily economic –Save cost/time/effort of redundant work, increase productivity –Decrease time to market –Improve systems by reusing both the artifact and the underlying engineering experience Economic goals achieved only when units of reuse reach critical mass in size, capability and uniformity

ICS Topic 11 Components, Component Models and Reuse What Is Reuse? (II) Idea originally due to Doug McIlroy “Mass Produced Software Components”, 1968 NATO Conference on Software Engineering –Reusable components, component libraries Named as a potential “silver bullet” by Fred Brooks (1987) A lot of research interest in the 1980s and 1990s Technical and managerial barriers have prevented widespread success with reuse and with reuse- oriented technologies –This led McIlroy to believe he had been wrong!

ICS Topic 11 Components, Component Models and Reuse What Is Reuse? (III) The term reuse is a misnomer –No other engineering discipline uses the term –Systematic design and use of standard components is accepted practice in other engineering disciplines –The term will (eventually) become obsolete The important ideas behind reuse are centered on the notion of components –Design of components for use in multiple contexts –Design of families of related components –Design of components with standardized packaging

ICS Topic 11 Components, Component Models and Reuse Review: Architectural Components A component is an architectural building block that is … –A unit of computation or a data store, with an interface specifying the services it provides –A unit of deployment –A unit of reuse

ICS Topic 11 Components, Component Models and Reuse The Difference Between Components and Objects Objects have a unique identity Objects have a persistent state Objects are instances of a class, with classes arranged in hierarchies according to inheritance relationships (object-oriented design and programming) –Components may contain many classes and class instances Objects can be passed as parameters in methods Components vary more dramatically in size

ICS Topic 11 Components, Component Models and Reuse Component Packaging Standards Models and tools for building, packaging and interconnecting software components Called by many different names –Component standards –Component models –Distributed component platforms –… Our focus in this course will be on the C2 component model, although we will discuss others

ICS Topic 11 Components, Component Models and Reuse Key Goals of a Component Standard Language independence Interchangeability of Components –Requires separation of interface from implementation –Requires standardized interface definition language (IDL) »Current IDLs primarily support syntactic interface specification »Limited support for specification of semantics: strong typing Customizability of Components –Components are tailored for application use in well-defined, predetermined ways Compositionality of Components –Easy formation of larger-grained components and whole applications

ICS Topic 11 Components, Component Models and Reuse Important Features of Component Standards Component interfaces Metadata Integrated development environments (IDEs) Distributed server components

ICS Topic 11 Components, Component Models and Reuse Component Interfaces Define facilities for interoperation with other components –Properties/attributes/data members »Entities forming component state –Methods/operations/function members »Entities allowing access and changes to component state –Events »Component response to internal or external stimuli »Event consumers (other components) register their interest with a component that generates events

ICS Topic 11 Components, Component Models and Reuse Component Metadata Component data for the use of other components, rather than for the direct support of the component’s functionality –Class name, interface elements, resources, visual representation, etc. –Some component standards also support metaoperations Supports discovery of a component’s capabilities, especially at runtime Encapsulated in separate components or metaclasses Often called “introspection” or “reflection” –Introspection is a misnomer—implies component looking at itself –Reflection is a better term—externally available information reflecting internal capabilities

ICS Topic 11 Components, Component Models and Reuse Integrated Development Environments (IDEs) Application development based on direct manipulation of visually rendered components –Drag-and-drop composition –Color-coded syntax source code highlighting and checking –Integrated source code editors, compilers, debuggers –Class, object, component repositories –Configuration management capabilities »Versions »Configurations »Teams

ICS Topic 11 Components, Component Models and Reuse Distributed Server Components Support for “enterprise-wide” distribution and management of shared multi-user applications –Protocols for communication with remote components –Transaction services for shared data components –Component and resource naming services –Security services –System management, monitoring, administration services This is the focus of distributed object technology and other kinds of client/server middleware

ICS Topic 11 Components, Component Models and Reuse Component Frameworks Component-based implementation of an important design pattern or architectural style, tailored to specific application domain –Provides guidance for application construction –Provides base architecture that can be tailored for specific application Well-known example: Microsoft Foundation Classes (MFC) –Implementation of Model-View-Controller (MVC) style for GUI development –Supported by powerful IDE (Visual C++/Visual J++) »Application generation »Development wizards

ICS Topic 11 Components, Component Models and Reuse Leading Creators of Component Standards Microsoft –OLE: Object Linking and Embedding –COM: Component Object Model (component model underlying OLE) –ActiveX (enhancement and generalization of OLE) –DCOM: Distributed COM –SOAP: Simple Object Access Protocol (Is this a component standard?) Sun Microsystems –JavaBeans –Enterprise JavaBeans –Jini Object Management Group (OMG) –OMA: Object Management Architecture –CORBA: Common Object Request Broker Architecture (part of OMA) –UML: Unified Modeling Language World Wide Web Consortium (W3C) –XML (Is this a component standard?)

ICS Topic 11 Components, Component Models and Reuse Who Will Win? Who knows? –Microsoft tends to win everything –But there is a lot of industry buy-in for Java and related technologies –OMG stays afloat by reacting to whatever Microsoft and Sun do What if there isn’t a winner? –Interoperability between component standards is always possible »Bridges »Adapters »Wrappers »Etc.