1 lecture 3 major architectural models 4 + 1 view (cont’d) architectural models/patterns...

38
1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

Upload: moris-cunningham

Post on 19-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

1

Lecture 3 Major Architectural Models

• 4 + 1 View (Cont’d)

• Architectural Models/Patterns

• Architecture Case Study

Software Architecture & Design Pattern

Page 2: 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

Page 3: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study 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

Page 4: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

4

Logical View – class view

Software Architecture & Design Pattern

Page 5: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

5

Logical View – sequence diagram

Software Architecture & Design Pattern

Page 6: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

6

Logical View – communication diagram

Software Architecture & Design Pattern

Page 7: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

7

Logical View – state diagram

Software Architecture & Design Pattern

Page 8: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

8

Development View

Viewer: programmers and managers

Considers: software module organization

Style: layered style

Notation: UML

Software Architecture & Design Pattern

Page 9: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

9

Process View

Viewer: integrator

Considers: Non - functional requirements

(concurrency, performance, scalability)

Style: several styles

Software Architecture & Design Pattern

Page 10: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

10

Process View example

Software Architecture & Design Pattern

Page 11: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study 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

Page 12: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

12

Physical View example

Software Architecture & Design Pattern

Page 13: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study 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

Page 14: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

14

Scenarios – Use Case diagram

Software Architecture & Design Pattern

Page 15: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study 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

Page 16: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study 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

Page 17: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study 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

Page 18: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

18

Use Case Model – Use Case diagram

Software Architecture & Design Pattern

Page 19: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

19

Component Model – component diagram

Software Architecture & Design Pattern

Page 20: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

20

Class Model – class diagram

Software Architecture & Design Pattern

Page 21: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

21

Communication/Interaction Model

Software Architecture & Design Pattern

Page 22: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study 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

Page 23: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

23

Deployment Model

Software Architecture & Design Pattern

Page 24: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

24

Deployment View

Software Architecture & Design Pattern

Page 25: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study 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

Page 26: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study 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

Page 27: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

27

Composite Subsystem

C3 C4 C5

A

B C

D

C2C1

C7C6

Software Architecture & Design Pattern

Page 28: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

28

Compiler Topology

Lexer

Parser

Semantor

Optimizer

CodeGenerator

Lexer Parser Semantor

InternalRepresentation

OptimizerCode

Generator

Software Architecture & Design Pattern

Page 29: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

29

Blackboard Architecture

Projectrepository

Designtranslator

Programeditor

Designeditor

Codegenerator

Designanalyser

Reportgenerator

Software Architecture & Design Pattern

Page 30: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

30

Invocation Architecture

Software Architecture & Design Pattern

Page 31: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

31

Layered Architecture

Operatingsystem

Database system

Object management

Version management

Software Architecture & Design Pattern

Page 32: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study 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

Page 33: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study 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

Page 34: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

34

Multi-tier Architecture

Client

Client

Client

Front-end

Front-end

Server

Server

Server

Software Architecture & Design Pattern

Page 36: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

36

MVC (Model-View-Control) model

• Java Swing

• GTK++

• MFC

• ASP .Net

• Adobe Flex

Software Architecture & Design Pattern

Page 37: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study 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

Page 38: 1 Lecture 3 Major Architectural Models 4 + 1 View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern

38

Questions?

Software Architecture & Design Pattern