NIDays 2014 : Les outils qui vous veulent du bien : dégager plus de temps pour coder avec les solutions NI

Par Luc Desruelle (MESULOG) · 11 février 2014

Document original : NIDays 2014 : Les outils qui vous veulent du bien : dégager plus de temps pour coder avec les solutions NI (PDF, 4,3 Mo, 65 pages)

Télécharger le PDF Ouvrir dans le navigateur

11 Février 2014 | Paris nidays.fr – diapositive 1

11 Février 2014 | Paris

nidays.fr

Les outils qui vous veulent du bien

Les outils qui vous veulent du bien – diapositive 2

Plus de temps pour développer en LabVIEW

Luc DESRUELLE

Certifié LabVIEW Architect (CLA), MESULOG

La société MESULOG en bref

La société MESULOG en bref – diapositive 3
  • Activité : Développement logiciel test et mesure
  • Compétences : LabVIEW (Windows, RT, DSC, PDA, FPGA),

TestStand VeriStand

  • Localisation : Grenoble (Moirans, 38)
  • Partenaire National Instruments (2001)
  • Développeurs certifiés LabVIEW et TestStand

La société MESULOG en bref

La société MESULOG en bref – diapositive 4

www.mesulog.fr

  • Réalisations

Réalisations

  • Présentations techniques

o LabVIEW o TestStand

Société -> Présentations techniques

www.mesulog.fr/presentations_techniques

La société MESULOG en bref

La société MESULOG en bref – diapositive 5

Ils nous ont fait confiance :

  • ALSTOM Grid
  • AREVA NP
  • CEA (Commissariat à l'Énergie Atomique)
  • CETIAT (Centre Technique des Industries Aérauliques et Thermiques)
  • CNES (Centre National d'Études Spatiales)
  • CNRS (Centre National de la Recherche Scientifique)
  • EDF
  • HONEYWELL Security
  • LNE (Laboratoire National d'Essais)
  • ONERA
  • PECHINEY
  • RADIALL
  • RENAULT
  • STMicroelectronics
  • THALES Alenia Space
  • THALES LCD ...

Le présentateur

Le présentateur – diapositive 6

CLA

FORUMS

Chef Projet

Luc DESRUELLE

Le constat

Le constat – diapositive 7

Le constat « amiable » de la gestion de projet

Exemples d’erreurs : bombe à retardement

Exemples d’erreurs : bombe à retardement – diapositive 8

Grosses erreurs autour du développement logiciel (?)

  • Ne pas savoir où trouver de l’aide
  • Pas de logiciel de gestion de version
  • Pas de centralisation de l’information
  • Pas d’analyse ni de test du code source
  • Attendre la fin du projet pour générer l’exécutable
  • Pas de gestion de la machine de développement
  • Autres ?

Le constat

Le constat – diapositive 9

Gestion projet : Juste avec

Départ gestion

projet

Faire vite ou bien?

VITE

un bloc notes

et

un stylo MESULOG ?

BIEN

BIEN

Coder vite ou bien

Gestion Projet :

Spécifications Réalisation Tâches Gestion code source Tests du code Livrables Distributions Gestion Versions Suivi des bugs Documentation Support Evolutions Machine de Dévelop.

VITE

Livrer code

Autres présentations

www.mesulog.fr/presentations_techniques

Programmation avancée sous LabVIEW

Evolution Traçabilité Version support

Plus de temps

NON

Les bons outils?

NON

OUI

Bien Coder

Du temps pour coder

Du temps pour coder – diapositive 10

Notre métier : chef de projet – développeur - passionné…

Mais… Combien de temps passons-nous à coder ?

70% : Technicien Développeur

10% - 20% : Architecte LabVIEW

30% : Chef de projet

Pas beaucoup de temps pour coder

Le but : trouver du temps pour coder

Le but : trouver du temps pour coder – diapositive 11
  • Une vraie boite à outils pour trouver plus de temps pour coder

Sommaire

Sommaire – diapositive 12

Où trouver de l’aide ?

Gestion de projet :

  • L’indispensable : logiciel de gestion de code source
  • La caisse à outils de gestion de projet
  • Forge (?)

Outils de développement

  • Logiciels d’analyse et de test de National Instruments

Outils complémentaires

  • Autres outils de la caisse à outils
  • Zoom sur : Machine Virtuelle

Où trouver de l’aide ?

Où trouver de l’aide ? – diapositive 13

Où trouver de l’aide ?

Où trouver de l’aide ? – diapositive 14

La communauté travaille pour vous

  • 2 Forums National Instruments Francophone

o http://forums.ni.com/t5/Discussions-au-sujet-de-NI/bd-p/4171 o http://forums.ni.com/t5/Discussions-au-sujet-des-autres/bd-p/4170

  • 1 communauté Francophone

o https://decibel.ni.com/content/community/regional/france/labview o Rencontre développeurs dans région : Cf LUGE

  • Mais aussi… l’ensemble des forums et communautés de NI

o LabVIEW Development Best Practices o ni.com/largeapps

  • Des articles sur le site de NI + LAVA

o « Le logiciel ne se limite pas au code » de l'équipe JKI

LUGE – Rencontre développeurs Rhône-Alpes

LUGE – Rencontre développeurs Rhône-Alpes – diapositive 15

 Via la Communauté Francophone

 https://decibel.ni.com/content/community/regional/france/labview?view=all#/?tagSet=1850

 En région : communauté LUGE (Rhône-Alpes)

 https://decibel.ni.com/content/community/regional/france/labview?view=all#/?tagSet=1780  Rencontre - Echange entre développeurs

Gestion de projet

Gestion de projet – diapositive 16

L’indispensable : Logiciel de gestion de code source

L’indispensable : Logiciel de gestion de code source – diapositive 17

Qui se cache derrière ce « Graphique de révision »?

(Lien entre l’ensemble des versions d’un logiciel)

L’indispensable : Logiciel de gestion de code source

L’indispensable : Logiciel de gestion de code source – diapositive 18

Logiciel de gestion de code source

Logiciel de gestion de code source – diapositive 19
  • Le contrôle du code source est l'un des aspects les plus importants du développement logiciel
  • Simple à mettre en œuvre
  • Mais aussi trop négligé

Qui utilise un logiciel de gestion code source ?

Lequel ?

  • Mais quelle utilité ??

Définition :Version VS Révision

Définition :Version VS Révision – diapositive 20

http://fr.wikipedia.org/wiki/Version_d%27un_logiciel

  • Les logiciels évoluent = versions du logiciel
  • Chaque étape d'avancement = modifications de

fichiers (code, vi,…) = révision de fichiers

  • « révision » d’un fichier VS la « version » d'un logiciel.

Cette activité étant fastidieuse et complexe, un appui logiciel est presque indispensable.

Logiciel de Gestion de code source : pourquoi ?

Logiciel de Gestion de code source : pourquoi ? – diapositive 21

Pour répondre à :

  • Comment faire pour gérer les révisions du code source ?
  • Comment gérer les versions des exécutables ?
  • Comment travailler à plusieurs développeurs ?
  • Comment travailler sur plusieurs sites ?
  • Comment faire des tests et les conserver ?
  • Comment revenir sur une ancienne version ?
  • ….

Logiciel Gestion de code source

Logiciel Gestion de code source – diapositive 22

Source Code Control : SCC Agit sur une arborescence de fichiers afin de :

  • Conserver toutes les révisions des fichiers (historique)
  • Ajouter un commentaire pour chaque livraison.
  • Identifier & retrouver le code source des différentes versions du logiciel.
  • Aider le développement multi-développeurs (gestion de conflits)

… beaucoup d’autres fonctionnalités

SCC : histoire

SCC : histoire – diapositive 23

Logiciel de gestion de versions

Logiciels libres

Logiciels propriétaires PVCS (1985) D'importance historique SCCS (1972)

GNU RCS (1982) GNU CSSC

1972 Source Code Control

System (SCCS) est un système de gestion de versions pour les Systèmes d’IBM .

Puis RCS, CVS, puis

Subversion, Mercurial, Git,...

Gestion locale

CVS (1990) CVSNT (1992) SVN (2000) Rational ClearCase (1992) CCC/Harvest (Années 70) CMVC (1994) Visual SourceSafe (1994) Perforce (1995) AccuRev SCM (2002) Sourceanywhere (2003) Rational Synergy (2006) GNU arch (2001) Darcs (2002) DCVS (2002) SVK (2003) Monotone (2003) Codeville (2005) Git (2005) Mercurial (2005) Bazaar (2005) Fossil (2007) Veracity (2011) BitKeeper (1998) Plastic SCM (2007)

Logiciels libres

Client-serveur

Logiciels propriétaires

Logiciels libres

Décentralisé

Logiciels propriétaires

Zoom sur Subversion

Zoom sur Subversion – diapositive 24

Subversion (en abrégé SVN) Logiciel Libre Mode client-serveur, avec :

  • Un Serveur unique :

o les fichiers constituant la référence (le « dépôt » ou « référentiel ») o un logiciel serveur Subversion tournant en 'tâche de fond'

  • Des postes clients :

o les fichiers recopiés depuis le serveur, éventuellement modifiés localement

depuis,

o un logiciel client permettant la synchronisation entre chaque client et le

serveur de référence

Architecture SCC Client - Serveur

Architecture SCC Client - Serveur – diapositive 25

Architecture SVN

Serveur SVN

Avec Dépot ou

repository

Client SVN

Par exemple TortoiseSVN

Client SVN

Par exemple TortoiseSVN

Client SVN

Par exemple TortoiseSVN

Un logiciel client SVN : TortoiseSVN

Un logiciel client SVN : TortoiseSVN – diapositive 26

Son nom vient de l'anglais Tortoise, « Tortue » Logiciel Libre S’intègre à l'explorateur de Windows :

  • Superposition d'icône aux répertoires et fichiers permettant de visualiser instantanément l'état
  • « Menu contextuel » des actions

SVN : créer le dépôt

SVN : créer le dépôt – diapositive 27

Création du dépôt sur le serveur

Chemin du dépôt :

  • trunk
  • tags
  • branches

SVN : extraire le dépôt

SVN : extraire le dépôt – diapositive 28
  • Exemple : Extraire (extract) sur un client

SVN : livrer

SVN : livrer – diapositive 29
  • Exemple : Livraison (commit) par un des clients

SVN : mettre à jour

SVN : mettre à jour – diapositive 30
  • Exemple : Mise à jour (update) par un autre client

SVN : revenir en arrière

SVN : revenir en arrière – diapositive 31
  • Exemple : revenir en arrière (revert)

SVN : étiquette & journal

SVN : étiquette & journal – diapositive 32
  • Etiquette (tag) : retrouver une version
  • Journal :

SVN : voir les différences

SVN : voir les différences – diapositive 33

Permet de comparer les différences entre 2 révisions d’un vi’s

Pour utiliser LabVIEW compare via TortoiseSVN :

Ajouter : TortoiseSVN -> Configuration -> Programmes externes -> programme pour comparer les différentes révisions de fichiers

"C:\Program Files\National Instruments\Shared\LabVIEW Compare\LVCompare.exe" %mine %base -nobdcosm -nobdpos

SVN : arborescence

SVN : arborescence – diapositive 34
  • Trunk : tronc
  • branches
  • tags : étiquettes

Popularités des logiciels SCC

Popularités des logiciels SCC – diapositive 35

4 3

1 1 1

Source: 2010 ni.com/largeapps survey

Inconvénient de SVN : pas intégré par NI LabVIEW…. mais

Inconvénient de SVN : pas intégré par NI LabVIEW…. mais – diapositive 36

Native LabVIEW Integration

  • Perforce

Integration Through Standard API

  • Microsoft Visual SourceSafe
  • Microsoft Team System
  • Rational ClearCase
  • PCVS (Serena) Version Manager
  • MKS Source Integrity
  • Seapine Surround SCM
  • Borland StarTeam
  • Telelogic Synergy
  • ionForge Evolution

Support through additional add-ons

  • Subversion : TSVN Toolkit
  • Mecurial

Pour aller plus loin

Pour aller plus loin – diapositive 37
  • Gestion utilisateurs – mot de passe
  • Accès distant svn, http, https
  • Branches, tags
  • Merge
  • Lock
  • …..

Caisse à outil de gestion de projets

Caisse à outil de gestion de projets – diapositive 38

Bug tracker : outil de gestion de bug ou anomalie

  • Identifier, diffuser, sauvegarder
  • Associer à une version de code
  • Correctif code et distribution

Quelques exemples

  • FogBugz
  • Mantis
  • Bugzilla
  • Tuleap

Caisse à outil de gestion de projets

Caisse à outil de gestion de projets – diapositive 39
  • Diffusion de la documentation
  • Box (box.com)
  • Google Drive
  • Wiki
  • Tuleap
  • Diffusion des « livrables »
  • Serveur FTP
  • Tuleap
  • Gestion des tâches
  • MS Project
  • Trello
  • Tuleap
  • Intégration Continue
  • Jenkins

Forge (?)

Forge (?) – diapositive 40

Une forge !

Késako ?

Forge

Forge – diapositive 41

Beaucoup de logiciels MAIS logiciels séparés…. Forge ?

  • Système qui gère « les développements collaboratif de logiciel »
  • Système simple et efficace
  • Regroupe de nombreux outils

Chez MESULOG : Tuleap

Tuleap

Tuleap – diapositive 42

Mettre à disposition de tous les acteurs autorisés,

l'ensemble des données d’un projet :

  • Documentation (doc #ID)
  • Code source (gestion sous Subversion, https, svn #ID)
  • Exécutables, installeurs (release #ID unique)
  • Suivi de tâches (task #ID unique)
  • Suivi de bugs (bug #ID unique)
  • Espace de téléchargement FTP
  • Forums de discussion et wiki
  • Les commentaires SVN sont croisés avec les tags #ID unique des bugs - livrable - task. L'historique du projet est ainsi redoutable.

« La Suite ALM 100% Open-Source »

Outils de développement

Outils de développement – diapositive 43

Logiciels de Test et d’Analyse du code

Requirements

Gathering

Application Architecture

Testing and Validation

Development

Deployment

By National Instruments

LabVIEW Unit Test Framework

LabVIEW VI Analyzer

LabVIEW Desktop Execution Trace

Test et Analyse du code

Test et Analyse du code – diapositive 44

Debugging &

Testing

Unit Test Framework

Functional Validation

of Code

Advanced

Desktop Execution Trace

Real Time Execution Trace

Dynamic Code Analysis

VI Analyzer Toolkit

Static Code Analysis

Simple

Low Risk

High Risk

Application Criticality

VI Analyser

VI Analyser – diapositive 45
  • Automatise l’analyse du code via 80 fonctions
  • Performance
  • Style
  • Documentation
  • Complexité
  • Possibilité d’ajouter des fonctions de test (LV 2010)

VI Analyser : sur la communauté

VI Analyser : sur la communauté – diapositive 46
  • Fonctions de test
  • https://decibel.ni.com/content/docs/DOC-28198

Desktop Execution Trace Toolkit

Desktop Execution Trace Toolkit – diapositive 47

Trace During Run-Time:

  • Event Structures
  • Memory Allocation
  • Queues / Notifiers
  • Reference Leaks
  • Thread ID
  • Unhandled Errors
  • Dynamic / Static SubVIs
  • Custom User Strings

LabVIEW Unit Test Framework

LabVIEW Unit Test Framework – diapositive 48

Input Values Output

VI Under Test

Unit Test Framework

Expected Output

Automated

Report Generation

Test vector = Input value(s) + Expected output(s)

Outils complémentaires

Outils complémentaires – diapositive 49

VI Package Manager & LabVIEW Tools Network

VI Package Manager & LabVIEW Tools Network – diapositive 50
  • Intégré dans LabVIEW depuis LV2013
  • http://www.ni.com/labview-tools-network/

Bibliothèques OpenG

Bibliothèques OpenG – diapositive 51

Pallette de VI’s pour LabVIEW Des centaines de VIs en open source

  • la manipulation de tableaux
  • la manipulation de chaînes de caractères
  • la gestion de fichiers et Zip
  • l'implémentation MD5 digest
  • la gestion des erreurs
  • la manipulation de données variant
  • …

PSR de Windows ???

PSR de Windows ??? – diapositive 52
  • L'enregistreur d'action utilisateur ... de Windows
  • Fonction cachée de Windows 7.
  • Enregistrer actions utilisateur à effectuer.
  • Sauvegarde directement du descriptif des actions, images et commentaires dans un fichier .mht

Dans le menu Démarrer de Windows, tapez les lettres « PSR » :

AutoIt

AutoIt – diapositive 53
  • Automatiser des tâches système
  • Simuler des actions utilisateurs : un script pilote une application en lieu et place d'un contrôle manuel
  • Automatiser une application LabVIEW via ActiveX
  • Réaliser une démonstration

Intégration continue : Jenkins

Intégration continue : Jenkins – diapositive 54
  • Suivre la santé de votre projet
  • L'intégration continue vérifier à chaque modification de code source que le résultat des modifications ne produit pas de régression dans l'application développée.
  • Modifications de code -> Compiler et tester votre application.
  • Si erreur : avertir les développeurs afin qu'ils puissent tout de suite corriger le problème.

Autres

Autres – diapositive 55
  • Notepad ++
  • FileZilla
  • Axialis
  • Copie Ecrans
  • Jenkins : intégration continue
  • GSharp
  • …..

Les VOTRES ?

Zoom sur : Machine Virtuelle

Zoom sur : Machine Virtuelle – diapositive 56

Machine Virtuelle : définition

Machine Virtuelle : définition – diapositive 57
  • But : Virtualiser la plate-forme de développement
  • Virtualisation : simuler l'existence de plusieurs machines informatiques sur une seule.

 Machine virtuelle illusion d'un appareil

informatique créée par un logiciel d'émulation.

 Simule la présence des ressources

matérielles et logicielles (mémoire, processeur, disque dur, système d'exploitation, pilotes)

Machine Virtuelle : définition

Machine Virtuelle : définition – diapositive 58
  • hyperviseur une plate-forme de virtualisation qui permet à plusieurs systèmes d'exploitation de travailler sur une même machine physique en même temps

 Type 2 : VMware, VirtualBox, VirtualPC, sont quelques

logiciels de virtualisation

Machine Virtuelle : Exemples

Machine Virtuelle : Exemples – diapositive 59
  • Virtualisation des serveurs est le modèle le plus courant. plusieurs serveurs virtuels sur un serveur physique
  • OS moderne simule une machine qui exécute MS-DOS;
  • Machine de développement : une machine virtuelle par plate-forme de développement (PDA, Windows, linux,..)

Machine Virtuelle pour le développement

Machine Virtuelle pour le développement – diapositive 60

Les avantages

  • Sécurisation des plates-formes de développement (quelques fichiers à copier) : sauvegarde – retour en arrière possible.
  • Installation, déploiement et migration facile des machines virtuelles d’une machine physique à une autre (copier – coller)
  • Une machine virtuelle par version de LabVIEW : plus de conflit de version
  • Facilité pour test de driver, logiciel et anciens OS

Les inconvénients

  • Lenteur réseau, port série, USB,…
  • Difficulté à installer un véritable matériel par exemple matériel National Instruments
  • Conseillé d’utiliser une « Grosse » machine physique (8 Go RAM, processeurs muli-core,
  • Gestion des licences : une Machine Virtuelle = une licence
  • Taille sur le disque de la machine virtuelle et de ses snapshots

Oracle VM VirtualBox

Oracle VM VirtualBox – diapositive 61
  • Logiciel libre par Oracle (rachat de Sun)

Podium

Podium – diapositive 62

Liens

Liens – diapositive 63
  • fr.wikipedia.org/wiki/TortoiseSVN
  • fr.wikipedia.org/wiki/Version_d%27un_logiciel
  • tuleap.net/?utm_source=forge&utm_medium=forge&utm_ campaign=forge
  • www.enalean.com/produits/tuleap/
  • fr.wikipedia.org/wiki/Machine_virtuelle
  • fr.wikipedia.org/wiki/Jenkins_(informatique)
  • ni.com/largeapps

Questions

Questions – diapositive 64

Diapositive 65

11 Février 2014 | Paris nidays.fr – diapositive 65

Restez connecté avant et après NIDays

ni.com/communaute-francophone facebook.com/nifrance twitter.com/nifrance youtube.com/nifrance