software architecture-definition according to shaw [1], the software architecture of a system is an...

16

Upload: russell-dorsey

Post on 08-Jan-2018

220 views

Category:

Documents


0 download

DESCRIPTION

Software Architecture-A model Shaw and Garlan present a model of architecture based on three abstractions: Shaw and Garlan present a model of architecture based on three abstractions:  Components: They are independent units of computation.  Connectors: They represent interactions among components.  Configurations: They are instance of architectural description represented as a graph of connectors and components.

TRANSCRIPT

Page 1: Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,
Page 2: Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,

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.

Page 3: Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,

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.

Page 4: Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s 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.

Page 5: Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,

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.

Page 6: Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,

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.

Page 7: Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,

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.

Page 8: Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,

Types Of ADL’sTypes Of ADL’s

ACME ACME Rapide Rapide Wright Wright UniconUniconAesop Aesop MetaH MetaH LileannaLileanna

Page 9: Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,

ACME-An Example…ACME-An Example…

rpc

Send-Request

Client

Receive Request

Server

( Caller ) ( Callee )

Page 10: Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,

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}

}}

Page 11: Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,

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]

Page 12: Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,

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

Page 13: Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,

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.calleeend simple_cs.end simple_cs.

Page 14: Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,

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

Page 15: Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,
Page 16: Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,

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