Title: Architecture Description Languages (ADLs)
1Architecture Description Languages (ADLs)
2A Brief History of ADLs
- Software architecture emerged as a research
discipline in the early 1990s - Soon thereafter, many notations were either
invented, recast, and/or argued for as
architecture description languages - Each provided modeling capabilities geared at
software design - Though not necessarily architecture!
- They saw varying degrees of adoption and use
3 4So, What Was the Answer?
- An ADL is a language that provides features for
modeling a software systems conceptual
architecture, distinguished from the systems
implementation. - An ADL must support the building blocks of an
architectural description - Components
- Interfaces
- Connectors
- Configurations
5What Happened to the ADLs?
- Some of the obvious reasons
- Often targeted at research environments
- Awkward syntax and/or semantics
- Modeling rigidity
- Limited and idiosyncratic analysis support
- Inadequate tool support
- UML
- Video killed the radio star
6Examples on ADL
- Early generations
- Darwin, Rapide, Wright
- Domain and style specific ADLs
- Koala, AADL
- Extensible ADLs
- Acme, ADML (an XML based ADL syntax derived from
Acme), xADL
7What Does/Did an ADL Description Look Like?
type Application is interface extern action
Request(p params) public action Results(p
params) behavior (?M in String) Receive(?M) gt
Results(?M) end Application
8What Does/Did an ADL Description Look Like?
9What Does/Did an ADL Description Look Like?
10Classifying ADLs
- Essential features
- Components
- Connectors
- Interfaces
- Configurations
- Desirable features
- Specific aspects of components, connectors, and
configurations - Tool support
- Approaches to modeling configurations
- Implicit configuration
- Explicit configuration
- Approaches to associating architecture with
implementation - Implementation constraining
- Implementation independent
11(No Transcript)
12(No Transcript)
13(No Transcript)
14(No Transcript)
15- Brilliant!
- So, what went wrong?
16Remember This?
Software Architecture
17Where 1G ADLs Lived
Software Architecture
18So, a Deeper Reason
- 1G ADLs focused exclusively on technology
- So did our study
- The broader context was completely missing
- Relation to system requirements
- Constraints imposed by implementation platforms
- Characteristics of application domains
- Organizational structure and politics
- Business model
- Position in the marketplace
19How Do We Define an ADL Then?
- An architectural model is an artifact or document
that captures some or all of the design decisions
that make up a systems architecture. - Architectural modeling is the effort to capture
and document the design decisions that make up a
systems architecture. - An architecture description language is a
notation in which architecture models can be
expressed.
202G ADLs
- Only a handful of 1G ADLs have stuck around
- but, boy, have they changed
- They evolved into 2G ADLs
- UML 2.0 ? UML 1.x
- AADL ? MetaH
- Koala ? Darwin ? Conic
- xADL 2.0 ? xADL 1.0 ? C2
- All have strong technological foci
- Yet they are very different from each other
21UML 2.0
- De facto standard software design language
- Developed by OMG
- A Swiss Army Knife of notations
- Has a number of architectural constructs
- Ubiquitous
- Primary focus to conquer the world
22UML 2.0 in Action
23UML 2.0 in Action
24UML 2.0 in Action
25UML 2.0 Under the Lampposts
Software Architecture
26UML 2.0 Under the Lampposts
Software Architecture
27UML 2.0 Under the Lampposts
Software Architecture
Business
28UML 2.0 Under the Lampposts
Software Architecture
Business
Domain
29AADL
- Architecture Analysis and Design Language
- Initially stood for Avionics ADL
- Primarily textual
- Very detailed
- An AADL component runs on a processor, which runs
one or more processes, each of which contains one
or more threads of control, all of which can
receive instructions through in ports and send
data through out ports over a bus - Primary focus embedded, real-time, hybrid
systems
30AADL in Action
system implementation sensor_type.temperature subc
omponents the_sensor_processor
processor sensor_processor_type
the_sensor_process process
sensor_process_type.one_thread connections
bus access network -gt the_sensor_processor.networ
k event data port sensed -gt
the_sensor_process.sensed event data
port control -gt the_sensor_process.
control properties Actual_Processor_Bindin
g gt reference the_sensor_processor
applies to the_sensor_process end
sensor_type.temperature
31AADL Under the Lampposts
Software Architecture
32AADL Under the Lampposts
Software Architecture
33AADL Under the Lampposts
Software Architecture
34AADL Under the Lampposts
Software Architecture
Business
35Koala
- Developed at Philips
- In collaboration with Imperial College London
- Used in the consumer electronics domain
- Both graphical and textual
- Primary focus management of product populations
- Modeling
- Analysis
- Implementation generation
- Deployment
36Koala in Action
37Koala in Action
38Koala Under the Lampposts
Software Architecture
39Koala Under the Lampposts
Software Architecture
Technology
40Koala Under the Lampposts
Software Architecture
Technology
41Koala Under the Lampposts
Software Architecture
Technology
42xADL 2.0
- Developed at UC Irvine
- In use at Boeing
- XML substrate
- Both graphical and textual
- Primary focus extensibility
43xADL 2.0 in Action
44xADL 2.0 in Action
ltcomponent id"dbComp"gt ltdescriptiongtDatabaselt
/descriptiongt ltinterface id"sql-in"gt
ltdescriptiongtSQLlt/descriptiongt
ltdirectiongtinlt/directiongt lt/interfacegt
ltdatasourcegt ltvendorgtOracle
Corp.lt/vendorgt ltlocationgtdb.example.com12
34/db1lt/locationgt ltusernamegtwebUserlt/usern
amegt ltpasswordgtsecretlt/passwordgt
lt/datasourcegt lt/componentgt
45xADL 2.0 Under the Lampposts
Software Architecture
46xADL 2.0 Under the Lampposts
Software Architecture
47xADL 2.0 Under the Lampposts
Software Architecture
48xADL 2.0 Under the Lampposts
Software Architecture
Domain
492G ADLs Side-by-Side
UML 2.0
AADL
Koala
xADL 2.0
50Some Observations
- Architecture embraces many concerns
- More mature and successful ADLs incorporate
concerns from 3L - Multiple views are a must
- No single set of modeling features is sufficient
for every project - Extensibility is a key property of ADLs
- Tools are often as important as notations