ARCHITECTURAL MISMATCH Heather T. Kowalski September 5, 2000.

Slides:



Advertisements
Similar presentations
1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Advertisements

Architectural Mismatch: Why Reuse Is So Hard David Garlan, Robert Allen, and John Ockerbloom Presented by Hoang Bao CSC 509 – Winter 2005.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Page 1 Building Reliable Component-based Systems Ivica Crnkovic Chapter 9 Component Composition and Integration.
Rapid Development of a Flexible Validated Processor Model David A. Penry Manish Vachharajani David I. August The Liberty Architecture Research Group Princeton.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
21-February-2003cse Architecture © 2003 University of Washington1 Architecture CSE 403, Winter 2003 Software Engineering
Requirements Analysis Concepts & Principles
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
© Copyright Eliyahu Brutman Programming Techniques Course.
Purpose of Requirements Analysis Process of discover, refinement, modeling, and specification o Bridge gap between system level SW allocation and design.
Automatic Data Ramon Lawrence University of Manitoba
Architectural Mismatch. DAIMIHenrik Bærbak Christensen2 Literature [Bass et al. 2003] § 18 [Garlan et al., 1995] –Garlan, D., Allen, R., Ockerbloom, J.
1 Objective of today’s lesson S oftware engineering occurs as a consequence of a process called system engineering. Instead of concentrating solely on.
1 REQUIREMENTS ENGINEERING and SYSTEMS ANALYSIS Elements and Definitions.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common.
Architectural Mismatch or Why it’s hard to build systems out of existing parts.
Chapter 24 - Quality Management Lecture 1 1Chapter 24 Quality management.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
Software Architecture Classification for Estimating the Costs of COTS Integration Yakimovich, Bieman, Basili; icse 99.
Requirements Analysis
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Software Component Technology and Component Tracing CSC532 Presentation Developed & Presented by Feifei Xu.
CS 360 Lecture 6.  A model is a simplification of reality  We build models to better understand the system being developed.  We build models of complex.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Implementing Architectures Software Architecture.
Ch:10 Component Level Design Unit 4. What is Component? A component is a modular building block for computer software Because components reside within.
Software development with components
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Chapter SIX Implementation, Testing and Pragmatics Making it a reality.
A language to describe software texture in abstract design models and implementation.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, Hans Van Vliet, Software.
Systems Analysis and Design in a Changing World, 3rd Edition
Software Architecture “Good software architecture makes the rest of the project easy.” Steve McConnell, Survival Guide “There are two ways of constructing.
UML Use Case Diagramming Guidelines. What is UML? The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
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.
Formal Specification: a Roadmap Axel van Lamsweerde published on ICSE (International Conference on Software Engineering) Jing Ai 10/28/2003.
Software Engineering Introduction.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Basic Concepts and Definitions
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Software development with components
CS223: Software Engineering Lecture 13: Software Architecture.
Engr 691 Special Topics in Engineering Science Software Architecture Spring Semester 2004 Lecture Notes.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Architecture Description Languages (ADLs) Cf. Architecture Analysis and Design Languages.
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, Hans Van Vliet, Software.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
George Edwards Computer Science Department Center for Systems and Software Engineering University of Southern California
CSCI 578 Software Architectures
Software Quality Engineering
CSCI 578 Software Architectures
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4th edition, Prentice Hall, Hans Van Vliet, Software Engineering:
Implementing Architectures
Architecture Description Languages
Automated Analysis and Code Generation for Domain-Specific Models
Architectural Mismatch: Why reuse is so hard?
Software Architecture & Design
CSCI 578 Software Architectures
Presentation transcript:

ARCHITECTURAL MISMATCH Heather T. Kowalski September 5, 2000

Article Details “Architectural Mismatch: Why Reuse Is So Hard” By David Garlan, Robert Allen, & John Ockerbloom CMU Professor & Graduate Students IEEE Software, November 1995

Context ABLE Project –Architecture-Based Languages & Environments –To develop “foundations for an engineering discipline for software architecture” Aesop System –Tool designed to “experiment with architectural development environments”

Aesop Inputs of Style Description & Shared Infrastructure Aesop’s black box Manipulation Result: Custom Design Environment aesop_home.html

Software Architecture Motivation –Depict a Complex System in Manageable Format –Identify & Exploit Recurring Elements

Software Architecture, con’t Research Areas –Architectural Description –Formal Underpinnings –Design Guidance –Domain Specific Architecture –Architecture in Context –Role of Tools & Environments

Harsh Realities Excessive Code Poor Performance Modify External Packages Need to Reinvent Existing Functions Unnecessarily Complicated Tools Error-Prone Construction

Conflicting Assumptions -- Taxonomy Nature of Components Nature of the Connectors Global Architectural Structure Construction Process

Nature of Components Infrastructure Control Model Data Model

Nature of Connectors Protocols –Event Broadcast –Request/Reply pair Data Model –C Constructs & Arrays –ASCII Strings

Global Architectural Structure Role of Tools –Independent Tools Concurrency = Conflict

Construction Process Existing Infrastructure Application Code Reuse/Integration Code Code Generated by other Packages

Future Design of Components Codify Notations, Mechanisms, and Tools Steps: –Explicitly Document Architectural Assumptions –Orthogonal Subcomponents –Sources of Design Guidance –Techniques for Bridging Mismatches