Table of Contents__

LabVIEW GUI - Essential Techniques
by David J. Ritter

The first GUI book written by LabVIEW programmers
for LabVIEW Programmers.

Chapter 1 - The Case for a Superior GUI

1.1 Motivations for the Superior GUI
1.1.1 The point of contact
1.1.2 Benefits of a Well Executed GUI
1.1.3 Return on investment
1.1.4 Make your own case
1.2 What defines a "Superior GUI"?
1.3 Assessing your own GUI Abilities

Chapter 2 - The Psychology of Human-Computer Interactions
2.1 GUI Psychology - Background Information
2.2 The Cognitive Approach to GUI Design
2.3 Human Factors in the GUI Design Process
2.4 Introduction to GUI Design Models
2.4.1 The User’s Mental Model
2.4.2 Key principles of GUI design
2.4.3 The Designer’s Model
2.4.4 The Programmer’s Model
2.4.5 The Process Expert’s Model
2.4.6 Mental Models – Practical Implications
2.5 Elements of the Design Model
2.5.1 The "Look"
2.5.2 The "Feel"
2.5.3 Conceptual Elements
2.5.4 Keeping "Look & Feel" in perspective
2.5.6 The Dynamics of Usability
2.5.7 GUI Design Elements Summary

Chapter 3 - Targeting Your Destination
3.1 The Importance of Planning
3.1.1 Planning for the Users
3.2 The Planning Process
3.2.1 Application Goals
3.2.2 Requirements
3.2.3 Detailed Specifications
3.2.4 Planning Hierarchy - General Considerations
3.3 Software Development Lifecycles
3.3.1 The Code and Fix Model
3.3.2 The Waterfall Lifecycle Model
3.3.3 Modified Waterfall Models
3.3.4 The Spiral Lifecycle Model
3.4 Lifecycle Models Applied to the GUI Design Process
3.4.1 Code and Fix Applied to GUI Design
3.4.2 The Waterfall Model and GUI Design
3.4.3 Modified Waterfall Models and GUI Design
3.4.4 The Spiral Lifecycle and GUI Design
3.4.5 Lifecycle Models in Review
3.5 Application Structures and the Implications of Usability
3.5.1 "Data-Centered" Versus "Application-Centered" Design
3.5.2 Microsoft’s Component Technologies
3.5.3 IAC Capabilities on Other Platforms
3.5.4 The Advantages of Data-Centered Design
3.5.5 The Disadvantages of Data-Centered Design
3.5.6 IAC in Perspective
3.6 Acquisition, Analysis, and Presentation
3.6.1 The Networking Advantage
3.6.2 Planning for Network Integration
3.6.3 Data Publishing
3.6.4 Distributed Execution
3.6.5 Summary of Networking Options
3.7 Planning for the Visual Presentation
3.7.1 Form and Function in Balance
3.7.2 Special Graphical Considerations
3.8 Planning in Review

Chapter 4 - Understanding Users
4.1 Identifying the Users
4.1.1 Users… Just like the rest of us?
4.1.2 User Attribute Classifications
4.2 Attributes All Users have in Common
4.2.1 Psychological and Human Factors Human Information Processing Thought Processes LTM and the User’s Mental Model Item Organization and Memory Item Organization and GUI Design Perception, Memory, and GUI Design
4.2.2 Visual Perception
4.2.3 Sound Perception
4.3 Attributes Unique to Each Individual
4.3.1 Individual Differences
4.3.2 The Unique Identity of Users
4.4 The User’s View versus the Programmer’s View

Chapter 5 - From Task Definition to GUI Design
5.1 The GUI Design Process
5.2 Gathering User Requirements
5.2.1 Information Gathering Techniques
5.3 Evaluating User Goals, Tasks and Actions through Task Analysis
5.3.1 Goals, Tasks, Actions, and GUI Objects
5.3.2 Task Analysis Methods
5.4 Developing and Testing Prototypes
5.4.1 Assigning GUI Priorities
5.4.2 GUI Priorities and User Classes
5.4.3 The Value of Prototypes
5.4.4 Generating Prototypes
5.5 General Design Considerations
5.5.1 The Complexity Paradox of GUI Design
5.5.2 Progressive Disclosure
5.5.3 Managing GUI Complexity
5.5.4 Key GUI Design Principles Revisited
5.5.5 UI Guidelines, and Styleguides
5.5.6 General Design Considerations in Review
5.6 Testing Your GUI Designs
5.6.1 User testing throughout the design process
5.6.2 Evaluation Testing
5.7 Reiterate as Needed
5.8 Visual Metaphors
5.8.1 Visual Metaphors in LabVIEW Applications
5.8.2 Do Visual Metaphors Make GUIs More Usable?
5.8.3 Visual Metaphors - Conclusions

Chapter 6 - Graphic Design for Engineers 101 - a crash course in layout & design
6.1 The Importance of Design Integrity
6.2 Design Concept and Image
6.3 Designing an Effective Layout
6.3.1 Visual Hierarchy
6.3.2 Balance
6.3.3 Visual Consistency
6.3.4 Panel Resizing and Different Monitor Resolutions
6.3.5 Layout and Design in Review
6.4 Color Considerations in GUI Design
6.4.1 What is Color?
6.4.2 Primary Colors - Additive versus Subtractive
6.4.3 LabVIEW and the RGB Color Space
6.4.4 Color Usage Guidelines
6.4.5 Color Combinations - Putting Users in Control
6.4.6 The Color Picker Utility
6.4.7 Getting Help from the Pros
6.4.8 GUI Color in Review
6.5 GUI Text
6.5.1 Controlling GUI Text Hierarchy
6.5.2 Making GUI Text Legible
6.5.3 GUI Text in a LabVIEW Context
6.6 The Graphic Design Function - in Perspective

Chapter 7 - Building GUI VIs
7.1 LabVIEW GUI Programming Basics
7.1.1 LabVIEW Application Architectures
7.1.2 Data Transfer Mechanisms
7.1.3 LabVIEW Programming Basics in Review
7.2 Custom Menus
7.2.1 Custom Menus – Why?
7.2.2 Adding Custom Menus to Your Applications
7.2.3 Improving Usability with Custom Menu Additions
7.3 Advanced GUI Architectures
7.3.1 Queued State Machines
7.3.2 Event-Driven Architectures
7.4 GUI Programming Fundamentals in Review

Chapter 8 - VI Server GUI Techniques
8.1 VI Server Basics
8.2 VI Server for Front Panel Control
8.2.1 Panel Management Challenges
8.2.2 Panel Resizing for Progressive Disclosure
8.2.3 Resizing Panels for Different Screen Resolutions
8.2.4 Other VI Server Options for Front Panel Control Additional Front Panel Properties in LabVIEW 6
8.3 The VI Server Invoke Node
8.3.1 The Run VI Method
8.4 VI Server’s Call By Reference Node
8.4.1 LabVIEW Plug-In Architectures
8.4.2 Call By Reference in Perspective
8.5 VI Server and Distributed Applications
8.5.1 VI Server and the Application Builder
8.6 Selective GUI Panel Control
8.6.1 Direct Wire Connections
8.6.2 Selective Panel Control - A Simple Example
8.6.3 Practical Applications
8.6.4 Usability Benefits
8.6.5 Selective Panel Control In Perspective
8.7 The VI Reference Manager
8.7.1 A VI Reference Manager Example
8.8 VI Server in Review

Chapter 9 - Exploring LabVIEW GUI Customization
9.1 LabVIEW GUI Customization Options
9.2 The Power of Control References
9.2.1 Attribute Nodes, Property Nodes, and Control References
9.2.2 Control Reference and Property Node Examples
9.2.3 GUI Special Effects and Performance
9.3 GUI Enhancement with Custom Graphics
9.3.1 Imported Image Options
9.3.2 Dynamic Image Generation
9.4 Toolbars and Buttonbars
9.4.1 Building the LabVIEW Draw Toolbar
9.4.2 End-User Toolbar Customization Strategies
9.4.3 Toolbar Customization in Review
9.4.4 Floating Toolbars (Windows Only)
9.5 Control Editor Techniques
9.5.1 Customizing Slide Controls
9.5.2 Additional Control Editor Techniques
9.5.3 The Control Editor in Review
9.6 ActiveX Controls for GUI Customization
9.6.1 Integrating Active-X Controls into LabVIEW Panels
9.6.2 Getting Help for ActiveX Properties and Methods
9.6.3 More Advanced ActiveX Integration Examples
9.6.4 ActiveX in Review
9.7 Tab Controls
9.7.1 General Tab Control Guidelines
9.7.2 Interesting Tab Control Customizations
9.7.3 Tab Control Summary
9.8 LabVIEW GUI Customization in Review

Chapter 10 - Preparing Graphics Elements for LabVIEW GUI Integration
10.1 Adding Custom Graphical Elements - Why?
10.1.1 Wired for Pictures
10.1.2 Improving Usability
10.1.3 Enhancing Marketability
10.1.4 Adding Custom Graphics for Reason
10.1.5 Alternative Applications – Extending the VI Model
10.2 Image sources
10.2.1 Free Image Sources
10.2.2 Commercial Options Online
10.2.3 Clip-Art and Photo Libraries on CD-ROM
10.2.4 Generating Project-Specific Images
10.3 Supported Image File Formats
10.4 Image Editing Techniques
10.4.1 Exploring Adobe Photoshop
10.5 Custom Graphics and LabVIEW Performance
10.5.1 Image Optimization Techniques
10.6 Custom Graphics Integration in Review

Chapter 11 - A Case Study – The VI Facelift
11.1 Step One – Building the Standard GUI Panel
11.1.1 Process Overview
11.1.2 Evaluating Conventional GUI Approaches
11.1.3 GUI Planning and Design Considerations
11.1.4 Other Design Considerations
11.1.5 Defining the User Requirements
11.1.6 Task Analysis and User Scenarios
11.1.7 Defining GUI Priorities
11.1.8 Grouping and Organization
11.1.9 Building the Main Temperature Panel
11.2 Step Two - The GUI Facelift
11.2.1 Part of a Larger System
11.2.2 The Final Temperature Subsystem Panel
11.2.3 Custom Graphics Preparation
11.2.4 Pop-up subVI panels
11.3 Conclusion

Chapter 12 - Advanced Graph Techniques
Contributed by George Wells from NASA's Jet Propulsion Laboratory
12.1 Introduction
12.2 Basic Graph Skills
12.2.1 Graph Basics
12.2.2 Complex Numbers to the Rescue
12.2.3 Making Filled Shapes
12.2.4 Animation
12.2.5 Segmented Plots
12.2.6 Simulating an Intensity Graph Using an XY Graph
12.2.7 Simulating a Waveform Chart Using an XY Graph
12.2.8 A Warning about Time
12.2.9 Using an Intensity Graph to Display a Bitmap Image
12.3 Real-World Applications
12.3.1 Galileo
12.3.2 Mars Pathfinder Rover Mission
12.3.3 SeaWinds
12.3.4 Weather Station

Appendix A - LabVIEW Interface Concepts Used in NASA Research
Contributed by Dr. Don Roth from NASA's Glenn Research Center

A.1 Introduction
A.2 Ultrasonic Measurement System for Nondestructive Evaluation of Advanced Structural Materials
A.3 The New Cloud Absorption Radiometer
A.4 References

Appendix B - GUI Design Checklist

Appendix C - CD-ROM Contents



Preview Chapter 1 (.PDF file - Acrobat Reader required)

General Information

About the CD-ROM
LV GUI - Main Page
LV GUI - Support Pages

BetterVIEW Homepage