The Essentials of File Management with LabVIEW



Similar documents
Software Engineering Best Practices. Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer

Software Engineering for LabVIEW Applications. Elijah Kerry LabVIEW Product Manager

Source Code Control and Software Reuse

Software Engineering for LabVIEW Applications

Manage Software Development in LabVIEW with Professional Tools

Getting Started with the LabVIEW Mobile Module Version 2009

LabVIEW Advanced Programming Techniques

Surround SCM Best Practices

NI TestStand Version 2012

SonicWALL CDP 5.0 Microsoft Exchange InfoStore Backup and Restore

Getting Started with the LabVIEW Mobile Module

Introduction to LabVIEW Design Patterns

EMC Documentum Composer

IBM InfoSphere MDM Server v9.0. Version: Demo. Page <<1/11>>

Exam Name: IBM InfoSphere MDM Server v9.0

Getting started with 2c8 plugin for Microsoft Sharepoint Server 2010

Customizing the SSOSessionTimeout.jsp page for Kofax Front Office Server 3.5.2

Best Practices for Deploying, Replicating, and Managing Real-Time and FPGA Applications. ni.com

ultimo theme Update Guide Copyright Infortis All rights reserved

Integrating CaliberRM with Software Configuration Management Tools

PCVITA Express Migrator for SharePoint(Exchange Public Folder) Table of Contents

LabVIEW Report Generation Toolkit for Microsoft Office

VERITAS Backup Exec 9.1 for Windows Servers Quick Installation Guide

PCVITA Express Migrator for SharePoint (File System) Table of Contents

Tutorial: Android Object API Application Development. Sybase Unwired Platform 2.2 SP02

Author: Ryan J Adams. Overview. Policy Based Management. Terminology

Ascent Capture's MSDE 2000 Backup and Restore Instructions (For Ascent Capture 7.x and 6.x using the default MSDE 2000 database)

Xcode Project Management Guide. (Legacy)

Measurement Studio. Contents RELEASE NOTES

Administration GUIDE. SharePoint Server idataagent. Published On: 11/19/2013 V10 Service Pack 4A Page 1 of 201

Kofax Transformation Modules Generic Versus Specific Online Learning

Tutorial: Android Object API Application Development. SAP Mobile Platform 2.3 SP02

Dwebs IIS Log Archiver Installation and Configuration Guide for Helm 4

VERITAS Backup Exec TM 10.0 for Windows Servers

SourceAnywhere Service Configurator can be launched from Start -> All Programs -> Dynamsoft SourceAnywhere Server.

Tutorial: Android Object API Application Development. SAP Mobile Platform 2.3

Lab 0 (Setting up your Development Environment) Week 1

Intellicus Cluster and Load Balancing (Windows) Version: 7.3

Exchange Mailbox Protection

PASS4TEST 専 門 IT 認 証 試 験 問 題 集 提 供 者

Changing Your Cameleon Server IP

SSO Plugin. J System Solutions. Upgrading SSO Plugin 3x to 4x - BMC AR System & Mid Tier.

How To Set Up An Intellicus Cluster And Load Balancing On Ubuntu (Windows) With A Cluster And Report Server (Windows And Ubuntu) On A Server (Amd64) On An Ubuntu Server

Backing Up and Restoring Microsoft Exchange Server Cloud Attached Storage. August 2012 Version 3.2

BI xpress Product Overview

Dream Report Version 4.5

Microsoft Dynamics CRM Adapter for Microsoft Dynamics GP

Sisense. Product Highlights.

zen Platform technical white paper

DocAve 4.1 Backup User Guide

Learn how to create web enabled (browser) forms in InfoPath 2013 and publish them in SharePoint InfoPath 2013 Web Enabled (Browser) forms

Synthetic Monitoring Scripting Framework. User Guide

Installation Manual (MSI Version)

Server Manager Performance Monitor. Server Manager Diagnostics Page. . Information. . Audit Success. . Audit Failure

BIRT Application and BIRT Report Deployment Functional Specification

Getting Started with the Ed-Fi ODS and Ed-Fi ODS API

Getting Started Guide

Understand Backup and Recovery Methods

Application Lifecycle Management White Paper. Source Code Management Best Practice: Applying Economic Logic to Migration ALM

Windows 10 and Enterprise Mobility

Learning Remote Control Framework ADD-ON for LabVIEW

How To Restore Your Data On A Backup By Mozy (Windows) On A Pc Or Macbook Or Macintosh (Windows 2) On Your Computer Or Mac) On An Pc Or Ipad (Windows 3) On Pc Or Pc Or Micro

How To Backup In Cisco Uk Central And Cisco Cusd (Cisco) Cusm (Custodian) (Cusd) (Uk) (Usd).Com) (Ucs) (Cyse

Forms Printer User Guide

System Administration Training Guide. S100 Installation and Site Management

Maven or how to automate java builds, tests and version management with open source tools

Manual. CollabNet Subversion Connector to HP Quality Center. Version 1.2

Workflow Templates Library

How To Install Caarcserve Backup Patch Manager (Carcserver) On A Pc Or Mac Or Mac (Or Mac)

Keystone 600N5 SERVER and STAND-ALONE INSTALLATION INSTRUCTIONS

Installation Assistance Windows/Microsoft Updates Updating from Spectra or Upgrading from Spectra 6.x...

User's Guide - Beta 1 Draft

S m a r t M a s t e B T E C O R P O R A T I O N USER MANUAL

IBM WebSphere Application Server Version 7.0

DiskBoss. File & Disk Manager. Version 2.0. Dec Flexense Ltd. info@flexense.com. File Integrity Monitor

Symantec AntiVirus Corporate Edition Patch Update

Code Estimation Tools Directions for a Services Engagement

Librarian. Integrating Secure Workflow and Revision Control into Your Production Environment WHITE PAPER

ultimo theme Update Guide Copyright Infortis All rights reserved

Jitterbit Technical Overview : Microsoft Dynamics CRM

Creating a Domain Tree

Introduction to Programming Tools. Anjana & Shankar September,2010

Pick a Palette and Beyond: REPORT GENERATION with LABVIEW

AdminStudio Release Notes. 16 July Introduction New Features... 6

Acronis Backup & Recovery 10 Server for Linux. Installation Guide

Click to begin. Maitre'D Full System Backup & Restore

RSA Authentication Manager 7.1 to 8.1 Migration Guide: Upgrading RSA SecurID Appliance 3.0 On Existing Hardware

Portions of this product were created using LEADTOOLS LEAD Technologies, Inc. ALL RIGHTS RESERVED.

ni.com Remote Connectivity with LabVIEW

ElectricCommander. Technical Notes MS Visual Studio Add-in Integration version version 3.5 or higher. October 2010

Deploying Microsoft Operations Manager with the BIG-IP system and icontrol

POC Installation Guide for McAfee EEFF v4.1.x using McAfee epo 4.6. New Deployments Only Windows Deployment

Installation Guide of the Change Management API Reference Implementation

Medical Device Design: Shorten Prototype and Deployment Time with NI Tools. NI Technical Symposium 2008

Microsoft Dynamics NAV Connector. User Guide

Oracle Fusion Middleware. 1 Oracle Team Productivity Center Server System Requirements. 2 Installing the Oracle Team Productivity Center Server

Application. 1.1 About This Tutorial Tutorial Requirements Provided Files

Source Control Guide: Git

SCCM Plug-in User Guide. Version 3.41

Transcription:

The Essentials of File Management with LabVIEW Courtney Lessard LabVIEW Product Manager Presented by Alexandra Valiton, NI Field Engineer, Long Island

How many files in your biggest application?.lvproj.vi.ctl.lvlib.dll Dependencies Source files Readme

High-Volume Production Test Structural Health Monitoring Medical Devices Space Exploration Large Physics Applications Avionics Applications Large System Development Powered by LabVIEW

Session Goals This session focuses on best practices for: Organizing and Managing LabVIEW Applications Managing a Code Base with Source Code Control Building and Distributing Reuse Libraries

Sample Project Automated Test Project 1. Initialize Equipment 2. Load Test Parameters 3. Perform Tests 4. Log Results 5. Create Report 6. Shutdown Equipment File Types: Main VI, subvis, test docs, readmes, custom controls, variables Development Teams: Architect, test experts, DUT experts Reusable Code: Instr libraries, Database connectivity, logging practics

Organizing and Managing LabVIEW Applications

Defining a LabVIEW Application Type Definitions Shared Libraries and Additional Code Source Code Configuration and Data Files Documentation

Recommendations for Organizing Files Single Root Directory Group related files using folders Logical names Clear Documentation Separated Top-Level VI

The Project Explorer A tool to improve developer efficiency by providing: Easy file navigation Smart linking when moving files Integration with Application Builder Deploy code to LabVIEW targets Access to source code control However, the project explorer does not duplicate files. LabVIEW Best Practice

Improved File Management Items View Files View If you move a file using the Files View, LabVIEW will be aware of the change and will update callers and preserve links automatically.

Managing Project Files Auto-populating Folders Update to reflect the contents of folders on disk Virtual Folders Customize how and where files are displayed

Project Dependencies LabVIEW automatically identifies the files required by each item in a project. Ensure you re using the correct version of a subvi Understand which files should be added to the project

LabVIEW Directory Structure vi.lib Contains libraries of built-in VIs, which LabVIEW displays in related groups on the functions palette. user.lib Directory in which you can save controls and VIs you create. LabVIEW displays controls on User Controls palettes and VIs on User Libraries palettes. instr.lib Contains any installed instrument drivers. These drivers will appear on the Instrument I/O palette.

Files on Disk and the LabVIEW Project DEMO

Dynamically Loaded Files Application-Specific, Statically Linked Code Startup VI SubVIs SubVIs SubVIs SubVIs SubVIs Dynamically loaded VIs are not in memory until they are loaded by the caller VI. Reduce load time of large caller VIs Optimize memory use Dyn Lib A Dynamic VI Calls Will not be listed in Project Dependencies

Tracking Dynamically Loaded Files Dynamically loaded files are not statically linked by any callers in the project. Any action that changes the path to a dynamically loaded file can prevent the project from loading the file. To ensure that dynamically loaded files are in the correct location: Group the files in a separate folder. Refer to the files using relative paths. If you need to move a project or distribute an application, remember to include the folder in which you grouped dynamic dependencies.

LabVIEW Search Order You cannot load two VIs with the same name in memory Multiple VIs with the same name can exist on disk. What happens when you load a VI from disk What about when a calling VI loads a subvi?

Load a VI From Disk Load analysis.vi from disk no VI with the same name open in memory? yes Load analysis.vi from disk click replace click view Use copy of analysis.vi in memory

Load a SubVI Calling VI attempts to load subvi no VI with the same name open in memory? yes find Look for subvi at location on disk missing Use copy in memory Use subvi at specified location Search for subvi in**: 1. vi.lib 2. user.lib 3. instr.lib 4. \Labview2012\Resource **default configuration

Cross-Linking Defined Calculator.vi Scientific Calculator.vi??? Analysis.vi Analysis.vi not found at expected location Simple Display.vi Analysis.vi Enlarged Display.vi

When Can Cross-Linking Occur? If you back-up working directories by creating multiple copies, you will end up with many copies of a given VI on your machine.

Cross-Linking Notification

Preventing Cross-Linking Add all files to a LabVIEW project Be aware of dependencies Avoid duplicating code to create multiple back-ups Share code between projects via reuse library Ensure unique VI names

Summary The project explorer is a valuable tool to organize applications and prevent common development pitfalls. Use Auto-populating and Virtual folders to customize organization Preserve linking by moving files with File View Group dynamically linked resources together Be aware of dependencies

Managing a Code Base with Source Code Control

Introducing Source Code Control Source Code Control is a tool used to track, store, and manage all files related to an application during development. dev 1 code checked in code checked out dev 2 dev 3 code checked out Central Code Repository code checked in dev 4

Why Use Source Code Control? Increase productivity by allowing multiple developers to contribute in a controlled environment Avoid code loss from overwriting Manage files throughout the development cycle Code revision history let s developers track bugs quickly & document changes Speed development with merge and diff tools Source Code Control is a best practice for any modern software development project, regardless of complexity or team size. LabVIEW Best Practice

What Tools Are Available? Recommended Perforce Subversion Additional Options Microsoft Visual Source Safe Microsoft Team Foundation Server Rational ClearCase PCVS (Serena) Version Manager MKS Source Integrity Seapine Surround SCM Borland StarTeam Telelogic Synergy

What Files Should I Put Under SCC? VIs Documentation o Track revisions to a Requirements Document with SCC Configuration Files Type Definitions What about the *.lvproj file itself?

Should I Put My *.lvproj File Under SCC Too? A LabVIEW *.lvproj file is an XML file that contains: Links to files contained in the project Settings for the project Virtual items such as build specifications It s critical that all developers have the most recent version of the *.lvproj file to ensure they have all of the latest dependencies and resources

Should I Put My *.lvproj File Under SCC Too? Anytime a file in the project is renamed or added, the *.lvproj file is altered and must be checked out of source code control, impacting all developers using the project.lvlib Individual files are VIs represented are also represented in the Project by name File by in a library project. name This only. means As long that anytime as the name a new of VI the is library added remains or removed the same, from the the project, contents the of the library.lvproj file can is change modified. without modifying the.lvproj file.

Best Practices for Managing Project Files with SCC Determine your application framework before development begins. Create placeholders for all future code to avoid altering the project file Use.lvlib files to avoid modifying the project file If a change needs to be made, have a single developer check out the project file and make the change Ensure that all other developers begin using the new version of the project file immediately

Considerations When Storing VIs Under SCC When you edit a VI, LabVIEW recompiles the VI code. LabVIEW may also recompile the callers of that VI to optimize code. Contents of a VI Front Panel Connector Pane Block Diagram Icon Graphical Source Code Compiled Code Inplacenes s Info Compiled Code

Considerations When Storing VIs Under SCC When you edit a VI, LabVIEW recompiles the VI code. LabVIEW may also recompile the callers of that VI to optimize code. Calling VIs that have not been modified by a programmer may indicate that they have been modified, and therefore require resubmitting to SCC. * modified by developer * NOT modified by Calling developer, VI but code was recompiled SubVIs

Considerations When Storing VIs Under SCC 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 Contents of a VI Separate.viobj file Front Panel Block Diagram Compiled Code Inplacenes s Info Connector Pane Icon Contains compiled code Limited to graphical source code

Deciding When to Separate Compiled Code from VIs Consider separating compiled code to: Simplify source code control Prepare VIs under SCC to be upgraded to a new version of LabVIEW Improve load time of VIs Do not separate compiled code: If you intend to run the VI using the LabVIEW Run-Time Engine. In this case, consider building a source distribution instead

Graphical Diff and Merge Utilities Since the source code for a VI is binary, specific comparison and merge utilities must be used. Diff and Merge Utilities LVCompare.exe LVMerge.exe Call directly from LabVIEW Development Environment SCC provider must support Microsoft API Call directly from SCC utility Must configure for command-line integration

Graphical Differencing

Graphical Merge Simplify your development cycle by using Graphical Merge to automate code recombination. Use this tool when modifications to a base VI are made by multiple individuals and saved separately.

Group Development Recommendations Use Source Code Control Document changes at each submission Use VI Compare to assess changes Use VI Merge to reconcile code contributions

Building and Distributing Reuse Libraries

Challenge How can I leverage common code among independent projects that all use different development cycles? What if the code I want to reuse is still being developed? How can I manage multiple revisions of reuse code? Copying common code is cumbersome and can lead to crosslinking Solution: Build a reuse library

Src 1 Src 2 Src 2 Src 1 Managing Reuse Libraries Reuse libraries are designed to be used across multiple projects. They may have a different development cadence than the projects they serve. Reuse Libraries should be: De-coupled from the projects they are used in Easily upgraded or downgraded when maintaining multiple versions of an application Application 1 Reuse Library Application 2

Source Distributions A collection of files that you can package and send to users. Contains VI files, which allows you to move multiple VIs between developers as a single file Create a directory or a zip file containing VIs Configure which VIs are included, can choose to exclude vi.lib, user.lib, and instr.lib

The Project Library A collection of VIs, typedefs, shared variables, palette files, and other files..lvlib file is an xml file that includes references to files that the library owns as well as library properties A.lvlib file does not contain the actual files it owns

When Should I Use a Project Library? Use a Project Library to: Encapsulate large sections of an application Organize a virtual hierarchy of items Qualify names of VIs to prevent cross-linking Modify contents without modifying the Project (*.lvproj) file Limit access to certain types of files by configuring the library to be public or private Good choice when distributing an API

Packed Project Library Files *.lvlibp A Packed Project Library is a precompiled.lvlib file that allows users to access public VIs in the library, but does not allow them to modify the code. Why should I use a *.lvlibp file? Reduce build time for stand-alone applications Deploy fewer files by packaging multiple VIs into a single.lvlibp file Distribute an API of public VIs that cannot be modified

Using the Project Library DEMO

Session Summary Organizing and Managing LabVIEW Applications Efficient Group Development Practices Managing Reuse Libraries

Software Engineering Best-Practices /largeapps Software Engineering Tools Development Practices LargeApp Community