Software Engineering for LabVIEW Applications

Similar documents
Software Engineering for LabVIEW Applications. Elijah Kerry LabVIEW Product Manager

Software Engineering Best Practices. Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer

Medical Device Design: Shorten Prototype and Deployment Time with NI Tools. NI Technical Symposium 2008

The Essentials of File Management with LabVIEW

Manage Software Development in LabVIEW with Professional Tools

Source Code Control and Software Reuse

October 21 November 5 November 14 December 12. Washington DC Boston Chicago San Jose. ni.com

and Certification What Does It Take To Get Certified? Steven Hoenig NJ Business Unit Manager

NI Global Services. Innovate With Confidence Reduce Development Time Minimize Long-Term Maintenance Costs. ni.com/services

NI Platform for automotive measurement and test applications

Model-driven development solutions To support your business objectives. IBM Rational Rhapsody edition comparison matrix

BUILD VERSUS BUY. Understanding the Total Cost of Embedded Design.

Getting Started with the LabVIEW Mobile Module

How To Secure Your Computer With Libreware Libreroview (Windows) And Libreros (Windows 2) (Windows 3.5) (For Windows) (Powerpoint) (Networking)

OSA-RTS SPHE H RE R A A

ni.com/vision NI Vision

Pick a Palette and Beyond: REPORT GENERATION with LABVIEW

SCADE System Technical Data Sheet. System Requirements Analysis. Technical Data Sheet SCADE System

PRAGMA ENGINEERING Srl. Next-Generation ATS (Sistemi ATE di Nuova Generazione)

Getting Started with the LabVIEW Mobile Module Version 2009

Enhancing The ALM Experience

Integrating CaliberRM with Software Configuration Management Tools

Introduction to Programming Tools. Anjana & Shankar September,2010

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

Karunya University Dept. of Information Technology

Demand & Requirements Management Software Development QA & Test Management IT Operations & DevOps Change Management Agile, SAFe, Waterfall Support

An Easier Way for Cross-Platform Data Acquisition Application Development

Chapter 13: Program Development and Programming Languages

Technical Data Sheet SCADE R17 Solutions for ARINC 661 Compliant Systems Design Environment for Aircraft Manufacturers, CDS and UA Suppliers

To introduce software process models To describe three generic process models and when they may be used

Integrity 10. Curriculum Guide

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Application Lifecycle Management White Paper. Source Code Management Best Practice: Applying Economic Logic to Migration ALM

Certification of a Scade 6 compiler

Test Executive And Development Studio Integrated Test Executive and Application Development Environment

Getting Embedded C Applications to Market Faster using the Model-Driven Development Technologies of Modeling, Simulation and Code Generation

Basics of Simulation Technology (SPICE), Virtual Instrumentation and Implications on Circuit and System Design

Source Control Guide: Git

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Theme 1 Software Processes. Software Configuration Management

Demand & Requirements Management Software Development QA & Test Management IT Operations & DevOps Change Management Agile, SAFe, Waterfall Support

Coverity Services. World-class professional services, technical support and training from the Coverity development testing experts

Embedded System Deployment and Management

Solving the Source Control Issue David Shannon, Amadeus Software Limited

ISA CERTIFIED AUTOMATION PROFESSIONAL (CAP ) CLASSIFICATION SYSTEM

Verification and Validation of Software Components and Component Based Software Systems

Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com

The Laserfiche Rio Advantage. Automate, Optimize and Transform Business Processes. Unlimited document repositories and servers

TestStand Certification Overview

Enhanced Diagnostics Improve Performance, Configurability, and Usability

Enhance visibility into and control over software projects IBM Rational change and release management software

Medical Device Software Verification, Validation, and Compliance

LabVIEW Advanced Programming Techniques

Build Better Robots Faster. Radim ŠTEFAN

CDC UNIFIED PROCESS PRACTICES GUIDE

Tool Qualification Kit for NI TestStand Test Management Software

Improving Test Performance through Instrument Driver State Management

An introduction to the benefits of Application Lifecycle Management

ni.com/sts NI Semiconductor Test Systems

Software testing. Objectives

Notes and terms of conditions. Vendor shall note the following terms and conditions/ information before they submit their quote.

Protect Your Organization With the Certification That Maps to a Master s-level Education in Software Assurance

How To Use First Robot With Labview

Example Software Development Process.

LabVIEW Report Generation Toolkit for Microsoft Office

Programming and Software Development CTAG Alignments

SOE. managing change in system development projects: configuration management

DO-178B compliance: turn an overhead expense into a competitive advantage

Requirements Definition and Management Processes

Configuration & Build Management

2.1 The RAD life cycle composes of four stages:

The Expanding Purview of Software Configuration Management by Carey Schwaber

Introduction to Software Configuration Management. CprE 556 Electrical and Computer Engineering Department Iowa State University

Benefits of Test Automation for Agile Testing

Mission-Critical Java. An Oracle White Paper Updated October 2008

Meeting DO-178B Software Verification Guidelines with Coverity Integrity Center

Software configuration management

Source Control and Team-Based Design in System Generator Author: Douang Phanthavong

Key Benefits of Microsoft Visual Studio Team System

Appendix 2-A. Application and System Development Requirements

The Benefits of Utilizing a Repository Manager

About Network Data Collector

Maven or how to automate java builds, tests and version management with open source tools

Electrolux Dishwasher Performance Test Lab

Software Engineering Question Bank

How To Develop A Telelogic Harmony/Esw Project

Apache Web Server Execution Tracing Using Third Eye

Skynax. Mobility Management System. System Manual

Changing the embedded development model with Microsoft.NET Micro Framework

itac solutions for the medical industry Quality assurance of the highest standard FDA-compliant. Reliable. Productive.

DataSocket Simplifies Live Data Transfer for LabVIEW

Best Practices for Deploying, Replicating, and Managing Real-Time and FPGA Applications. ni.com

Software Engineering. Session 3 Main Theme Requirements Definition & Management Processes and Tools Dr. Jean-Claude Franchitti

Planning and Administering Windows Server 2008 Servers

Successfully managing geographically distributed development

Transcription:

Software Engineering for LabVIEW s

Topics Software Quality Standards ISO 9000, CMMI, DO-178B, FDA CFR Part 820 Software Engineering Process (SEP) Validation, -Based Testing, Debugging, Automated Software Configuration Management (SCM) Source Code Control, Version Tracking, Revision History, Group

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 prototyping

Software Quality Standards Company-wide certification standard ISO 9000 Voluntary certification standard for consistent processes CMMI Process improvement model sponsored by the National Defense Industrial Association Product-specific certification for quality DO-178B FAA standard for avionics software FDA 21 CFR Part 820 Medical device standard

National Instruments Is ISO 9001 Certified

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 FDA-Certified Class II Medical Device

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

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

Basic SEP Model Every model shares these basic phases Software Configuration Management (SCM) Requirement Life Cycle 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

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

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 Gateway National Instruments Confidential

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* *New in LabVIEW 8.5 **Subversion is open source and requires plug-in

System-Level View Track Changes Integrate with SCC Software Configuration Management for LabVIEW Merge Graphical Code Manage Files and Links View Revision History

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 Style and code reviews

Phases of in SEP

Software Configuration Management (SCM) Goals Agree on what the application will do Define which behaviors are acceptable and safe Define tests for individual components Provide traceability from code to documents

Software Configuration Management (SCM) Practices System-level requirements are mapped to specifications for unit-level functionality documents are commonly stored in programs such as Microsoft Word, Adobe PDF, or Telelogic DOORS Code is documented as fulfilling specifications within requirement documentation

Software Configuration Management (SCM) Tools Telelogic Doors Microsoft Word/Excel NI Gateway

Traceability Solution from NI DOORS Dedicated Interfaces RequisitePro Traceability NI Gateway Capture Navigation Dedicated Interfaces NI TestStand LabVIEW LabWindows / CVI MATRIXx 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.

Software Configuration Management (SCM) Goals Determine how code will be divided based on functionality Develop standard interfaces and APIs for code modules Ensure code scales are readable and maintainable

Software Configuration Management (SCM) Practices Build code foundation using established design patterns Agree on coding style Develop framework or skeleton of all code and tests

Software Configuration Management (SCM) Tools UML tools LabVIEW design patterns Object-oriented design LabVIEW Statechart Module

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 Abstracts common problems

Software Configuration Management (SCM) Goals Implement the application Fulfill requirements documentation Detect and resolve incorrect code behavior Pass functionality test parameters Abide by style guidelines Optimize performance and execution

Software Configuration Management (SCM) Practices Group development Manual peer code review Static and dynamic code analysis

Software Configuration Management (SCM) Tools Constantly compiling Highlight execution Breakpoint manager* Diagram cleanup* National Instruments Style Guideline VI profiler Coercion (memory) dots Conditional disable structures VI Analyzer Toolkit Real-Time Execution Trace Toolkit

Software Configuration Management (SCM) Goals 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

Software Configuration Management (SCM) Practices -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 Black box testing for correct functionality

Software Configuration Management (SCM) Tools Custom-test frameworks NI Gateway More coming soon

Software Configuration Management (SCM) 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 Remove sensitive code information

Software Configuration Management (SCM) 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 Integrate with other languages using shared libraries

Software Configuration Management (SCM) LabVIEW Builder

LabVIEW Tools for SEP and SCM Software Configuration Management (SCM) NI Gateway LabVIEW Statechart Module VI Analyzer LabVIEW Builder

Tools for the Process Software Configuration Management (SCM) Gateway LabVIEW Statechart Module VI Analyzer Unit Test Framework LabVIEW Builder Desktop Execution Trace

Process Tools & Debugging Testing & Software Configuration Management (SCM) NI Gateway 1.1 Statechart Module VI Analyzer Unit Test Framework Builder Desktop Execution Trace NI Developer Suite Bundle

Software Configuration Management (SCM) 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

Software Configuration Management (SCM) 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 Develops and validates reliable, safe, and fault tolerant applications using graphical programming

Unit Test Framework

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

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

Oral Feeder for Premature Infants The NTrainer System Helps Premature Babies Learn to Feed Orally and Greatly Increases Chances for Survival 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

LabVIEW is a programming language LabVIEW is used for large, missioncritical 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

ni.com/labview/power Large, mission-critical user solutions Software engineering best practices Frequently asked development questions Recommendations for using NI tools

ni.com/labview/power Configuration Management with LabVIEW Source Code Control, Version Tracking, Revision History, Group Software Engineering Practices for LabVIEW Validation, -Based Testing, Debugging, Automated Comparing LabVIEW to C/C++ Productivity, Built-In Functionality, Benchmarking Performance