Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "A component- and message-based architectural style for GUI software"— Presentation transcript:

1 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 Topics in Software Design: Software Architecture

2 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 Topics in Software Design: Software Architecture

3 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 Topics in Software Design: Software Architecture

4 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 Topics in Software Design: Software Architecture

5 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 Topics in Software Design: Software Architecture

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 Send requests Receive notification Feb 26, 2008 CS Topics in Software Design: Software Architecture

7 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 Topics in Software Design: Software Architecture

8 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 Topics in Software Design: Software Architecture

9 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 Topics in Software Design: Software Architecture

10 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 Topics in Software Design: Software Architecture

11 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 Topics in Software Design: Software Architecture

12 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 Topics in Software Design: Software Architecture

13 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 Topics in Software Design: Software Architecture


Download ppt "A component- and message-based architectural style for GUI software"

Similar presentations


Ads by Google