S5 Solutions | LabVIEW, ATE, Test Engineering Services
  • Services
    • LabVIEW Software Development >
      • Insource or Outsource
    • Automated Test Equipment (ATE)
    • Product Development
    • ———————————
    • On-Site or Remote
  • Case Studies
    • Medical
    • Aerospace
    • Industrial & Automotive
  • Knowledge Base
    • ATE >
      • What is ATE?
      • ATE Basics
    • LabVIEW & TestStand >
      • LabVIEW Basics
      • TestStand Basics
      • Learning LabVIEW
      • Getting Started with OOP
      • Seattle LabVIEW Developers Conference
    • ALOHA
    • MLA >
      • MLA Introduction
      • MLA Tutorial
    • Blog
  • Contact Us
    • FAQs
    • About Us
    • Contact Us

Choosing a LabVIEW Framework

7/24/2020

1 Comment

 
A framework is a set of code, strategies, and programming techniques that serve as a starting point for a program. Like the framework of a building, it provides the basic structure. You can then build the details of your application around that basic structure.
A framework provides some boiler plate code, saving time by giving you a jump start at development.

​It also standardizes the programming style, making it easier to read code from other developers. It is especially helpful in a team environment to have everyone on the team coding with similar styles and techniques.
Picture

​Typical Features of a Framework

  • Structure for creating loops, ideally supporting multiple parallel loops
  • Messaging scheme to allow loops to communicate and coordinate
  • Loop control strategy for launching and shutting down all the loops
  • Error handling and reporting strategy
  • Assists with documentation, version tracking

Consider Your Team

I saw this analogy a few years ago from Nancy Henson at NI and thought it was spot-on. She said there are three main types of teams:
  1. Superman - This is the super hero. He can leap any LabVIEW challenge in a single bound. He can solve any problem and is probably the only one that can understand his solution.
  2. Justice League - This is a team of elite super-programmers, able to take on any challenge. They are a well-oiled machine, working together at the peak of performance.
  3. Fellowship of the Ring - this is an eclectic team of varying abilities. There is a wizard that can make anything happen, but there are Hobbits, too.

I submit that you should think of every team as a Fellowship of the Ring. Most real-world teams fit this category. If you are Superman or one of the SuperFriends today, you may one day have to pass your code off to the next developer. Chances are, the next developer will not be as awesome as you are (because who is, right?). You will eventually have hobbits staring at your code.

Consider your team. Choose the right framework.
Picture
Lest you think that hobbits are bad, recall that Middle Earth would not have been saved without them.

​In one of the final scenes from Return of the King, the king bows to the hobbits, “My friends, you bow to no one.” Hobbits can do wonders if you give them the right tools.

​Characteristics of an Ideal Framework

  • Supports a wide range of applications
  • Supports a wide range of developers
  • Low bar to entry
  • Makes hobbits productive
  • Decreases on-boarding learning curve
  • Maximizes self-documentation, ease of reading, ease of navigation
  • Sets a standard but maintains flexibility
  • Easily extended 
  • Supports multiple developers in a team
  • Encourages SOLID design principles
  • Encourages and simplifies code testing and validation

​Available Frameworks

​There  are a number of great options of frameworks available in the LabVIEW community, most of which are free.

NI Queued Message Handler

​This is a template available directly in LabVIEW from the “New…” menu

Delacore DQMH

​https://delacor.com/products/dqmh/
“The DQMH® is a free product based on the National Instruments Queued Message Handler Project Template (NI QMH). The DQMH expands on the NI QMH by providing safe, event-based message handling and scripting tools to make development easy, encourage same style between different developers in the same project and improve efficiency.”

Actor Framework

This is an NI-designed and supported framework. It is widely used and very capable for supporting large applications. A lot of work at the Certified Architect level has been done using the Actor Framework. However, it has a steeper learning curve than the others and is the least hobbit-friendly.

JKI State Machine

​https://resources.jki.net/state-machine
“The JKI State Machine for LabVIEW is an easy-to-use yet powerful state machine template. It is the very same template that is used by the JKI team, nearly every day, and is the result of years of refinement by our team of LabVIEW experts.”

​MLA

http://www.s5solutions.com/mla.html
This is one of our own frameworks here at S5 Solutions. This is a simplified version of our ALOHA architecture that is appropriate for small to medium sized projects.

ALOHA

http://www.s5solutions.com/aloha.html
Another S5 offering, ALOHA is a modular application framework. ALOHA ties the modules together into an application. ALOHA uses an actor-based programming paradigm, but hides the Object-Oriented back end with a familiar but enhanced Producer-Consumer style.

Summary

​Using a framework will give you and your team a jump start with every new project. It will give you a good foundation so you can spend your time and effort focusing on your problem domain. It can help your team work together, making your code more consistent and easier to support.
1 Comment
Megan P link
7/10/2024 10:01:19 am

Grreat read thank you

Reply



Leave a Reply.

    Categories

    All
    Events
    GUI
    LabVIEW
    Maker
    Project Success
    Special Interest

    RSS Feed

Seattle Area HQ
​

425.298.7447
​[email protected]
S5 Solutions

Contact Us
Case Studies
Services

Custom LabVIEW Development
Automated Test Equipment (ATE)
Product Development

Products
​

​ALOHA
​MLA


National Instrument Alliance Partner
Custom Software Development Alliance
© 2025  S5 Solutions, Inc.    - Privacy Policy -   Employee Site
  • Services
    • LabVIEW Software Development >
      • Insource or Outsource
    • Automated Test Equipment (ATE)
    • Product Development
    • ———————————
    • On-Site or Remote
  • Case Studies
    • Medical
    • Aerospace
    • Industrial & Automotive
  • Knowledge Base
    • ATE >
      • What is ATE?
      • ATE Basics
    • LabVIEW & TestStand >
      • LabVIEW Basics
      • TestStand Basics
      • Learning LabVIEW
      • Getting Started with OOP
      • Seattle LabVIEW Developers Conference
    • ALOHA
    • MLA >
      • MLA Introduction
      • MLA Tutorial
    • Blog
  • Contact Us
    • FAQs
    • About Us
    • Contact Us