31
1 Software Architecture & Design Pattern Instructor Professor Yu Tang [email protected] (028)83241298 http://202.115.20.2/teacher/teacher.aspx?id =326 TA Dr. Bei Hui (028)83206266 [email protected] Class Time Friday 8:30-10:30AM (lecture) Wednesday 2:30- 5:30PM (lab, every 2 weeks) Classroom C414 (Friday, lecture)

11 Software Architecture & Design Pattern InstructorProfessor Yu Tang [email protected] (028)83241298

Embed Size (px)

Citation preview

Page 1: 11 Software Architecture & Design Pattern InstructorProfessor Yu Tang yutang@uestc.edu.cn (028)83241298

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3131

Questions ?

Software Architecture & Design Pattern