Download presentation
Presentation is loading. Please wait.
Published byRussell Dorsey Modified over 8 years ago
2
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. 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.
3
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.
4
ADL-Why and What??? Architectural descriptions were often informal and ad hoc. As a result: 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.
5
Continued…. Very few tools available to help the architectural designers. To address these problems, ADL's were introduced.
6
What??? Architecture description languages (ADL’s) are formal languages that can be used to represent the architecture of a software system.
7
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.
8
Types Of ADL’s ACME Rapide Wright Unicon Aesop MetaH Lileanna
9
ACME-An Example… rpc Send-Request Client Receive Request Server ( Caller )( Callee )
10
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} }
11
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]
12
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 -> callee.return?x -> callee.result!x -> glue) [] STOP -> glue) [] STOPInstances s : server c : client r : rpc
13
Continued… Attachments : client.send-request as rpc.caller server.receive-request as rpc.callee end simple_cs.
14
Any Questions????
16
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/~acme http://www.cs.cmu.edu/afs/cs/project/able/w ww/wright/index.html http://www.cs.cmu.edu/afs/cs/project/able/w ww/wright/index.html
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.