Professional Documents
Culture Documents
Elijah Kerry, Certified LabVIEW Architect (CLA) Senior Product Manager for LabVIEW, National Instruments
No source code control (or Project) Flat file hierarchy Stop isnt tested regularly Wait until the end of a project to build an application Few specifications / documentation / requirements No buddying or code reviews Poor planning (Lack of consideration for SMoRES) No test plans Poor error handling No consistent style Tight coupling, poor cohesion
5
Based on an analysis of 63 software development projects at companies including IBM, GTE and TRW
Medical Devices
Avionics Applications
Powered by LabVIEW
Topics
Configuration Management Requirements Tracking Architecture and Design Coding Styles and Standards Testing and Debugging Documentation
ni.com/largeapps
8
System Testing
Service
Application Architecture
Integration Testing
Module Architecture
Unit Testing
Deployment
12
10
8
6
4
2
0
0 to 100 VIs 100 to 250 VIs 250 to 1000 VIs 1000 to 3000 VIs3000 to 5000 VIs Greater than 5000
14
20
15
10
0 > 10 5 to 10 3 to 5 2
15
Requirements Gathering
Development
Deployment
Developer 1
Checked In
Developer 2
16
17
NI Configuration Management
Different trunk for each LabVIEW version Teams of 3 to 7 developers work in smaller repositories Individuals may have their own repositories New features and changes are regularly merged in
Development Trunk
Feature-Team Repository
Feature-Team Repository
Feature-Team Repository
18
Configuration Management
DEMO
20
Graphical Differencing
Provides a checklist of changes Useful for peer reviews Available via command-line
21
2009
Block Diagram Front Panel
2010
Icon
Connector Pane
Icon
Inplaceness Info
Eliminate the need to re-save and re-submit files to source code control unless the graphical source code has been changed by the developer
*this feature is not on by default and needs to be enabled from the VI Properties dialog
22
Local Machine
SubVI1.vi
SubVI1.vi
SubVI2.vi
SubVI1.vi
VI Package Manager
GXML Library
26
27
GXML Library
AMC Library
G Library
28
Track Changes
Deployment
NI Requirements Gateway
Dataflow
MathScript
Statechart Simulation
LabVIEW Unit Test Framework LabVIEW VI Analyzer LabVIEW Desktop Execution Trace
Prove it works.
Deployment
NI Requirements Gateway
Dataflow
MathScript
Statechart Simulation
LabVIEW Unit Test Framework LabVIEW VI Analyzer LabVIEW Desktop Execution Trace
Prove it works.
Improve quality. Reduce risk. Save time.
35
37
Requirements Gathering
Application Architecture
Development
Deployment
38
Requirements Tracking
DEMO
39
Documentation
Labeled objects In-line comments Distinct Icon Description and Tip HTML Print-Out Requirements Coverage
40
Application Complexity
Simple
VI Analyzer Toolkit
Low Risk
Application Criticality
High Risk
41
Is the code easy to maintain, and has it been documented? What happens if the code returns an error? ( or if it receives an error?) Is too much functionality located in a single VI? Are there any race conditions? Is the memory usage within acceptable limits?
42
Fonts and Text Characteristics Colors Graphics and Custom Controls Layout Sizing and Positioning Labels Paths versus Strings Enumerated Type Controls versus Ring Controls Default Values and Ranges Property Nodes Key Navigation Dialog Boxes
Wiring Techniques Memory and Speed Optimization Sizing and Positioning Left-to-Right Layouts Block Diagram Comments Call Library Function Nodes and Code Interface Nodes Type Definitions Sequence Structures
Style Checklist
43
Interactively inspect failures Generate custom reports Code complexity metrics Write your own tests with VI Scripting LabVIEW 2010
44
Case 3
DEMO
48
Application Complexity
Simple
VI Analyzer Toolkit
Low Risk
Application Criticality
High Risk
49
51
52
53
DEMO
54
55
Application Complexity
Simple
VI Analyzer Toolkit
Low Risk
Application Criticality
High Risk
56
57
Input Values
Output
VI Under Test
Expected Output
58
Input Values
Output
VI Under Test
Windows Desktop
Unit Test Framework
Expected Output
59
Input Values
Output
VI Under Test
Real Time
Unit Test Framework
Expected Output
60
Unit Testing
DEMO
61
63
64
65
Unit Tests
Test Results
66
69
70
LabVIEW Core 1
LabVIEW Core 2
LabVIEW Core 3
"Certification is an absolute must for anyone serious about calling himself a LabVIEW expert... At our organization, we require that every LabVIEW developer be on a professional path to become a Certified LabVIEW Architect." - President, JKI Software, Inc.