Table of contents for A software engineering approach to LabVIEW / Jon Conway, Steve Watts.Counter

Contents
Preface
The Test Engineer?s Perspective
1.      Introduction
<br>1.1 LabVIEW Sucks
        1.2    Don?t Buy This Book
        1.3    The Soapbox
        1.4    What This Book Is
2.      LabVIEW Rocks
<br>2.1 Why Does LabVIEW Rock?
<br>2.2 What Advantages Does This Bring to the Developer?
<br>2.3 How Can Good Design Leverage These Advantages?
3.      Software Design Principles
<br>3.1 Why is Software Complex?
<br>3.2 Coupling and Cohesion
<br>3.3 Information Hiding and Encapsulation
<br>3.4 Examples of Coupling, Cohesion, and Information Hiding
<br>    3.4.1   Bad (Tight) Coupling
<br>    3.4.2   Good (Loose) Coupling
<br>    3.4.3   Bad (Weak) Coupling
<br>    3.4.4   Good (Strong) Coupling
<br>    3.4.5   Bad Information Hiding
<br>    3.4.6   Good Information Hiding
<br>3.5 Abstraction
4.      LabVIEW Component Oriented Design (LCOD)
<br>4.1 Components
<br>    4.1.1   So What is a Component?
<br>4.2 Design
<br>    4.2.1   Object Oriented Design (OOD)
<br>    4.2.2   Top-Down Design
<br>    4.2.3   Bottom-Up Design
<br>    4.2.4   Design Patterns
<br>    4.2.5   Pattern Examples
5.      LCOD Implementation
<br>5.1 Component Mechanisms
<br>5.2 Message Sending
<br>    5.2.1   All About Enumerated Types
<br>    5.2.2   101 Things to Do With Enumerated Type
<br>    5.2.3   Strict Type Definitions
        5.3    Persistent Local Storage
<br>5.4 The Basic Structure of a Component
6.      LCOD Complementary Techniques
<br>6.1 State Machines
<br>    6.1.1   State Machine Example?Washing Machine
<br>6.2 Graphical User Interface (GUI) Design and Prototyping (UI 
Controller>>Message Queue Pattern)
<br>    6.2.1   Stack Queue Component
<br>    6.2.2   User Interface Control Wrapper VI
<br>    6.2.3   LCOD User Interface Example Diagram
<br>6.3 Abstraction in the Code, Detail Outside the Code
<br>    6.3.1   Section Key Files
<br>6.4 Error Handling
<br>6.5 Pre- and Postconditions: Check What Comes In and What Goes Out
<br>    6.5.1   Preconditions
<br>    6.5.2   Postconditions
<br>    6.5.3   Conclusion             
<br>6.6 Reuse
<br>    6.6.1   Opportunistic Reuse
<br>    6.6.2   Planned Reuse
<br>    6.6.3   Merge VIs
<br>    6.6.4   VI Templates
7.      Software Engineering Essentials
<br>7.1 The Usual Suspects
<br>7.2 Requirements Document
<br>7.3 Quote/Project Validation
<br>7.4 Target Specification
<br>7.5 Test Plan
<br>7.6 Software Architecture Document
<br>7.7 Software Construction?Build
<br>7.8 Test?Customer Acceptance
<br>7.9 Pictures Tell a Thousand Words
<br>    7.9.1   Diagrams?Data Flow Diagrams (DFD)
<br>    7.9.2   State Transition Diagrams
<br>    7.9.3   Homemade Diagrams
<br>7.10       Checklists
<br>7.11       Code Reviews
<br>7.12       The Project Is Dead, Time for a Post-Mortem
<br>7.13       Metrics
8.      It?s All About Style
<br>8.1 Why Do We Need Standards Anyway?
<br>8.2 Block Diagram
<br>    8.2.1   General Layout Standards
<br>    8.2.2   Wiring Standards
<br>    8.2.3   Labeling Standards
<br>    8.2.4   Self-Documenting Example
<br>8.3 Front Panel
<br>    8.3.1   General Front Panel Standards
<br>    8.3.2   Public Front Panel Standards
<br>    8.3.3   Private Front Panel Standards
<br>    8.3.4   Icon and Connector Standards
<br>    8.3.5   Organization of Files
9.      The Journey
<br>9.1 Agreeing on the Destination (Requirements)
<br>9.2 Planning Your Route (Design)
<br>    9.2.1   Code and Fix
<br>    9.2.2   Abstracting Components from Requirements
<br>    9.2.3   Using Patterns to Help the Design Process
<br>    9.2.4   Building the Prototype
<br>9.3 Build
<br>    9.3.1   Code and Fix
<br>    9.3.2   LCOD
<br>    9.3.3   Hardware
<br>    9.3.4   Detail Outside the Code
<br>    9.3.5   Error Handling
<br>    9.3.6   State Machines
<br>    9.3.7   Reuse
<br>    9.3.8   Style
<br>9.4 Uh-Oh We?ve Been Given the Wrong Directions
<br>9.5 Conclusions
Glossary
Index
 

Library of Congress Subject Headings for this publication: LabVIEW, Software engineering