A software engineering approach to LabVIEW / Jon Conway and Steve Watts.
By: Conway, Jon
.
Contributor(s): Watts, Steve
.
Material type:
BookSeries: National Instruments virtual instrumentation series.Publisher: Upper Saddle River, NJ : Prentice Hall, Professional Technical Reference, 2003Description: xiii, 221 p. : ill. ; 24 cm. + pbk.ISBN: 0130093653.Subject(s): LabVIEW | Software engineering| Item type | Current library | Call number | Copy number | Status | Barcode | |
|---|---|---|---|---|---|---|
| General lending | MTU Bishopstown Library Lending | 005.1 (Browse shelf(Opens below)) | 1 | Available | 00099113 |
Enhanced descriptions from Syndetics:
A Software Engineering Approach to LabVIEW , by working programmers Jon Conway and Steve Watts, applies for the first time the techniques and principles of software design to LabVIEW programming. The LCOD technique designs flexibility into applications, making them more robust and much more easily adaptable to changes, even in large, industrial applications. Complete with examples and working code.
Includes index.
Introduction -- LabVIEW Rocks -- Software Design Principles -- LabVIEW Component Oriented Design (LCOD) -- LCOD Implementation -- LCOD Complementary Techniques -- Software Engineering Essentials -- It's all about style -- The journey.
Table of contents provided by Syndetics
- Preface (p. xi)
- 1 Introduction (p. 1)
- 1.1 LabVIEW Sucks (p. 2)
- 1.2 Don't Buy This Book (p. 4)
- 1.3 The Soap Box (p. 4)
- 1.4 What This Book Is (p. 6)
- 1.5 Companion Web Site (p. 6)
- 2 LabVIEW Rocks (p. 7)
- 2.1 Why Does LabVIEW Rock? (p. 7)
- 2.2 What Advantages Does This Bring to the Developer? (p. 12)
- 2.3 How Can Good Design Leverage These Advantages? (p. 13)
- 3 Software Design Principles (p. 15)
- 3.1 Why is Software Complex? (p. 16)
- 3.2 Coupling and Cohesion (p. 18)
- 3.3 Information Hiding and Encapsulation (p. 21)
- 3.4 Examples of Coupling, Cohesion, and Information Hiding (p. 22)
- 3.4.1 Bad (Tight) Coupling (p. 22)
- 3.4.2 Good (Loose) Coupling (p. 24)
- 3.4.3 Bad (Weak) Cohesion (p. 25)
- 3.4.4 Good (Strong) Cohesion (p. 25)
- 3.4.5 Bad Information Hiding (p. 26)
- 3.4.6 Good Information Hiding (p. 27)
- 3.5 Abstraction (p. 29)
- 4 LabVIEW Component Oriented Design (LCOD) (p. 33)
- 4.1 Components (p. 34)
- 4.1.1 So What Is a Component? (p. 35)
- 4.2 Design (p. 36)
- 4.2.1 Object Oriented Design (OOD) (p. 37)
- 4.2.2 Top-Down Design (p. 39)
- 4.2.3 Bottom-Up Design (p. 40)
- 4.2.4 Design Patterns (p. 40)
- 4.2.5 Pattern Examples (p. 43)
- 5 LCOD Implementation (p. 47)
- 5.1 Component Mechanisms (p. 47)
- 5.2 Message Sending (p. 48)
- 5.2.1 All About Enumerated Types (p. 48)
- 5.2.2 101 Things to Do with an Enumerated Type (p. 48)
- 5.2.3 Strict Type Definitions (p. 52)
- 5.3 Persistent Local Storage (p. 54)
- 5.4 The Basic Structure of a Component (p. 55)
- 6 LCOD Complementary Techniques (p. 59)
- 6.1 State Machines (p. 59)
- 6.1.1 State Machine Example--Washing Machine (p. 60)
- 6.2 Graphical User Interface (GUI) Design and Prototyping (UI Controller [right angle bracket right angle bracket] Message Queue Pattern) (p. 64)
- 6.2.1 Stack Queue Component (p. 66)
- 6.2.2 User Interface Control Wrapper VI (p. 70)
- 6.2.3 LCOD User Interface Example Diagram (p. 73)
- 6.3 Abstraction in the Code, Detail Outside the Code (p. 76)
- 6.3.1 Section Key Files (p. 77)
- 6.4 Error Handling (p. 88)
- 6.5 Pre- and Postconditions: Check What Comes In and What Goes Out (p. 92)
- 6.5.1 Preconditions (p. 95)
- 6.5.2 Postconditions (p. 97)
- 6.5.3 Conclusion (p. 97)
- 6.6 Reuse (p. 98)
- 6.6.1 Opportunistic Reuse (p. 98)
- 6.6.2 Planned Reuse (p. 99)
- 6.6.3 Merge VIs (p. 99)
- 6.6.4 VI Templates (p. 104)
- 7 Software Engineering Essentials (p. 105)
- 7.1 The Usual Suspects (p. 107)
- 7.2 Requirements Document (p. 111)
- 7.3 Quote/Project Validation (p. 116)
- 7.4 Target Specification (p. 117)
- 7.5 Test Plan (p. 118)
- 7.6 Software Architecture Document (p. 119)
- 7.7 Software Construction--Build (p. 120)
- 7.8 Test--Customer Acceptance (p. 121)
- 7.9 Pictures Tell a Thousand Words (p. 121)
- 7.9.1 Diagrams--Data Flow Diagrams (DFDs) (p. 121)
- 7.9.2 State Transition Diagrams (p. 124)
- 7.9.3 Homemade Diagrams (p. 124)
- 7.10 Checklists (p. 126)
- 7.11 Code Reviews (p. 127)
- 7.12 The Project Is Dead, Time for a Postmortem (p. 129)
- 7.13 Metrics (p. 130)
- 8 It's All About Style (p. 131)
- 8.1 Why Do We Need Standards Anyway? (p. 131)
- 8.2 Block Diagram (p. 134)
- 8.2.1 General Layout Standards (p. 134)
- 8.2.2 Wiring Standards (p. 134)
- 8.2.3 Labeling Standards (p. 135)
- 8.2.4 Self-Documenting Example (p. 136)
- 8.3 Front Panel (p. 137)
- 8.3.1 General Front Panel Standards (p. 137)
- 8.3.2 Public Front Panel Standards (p. 137)
- 8.3.3 Private Front Panel Standards (p. 138)
- 8.3.4 Icon and Connector Standards (p. 139)
- 8.3.5 Organization of Files (p. 139)
- 9 The Journey (p. 141)
- 9.1 Agreeing on the Destination (Requirements) (p. 142)
- 9.2 Planning Your Route (Design) (p. 157)
- 9.2.1 Code and Fix (p. 157)
- 9.2.2 Abstracting Components from Requirements (p. 157)
- 9.2.3 Using Patterns to Help the Design Process (p. 165)
- 9.2.4 Building the Prototype (p. 169)
- 9.3 Build (p. 180)
- 9.3.1 Code and Fix (p. 181)
- 9.3.2 LCOD (p. 181)
- 9.3.3 Hardware (p. 182)
- 9.3.4 Detail Outside the Code (p. 193)
- 9.3.5 Error Handling (p. 198)
- 9.3.6 State Machines (p. 199)
- 9.3.7 Reuse (p. 200)
- 9.3.8 Style (p. 201)
- 9.4 Uh-Oh We've Been Given the Wrong Directions (p. 203)
- 9.5 Conclusions (p. 208)
- Glossary (p. 211)
- Index (p. 217)
- Other LabVIEW Books (p. 222)
Excerpt provided by Syndetics
Author notes provided by Syndetics
Jon Conway has 20 years' experience writing software, with half of that in LabVIEW. His fields of expertise include real time, robotics, databases, DAQ, DSP, and multiple software languages and operating systems; his idea for LCOD arose from his experience gained working on complex software projects. Jon is a partner in Structured Software Design Consultants of Hampshire, UKSteve Watts has 15 years of experience writing test software, and has been programming in LabVIEW for 6 years. His areas of expertise include OOD, the Yourdon methodology, CASE tools, electronics, lasers, switching system design, DAQ, statistical process control, databases, user interface design, software engineering, as well as a variety of programming languages. Steve is a partner in Structured Software Design Consultants of Hampshire, UK