Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
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