Professional Java User Interfaces (Paperback)
暫譯: 專業 Java 使用者介面 (平裝本)

Mauro Marinilli

  • 出版商: Wiley
  • 出版日期: 2006-05-12
  • 售價: $2,570
  • 貴賓價: 9.5$2,442
  • 語言: 英文
  • 頁數: 668
  • 裝訂: Paperback
  • ISBN: 0471486965
  • ISBN-13: 9780471486961
  • 相關分類: Java 程式語言使用者介面 UI
  • 已絕版

買這商品的人也買了...

商品描述

Description

This book covers the full development life cycle for professional GUI design in Java, from cost estimation and design to coding and testing.

  • Focuses on building high quality industrial strength software in Java
  • Ready-to-use source code is given throughout the text based on industrial-strength projects undertaken by the author.

 

Table of Contents

Acknowledgements.

Introduction.

The interactivity thrill.

Usable GUIs and usable books.

The organization of the book.

Three levels of advice.

Conventions used in the book.

Source code.

Reader feedback.

Book readers and personas.

Lars, 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 course.

Karole, a business analyst.

Juan, an experienced programmer.

1 Putting GUI Development into Context.

Introduction.

Focusing on users.

A functional decomposition for user interfaces.

Tool selection: the Java singularity.

Of running little green men and wrong choices.

Organizational aspects.

People and GUIs.

Team composition.

Early design.

Use case diagrams and GUIs.

Lifecycle models, processes and approaches.

Rational Unified Process 18 Extreme Programming and other Agile approaches.

LUCID methodology.

Evolutionary Prototyping process.

UML notation.

Class diagrams.

Sequence diagrams.

State diagrams.

Summary.

2 Introduction to User Interface Design.

The human factor.

A model of interactive systems – seven stages and two gulfs.

Developers are part of the design process.

Short term memory and cognitive modeling.

Interacting with human beings.

User-centered design.

Simplified thinking aloud.

Display organization.

Esthetic considerations.

Abstract-Augmented Area for GUIs.

Interaction styles.

Menu selection.

Form filling.

Language-based styles.

Direct manipulation.

Conceptual frameworks for UI design.

Entity-based approaches to UI design.

Metaphor-based approaches to UI design.

Function-based approaches to UI design.

‘Null’ approach to UI design.

Object-oriented user interfaces.

Assessing the quality of a GUI.

Usability heuristics.

Summary.

3 Java GUI Design.

Java technology for GUIs.

Assembling the components.

Three levels of component cost.

Cost-driven design.

Ad-hoc versus custom – the difference between ‘run’ and ‘ride’.

When ad-hoc is the only way to go.

Exploring the design space for a point chooser.

Standard designs.

Ad-hoc designs.

Mixed designs.

Conclusions.

Design guidelines for the Java platform.

Introduction to the guidelines.

J2SE user interface design guidelines.

The Java look and feel design guidelines.

Some definitions.

The Java ‘look’.

The Java ‘feel’.

Some terminology.

An example – applying the guidelines for designing dialogs.

Summary.

4 Recurring User Interface Designs.

GUI area organization.

Terminology.

Main frames.

Multiple document interfaces.

Wizards.

Choosers.

Chooser activation mechanisms.

Chooser interaction styles.

Broadening the choice.

Conclusions.

Memory components.

Input history.

Saving user preferences.

Lazy initialization.

Preference dialogs.

Preference dialogs styles.

Waiting strategies.

Flexible layout.

Common dialogs.

The ‘About’ dialog.

Log-in dialog.

First-time message dialogs.

Splash window.

Command components.

Graphic conventions.

Toolbar composition.

Command composition.

Accessibility.

Testing the final product for accessibility.

Conclusions.

Navigation and keyboard support.

Keyboard shortcuts.

Tab traversal.

Internationalization.

Help support.

Icons and images.

Leveraging object-oriented programming.

Summary.

5 Iterative GUI Development with Java.

Iterating wisely.

Introduction to prototyping.

Uses for prototyping.

The two dimensions of prototyping.

Competitors’ product as ready-made prototypes.

Prototyping as a philosophy for development.

Prototypes and customers.

Prototyping alternatives.

Different types of prototypes.

Storyboards.

GUI builders.

Reusable prototyping widgets.

A tree prototype utility class.

A visual container prototype utility class.

GUI refactoring.

Some classic refactorings.

Some GUI-specific refactorings.

Failing with style.

Introduction to user interface testing.

Test-driven development.

What’s first – GUI design or implementation?.

Software testing of Java GUIs.

How to test – GUI software test approaches.

What to test – test coverage criteria.

Usability testing of Java GUIs.

JRE runtime management.

Introduction to profiling.

Common problems.

Continuous profiling.

A posteriori profiling.

Summary.

6 Implementation Issues.

Revisiting the abstract model.

Testing the various layers.

The principle of Single Functional Responsibility.

Isolating presentation details.

Content.

Content assembly.

Explicit navigation.

Business domain.

Data input-output.

A comprehensive data IO design strategy.

Some design patterns.

Remote communication design.

Security issues.

Making objects communicate.

The Observer pattern.

Swing events.

SWT events.

Design-time class decoupling with events.

Event Arbitrator.

Misuses of event-based messaging.

Alternatives to event-based communication mechanisms.

Separating data from views.

Model-View-Controller.

Interaction and control.

Representing user actions with the Command pattern.

Control issues.

A state-oriented approach to GUI control.

Some design patterns for GUIs.

Adaptation.

Composite Context.

Active Object.

Object lifecycle management – a general mindset.

Value Model.

GUI complexity boosters.

Summary.

7 Code Organization.

Introducing software architectures.

Taming references.

Composable units.

Evolving order and appropriate architectures.

Some common GUI architectures.

The smart GUI antipattern.

A semi-smart GUI architecture.

A three-layer architecture.

A four-layer architecture.

A three-layer organization for GUI code.

Overview.

The presentation layer.

The application layer.

The service layer.

Two examples of a three-layer implementation.

An MP3 player.

An electronic circuit simulator and editor.

The service layer.

Overview.

Persistence services.

Factory services.

Other services.

Summary.

Key ideas.

8 Form-Based Rich Clients.

Introduction .

Defining rich clients.

Java rich clients.

GUI design for rich clients: the Third Way.

Reference functional model.

Distributing behavior between client and server.

Common problems.

Runtime data model.

Validation 408 When to validate and notify.

The cake-ordering application, the XP way.

Setting up the first Iteration.

Content first .

Data second.

Commands third.

Closing the loop with the server.

Summary.

9 Web-Based User Interfaces.

An overview of Web user interfaces.

GUI design for the Web.

Fine graphics details .

Area organization.

Levels of client-side control.

Navigation issues.

Implementing Web applications with Java.

The typical architecture of a Web application.

Basic Java Web GUI technologies.

Java applets.

From Web applications to rich clients.

Different development habits.

Summary.

10 J2ME User Interfaces.

Introduction to the MID profile.

Main UI concepts.

Main UI limitations.

Cost-driven design for J2ME GUIs.

The MIDP UI API.

UI widgets.

Designing MIDP GUIs.

Abstract GUI designs.

Designing navigation.

An example custom item.

An example ad-hoc item.

An example application.

The code.

Summary.

11 Java Tools and Technologies.

Introduction to tool selection.

Evaluating open source software.

Open Source Maturity Model.

SWT or Swing?.

The toolkits.

Choosing a toolkit.

Mix and match.

Other GUI technologies.

Utility libraries.

Security tools.

Deployment tools.

Glazed Lists.

JGoodies Swing Suite.

L2FProd Common Components.

Other OSS component libraries.

Some commercially-available Swing components.

Test tools.

Profiling tools.

GUI builders.

Presentation layer technologies.

Assessing a look and feel.

Swing look and feels.

SWT Presentation.

Declarative GUIs with Java.

XML-based formats.

Summary.

12 Advanced Issues.

Building on top of existing libraries.

Attributes .

Roll your own framework.

Memory management for complex GUIs.

A practical case.

Restructuring existing GUI code.

Porting an old applet – a case study.

Long-life GUIs.

Providing new deployment support.

Exploiting technology.

Domain-specific and Little languages.

The future of Java GUIs.

Summary.

13 Rich Client Platforms.

Introduction to Java rich client platforms.

The case for RCP applications.

What’s in an RCP.

GUI design guidelines and RCPs.

The NetBeans RCP.

NRCP architecture.

The Spring RCP.

The Eclipse RCP.

Eclipse plug-in architecture.

Eclipse RCP plug-ins.

The workbench – the building blocks of ERCP GUIs.

GUI design guidelines for ERCP applications .

Choosing the best RCP for your needs.

When to employ an RCP.

Legal issues.

Eclipse.

Netbeans.

An example Eclipse RCP application.

The application.

Introducing client-side modular architectures.

The Snooper application architecture.

Summary.

14 The Personal Portfolio Application.

The scenario.

A note on lifecycle models.

Analysis 606

Early analysis.

Some scenarios.

A refined use case diagram.

Individuating boundary classes.

Choosing a technology.

An initial GUI design.

An initial GUI paper mock-up.

A second GUI paper mock-up.

A throw-away GUI prototype.

Validating the throw-away prototype.

The final GUI.

Implementation.

Software requirements.

The software architecture.

Resources .

Localization bundles.

Images .

The code.

The remote explorer director.

The prototype.

Deployment issues.

Server support.

An alternative, cost-driven implementation.

Choosing a higher-level starting point.

A cost-driven prototype using JDNC.

A brief introduction to JDNC .

Summary.

15 An Example OO User Interface.

Introduction.

A matter of style.

Implementing object-oriented user interfaces.

The Viewable interface.

Some utility classes.

Brief views.

Making collections viewable.

Configuration views.

A utility class.

Interacting with the user.

The Commandable interface.

Managing user commands.

An example application.

OOUI objects.

The code.

Libraries.

Some GUI design considerations.

Control issues.

An alternative implementation using Naked Objects.

Summary.

16 An Example Ad-Hoc Component.

Introduction.

The Drawing Sandbox application.

The application.

The Sandbox architecture.

The Sandbox component.

Top-down refinement of functional organization.

Organizing object communication.

Graphical objects.

User interaction.

Command composition.

The Action framework.

The Actions class.

Undo-redo support.

The Edit class.

Recording edits.

Memory issues.

Control.

The Director class.

Managing actions.

Enforcing logical constraints on actions.

The whole picture.

Stressing the software design.

Adding objects and commands.

The design’s weak points.

Introducing JHotdraw.

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 design.

Java-specific links.

Index.

商品描述(中文翻譯)

**描述**

本書涵蓋了專業 GUI 設計在 Java 中的完整開發生命週期,從成本估算和設計到編碼和測試。

- 專注於在 Java 中構建高品質的工業級軟體
- 本文中提供了基於作者所承擔的工業級專案的即用型原始碼

**目錄**

- 致謝
- 介紹
- 互動的刺激
- 可用的 GUI 和可用的書籍
- 本書的組織
- 三個層次的建議
- 本書中使用的慣例
- 原始碼
- 讀者反饋
- 書籍讀者和角色
- Lars,一位 Java 中級程式設計師
- Keiichi,一位技術負責人
- Shridhar,一位計算機科學教授
- Melinda (Mellie),一位經理
- William,一位計算機科學碩士一年級學生
- Karole,一位業務分析師
- Juan,一位經驗豐富的程式設計師
- 1 將 GUI 開發置於背景中
- 介紹
- 專注於使用者
- 用戶介面的功能分解
- 工具選擇:Java 的獨特性
- 執行小綠人和錯誤選擇
- 組織方面
- 人員與 GUI
- 團隊組成
- 早期設計
- 用例圖和 GUI
- 生命週期模型、過程和方法
- 理性統一過程、極限編程及其他敏捷方法
- LUCID 方法論
- 演化原型過程
- UML 符號
- 類圖
- 序列圖
- 狀態圖
- 總結
- 2 用戶介面設計介紹
- 人因因素
- 互動系統模型 - 七個階段和兩個鴻溝
- 開發者是設計過程的一部分
- 短期記憶和認知建模
- 與人類互動
- 以使用者為中心的設計
- 簡化的思考過程
- 顯示組織
- 美學考量
- GUI 的抽象增強區域
- 互動風格
- 菜單選擇
- 表單填寫
- 基於語言的風格
- 直接操作
- UI 設計的概念框架
- 基於實體的 UI 設計方法
- 基於隱喻的 UI 設計方法
- 基於功能的 UI 設計方法
- “空”方法的 UI 設計
- 物件導向的用戶介面
- 評估 GUI 的質量
- 可用性啟發式
- 總結
- 3 Java GUI 設計
- Java 技術用於 GUI
- 組裝元件
- 三個層次的元件成本
- 成本驅動設計
- 隨機應變與定制 - “運行”和“騎乘”之間的區別
- 當隨機應變是唯一的選擇
- 探索點選器的設計空間
- 標準設計
- 隨機應變設計
- 混合設計
- 結論
- Java 平台的設計指導方針
- 指導方針介紹
- J2SE 用戶介面設計指導方針
- Java 外觀和感覺設計指導方針
- 一些定義
- Java 的“外觀”
- Java 的“感覺”
- 一些術語
- 一個範例 - 應用指導方針設計對話框
- 總結
- 4 重複的用戶介面設計
- GUI 區域組織
- 術語
- 主框架
- 多文檔介面
- 向導
- 選擇器
- 選擇器啟動機制
- 選擇器互動風格
- 擴大選擇
- 結論
- 記憶元件
- 輸入歷史
- 儲存用戶偏好
- 延遲初始化
- 偏好對話框
- 偏好對話框樣式
- 等待策略
- 靈活佈局
- 常見對話框
- “關於”對話框
- 登入對話框
- 首次消息對話框
- 啟動畫面
- 命令元件
- 圖形慣例
- 工具列組成
- 命令組成
- 可及性
- 測試最終產品的可及性
- 結論
- 導航和鍵盤支援
- 鍵盤快捷鍵
- 標籤遍歷
- 國際化
- 幫助支援
- 圖示和圖像
- 利用物件導向程式設計
- 總結
- 5 使用 Java 的迭代 GUI 開發
- 明智地迭代
- 原型設計介紹
- 原型的用途
- 原型的兩個維度
- 競爭者的產品作為現成的原型
- 原型作為開發的哲學
- 原型和客戶
- 原型替代方案
- 不同類型的原型
- 故事板
- GUI 建構器
- 可重用的原型小工具
- 樹狀原型工具類
- 視覺容器原型工具類
- GUI 重構
- 一些經典的重構
- 一些 GUI 特定的重構
- 風格化失敗
- 用戶介面測試介紹
- 測試驅動開發
- 先有 GUI 設計還是實現?
- Java GUI 的軟體測試
- 如何測試 - GUI 軟體測試方法
- 測試什麼 - 測試覆蓋標準
- Java GUI 的可用性測試
- JRE 執行時管理
- 性能分析介紹
- 常見問題
- 持續性能分析
- 事後性能分析
- 總結
- 6 實施問題
- 重新檢視抽象模型
- 測試各個層次
- 單一功能責任原則
- 隔離呈現細節
- 內容
- 內容組裝
- 明確導航
- 業務領域
- 數據輸入輸出
- 綜合數據 IO 設計策略
- 一些設計模式