11 software architecture & design pattern instructorprofessor yu tang [email protected]...
TRANSCRIPT
![Page 1: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/1.jpg)
11
Software Architecture & Design Pattern
Instructor Professor Yu [email protected] (028)83241298 http://202.115.20.2/teacher/teacher.aspx?id=326
TA Dr. Bei Hui(028)[email protected]
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 [email protected]
![Page 2: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/2.jpg)
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
![Page 3: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/3.jpg)
33
Lecture 1 Introduction• Large-scale Mission-critical Software Systems
• Application Domain
• Architectural Model
• Design Principle & Development Methodology
• New Trends
Software Architecture & Design Pattern
![Page 4: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/4.jpg)
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
![Page 5: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/5.jpg)
55
Building, Bridge
Infrastructure
City
Complex Application
Large-scale Software System
Ultra Large System
Software Architecture & Design Pattern
![Page 6: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/6.jpg)
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
![Page 7: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/7.jpg)
77
Key Aspects of Large-scale Mission-critical Systems
• Decentralization/Decomposition
• Importability
• Scalability
• Manageability
• Security
• Sustaining Engineering/Evolution
Software Architecture & Design Pattern
![Page 8: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/8.jpg)
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
![Page 9: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/9.jpg)
99
SensorNet Based Battlefield Surveillance System
Software Architecture & Design Pattern
![Page 10: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/10.jpg)
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
![Page 11: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/11.jpg)
1111
Fusion Node
SIPs
SIPs &Fusion Nodes
Precision Strike: Sensor-to-Shooter Approach
Software Architecture & Design Pattern
![Page 12: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/12.jpg)
1212
Aegis Q-70 Tactical Display Console
Software Architecture & Design Pattern
![Page 13: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/13.jpg)
1313
AWIPS (Advanced Weather Interactive Processing System)
Software Architecture & Design Pattern
![Page 14: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/14.jpg)
1414
Weather data visualization by AWIPS
Software Architecture & Design Pattern
![Page 15: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/15.jpg)
1515
Emergence Response and Rescue System
Software Architecture & Design Pattern
![Page 16: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/16.jpg)
1616
Disaster/Incident Situational Display
Software Architecture & Design Pattern
![Page 17: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/17.jpg)
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
![Page 18: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/18.jpg)
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
![Page 19: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/19.jpg)
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
![Page 20: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/20.jpg)
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
![Page 21: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/21.jpg)
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
![Page 22: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/22.jpg)
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
![Page 23: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/23.jpg)
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
![Page 24: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/24.jpg)
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
![Page 25: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/25.jpg)
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
![Page 26: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/26.jpg)
2626
Development Model
• Build-and-Fix• Waterfall• Spiral• Rapid Prototyping• Incremental• Extreme Programming• OOD• Interactive
Software Architecture & Design Pattern
![Page 27: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/27.jpg)
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
![Page 28: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/28.jpg)
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
![Page 29: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/29.jpg)
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
![Page 30: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/30.jpg)
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
![Page 31: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298](https://reader038.vdocuments.pub/reader038/viewer/2022110406/56649f055503460f94c19715/html5/thumbnails/31.jpg)
3131
Questions ?
Software Architecture & Design Pattern