Chapter 4 Design -...

Post on 14-Mar-2020

15 views 0 download

Transcript of Chapter 4 Design -...

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Chapter 4 — Design

May 13, 2009

Chapter 4 — Design 1/72

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

An Employee object class (UML)

Chapter 4 — Design 38/72

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

Example Class Hierarchy (Generalization)

Chapter 4 — Design 39/72

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

Association Model

Chapter 4 — Design 40/72

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

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

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

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

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

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

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

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

Example: a weather mapping system

Chapter 4 — Design 44/72

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

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

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

Use-cases for weather station

Chapter 4 — Design 47/72

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

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

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

Subsystems in the Architecture

Chapter 4 — Design 49/72

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Formal principles

User familiarity

ConsistencyMinimal surpriseRecoverabilityUser guidanceUser diversity

Chapter 4 — Design 66/72

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Formal principles

User familiarityConsistency

Minimal surpriseRecoverabilityUser guidanceUser diversity

Chapter 4 — Design 66/72

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Formal principles

User familiarityConsistencyMinimal surprise

RecoverabilityUser guidanceUser diversity

Chapter 4 — Design 66/72

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Formal principles

User familiarityConsistencyMinimal surpriseRecoverability

User guidanceUser diversity

Chapter 4 — Design 66/72

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Formal principles

User familiarityConsistencyMinimal surpriseRecoverabilityUser guidance

User diversity

Chapter 4 — Design 66/72

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Formal principles

User familiarityConsistencyMinimal surpriseRecoverabilityUser guidanceUser diversity

Chapter 4 — Design 66/72

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

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

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

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

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

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

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

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

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

Introduction Architectural Design Application Architectures Object-Oriented Design Interface Design

Comaprisons of Interface Styles

Figure: Interaction Styles Merits/Demerits

Chapter 4 — Design 69/72

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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