Understanding Software Architecture: Key Concepts and Architectural Description Languages
Software architecture is an abstract representation of system components, their interfaces, and constraints. According to Shaw and Garlan, it comprises three main abstractions: components (independent computation units), connectors (defining interactions among components), and configurations (graphical representations of architectures). Informal architectural designs led to misunderstandings and undefined constraints, prompting the need for Architectural Description Languages (ADLs) which formally represent software architectures. Examples include ACME and Wright, which facilitate pre-implementation modeling of system architecture.
Understanding Software Architecture: Key Concepts and Architectural Description Languages
E N D
Presentation Transcript
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