Software Architecture Classification for Estimating the Costs of COTS Integration Yakimovich, Bieman, Basili; icse 99.

Slides:



Advertisements
Similar presentations
COM vs. CORBA.
Advertisements

Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
A component- and message-based architectural style for GUI software
Dr. Kalpakis CMSC 621, Advanced Operating Systems. Fall 2003 URL: Distributed System Architectures.
Web Services Darshan R. Kapadia Gregor von Laszewski 1http://grid.rit.edu.
Remote Procedure Call (RPC)
Architectural Mismatch: Why Reuse Is So Hard David Garlan, Robert Allen, and John Ockerbloom Presented by Hoang Bao CSC 509 – Winter 2005.
Software Connectors Software Architecture. Importance of Connectors Complex, distributed, multilingual, modern software system functionality and managing.
An Associative Broadcast Based Coordination Model for Distributed Processes James C. Browne Kevin Kane Hongxia Tian Department of Computer Sciences The.
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Applying Architectural Styles and Patterns. Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common.
ICS 123 Interoperability ICS 123 Richard N. Taylor and Eric M. Dashofy UC Irvine
A brief look at CORBA. What is CORBA Common Object Request Broker Architecture developed by OMG Combine benefits of OO and distributed computing Distributed.
Software Connectors. Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Agenda Architectural Styles The Alfa Project Architectural framework.
Middleware Technologies compiled by: Thomas M. Cosley.
Communication in Distributed Systems –Part 2
Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Architectural Styles Characterize –Structure, i.e. external.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Institute for Software Research©2001, University of California, Irvine Product-Line Architectures André van der Hoek Institute for Software Research University.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Siemens’ 4 View Model (props to My-An Nguyen for giving me her 344 notes on which this lecture is based)
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Architectural Mismatch or Why it’s hard to build systems out of existing parts.
Component Architecture (CORBA – RMI) -Shalini Pradhan.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Unified Modeling Language, Version 2.0
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
1 of of 25 3 of 25 ORBs (Object Request Broker) – A distributed software bus for communication among middleware services and applications – To.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part I Software Architecture Lecture 5.
Software Architectural Styles Andrew Midwinter, Mark Mullen, Kevin Wong, Matt Jones 1.
An application architecture specifies the technologies to be used to implement one or more (and possibly all) information systems in terms of DATA, PROCESS,
© 2004 Mercury Computer Systems, Inc. FPGAs & Software Components Graham Bardouleau & Jim Kulp Mercury Computer Systems, Inc. High Performance Embedded.
CORBA IS 8030 – Integrated Computing Environments Dr. Hoganson CORBA Common Object Request Broker Architecture Published by Object Management Group (OMG)
Web Services. Abstract  Web Services is a technology applicable for computationally distributed problems, including access to large databases What other.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved RPC Tanenbaum.
Cloud Age Time to change the programming paradigm?
TAL7011 – Lecture 4 UML for Architecture Modeling.
Processes Introduction to Operating Systems: Module 3.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
Distributed Object Frameworks DCE and CORBA. Distributed Computing Environment (DCE) Architecture proposed by OSF Goal: to standardize an open UNIX envt.
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
1 Lecture 3 Major Architectural Models View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern.
 Program Abstractions  Concepts  ACE Structure.
Slide 1 Lecture 15 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors in Practice Software Architecture.
IBM Global Services © 2005 IBM Corporation SAP Legacy System Migration Workbench| March-2005 ALE (Application Link Enabling)
Channels. Models for Communications Synchronous communications – E.g. Telephone call Asynchronous communications – E.g. .
CEN6502, Spring Understanding the ORB: Client Side Structure of ORB (fig 4.1) Client requests may be passed to ORB via either SII or DII SII decide.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Basic Characteristics of Object-Oriented Systems
Software Connectors. What is a Software Connector? 2 What is Connector? – Architectural element that models Interactions among components Rules that govern.
Software Connectors.
OO Methodology OO Architecture.
UML dynamic Modeling (Behavior Diagram)
Inventory of Distributed Computing Concepts and Web services
Interpreter Style Examples
Main Memory Background Swapping Contiguous Allocation Paging
Software Connectors.
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 7
Architectural Mismatch: Why reuse is so hard?
Software Architecture Lecture 6
Presentation transcript:

Software Architecture Classification for Estimating the Costs of COTS Integration Yakimovich, Bieman, Basili; icse 99

Contents A set of variables for cost estimation of COTS integration A classification scheme of software architecture with respect to COTS integration

Techniques for COTS integration Change the component being integrated. Possible if source code is available, etc Use glueware = integration software. It is software that provides proper interface for the component (like wrappers) or serves as a mediator. >> Both techniques can lower system quality.

Interaction Protocol Mismatch Mismatch between assumptions by component on interaction with the environment and assumptions of the system. 4 types of interactions: –Component-platform interactions –Component-hardware interactions –Component-user interactions –Component-software interactions

Continue Component-platform interactions: on OS, CPU, etc. Component-hardware interactions: reading from specified ports, etc. Component-user interactions: user interface, language, etc

Component-software interactions Assumptions about nature of components: infrastructure, control model, data model. Assumptions about nature of connectors: protocols, data model. Assumptions about the global architecture: topology, etc Assumptions about the construction process

Variables to represent assumptions Component packaging Type of control Type of information flow Synchronization Binding A=B; Values are equal. A>=B; The value of A is greater than B. A=< B, The value of A is greater than B. A ~ B, A and B are not comparable

Component Packaging Definition: How a component is packaged for integration into a system. Values: Linkable vs independent.

Type of Control Definition: How a system provides control flow to its components. Values: Centralized, decentralized, no assumption.

Information Flow Definition: What type of information flows between components. Values: Control flow (invocation of some routines), data flow (exchange of data as message passing, shared memory), mixed (accepts both and can convert).

Synchronization Definition: Whether or not a component blocks when waiting for a response. Values: Synchronous, Asynchronous.

Component Binding Definition: How components are attached to connectors and how the participants in an interaction are determined. Values: static (predetermined), dynamic (compile time or run- time), mixed.

Software System Classification Pipes and filters Main program and subroutine OO systems Communicating process Event systems Blackboards C2 architectural style CORBA COM

Pipes and Filters Filters have input and output. Pipes are connectors. Packaging: not relevant. Control: not relevant. Information flow: data. Synchronization: not relevant. Binding: dynamic.

Main Program and Subroutines Components are procedures and functions. Connectors are calls between them. Packaging: not relevant. All linked together. Control: centralized. Information flow: control. Synchronization: synchronous. Binding: static.

OO Systems Components are objects. Connectors are invocation of objects. Packaging: not relevant. Control: usually centralized. Information flow: control. Synchronization: synchronous. Binding: dynamic.

Communicating Process Components are independent processes. Connectors are messages, RPC, shared memory, etc. Packaging: not relevant. Control: decentralized. Information flow: not relevant (in fact both). Synchronization: not relevant. Binding: not relevant.

Event systems A component register for an event and is called back. Packaging: not relevant. Control: decentralized. Information flow: control. Synchronization: not relevant. Binding: dynamic.

Blackboards Components are blackboards that stores the state of the system and other components have access to it. Actions are triggered by specific states. Packaging: not relevant. Control: not relevant. Information flow: data. Synchronization: not relevant. Binding: static. Everything is attached to the blackboard.

C2 Architectural Style An OO framework with few assumptions. Limitations: Message-based communication (provides wrappers as well), layered architecture. Packaging: depends on whether the language is supported. Control: all types. Information flow: data. Synchronization: all types. Binding: dynamic.

CORBA For distributed OO architectures. Language and platform independent. Packaging: depends on whether the language is supported. Control: decentralized. Information flow: control (like RPC). Synchronization: all types. Binding: run-time dynamic using Naming service.

COM Binary, objects make RPC, language independent, multiple interfaces for an object. Packaging: depends on whether the language is supported. Control: decentralized. Information flow: control (like RPC). Synchronization: all types. Binding: run-time dynamic using QueryInterface.

Estimating Integrating Costs Fine the interaction vector of the system (Vs) and the COTS (Vp) and compare: –Vs=Vp; match. –Vs >= Vp; still compatible. –Vs <= Vp; some assumptions are not compatible.A common upper element Vc is found and the cost of modifying the system and the COTS towards Vc is estimated. Example in the article