ambiguous, and overlapping. Therefore, each section begins with a definition of how the term is used here and then discusses
how that term relates to development style.
Ease of use is the ease with which the end user operates the software and accomplishes her objectives. This involves
interacting with the application's graphical user interface (GUI). Ease of use ranges in importance from less important,
for a one-time experiment to be run only by the application's developer, who is intimately familiar with the software;
to very important, for a production application to be used by a variety of semiskilled operators within a single
organization; to extremely important, for a mission- or safety-critical application, or a commercial application intended
for distribution and resale. If you are designing a commercial application, read a GUI style reference for your
application's target operating system. If your application is mission or safety critical, read an appropriate text on
human factors. The LabVIEW Style Book contains general style rules that can be applied to most LabVIEW applications,
from the lab to production, on most operating systems, from desktop PCs running Windows to embedded processors running
a real-time or hand-held operating system.
Ease of use is related to readability and responsiveness of the GUI. In Figure 1-1, the front panel for Meticulous VI
is intuitively laid out. The principal physiologic data is displayed in stacked waveform charts and large numeric
indicators in the center of the panel. Ancillary data is contained on separate display screens. Boolean controls facilitate
navigation in a conventional manner. The overall appearance resembles and behaves as a virtual instrument. The application
is fast and responds quickly to operations that the user performs.
The front panel of Nested VI in Figure 1-2 uses a tab control to logically organize the front panel objects. The controls
are clearly labeled and evenly spaced. However, the purpose of each tab and the order by which the user navigates the
GUI are not immediately clear. The diagram contains Sequence structures that execute each frame to completion, regardless
of any operations the user performs on the front panel. Its capability to respond to the user clicking Quit depends
upon which frame of the Sequence structure the application is executing when the button's value changes.
The front panel of Spaghetti VI, shown in Figure 1-3, organizes controls and indicators using clusters. It is logical
and organized, but it contains too many colors and font types, and not enough empty areas or "white space." More important,
the performance is not reliable. No matter how attractive a GUI appears, if it does not perform its intended function,
it will not provide a positive user experience.
Chapter 3, "Front Panel Style," contains style rules for front panel design that promote consistency and ease of use
for your GUIs. Chapter 6, "Data Structures," and Chapter 8, "Design Patterns," provide additional style rules that help
optimize the responsiveness of the GUI.
Efficiency pertains to the use of processor, memory, and input/output (I/O) resources. An efficient LabVIEW application
executes quickly, without performing unnecessary operations, particularly ones that are performed repeatedly within
looping structures. An efficient application also conserves memory by limiting the size of the four LabVIEW memory
components: the front panel, block diagram, data space, and code. Front panel and block diagram memory store the graphical
objects and images that comprise the front panel and block diagram, respectively. Data space memory contains all the
data that flows through the diagram, as well as the diagram constants, default values for front panel controls, and
the data that is copied when written to variables and front panel indicators. Code is the portion of memory that contains
the compiled source code. Finally, efficient applications minimize I/O operations, such as GUI updates, instrument and
network communications, and data acquisition (DAQ) calls. Execution speed and memory use are related. Memory and disk
operations are a principal source of latencies in all modern computing devices. As memory consumption grows during the
16