What is an architecture?

advertisement
Architecture Description Languages
Mohamed Soliman
Basem Shihada
Andreas Grau
(msoliman@bcr6.uwaterloo.ca)
(bshihada@bbcr.uwaterloo.ca)
(agrau@elora.math.uwaterloo.ca)
Goals
Introduce Architecture Description
Languages
 Present three different classes of
ADLs and their application
 Show modeling in ADLs with
components

2
Introduction

Software can have high complexity
– Coarse grain elements help to abstract
– Formal architecture is needed
•
•
•
•
•
Model System
Test System
Avoid wrong decisions on architectural (early!)
Reusability
Reduce development costs
=> ADL
3
Introduction
Nenad Medvidovic (neno@usc.edu)
4
Introduction
Many ADLs have been proposed
ACME
Aesop
ArTek
C2
CODE
Darwin
Demeter
FR
Gestalt
LILEANNA
MetaH
ModeChart
ObjectTime
Rapide
RESOLVE
SADL
UML
UniCon
Weaves
Wright
5
Introduction
What is an architecture?
“Software architecture involves the description of elements
from which systems are built, interactions among those
elements, patterns that guide their composition, and
constraints on these patterns.”
--Shaw and Garlan
Mary.Shaw@cs.cmu.edu, Garlan@cs.cmu.edu
6
Introduction
What is an ADL then?


An ADL is a language that provides features for modeling a
software system’s conceptual architecture.
Essential features: explicit specification of
–
–
–
–

components
interfaces
connectors
configurations
Desirable features
– specific aspects of components, connectors, and configurations
– tool support
7
Mohamed Soliman
8
Rapide: An Event Based Architecture
Description Language
Outline

Background
 Rapide Design goals
 ADL Requirements in Rapide
 Architecture components
 The Event Model and Posets
 Connecting Components – The Architecture
 More Rapide Features
 Discussion
 Conclusion
10
Background
Created in Stanford for DARPA – early 90’s
 Based on work by Prof. D. Luckham
– Logician
– Worked in concurrent Ada
– Co-founder of Rational Software, Inc.
 By then, and still, describing Software Architecture
needed more attention
 Hardware Description was more mature (VHDL)
 Now, it is widely accepted ADL

11
Rapide goals

To be an Executable Architecture Description
Language (EADL) that
– Provides constructs for defining executable
prototypes of architectures
– Adopts an execution model in which the
concurrency, synchronization, data flow and
timing properties of the prototype are explicitly
represented
12
Architecture Specification
1. Interfaces
(External component behavior)
2. Connections – wires
3. Constraints
(on interface & conn.)

Architecture
13
ADL requirements in Rapide
Component
Abstraction
Communication
Abstraction
Communication
Integrity
- Interface
- Behavior
- Conn. uses interface
- Allow exec. / analysis
- Use of connection
- Ind. Communication
Dynamism
Causality and Time
Hierarchical
Refinement Relativity
- # of components &
connections may vary
During execution
- Causal dependency
of behaviors
- Orders of events
- Poset
- Arch. Vs. sub-arch.
- Reference. Arch.
14
Component Abstraction

Description of rich interfaces is needed – must go beyond
traditional information hiding
• Why?

Interface type allows two methods of communication:
– Synchronous: by function calls (provides, requires)
• Provides: declared functions in module
• Requires: invoked functions by the module
– Asynchronous: by events (in, out)
• In: what actions the component will do on observing an event
• Out: what events the component will generate to the parent
architecture (other components)
• In, Out actions are glued by connectors
15
Component Example
Type AutoControls is interface
Provides
function speedometer return MPH;
function Gas return Gallons;
in action Steering_Wheel (A:Angle),
in action Accelerator(P : Position),
in action Brake(p : Pressure);
out action Warning(S : Status);
behavior
Speedometer > 55 ||>
Accelerator(0) || Brake(High) ||
Warning(On);;
……..
End AutoControls;
16
Events in Rapide

Events: tuples of information containing:
-

What generated the event
Data values
- What activity was done
- Time ,… etc
Causality between events: Components reactive behavior
– E.g. component X reacted to event EV1 by generating event EV2

Poset: Partially Ordered Set of Events
– Dependencies and independencies of events (ordering)
– Architecture Execution generates posets as well

Event Patterns: Expressions on events used for :
–
–
–
–
–
Defining behavior of components and connections
Mapping between architectures
Imposing constraints on posets Constraining behavior
Generate behavior (by generating posets)
E.g.
A(?I) Where ?I > 4
17
Connecting Components


An interface connection is a set of
- Interfaces - Connections - Constraints
Connections:
– Connection Rules


- Creation Rules
Creation Rules: event conditions leading to creation
of new components (for Dynamic architectures)
Connection Rules:
– Implementation independent relationship between events or
functions
– Uses event pattern matching
– Static and dynamic architectures
18
Connection Rules




‘Wire up’ components
Provide communication abstraction
Two patterns separated by (to, =>, ||>)
– Syntax: [Trigger op Right]
– Functions or Events
Connects (in, out) - Synchronous
(requires, provides) – Asynch.
19
Example Connections
A Basic Connection
?P : Person; ?B : Button;
Connections
?P.Push(?B) to Button_light_On(?B);;
A Dynamic Architecture
with Airplane, Control_center;
architecture Air_Control_sector is
?A : Airplane; ?M : Msg;
SFO: Control_center
Connections
?A.Radio(?M) Where ?A.InRange(SFO)
||> SFO.Receive(?M);;
End Air_Control_Sector;
Modem and Computer
with computer, modem;
architecture Office is
PC : Computer;
Mod: Modem;
….
Connect
-- bi-directional flow of events
PC.S1 To Mod.S;
End Office;
20
Constraints

Example: Component uses a particular
communication protocol
 Generated events in interfaces and
connections must match the constraints
(Constraint section)
 Along with connection rules, they provide
communication integrity
21
ADL requirements in Rapide
Component
Abstraction
Communication
Abstraction
Communication
Integrity
- Interface
- Behavior
- Conn. uses interface
- Allow exec. / analysis
- Use of connection
- Ind. Communication
Dynamism
Causality and Time
Hierarchical
Refinement Relativity
- # of components &
connections may vary
During execution
- Causal dependency
of behaviors
- Orders of events
- Poset
- Arch. Vs. sub-arch.
- Reference. Arch.
22
Dynamic Architectures

Static Architectures: declare the components in
object declarations

Dynamic Architectures (Evolution):
– Number of components is not known
– Declare the interface types of components
– By using component creation rules
23
Hierarchy




Hierarchical composition is an important feature of
ADLs
Connecting components should result in a new
component
Done in Rapide by binding architectures to interfaces
using connections
The Architecture is a component ->
[Interconnection of Architectures – ACME]
24
Relativity of Architectures

Comparing the behavior of one Architecture
(connected components) to another architecture
 Idea: Study how events of one system correspond to
the other
 Different levels of abstraction
– E.g.: Many events in one system map to just one
 Done by MAPPINGS
– Map from one name to another - Mapping rules
 Several advantages:
– Comparing different versions - Refinement
– Evaluate proposed architectures
25
vs. reference architecture
Architecture Execution

To test consistency of the interfaces and
connections
 To discover various aspects of the
architecture’s behavior
 To test that communication complies with
constraints
26
Discussion

Rapide provides only one single view of a system –
graphical tools support may help
Components are first-class entities while connectors
are not first-class entities as in Unicon, for example
– In Rapide, connectors are defined in the
architecture entity
Rapide is powerful but complex …

Rapide and coordination models!


27
Conclusion

Rapide is an Executable Architecture Description
Language (EADL) that is capable of:
– Modeling and describing architectures by
connecting components
– Modeling and simulation of the dynamic behaviors
by using Posets
 Components, Connectors and Constraints are the
basic entities
 The Poset execution model is a powerful tool for
analyzing system behavior – Not in other ADLs
 Dynamic Architectures, relativity, and hierarchical
refinement are achieved with Rapide
28
Questions?!
Basem Shihada
Break!
29
ACME: Architecture Description
Interchange Language
http://bbcr.uwaterloo.ca/~bshihada/cs854/acme.pdf
Presentation Outline







Background
Motivation
ACME
ACME Goals
ACME Capabilities
ACME Features
ACME Kernel







ACME Kernel Extensions
ACME Properties
Interchange History
ACME Infrastructure
Wright to Rapide
Ongoing Work
Conclusion
31
Background





Started early 1995
By D. Garlan, R. Monroe, & D. Wile, from
Garnegie Mellon Univ. & USC/Inf. Sciences
Institute
Categorized under the architecture
interchange languages
Support the interchange of architectural
description between variety of architectural
design tools.
A new design & analysis tools can be built
without rebuild standard infrastructure. 32
Motivations




Different ADL’s provides certain
distinctive capabilities
Each operates in stand-alone fashion
Many common aspects already
implemented in each ADL
Adopting certain ADL requires highlearning curve
33
ACME

Acme is simple, generic software
architectural description language that
provide generic, extensible infrastructure
for describing , representing, generating,
and analyzing software architecture
descriptions
 Consist of Acme Language and Acme Tool
Developer
34
ACME Goals

Interchange format for architectural
development tools and environments
 Underlying representation for
developing new tolls for analyzing
and visualizing architectures
 Foundation for developing new,
domain-specific ADLs
35
ACME Goals cont.

Vehicle for creating conventions:
consensus building
– Semantic foundations
• Refinement
• Event-based
• Temporal logic
– Architecture families
• Architecture evolution
• Dynamic architectures

Expressive descriptions that are easy for
humans to read and write.
36
ACME Capabilities
1.
2.
3.
Architectural Interchange
Extensible foundation for new
architecture design & analysis tools
Architectural Description
37
ACME Features
An architecture ontology consisting of seven
basic architectural design elements
2. A flexible annotation mechanism sporting
association of non-structure information
using externally defined sub languages
3. A type mechanism for abstracting common,
reusable architecture phrase and styles
4. An open semantic framework for analysis
about architectural descriptions
1.
38
ACME Kernel







Components (box): Primary computations
elements and data stores.
Connectors (Arrow): Interaction among
components
Systems: configuration of components and
connectors
Ports: components interfaces
Roles: connectors interfaces
Representations
Rep-maps: maps the internal and external
(interfaces, ports, ..etc)
39
ACME Kernel
40
ACME Kernel Extensions

Need to extend kernel to as large a language
as is acceptable by the community
 Templates
– Typed macros
– With typed arguments

Families: Styles and other constrained
aggregates
– Specification as a set of templates and types
– Declaration of restriction to family enforces
template usage
41
ACME Properties
Architectural Integration properties
Annotation
Properties list
42
ACME Properties
43
Interchange History

Wright -> Rapide Translation
– Initial translation technology developed
– One-way translation (not round trip)

Aesop <-> ACME <-> UniCon
–
–
–
–
Aesop <-> ACME 1.0 works
Aesop <-> ACME 3.0 underway
Aesop <-> ACME 3.0 underway
Aesop <-> ACME <-> UniCon works
44
ACME Infrastructure
ADL Converter
ACME
Description

ACME
Parser
ACME
Access
Methods
Description
Target ADL
ACME-Lib infrastructure
–
–
–
–
Extensible ACME parser & unparsed
Extensible ACME Translation tools
Native-ADL embeddable support
Support for design traversal, manipulation, and
type-checking in ACME-native tools
45
Wright to Rapide
46
Ongoing Work

Prototypes for several ACME tools to
be provided to the architecture and
generation EDCS cluster
 Prototypes for tools that allow others to
provide domain-specific analyzers
 Promised, type checker, visualization
tools
47
Conclusion





Architectural description Integration
Language
Capable of
– Architectural integration toolkit
– Extendable foundation for new tools
– Architecture Description.
Consist of several elements
Elements supported with properties
Open semantic framework
48
Questions?
Break!
49
Andreas Grau
50
Unified Modeling Language
UML
Motivation, History
 Overview of capabilities
 Architecture in UML
 UML as ADL

– Things in UML but not in ADLs
– Drawbacks of UML
– Different approaches
– Commercial tools
52
UML: Motivation
Provide a standardized notation for
graphical models of software
 Model systems from concept to
executable Object Orientation
 Useable for humans and computers

tools
53
UML: History
Based on OO-design (70s, 80s)
 Unification of Booch, OOSE, OMT
 First release v0.8 in 1995 by OMG
 Latest version: 1.4 (2001)

54
UML: Motivation
Large set of predefined constructs
 Extensible
 Semi-formal definition and semantics
 Widely known

Developers already use UML
55
UML: Overview

A UML model consists of several partial models
 Classes with attributes, operations and
relations
 States and behaviour of classes
 Packages of classes and their dependencies
 Scenarios of system usage
 Distributed component behaviour and
communication
 …
56
UML: Overview

A model is represented by
– Graphical notation (meta model)
– Descriptive text
– Constraints
Flight
type :
enum of cargo, passenger
0..*
flights
1
Airplane
type :
enum of cargo, passenger
57
UML for Architecture
Design view
Implementation view
Use cases view
Process view
Deployment view
58
UML as ADL
“Yes, UML is an ADL” (Grady Booch,
Rational Rose)
(UML is used
visualizing
specifying
constructing and
documenting
the aspects of a software intensive system.)
59
UML as ADL
Several problems occur: In the literature
 Description of connectors as first class entities
 Support of different styles
 Description of interfaces as first class entities
 Topological constraints
 Semantically insufficient for tools analysis
 Focus on physical instead of logical components
[41], [61] on Medvidovic
60
Integrate UML and ADLs
Define UML meta-model similar to an
existing ADL
 Use OCL for constraints, invariants,
pre- and postconditions

61
Integrate UML and ADLs
Application of UML in software architecture
1.
Use UML “as is”
2.
Extend UML to directly support architectural
concerns
3.
Use UML with build-in extensions



Select meta class close to ADL
Define stereotypes and apply them to class instances
Class semantics
arereal
constraint
to that of the ADL
ROOM,
ADLs
62
Integrate UML and ADLs
Attendee-1
Attendee-2
Attendee-3
Important
Attendee-1
Important
Attendee-2
AC
IAC
MC
Meeting
Initiator
<<Component>>
<<Component>>
<<Component>>
Attendee-1
Attendee-2
Attendee-3
<<CB>>
<<CB>>
<<Component>>
ImportantAttendee-1
<<CB>>
<<Component>>
ImportantAttendee-2
<<CB>>
<<CB>>
<<Connector>>
<<Connector>>
AC
IAC
<<BB>>
<<BB>>
<<Connector>>
MC
<<BC>>
<<Component>>
Nenad Medvidovic (neno@usc.edu)
MeetingInitiator
63
Integrate UML and ADLs
UML “as is”
UML “constrained”
UML “extended”
•Manipulate by
standard tools
•Ensures
Architectural
constraints
•“native” support for
architectures
•Architectural
constraint violations
•readable
•Requires complete
style specifications
•Requires special
tools
•May result in
incompatible UML
versions
64
ADL-UML extension
Use UML to refine a design in an ADL
 Still problems:

– Inter view consistency
– Automated design tools (partly solved)
– Not a standard
65
UML: Commercial tools



Rational Rose, USC-CSE (C2Sadel+UML)
Tools help refining an architectural system model
in an ADL to an UML design
ADLs and UML can complement each other
Dradel, SAAGE
– UML designers profit from analyses capabilities
– Architects profit from UML tools (code generation,
analysis …)
66
UML: Discussion




UML is widely used in the industry to model
software (architectural constraints are missing)
UML can be extended to be an ADL
UML can be complemented with an ADL
UML 2.0 will offer support of Architectural
constraints
67
Conclusions
68
Comparison

Rapide
– ADL with event based coordination

UML
– Widely used graphical OMG standard

ACME
– Interchange between ADLs
69
Summary



Architecture is Components +
Connectors + Topology
ADLs can help to describe, test, analyse
and design architecture
People in the literature disagree what
ADLs should provide
– Rapide and UML are different design
languages with different approaches
– ACME can connect different ADLs
70
Questions?!
?
71
Download