Choosing the Right Software Application Development Environment (ADE)

Publish Date: Jun 30, 2016 | 12 Ratings | 2.08 out of 5 | Print


This white paper provides guidance on choosing the right software application development environment (ADE).

Table of Contents

  1. Introduction
  2. Factors to Consider When Selecting an ADE
  3. LabVIEW
  4. LabWindows/CVI
  5. Microsoft Visual Studio .Net (C++, Visual Basic .Net, C#, and ASP.NET)
  6. Relevant NI Products and Whitepapers

1. Introduction

Application development environments (ADEs) play a critical, visible role in a test software framework. With these tools, the system developer designs and integrates the system that takes measurements, displays information to the end user, connects with other applications, and much more. Due to the ever increasing role of software in test system implementation, system developers will spend most of their development time working with an ADE. It is critical to select an ADE that not only is easy to use, but also can support multiple platforms and integrate easily with measurement and control services such as drivers. Other features that should be considered when selecting an ADE for the development of your test system are its presentation and reporting features, how protected you are from the obsolescence of the product, and what kind of training and support is available worldwide. This paper discusses how three different ADEs – NI LabVIEW, NI LabWindows/CVI and Microsoft Visual Studio .Net – compare on these characteristics.

Back to Top

2. Factors to Consider When Selecting an ADE

Factors to Consider When Selecting an ADE

Ease of Use
Because the ADE is where the heart of an automated system is developed, ease of use in these tools is critical to the productivity of software engineer. Ease of use goes beyond how quickly someone can get up and running. With easy-to-use ADEs, developers can easily integrate processing routines with multiple measurement devices, create sophisticated user interfaces, deploy and maintain an application, and modify the application as product designs evolve and system needs expand. Other features that should be included with the ADE include extensive documentation and example code.

Measurement and Analysis Capabilities
It is critical that the ADE used to develop a test system can seamlessly manage and process measurements. To do this effectively, the ADE should incorporate measurement data types directly in the environment so that the data is easy to use in additional processing routines. For maximum development productivity, the ADE should include comprehensive statistical and numerical analysis functions, as well as high-performance signal processing and control algorithms common in measurement applications.

Integration with Measurement and Control drivers
Too often, developers of test systems assume that the existence of a device driver alone is sufficient for effectively integrating their measurement device. The existence of a driver is not enough; measurement and control drivers should be integrated as seamlessly as possible with the ADE. In the ideal case, the software that controls the measurement devices is transparent, appearing only as part of the ADE. This ideal implementation guarantees maximum flexibility in development and a scalable architecture that organizations can deploy on all of the platforms targeted by the ADE.

Training and Support
The ease of use of an ADE can go so only far in making it simple for new users to learn the application. Hence, the ADE vendor should provide manuals and online training so engineers can quickly learn how to use their product. Advanced users might also need classroom training to further their knowledge and learn more about system level design concepts. This classroom training should give developers the opportunity to attain proof of their knowledge by going through a certification process. Another consideration when selecting an ADE is the vendor support accessible to when developing your application, such as phone and e-mail support. Furthermore, if you are going to standardize on an ADE worldwide, you will want to consider whether your engineers around the world will have access to support in their own language.

Platform Independence
Test software applications today target many different architectures. It is important that whatever ADE you choose can be flexible enough to support all these different architectures as seamlessly as possible. Different OSs such as Windows, Linux® and Mac OS X can offer different benefits depending on the application. Engineers should be able to port their code from one platform to the other. If your ADE is not compatible with these other platforms, you will need to use different ADEs for different projects and spend valuable time porting your existing intellectual property from one platform to the other.

Presentation and Reporting Features
Test applications present many challenges in the area of presentation and reporting because of their emphasis on the graphical representation of data. The ADE should have multiple visual components for data visualization such as charts, graphs, knobs, and meters. Reporting should also be easy in order to facilitate the communication of the information acquired by the system. Some of the most popular reports, such as MS Word and MS Excel, should be easy to generate. The communication of results should also be easy to implement by either publishing the application on the Web or logging information to a database.

Protection against Obsolescence
Standardizing on an ADE for the development of your test system is a big commitment. It is important that your investment is protected from the obsolescence of the product. One of the characteristics you should consider is the product track record of integrating with the latest software technologies and its commitment to protecting you against discontinuous shifts in test software development. Furthermore, the product should offer routine upgrades to add new functionality.

Figure 1. Different ADEs provide different benefits and challenges when used to develop your test system.

Back to Top

3. LabVIEW

LabVIEW is a graphical development language that helps engineers and scientists create flexible, scalable test applications rapidly and at minimal cost. LabVIEW uses a graphical development paradigm instead of relying on text based programming as implemented by other programming languages such as Visual Basic, C++ and C#. The LabVIEW graphical dataflow language and block diagram approach naturally represent the flow of your data and intuitively map user interface controls to your data, so you can easily view and modify your data or control inputs. Figure 1 depicts the block diagram of an application and its respective front panel written in LabVIEW.

Figure 2. The LabVIEW 8 ADE can quickly and clearly development test applications.

LabVIEW also includes features to facilitate access to the extensive documentation included with the product. With the Context Help feature you and take advantage of the graphical nature of LabVIEW to access subVI documentation by simply hovering over the subVI with the cursor. LabVIEW also emphasizes the use of the hundreds of example programs available with the product and online as a means of demonstrating and teaching different features.

Despite the sophistication of the underlying algorithms, LabVIEW analysis tools are easy to use. More than 15 Express VIs for data analysis, such as the Spectral Measurements Express VI, reduce the complexity of implementing analysis in your application through interactive configuration dialogs in which you can preview analysis results immediately.

Figure 3. Signal analysis Express VIs are powerful, easy-to-use programming tools for analysis in your application.

These and other measurement analysis tools can input real-world, time-domain signals directly from data acquisition hardware and provide results ready for charting, graphing, or further processing. With these functions, you easily can determine signal characteristics such as DC/rms levels, total harmonic distortion (THD/SINAD), impulse response, frequency response, and cross-power spectrum.

One of the biggest strengths of LabVIEW is its tight integration with measurement and control drivers. LabVIEW simplifies connecting to and communicating with thousands of instruments from hundreds of vendors. With LabVIEW, you can quickly acquire data from GPIB, serial, Ethernet, PXI, USB, and VXI instruments using instrument drivers, interactive assistants, and built-in instrument I/O libraries. Furthermore, LabVIEW includes easy-to-use libraries and interactive assistants to communicate with NI modular instruments and data acquisition products.

National Instruments offers LabVIEW training for any level of expertise. While basic courses are targeted towards nonprogrammers and existing developers who want to learn the product, intermediate and advanced users will also find content that is useful to their level of expertise. Onsite courses help organizations train a large number of developers quickly without having to leave the company. Online and self-paced courses target those developers who wish to increase their knowledge on their own time and at their own pace. The extensive training opportunities for LabVIEW are complemented by the worldwide support available to users. National Instruments application engineers provide support for LabVIEW from local branches around the world. This means that engineers will be able to receive phone, e-mail, or forum support for LabVIEW in their language wherever they are located.

Although LabVIEW is usually seen as a MS Windows application, the original product ran on the Macintosh. National Instruments ported LabVIEW to Windows as it began to dominate the desktop PC industry. The LabVIEW commitment to new platforms continues today. LabVIEW continues to run on both Windows and Mac OS X but now also runs on Linux because of its increasing popularity among customers. Being able to run LabVIEW VIs on different OSs means that no matter which computing platform you need to work with, you will be able to use your NI LabVIEW knowledge. LabVIEW can even run on other targets such as real-time systems, FPGAs, and DSPs.

The presentation and reporting features of LabVIEW are a big part of why the ADE is so well suited for test software development. LabVIEW contains multiple graphs, charts, meters, knobs, and switches both in 2D and 3D in order to facilitate the representation of measurement data graphically. The ADE also includes the LabVIEW Report Generation Toolkit, which facilitates the creation of reports in MS Word and Excel format. If it is necessary to communicate results by exporting the application through the Web, LabVIEW Remote Panels can be used to display the front panel over the Web on any browser. On the other hand, if the results of your measurements need to be logged to a database, the LabVIEW Database Connectivity Toolkit provides a set of easy-to-use tools with which you can quickly connect to local and remote databases and perform many common database operations.

Finally, National Instruments has emphasized throughout time that it is committed to help its LabVIEW customers fight obsolescence. Even though a large amount of development effort has been focused on adding new features and integrating new technologies, running code from previous versions on newer version has always been a priority. Running older code on newer versions of the product means that the valuable resources that were dedicated to creating previous applications will not be wasted and can bridge the gap to newer development.

Back to Top

4. LabWindows/CVI

LabWindows/CVI is a proven test and measurement ANSI C development environment that greatly increases the productivity of engineers and scientists. Figure 4 displays the LabWindows/CVI development environment.

Figure 4. LabWindows/CVI 8.0 features a complete workspace you can use to quickly develop, debug, and manage large applications.

Engineers and scientists use LabWindows/CVI to develop high-performance, stable applications in the manufacturing test, military and aerospace, telecommunications, design validation, and automotive industries. LabWindows/CVI streamlines development in these areas with hardware configuration assistants, comprehensive debugging tools, and interactive execution capabilities that developers can use to run functions at design time.

Toolkits such as the Advanced Analysis Library complement the analysis libraries included with LabWindows/CVI to help engineers make analyze their measurement data. The LabWindows/CVI Advanced Analysis Library offers a comprehensive set of functions for analyzing your data. With these powerful analysis routines, you can easily convert raw data into useful information and build test applications. The Advanced Analysis Library includes functions for signal generation, one-dimensional 1D and 2D array manipulation, complex operations, signal processing, statistics, and curve fitting.

LabWindows/CVI is an industry leader in instrument control and connectivity, through an Instrument Driver Network of more than 4,000 instrument drivers from more than 200 vendors. You can use these drivers to easily program instrument control applications. With Instrument I/O Assistant, you can generate code to communicate with devices such as serial, Ethernet, and GPIB instruments without using an instrument driver. Instrument I/O Assistant offers a simple interface for quickly prototyping applications and autoparsing instrument data without any programming. You can easily import the code generated into any existing application, which removes the tedium of writing instrument connectivity, basic communication, and string parsing code. In addition to the integrated NI-DAQmx Libraries, LabWindows/CVI also provides DAQ Assistant, an interactive interface to the data acquisition driver framework.

The training and support structure available for LabVIEW, is also present for LabWindows/CVI. LabWindows/CVI has training courses that target different levels of expertise with the product. Onsite courses are also available for organizations who need to train a large number of developers quickly without having to leave the company. Options are also available for engineers who wish to increase their knowledge on their own time and at their own pace in the form of online and self-paced courses. To complement the training opportunities for LabWindows/CVI, worldwide support is provided by National Instruments application engineers from local branches around the world.

By maintaining the backward compatibility of LabWindows/CVI, National Instruments helps to protect you from obsolescence. Not only can you run C code developed many years ago, or LabWindows/CVI code created in previous version of the product, but you can also have the applications run faster with new optimizing compiler integration. The LabWindows/CVI commitment to backward compatibility is critical to industries that value longevity and continuity such as military and aerospace.

Back to Top

5. Microsoft Visual Studio .Net (C++, Visual Basic .Net, C#, and ASP.NET)

Visual Studio .NET provides a very powerful ADE by supporting four programming languages – C++, Visual Basic .Net, C# and ASP.NET. The option to select any of these programming languages means that you can use one tool while taking advantage the expertise of your developers even if their knowledge focuses on different programming languages. Applications developed in Visual Studio .NET can be run on a PC as well as through the Web by using the ASP.NET language.

The Visual Studio .Net provides functionality to develop in different programming languages such as C++, Visual Basic .Net and C#. By enabling these programming languages to compile to the Common Language Runtime you can add libraries developed in different languages. On the other hand, the fact that the .Net platform works only with Microsoft Windows means that you are very limited in the number of OSs that can run your application. Furthermore, porting your application to another OS in the future might require rewriting the application in a different language.

By default, Visual Studio .NET does not include any functionality to integrate with measurement and control drivers or perform any analysis operations. Components, such as those offered by NI Measurement Studio, can provide access to measurement and instrument drivers and analysis functionality. These components increase the integration of the ADE with instrument and measurement drivers by providing interactive assistants to generate code automatically. In contrast, there are certain features of the .NET framework that make it inherently difficult to communicate with certain instruments. The .NET framework executes code in the Common Language Runtime, which isolates you from accessing the hardware. Unable to access the hardware, it is very difficult to write directly to instrument registers. In order to do this, one would have to create a DLL and then call it from a .NET application.

Visual Studio .NET offers few presentation and reporting capabilities by default. Out of the box, the ADE provides enough features to generate a standard Windows application by offering text boxes, combo boxes, list boxes, buttons and other components that are needed to create a basic application. In order to use more powerful components to display data such as graphs and charts, you will need to purchase a set of components for this particular application. This problem is also repeated in the lack of reporting tools for any of the programming languages in Visual Studio .NET. On the other hand, the .NET framework includes powerful features for reporting by storing information to a database. ADO .NET, a rich library of database functionality, can be used to communicate with and perform operations on many different databases.

Because the focus of .NET lies in business, IT, and Web-based applications instead of automated test, guaranteeing the longevity of the programming language and avoiding discontinuous shifts is not a priority. Applications that focus on IT can have a life cycle of a few months versus years in the case of automated test. For example, even though it is possible to integrate DLLs into the .NET, it requires the developer to manually invoke the function and guarantee that the DLL data types match those in .NET. At first this might not seem very challenging, but if you need to communicate with hundreds of functions of an instrument driver, this process can be very time-consuming. On the other hand, incorporating your existing ActiveX components into a .NET automated test application is easier than incorporating DLLs. Visual Studio .NET can generate wrappers around your ActiveX components to expose them as .NET objects.

Back to Top

6. Relevant NI Products and Whitepapers

National Instruments, a leader in automated test, is committed to providing the hardware and software products engineers need to create these next generation test systems.



Test System Development Resource Library

National Instruments has developed an extensive collection of technical guides to assist you with all elements of your test system design. The content for these guides is based on best practices shared by industry-leading test engineering teams that participate in NI customer advisory boards and the expertise of the NI test engineering and product research and development teams. Ultimately, these resources teach you test engineering best practices in a practical and reusable manner. Download guides from the Test System Development Resource Library.

Other Related Links:

Back to Top

Bookmark & Share


Rate this document

Answered Your Question?
Yes No