a component and message based architectural style for gui software n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
A component- and message-based architectural style for GUI software PowerPoint Presentation
Download Presentation
A component- and message-based architectural style for GUI software

Loading in 2 Seconds...

play fullscreen
1 / 13

A component- and message-based architectural style for GUI software - PowerPoint PPT Presentation


  • 291 Views
  • Uploaded on

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. Overview. Introduction The C2 architectural style Example (KLAX)

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'A component- and message-based architectural style for GUI software' - may


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
a component and message based architectural style for gui software

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

CS 5381 - Topics in Software Design: Software Architecture

overview
Overview
  • Introduction
  • The C2 architectural style
  • Example (KLAX)
  • The Argo design environment
  • Related work

CS 5381 - Topics in Software Design: Software Architecture

introduction 1 2
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.”

CS 5381 - Topics in Software Design: Software Architecture

introduction 2 2
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

CS 5381 - Topics in Software Design: Software Architecture

the c2 architectural style 1 6
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

Send notifications

Receive requests

CS 5381 - Topics in Software Design: Software Architecture

the c2 architectural style 2 6
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

Receive notification

Send requests

CS 5381 - Topics in Software Design: Software Architecture

the c2 architectural style 3 6
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

CS 5381 - Topics in Software Design: Software Architecture

the c2 architectural style 4 6
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

CS 5381 - Topics in Software Design: Software Architecture

the c2 architectural style 5 6
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

CS 5381 - Topics in Software Design: Software Architecture

the c2 architectural style 6 6
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

CS 5381 - Topics in Software Design: Software Architecture

example
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

CS 5381 - Topics in Software Design: Software Architecture

the argo design environment
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)

CS 5381 - Topics in Software Design: Software Architecture

related work
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

CS 5381 - Topics in Software Design: Software Architecture