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)

11 Février 2014 | Paris
nidays.fr
Les outils qui vous veulent du bien

Plus de temps pour développer en LabVIEW
Luc DESRUELLE
Certifié LabVIEW Architect (CLA), MESULOG
La société MESULOG en bref

- 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

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

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

CLA
FORUMS
Chef Projet
Luc DESRUELLE
Le constat

Le constat « amiable » de la gestion de projet
Exemples d’erreurs : bombe à retardement

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

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

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

- Une vraie boite à outils pour trouver plus de temps pour coder
Sommaire

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 ?

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

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

L’indispensable : Logiciel de gestion de code source

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

Logiciel de gestion de code source

- 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

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 ?

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

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

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

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 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

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

Création du dépôt sur le serveur
Chemin du dépôt :
- trunk
- tags
- branches
SVN : extraire le dépôt

- Exemple : Extraire (extract) sur un client
SVN : livrer

- Exemple : Livraison (commit) par un des clients
SVN : mettre à jour

- Exemple : Mise à jour (update) par un autre client
SVN : revenir en arrière

- Exemple : revenir en arrière (revert)
SVN : étiquette & journal

- Etiquette (tag) : retrouver une version
- Journal :
SVN : voir les différences

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

- Trunk : tronc
- branches
- tags : étiquettes
Popularités des logiciels SCC

4 3
1 1 1
Source: 2010 ni.com/largeapps survey
Inconvénient de SVN : pas intégré par NI LabVIEW…. mais

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

- Gestion utilisateurs – mot de passe
- Accès distant svn, http, https
- Branches, tags
- Merge
- Lock
- …..
Caisse à outil de gestion de projets

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

- 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 (?)

Une forge !
Késako ?
Forge

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

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

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

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

- 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é

- Fonctions de test
- https://decibel.ni.com/content/docs/DOC-28198
Desktop Execution Trace Toolkit

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

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

VI Package Manager & LabVIEW Tools Network

- Intégré dans LabVIEW depuis LV2013
- http://www.ni.com/labview-tools-network/
Bibliothèques OpenG

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 ???

- 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

- 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

- 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

- Notepad ++
- FileZilla
- Axialis
- Copie Ecrans
- Jenkins : intégration continue
- GSharp
- …..
Les VOTRES ?
Zoom sur : Machine Virtuelle

Machine Virtuelle : définition

- 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

- 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

- 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

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

- Logiciel libre par Oracle (rachat de Sun)
Podium

Liens

- 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

Diapositive 65

Restez connecté avant et après NIDays
ni.com/communaute-francophone facebook.com/nifrance twitter.com/nifrance youtube.com/nifrance


