Download presentation
Presentation is loading. Please wait.
Published byStuart Shortridge Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.