1 1 lecture 2 concepts of software architecture purposes/objectives major elements of s/w...
TRANSCRIPT
![Page 1: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/1.jpg)
11
Lecture 2 Concepts of Software Architecture
• Purposes/Objectives• Major Elements of S/W Architecture• Architecture Framework• Architectural Models/Patterns• Architecture Case Study
Software Architecture & Design Pattern
![Page 2: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/2.jpg)
22
Software Architecture
A high level abstraction and description to the structure and organization of software system, also a blueprint for software development and evolution.
Software Architectural Model
An expression of the viewpoint of software architecture, which is a rich, rigorous, and structural description on the software system’s elements, functions and interface.
Software Architecture & Design Pattern
![Page 3: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/3.jpg)
33
Why need software architectural model?
Software Architecture & Design Pattern
![Page 4: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/4.jpg)
44
Better? en ... not quite yet
Segment(from ssi)
AttributeDescription(from serializati...
ResourceDescription(from serializati...
HttpCredential(from ht...
PlainRemoteResource(from adm...
HtmlHead(from ht...
SampleMuxHandler(from m...
Stresser(from tes...
JigsawHttpSessionContext(from servl...
HtmlStyle(from ht...
AdminContext(from admin)
AuthUserPrincipal(from a...
IPMatcherNode(from au...
HttpBag(from ht...
HtmlGenerator(from ht...
DirectoryResource(from resourc...
FileResource(from resourc...
HttpEntityTag(from ht...
HttpManager(from ht...
CGIHeaderHolder(from fram...
Shuffler(from ht...
IndexersCatalog(from index...
ResourceIndexer(from index...
MuxClientFactory(from m...
ResourceContext(from resourc...
EventManager(from time...
ResourceStoreManager(from sto...
PropertySet(from conf...
FramedResource(from resourc...
ServerHandlerManager(from daem...
AdminWriter(from adm...
Serializer(from serializati...
RequestTimeout(from ht...
MimeType(from mime)
IPMatcher(from auth)
ExternalContainer(from resourc...
PICS(from pi...
SSIFrame(from s...
SSIStream(from s...
ArrayDictionary(from ut...
CommandRegistry(from comman...
VariantState(from NegotiatedFra...
SampleResourceIndexer(from index...
ProtocolFrame(from frames)
MimeClientFactory(from ht...
MimeParser(from mi...
DAVMimeClientFactory(from webd...
ResourceException(from resourc...
SocketOutputBuffer(from sock...
DebugThread(from sock...
ThreadCache(from ut...
SocketClientFactoryStats(from sock...
httpd(from http)
MuxSession(from m...
ResourceFilter(from resources)
HttpMimeType(from ht...
HttpTokenList(from ht...
ResourceReference(from resources)
HTTPPrincipal(from a...
ProxyRequestObserver(from pro...
ProfileRef(from cc...
HttpExtList(from ht...
Client(from http)
CCPPRequest(from cc...
Software Architecture & Design Pattern
![Page 5: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/5.jpg)
5
Much better --- your boss
would like to see
Hardware Abstraction Layer
Linux kernelperformance-differentiatedkernel scheduler
Cluster Applications
RTCS Application Framework API
Linux System Call
RTCSQueue
RTCSDispatcher
RTCSScheduler
RTCSMonitor
RTCSForwarder
RTCSEvent
RTCSClassifier
Software Architecture & Design Pattern
![Page 6: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/6.jpg)
66
Purposes/Objectives
• Identify critical components/subsystems of software system
• Describe relationship/interaction/interface of the components• Guide software design and bridge design and implementation• Identify key techniques/tools to implement software system
Software Architecture & Design Pattern
![Page 7: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/7.jpg)
77
Software Design Principles
• Decomposition and decoupling• Architectural model• Component interface/relationship• Data/object abstraction• Communication/network interface• Concurrency: multiprocess vs. multithread• Scalability
Software Architecture & Design Pattern
![Page 8: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/8.jpg)
88
Identify Major Components/Subsystems
• Component/Subsystem: a group of software units collectively providing certain function or service (module in C++ or package in Java)
• Organize or lay out functional units of a software system --- various architectural models
• Identify core modules/components or common features
Software Architecture & Design Pattern
![Page 9: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/9.jpg)
9
RTCS Architectural Model
Hardware Abstraction Layer
Linux kernelperformance-differentiatedkernel scheduler
Cluster Applications
RTCS Application Framework API
Linux System Call
RTCSQueue
RTCSDispatcher
RTCSScheduler
RTCSMonitor
RTCSForwarder
RTCSEvent
RTCSClassifier
Major Components
• upper application
• RTCS Framework
- storage class
- service class
- utility class
• O/S system call API
Major Functions• cluster resource management
• real-time scheduling
• responsive service
Software Architecture & Design Pattern
![Page 10: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/10.jpg)
1010
Relationship/Interface among Components
• Structural relationship
• Functional relationship
• Abstract class vs. Interface class
• Communication interface
- TCP/IP sockets
- RPC (Remote Procedure Call),
RMI (Remote Method Innovation)
- message passing
Software Architecture & Design Pattern
![Page 11: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/11.jpg)
1111
CORBA Architecture for Distributed System
Software Architecture & Design Pattern
![Page 12: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/12.jpg)
1212
Interface between Components
Software Architecture & Design Pattern
![Page 13: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/13.jpg)
1313
Guidance of Software Design
• Deposition of System - decoupling of data and presentation - spread functions among components - multiprocess or multithread
• Interface Design - external interface vs. internal interface - interface definition language/schema
• Interaction in Components/Subsystems - service consumer vs. service provider - synchronous call vs. asynchronous call - interaction protocols
Software Architecture & Design Pattern
![Page 14: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/14.jpg)
1414
Internet Protocol Design
- use layered architectural model to show the design
Win2K Linux LynxOS
Solaris VxWorks
Middleware
MiddlewareServices
MiddlewareApplications
MIDDLEWARE ARCH
21st Century
RTP
DNS
HTTP
UDP TCP
IP
NET
Ethernet ATM FDDI
Fibre Channel
FTP
INTERNETWORKING ARCH
TFTP
20th Century
Software Architecture & Design Pattern
![Page 15: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/15.jpg)
1515
Decomposition of System
- Decoupling an avionics system
Context Problems Solution
• I/O driven DRE application
•Complex dependencies
•Real-time constraints
•Tightly coupled components
•Hard to schedule
•Expensive to evolve
•Apply the Publisher-Subscriber architectural pattern to distribute periodic, I/O-drivendata from a single point of source to a collection of consumers
Software Architecture & Design Pattern
![Page 16: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/16.jpg)
1616
How to decouple functional units
Event
*
Subscriber
consume
creates receives
Event Channel
attachPublisher detachPublisherattachSubscriberdetachSubscriberpushEvent
Filter
filterEvent
Publisher
produce
Structure
attachSubscriberproduce
pushEventevent
eventpushEvent
consume
detachSubscriber
: Event
: Subscriber: Event Channel: Publisher
Dynamics
Software Architecture & Design Pattern
![Page 17: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/17.jpg)
1717
Context Problems Solution
•Mission computing requires remote IPC
•Stringent DRE requirements
•Applications need capabilities to:•Support remote communication•Provide location transparency•Handle faults•Manage end-to-end QoS•Encapsulate low-level system details
•Apply the Broker architectural pattern to provide platform-neutral communication between mission computing boards
Use architectural model to improve communication system design
Software Architecture & Design Pattern
![Page 18: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/18.jpg)
18
18
Platform-neutral and network-transparent communication architecture
operation (params)connect
send_request
marshal
unmarshaldispatch
operation (params)
result
marshal
receive_replyunmarshal
result
start_upregister_service
assigned port
Dynamics
: Broker: Client Proxy : Object Adapter: Client : Server
Software Architecture & Design Pattern
![Page 19: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/19.jpg)
1919
Software Architecture & Design Pattern
![Page 20: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/20.jpg)
2020
Identify key techniques and development tools
• OOAD / CASE tool• Distributed System / Communication Protocols• Component-based / Interface• Concurrency / Multithreading• SOA / J2EE• 3-D / Graphics Toolkit• Real-Time / RTOS
Software Architecture & Design Pattern
![Page 21: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/21.jpg)
2121
Major Elements of Architectural Model
• Elements/Connectors/Data - components (simple vs.
composite) - subsystems - layers
• Architectural Topology (diagrams) - configuration/layout
• Interaction/Association - component interface - communication interface - relationship
Software Architecture & Design Pattern
![Page 22: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/22.jpg)
2222
Major elements – Component
A software component is an architectural building block that encapsulates a subset of functions and data, and restricts access to them via an explicitly defined interface.
Software Architecture & Design Pattern
![Page 23: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/23.jpg)
2323
Major elements – Connector
A software connector is an architectural building block tasked with regulating interactions among components.
connector examples
- Procedure call connectors
- Shared memory connectors
- Message passing connectors
- Streaming connectors
- Distribution connectors
- Wrapper/adaptor connectors
Software Architecture & Design Pattern
![Page 24: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/24.jpg)
2424
Major elements – Topology
The architectural topology captures architectural structure via graphs whose nodes representing components and connectors and edges representing interconnectivity.
Projectrepository
Designtranslator
Programeditor
Designeditor
Codegenerator
Designanalyser
Reportgenerator
Software Architecture & Design Pattern
![Page 25: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/25.jpg)
2525
Interaction between Components
Software Architecture & Design Pattern
![Page 26: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/26.jpg)
2626
Architecture Framework
A set of architectural views, design patterns, and methodology based on a certain type of architectural model
• 4+1 Views
• Zachman Framework
• DODAF (Dept. of Defense Architectural Framework)
• TOGAF (The Open Group Architecture Framework)
• RM-ODP (Reference Model of Open Distributed Processing)
Software Architecture & Design Pattern
![Page 27: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/27.jpg)
2727
4+1 View Model/Framework
• Logic View
• Process View
• Deployment View
• Physical View
• Scenarios (Use Case)
Software Architecture & Design Pattern
![Page 28: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/28.jpg)
2828
Logical View
Physical ViewProcess View
Development View
End user
System EngineerIntegrator
Programmers& software managers
Scenarios
Software Architecture & Design Pattern
![Page 29: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/29.jpg)
2929
Logical View
Viewer: End-userConsiders: Functional requirements- What the system should provide in terms of services to its users. Notation: Class diagramTool: CASE tool
Software Architecture & Design Pattern
![Page 30: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/30.jpg)
3030
Logical View – class view
Software Architecture & Design Pattern
![Page 31: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/31.jpg)
3131
Logical View – sequence diagram
Software Architecture & Design Pattern
![Page 32: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/32.jpg)
3232
Logical View – communication diagram
Software Architecture & Design Pattern
![Page 33: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/33.jpg)
3333
Logical View – state diagram
Software Architecture & Design Pattern
![Page 34: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/34.jpg)
3434
Development View
Viewer: programmers and managers
Considers: software module organization
Style: layered style
Notation: UML
Software Architecture & Design Pattern
![Page 35: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/35.jpg)
3535
Process View
Viewer: integrator
Considers: Non - functional requirements
(concurrency, performance, scalability)
Style: several styles
Software Architecture & Design Pattern
![Page 36: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/36.jpg)
3636
Process View example
Software Architecture & Design Pattern
![Page 37: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/37.jpg)
3737
Physical View
Viewer: system engineer
Considers: non-functional requirements regarding
hardware (computing node, network)
Notation: costumed
Software Architecture & Design Pattern
![Page 38: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/38.jpg)
3838
Physical View example
Software Architecture & Design Pattern
![Page 39: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/39.jpg)
3939
Scenarios
Viewer: all users of other views and evaluators.Considers: system consistency, validityNotation: UML/Use CaseTool: CASE tool
Software Architecture & Design Pattern
![Page 40: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/40.jpg)
4040
Scenarios – Use Case diagram
Software Architecture & Design Pattern
![Page 41: 1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns](https://reader033.vdocuments.us/reader033/viewer/2022051516/56649e3f5503460f94b30a50/html5/thumbnails/41.jpg)
4141
Questions?
Software Architecture & Design Pattern