50
Architecture Description Languages (ADLs)

Architecture Description Languages (ADLs). A Brief History of ADLs Software architecture emerged as a research discipline in the early 1990s Soon

  • View
    237

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

Architecture Description Languages (ADLs)

Page 2: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

A 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

Page 3: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

What is an ADL?

Page 4: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

So, What Was the Answer?

An ADL is a language that provides features for modeling a software system’s conceptual architecture, distinguished from the system’s implementation.

An ADL must support the building blocks of an architectural description – Components

• Interfaces

– Connectors– Configurations

Page 5: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

What 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…

Page 6: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

Examples 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

Page 7: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

What 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) => Results(?M);;

end Application;

A Rapide component

Page 8: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

A Wright connector

What Does/Did an ADL Description Look Like?

Page 9: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

RPC

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

}}

Client Server

An Acme architecture

What Does/Did an ADL Description Look Like?

Page 10: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

Classifying 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

Page 11: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

ACME

Aesop

C2

Darwin

MetaH

Rapide

SADL

UniCon

Weaves

Ev

olu

tio

n

Co

ns

tra

ints

Se

ma

nti

cs

Typ

es

Inte

rfa

ce

Com

pone

nts

Wright

No

n-F

un

ct.

Pro

pe

rtie

s

Page 12: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

ACME

Aesop

C2

Darwin

MetaH

Rapide

SADL

UniCon

Weaves

Ev

olu

tio

n

Co

ns

trai

nts

Se

ma

nti

cs

Typ

es

Inte

rfac

e

Con

nect

ors

Wright

No

n-F

un

ct.

Pro

pe

rtie

s

Page 13: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

ACME

Aesop

C2

Darwin

MetaH

Rapide

SADL

UniCon

Weaves

Ref

ine

men

t &

Co

ns

tra

ints

He

tero

ge

ne

ity

Co

mp

os

itio

na

lity

Un

de

rsta

nd

ab

ilit

y

Sca

lab

ilit

y

Ev

olu

tio

n

Dyn

am

ism

Tra

cea

bili

ty

Con

figu

ratio

ns

Wright

No

n-F

un

ct.

Pro

pe

rtie

s

Page 14: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

ACME

Aesop

C2

Darwin

MetaH

Rapide

SADL

UniCon

WeavesD

yn

am

ism

Co

de

Re

fin

em

en

t

An

aly

sis

Mu

ltip

le

Ac

tive

Sp

ec

ific

ati

on

Vie

ws

Ge

ne

rati

on

Tool

Sup

port

Wright

Page 15: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

Brilliant!

So, what went wrong?

Page 16: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

Remember This?

Technology

Software

Archite

cture

Domain Business

Page 17: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

Where “1G” ADLs Lived…

Technology

Software

Archite

cture

Domain Business

Page 18: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

So, 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– …

Page 19: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

How 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 system’s architecture.

Architectural modeling is the effort to capture and document the design decisions that make up a system’s architecture.

An architecture description language is a notation in which architecture models can be expressed.

Page 20: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

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

Page 21: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

UML 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

Page 22: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

UML 2.0 in Action

Page 23: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

UML 2.0 in Action

Page 24: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

UML 2.0 in Action

Page 25: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

UML 2.0 Under the Lampposts

Software

Archite

cture

Page 26: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

UML 2.0 Under the Lampposts

Software

Archite

cture

Domain

Technology

Page 27: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

UML 2.0 Under the Lampposts

Software

Archite

cture

Technology

Business

Page 28: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

UML 2.0 Under the Lampposts

Software

Archite

cture

Technology

BusinessDomain Business

Page 29: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

AADL

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

Page 30: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

AADL in Action

system implementation sensor_type.temperaturesubcomponents the_sensor_processor : processor sensor_processor_type; the_sensor_process : process sensor_process_type.one_thread;connections bus access network -> the_sensor_processor.network; event data port sensed -> the_sensor_process.sensed; event data port control -> the_sensor_process.control;properties Actual_Processor_Binding => reference the_sensor_processor applies to the_sensor_process;end sensor_type.temperature;

Page 31: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

AADL Under the Lampposts

Software

Archite

cture

Page 32: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

AADL Under the Lampposts

Software

Archite

cture

Domain

Technology

Page 33: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

AADL Under the Lampposts

Software

Archite

cture

Domain

Technology

Page 34: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

AADL Under the Lampposts

Software

Archite

cture

Domain

Technology

BusinessBusiness

Page 35: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

Koala

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

Page 36: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

Koala in Action

Page 37: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

Koala in Action

Page 38: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

Koala Under the Lampposts

Software

Archite

cture

Page 39: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

Koala Under the Lampposts

Software

Archite

cture

Domain

Technology

Page 40: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

Koala Under the Lampposts

Software

Archite

cture

Technology

Business

Page 41: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

Koala Under the Lampposts

Software

Archite

cture

Domain

Technology

Business

Page 42: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

xADL 2.0

Developed at UC Irvine– In use at Boeing

XML substrate

Both graphical and textual

Primary focus – extensibility

Page 43: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

xADL 2.0 in Action

Page 44: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

xADL 2.0 in Action

<component id="dbComp"> <description>Database</description> <interface id="sql-in"> <description>SQL</description> <direction>in</direction> </interface> <datasource> <vendor>Oracle Corp.</vendor> <location>db.example.com:1234/db1</location> <username>webUser</username> <password>secret</password> </datasource></component>

Page 45: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

xADL 2.0 Under the Lampposts

Software

Archite

cture

Page 46: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

xADL 2.0 Under the Lampposts

Software

Archite

cture

Domain

Technology

Page 47: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

xADL 2.0 Under the Lampposts

Software

Archite

cture

Technology

Business

Page 48: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

xADL 2.0 Under the Lampposts

Software

Archite

cture

Technology

Domain Business

Page 49: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

Software

Archite

cture

DomainDomain

Technology

BusinessBusiness

Software

Archite

cture

TechnologyTechnology

Domain BusinessBusiness

2G ADLs Side-by-Side

Software

Archite

cture

DomainDomain

TechnologyTechnology

BusinessBusinessBusiness

Software

Archite

cture

TechnologyTechnology

BusinessBusinessDomain Business

UML 2.0 AADL

xADL 2.0Koala

Page 50: Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon

Some 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