Professional Documents
Culture Documents
ADL Roles
s
Provide models, notations, and tools to describe components and their interactions Support for large-scale, high-level designs Support for principled selection and application of architectural paradigms Support for abstractions
t t
user-dened application-specic
ADL Examples
An ACME architecture
Client
RPC
Server
System simple_cs = { Component client = {Port send-request} Component server = {Port receive-request} Connector rpc = {Roles {caller, callee}} Attachments : { client.send-request to rpc.caller; server.receive-request to rpc.callee } }
ADL Examples
ADL Denition
s
ADL Denition
t
An ADL is a language that provides features for modeling a software systems conceptual architecture. components
t
interfaces
t t s
connectors congurations specic aspects of components, connectors, and congurations tool support
Desirable features
t
ADL Examples
Differentiating ADLs
s
implementation constraining implementation independent high-level design notations module interconnection languages (MIL) object-oriented notations programming languages formal specication languages
February 25, 1999
Related Notations
t t t t t
ADL Examples
a set of ports specication of component behavior (comp spec) a set of roles specication of role coordination (glue)
t t s
All specications are CSP protocols Used for detecting deadlocks in an architecture
ADL Examples
Developed at CMU Universal Connector language Predenes supported component and connector types
t t
component types: module, computation, lter, process, ... connector types: pipe, le IO, procedure call, data access, remote proc call, ...
implementation constraining
ADL Examples
UniCon syntax
s
interface
t t
predened set of players and attributes predened set of attributes for each player
t t
implementation protocol
t t
connector types
t
predened set of roles and attributes predened set of attributes for each role
t t t
implementation
ADL Examples
ADL Examples
UniCon Conguration
USES p1 PROTOCOL Unix-pipe USES sorter INTERFACE Sort-lter CONNECT sorter.output TO p1.source USES p2 PROTOCOL Unix-pipe USES printer INTERFACE Print-lter CONNECT sorter.input TO p2.sink
ADL Examples
10
Developed at Stanford Focuses on modeling and simulation of dynamic behavior described by an architecture
t t t
partially ordered event sets (posets) poset-based constraints event patterns to recognize posets types constraint pattern architecture executable
ADL Examples
11
Dependent Both Distinct Either Independent After Iteration Guarded pattern useful in specifying dynamic recongurations
ADL Examples
12
Rapide Syntax
s
An architecture consists of
t
provides requires
t t
ADL Examples
13
Rapide Component
type Application is interface in action Request(p : params); out action Results(p : params); behavior (?M in String) Receive(?M) => Results(?M);; end Application;
ADL Examples
14
small number of language constructs semantics described in rst-order logic does not include descriptions of requests/notications separates provided from required component services separates interface from operations
ADL Examples
15
C2SADEL
s
Syntax
An architecture consists of
t
component types
t t t t t
local variables
preconditions postconditions
ADL Examples
16
C2SADEL
t
Syntax (cont.)
connector types
t
ADL Examples
17
C2SADEL
t
ADL Examples
18
Component Evolution
s
component WellADT is subtype Matrix (beh) component WellADT is subtype Matrix (beh \and \not int)
CS 612: Software Architectures February 25, 1999
ADL Examples
19
ADL Examples
20
ADL Examples
21
ADL Examples
22
C2SADEL
s
Interface Elements
C2 Messages
incoming requests outgoing notications Required interface elements outgoing requests incoming notications This is a greatly simplied correspondence!