Architecture Description Languages: An Overview
Download
Report
Transcript Architecture Description Languages: An Overview
Tw Cook
+1-512-338-3522
[email protected]
Architecture
Definition
ADLs
Architecture vs.
Design
ADLs Considered
ACME
Rapide
Wright
Aesop
Unicon
UML
Approaches
Conclusion
Architecture Description
Languages: An Overview
Architecture – A Definition
“The software architecture of a program or
computing system is the structure or structures of
the system, which comprise software components,
the externally visible properties of those
components, and the relationships among them.”
– from Software Architecture in Practice,
Bass, Clements, and Kazman
Microelectronics
and Computer
Technology
Corporation
2 2-Jul-99
Architecture Description Languages
Microelectronics
and Computer
Technology
Corporation
3 2-Jul-99
The positives
ADLs represent a formal way of representing architecture
ADLs are intended to be both human and machine
readable
ADLs support describing a system at a higher level than
previously possible
ADLs permit analysis of architectures – completeness,
consistency, ambiguity, and performance
ADLs can support automatic generation of software
systems
The negatives
There is not universal agreement on what ADLs should
represent, particularly as regards the behavior of the
architecture
Representations currently in use are relatively difficult to
parse and are not supported by commercial tools
Most ADL work today has been undertaken with academic
rather than commercial goals in mind
Most ADLs tend to be very vertically optimized toward a
particular kind of analysis
Architecture vs. Design
Architecture: where non-functional decisions are cast,
and functional requirements are partitioned
Design: where functional requirements are accomplished
non-functional
requirements
(“ilities”)
functional
requirements
(domains)
Microelectronics
and Computer
Technology
Corporation
4 2-Jul-99
architecture
(ADL)
design
(UML)
Heuristic: it is necessary to go one level deeper to validate choices, so
the architect has to do a high-level design to validate the partitioning
Quality Attributes and Architectural
Strategies
Dependability
Interoperability
Usability
Performance
Positive
Effects
Adaptability
Microelectronics
and Computer
Technology
Corporation
5 2-Jul-99
Cost
Schedule
Negative
Effects
Assurance monitoring &
control
Layering
Diagnostics
Pipelining
Architecture balance
Parallelism
GUI-driven
API-driven
Performance monitoring &
control
Change-source hiding
COTS/reuse-driven
Common Concept of Architecture:
Object Connection Architecture
Microelectronics
and Computer
Technology
Corporation
6 2-Jul-99
Configuration consists of the interfaces and
connections of an object-oriented system
Interfaces specify the features that must be
provided by modules conforming to an interface
Connections represented by interfaces together with
call graph
Conformance usually enforced by the programming
language
decomposition - associating interfaces with unique
modules
Interface conformance - static checking of syntactic
rules
communication integrity - visibility between modules
An Object Connection Architecture
Microelectronics
and Computer
Technology
Corporation
7 2-Jul-99
Object Connection Architecture
Microelectronics
and Computer
Technology
Corporation
8 2-Jul-99
The good news
Mature development languages - C++, Ada, Java
Visual modeling and automatic code generation tools
Standardized modeling language - UML
The bad news
Modules must be built before the architecture is
defined
Architecture not invariant under changes to system
Conformance of a system to an architecture is
minimal
Can not be used to plan a system
Really not an architecture at all!
Another Concept of Architecture:
Interface Connection Architecture
Microelectronics
and Computer
Technology
Corporation
9 2-Jul-99
Expands the role of interfaces and connections
Interfaces specify both “required” and “provided”
features
Connections are defined between “required” features
and “provided” features
Consists of interfaces, connections and constraints
Constraints restrict behavior of interfaces and
connections in an architecture
Constraints in an architecture map to requirements
for a system
An Interface Connection Architecture
provides
requires
connection
interface
module
Microelectronics
and Computer
Technology
Corporation
10 2-Jul-99
Interface Connection Architecture
Microelectronics
and Computer
Technology
Corporation
11 2-Jul-99
The Good news
Improved conformance of a system to an architecture
Architecture can be built before modules are
implemented
The bad news
No emerging standard
Poor quality tools
Most ADLs implement an interface connection
architecture.
Software Architecture: ADL Perspective
Microelectronics
and Computer
Technology
Corporation
12 2-Jul-99
The ADL community generally agrees that Software
Architecture is a set of components and the
connections among them.
components
connectors
configurations
constraints
ADLs Considered by MCC
Microelectronics
and Computer
Technology
Corporation
13 2-Jul-99
Leading candidates
ACME (CMU/USC)
Rapide (Stanford)
Wright (CMU)
Unicon (CMU)
Secondary candidates
Aesop (CMU)
MetaH (Honeywell)
C2 SADL (UCI)
SADL (SRI)
Others
Lileanna
UML
Modechart
ACME
Microelectronics
and Computer
Technology
Corporation
14 2-Jul-99
ACME was developed jointly by Monroe, Garlan
(CMU) and Wile (USC)
ACME is a general purpose ADL originally designed
to be a lowest common denominator interchange
language
ACME as a language is extremely simple (befitting
its origin as an interchange language)
ACME has no native behavioral specification facility
so only syntactic linguistic analysis is possible
there are currently efforts under consideration to
define a behavioral semantics for ACME, possibly
along the Wright/CSP line
ACME has no native generation capability
ACME has seen some native tool development, and
there are indications of more, as well as use of other
language tools via interchange
An ADL Example (in ACME)
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}
}
rpc
client
server
caller
send-request
Microelectronics
and Computer
Technology
Corporation
15 2-Jul-99
callee
receive-request
Rapide
Microelectronics
and Computer
Technology
Corporation
16 2-Jul-99
Rapide was developed by Dr. David Luckham at
Stanford
Rapide is a general purpose ADL designed with an
emphasis on simulation yielding partially ordered
sets of events (posets)
Rapide as a language is fairly sophisticated,
including data types and operations
Rapide analysis tools focus on posets
matching simulation results against patterns of
allowed/prohibited behaviors
some support for timing analysis
focus on causality
Rapide has some generation capability since Rapide
specifications are executable
Rapide has a fairly extensive toolset
The Rapide Model
Microelectronics
and Computer
Technology
Corporation
17 2-Jul-99
Rapide is a concurrent, object-oriented , event-based
simulation language
Defines and simulates behavior of distributed object
system architectures
Produces a simulation represented by a set of events
(poset)
Events are ordered with respect to time and
causality
System requirements are expressed as constraints
on time and concurrent patterns of events
Posets enable visualization and analysis of an
execution
The Rapide Model (cont’d)
Microelectronics
and Computer
Technology
Corporation
18 2-Jul-99
Components execute independently
Components both observe and generate events
Each event represents the occurrence of an activity
Generates dependent events
Reactive rules in interface behaviors (i.e. transition rules)
Reactive processes in modules (i.e. when statements)
Events generated by sequential execution
Shared objects via references
Generates timed events
Interface behavior or module can be timed
Events receive start and finish times within scope of its
clock
Events can be synchronized to a clock
Rapide Architectural Elements
Components
components
Architecture
connections
constraints
Components
interface
interface
Component
architecture
interface
module
Microelectronics
and Computer
Technology
Corporation
19 2-Jul-99
Rapide Architectural Elements (cont’d)
Components
Interface objects
Architecture that implements an interface
Module that implements an interface
Connections
Connects “sending interfaces” to “receiving
interfaces”
Components communicate through connections by
calling actions or functions in its own interface
Events generated by components trigger event
pattern connections between their interfaces
Three types of connections:
Microelectronics
and Computer
Technology
Corporation
20 2-Jul-99
Basic connections (A to B)
Pipe connections (A => B)
Agent connections (A ||> B)
Architectural Elements (cont’d)
Constraints - Pattern
Bound execution in terms of event patterns
Appear in an interface and/or architecture definition
[label] filter_part constraint_body
Microelectronics
and Computer
Technology
Corporation
21 2-Jul-99
Filter creates context
Constraint body constrains computation in context
Constraints - Sequential
Bound execution in terms of boolean expressions
Normally appear in module level behavior
Applied to parameters, types, objects and statements
Configuration
The architecture itself
Supports hierarchical decomposition (I.e nested
architectures)
Contains components, connections, and constraints
Architectural Elements (cont’d)
Components
provides
part
requires part
Interface
Components
action part
in actions
out actions
service part
state
Components
behavior
part
state transitions
constraint part
pattern constraints
Components
private part
Microelectronics
and Computer
Technology
Corporation
22 2-Jul-99
functions
objects
types
interface with no
private part
Architectural Elements (cont’d)
Components
components
connections
Components
initial part
Module
statements
processes
Components
final part
statements
constraints
Components
handlers
domain
Map
Microelectronics
and Computer
Technology
Corporation
23 2-Jul-99
range
Components
rule part
constraints
state transitions
A Simple Specification in Rapide
type Producer (Max : Positive) is interface
action out Send (N: Integer);
action in Reply(N : Integer);
behavior
Start => send(0);
(?X in Integer) Reply(?X) where ?X<Max => Send(?X+1);
end Producer;
type Consumer is interface
action in Receive(N: Integer);
action out Ack(N : Integer);
behavior
(?X in Integer) Receive(?X) => Ack(?X);
end Consumer
Microelectronics
and Computer
Technology
Corporation
24 2-Jul-99
architecture ProdCon() return SomeType is
Prod : Producer(100); Cons : Consumer;
connect
(?n in Integer) Prod.Send(?n) => Cons.Receive(?n);
Cons.Ack(?n) => Prod.Reply(?n);
end architecture ProdCon;
Wright
Wright was developed by Dr. David Garlan at CMU
Wright is a general purpose ADL designed with an
emphasis on analysis of communication protocols
Wright uses a variation of CSP to specify the behaviors of
components, connectors, and systems
Microelectronics
and Computer
Technology
Corporation
25 2-Jul-99
CSP - Communicating Sequential Processes - process algebra
developed by C. A. R. Hoare
Wright as a language focuses primarily on the basic
component/connector/system paradigm
Wright is very similar syntactically to ACME and Aesop
Wright analysis focuses on analyzing the CSP behavior
specifications.
Any CSP analysis tool or technique could be used to
analyze the behavior of a Wright specification
Wright does not currently have a generation capability
Wright has minimal native tool support (but CSP tools
could be used)
A Simple Specification in Wright
System simple_cs
Component client =
port send-request = [behavioral spec]
spec = [behavioral spec]
Component server =
port receive-request= [behavioral spec]
spec = [behavioral spec]
Connector rpc =
role caller = (request!x -> result?x ->caller) ^ STOP
role callee = (invoke?x -> return!x -> callee) [] STOP
glue = (caller.request?x -> callee.invoke!x
-> callee.return?x -> callee.result!x
-> glue) [] STOP
Instances
s : server
c : client
r : rpc
Attachments :
client.send-request as rpc.caller
server.receive-request as rpc.callee
end simple_cs.
Microelectronics
and Computer
Technology
Corporation
26 2-Jul-99
Aesop
Microelectronics
and Computer
Technology
Corporation
27 2-Jul-99
Aesop was developed by Dr. David Garlan at CMU
Aesop is a general purpose ADL emphasizing
architectural styles
Aesop is also a toolset and a framework
Aesop the ADL is very similar to ACME/Wright
Emphasis on styles reflected in more sophisticated
hierarchical facilities centered around subtyping and
inheritance
Wright analysis focuses on analyzing the CSP
behavior specifications.
Any CSP analysis tool or technique could be used to
analyze the behavior of a Wright specification
Aesop does have limited generation capability for
some styles
Interchange facilities to and from Aesop via ACME
exist and have been used to make Aesop editing
tools available to other ADLs, notably Wright
Unicon
Microelectronics
and Computer
Technology
Corporation
28 2-Jul-99
Unicon was developed by Dr. Mary Shaw at CMU
Unicon is a general purpose ADL designed with an
emphasis on generation of connectors
Unicon developed to support treatment of connectors
as first class objects by providing for the generation
of systems with explicit connectors
Unicon as a language focuses primarily on the basic
component/connector/system paradigm but with an
emphasis on architectural styles
Emphasis on styles simplifies generation efforts
Unicon has a generation capability
Others …
Microelectronics
and Computer
Technology
Corporation
29 2-Jul-99
MetaH
Developed by Honeywell, a domain specific ADL
aimed at guidance, navigation, and control
applications with ControlH
Sophisticated tool support available
C2 SADL
Developed by Taylor/Medvidovic (UCI), style specific
ADL, emphasis on dynamism
Still in prototype stage
SADL
Developed by Moriconi and Riemenschneider (SRI),
emphasis on refinement mappings
UML as an ADL
Microelectronics
and Computer
Technology
Corporation
30 2-Jul-99
The Positive
lowers entry barrier, mainstreams modeling, tools
Shortcomings of UML as an ADL
Weakly integrated models with inadequate semantics
for (automated) analysis
Connectors are not first class objects
Visual notation with little generation support,
hidden and ambiguous relationships between views,
both too much and too little
Approaches to Architecture
Academic Approach
Microelectronics
and Computer
Technology
Corporation
31 2-Jul-99
Industrial Approach
focus on analytic MCC’s role
evaluation of
architectural models
focus on wide range of
development issues
individual models
families of models
rigorous modeling
notations
practicality over rigor
powerful analysis
techniques
architecture as the “big
picture” in development
depth over breadth
breadth over depth
special-purpose solutions
general-purpose solutions
Source: N. Medvidovic, USC
Conclusions
Microelectronics
and Computer
Technology
Corporation
32 2-Jul-99
There is a rich body of research to draw upon
Much has been learned about representing and
analyzing architectures
Effort is needed now to bring together the common
knowledge and put it into practice
For More Information
Microelectronics
and Computer
Technology
Corporation
33 2-Jul-99
ACME: http://www.cs.cmu.edu/~acme
Rapide: http://pavg.stanford.edu/rapide/
Wright:
http://www.cs.cmu.edu/afs/cs/project/able/www/wright/
index.html
Aesop:
http://www.cs.cmu.edu/afs/cs/project/able/www/aesop/
aesop_home.html
Unicon:
http://www.cs.cmu.edu/afs/cs/project/vit/www/unicon/i
ndex.html
C2 SADL: http://www.ics.uci.edu/pub/arch/
SSEP: http://www.mcc.com/projects/ssepp
ADML: http://www.mcc.com/projects/ssepp/adml
A possibly more current version of this presentation can
be found at:
http://www.mcc.com/projects/ssepp/adml/tog