11 software architecture & design pattern instructorprofessor yu tang yutang@uestc.edu.cn...
Post on 03-Jan-2016
213 Views
Preview:
TRANSCRIPT
11
Software Architecture & Design Pattern
Instructor Professor Yu Tangyutang@uestc.edu.cn (028)83241298 http://202.115.20.2/teacher/teacher.aspx?id=326
TA Dr. Bei Hui(028)83206266bhui@uestc.edu.cn
Class Time Friday 8:30-10:30AM (lecture) Wednesday 2:30-5:30PM (lab, every 2 weeks)Classroom C414 (Friday, lecture) 科研 2 号楼 A 区 537 机房 (Wednesday, lab)Course Page http://www.mekery.cn/uestc/SADP Course Email uestc.arch.dp@gmail.com
22
Course Strategy
• Not a programming course
• Assume you have basic knowledge in
objected-oriented design and programming
• Hands-on design/development experience
• Open for discussion and communication
• Use but not read line-by-line of the textbook
Software Architecture & Design Pattern
33
Lecture 1 Introduction• Large-scale Mission-critical Software Systems
• Application Domain
• Architectural Model
• Design Principle & Development Methodology
• New Trends
Software Architecture & Design Pattern
44
Large-scale Software Systems
• number of lines of code (> million)
• number of people involved (> 100)
• amount of data stored, processed and manipulated
• number of hardware components
• heterogeneous platforms
• distributed (decentralized) environment
Software Architecture & Design Pattern
55
Building, Bridge
Infrastructure
City
Complex Application
Large-scale Software System
Ultra Large System
Software Architecture & Design Pattern
66
Mission-critical Requirements
• Consequence of failure is unacceptable
• Timeliness is critical (real-time, responsiveness)
• High availability (7 x 24 operation time)
Software Architecture & Design Pattern
77
Key Aspects of Large-scale Mission-critical Systems
• Decentralization/Decomposition
• Importability
• Scalability
• Manageability
• Security
• Sustaining Engineering/Evolution
Software Architecture & Design Pattern
88
Application Domain
• Aerospace control/command system
• Satellite data processing system
• Global climate/environment modeling and
monitoring system
• Complex combat applications
• Large-scale financial processing system
• Extremely high load web portals (such as
Google’s distributed search engine)
Software Architecture & Design Pattern
99
SensorNet Based Battlefield Surveillance System
Software Architecture & Design Pattern
1010
At Base Camp:– GUI display on laptop of
node locations, tracks, and live GPS ground truth (over 802.11 LAN).
– Live video feed on wireless IPAQ PDA (from sender laptop in field).
Software Architecture & Design Pattern
1111
Fusion Node
SIPs
SIPs &Fusion Nodes
Precision Strike: Sensor-to-Shooter Approach
Software Architecture & Design Pattern
1212
Aegis Q-70 Tactical Display Console
Software Architecture & Design Pattern
1313
AWIPS (Advanced Weather Interactive Processing System)
Software Architecture & Design Pattern
1414
Weather data visualization by AWIPS
Software Architecture & Design Pattern
1515
Emergence Response and Rescue System
Software Architecture & Design Pattern
1616
Disaster/Incident Situational Display
Software Architecture & Design Pattern
1717
Hardware System
Operating System
OpenGL Framework
3-D Application
Hardware Layer (system, architecture, processor)
System Software (O/S, device driver, firmware, etc.)
Middleware (API, framework, SDK, environment)
Application Software (word processor, database app.)
SoftwareA set of instructions, data structures, subroutines, and documents that operate and control the machines (hardware) it is running on.
Software Layers
Software Architecture & Design Pattern
1818
Software EngineeringA systematic approach to the development, operation and maintenance of software.
Software ModelA conceptual description and abstraction of software structures, components, interface and functions.
• Architectural Model (design)• Development Model (methodology)
Software Architecture & Design Pattern
1919
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
2020
Architectural Models• Client-Server• MVC (Model-View-Control)• PAC (Presentation-Abstraction-Control)• Pipe and Filter• Remote Procedure Call (RPC)• Layered• Distributed• Object-Oriented Architecture• Service-Oriented Architecture• Multi-tier Architecture
Software Architecture & Design Pattern
2121
Class Model - What a mess!
aTruck aShip aAirplane theWarehouseCollecti on
theVehicleCollection
UML-A Generated Dependency Class:theRouter Dependency (1.0)
theStorage
aVehicle
UML-A Generated Dependency Class:theRouter Dependency (0.5)
availableVehicleCollection
UML-A Generated Association Class:theVehicleCollection Generalization (1.0)UML-A Generated Association Class:theVehicleCollection Generalization (1.0)UML-A Generated Association Class:theVehicleCollection Generalization (1.0)UML-A Genera ted As socia tion C lass: theVehicleC ollec tion Genera lization (1.0)UML-A Generated Association Class:theVehicleCollection Generalization (1.0)UML-A Generated Association Class:theVehicleCollection Generalization (1.0)UML-A Generated Association Class:theVehicleCollection Generalization (1.0)UML-A Generated Association Class:theVehicleCollection Generalization (1.0)UML- A Generated Ass ociati on Cl ass:theVehi cleCo llection Generali zation (1.0)UML-A Generated Association Class:theVehicleCollection Generalization (1.0)
UML-A Generated Dependency Class:theRouter Dependency (1.0)
availableGoods
aPort
aPortC ollec tion
aSurp lus aDifficiency
theTimeNeeded
theGoods
UML-A Generated Association Class:aWarehouse Association (0.5)
UML-A Generated Association Class:aWarehouse Association (0.5)
UML-A Generated Association Class:availableGoods Association (0.5)
aRouteCollection
UML-A Generated Association Class:aRoute Association (0.25)UML-A Generated Association Class:aRoute Association (0.25)UML-A Generated Association Class:aRoute Association (0.25)UML-A Generated Association Class:aRoute Association (0.25)
UML-A Generated Dependency Class:theRouter Dependency (0.5)UML-A Generated Dependency Class:theRouter Dependency (1.0)
UML-A Generated Dependency Class:theRouter Dependency (1.0)
theAWT
aVehiceDialog aWarehouseDialog aPortDialog aRouterDialog
aWarehouse
UML-A Generated Association Class:aDifficiency Association (1.0)UML-A Generated Association Class:aDifficiency Association (1.0)UML-A Generated Association Class:aDifficiency Association (1.0)UML-A Generated Association Class:aDifficiency Association (1.0)
UML-A Generated Association Class:aDifficiency Association (1.0)U ML-A Generated Association Class:aD ifficiency Associ ation (1.0)UML-A Generated Association Class:aDifficiency Association (1.0)UML-A Generated Association Class:aDifficiency Association (1.0)U ML-A Generated Association Class:aD ifficiency Associ ation (1.0)UML-A Generated Association Class:aDifficiency Association (1.0)UML-A Genera ted Associ ation C lass:aSurp lus Associ ation (1.0)UML-A Generated Association Class:aSurplus Association (0.5)
UML-A Generated Associ ation Class:aRoute Association (0.5)
aLocation
UML-A Generated Association Class:aNavPoint Association (1.0)
UML-A Generated Association Class:aWarehouse Association (0.5)
UML-A Generated Association Class:aNavPoint Association (0.5)
UML-A Generated Association Class:aNavPoint Association (0.5)UML-A Generated Association Class:aNavPoint Association (0.5)
UML-A Generated Association Class:aWarehouse Association (0.5)aNavPoint
UML-A Generated Association Class:aWarehouse Association (1.0)
UML-A Generated Association Class:aWarehouse Association (0.5)UML-A Generated Association Class:aWarehouse Association (0.5)
UML-A Generated Association Class:aWarehouse Association (0.5)
UML-A Generated Association Class:aWarehouse Association (0.5)
UML-A Generated Association Class:aRoute Association (0.5)
aRoute
UML-A Genera ted Dependency C lass :aRouteCol lection Ass ociation (0.25)
UML-A Generated Association Class:aNavPoint Association (1.0)UML-A Generated Association Class:aNavPoint Association (0.5)
UML-A Generated Association Class:aWarehouse Association (1.0)
UML-A Generated Dependency Class:aRouteCollection Association (0.5)
UML-A Generated Association Class:aNavPoint Association (1.0)UML-A Generated Association Class:aNavPoint Association (1.0)UML-A Generated Association Class:aNavPoint Association (1.0)UML-A Generated Association Class:aNavPoint Association (1.0)UML-A Generated Association Class:aNavPoint Association (1.0)
UML-A Generated Association Class:aNavPoint Association (0.25)UML-A Generated Association Class:aNavPoint Association (0.25)
UML-A Generated Association Class:aNavPoint Association (0.25)
UML-A Generated Dependency Class:theRouter Association (0.25)
UML-A Generated Association Class:aNavPoint Association (0.25)
theCargoRouter
UML-A Generated Association Class:theRouter Association (0.25)
UML-A Genera ted As socia tion C lass: theWarehouseCollection Dependency ( 0.25)
UML-A Generated Association Class:theRouter Association (0.25)
UML-A Generated Association Class:theRouter Association (0.25)
t heRouter
UML-A Generated Association Class:theWarehouseCollection Dependency (0.5)
UML-A Generated Association Class:theWarehouseCollection Dependency (0.5)
UML-A Genera ted Dependency Class :aRouteCollection Ass ociation (0.5)UML-A Generated Association Clas s:theWarehouseCollec tion Dependency (0.5)
UML-A Generated Association Class:theVehicleCollection Dependency (0.5)UML-A Generated Association Class:availableVehicleCollection Dependency (0.5)UML- A Generated Generaliz ation Class :avail ableVehicleCollection Dependenc y (1.0 )
UML-A Generated Dependency Class:theRouter Association (0.25)
UML-A Generated Dependency Class:theRouter Association (0.5)UML-A Generated Dependency Class:theRouter Association (1.0)
UML-A Generated Dependency Class:theRouter Association (0.5)
UML-A Generated Dependency Class:theWarehouseCollection Dependency (1.0)
UML-A Generated Dependency Class:theRouter Association (1.0)UML-A Generated Dependency Class:theRouter Association (1.0)
Software Architecture & Design Pattern
2222
aTruck aShipaAirplane
availableVehicleCollection
theAWT
aVehiceDialogaWarehouseDialog
aPortDialog
aRouterDialog
aRouteCollection
aVehicle
theVehicleCollection
theCargoRouter
theRouter
theTim eNeeded
aRoute
aDeficiency
theWarehouseCollection
aNavPoint
theStorage
RefrigeratedStorage
RegularStorage
availableGoods
aPortCollection
aLocation
theGoods
aWarehouse
aSurplus
aPort
Class Model – Is it better?
Software Architecture & Design Pattern
2323
Hardware Abstraction Layer
Linux kernelperformance-differentiatedkernel scheduler
Cluster Server Application
RTCS Application Framework API
Linux System Call
RTCSQueue
RTCSDispatcher
RTCSScheduler
RTCSMonitor
RTCSForwarder
RTCSEvent
RTCSClassifier
Application Layer
Middleware Layer
O/S Kernel Layer
Hardware Layer
Software Architecture & Design Pattern
2424
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
2525
Software Development MethodologyA documented set of standards, processes, rules, and guidelines that govern the development practice.
• Development Model --- methodology’s technical aspect• Development Methodology --- methodology’s management aspect
Software Architecture & Design Pattern
2626
Development Model
• Build-and-Fix• Waterfall• Spiral• Rapid Prototyping• Incremental• Extreme Programming• OOD• Interactive
Software Architecture & Design Pattern
2727
Development Process/Methodology
• Structured Analysis & Design Methodology• Object-Oriented Analysis & Design (OOAD) • Rational Unified Process (RUP) • Enterprise Unified Process (EUP) • Agile Unified Process (AUP) • Extreme Programming since 1999 • Scrum (development) • Constructionist Design Methodology (CDM) • SEI CMM (Capability Maturity Model)• ISO 9000-3
Software Architecture & Design Pattern
2828
New Trends in Large-scale Mission-critical Software System Development
• Distributed environment
- RMI, CORBA, .Net architecture
- multiprocessing/multithreading
- Synchronous vs. asynchronous
• Middleware approach
- cross-platform, importability
- application framework
Software Architecture & Design Pattern
2929
New Trends (cont’d)
• Open Architecture and Open Standard
- COTS products (processors, networks)
- open Standard (POSIX, XML, etc.)
- open source software (Linux, GNU, etc.)
• System Scalability
- hardware expandability
- software scalability
Software Architecture & Design Pattern
3030
New Trends (cont’d)
• Model-driven Architecture (MDA)
• Middleware Approach
• SOA (Service-Oriented Architecture)
• MDD tools codify expertise by automating key aspects of pattern languages & providing developers with domain-specific modeling languages to access the powerful (& complex) capabilities of frameworks
Model
Application Code
Domain SpecificFramework
Platform
Frameworks
Model
Generated Code
Framework
Pattern Language
Platform
Model
Application Code
Domain SpecificFramework
Platform
Frameworks
Model
Generated Code
Framework
Pattern Language
Platform
Model
Application Code
Domain SpecificFramework
Platform
Frameworks
Model
Generated Code
Framework
Pattern Language
Platform
Model
Application Code
Domain SpecificFramework
Platform
Frameworks
Model
Generated Code
Framework
Pattern Language
Platform
Software Architecture & Design Pattern
3131
Questions ?
Software Architecture & Design Pattern
top related