253
Introduction Architectural Design Application Architectures Object-Oriented Design Chapter 4 Design May 13, 2009 Chapter 4 Design 1/72

Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Chapter 4 — Design

May 13, 2009

Chapter 4 — Design 1/72

Page 2: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Outline

1 Introduction

2 Architectural DesignSystem OrganizationDistributed Systems Architecture

3 Application ArchitecturesTypes of AAs

4 Object-Oriented DesignObject-Oriented Design Process

5 Interface Design

Chapter 4 — Design 2/72

Page 3: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

Logical organization of software

UML modelsketches, drawings, notes

creative process: no real “method”learn from previous design experiences

Chapter 4 — Design 3/72

Page 4: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

Logical organization of softwareUML model

sketches, drawings, notes

creative process: no real “method”learn from previous design experiences

Chapter 4 — Design 3/72

Page 5: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

Logical organization of softwareUML modelsketches, drawings, notes

creative process: no real “method”learn from previous design experiences

Chapter 4 — Design 3/72

Page 6: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

Logical organization of softwareUML modelsketches, drawings, notes

creative process: no real “method”

learn from previous design experiences

Chapter 4 — Design 3/72

Page 7: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

Logical organization of softwareUML modelsketches, drawings, notes

creative process: no real “method”learn from previous design experiences

Chapter 4 — Design 3/72

Page 8: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

In This Chapter

Learn about software design perspectives and ideas

Architecture: abstract formulas and patternsSpecific Issues: common to most software designs

object-oriented designuser-interface design

Chapter 4 — Design 4/72

Page 9: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

In This Chapter

Learn about software design perspectives and ideasArchitecture: abstract formulas and patterns

Specific Issues: common to most software designsobject-oriented designuser-interface design

Chapter 4 — Design 4/72

Page 10: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

In This Chapter

Learn about software design perspectives and ideasArchitecture: abstract formulas and patternsSpecific Issues: common to most software designs

object-oriented designuser-interface design

Chapter 4 — Design 4/72

Page 11: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

In This Chapter

Learn about software design perspectives and ideasArchitecture: abstract formulas and patternsSpecific Issues: common to most software designs

object-oriented designuser-interface design

Chapter 4 — Design 4/72

Page 12: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Outline

1 Introduction

2 Architectural DesignSystem OrganizationDistributed Systems Architecture

3 Application ArchitecturesTypes of AAs

4 Object-Oriented DesignObject-Oriented Design Process

5 Interface Design

Chapter 4 — Design 5/72

Page 13: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Introduction

System is composed of sub-systems

Architectural Design:identify sub-systemsframework for sub-system control and communication

affects performance, robustness, availability, maintainability

Chapter 4 — Design 6/72

Page 14: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Introduction

System is composed of sub-systemsArchitectural Design:

identify sub-systemsframework for sub-system control and communication

affects performance, robustness, availability, maintainability

Chapter 4 — Design 6/72

Page 15: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Introduction

System is composed of sub-systemsArchitectural Design:

identify sub-systemsframework for sub-system control and communication

affects performance, robustness, availability, maintainability

Chapter 4 — Design 6/72

Page 16: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Outline

1 Introduction

2 Architectural DesignSystem OrganizationDistributed Systems Architecture

3 Application ArchitecturesTypes of AAs

4 Object-Oriented DesignObject-Oriented Design Process

5 Interface Design

Chapter 4 — Design 7/72

Page 17: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Organization

Reflects basic strategy for the structure

Common organization styles:repositoryclient-serverlayered

Chapter 4 — Design 8/72

Page 18: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Organization

Reflects basic strategy for the structureCommon organization styles:

repositoryclient-serverlayered

Chapter 4 — Design 8/72

Page 19: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Repository Model

If large amounts of data: central, shared repository or DB

otherwise: DBs for each subsystem

Advantages / Disadvantages:efficient for sharing (all sub-systems must agree on data model)backup, security, access control are centralized (agreement)

Chapter 4 — Design 9/72

Page 20: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Repository Model

If large amounts of data: central, shared repository or DBotherwise: DBs for each subsystem

Advantages / Disadvantages:efficient for sharing (all sub-systems must agree on data model)backup, security, access control are centralized (agreement)

Chapter 4 — Design 9/72

Page 21: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Repository Model

If large amounts of data: central, shared repository or DBotherwise: DBs for each subsystem

Advantages / Disadvantages:

efficient for sharing (all sub-systems must agree on data model)backup, security, access control are centralized (agreement)

Chapter 4 — Design 9/72

Page 22: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Repository Model

If large amounts of data: central, shared repository or DBotherwise: DBs for each subsystem

Advantages / Disadvantages:efficient for sharing (all sub-systems must agree on data model)

backup, security, access control are centralized (agreement)

Chapter 4 — Design 9/72

Page 23: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Repository Model

If large amounts of data: central, shared repository or DBotherwise: DBs for each subsystem

Advantages / Disadvantages:efficient for sharing (all sub-systems must agree on data model)backup, security, access control are centralized (agreement)

Chapter 4 — Design 9/72

Page 24: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Architecture Model

System as a set of services

Components:servers: offer services.

e.g., web, print, file, compile

clients: consumer servicesnetwork: connects the two

not always necessary if not distributed

Clients must know name, services of available serverse.g., DNSnot vice-versa

Clients access services using RPC with a request-reply protocole.g., http protocol for WWW

Client waits for a reply

Chapter 4 — Design 10/72

Page 25: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Architecture Model

System as a set of servicesComponents:

servers: offer services.e.g., web, print, file, compile

clients: consumer servicesnetwork: connects the two

not always necessary if not distributed

Clients must know name, services of available serverse.g., DNSnot vice-versa

Clients access services using RPC with a request-reply protocole.g., http protocol for WWW

Client waits for a reply

Chapter 4 — Design 10/72

Page 26: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Architecture Model

System as a set of servicesComponents:

servers: offer services.

e.g., web, print, file, compile

clients: consumer servicesnetwork: connects the two

not always necessary if not distributed

Clients must know name, services of available serverse.g., DNSnot vice-versa

Clients access services using RPC with a request-reply protocole.g., http protocol for WWW

Client waits for a reply

Chapter 4 — Design 10/72

Page 27: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Architecture Model

System as a set of servicesComponents:

servers: offer services.e.g., web, print, file, compile

clients: consumer servicesnetwork: connects the two

not always necessary if not distributed

Clients must know name, services of available serverse.g., DNSnot vice-versa

Clients access services using RPC with a request-reply protocole.g., http protocol for WWW

Client waits for a reply

Chapter 4 — Design 10/72

Page 28: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Architecture Model

System as a set of servicesComponents:

servers: offer services.e.g., web, print, file, compile

clients: consumer services

network: connects the twonot always necessary if not distributed

Clients must know name, services of available serverse.g., DNSnot vice-versa

Clients access services using RPC with a request-reply protocole.g., http protocol for WWW

Client waits for a reply

Chapter 4 — Design 10/72

Page 29: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Architecture Model

System as a set of servicesComponents:

servers: offer services.e.g., web, print, file, compile

clients: consumer servicesnetwork: connects the two

not always necessary if not distributed

Clients must know name, services of available serverse.g., DNSnot vice-versa

Clients access services using RPC with a request-reply protocole.g., http protocol for WWW

Client waits for a reply

Chapter 4 — Design 10/72

Page 30: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Architecture Model

System as a set of servicesComponents:

servers: offer services.e.g., web, print, file, compile

clients: consumer servicesnetwork: connects the two

not always necessary if not distributed

Clients must know name, services of available serverse.g., DNSnot vice-versa

Clients access services using RPC with a request-reply protocole.g., http protocol for WWW

Client waits for a reply

Chapter 4 — Design 10/72

Page 31: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Architecture Model

System as a set of servicesComponents:

servers: offer services.e.g., web, print, file, compile

clients: consumer servicesnetwork: connects the two

not always necessary if not distributed

Clients must know name, services of available servers

e.g., DNSnot vice-versa

Clients access services using RPC with a request-reply protocole.g., http protocol for WWW

Client waits for a reply

Chapter 4 — Design 10/72

Page 32: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Architecture Model

System as a set of servicesComponents:

servers: offer services.e.g., web, print, file, compile

clients: consumer servicesnetwork: connects the two

not always necessary if not distributed

Clients must know name, services of available serverse.g., DNS

not vice-versa

Clients access services using RPC with a request-reply protocole.g., http protocol for WWW

Client waits for a reply

Chapter 4 — Design 10/72

Page 33: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Architecture Model

System as a set of servicesComponents:

servers: offer services.e.g., web, print, file, compile

clients: consumer servicesnetwork: connects the two

not always necessary if not distributed

Clients must know name, services of available serverse.g., DNSnot vice-versa

Clients access services using RPC with a request-reply protocole.g., http protocol for WWW

Client waits for a reply

Chapter 4 — Design 10/72

Page 34: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Architecture Model

System as a set of servicesComponents:

servers: offer services.e.g., web, print, file, compile

clients: consumer servicesnetwork: connects the two

not always necessary if not distributed

Clients must know name, services of available serverse.g., DNSnot vice-versa

Clients access services using RPC with a request-reply protocol

e.g., http protocol for WWW

Client waits for a reply

Chapter 4 — Design 10/72

Page 35: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Architecture Model

System as a set of servicesComponents:

servers: offer services.e.g., web, print, file, compile

clients: consumer servicesnetwork: connects the two

not always necessary if not distributed

Clients must know name, services of available serverse.g., DNSnot vice-versa

Clients access services using RPC with a request-reply protocole.g., http protocol for WWW

Client waits for a reply

Chapter 4 — Design 10/72

Page 36: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Architecture Model

System as a set of servicesComponents:

servers: offer services.e.g., web, print, file, compile

clients: consumer servicesnetwork: connects the two

not always necessary if not distributed

Clients must know name, services of available serverse.g., DNSnot vice-versa

Clients access services using RPC with a request-reply protocole.g., http protocol for WWW

Client waits for a reply

Chapter 4 — Design 10/72

Page 37: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Achitecture Model

E.g.: Video and Photo Library system’s architecture

Chapter 4 — Design 11/72

Page 38: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Achitecture Model

Advantages:

Distributed architecture: processing, storagemake changes transparently

Best used if using shared data modelotherwise may need to translate for each sub-systemXML can be used, but slow

Chapter 4 — Design 12/72

Page 39: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Achitecture Model

Advantages:Distributed architecture: processing, storage

make changes transparently

Best used if using shared data modelotherwise may need to translate for each sub-systemXML can be used, but slow

Chapter 4 — Design 12/72

Page 40: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Achitecture Model

Advantages:Distributed architecture: processing, storagemake changes transparently

Best used if using shared data modelotherwise may need to translate for each sub-systemXML can be used, but slow

Chapter 4 — Design 12/72

Page 41: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Achitecture Model

Advantages:Distributed architecture: processing, storagemake changes transparently

Best used if using shared data model

otherwise may need to translate for each sub-systemXML can be used, but slow

Chapter 4 — Design 12/72

Page 42: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Achitecture Model

Advantages:Distributed architecture: processing, storagemake changes transparently

Best used if using shared data modelotherwise may need to translate for each sub-system

XML can be used, but slow

Chapter 4 — Design 12/72

Page 43: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Achitecture Model

Advantages:Distributed architecture: processing, storagemake changes transparently

Best used if using shared data modelotherwise may need to translate for each sub-systemXML can be used, but slow

Chapter 4 — Design 12/72

Page 44: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Layered Architecture Model

Organize sub-systems in layers

Also “abstract machine model”Each layer ≈ an abstract machineContrast this with client-server model

hierarchy vs. network

Advantages:supports incremental developmentlocalize machine dependence in lower layers

Disadvantages:may have to “punch through” from top to bottomperformance may suffer

Chapter 4 — Design 13/72

Page 45: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Layered Architecture Model

Organize sub-systems in layersAlso “abstract machine model”

Each layer ≈ an abstract machineContrast this with client-server model

hierarchy vs. network

Advantages:supports incremental developmentlocalize machine dependence in lower layers

Disadvantages:may have to “punch through” from top to bottomperformance may suffer

Chapter 4 — Design 13/72

Page 46: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Layered Architecture Model

Organize sub-systems in layersAlso “abstract machine model”Each layer ≈ an abstract machine

Contrast this with client-server modelhierarchy vs. network

Advantages:supports incremental developmentlocalize machine dependence in lower layers

Disadvantages:may have to “punch through” from top to bottomperformance may suffer

Chapter 4 — Design 13/72

Page 47: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Layered Architecture Model

Organize sub-systems in layersAlso “abstract machine model”Each layer ≈ an abstract machineContrast this with client-server model

hierarchy vs. network

Advantages:supports incremental developmentlocalize machine dependence in lower layers

Disadvantages:may have to “punch through” from top to bottomperformance may suffer

Chapter 4 — Design 13/72

Page 48: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Layered Architecture Model

Organize sub-systems in layersAlso “abstract machine model”Each layer ≈ an abstract machineContrast this with client-server model

hierarchy vs. network

Advantages:supports incremental developmentlocalize machine dependence in lower layers

Disadvantages:may have to “punch through” from top to bottomperformance may suffer

Chapter 4 — Design 13/72

Page 49: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Layered Architecture Model

Organize sub-systems in layersAlso “abstract machine model”Each layer ≈ an abstract machineContrast this with client-server model

hierarchy vs. network

Advantages:

supports incremental developmentlocalize machine dependence in lower layers

Disadvantages:may have to “punch through” from top to bottomperformance may suffer

Chapter 4 — Design 13/72

Page 50: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Layered Architecture Model

Organize sub-systems in layersAlso “abstract machine model”Each layer ≈ an abstract machineContrast this with client-server model

hierarchy vs. network

Advantages:supports incremental development

localize machine dependence in lower layers

Disadvantages:may have to “punch through” from top to bottomperformance may suffer

Chapter 4 — Design 13/72

Page 51: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Layered Architecture Model

Organize sub-systems in layersAlso “abstract machine model”Each layer ≈ an abstract machineContrast this with client-server model

hierarchy vs. network

Advantages:supports incremental developmentlocalize machine dependence in lower layers

Disadvantages:may have to “punch through” from top to bottomperformance may suffer

Chapter 4 — Design 13/72

Page 52: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Layered Architecture Model

Organize sub-systems in layersAlso “abstract machine model”Each layer ≈ an abstract machineContrast this with client-server model

hierarchy vs. network

Advantages:supports incremental developmentlocalize machine dependence in lower layers

Disadvantages:

may have to “punch through” from top to bottomperformance may suffer

Chapter 4 — Design 13/72

Page 53: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Layered Architecture Model

Organize sub-systems in layersAlso “abstract machine model”Each layer ≈ an abstract machineContrast this with client-server model

hierarchy vs. network

Advantages:supports incremental developmentlocalize machine dependence in lower layers

Disadvantages:may have to “punch through” from top to bottom

performance may suffer

Chapter 4 — Design 13/72

Page 54: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Layered Architecture Model

Organize sub-systems in layersAlso “abstract machine model”Each layer ≈ an abstract machineContrast this with client-server model

hierarchy vs. network

Advantages:supports incremental developmentlocalize machine dependence in lower layers

Disadvantages:may have to “punch through” from top to bottomperformance may suffer

Chapter 4 — Design 13/72

Page 55: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Layered Architecture Model

Figure: Version Control System

Chapter 4 — Design 14/72

Page 56: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Reference architectures

Represents architecture for a particular domain

several systems will share the architectureCan be resued

Not for direct implementationcommunicate domain conceptsevaluate possible architectures

Chapter 4 — Design 15/72

Page 57: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Reference architectures

Represents architecture for a particular domainseveral systems will share the architecture

Can be resued

Not for direct implementationcommunicate domain conceptsevaluate possible architectures

Chapter 4 — Design 15/72

Page 58: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Reference architectures

Represents architecture for a particular domainseveral systems will share the architectureCan be resued

Not for direct implementationcommunicate domain conceptsevaluate possible architectures

Chapter 4 — Design 15/72

Page 59: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Reference architectures

Represents architecture for a particular domainseveral systems will share the architectureCan be resued

Not for direct implementation

communicate domain conceptsevaluate possible architectures

Chapter 4 — Design 15/72

Page 60: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Reference architectures

Represents architecture for a particular domainseveral systems will share the architectureCan be resued

Not for direct implementationcommunicate domain concepts

evaluate possible architectures

Chapter 4 — Design 15/72

Page 61: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Reference architectures

Represents architecture for a particular domainseveral systems will share the architectureCan be resued

Not for direct implementationcommunicate domain conceptsevaluate possible architectures

Chapter 4 — Design 15/72

Page 62: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Example Reference Architecture

Figure: The OSI Reference Architecture for Computer Networks

Chapter 4 — Design 16/72

Page 63: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Outline

1 Introduction

2 Architectural DesignSystem OrganizationDistributed Systems Architecture

3 Application ArchitecturesTypes of AAs

4 Object-Oriented DesignObject-Oriented Design Process

5 Interface Design

Chapter 4 — Design 17/72

Page 64: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Introduction

Information processing is distributed over several computers

Advantages:Resource sharingOpennessConcurrencyScalabilityFault Tolerance

Disadvantages:ComplexitySecurityManageabilityUnpredictability

Chapter 4 — Design 18/72

Page 65: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Introduction

Information processing is distributed over several computersAdvantages:

Resource sharingOpennessConcurrencyScalabilityFault Tolerance

Disadvantages:ComplexitySecurityManageabilityUnpredictability

Chapter 4 — Design 18/72

Page 66: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Introduction

Information processing is distributed over several computersAdvantages:

Resource sharing

OpennessConcurrencyScalabilityFault Tolerance

Disadvantages:ComplexitySecurityManageabilityUnpredictability

Chapter 4 — Design 18/72

Page 67: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Introduction

Information processing is distributed over several computersAdvantages:

Resource sharingOpenness

ConcurrencyScalabilityFault Tolerance

Disadvantages:ComplexitySecurityManageabilityUnpredictability

Chapter 4 — Design 18/72

Page 68: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Introduction

Information processing is distributed over several computersAdvantages:

Resource sharingOpennessConcurrency

ScalabilityFault Tolerance

Disadvantages:ComplexitySecurityManageabilityUnpredictability

Chapter 4 — Design 18/72

Page 69: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Introduction

Information processing is distributed over several computersAdvantages:

Resource sharingOpennessConcurrencyScalability

Fault Tolerance

Disadvantages:ComplexitySecurityManageabilityUnpredictability

Chapter 4 — Design 18/72

Page 70: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Introduction

Information processing is distributed over several computersAdvantages:

Resource sharingOpennessConcurrencyScalabilityFault Tolerance

Disadvantages:ComplexitySecurityManageabilityUnpredictability

Chapter 4 — Design 18/72

Page 71: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Introduction

Information processing is distributed over several computersAdvantages:

Resource sharingOpennessConcurrencyScalabilityFault Tolerance

Disadvantages:

ComplexitySecurityManageabilityUnpredictability

Chapter 4 — Design 18/72

Page 72: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Introduction

Information processing is distributed over several computersAdvantages:

Resource sharingOpennessConcurrencyScalabilityFault Tolerance

Disadvantages:Complexity

SecurityManageabilityUnpredictability

Chapter 4 — Design 18/72

Page 73: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Introduction

Information processing is distributed over several computersAdvantages:

Resource sharingOpennessConcurrencyScalabilityFault Tolerance

Disadvantages:ComplexitySecurity

ManageabilityUnpredictability

Chapter 4 — Design 18/72

Page 74: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Introduction

Information processing is distributed over several computersAdvantages:

Resource sharingOpennessConcurrencyScalabilityFault Tolerance

Disadvantages:ComplexitySecurityManageability

Unpredictability

Chapter 4 — Design 18/72

Page 75: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Introduction

Information processing is distributed over several computersAdvantages:

Resource sharingOpennessConcurrencyScalabilityFault Tolerance

Disadvantages:ComplexitySecurityManageabilityUnpredictability

Chapter 4 — Design 18/72

Page 76: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Multi-processor Architecture

Figure: A multiprocessor traffic control system

Chapter 4 — Design 19/72

Page 77: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Client-Server Architecture (CSA)

Difference between server process and server computer

Chapter 4 — Design 20/72

Page 78: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

CSA Example

Figure: A client-server system

Chapter 4 — Design 21/72

Page 79: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

CSA Example

Figure: Computers in a client-server network

Chapter 4 — Design 22/72

Page 80: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

How to CSA-ize Your System

Distribute some/all of the MVC layers

Chapter 4 — Design 23/72

Page 81: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Two-tier CSA

Simplest CSA: a server(s) and clients

Thin and flat client models

Chapter 4 — Design 24/72

Page 82: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Two-tier CSA

Simplest CSA: a server(s) and clientsThin and flat client models

Chapter 4 — Design 24/72

Page 83: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Three-tier CSA

Each MVC layer on a separate computer

Chapter 4 — Design 25/72

Page 84: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Other Distributed Architectures

Peer-to-peer

centralizedsemi-centralized

Service-oriented Architecture (e.g., web services)web beyond browsersstandards (based on XML)

SOAPWSDLUDDI

Chapter 4 — Design 26/72

Page 85: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Other Distributed Architectures

Peer-to-peercentralized

semi-centralized

Service-oriented Architecture (e.g., web services)web beyond browsersstandards (based on XML)

SOAPWSDLUDDI

Chapter 4 — Design 26/72

Page 86: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Other Distributed Architectures

Peer-to-peercentralizedsemi-centralized

Service-oriented Architecture (e.g., web services)web beyond browsersstandards (based on XML)

SOAPWSDLUDDI

Chapter 4 — Design 26/72

Page 87: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Other Distributed Architectures

Peer-to-peercentralizedsemi-centralized

Service-oriented Architecture (e.g., web services)

web beyond browsersstandards (based on XML)

SOAPWSDLUDDI

Chapter 4 — Design 26/72

Page 88: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Other Distributed Architectures

Peer-to-peercentralizedsemi-centralized

Service-oriented Architecture (e.g., web services)web beyond browsers

standards (based on XML)SOAPWSDLUDDI

Chapter 4 — Design 26/72

Page 89: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignSystem Organization Distributed Systems Architecture

Other Distributed Architectures

Peer-to-peercentralizedsemi-centralized

Service-oriented Architecture (e.g., web services)web beyond browsersstandards (based on XML)

SOAPWSDLUDDI

Chapter 4 — Design 26/72

Page 90: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Outline

1 Introduction

2 Architectural DesignSystem OrganizationDistributed Systems Architecture

3 Application ArchitecturesTypes of AAs

4 Object-Oriented DesignObject-Oriented Design Process

5 Interface Design

Chapter 4 — Design 27/72

Page 91: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Introduction

Look at system architecture from application’s perspective

previous perspective: control, distribution, structure

Issues to common to applications of a certain kind

Chapter 4 — Design 28/72

Page 92: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Introduction

Look at system architecture from application’s perspectiveprevious perspective: control, distribution, structure

Issues to common to applications of a certain kind

Chapter 4 — Design 28/72

Page 93: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Introduction

Look at system architecture from application’s perspectiveprevious perspective: control, distribution, structure

Issues to common to applications of a certain kind

Chapter 4 — Design 28/72

Page 94: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Use of AA

As s/w developer, AAs are useful asstarting point for design process

design checklistorganize team-specific workassessing components for reuse

Chapter 4 — Design 29/72

Page 95: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Use of AA

As s/w developer, AAs are useful asstarting point for design processdesign checklist

organize team-specific workassessing components for reuse

Chapter 4 — Design 29/72

Page 96: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Use of AA

As s/w developer, AAs are useful asstarting point for design processdesign checklistorganize team-specific work

assessing components for reuse

Chapter 4 — Design 29/72

Page 97: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Use of AA

As s/w developer, AAs are useful asstarting point for design processdesign checklistorganize team-specific workassessing components for reuse

Chapter 4 — Design 29/72

Page 98: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Outline

1 Introduction

2 Architectural DesignSystem OrganizationDistributed Systems Architecture

3 Application ArchitecturesTypes of AAs

4 Object-Oriented DesignObject-Oriented Design Process

5 Interface Design

Chapter 4 — Design 30/72

Page 99: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Data-Processing Systems

Batch-processing of data

input and output: sizable databases / data stores

Figure: Model of data-processing applications

Do not need to save state across transactions∴, function-oriented rather than OO

Chapter 4 — Design 31/72

Page 100: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Data-Processing Systems

Batch-processing of datainput and output: sizable databases / data stores

Figure: Model of data-processing applications

Do not need to save state across transactions∴, function-oriented rather than OO

Chapter 4 — Design 31/72

Page 101: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Data-Processing Systems

Batch-processing of datainput and output: sizable databases / data stores

Figure: Model of data-processing applications

Do not need to save state across transactions∴, function-oriented rather than OO

Chapter 4 — Design 31/72

Page 102: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Data-Processing Systems

Batch-processing of datainput and output: sizable databases / data stores

Figure: Model of data-processing applications

Do not need to save state across transactions

∴, function-oriented rather than OO

Chapter 4 — Design 31/72

Page 103: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Data-Processing Systems

Batch-processing of datainput and output: sizable databases / data stores

Figure: Model of data-processing applications

Do not need to save state across transactions∴, function-oriented rather than OO

Chapter 4 — Design 31/72

Page 104: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Data-Flow Diagrams

DFDs are useful to describe data-processing applications

Figure: DFD for a payroll system

Chapter 4 — Design 32/72

Page 105: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Transaction-Processing Systems

Process user requests for DB read / update

Could be event-driven (interactive) or procedural(non-interactive)E.g.: medical records software, ATM

Figure: Layered architecture of a transaction processing system

Chapter 4 — Design 33/72

Page 106: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Transaction-Processing Systems

Process user requests for DB read / updateCould be event-driven (interactive) or procedural(non-interactive)

E.g.: medical records software, ATM

Figure: Layered architecture of a transaction processing system

Chapter 4 — Design 33/72

Page 107: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Transaction-Processing Systems

Process user requests for DB read / updateCould be event-driven (interactive) or procedural(non-interactive)E.g.: medical records software, ATM

Figure: Layered architecture of a transaction processing system

Chapter 4 — Design 33/72

Page 108: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Transaction-Processing Systems

Process user requests for DB read / updateCould be event-driven (interactive) or procedural(non-interactive)E.g.: medical records software, ATM

Figure: Layered architecture of a transaction processing system

Chapter 4 — Design 33/72

Page 109: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Event Processing Systems

Respond to user or system events

e.g. of such events?

Figure: Architecture of Event-driven system

Chapter 4 — Design 34/72

Page 110: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Event Processing Systems

Respond to user or system eventse.g. of such events?

Figure: Architecture of Event-driven system

Chapter 4 — Design 34/72

Page 111: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignTypes of AAs

Event Processing Systems

Respond to user or system eventse.g. of such events?

Figure: Architecture of Event-driven system

Chapter 4 — Design 34/72

Page 112: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Outline

1 Introduction

2 Architectural DesignSystem OrganizationDistributed Systems Architecture

3 Application ArchitecturesTypes of AAs

4 Object-Oriented DesignObject-Oriented Design Process

5 Interface Design

Chapter 4 — Design 35/72

Page 113: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Introduction

Object-oriented system: interacting objects that maintain their ownstate and provide operations on those states

Object-oriented design: system designing with object classes andwith relationships between these classes

classes are related to problemstate representation is privatesystem is easy to modify→ objects (classes) since they areindependentobjects are reusable

Chapter 4 — Design 36/72

Page 114: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Introduction

Object-oriented system: interacting objects that maintain their ownstate and provide operations on those statesObject-oriented design: system designing with object classes andwith relationships between these classes

classes are related to problem

state representation is privatesystem is easy to modify→ objects (classes) since they areindependentobjects are reusable

Chapter 4 — Design 36/72

Page 115: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Introduction

Object-oriented system: interacting objects that maintain their ownstate and provide operations on those statesObject-oriented design: system designing with object classes andwith relationships between these classes

classes are related to problemstate representation is private

system is easy to modify→ objects (classes) since they areindependentobjects are reusable

Chapter 4 — Design 36/72

Page 116: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Introduction

Object-oriented system: interacting objects that maintain their ownstate and provide operations on those statesObject-oriented design: system designing with object classes andwith relationships between these classes

classes are related to problemstate representation is privatesystem is easy to modify→ objects (classes) since they areindependentobjects are reusable

Chapter 4 — Design 36/72

Page 117: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Objects and classes

Object: entity{state, operations}

state provides object informationoperations provide services to other objectsObjects created from a class: definition of template

Chapter 4 — Design 37/72

Page 118: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Objects and classes

Object: entity{state, operations}state provides object information

operations provide services to other objectsObjects created from a class: definition of template

Chapter 4 — Design 37/72

Page 119: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Objects and classes

Object: entity{state, operations}state provides object informationoperations provide services to other objects

Objects created from a class: definition of template

Chapter 4 — Design 37/72

Page 120: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Objects and classes

Object: entity{state, operations}state provides object informationoperations provide services to other objectsObjects created from a class: definition of template

Chapter 4 — Design 37/72

Page 121: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

An Employee object class (UML)

Chapter 4 — Design 38/72

Page 122: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Example Class Hierarchy (Generalization)

Chapter 4 — Design 39/72

Page 123: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Association Model

Chapter 4 — Design 40/72

Page 124: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Concurrent Objects

Objects execute concurrently

However, service requests are proceduralThreads allow for full concurrency even with service requests

Chapter 4 — Design 41/72

Page 125: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Concurrent Objects

Objects execute concurrentlyHowever, service requests are procedural

Threads allow for full concurrency even with service requests

Chapter 4 — Design 41/72

Page 126: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Concurrent Objects

Objects execute concurrentlyHowever, service requests are proceduralThreads allow for full concurrency even with service requests

Chapter 4 — Design 41/72

Page 127: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Outline

1 Introduction

2 Architectural DesignSystem OrganizationDistributed Systems Architecture

3 Application ArchitecturesTypes of AAs

4 Object-Oriented DesignObject-Oriented Design Process

5 Interface Design

Chapter 4 — Design 42/72

Page 128: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

The Process

Steps in the process:Understand context and useDesign system architectureIdentify main objectsDesign system modelsSpecify object interfaces

Usually an iterative, interleaved process

Chapter 4 — Design 43/72

Page 129: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

The Process

Steps in the process:Understand context and useDesign system architectureIdentify main objectsDesign system modelsSpecify object interfaces

Usually an iterative, interleaved process

Chapter 4 — Design 43/72

Page 130: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

The Process

Steps in the process:Understand context and useDesign system architectureIdentify main objectsDesign system modelsSpecify object interfaces

Usually an iterative, interleaved process

Chapter 4 — Design 43/72

Page 131: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Example: a weather mapping system

Chapter 4 — Design 44/72

Page 132: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Basics

System descriptiongenerates weather maps from data collected from several sourcescollect and integrate data into an archiveuse archive and digitized map to display/print weather map

Chapter 4 — Design 45/72

Page 133: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Use Case and Context

Context: how the system is connected in its environmentUse case: ways in which system can be used

Chapter 4 — Design 46/72

Page 134: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Use-cases for weather station

Chapter 4 — Design 47/72

Page 135: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Compltete System Architecture

Layered architecture: each step only depends on previous step

Chapter 4 — Design 48/72

Page 136: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Compltete System Architecture

Layered architecture: each step only depends on previous step

Chapter 4 — Design 48/72

Page 137: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Subsystems in the Architecture

Chapter 4 — Design 49/72

Page 138: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

System Architecture of Weather Station

Decomposing the system

Weather Station architecture:

Chapter 4 — Design 50/72

Page 139: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

System Architecture of Weather Station

Decomposing the systemWeather Station architecture:

Chapter 4 — Design 50/72

Page 140: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

System Architecture of Weather Station

Decomposing the systemWeather Station architecture:

Chapter 4 — Design 50/72

Page 141: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Object Identification

Figure out what objects (classes) for each system/susbsystem

Use application domain knowledge for attributes and servicesFor the weather station subsystem:

Chapter 4 — Design 51/72

Page 142: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Object Identification

Figure out what objects (classes) for each system/susbsystemUse application domain knowledge for attributes and services

For the weather station subsystem:

Chapter 4 — Design 51/72

Page 143: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Object Identification

Figure out what objects (classes) for each system/susbsystemUse application domain knowledge for attributes and servicesFor the weather station subsystem:

Chapter 4 — Design 51/72

Page 144: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Design Models

Graphical model of system to be implemented

Helps you to program your classes laterBridge between requirements and implementation

can create conflicts for level of detail

create several models with varying detailor choose certain level of detail in single model

Chapter 4 — Design 52/72

Page 145: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Design Models

Graphical model of system to be implementedHelps you to program your classes laterBridge between requirements and implementation

can create conflicts for level of detail

create several models with varying detailor choose certain level of detail in single model

Chapter 4 — Design 52/72

Page 146: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Design Models

Graphical model of system to be implementedHelps you to program your classes laterBridge between requirements and implementation

can create conflicts for level of detail

create several models with varying detailor choose certain level of detail in single model

Chapter 4 — Design 52/72

Page 147: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Design Models

Graphical model of system to be implementedHelps you to program your classes laterBridge between requirements and implementation

can create conflicts for level of detail

create several models with varying detail

or choose certain level of detail in single model

Chapter 4 — Design 52/72

Page 148: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Design Models

Graphical model of system to be implementedHelps you to program your classes laterBridge between requirements and implementation

can create conflicts for level of detail

create several models with varying detailor choose certain level of detail in single model

Chapter 4 — Design 52/72

Page 149: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Static and Dynamic models

Static Models

describe system structure with classes and relationshipsrelationships: generalization, used/used-by, composition

Dynamic Modelsshow interactions between system objects (not classes)service requests, state chages

Chapter 4 — Design 53/72

Page 150: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Static and Dynamic models

Static Modelsdescribe system structure with classes and relationships

relationships: generalization, used/used-by, compositionDynamic Models

show interactions between system objects (not classes)service requests, state chages

Chapter 4 — Design 53/72

Page 151: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Static and Dynamic models

Static Modelsdescribe system structure with classes and relationshipsrelationships: generalization, used/used-by, composition

Dynamic Modelsshow interactions between system objects (not classes)service requests, state chages

Chapter 4 — Design 53/72

Page 152: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Static and Dynamic models

Static Modelsdescribe system structure with classes and relationshipsrelationships: generalization, used/used-by, composition

Dynamic Models

show interactions between system objects (not classes)service requests, state chages

Chapter 4 — Design 53/72

Page 153: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Static and Dynamic models

Static Modelsdescribe system structure with classes and relationshipsrelationships: generalization, used/used-by, composition

Dynamic Modelsshow interactions between system objects (not classes)

service requests, state chages

Chapter 4 — Design 53/72

Page 154: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Static and Dynamic models

Static Modelsdescribe system structure with classes and relationshipsrelationships: generalization, used/used-by, composition

Dynamic Modelsshow interactions between system objects (not classes)service requests, state chages

Chapter 4 — Design 53/72

Page 155: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

UML for Modeling

12 types of graphical models to document the static and dynamicsystem design

Subsystem models: show logical grouping of classes insub-systems

show as packagesstatic models

Sequence models: show sequence of object interactionsUML sequence or collaboration diagram.dynamic models

State machine models: show state changes for individual objectsevents and responsesstate chart diagramsdynamic models

Other model types in UML: use case, object models, generalization,etc.

Chapter 4 — Design 54/72

Page 156: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

UML for Modeling

12 types of graphical models to document the static and dynamicsystem designSubsystem models: show logical grouping of classes insub-systems

show as packagesstatic models

Sequence models: show sequence of object interactionsUML sequence or collaboration diagram.dynamic models

State machine models: show state changes for individual objectsevents and responsesstate chart diagramsdynamic models

Other model types in UML: use case, object models, generalization,etc.

Chapter 4 — Design 54/72

Page 157: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

UML for Modeling

12 types of graphical models to document the static and dynamicsystem designSubsystem models: show logical grouping of classes insub-systems

show as packages

static models

Sequence models: show sequence of object interactionsUML sequence or collaboration diagram.dynamic models

State machine models: show state changes for individual objectsevents and responsesstate chart diagramsdynamic models

Other model types in UML: use case, object models, generalization,etc.

Chapter 4 — Design 54/72

Page 158: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

UML for Modeling

12 types of graphical models to document the static and dynamicsystem designSubsystem models: show logical grouping of classes insub-systems

show as packagesstatic models

Sequence models: show sequence of object interactionsUML sequence or collaboration diagram.dynamic models

State machine models: show state changes for individual objectsevents and responsesstate chart diagramsdynamic models

Other model types in UML: use case, object models, generalization,etc.

Chapter 4 — Design 54/72

Page 159: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

UML for Modeling

12 types of graphical models to document the static and dynamicsystem designSubsystem models: show logical grouping of classes insub-systems

show as packagesstatic models

Sequence models: show sequence of object interactions

UML sequence or collaboration diagram.dynamic models

State machine models: show state changes for individual objectsevents and responsesstate chart diagramsdynamic models

Other model types in UML: use case, object models, generalization,etc.

Chapter 4 — Design 54/72

Page 160: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

UML for Modeling

12 types of graphical models to document the static and dynamicsystem designSubsystem models: show logical grouping of classes insub-systems

show as packagesstatic models

Sequence models: show sequence of object interactionsUML sequence or collaboration diagram.

dynamic models

State machine models: show state changes for individual objectsevents and responsesstate chart diagramsdynamic models

Other model types in UML: use case, object models, generalization,etc.

Chapter 4 — Design 54/72

Page 161: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

UML for Modeling

12 types of graphical models to document the static and dynamicsystem designSubsystem models: show logical grouping of classes insub-systems

show as packagesstatic models

Sequence models: show sequence of object interactionsUML sequence or collaboration diagram.dynamic models

State machine models: show state changes for individual objectsevents and responsesstate chart diagramsdynamic models

Other model types in UML: use case, object models, generalization,etc.

Chapter 4 — Design 54/72

Page 162: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

UML for Modeling

12 types of graphical models to document the static and dynamicsystem designSubsystem models: show logical grouping of classes insub-systems

show as packagesstatic models

Sequence models: show sequence of object interactionsUML sequence or collaboration diagram.dynamic models

State machine models: show state changes for individual objects

events and responsesstate chart diagramsdynamic models

Other model types in UML: use case, object models, generalization,etc.

Chapter 4 — Design 54/72

Page 163: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

UML for Modeling

12 types of graphical models to document the static and dynamicsystem designSubsystem models: show logical grouping of classes insub-systems

show as packagesstatic models

Sequence models: show sequence of object interactionsUML sequence or collaboration diagram.dynamic models

State machine models: show state changes for individual objectsevents and responses

state chart diagramsdynamic models

Other model types in UML: use case, object models, generalization,etc.

Chapter 4 — Design 54/72

Page 164: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

UML for Modeling

12 types of graphical models to document the static and dynamicsystem designSubsystem models: show logical grouping of classes insub-systems

show as packagesstatic models

Sequence models: show sequence of object interactionsUML sequence or collaboration diagram.dynamic models

State machine models: show state changes for individual objectsevents and responsesstate chart diagrams

dynamic models

Other model types in UML: use case, object models, generalization,etc.

Chapter 4 — Design 54/72

Page 165: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

UML for Modeling

12 types of graphical models to document the static and dynamicsystem designSubsystem models: show logical grouping of classes insub-systems

show as packagesstatic models

Sequence models: show sequence of object interactionsUML sequence or collaboration diagram.dynamic models

State machine models: show state changes for individual objectsevents and responsesstate chart diagramsdynamic models

Other model types in UML: use case, object models, generalization,etc.

Chapter 4 — Design 54/72

Page 166: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

UML for Modeling

12 types of graphical models to document the static and dynamicsystem designSubsystem models: show logical grouping of classes insub-systems

show as packagesstatic models

Sequence models: show sequence of object interactionsUML sequence or collaboration diagram.dynamic models

State machine models: show state changes for individual objectsevents and responsesstate chart diagramsdynamic models

Other model types in UML: use case, object models, generalization,etc.

Chapter 4 — Design 54/72

Page 167: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Subsystem Models

Objects in weather station package:

Figure: Weather station packages

Chapter 4 — Design 55/72

Page 168: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Subsystem Models

simple associations as well

sub-system model + class model = describe logical groupingusually relate to Java packages/libraries

Chapter 4 — Design 56/72

Page 169: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Subsystem Models

simple associations as wellsub-system model + class model = describe logical grouping

usually relate to Java packages/libraries

Chapter 4 — Design 56/72

Page 170: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Subsystem Models

simple associations as wellsub-system model + class model = describe logical groupingusually relate to Java packages/libraries

Chapter 4 — Design 56/72

Page 171: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Sequence Diagrams

Document interactions

For each interaction: sequence of object interactions

Figure: Sequence of operations in data collection

Chapter 4 — Design 57/72

Page 172: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Sequence Diagrams

Document interactionsFor each interaction: sequence of object interactions

Figure: Sequence of operations in data collection

Chapter 4 — Design 57/72

Page 173: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Sequence Diagrams

Document interactionsFor each interaction: sequence of object interactions

Figure: Sequence of operations in data collection

Chapter 4 — Design 57/72

Page 174: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Sequence Diagrams

Objects shown horizontally, time vertically

Labeled arrows show atomic interactions between objectsrepresent messagesnot data flows

thin rectangles: when the object is the controlling objectin a hierarchy, control is not relinquished until original object isreplied to

Sequence Diagrams also for single objects

Chapter 4 — Design 58/72

Page 175: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Sequence Diagrams

Objects shown horizontally, time verticallyLabeled arrows show atomic interactions between objects

represent messagesnot data flows

thin rectangles: when the object is the controlling objectin a hierarchy, control is not relinquished until original object isreplied to

Sequence Diagrams also for single objects

Chapter 4 — Design 58/72

Page 176: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Sequence Diagrams

Objects shown horizontally, time verticallyLabeled arrows show atomic interactions between objects

represent messagesnot data flows

thin rectangles: when the object is the controlling objectin a hierarchy, control is not relinquished until original object isreplied to

Sequence Diagrams also for single objects

Chapter 4 — Design 58/72

Page 177: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Sequence Diagrams

Objects shown horizontally, time verticallyLabeled arrows show atomic interactions between objects

represent messagesnot data flows

thin rectangles: when the object is the controlling object

in a hierarchy, control is not relinquished until original object isreplied to

Sequence Diagrams also for single objects

Chapter 4 — Design 58/72

Page 178: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Sequence Diagrams

Objects shown horizontally, time verticallyLabeled arrows show atomic interactions between objects

represent messagesnot data flows

thin rectangles: when the object is the controlling objectin a hierarchy, control is not relinquished until original object isreplied to

Sequence Diagrams also for single objects

Chapter 4 — Design 58/72

Page 179: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Sequence Diagrams

Objects shown horizontally, time verticallyLabeled arrows show atomic interactions between objects

represent messagesnot data flows

thin rectangles: when the object is the controlling objectin a hierarchy, control is not relinquished until original object isreplied to

Sequence Diagrams also for single objects

Chapter 4 — Design 58/72

Page 180: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

State Diagrams

For important objects: show their lifetimes and event responses

Figure: State diagram for weather station

States can be helpful when implementing the class

Chapter 4 — Design 59/72

Page 181: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

State Diagrams

For important objects: show their lifetimes and event responses

Figure: State diagram for weather station

States can be helpful when implementing the class

Chapter 4 — Design 59/72

Page 182: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

State Diagrams

For important objects: show their lifetimes and event responses

Figure: State diagram for weather station

States can be helpful when implementing the class

Chapter 4 — Design 59/72

Page 183: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Object-Interface Specification

Only the interface

not implementation or data itemsno internal details (private methos etc.)

helps concurrent developmentmore maintainable than full specification of classesTwo approaches:

each interface is a class in Javadeclare interfaces separately from classes

use interface and let classes implement an interface

Simply use Java (or another OO PL) to define interfaces

Chapter 4 — Design 60/72

Page 184: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Object-Interface Specification

Only the interfacenot implementation or data items

no internal details (private methos etc.)

helps concurrent developmentmore maintainable than full specification of classesTwo approaches:

each interface is a class in Javadeclare interfaces separately from classes

use interface and let classes implement an interface

Simply use Java (or another OO PL) to define interfaces

Chapter 4 — Design 60/72

Page 185: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Object-Interface Specification

Only the interfacenot implementation or data itemsno internal details (private methos etc.)

helps concurrent developmentmore maintainable than full specification of classesTwo approaches:

each interface is a class in Javadeclare interfaces separately from classes

use interface and let classes implement an interface

Simply use Java (or another OO PL) to define interfaces

Chapter 4 — Design 60/72

Page 186: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Object-Interface Specification

Only the interfacenot implementation or data itemsno internal details (private methos etc.)

helps concurrent development

more maintainable than full specification of classesTwo approaches:

each interface is a class in Javadeclare interfaces separately from classes

use interface and let classes implement an interface

Simply use Java (or another OO PL) to define interfaces

Chapter 4 — Design 60/72

Page 187: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Object-Interface Specification

Only the interfacenot implementation or data itemsno internal details (private methos etc.)

helps concurrent developmentmore maintainable than full specification of classes

Two approaches:each interface is a class in Javadeclare interfaces separately from classes

use interface and let classes implement an interface

Simply use Java (or another OO PL) to define interfaces

Chapter 4 — Design 60/72

Page 188: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Object-Interface Specification

Only the interfacenot implementation or data itemsno internal details (private methos etc.)

helps concurrent developmentmore maintainable than full specification of classesTwo approaches:

each interface is a class in Javadeclare interfaces separately from classes

use interface and let classes implement an interface

Simply use Java (or another OO PL) to define interfaces

Chapter 4 — Design 60/72

Page 189: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Object-Interface Specification

Only the interfacenot implementation or data itemsno internal details (private methos etc.)

helps concurrent developmentmore maintainable than full specification of classesTwo approaches:

each interface is a class in Java

declare interfaces separately from classesuse interface and let classes implement an interface

Simply use Java (or another OO PL) to define interfaces

Chapter 4 — Design 60/72

Page 190: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Object-Interface Specification

Only the interfacenot implementation or data itemsno internal details (private methos etc.)

helps concurrent developmentmore maintainable than full specification of classesTwo approaches:

each interface is a class in Javadeclare interfaces separately from classes

use interface and let classes implement an interface

Simply use Java (or another OO PL) to define interfaces

Chapter 4 — Design 60/72

Page 191: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Object-Interface Specification

Only the interfacenot implementation or data itemsno internal details (private methos etc.)

helps concurrent developmentmore maintainable than full specification of classesTwo approaches:

each interface is a class in Javadeclare interfaces separately from classes

use interface and let classes implement an interface

Simply use Java (or another OO PL) to define interfaces

Chapter 4 — Design 60/72

Page 192: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Design Evolution

OO approach allows for easy changes to design

state representation does not affect interfaceobjects are loosely coupled⇒ easy to introduce new ones

E.g.: add pollution-monitoring to weather stationintroduce Air quality class at Weather Data leveladd reportAirQuality() operation to WeatherStationadd classes for pollution monitoring

Chapter 4 — Design 61/72

Page 193: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Design Evolution

OO approach allows for easy changes to designstate representation does not affect interface

objects are loosely coupled⇒ easy to introduce new ones

E.g.: add pollution-monitoring to weather stationintroduce Air quality class at Weather Data leveladd reportAirQuality() operation to WeatherStationadd classes for pollution monitoring

Chapter 4 — Design 61/72

Page 194: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Design Evolution

OO approach allows for easy changes to designstate representation does not affect interfaceobjects are loosely coupled⇒ easy to introduce new ones

E.g.: add pollution-monitoring to weather stationintroduce Air quality class at Weather Data leveladd reportAirQuality() operation to WeatherStationadd classes for pollution monitoring

Chapter 4 — Design 61/72

Page 195: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Design Evolution

OO approach allows for easy changes to designstate representation does not affect interfaceobjects are loosely coupled⇒ easy to introduce new ones

E.g.: add pollution-monitoring to weather station

introduce Air quality class at Weather Data leveladd reportAirQuality() operation to WeatherStationadd classes for pollution monitoring

Chapter 4 — Design 61/72

Page 196: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Design Evolution

OO approach allows for easy changes to designstate representation does not affect interfaceobjects are loosely coupled⇒ easy to introduce new ones

E.g.: add pollution-monitoring to weather stationintroduce Air quality class at Weather Data level

add reportAirQuality() operation to WeatherStationadd classes for pollution monitoring

Chapter 4 — Design 61/72

Page 197: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Design Evolution

OO approach allows for easy changes to designstate representation does not affect interfaceobjects are loosely coupled⇒ easy to introduce new ones

E.g.: add pollution-monitoring to weather stationintroduce Air quality class at Weather Data leveladd reportAirQuality() operation to WeatherStation

add classes for pollution monitoring

Chapter 4 — Design 61/72

Page 198: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface DesignObject-Oriented Design Process

Design Evolution

OO approach allows for easy changes to designstate representation does not affect interfaceobjects are loosely coupled⇒ easy to introduce new ones

E.g.: add pollution-monitoring to weather stationintroduce Air quality class at Weather Data leveladd reportAirQuality() operation to WeatherStationadd classes for pollution monitoring

Chapter 4 — Design 61/72

Page 199: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Outline

1 Introduction

2 Architectural DesignSystem OrganizationDistributed Systems Architecture

3 Application ArchitecturesTypes of AAs

4 Object-Oriented DesignObject-Oriented Design Process

5 Interface Design

Chapter 4 — Design 62/72

Page 200: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

“Design interface with user’s experience and interaction inmind”

Field of Human Computer InteractionExamples:

Command line interfaceXHTML/CSSSwingsometimes combined with hardware design

Software developer == Interface designer

Chapter 4 — Design 63/72

Page 201: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

“Design interface with user’s experience and interaction inmind”Field of Human Computer Interaction

Examples:Command line interfaceXHTML/CSSSwingsometimes combined with hardware design

Software developer == Interface designer

Chapter 4 — Design 63/72

Page 202: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

“Design interface with user’s experience and interaction inmind”Field of Human Computer InteractionExamples:

Command line interfaceXHTML/CSSSwingsometimes combined with hardware design

Software developer == Interface designer

Chapter 4 — Design 63/72

Page 203: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

“Design interface with user’s experience and interaction inmind”Field of Human Computer InteractionExamples:

Command line interfaceXHTML/CSSSwingsometimes combined with hardware design

Software developer == Interface designer

Chapter 4 — Design 63/72

Page 204: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

“Design interface with user’s experience and interaction inmind”Field of Human Computer InteractionExamples:

Command line interfaceXHTML/CSSSwingsometimes combined with hardware design

Software developer == Interface designer

Chapter 4 — Design 63/72

Page 205: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

Good user experience is crucial to product success

User errors are often a result of bad interface design

Chapter 4 — Design 64/72

Page 206: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

Good user experience is crucial to product successUser errors are often a result of bad interface design

Chapter 4 — Design 64/72

Page 207: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

Good user experience is crucial to product successUser errors are often a result of bad interface design

Chapter 4 — Design 64/72

Page 208: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

Bad interface leads tofrustration

inaccessible / difficult to use featuresmistakes

Some (random) guides:make user interaction simple and efficient (Quicksilver, TaDa List,Ubiquity, !gpsGuide, !Password-engine)balance meaning with action (icons in any app, Reason, !Office2010)understand and aid human memory (!16tone, !SonicMood)don’t terrorize user with errors (http://adobegripes.tumblr.com)work with user’s capabilities (accessibility, Frenzic, Mac toolbar,!Any (old) Linux GUI interface)

Chapter 4 — Design 65/72

Page 209: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

Bad interface leads tofrustrationinaccessible / difficult to use features

mistakes

Some (random) guides:make user interaction simple and efficient (Quicksilver, TaDa List,Ubiquity, !gpsGuide, !Password-engine)balance meaning with action (icons in any app, Reason, !Office2010)understand and aid human memory (!16tone, !SonicMood)don’t terrorize user with errors (http://adobegripes.tumblr.com)work with user’s capabilities (accessibility, Frenzic, Mac toolbar,!Any (old) Linux GUI interface)

Chapter 4 — Design 65/72

Page 210: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

Bad interface leads tofrustrationinaccessible / difficult to use featuresmistakes

Some (random) guides:make user interaction simple and efficient (Quicksilver, TaDa List,Ubiquity, !gpsGuide, !Password-engine)balance meaning with action (icons in any app, Reason, !Office2010)understand and aid human memory (!16tone, !SonicMood)don’t terrorize user with errors (http://adobegripes.tumblr.com)work with user’s capabilities (accessibility, Frenzic, Mac toolbar,!Any (old) Linux GUI interface)

Chapter 4 — Design 65/72

Page 211: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

Bad interface leads tofrustrationinaccessible / difficult to use featuresmistakes

Some (random) guides:

make user interaction simple and efficient (Quicksilver, TaDa List,Ubiquity, !gpsGuide, !Password-engine)balance meaning with action (icons in any app, Reason, !Office2010)understand and aid human memory (!16tone, !SonicMood)don’t terrorize user with errors (http://adobegripes.tumblr.com)work with user’s capabilities (accessibility, Frenzic, Mac toolbar,!Any (old) Linux GUI interface)

Chapter 4 — Design 65/72

Page 212: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

Bad interface leads tofrustrationinaccessible / difficult to use featuresmistakes

Some (random) guides:make user interaction simple and efficient (Quicksilver, TaDa List,Ubiquity, !gpsGuide, !Password-engine)

balance meaning with action (icons in any app, Reason, !Office2010)understand and aid human memory (!16tone, !SonicMood)don’t terrorize user with errors (http://adobegripes.tumblr.com)work with user’s capabilities (accessibility, Frenzic, Mac toolbar,!Any (old) Linux GUI interface)

Chapter 4 — Design 65/72

Page 213: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

Bad interface leads tofrustrationinaccessible / difficult to use featuresmistakes

Some (random) guides:make user interaction simple and efficient (Quicksilver, TaDa List,Ubiquity, !gpsGuide, !Password-engine)balance meaning with action (icons in any app, Reason, !Office2010)

understand and aid human memory (!16tone, !SonicMood)don’t terrorize user with errors (http://adobegripes.tumblr.com)work with user’s capabilities (accessibility, Frenzic, Mac toolbar,!Any (old) Linux GUI interface)

Chapter 4 — Design 65/72

Page 214: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

Bad interface leads tofrustrationinaccessible / difficult to use featuresmistakes

Some (random) guides:make user interaction simple and efficient (Quicksilver, TaDa List,Ubiquity, !gpsGuide, !Password-engine)balance meaning with action (icons in any app, Reason, !Office2010)understand and aid human memory (!16tone, !SonicMood)

don’t terrorize user with errors (http://adobegripes.tumblr.com)work with user’s capabilities (accessibility, Frenzic, Mac toolbar,!Any (old) Linux GUI interface)

Chapter 4 — Design 65/72

Page 215: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

Bad interface leads tofrustrationinaccessible / difficult to use featuresmistakes

Some (random) guides:make user interaction simple and efficient (Quicksilver, TaDa List,Ubiquity, !gpsGuide, !Password-engine)balance meaning with action (icons in any app, Reason, !Office2010)understand and aid human memory (!16tone, !SonicMood)don’t terrorize user with errors (http://adobegripes.tumblr.com)

work with user’s capabilities (accessibility, Frenzic, Mac toolbar,!Any (old) Linux GUI interface)

Chapter 4 — Design 65/72

Page 216: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Introduction

Bad interface leads tofrustrationinaccessible / difficult to use featuresmistakes

Some (random) guides:make user interaction simple and efficient (Quicksilver, TaDa List,Ubiquity, !gpsGuide, !Password-engine)balance meaning with action (icons in any app, Reason, !Office2010)understand and aid human memory (!16tone, !SonicMood)don’t terrorize user with errors (http://adobegripes.tumblr.com)work with user’s capabilities (accessibility, Frenzic, Mac toolbar,!Any (old) Linux GUI interface)

Chapter 4 — Design 65/72

Page 217: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Formal principles

User familiarity

ConsistencyMinimal surpriseRecoverabilityUser guidanceUser diversity

Chapter 4 — Design 66/72

Page 218: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Formal principles

User familiarityConsistency

Minimal surpriseRecoverabilityUser guidanceUser diversity

Chapter 4 — Design 66/72

Page 219: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Formal principles

User familiarityConsistencyMinimal surprise

RecoverabilityUser guidanceUser diversity

Chapter 4 — Design 66/72

Page 220: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Formal principles

User familiarityConsistencyMinimal surpriseRecoverability

User guidanceUser diversity

Chapter 4 — Design 66/72

Page 221: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Formal principles

User familiarityConsistencyMinimal surpriseRecoverabilityUser guidance

User diversity

Chapter 4 — Design 66/72

Page 222: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Formal principles

User familiarityConsistencyMinimal surpriseRecoverabilityUser guidanceUser diversity

Chapter 4 — Design 66/72

Page 223: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Issues of Interface Design

Answer two questions:How should user interact with system?How should information be presented to user?

Chapter 4 — Design 67/72

Page 224: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

User Interaction

Advanced from interfaces designed for experts

Current interaction styles:direct manipulationmenu selectionform fill-incommand languagenatural language

Chapter 4 — Design 68/72

Page 225: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

User Interaction

Advanced from interfaces designed for expertsCurrent interaction styles:

direct manipulationmenu selectionform fill-incommand languagenatural language

Chapter 4 — Design 68/72

Page 226: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

User Interaction

Advanced from interfaces designed for expertsCurrent interaction styles:

direct manipulation

menu selectionform fill-incommand languagenatural language

Chapter 4 — Design 68/72

Page 227: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

User Interaction

Advanced from interfaces designed for expertsCurrent interaction styles:

direct manipulationmenu selection

form fill-incommand languagenatural language

Chapter 4 — Design 68/72

Page 228: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

User Interaction

Advanced from interfaces designed for expertsCurrent interaction styles:

direct manipulationmenu selectionform fill-in

command languagenatural language

Chapter 4 — Design 68/72

Page 229: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

User Interaction

Advanced from interfaces designed for expertsCurrent interaction styles:

direct manipulationmenu selectionform fill-incommand language

natural language

Chapter 4 — Design 68/72

Page 230: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

User Interaction

Advanced from interfaces designed for expertsCurrent interaction styles:

direct manipulationmenu selectionform fill-incommand languagenatural language

Chapter 4 — Design 68/72

Page 231: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

User Interaction

Advanced from interfaces designed for expertsCurrent interaction styles:

direct manipulationmenu selectionform fill-incommand languagenatural language

Chapter 4 — Design 68/72

Page 232: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Comaprisons of Interface Styles

Figure: Interaction Styles Merits/Demerits

Chapter 4 — Design 69/72

Page 233: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Interaction Issues

single application may have mixed styles

e.g., Linux: direct manipulation, menu selection, commandlanguage

Web interfacesmostly forms baseddirect manipulation ?command language ?

Chapter 4 — Design 70/72

Page 234: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Interaction Issues

single application may have mixed stylese.g., Linux: direct manipulation, menu selection, commandlanguage

Web interfacesmostly forms baseddirect manipulation ?command language ?

Chapter 4 — Design 70/72

Page 235: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Interaction Issues

single application may have mixed stylese.g., Linux: direct manipulation, menu selection, commandlanguage

Web interfaces

mostly forms baseddirect manipulation ?command language ?

Chapter 4 — Design 70/72

Page 236: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Interaction Issues

single application may have mixed stylese.g., Linux: direct manipulation, menu selection, commandlanguage

Web interfacesmostly forms based

direct manipulation ?command language ?

Chapter 4 — Design 70/72

Page 237: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Interaction Issues

single application may have mixed stylese.g., Linux: direct manipulation, menu selection, commandlanguage

Web interfacesmostly forms baseddirect manipulation ?

command language ?

Chapter 4 — Design 70/72

Page 238: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Interaction Issues

single application may have mixed stylese.g., Linux: direct manipulation, menu selection, commandlanguage

Web interfacesmostly forms baseddirect manipulation ?command language ?

Chapter 4 — Design 70/72

Page 239: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Information Presentation

Use the MVC approach for focusing on UI

Kinds of presentation elements depend on many factors:precise vs relationships (tables/text/graphs, sparklines)speed of change in values (tables/graphs, animation)

Visualizations for large, changing, interactive datamolecule models, network graphs

Color usage:few (4-5)system change == color changedisplay anomalies, similaritiesconsistencyeye strain (red-on-blue)

Chapter 4 — Design 71/72

Page 240: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Information Presentation

Use the MVC approach for focusing on UIKinds of presentation elements depend on many factors:

precise vs relationships (tables/text/graphs, sparklines)speed of change in values (tables/graphs, animation)

Visualizations for large, changing, interactive datamolecule models, network graphs

Color usage:few (4-5)system change == color changedisplay anomalies, similaritiesconsistencyeye strain (red-on-blue)

Chapter 4 — Design 71/72

Page 241: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Information Presentation

Use the MVC approach for focusing on UIKinds of presentation elements depend on many factors:

precise vs relationships (tables/text/graphs, sparklines)

speed of change in values (tables/graphs, animation)

Visualizations for large, changing, interactive datamolecule models, network graphs

Color usage:few (4-5)system change == color changedisplay anomalies, similaritiesconsistencyeye strain (red-on-blue)

Chapter 4 — Design 71/72

Page 242: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Information Presentation

Use the MVC approach for focusing on UIKinds of presentation elements depend on many factors:

precise vs relationships (tables/text/graphs, sparklines)speed of change in values (tables/graphs, animation)

Visualizations for large, changing, interactive datamolecule models, network graphs

Color usage:few (4-5)system change == color changedisplay anomalies, similaritiesconsistencyeye strain (red-on-blue)

Chapter 4 — Design 71/72

Page 243: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Information Presentation

Use the MVC approach for focusing on UIKinds of presentation elements depend on many factors:

precise vs relationships (tables/text/graphs, sparklines)speed of change in values (tables/graphs, animation)

Visualizations for large, changing, interactive data

molecule models, network graphs

Color usage:few (4-5)system change == color changedisplay anomalies, similaritiesconsistencyeye strain (red-on-blue)

Chapter 4 — Design 71/72

Page 244: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Information Presentation

Use the MVC approach for focusing on UIKinds of presentation elements depend on many factors:

precise vs relationships (tables/text/graphs, sparklines)speed of change in values (tables/graphs, animation)

Visualizations for large, changing, interactive datamolecule models, network graphs

Color usage:few (4-5)system change == color changedisplay anomalies, similaritiesconsistencyeye strain (red-on-blue)

Chapter 4 — Design 71/72

Page 245: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Information Presentation

Use the MVC approach for focusing on UIKinds of presentation elements depend on many factors:

precise vs relationships (tables/text/graphs, sparklines)speed of change in values (tables/graphs, animation)

Visualizations for large, changing, interactive datamolecule models, network graphs

Color usage:

few (4-5)system change == color changedisplay anomalies, similaritiesconsistencyeye strain (red-on-blue)

Chapter 4 — Design 71/72

Page 246: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Information Presentation

Use the MVC approach for focusing on UIKinds of presentation elements depend on many factors:

precise vs relationships (tables/text/graphs, sparklines)speed of change in values (tables/graphs, animation)

Visualizations for large, changing, interactive datamolecule models, network graphs

Color usage:few (4-5)

system change == color changedisplay anomalies, similaritiesconsistencyeye strain (red-on-blue)

Chapter 4 — Design 71/72

Page 247: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Information Presentation

Use the MVC approach for focusing on UIKinds of presentation elements depend on many factors:

precise vs relationships (tables/text/graphs, sparklines)speed of change in values (tables/graphs, animation)

Visualizations for large, changing, interactive datamolecule models, network graphs

Color usage:few (4-5)system change == color change

display anomalies, similaritiesconsistencyeye strain (red-on-blue)

Chapter 4 — Design 71/72

Page 248: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Information Presentation

Use the MVC approach for focusing on UIKinds of presentation elements depend on many factors:

precise vs relationships (tables/text/graphs, sparklines)speed of change in values (tables/graphs, animation)

Visualizations for large, changing, interactive datamolecule models, network graphs

Color usage:few (4-5)system change == color changedisplay anomalies, similarities

consistencyeye strain (red-on-blue)

Chapter 4 — Design 71/72

Page 249: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Information Presentation

Use the MVC approach for focusing on UIKinds of presentation elements depend on many factors:

precise vs relationships (tables/text/graphs, sparklines)speed of change in values (tables/graphs, animation)

Visualizations for large, changing, interactive datamolecule models, network graphs

Color usage:few (4-5)system change == color changedisplay anomalies, similaritiesconsistency

eye strain (red-on-blue)

Chapter 4 — Design 71/72

Page 250: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Information Presentation

Use the MVC approach for focusing on UIKinds of presentation elements depend on many factors:

precise vs relationships (tables/text/graphs, sparklines)speed of change in values (tables/graphs, animation)

Visualizations for large, changing, interactive datamolecule models, network graphs

Color usage:few (4-5)system change == color changedisplay anomalies, similaritiesconsistencyeye strain (red-on-blue)

Chapter 4 — Design 71/72

Page 251: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

UI Design Process

3-step process

User analysis, System prototyping, Interface evaluation

Chapter 4 — Design 72/72

Page 252: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

UI Design Process

3-step process

User analysis, System prototyping, Interface evaluation

Chapter 4 — Design 72/72

Page 253: Chapter 4 Design - users.manchester.eduusers.manchester.edu/Facstaff/RAhmad/classes/221/rsrcs/ch4_design.pdf · IntroductionArchitectural DesignApplication ArchitecturesObject-Oriented

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

UI Design Process

3-step process

User analysis, System prototyping, Interface evaluation

Chapter 4 — Design 72/72