| |
| |
Preface | |
| |
| |
| |
Introduction | |
| |
| |
| |
LabVIEW Sucks | |
| |
| |
| |
Don't Buy This Book | |
| |
| |
| |
The Soap Box | |
| |
| |
| |
What This Book Is | |
| |
| |
| |
Companion Web Site | |
| |
| |
| |
LabVIEW Rocks | |
| |
| |
| |
Why Does LabVIEW Rock? | |
| |
| |
| |
What Advantages Does This Bring to the Developer? | |
| |
| |
| |
How Can Good Design Leverage These Advantages? | |
| |
| |
| |
Software Design Principles | |
| |
| |
| |
Why is Software Complex? | |
| |
| |
| |
Coupling and Cohesion | |
| |
| |
| |
Information Hiding and Encapsulation | |
| |
| |
| |
Examples of Coupling, Cohesion, and Information Hiding | |
| |
| |
| |
Bad (Tight) Coupling | |
| |
| |
| |
Good (Loose) Coupling | |
| |
| |
| |
Bad (Weak) Cohesion | |
| |
| |
| |
Good (Strong) Cohesion | |
| |
| |
| |
Bad Information Hiding | |
| |
| |
| |
Good Information Hiding | |
| |
| |
| |
Abstraction | |
| |
| |
| |
LabVIEW Component Oriented Design (LCOD) | |
| |
| |
| |
Components | |
| |
| |
| |
So What Is a Component? | |
| |
| |
| |
Design | |
| |
| |
| |
Object Oriented Design (OOD) | |
| |
| |
| |
Top-Down Design | |
| |
| |
| |
Bottom-Up Design | |
| |
| |
| |
Design Patterns | |
| |
| |
| |
Pattern Examples | |
| |
| |
| |
LCOD Implementation | |
| |
| |
| |
Component Mechanisms | |
| |
| |
| |
Message Sending | |
| |
| |
| |
All About Enumerated Types | |
| |
| |
| |
101 Things to Do with an Enumerated Type | |
| |
| |
| |
Strict Type Definitions | |
| |
| |
| |
Persistent Local Storage | |
| |
| |
| |
The Basic Structure of a Component | |
| |
| |
| |
LCOD Complementary Techniques | |
| |
| |
| |
State Machines | |
| |
| |
| |
State Machine Example--Washing Machine | |
| |
| |
| |
Graphical User Interface (GUI) Design and Prototyping (UI Controller [right angle bracket right angle bracket] Message Queue Pattern) | |
| |
| |
| |
Stack Queue Component | |
| |
| |
| |
User Interface Control Wrapper VI | |
| |
| |
| |
LCOD User Interface Example Diagram | |
| |
| |
| |
Abstraction in the Code, Detail Outside the Code | |
| |
| |
| |
Section Key Files | |
| |
| |
| |
Error Handling | |
| |
| |
| |
Pre- and Postconditions: Check What Comes In and What Goes Out | |
| |
| |
| |
Preconditions | |
| |
| |
| |
Postconditions | |
| |
| |
| |
Conclusion | |
| |
| |
| |
Reuse | |
| |
| |
| |
Opportunistic Reuse | |
| |
| |
| |
Planned Reuse | |
| |
| |
| |
Merge VIs | |
| |
| |
| |
VI Templates | |
| |
| |
| |
Software Engineering Essentials | |
| |
| |
| |
The Usual Suspects | |
| |
| |
| |
Requirements Document | |
| |
| |
| |
Quote/Project Validation | |
| |
| |
| |
Target Specification | |
| |
| |
| |
Test Plan | |
| |
| |
| |
Software Architecture Document | |
| |
| |
| |
Software Construction--Build | |
| |
| |
| |
Test--Customer Acceptance | |
| |
| |
| |
Pictures Tell a Thousand Words | |
| |
| |
| |
Diagrams--Data Flow Diagrams (DFDs) | |
| |
| |
| |
State Transition Diagrams | |
| |
| |
| |
Homemade Diagrams | |
| |
| |
| |
Checklists | |
| |
| |
| |
Code Reviews | |
| |
| |
| |
The Project Is Dead, Time for a Postmortem | |
| |
| |
| |
Metrics | |
| |
| |
| |
It's All About Style | |
| |
| |
| |
Why Do We Need Standards Anyway? | |
| |
| |
| |
Block Diagram | |
| |
| |
| |
General Layout Standards | |
| |
| |
| |
Wiring Standards | |
| |
| |
| |
Labeling Standards | |
| |
| |
| |
Self-Documenting Example | |
| |
| |
| |
Front Panel | |
| |
| |
| |
General Front Panel Standards | |
| |
| |
| |
Public Front Panel Standards | |
| |
| |
| |
Private Front Panel Standards | |
| |
| |
| |
Icon and Connector Standards | |
| |
| |
| |
Organization of Files | |
| |
| |
| |
The Journey | |
| |
| |
| |
Agreeing on the Destination (Requirements) | |
| |
| |
| |
Planning Your Route (Design) | |
| |
| |
| |
Code and Fix | |
| |
| |
| |
Abstracting Components from Requirements | |
| |
| |
| |
Using Patterns to Help the Design Process | |
| |
| |
| |
Building the Prototype | |
| |
| |
| |
Build | |
| |
| |
| |
Code and Fix | |
| |
| |
| |
LCOD | |
| |
| |
| |
Hardware | |
| |
| |
| |
Detail Outside the Code | |
| |
| |
| |
Error Handling | |
| |
| |
| |
State Machines | |
| |
| |
| |
Reuse | |
| |
| |
| |
Style | |
| |
| |
| |
Uh-Oh We've Been Given the Wrong Directions | |
| |
| |
| |
Conclusions | |
| |
| |
Glossary | |
| |
| |
Index | |
| |
| |
Other LabVIEW Books | |