Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— 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 5381 - Topics in Software Design: Software Architecture 1

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

3 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 3

4 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 4

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

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

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

8 The C2 architectural style (4/6) Architecture composition and properties Feb 26, 2008 CS 5381 - Topics in Software Design: Software Architecture 8 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

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

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

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

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

13 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 13


Download ppt "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."

Similar presentations


Ads by Google