A component- and message-based architectural style for GUI software

Slides:



Advertisements
Similar presentations
Executional Architecture
Advertisements

A Component- and Message-Based Architectural Style for GUI Software BY Richard N. Taylor, et. Al Presented By : Deepashree Krishnamurthy.
GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Introduction To System Analysis and Design
Applying Architectural Styles and Patterns. Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common.
Software Architecture Research and Practice Nenad Medvidovic University of Southern California
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
A Component- and Message-Based Architectural Style for GUI Software BY Richard N. Taylor, et. Al Presented By : Deepashree Krishnamurthy.
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.
Lecture 23: Software Architectures
HAS. Patterns The use of patterns is essentially the reuse of well established good ideas. A pattern is a named well understood good solution to a common.
1 Programming systems for distributed applications Seif Haridi KTH/SICS.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Software Architecture Lecture 5.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
HW2 INTRODUCTION CSCI-578 Spring Implicit Invocation  Indirectly or implicitly calls to methods and interfaces in response to an event or a received.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Connector Types Interaction services broadly categorize connectors Many details are left unexplained. They fail to provide enough detail to be used in.
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
1 5/18/2007ã 2007, Spencer Rugaber Software Architecture (Informal Definition) The organization of a system into component subsystems or modules Box and.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Introduction To System Analysis and Design
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Interoperability between Scientific Workflows Ahmed Alqaoud, Ian Taylor, and Andrew Jones Cardiff University 10/09/2008.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part II Software Architecture Lecture 6.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Client Call Back Client Call Back is useful for multiple clients to keep up to date about changes on the server Example: One auction server and several.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
John D. McGregor Class 4 – Initial decomposition
Enterprise Integration Patterns CS3300 Fall 2015.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
CSC 480 Software Engineering High Level Design. Topics Architectural Design Overview of Distributed Architectures User Interface Design Guidelines.
REST By: Vishwanath Vineet.
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Lecture VIII: Software Architecture
February 19, February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.
Gerhard Dueck -- CS3013Architecture 1 Architecture-Centric Process  There is more to software development then going blindly through the workflows driven.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Software Connectors. What is a Software Connector? 2 What is Connector? – Architectural element that models Interactions among components Rules that govern.
Last Class: Introduction
CORBA Alegria Baquero.
Software Connectors.
OO Methodology OO Architecture.
Software Design and Architecture
Distribution and components
INTER-PROCESS COMMUNICATION
John D. McGregor Quality attributes
Software Architecture Lecture 5
CORBA Alegria Baquero.
Starting Design: Logical Architecture and UML Package Diagrams
Software Connectors.
Overview of AIGA platform
Implementation support
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 7
Challenges in Implementing Software Architectures
Architectural Mismatch: Why reuse is so hard?
Implementation support
Software Architecture Lecture 6
Presentation transcript:

A component- and message-based architectural style for GUI software Richard N. Taylor et al. IEEE Transactions on Software Engineering, Vol.22, No.6, June 1996 Presented by Leonardo Salayandia Software Architecture Class Feb 26, 2008 CS 5381 - Topics in Software Design: Software Architecture

CS 5381 - Topics in Software Design: Software Architecture Overview Introduction The C2 architectural style Example (KLAX) The Argo design environment Related work Feb 26, 2008 CS 5381 - Topics in Software Design: Software Architecture

CS 5381 - Topics in Software Design: Software Architecture Introduction (1/2) Architectural styles are key design idioms pipe-and-filter blackboard Styles typically used in user interface software Client-server style (e.g., X-Windows) Call-back style Model-View-Controller style Arch style C2 is another (C2 from Chiron-2) “Network of concurrent components hooked together by message routing devices.” Feb 26, 2008 CS 5381 - Topics in Software Design: Software Architecture

CS 5381 - Topics in Software Design: Software Architecture Introduction (2/2) Motivation for C2 style Support component-based software development Extend UI code reuse beyond toolkit code Support multi-lingual programming Support distributed, heterogeneous environments Support dynamic architectural changes Others Feb 26, 2008 CS 5381 - Topics in Software Design: Software Architecture

The C2 architectural style (1/6) The internal architecture of a C2 component Receives notifications and send requests Determines requests that can be received and notifications that can be sent Mapping between component’s internal semantic domain and that of the connector above react to a notification execute a request received maintain some constraint Receive requests Send notifications Feb 26, 2008 CS 5381 - Topics in Software Design: Software Architecture

The C2 architectural style (2/6) Notifications and requests Asynchronous communication via messages Notification: Report state changes (e.g., routine that was invoked, parameters, and return value) Request: Invoke desired functionality from another component Send notification Receive requests Send requests Receive notification Feb 26, 2008 CS 5381 - Topics in Software Design: Software Architecture

The C2 architectural style (3/6) Connectors Bind components together Connected to components and other connectors Routing and broadcast of messages Message filtering No filtering Notification filtering Prioritized Message sink Feb 26, 2008 CS 5381 - Topics in Software Design: Software Architecture

The C2 architectural style (4/6) Architecture composition and properties Requests that a component accepts one-to-one OR one-to-many Connector domains defined in terms of domains from connected components along with connector’s filter Pair wise relationships between connected components and connectors Feb 26, 2008 CS 5381 - Topics in Software Design: Software Architecture

The C2 architectural style (5/6) Domain translation Transformation of requests issued by a component into domain of recipient Transformations of notifications received by a component into its domain Simple domain translations Message name matching Parameter matching May be automatically generated for some cases Other factors in domain translation Differences in state notified and state expected Missing parameters Unit conversions Tradeoff between communication efficiency and component reusability Feb 26, 2008 CS 5381 - Topics in Software Design: Software Architecture

The C2 architectural style (6/6) Principles Substrate independence Message-based communication Multi-threaded No assumption of shared address space Multiple programming languages Heterogeneous environments Implementation separate from architecture Feb 26, 2008 CS 5381 - Topics in Software Design: Software Architecture

CS 5381 - Topics in Software Design: Software Architecture Example KLAXTM Multiple implements Single process Multi-threaded Multi-process Components not changed Multi-lingual (C++ and Ada) Components swapped Performance issues not noticeable State Game logic Abstract graphics Layout manager Graphics binding Feb 26, 2008 CS 5381 - Topics in Software Design: Software Architecture

The Argo design environment Graphical design environment White rectangles represent components Black bars represent connectors Arcs represent pathways Ovals in rectangles represent ports Conceptual arch VS Implementation arch Collaboration: design critics Some code generation (C++) Architecture analysis (pro-active design critics) Feb 26, 2008 CS 5381 - Topics in Software Design: Software Architecture

CS 5381 - Topics in Software Design: Software Architecture Related work Implicit invocation Messages and message mechanisms Layered systems Language and process support Component interoperability models Design environments Relating C2 concepts to OO types Feb 26, 2008 CS 5381 - Topics in Software Design: Software Architecture