ARCHITECTURE DESCRIPTION LANGUAGES

Post on 30-Dec-2015

21 views 2 download

description

ARCHITECTURE DESCRIPTION LANGUAGES. Presented by: Pavan kumar Potaraju. Software Architecture-Definition. According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components, their interfaces, and constraints on the system. - PowerPoint PPT Presentation

Transcript of ARCHITECTURE DESCRIPTION LANGUAGES

Software Architecture-DefinitionSoftware Architecture-Definition

According to According to Shaw [1], the software Shaw [1], the software architecture of a system is an abstract architecture of a system is an abstract representation of the system’s components, representation of the system’s components, their interfaces, and constraints on the their interfaces, and constraints on the system.system.

Software Architecture-A modelSoftware Architecture-A model

Shaw and Garlan present a model of Shaw and Garlan present a model of architecture based on three abstractions: architecture based on three abstractions:

Components: They are independent units of Components: They are independent units of computation. computation.

Connectors: They represent interactions Connectors: They represent interactions among components. among components.

Configurations: They are instance of Configurations: They are instance of architectural description represented as a architectural description represented as a graph of connectors and components.graph of connectors and components.

ADL-Why and What???ADL-Why and What???

Architectural descriptions were often Architectural descriptions were often informal and ad hoc. As a result:informal and ad hoc. As a result:

Architectural designs were not always Architectural designs were not always properly understoodproperly understood

The constraints assumed (i.e the The constraints assumed (i.e the architectural constraints) in the initial design architectural constraints) in the initial design were not enforced (sometimes) as the were not enforced (sometimes) as the system evolves.system evolves.

Continued….Continued….

Very few tools available to help the Very few tools available to help the architectural designers.architectural designers.

To address these problems, ADL's were To address these problems, ADL's were introduced.introduced.

What???What???

Architecture description languages (ADL’s) Architecture description languages (ADL’s) are formal languages that can be used to are formal languages that can be used to represent the architecture of a software represent the architecture of a software system. system.

MIL’s Vs ADL’sMIL’s Vs ADL’s

MILS only describe the structure of an MILS only describe the structure of an implemented system.implemented system.

ADLs are used to define and model ADLs are used to define and model system architecture prior to system system architecture prior to system

implementation. implementation.

Types Of ADL’sTypes Of ADL’s

ACME ACME Rapide Rapide Wright Wright UniconUniconAesop Aesop MetaH MetaH LileannaLileanna

ACME-An Example…ACME-An Example…

rpc

Send-Request

Client

Receive Request

Server

( Caller ) ( Callee )

Continued..Continued..

System simple_cs = {System simple_cs = {

Component client = {Port send-request}Component client = {Port send-request}

Component server = {Port receive-request}Component server = {Port receive-request}

Connector rpc = {Roles {caller, callee}}Connector rpc = {Roles {caller, callee}}

Attachments : {client.send-request to Attachments : {client.send-request to rpc.caller;rpc.caller;

server.receive-request to rpc.callee}server.receive-request to rpc.callee}

}}

Wright-An Example..Wright-An Example..

Wright is pretty similar syntactically to ACMEWright is pretty similar syntactically to ACME

System simple_cs System simple_cs Component client = Component client =

port send-request = [behavioral spec] port send-request = [behavioral spec] spec = [behavioral spec]spec = [behavioral spec]

Component server = Component server = port receive-request= [behavioral spec]port receive-request= [behavioral spec]spec = [behavioral spec]spec = [behavioral spec]

Continued…Continued…

Connector rpc = Connector rpc = role caller = (request!x -> result?x ->caller) ^ STOProle caller = (request!x -> result?x ->caller) ^ STOProle callee = (invoke?x -> return!x -> callee) [] STOProle callee = (invoke?x -> return!x -> callee) [] STOPglue = (caller.request?x -> callee.invoke!x glue = (caller.request?x -> callee.invoke!x

-> callee.return?x -> callee.result!x -> callee.return?x -> callee.result!x -> glue) [] STOP-> glue) [] STOPInstancesInstancess : servers : serverc : clientc : clientr : rpcr : rpc

Continued…Continued…

Attachments : Attachments :

client.send-request as rpc.caller client.send-request as rpc.caller

server.receive-request as rpc.calleeserver.receive-request as rpc.callee

end simple_cs.end simple_cs.

Any Questions????Any Questions????

References:References:

D.Garlan and M.Shaw “ An Introduction to D.Garlan and M.Shaw “ An Introduction to software architecture” . In V.Ambriola and software architecture” . In V.Ambriola and G.Tortara, editors. Advances in software G.Tortara, editors. Advances in software engineering and knowledge engineering. engineering and knowledge engineering. World scientific publishing company, 1993.World scientific publishing company, 1993.

http://www.cs.cmu.edu/~acme http://

www.cs.cmu.edu/afs/cs/project/able/www/wright/index.html