• No results found

Software Engineering for LabVIEW Applications

N/A
N/A
Protected

Academic year: 2021

Share "Software Engineering for LabVIEW Applications"

Copied!
44
0
0

Loading.... (view fulltext now)

Full text

(1)
(2)

Topics

Software Quality Standards

ISO 9000, CMMI, DO-178B, FDA CFR Part 820

Software Engineering Process (SEP)

Validation, Requirements-Based Testing, Debugging, Automated Deployment

Software Configuration Management (SCM)

(3)

Why Is Software Engineering a Concern?

Large systems require structured development

practices

Companies have to mitigate risk of systems by

demonstrating product quality

The processes are the same, but the

methodologies and tools may be different

NI LabVIEW software is commonly used for rapid

(4)

Software Quality Standards

ISO 9000

Voluntary certification standard for consistent processes

CMMI

Process improvement model sponsored by the National

Defense Industrial Association

DO-178B

FAA standard for avionics software

FDA 21 CFR Part 820

Medical device standard

Company-wide certification standard

(5)
(6)

Sanarus Medical

Challenge

Noninvasive treatment using

cryogenics

Liquid nitrogen freezes tumors from

within the body

Critical specifications

Alpha Prototype in 4 months with 1

engineer

(7)

OptiMedica

PASCAL Photocoagulator

Panretinal laser

photocoagulation treating

retinal diseases

Previously a manual process

Painful for the patient

Controlled by one NI

PCI-7833R and LabVIEW FPGA

Winner of the 2007 Medical

Design Excellence Award

(8)

Software Engineering Process

(SEP)

Refers to a model for the software

development process called the “development

life cycle”

There are several SEP models, such as

waterfall, spiral, and agile, but they all share

common ground

(9)

Software Configuration Management (SCM)

Basic SEP Model

Process is independent of programming language

Demonstrate a particular process for certification

Automate this process for

LabVIEW

with toolkits and add-ons

Apply SCM throughout process

Requirement Gathering Application Architecture Development and Debugging Testing and Verification Deployment

Development Life Cycle

(10)

Software Configuration Management (SCM)

Software Configuration Management (SCM)

Configuration Management Goals

Provide central repository of code

Manage multiple developers

Detect and resolve code collisions

Track behavior changes

Identify when changes are made and who made them

Ensure everyone has latest copy of code

Back up old code versions

Manage

all

files, not just source code

National Instruments Confidential

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

(11)

Software Configuration Management (SCM)

Configuration Management Tools

LabVIEW Project Explorer provides system level application

view

Graphical merge and graphical differencing

Integrate third-party source code control providers

NI Requirements Gateway

National Instruments Confidential

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

(12)

SCC Integration with LabVIEW

Third-party source control integration

with the following:

Microsoft Visual SourceSafe

Microsoft Team System

Perforce

Rational ClearCase

PCVS (Serena) Version Manager

MKS Source Integrity

Seapine Surround SCM

Borland StarTeam

Telelogic Synergy

ionForge Evolution

Subversion**

Access SCC tools via LabVIEW Project

Project specific settings*

**Subversion is open source and requires plug-in

(13)

Track Changes

View Revision History

Integrate with SCC

Merge Graphical Code

Manage Files and Links

System-Level View

(14)

Worldwide RF Test System

International team of designers and engineers testing complex devices using LabVIEW

Problem

Managing large application development (14,000+ VIs) in LabVIEW

across contents and teams of developers (50+)

Solution:

Software Engineering Waterfall Process Model

Source code control

(15)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

Phases of Development in SEP

(16)

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

Goals

Agree on what the application will do

Define which behaviors are acceptable and safe

Define tests for individual components

(17)

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

Practices

• System-level requirements are mapped to

specifications for unit-level functionality

• Requirements documents are commonly

stored in programs such as Microsoft Word,

Adobe PDF, or Telelogic DOORS

• Code is documented as fulfilling specifications

within requirement documentation

(18)

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

Tools

Telelogic Doors

Microsoft Word/Excel

NI Requirements Gateway

(19)

Requirements Traceability Solution from NI

Dedicated Interfaces

NI Requirements

Gateway

Requirements

Traceability

Capture

Navigation

NI TestStand

LabVIEW

LabWindows™/ CVI

MATRIXx

Dedicated Interfaces

DOORS

RequisitePro

The mark LabWindows is used under a license from Microsoft Corporation. Windows is a registered trademark of Microsoft Corporation in the United States and other countries.

(20)

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

Goals

• Determine how code will be divided based on

functionality

• Develop standard interfaces and APIs for code

modules

(21)

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

Practices

• Build code foundation using established design

patterns

• Agree on coding style

• Develop framework or skeleton of all code and

tests

(22)

Tools

UML tools

LabVIEW design patterns

Object-oriented design

LabVIEW Statechart Module

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

(23)

LabVIEW Design Patterns

Important architecture concept

Common, easily recognized frameworks

Improves code readability

Avoid “reinventing” the wheel

Take advantage of more than 20 years of work

(24)

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

Goals

• Implement the application

• Fulfill requirements documentation

• Detect and resolve incorrect code behavior

• Pass functionality test parameters

• Abide by style guidelines

(25)

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

Practices

• Group development

• Manual peer code review

(26)

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

Tools

Constantly compiling

Highlight execution

Breakpoint manager*

Diagram cleanup*

National Instruments Style Guideline

VI profiler

Coercion (memory) dots

Conditional disable structures

VI Analyzer Toolkit

(27)

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

G

oals

• Verify that code behaves correctly according to requirements

• Validate that the system performs as the user expects

• Ensure 100 percent code coverage

• Exhaustive coverage tests all possible code execution

combinations

(28)

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

Practices

• Requirements-based testing using test frameworks

• Test frameworks generate reports based on output and

code coverage

• Failed tests return application to development phase

• White box testing for branch analysis

(29)

Tools

Custom-test frameworks

NI Requirements Gateway

More coming soon …

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

(30)

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

Goals

• Determine repeatable process

• Deploy to determine behavior on other targets

• Deliver a product to customer or end user

• Make every installer and driver required for operation easily

portable

(31)

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

Practices

Develop build process early

Test using run-time engine

Check for dynamically loaded subfolders

Design with end product in mind

Plan for final paths

Distribute end product using installers

(32)

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

(33)

LabVIEW

Tools for SEP and SCM

NI Requirements

Gateway

LabVIEW

Statechart

Module

VI Analyzer

LabVIEW

Application

Builder

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

(34)

Tools for the Development Process

Requirements

Gateway

LabVIEW

Statechart

Module

VI Analyzer

LabVIEW

Application

Builder

Unit Test

Framework

Desktop

Execution Trace

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

(35)

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development & Debugging Testing & Verification Deployment

Application

Builder

Statechart

Module

VI Analyzer

Unit Test

Framework

Desktop

Execution Trace

NI Requirements

Gateway 1.1

NI Developer Suite Bundle

(36)

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

What Is the DETT?

Debugs and optimizes complex applications

Detects incorrect behaviors such as memory leaks

Easily traces actions to responsible code

Monitors deployed applications for correct behavior

Optimizes multithreading in LabVIEW

Troubleshoots complex applications and monitors events

and resource allocation during execution

(37)

What Is the Unit Test Framework?

Generates and executes tests for VIs quickly and easily

Ensures code is safe, reliable, and fault tolerant

Tracks percentage of code that has been executed

Defines tests outside of development environment

Views coverage of test requirements

Software Configuration Management (SCM)

Requirements Gathering Application Architecture Development and Debugging Testing and Verification Deployment

Develops and validates reliable, safe, and fault tolerant

applications using graphical programming

(38)
(39)

Fluidnet

IV Drip Infusion Pump

Algorithm developed

using LabVIEW for

Windows OS and NI Data

Acquisition

Very slow flow rates

Simple user interface

Must be fail safe

Rapid time to market

Deployed Blackfin

solutions by Boston

Engineering

(40)

Nuclear Reactor Control System

VI Control Systems and Sandia National Laboratories

Mission-critical application

controls reactor

LabVIEW and NI Compact

FieldPoint replaced existing

system

Intuitive user interface for

monitoring

Nine networked computers

running LabVIEW constantly

monitor one another

(41)

Oral Feeder for Premature Infants

Deployed commercial FDA Class II

medical device using LabVIEW and

NI CompactRIO

The software architecture was

developed with the LabVIEW

Real-Time, LabVIEW FPGA, and LabVIEW

Statechart modules

Use an NI Single-Board RIO device to

create a more cost-optimized version

for high-volume deployment

The NTrainer System Helps Premature Babies Learn to Feed Orally and Greatly

Increases Chances for Survival

(42)

LabVIEW is a programming language

LabVIEW is used for large,

mission-critical applications

Much of LabVIEW and other NI tools are

developed in LabVIEW

NI develops LabVIEW using an ISO-9001

accredited process

LabVIEW integrates with tools and

practices for SEP and SCM

Create installers in LabVIEW to deploy

professional, stand-alone software

(43)

ni.com/labview/power

Large, mission-critical user solutions

Software engineering best practices

Frequently asked development questions

(44)

ni.com/labview/power

Configuration Management with LabVIEW

Source Code Control, Version Tracking, Revision History, Group Development

Software Engineering Practices for LabVIEW

Validation, Requirements-Based Testing, Debugging, Automated Deployment

Comparing LabVIEW to C/C++

References

Related documents