brief contents - gralib.hcmuns.edu.vngralib.hcmuns.edu.vn/sachmoi/2007/07-07/java.pdfbrief contents...

14
Brief Contents Acknowledgements xxi Introduction 1 Putting GUI Development into Context xxiii 1 Part I User Interface Design 2 Introduction to User Interface Design 3 Java GUI Design 4 Recurring User Interface Designs 31 77 119 Part II Software Design 5 Iterative GUI Development with Java 6 Implementation Issues 7 Code Organization 8 Form-Based Rich Clients 9 Web-Based User Interfaces 10 J2ME User Interfaces 11 Java Tools and Technologies 12 Advanced Issues 169 223 287 323 359 375 393 447 Part III Examples 13 Rich Client Platforms 14 The Personal Portfolio Application 15 An Example 00 User Interface 471 497 535

Upload: dotruc

Post on 13-Apr-2018

223 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Brief Contents - gralib.hcmuns.edu.vngralib.hcmuns.edu.vn/sachmoi/2007/07-07/java.pdfBrief Contents 567 607 ... Implementing Web applications with Java The typical architecture of

Brief Contents

Acknowledgements xxi

Introduction

1 Putting GUI Development into Context

xxiii

1

Part I User InterfaceDesign

2 Introduction to User Interface Design

3 Java GUI Design

4 Recurring User Interface Designs

31

77

119

Part II Software Design

5 Iterative GUI Development with Java

6 Implementation Issues

7 Code Organization

8 Form-Based Rich Clients

9 Web-Based User Interfaces

10 J2ME User Interfaces

11 Java Tools and Technologies

12 Advanced Issues

169

223

287

323

359

375

393

447

Part III Examples

13 Rich Client Platforms

14 The Personal Portfolio Application

15 An Example 00 User Interface

471

497

535

Page 2: Brief Contents - gralib.hcmuns.edu.vngralib.hcmuns.edu.vn/sachmoi/2007/07-07/java.pdfBrief Contents 567 607 ... Implementing Web applications with Java The typical architecture of

viii

16 An Example Ad-Hoc Component

A A Questionnaire for Evaluating Java User Interfaces

B A Questionnaire for Evaluating J2ME Applications

References

Index

Brief Contents

567

607

613

621

629

Page 3: Brief Contents - gralib.hcmuns.edu.vngralib.hcmuns.edu.vn/sachmoi/2007/07-07/java.pdfBrief Contents 567 607 ... Implementing Web applications with Java The typical architecture of

Contents

Acknowledgements xxi

Introduction xxiii

The interactivity thrillUsable GUls and usable books

The organization of the bookThree levels of advice

Conventions used in the book

Source codeReader feedback

Book readers and personasLars, a Java intermediate programmer

Keiichi, a tech lead

Shridhar, a professor in computer science

Melinda (Mellie), a manager

William, a first year student in a Master in CS courseKarole, a business analyst

Juan, an experienced programmer

xxiiixxiv

xxv

xxviixxviii

xxviiixxix

xxixxxx

xxx

xxxixxxi

xxxiixxxiii

xxxiii

1 Putting GUI Development into Context

1.1 Introduction

1.2 Focusing on users

1.3 A functional decomposition for user interfaces

1.4 Tool selection: the Java singularity

Of running little green men and wrong choices

1.5 Organizational aspectsPeople and GUls

Team composition

1.6 Early designUse case diagrams and GUls

1

2

2

3

6

7

7

8

10

12

12

Page 4: Brief Contents - gralib.hcmuns.edu.vngralib.hcmuns.edu.vn/sachmoi/2007/07-07/java.pdfBrief Contents 567 607 ... Implementing Web applications with Java The typical architecture of

Contents

1.7 Lifecycle models, processes and approachesRational Unified Process

Extreme Programming and other Agile approachesLUCID methodologyEvolutionary Prototyping process

UML notation

Class diagramsSequence diagramsState diagrams

Summary

14152022242626282930

1.8

1.9

Part IV User Interface Design

2 Introduction to User Interface Design.2.1 The human factor

A model of interactive systems - seven stagesand two gulfs

Developers are part of the design processShort term memory and cognitive modelingInteracting with human beingsUser-centered designSimplified thinking aloud

2.2 Display organizationEsthetic considerations

Abstract-Augmented Area for GUls2.3 Interaction styles

Menu selection

Form fillingLanguage-based stylesDirect manipulation

2.4 Conceptual frameworks for UI designEntity-based approaches to UI designMetaphor-based approaches to UI designFunction-based approaches to UI design'Null' approach to UI designObject-oriented user interfaces

2.5 Assessing the quality of a GUIUsability heuristics

2.6 Summary

31

32

3234363944464749515757596263646566676769727375

Page 5: Brief Contents - gralib.hcmuns.edu.vngralib.hcmuns.edu.vn/sachmoi/2007/07-07/java.pdfBrief Contents 567 607 ... Implementing Web applications with Java The typical architecture of

:ontents

3 Java GUI Design

3.1 Java technology for GUlsAssembling the componentsThree levels of component cost

3.2 Cost-driven designAd-hoc versus custom - the difference between 'run' and 'ride'

When ad-hoc is the only way to go3.3 Exploring the design space for a point chooser

Standard designsAd-hoc designsMixed designsConclusions

3.4 Design guidelines for the Java platformIntroduction to the guidelinesJ2SE user interface design guidelines

3.5 The Java look and feel design guidelinesSome definitionsThe Java 'look'The Java 'feel'

Some terminologyAn example - applying the guidelines for designing dialogs

3.6 Summary

4 Recurring User Interface Designs

4.1 GUI area organizationTerminologyMain frames

Multiple document interfacesWizards

4.2 ChoosersChooser activation mechanisms

Chooser interaction stylesBroadening the choiceConclusions

4.3 Memory componentsInput historySaving user preferences

4.4 Lazy initialization

xi

77

7777798181838688919799

100100103108109109110112114117

119

120120121123124126127128131133133134134135

Page 6: Brief Contents - gralib.hcmuns.edu.vngralib.hcmuns.edu.vn/sachmoi/2007/07-07/java.pdfBrief Contents 567 607 ... Implementing Web applications with Java The typical architecture of

xii Contents

4.5 Preference dialogsPreference dialogs styles

Waiting strategiesFlexible layoutCommon dialogs

The 'About' dialogLog-in dialogFirst-time message dialogsSplash window

4.9 Command componentsGraphic conventionsToolbar compositionCommand composition

4.10 AccessibilityTesting the final product for accessibilityConclusions

4.11 Navigation and keyboard supportKeyboard shortcutsTab traversal

4.12 Internationalization

4.13 Help support4.14 Icons and images4.15 Leveraging object-oriented programming4.16 Summary

137138141144146146149150151152156157158160161161161161162163164165166167

4.64.74.8

Part V Software Design

5 Iterative GUI Development with Java

5.1 Iterating wisely5.2 Introduction to prototyping

Uses for prototypingThe two dimensions of prototypingCompetitors' product as ready-made prototypesPrototyping as a philosophy for developmentPrototypes and customers

5.3 Prototyping alternativesDifferent types of prototypesStoryboards

169

171173174176177177178179179182

Page 7: Brief Contents - gralib.hcmuns.edu.vngralib.hcmuns.edu.vn/sachmoi/2007/07-07/java.pdfBrief Contents 567 607 ... Implementing Web applications with Java The typical architecture of

Contents xiii

5.4 GUI builders

5.5 Reusable prototyping widgetsA tree prototype utility classA visual container prototype utility class

5.6 GUI refactoringSome classic refactoringsSome GUI-specific refactoringsFailing with style

5.7 Introduction to user interface testingTest-driven developmentWhat's first - GUI design or implementation?

5.8 Software testing of Java GUlsHow to test - GUI software test approachesWhat to test - test coverage criteria

5.9 Usability testing of Java GUls5.10 JRE runtime management

Introduction to profilingCommon problemsContinuous profilingA posteriori profiling

5.11 Summary

184187187190191191194201203204204206206210211214214216219220221

6 Implementation Issues

6.1 Revisiting the abstract modelTesting the various layersThe principle of Single Functional ResponsibilityIsolating presentation details

6.2 Content

Content assemblyExplicit navigation

6.3 Business domain

6.4 Data input-outputA comprehensive data 10 design strategySome design patternsRemote communication designSecurity issues

6.5 Making objects communicateThe Observer patternSwing events

223

224226227228229229231231233233234235236239240242

Page 8: Brief Contents - gralib.hcmuns.edu.vngralib.hcmuns.edu.vn/sachmoi/2007/07-07/java.pdfBrief Contents 567 607 ... Implementing Web applications with Java The typical architecture of

)(iv

SWT events

Design-time class decoupling with eventsEvent Arbitrator

Misuses of event-based messagingAlternatives to event-based communication mechanisms

6.6 Separating data from viewsModel-View-Controller

6.7 Interaction and control

Representing user actions with the Command patternControl issues

A state-oriented approach to GUI control6.8 Some design patterns for GUls

AdaptationComposite ContextActive ObjectObject lifecycle management - a general mindsetValue Model

6.9 GUI complexity boosters6.10 Summary

7 Code Organization

7.1 Introducing software architecturesTaming referencesComposable unitsEvolving order and appropriate architectures

7.2 Some common GUI architectures

The smart GUI antipatternA semi-smart GUI architecture

A three-layer architectureA four-layer architecture

7.3 A three-layer organization for GUI codeOverview

The presentation layerThe application layerThe service layer

7.4 Two examples of a three-layer implementationAn MP3 playerAn electronic circuit simulator and editor

Contents

243243245248250251252257257260265271271277279280282283285

287

287289292294295296297298299300301303304305306306309

Page 9: Brief Contents - gralib.hcmuns.edu.vngralib.hcmuns.edu.vn/sachmoi/2007/07-07/java.pdfBrief Contents 567 607 ... Implementing Web applications with Java The typical architecture of

Contents xv

7.5 The service layerOverviewPersistence services

Factory servicesOther services

SummaryKey ideas

314314319319320321322

7.6

8 Form-Based Rich Clients

8.1 Introduction

Defining rich clientsJava rich clients

GUI design for rich clients: the Third Way8.2 Reference functional model

Distributing behavior between client and serverCommon problems

8.3 Runtime data modelValidation

When to validate and notify8.4 The cake-ordering application, the XP way

Setting up the first IterationContent firstData secondCommands third

Closing the loop with the server8.5 Summary

9 Web-Based User Interfaces

323

323324325326326327329329332339343344346350353357358

9.19.2

An overview of Web user interfaces

GUI design for the WebFine graphics detailsArea organizationlevels of client-side control

Navigation issuesImplementing Web applications with Java

The typical architecture of a Web applicationBasic Java Web GUI technologiesJava applets

359

359361361362362365368368369370

9.3

Page 10: Brief Contents - gralib.hcmuns.edu.vngralib.hcmuns.edu.vn/sachmoi/2007/07-07/java.pdfBrief Contents 567 607 ... Implementing Web applications with Java The typical architecture of

xvi Contents

9.4 From Web applications to rich clientsDifferent development habits

Summary

3713723739.5

10 J2ME User Interfaces

10.1 Introduction to the MID profileMain UI conceptsMain Ullimitations

Cost-driven design for J2ME GUls10.2 The MIDP UI API

UI widgets10.3 Designing MIDP GUls

Abstract GUI designs10.4 Designing navigation10.5 An example custom item10.6 An example ad-hoc item10.7 An example application

The code

10.8 Summary

375

375376379379379379382384385387388389391392

11 Java Tools and Technologies11.1 Introduction to tool selection

11.2 Evaluating open source softwareOpen Source Maturity Model

11.3 SWT or Swing?The toolkits

Choosing a toolkitMix and match

11.4 Other GUI technologies11.5 Utility libraries

Security toolsDeployment toolsGlazed Lists

JGoodies Swing SuiteL2FProd Common ComponentsOther ass component librariesSome commercially-available Swing components

11.6 Test tools

11.7 Profiling tools

393

394394396397397403409410411412413413414415415418420421

Page 11: Brief Contents - gralib.hcmuns.edu.vngralib.hcmuns.edu.vn/sachmoi/2007/07-07/java.pdfBrief Contents 567 607 ... Implementing Web applications with Java The typical architecture of

Contents xvii

11.8 GUI builders

11.9 Presentation layer technologiesAssessing a look and feelSwing look and feelsSWT Presentation

11.10 Declarative GUls with JavaXML-based formats

11.11 Summary

422424425426442443443445

12 Advanced Issues

12.1 Building on top of existing librariesAttributes

Roll your own framework12.2 Memory management for complex GUls

A practical case12.3 Restructuring existing GUI code

Porting an old applet - a case studyLong-life GUlsProviding new deployment support

12.4 Exploiting technology12.5 Domain-specific and Little languages12.6 The future of Java GUls

12.7 Summary

447

447448451454455457459463464465466468469

Part VI Examples

13 Rich Client Platforms

13.1 Introduction to Java rich client platformsThe case for RCP applicationsWhat's in an RCP

GUI design guidelines and RCPs13.2 The NetBeans RCP

NRCP architecture

13.3 The Spring RCP13.4 The Eclipse RCP

Eclipse plug-in architectureEclipse RCP plug-insThe workbench - the building blocks of ERCP GUlsGUI design guidelines for ERCP applications

471

471472473474474475476477477478479482

Page 12: Brief Contents - gralib.hcmuns.edu.vngralib.hcmuns.edu.vn/sachmoi/2007/07-07/java.pdfBrief Contents 567 607 ... Implementing Web applications with Java The typical architecture of

xviii Contents

13.5 Choosing the best RCP for your needsWhen to employ an RCP

13.6 Legal issuesEclipseNetbeans

13.7 An example Eclipse RCP applicationThe applicationIntroducing client-side modular architecturesThe Snooper application architecture

13.8 Summary

483

484485485

486486

487489492496

14 The Personal Portfolio Application

14.1 The scenario

A note on lifecycle models

14.2 AnalysisEarly analysisSome scenarios

A refined use case diagramIndividuating boundary classes

14.3 Choosing a technology14.4 An initial GUI design

An initial GUI paper mock-upA second GUI paper mock-up

A throw-away GUI prototypeValidating the throw-away prototype

14.5 The final GUI

14.6 ImplementationSoftware requirementsThe software architecture

14.7 ResourcesLocalization bundles

Images14.8 The code

The remote explorer director

The prototype14.9 Deployment issues

Server support

497

497498499499503504505505506506508511512

513515516516524525525525526529529529

Page 13: Brief Contents - gralib.hcmuns.edu.vngralib.hcmuns.edu.vn/sachmoi/2007/07-07/java.pdfBrief Contents 567 607 ... Implementing Web applications with Java The typical architecture of

Contents xix

14.10 An alternative, cost-driven implementation

Choosing a higher-level starting pointA cost-driven prototype using JDNCA brief introduction to JDNC

14.11 Summary

530

530531531533

15 An Example 00 User Interface

15.1 Introduction

A matter of style15.2 Implementing object-oriented user interfaces

The Viewable interface

15.3 Some utility classesBrief views

Making collections viewable15.4 Configuration views

A utility class15.5 Interacting with the user

The Commandable interface

15.6 Managing user commands15.7 An example application

OOUI objectsThe codeLibraries

Some GUI design considerationsControl issues

15.8 An alternative implementation using Naked Objects

15.9 Summary

535

536536537538542542543544544546

546549550551555558559560563

565

16 An Example Ad-Hoc Component

16.1 Introduction

16.2 The Drawing Sandbox applicationThe application

16.3 The Sandbox architecture

16.4 The Sandbox component

Top-down refinement of functional organizationOrganizing object communicationGraphical objects

567

568569

570573575575575

579

Page 14: Brief Contents - gralib.hcmuns.edu.vngralib.hcmuns.edu.vn/sachmoi/2007/07-07/java.pdfBrief Contents 567 607 ... Implementing Web applications with Java The typical architecture of

16.5 User interaction

Command compositionThe Action frameworkThe Actions class

Undo-redo supportThe Edit class

Recording editsMemory issues

16.6 ControlThe Director class

Managing actionsEnforcing logical constraints on actions

16.7 The whole picture16.8 Stressing the software design

Adding objects and commandsThe design's weak points

16.9 Introducing JHotdraw16.10 Summary

Key ideas

A A Questionnaire for Evaluating Java User Interfaces

B A Questionnaire for Evaluating J2ME Applications

References

General advice on usability and GUI designJava-specific links

Index

Contents

582582583584587588589590592594595596597598599600601605605

607

613

621

626627

629