This session will explore how popular software design patterns (ie: Command Pattern and Factory Pattern) can be applied in LabVIEW to develop complex applications that require scalability, extensibility and maintainability. Specifically, we will cover the use of a factory pattern to dynamically load and run plugins within a framework and the use of the command pattern to extend the functionality of a typical queued message handler / state machine. These concepts will be combined to illustrate an example of a object-oriented hardware abstraction layer in LabVIEW.
This technical manual demonstrates some of the most important object-oriented design patterns and how they can be used in LabVIEW to improve the scalability and maintainability of an application. A functionally equivalent version of the application that was built using a classic producer consumer queued message handler (PC-QSM) pattern is also provided in order to relate the example to a well-known LabVIEW approach. This application also demonstrates how proper architecture can enable a highly modular application that enables multiple people to work on separate components without impacting or breaking un-related components. This modularity is made possible by the fact that several dependencies are dynamically loaded at run-time, including the plugins and the images. In addition, the menu interface was designed separate of this application and is another independent resource.
10/12 - New version of manual and demos released for LabVIEW 2012. One installer places everything in the 'Create Project' dialog.
7/11 - Updated for NIWeek 2011
3/11 - Updated for Developer Days 2011
Requires LabVIEW 2012 or later
Download and install the VI Package Manager (VIPM) from here
Run the configuration file with VIPM
Click 'Create Project' from the Getting Started Window