Architectural Mismatch. DAIMIHenrik Bærbak Christensen2 Literature [Bass et al. 2003] § 18 [Garlan et al., 1995] –Garlan, D., Allen, R., Ockerbloom, J.

Slides:



Advertisements
Similar presentations
ARCHITECTURES FOR ARTIFICIAL INTELLIGENCE SYSTEMS
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Programming Paradigms and languages
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.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Introduction To System Analysis and Design
Page 1 Building Reliable Component-based Systems Ivica Crnkovic Chapter 9 Component Composition and Integration.
Software Testing and Quality Assurance
Applying Architectural Styles and Patterns. Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common.
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.
The Architecture Design Process
Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Agenda Architectural Styles The Alfa Project Architectural framework.
1 Software Testing and Quality Assurance Lecture 30 – Testing Systems.
Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Architectural Styles Characterize –Structure, i.e. external.
ARCHITECTURAL MISMATCH Heather T. Kowalski September 5, 2000.
Connecting Diverse Web Search Facilities Udi Manber, Peter Bigot Department of Computer Science University of Arizona Aida Gikouria - M471 University of.
Chapter 10: Architectural Design
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Matthew J Mattia CSC  Cumbersome Code  Consistent/Predictable design (GUEPs #5, CD’s #10)  Display “proper” amount of information  Including.
Architecture, Implementation, and Testing Architecture and Implementation Prescriptive architecture vs. descriptive architecture Prescriptive architecture:
Architectural Mismatch or Why it’s hard to build systems out of existing parts.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Architectural Design.
What is Software Architecture?
Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps.
The Design Discipline.
Requirements Analysis
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
An Introduction to Software Architecture
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Lecture 9: Chapter 9 Architectural Design
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Software development with components
Introduction To System Analysis and Design
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Chapter 13 Architectural Design
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Approaching a Problem Where do we start? How do we proceed?
1 Computer Systems & Architecture Lesson Building Systems from Off-the-Shelf Components.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
The Software Development Process
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Design Reuse Earlier we have covered the re-usable Architectural Styles as design patterns for High-Level Design. At mid-level and low-level, design patterns.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
CS451 Software Implementation and Integration Yugi Lee STB #555 (816) Note: This lecture was designed.
Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Component Composition and Integration.
Lecture 21: Component-Based Software Engineering
Basic Concepts and Definitions
CS223: Software Engineering Lecture 13: Software Architecture.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Dillon: CSE470: ANALYSIS1 Requirements l Specify functionality »model objects and resources »model behavior l Specify data interfaces »type, quantity,
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
Chapter 2 Database Environment.
An Introduction to Software Architecture
Architectural Mismatch: Why reuse is so hard?
From Use Cases to Implementation
Presentation transcript:

Architectural Mismatch

DAIMIHenrik Bærbak Christensen2 Literature [Bass et al. 2003] § 18 [Garlan et al., 1995] –Garlan, D., Allen, R., Ockerbloom, J. Architectural Mismatch or Why it’s hard to build systems out of existing parts. Proceedings of the Seventeenth International Conference on Software Engineering, Seattle WA, April [DeLine, 1999] –DeLine, R. A Catalog of Techniques for Resolving Packaging Mismatch. Proceedings of the 1999 symposium on Software reusability SSR'99. Los Angeles, California, United States. ACM Press 1999.

DAIMIHenrik Bærbak Christensen3 What is Reuse? Idea: Use existing software parts instead of building from scratch Simple, but elusive… Buy cheaper than build ! COTS: Commercial Off-The- Shelf Components

DAIMIHenrik Bærbak Christensen4 Lego bricks The Lego brick interface problem –it only works because knobs and holes fit together –... but we have to invent both the bricks, the knobs and the holes ! Component ZComponent YComponent X

DAIMIHenrik Bærbak Christensen5 Deutsch’s statement Interface design and functional factoring constitutes the key intellectual content of software and are far more difficult to create or re-create than code. Peter Deutsch Behaviour A1 C2Behaviour X Y Z Behaviour A B C More often than not, components appear like this…

DAIMIHenrik Bærbak Christensen6 Relations to QA An architecture defines resulting quality attributes… Thus, re-using any component X in an architecture will influence QAs! Example: –reusing public domain component may lower security because hackers have access to source code –interface mismatch handled by wrapping or bridging that costs performance

DAIMIHenrik Bærbak Christensen7 Architectural Mismatch The problems have a name: Architectural Mismatch Garlan et. al. ICSE-17, Problem: –Building Aesop an environment to support architectural design and analysis –Means: lower cost by reusing components OO database GUI toolkit event-based tool integration system remote procedure call system

DAIMIHenrik Bærbak Christensen8 Components Four public domain / commercial systems were chosen: –All in C++ or C –Source code available for all –Well-tested in many projects BUT: –no experience with making them work together

DAIMIHenrik Bærbak Christensen9 Architecture Deployment view: Components: OODB + GUI Connectors: RPC + Event mechanism

DAIMIHenrik Bærbak Christensen10 Problems After 5 man-years: –Excessive code size –Poor performance –Modifications to components necessary –Existing functionality had to be reinvented –Simple functionality had to be written in complex way –System construction (i.e. ”make”) error-prone I.e.: Reuse is elusive...

DAIMIHenrik Bærbak Christensen11 Architectural mismatch ”...all serious problems trace back to places where assumptions were in conflict.” Architectural mismatch categories: Failed assumptions on –Nature of components –Nature of connectors –Architectural style –Construction process

DAIMIHenrik Bærbak Christensen12 Assumptions: Component nature Three main areas –infrastructure – assumptions about how much support there is for the components in the environment –control model – assumptions about which components control the sequencing of computation –data model – assumptions about the way the environment will manipulate the data in a component

DAIMIHenrik Bærbak Christensen13 Assumptions: Connector nature Two main areas: –protocols – assumptions about the interaction patterns mediated through the connector –data model - assumptions about the kind of data that is communicated

DAIMIHenrik Bærbak Christensen14 Assumptions: Style Main area: –topology – assumptions about the topology of the system communications and about presence or absence of particular components and/or connectors.

DAIMIHenrik Bærbak Christensen15 Assumptions: Construction process Main area: –construction ordering – assumptions about the order in which pieces are instantiated and combined in an overall system

DAIMIHenrik Bærbak Christensen16 [Sidebar: Discussion] This is a classic example of the problems encountered when components from different (and unrelated) domains are broad together. Experience shows that the path to take is: To define not only the components but also the context these components must exist within! Product lines / Frameworks

DAIMIHenrik Bærbak Christensen17 But… What do you do when you have –Architecture X that is the one you must use ? –Element Y that is the component you must use ? You need techniques to handle mismatch…

DAIMIHenrik Bærbak Christensen18 Bass et al. What can we do? –[Avoid] Avoid it by specifying and inspecting components –[Detect] Detect cases that you have not avoided by qualification of components –[Repair] Repair detected cases by adapting components

DAIMIHenrik Bærbak Christensen19 Repair Three basic categories [see also DeLine] –Wrapping Adapter design pattern. Encapsulate component with adaptation code that makes it fit into architecture Example: X library running on Win32 –Bridging ‘Connector’ between components makes translation of data and control flow Example: PostScript to PDF converter –Mediator Planning and controlling component makes components cooperate [like Mediator design pattern]

DAIMIHenrik Bærbak Christensen20 Detecting Qualification means ‘fitness for use’. A component –provides services under some assumptions –assumes services under some assumptions Thus qualification is the process of clarifying and investigating these assumptions. Odds are that most are not documented! Typical process: –Making hypotheses and testing them using prototypes!

DAIMIHenrik Bærbak Christensen21 Avoiding Bass et al. devotes a section to ‘avoiding’ techniques. I think this is a rather academic discussion

DAIMIHenrik Bærbak Christensen22 Looking at Ensembles Bass et al. stress that components cannot be viewed in isolation. It is the ensemble of components for the architectural challenge at hand that must be qualified: In the end they have to work together for the system to make sense…

DAIMIHenrik Bærbak Christensen23 Exploration process Process [scientific ] –Model problem description of design context functionality spec and constraints QA specification –Model solution prototype situated in the design context –Evaluation criteria will solution be accepted or rejected Iterative process !

DAIMIHenrik Bærbak Christensen24 Case Study: ASEILM Example: –ChartWorks did not handle secure HTTP –Introduced PerlProxy as wrapper

DAIMIHenrik Bærbak Christensen25 DeLine: Package Mismatch In the spirit of design pattern catalogs DeLine wants to classify different techniques for resolving package mismatch Package mismatch: –any software component consists of two parts functionality provided (like e.g. spell checking) packaging provided (i.e. how to get access to the spell check)

DAIMIHenrik Bærbak Christensen26 Packaging aspects Data representation –must agree on sharing a common type system, agree on types agree on bit-level representation data item’s format and syntax Examples: –file formats –big-endian versus little-endian integer encoding Data representations may be lossy (e.g. jpeg)

DAIMIHenrik Bærbak Christensen27 Packing aspects Data and control transfer –must agree on direction and mechanism

DAIMIHenrik Bærbak Christensen28 Packing aspects Transfer protocol –agreement on the protocol for transferring data and control Examples: –HTTP, , FTP, etc. defines the interaction between client and server

DAIMIHenrik Bærbak Christensen29 Packaging aspects State persistence –agreement on how components maintains state between interactions Examples: –computational activities in health care in a pervasive computing environment –Java SessionBeans –Web Servers

DAIMIHenrik Bærbak Christensen30 Packaging aspects State scope –must agree on the scope of data that can be manipulated Examples: –’save’ in a document editor can only affect whole document, not a single page –Garlan et al. describe manipulation problems with InterView’s hierarchical structures

DAIMIHenrik Bærbak Christensen31 Packaging aspects Failure –must agree on degree of failure tolerance Examples: –method invocation is bullet proof within the same address space but remote method invocations easily fail.

DAIMIHenrik Bærbak Christensen32 Packaging aspects Connection establishment –must agree on how interaction mechanism are set up and torn down — and in what order Examples: –connection between component and a file interactive dialog? parameter? hard-coded name? –JHotDraw cannot handle images before its IconKit component is initialised which is done late. Thus you must code in a certain way if we need images ”early”