1 lecture 3 major architectural models 4 + 1 view (cont’d) architectural models/patterns...
TRANSCRIPT
1
Lecture 3 Major Architectural Models
• 4 + 1 View (Cont’d)
• Architectural Models/Patterns
• Architecture Case Study
Software Architecture & Design Pattern
2
Logical View
Physical ViewProcess View
Development View
End user
System EngineerIntegrator
Programmers& software managers
Scenarios
Software Architecture & Design Pattern
3
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
4
Logical View – class view
Software Architecture & Design Pattern
5
Logical View – sequence diagram
Software Architecture & Design Pattern
6
Logical View – communication diagram
Software Architecture & Design Pattern
7
Logical View – state diagram
Software Architecture & Design Pattern
8
Development View
Viewer: programmers and managers
Considers: software module organization
Style: layered style
Notation: UML
Software Architecture & Design Pattern
9
Process View
Viewer: integrator
Considers: Non - functional requirements
(concurrency, performance, scalability)
Style: several styles
Software Architecture & Design Pattern
10
Process View example
Software Architecture & Design Pattern
11
Physical View
Viewer: system engineer
Considers: non-functional requirements regarding
hardware (computing node, network)
Notation: costumed
Software Architecture & Design Pattern
12
Physical View example
Software Architecture & Design Pattern
13
Scenarios
Viewer: all users of other views and evaluators.Considers: system consistency, validityNotation: UML/Use CaseTool: CASE tool
Software Architecture & Design Pattern
14
Scenarios – Use Case diagram
Software Architecture & Design Pattern
15
Software Architectural Model• structural model• Use Case model• component model• class model• communication/interaction model• deployment model
Software Development Model• development model• development process
Software Architecture & Design Pattern
16
Structural Model – layered architecture
Hardware
Domain-SpecificServices
CommonMiddleware Services
DistributionMiddleware
Host InfrastructureMiddleware
Applications
O/S and Protocols
Software Architecture & Design Pattern
17Hardware (CPU, Memory, I/O)Hardware (CPU, Memory, I/O)
Networking InterfacesNetworking Interfaces
Operating SystemOperating System
Middleware InfrastructureMiddleware Infrastructure
Mission Computing ServicesMission Computing Services
GPS IFF FLIR
HUDNav WTS Air
Frame
Publishers
Subscribers
push(event)
push(event) Event Channel
Broker
Software Architecture & Design Pattern
18
Use Case Model – Use Case diagram
Software Architecture & Design Pattern
19
Component Model – component diagram
Software Architecture & Design Pattern
20
Class Model – class diagram
Software Architecture & Design Pattern
21
Communication/Interaction Model
Software Architecture & Design Pattern
22
Class Libraries
Frameworks
Macro-levelMeso-levelMicro-level
Borrow caller’s thread
Inversion of control
Borrow caller’s thread
Domain-specific or Domain-independent
Domain-specific
Domain-independent
Stand-alone composition
entities
“Semi-complete”
applications
Stand-alone language entities
Components
Class Library Architecture
ADTs
Strings
LocksIPC
MathLOCAL
INVOCATIONSAPPLICATION-SPECIFIC
FUNCTIONALITY
EVENTLOOP
GLUECODE
Files
GUI
A class is a unit of abstraction & implementation in an OO programming language
Framework Architecture
ADTs
Locks
Strings
FilesINVOKES
A framework is an integrated set of classes that collaborate to produce a reusable architecture for a family of
applications
Reactor
GUI
DATABASE
NETWORKING
APPLICATION-SPECIFIC FUNCTIONALITY
CALLBACKS
Middleware Bus
Component Architecture
A component is an encapsulation unit with one or more interfaces that provide
clients with access to its services
Naming
LockingLogging
Events
Software Architecture & Design Pattern
23
Deployment Model
Software Architecture & Design Pattern
24
Deployment View
Software Architecture & Design Pattern
25
Software Architecture Types
• Data Flow Architecture - batch processing - filter/pipe• Data Centered Architecture - repository design - blackboard architecture• Hierarchy Architecture - layered architecture - main/subroutine• Interaction Oriented Architecture - MVC (Model-View-Control) - PAC (Presentation-Abstraction-Control)
Software Architecture & Design Pattern
26
Software Architecture Types (cont’d)
• Object Oriented Architecture - OOAD - UML model• Component- Based Architecture - framework approach• Distributed Architecture - client/server, - peer-to-peer - multi-tier• Service-Oriented Architecture - integration with business process
Software Architecture & Design Pattern
27
Composite Subsystem
C3 C4 C5
A
B C
D
C2C1
C7C6
Software Architecture & Design Pattern
28
Compiler Topology
Lexer
Parser
Semantor
Optimizer
CodeGenerator
Lexer Parser Semantor
InternalRepresentation
OptimizerCode
Generator
Software Architecture & Design Pattern
29
Blackboard Architecture
Projectrepository
Designtranslator
Programeditor
Designeditor
Codegenerator
Designanalyser
Reportgenerator
Software Architecture & Design Pattern
30
Invocation Architecture
Software Architecture & Design Pattern
31
Layered Architecture
Operatingsystem
Database system
Object management
Version management
Software Architecture & Design Pattern
32
Architectural Patterns
• Client-Server• MVC (Model-View-Control)• PAC (Presentation-Abstraction-Control)• Pipe and Filter• Remote Procedure Call (RPC)• Layered Architecture• Distributed System• Object-Oriented Architecture• Service-Oriented Architecture• Multi-tier Architecture
Software Architecture & Design Pattern
33
Client-Server
- scalability issue at server
Three-tier Architecture- split functions server -> web server + application server
Client Server
Client Web Server App Server
Software Architecture & Design Pattern
34
Multi-tier Architecture
Client
Client
Client
Front-end
Front-end
Server
Server
Server
Software Architecture & Design Pattern
35
Software Architecture & Design Pattern
36
MVC (Model-View-Control) model
• Java Swing
• GTK++
• MFC
• ASP .Net
• Adobe Flex
Software Architecture & Design Pattern
37
PAC (Presentation-Abstraction-Control )
Track_Model
- int modelID
- float posLat
+ add(int id)
Track_Presentation
- int presID
- int viewID
+ draw ()
Software Architecture & Design Pattern
38
Questions?
Software Architecture & Design Pattern