Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.

Slides:



Advertisements
Similar presentations
A component- and message-based architectural style for GUI software
Advertisements

Architectural Mismatch: Why Reuse Is So Hard David Garlan, Robert Allen, and John Ockerbloom Presented by Hoang Bao CSC 509 – Winter 2005.
JINI Shashwat Shriparv InfinitySoft.
Technical Architectures
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Page 1 Building Reliable Component-based Systems Ivica Crnkovic Chapter 9 Component Composition and Integration.
Applying Architectural Styles and Patterns. Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common.
Architectural Styles. Definitions of Architectural Style  Definition. An architectural style is a named collection of architectural design decisions.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
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.
Software Architecture Design Instructor: Dr. Jerry Gao.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Lecture 23: Software Architectures
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Applying Architectural Styles and Patterns
Objectives The key roles an architecture description plays in a software project. The key roles an architecture description plays in a software project.
ARCHITECTURAL MISMATCH Heather T. Kowalski September 5, 2000.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Architectural Mismatch. DAIMIHenrik Bærbak Christensen2 Literature [Bass et al. 2003] § 18 [Garlan et al., 1995] –Garlan, D., Allen, R., Ockerbloom, J.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Chapter 6: Architectural Design
System Design & Software Architecture
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.
Client/Server Software Architectures Yonglei Tao.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 6 – Architectural Design Lecture 2 1Chapter 6 Architectural design.
 Cloud computing  Workflow  Workflow lifecycle  Workflow design  Workflow tools : xcp, eucalyptus, open nebula.
Software Architecture Classification for Estimating the Costs of COTS Integration Yakimovich, Bieman, Basili; icse 99.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
An Introduction to Software Architecture
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Architectural Design To explain the advantages and disadvantages of different distributed systems architectures To discuss client-server and distributed.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
Google Web Toolkit An Overview By Shauvik Roy Choudhary.
Software development with components
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Software Architecture and Patterns
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Software Architecture “Good software architecture makes the rest of the project easy.” Steve McConnell, Survival Guide “There are two ways of constructing.
 Repository Model  Client-Server Model  Layered Model  Modular decomposition styles  Object Models  Function Oriented Pipelining  Control Styles.
Krista Lozada iAcademy First Term 2009
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
John D. McGregor Class 4 – Initial decomposition
1 CMPT 275 High Level Design Phase Modularization.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
CSC480 Software Engineering Lecture 10 September 25, 2002.
Jini Architecture Introduction System Overview An Example.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
1 Lecture 3 Major Architectural Models View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern.
CSC 480 Software Engineering High Level Design. Topics Architectural Design Overview of Distributed Architectures User Interface Design Guidelines.
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
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.
Lecture 21: Component-Based Software Engineering
Software development with components
CS223: Software Engineering
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Introduction. System Design Hardware/Software Platform Selection Software Architectures Database Design Human-Computer Interaction (HCI) Interface Object.
Software Design and Architecture
Software Connectors.
An Introduction to Software Architecture
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:

Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994

Two kinds of mismatch Low level problems of interoperability as: –incompatibilities in programming languages/platforms/da ta bases More discussed Architectural mismatch: –mismatch assumptions on the architecture of the system.

Project: Aesop System Environment generator for architecture styles Input: Style and a shared infrastructure Output: An environment which consists of: –tools that access the design database (OO) –GUI for modifying and creating new designs –repository of previous designs

Requirements for interaction with DB Tools may access the DB through RPC (invoking methods on objects in the DB) Support for event broadcasting: Tools can register to be notified about changes in DB or announce events to other tools.

Wishes on reusable parts An OO Database -> OBST A toolkit for constructing GUIs -> InterViews from Stanford University An event-based tool-integration mechanism -> SoftBench from HP An RPC mechanism -> Mach RPC Interface Generator All in C++ or C, available source code.

Discovered Integration Problems 1Excessive code 2Poor performance: save took several minutes, start overhead 3Need to modify external packages to work together. 4Need to reinvent existing functions 5Unnecessarily complicated tools 6Error-prone construction process: recompilation took time, code dependencies

Architectural overview of the system A system is a configuration of components and connectors. –Components: Entities of the system as tools, DB, servers, filters, etc –Connectors determine the interaction between components as client-server protocols, RPC, pipes.

Four main assumptions that can lead to arch.mismatch Nature of components Nature of connectors Global architectural structure Construction process

Nature of components Infrastructure: Nature of the underlying support they need, additional infrastructure that they provide or use. Here all components provided additional. Control model: Assumptions on what part of the system holds the main thread of control. Data model: Nature of the data that components manipulate. E.g. InterViews has a hierarchical data structure where one object is part of another and can be modified only by the parent.

Nature of Connectors Protocols: E.g. SoftBench forces the clients to implement multiple threads of control; one for each request. Data model: Assumptions about data that is communicated over connectors. E.g. MAC RPC supports data passes through procedures while SoftBench assumes passing of files.

Global structure E.g. OBST requires that tools are totally independent of each other. In Aesop, tools can delegate part of their computation to other tools.

Construction Process Dependencies between packages to compile, assumptions in each component on the structure of the code

Solutions Make architectural assumptions explicit Construct large systems using orthogonal subcomponents Provide bridging Develop architectural design guidelines

Make Assumptions Explicit Document assumptions Develop description vocabulary and languages for software architecture

Use Orthogonal Subcomponents Components with clear dependencies, easy to replace with other modules, easy to reconfigure

Bridging Techniques Mediators components that take over some of the tasks. Smart connectors that translate data in multiple protocols. Wrapper around a component or connector to offer a convenient interface Negotiated interfaces: Components and connectors that handle several styles and can configure themselves dynamically.

Design Guidance Find rules and principles for composition Develop guidance for certain application domains