|Architecting an Application
||In this lesson, you will learn how to design and document scalable, readable, and maintainable software architectures.
- Characteristics of scalable, readable, maintainable architecture
- Documenting a software architecture
- Characteristics of a scalable design pattern
|Designing an API
||You will learn how to design a consistent, organized, and usable API that may reused in your software architectures and distributed to several developers.
- API design techniques
- Polymorphic VIs for an API
- Project libraries for API design
- Passing data in an API
|Multiple Processes and Inter-Process Communication
||In this crucial lesson, you learn about foundational APIs and design patterns and how they apply to several essential advanced design patterns. You also learn several advanced methods for communicating between multiple processes and their tradeoffs. Exercises and tools are general enough that you can use them in your own applications.
- Storing data, streaming data, and sending messages
- Foundational native LabVIEW APIs for messaging (queues, notifiers, user events, data value references)
- Foundational design patterns (FGV, various state machines, producer/consumer, various queue-driven message handlers)
- Scaling foundational design patterns for multiple processes, includingclient/server
- Asynchronous dynamic processes
- By reference interprocess data storage (single element queues, data value references)
- Several interprocess communication methods
- Exposure to relevant native LabVIEW APIs, advanced design patterns, and reference architectures
|Advanced User Interface Techniques
||This lesson covers how to create an architecture that provides a modular, scalable, and extensible user interface.
|Introduction to Object-Oriented Programming in LabVIEW
||In this lesson, you will learn how using the encapsulation and inheritance capabilities of LabVIEW Object-Oriented Programming can create scalable and extensible software architectures.
- Introduction to LabVIEW classes and related terminology
- Using encapsulation to restrict access to class data
- Using inheritance and dynamic dispatch to implement scalable polymorphism at run time.
||You will learn how to create a plug-in architecture that allows you to add features without changing your main code.
- Plug-in architecture using VI Server
- Plug-in architecture using LVOOP
|Tips, Tricks, and Other Techniques
||This lessons covers various tips, tricks, and techniques to help you create your architecture
- Variant attributes
- Callback VIs with user events
- VI Scripting
- Drop-in VIs