Manage Software Development in LabVIEW with Professional Tools



Similar documents
Software Engineering for LabVIEW Applications. Elijah Kerry LabVIEW Product Manager

Software Engineering for LabVIEW Applications

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

The Essentials of File Management with LabVIEW

LabVIEW Advanced Programming Techniques

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

Model-driven development solutions To support your business objectives. IBM Rational Rhapsody edition comparison matrix

Java Programming (10155)

Synthetic Monitoring Scripting Framework. User Guide

Getting Started with the LabVIEW Mobile Module

EET 310 Programming Tools

Chapter 13: Program Development and Programming Languages

JOB DESCRIPTION APPLICATION LEAD

October 21 November 5 November 14 December 12. Washington DC Boston Chicago San Jose. ni.com

A Real Time, Object Oriented Fieldbus Management System

Symphony Plus S+ Engineering: Composer Harmony

Chapter 10 Practical Database Design Methodology and Use of UML Diagrams

Work Process Management

What's New in BarTender 2016

An Easier Way for Cross-Platform Data Acquisition Application Development

Configuration Management: An Object-Based Method Barbara Dumas

Complementing Your Web Services Strategy with Verastream Host Integrator

Getting Started with the LabVIEW Mobile Module Version 2009

LabVIEW Report Generation Toolkit for Microsoft Office

BarTender Integration Methods. Integrating BarTender s Printing and Design Functionality with Your Custom Application WHITE PAPER

IBM Rational Web Developer for WebSphere Software Version 6.0

Integrating the Internet into Your Measurement System. DataSocket Technical Overview

Source Code Translation

Professional Station Software Suite

Graphical Environment Tool for Development versus Non Graphical Development Tool

IBM Business Monitor. BPEL process monitoring

Computer Information Systems (CIS)

DataSocket Simplifies Live Data Transfer for LabVIEW

Visual Programming of Logic, Motion, and Robotics

Rational Reporting. Module 3: IBM Rational Insight and IBM Cognos Data Manager

2667A - Introduction to Programming

and Certification What Does It Take To Get Certified? Steven Hoenig NJ Business Unit Manager

Requirements Definition and Management Processes

Introduction to LabVIEW

OKLAHOMA SUBJECT AREA TESTS (OSAT )

Software Development Life Cycle

Accelerating your engineering workflow. Engineering solutions for industry

LabVIEW Report Generation Toolkit for Microsoft Office User Guide

ProfessionalPLUS Station Software Suite

IEC The Fast Guide to Open Control Software

EnduraData Cross Platform File Replication and Content Distribution (November 2010) A. A. El Haddi, Member IEEE, Zack Baani, MSU University

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS

Creating While Loops with Microsoft SharePoint Designer Workflows Using Stateful Workflows

2311A: Advanced Web Application Development using Microsoft ASP.NET Course 2311A Three days Instructor-led

The role of integrated requirements management in software delivery.

Sisense. Product Highlights.

Business Process Management IBM Business Process Manager V7.5

Change Management for Rational DOORS User s Guide

Tutorial: BlackBerry Object API Application Development. Sybase Unwired Platform 2.2 SP04

Siemens and National Instruments Deliver Integrated Automation and Measurement Solutions

Software Engineering. Session 3 Main Theme Requirements Definition & Management Processes and Tools Dr. Jean-Claude Franchitti

Desktop, Web and Mobile Testing Tutorials

PIE. Internal Structure

In: Proceedings of RECPAD th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal

WebSphere Business Monitor

McGraw-Hill The McGraw-Hill Companies, Inc.,

Automating Requirements Management 1

Chapter 13: Program Development and Programming Languages

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Distance-Learning Remote Laboratories using LabVIEW

Addressing the SAP Data Migration Challenges with SAP Netweaver XI

MICHIGAN TEST FOR TEACHER CERTIFICATION (MTTC) TEST OBJECTIVES FIELD 050: COMPUTER SCIENCE

Lab Management, Device Provisioning and Test Automation Software

Access to easy-to-use tools that reduce management time with Arcserve Backup

TestManager Administration Guide

IC 1101 Basic Electronic Practice for Electronics and Information Engineering

In this Lecture you will Learn: Implementation. Software Implementation Tools. Software Implementation Tools

Software INTERACT. MachineLogic. The Shortest Distance Between Man and Machine

Software change and release management White paper June Extending open source tools for more effective software delivery.

FileNet System Manager Dashboard Help

Chapter 10 Practical Database Design Methodology and Use of UML Diagrams

IBM Tivoli Composite Application Manager for WebSphere

INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency

Vanguard Knowledge Automation System

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience

Blackbird Management Suite Blackbird Group, Inc.

Release Notes. Asset Control and Contract Management Solution 6.1. March 30, 2005

Domains and Competencies

ni.com/vision NI Vision

Developing Software in a Private workspace PM PMS

A Comparison of Programming Languages for Graphical User Interface Programming

REMOTE DEVELOPMENT OPTION

Advanced Web Application Development using Microsoft ASP.NET

Integration for Open Text Fax Appliance and Open Text Fax Appliance, Premier Edition

Chapter 12 Programming Concepts and Languages

JReport Server Deployment Scenarios

Technical Training Module ( 30 Days)

Software solutions from Integrated Engineering to Integrated Operations

CORRELATE for Microsoft Sharepoint Windows Services

Using NI Vision & Motion for Automated Inspection of Medical Devices and Pharmaceutical Processes. Morten Jensen 2004

MD Link Integration MDI Solutions Limited

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages

WINDOWS AZURE AND WINDOWS HPC SERVER

Transcription:

Manage Software Development in LabVIEW with Professional Tools Introduction For many years, National Instruments LabVIEW software has been known as an easy-to-use development tool for building data acquisition and instrument control systems quickly. The NI LabVIEW graphical programming language, with its integrated graphical user interface, is especially suited for quickly prototyping systems. This is particularly evident with the introduction of Express VIs in LabVIEW 7 Express, which made it even easier to develop data acquisition systems with LabVIEW. However, in some ways the simplicity and speed of developing a system with LabVIEW has hidden the fact that LabVIEW is a complete programming language, suitable for handling large, complex applications. Contest 1. Applying a Structured Development Approach 2. Requirements Management 3. Designing a Large LabVIEW Application 4. Development Managing Files 5. Team-Based Development 6. Reviewing Code 7. Development Debugging 8. Conclusion Applying a Structured Development Approach Programmers creating mission-critical applications embedded control applications, industrial monitoring applications, and high-performance test systems cannot afford to introduce errors or uncertainty into their systems. For these kinds of applications, engineers must follow a very structured, and sometimes externally certified, programming process to ensure code quality and repeatability. Generally speaking, the situations when engineers need a structured programming process include the following: Building an especially large application Working as a team on the test code, requiring a structured approach to ensure team members can safely and efficiently work on different areas of the project without conflicts Working in an industry or application area that requires coding processes to be certified by a government agency (FDA, FAA, and so on) or by a customer (automotive manufacturer working with suppliers)

Many engineers may think that these situations require a traditional, text-based programming language to develop test code. In reality, a structured process for developing code in any language is independent of the language or tool used. This paper outlines common practices, built-in tools, and integration with external products that show how engineers can build large-scale or mission-critical systems requiring structured programming approaches. Requirements Management A key step in developing any large system is capturing the system requirements up front, before any serious development begins. System developers use many different approaches for capturing and documenting system requirements, from simple Microsoft Word or Excel documents to dedicated requirements management tools such as Telelogic DOORS or IBM Rational RequisitePro. The key to managing requirements is to clearly document what they are and associate them with the actual code that implements each. With NI Requirements Gateway (Figure 1), engineers can easily associate their requirements with specific LabVIEW VIs to track their implementation. With the gateway, engineers can do the following: Document requirements using text files; Microsoft Word, Excel, or Project; Telelogic DOORS; IBM RequisitePro; and other tools. Engineers also can use the out-of-the-box requirements manager that comes with the toolkit. Link each requirement to specific LabVIEW VIs or sections of code to easily track how each requirement is being implemented or tested. Trace requirements as they change. With NI Requirements Gateway, engineers can quickly see when a requirement changes and be alerted as to which VIs are associated with that requirement and must be verified to make sure they still meet the requirement.

Figure 1. NI Requirements Gateway Designing a Large LabVIEW Application Through design, developers make sure the software framework of a system meets the specified requirements. The design defines the system components and the interaction of those components. Developers also determine the external interfaces and tools to use in the project. Developers using LabVIEW to create large applications should spend time considering how to optimally convert their system requirements into code. Designing large applications in LabVIEW, which is no different than software design in any other language, entails dividing an application into logical pieces of manageable size. In fact, LabVIEW graphical programming makes top-down design of an application very straightforward and intuitive. In addition to graphical programming, LabVIEW provides methods developers can use to create solutions. These include: Native execution of textual.m file scripts for math Simulation diagrams Statecharts LabVIEW, which also includes event-driven and object-oriented programming approaches, is shipped with many design templates ideal for specific types of applications, such as

Producer/Consumer, Master/Slave, State Machines, and Event-Driven. Engineers can use these design templates as starting points when developing new software with LabVIEW. Development Managing Files During the development phase, LabVIEW users work to translate the software design into working LabVIEW code. As an application grows larger, developers need tools to help manage the files associated with the application, such as VIs, documentation, third-party libraries, data files, and hardware configuration settings. Engineers can use the LabVIEW Project Explorer (Figure 2) to manage such files. Figure 2. The LabVIEW Project Within a LabVIEW Project, developers can use folders to organize all the files that compose their applications. Project folders are virtual by default, but developers can synchronize them with physical directories in the file system. Once developers add a folder to a LabVIEW Project, they can change it from virtual to disk-synchronized (or vice versa) to maximize their file management and organization flexibility.

Team-Based Development Often multiple developers use LabVIEW when working together on the same project. In these cases, it is important to clearly define the interfaces to the code and identify coding standards to ensure the different components are easily understood and work well together. Developers can achieve this by: 1. Making code modular and providing standard interfaces 2. Storing master copies of the project files, including VIs, on a single server and instituting a source code control policy 3. Implementing coding standards within a group or company Code Modularity in LabVIEW Large LabVIEW applications require a modular development approach in which the overall system is divided into logical components. Multiple developers working together on a project need this modular approach and clearly defined programming responsibilities. LabVIEW is, by definition, a modular programming language. Each LabVIEW VI (or unit of code) can be run as a stand-alone application or be called by another VI as a subvi. A subvi corresponds to a subroutine call in text-based programming languages. Using modular subvis as part of a larger application simplifies the high-level VI block diagram and helps in the management of changes and system debugging. As mentioned earlier, LabVIEW includes an optional object-oriented programming approach. LabVIEW object-oriented programming uses concepts from other object-oriented programming languages such as C++ and Java, including class structure, encapsulation, and inheritance, so engineers can create code that is easier to maintain and modify without affecting other sections of code within the application. Engineers can use object-oriented programming in LabVIEW to create user-defined data types. Sharing Code with Source Code Control Software At the beginning of a software development project, engineers must implement a process to deal with changes and share work. This process is critical for projects with multiple developers working collaboratively. Source code control tools are the best solution to the problem of sharing code and controlling access to avoid accidental loss of data. Source code control software tracks changes to code modules and facilitates file sharing among multiple users and software projects. In addition to maintaining source code like VIs, the source code control software can manage other aspects of a software project such as feature specifications and other documents. LabVIEW provides integration with many industry-standard source code control providers such as Microsoft Visual SourceSafe, Perforce, IBM Rational ClearCase, PVCS Version Manager, MKS Source Integrity, and free, open-source software such as CVS. Through this integration, developers can check files in and out of source code control from within the LabVIEW environment, as well as obtain the revision history of the files. To check a VI in or out in LabVIEW once the source code control provider has been configured, a developer simply right-clicks on the file in the LabVIEW Project Explorer and selects the appropriate action from the right-click menu (Figure 3).

Figure 3. Source Code Control Options in the LabVIEW Project Although it is not recommended that more than one developer work on a VI at any given time, LabVIEW provides tools for dealing with situations where this occurs. Developers can use the built-in VI Diff and VI Merge features to visually identify edits made independently to the same code before merging the separate VIs into a single resultant VI. These tools are comparable to the diff and merge features commonly used by text-based programmers working in teams. Reviewing Code Developers using LabVIEW to create large applications are encouraged to submit their code to peer reviews. When a developer sits down for a code review, the developer walks the reviewer through the main path of the code and answers any questions. Some of the possible discussion topics include how easy the code architecture makes adding a new feature or implementing a change, how errors are reported and handled, and whether the code is modular enough. To prepare for a code review, developers need to take advantage of tools that can help automate code inspection and identify improvements. One example is the LabVIEW VI Analyzer (Figure 4) which analyzes LabVIEW code and steps the user through the test failures. The VI Analyzer contains more than 60 tests that address a wide range of performance and style issues. With the VI Analyzer, developers can enhance VI performance, usability, and maintainability. The VI Analyzer also generates reports so that developers can track code improvements over time.

Figure 4. LabVIEW VI Analyzer Development Debugging Debugging capabilities are key to a development environment, and LabVIEW has comparable debugging tools to those found in text-based programming languages, as well as unique tools only possible in a graphical programming language. These debugging tools include: Execution highlight, which shows the movement of data on the block diagram from one node to another using bubbles that move along the wires Single-stepping, which steps through a VI and shows each action of the VI on the block diagram as the VI runs

Breakpoints, which can be placed on a VI, node, or wire on the block diagram to pause execution at that location Probes, which display intermediate values on a wire as a VI runs Developers can also disable entire sections of graphical code in a method analogous to commenting out code in a text-based programming language. Disabling parts of the code without rendering the entire program inoperative is a valuable troubleshooting technique for dealing with nonfunctional or faulty code. LabVIEW provides this functionality through the Diagram Disable Structure (Figure 4). Each Diagram Disable Structure contains two or more frames at least one frame contains disabled code, which is wholly ignored by the LabVIEW compiler and not executed when the VI runs. A single frame can hold code that executes when the VI runs. Figure 5. LabVIEW Diagram Disable Structure Conclusion Despite many misconceptions, LabVIEW is often used within structured software engineering processes to create large systems. The overall process used to create large applications with LabVIEW is very similar to that used with text-based languages, and, in many cases, the tools provided by LabVIEW offer ease of use and productivity not available in any other development environment.