170 likes | 303 Views
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.
E N D
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.
Software Architecture-A model 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.
ADL-Why and What??? Architectural descriptions were often informal and ad hoc. As a result: • Architectural designs were not always properly understood • The constraints assumed (i.e the architectural constraints) in the initial design were not enforced (sometimes) as the system evolves.
Continued…. • Very few tools available to help the architectural designers. • To address these problems, ADL's were introduced.
What??? • Architecture description languages (ADL’s) are formal languages that can be used to represent the architecture of a software system.
MIL’s Vs ADL’s • MILS only describe the structure of an implemented system. • ADLs are used to define and model system architecture prior to system implementation.
Types Of ADL’s • ACME • Rapide • Wright • Unicon • Aesop • MetaH • Lileanna
ACME-An Example… Client Server rpc Receive Request Send-Request ( Caller ) ( Callee )
Continued.. 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} }
Wright-An Example.. Wright is pretty similar syntactically to ACME System simple_cs Component client = port send-request = [behavioral spec] spec = [behavioral spec] Component server = port receive-request= [behavioral spec] spec = [behavioral spec]
Continued… Connector rpc = role caller = (request!x -> result?x ->caller) ^ STOP role callee = (invoke?x -> return!x -> callee) [] STOP glue = (caller.request?x -> callee.invoke!x -> callee.return?x -> callee.result!x -> glue) [] STOP Instances s : server c : client r : rpc
Continued… Attachments : client.send-request as rpc.caller server.receive-request as rpc.callee end simple_cs.
Thank You!!!!! Applause????
References: • D.Garlan and M.Shaw “ An Introduction to software architecture” . In V.Ambriola and G.Tortara, editors. Advances in software engineering and knowledge engineering. World scientific publishing company, 1993. • http://www.cs.cmu.edu/~acme • http://www.cs.cmu.edu/afs/cs/project/able/www/wright/index.html