Post on 04-Apr-2015
1
MA
G-M
OD
.PPT-G
EN
-158
-v1.0
COMPIL
3 expériences du Scripting
Sommaire
25 novembre 2010
COMPIL 2
Exemples d’usage du scripting à Magellium
1) Présentation de la société MAGELLIUM
2) Le Scripting comme outil d’exécution et de rédaction de plan de test et de validation (MAGVALID)
3) Le Scripting comme outil indispensable des processus d’intégration continue
4) L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements INGRID
5) Questions?
Sommaire
25 novembre 2010
COMPIL 3
Exemples d’usage du scripting à Magellium
1) Présentation de la société MAGELLIUM
2) Le Scripting comme outil d’exécution et de rédaction de plan de test et de validation (MAGVALID)
3) Le Scripting comme outil indispensable des processus d’intégration continue
4) L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements INGRID
5) Questions?
COMPIL 4
25 novembre 2010
Magellium SAS créé en 2003 2009 :
Reprise de la branche Défense de Générale d’Infographie
Création de Magellium Limited (UK)
Reprise de GeoTexel Aujourd’hui :
Capital : 250.000 euros Détenu par les fondateurs Fonds propres : 1.000.000
euros CA 2009 : 7,4 M€ 130 personnes
Habilitation Défense Agrément Recherche (R&D
interne > 15%) Organisme agréé de formation Statut Gazelle (PME de
croissance)
Espace
Environnement& Transport
Santé
Défense & Sécurité
Ingénierie, systèmes & Services
Notre marché
Sommaire
25 novembre 2010
COMPIL 5
Exemples d’usage du scripting à Magellium
1) Présentation de la société MAGELLIUM
2) Le Scripting comme outil d’exécution et de rédaction de plan de test et de validation (MAGVALID)
3) Le Scripting comme outil indispensable des processus d’intégration continue
4) L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements INGRID
5) Questions?
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
COMPIL 6
25 novembre 2010
Problématique
Validation d’un produit Garantie de la cohérence entre le produit et les spécifications Évaluation de la robustesse du produit (tests en erreurs) Performance et qualité des résultats
1ère étape : Rédaction d’un plan de validation Éléments à contrôler Type de test (nominal, en erreur, cas limite, ...)
2ème étape : Mise en œuvre des tests Environnement des tests Actions (exécutables, paramètres) Données en entrée Données produites
3ème étape : Rédaction d’un rapport d’exécution
nème étape : Gestion des évolutions du logiciel (non régression)
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
COMPIL 7
25 novembre 2010
Difficultés rencontrées
1ère étape : Rédaction d’un plan de validation Beaucoup de répétitions Changement de qualification
2ème étape : Mise en œuvre des tests Répétition des actions qui demande beaucoup de concentration Trop de temps à attendre la fin du déroulement des tests Analyse complexe des résultats
3ème étape : Rédaction d’un rapport d’exécution Doublons des définitions de tests avec le plan de validation
nème étape : Évolutions du logiciel (non régression) Reprise des tests de la version précédente, sans oubli Vérification de l’absence de donnée parasite Comparaison des résultats avec ceux de la version précédente Maintien de la cohérence entre les tests déroulés et les
documents
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
COMPIL 8
25 novembre 2010
Objectifs de MagVALID
Fonctionnalités : Automatisation du déroulement des tests
Vérification et comparaison automatique des résultats
Génération d’un rapport détaillé (HTML, XML, Word, PDF)
Rédaction des plan de validation et rapport d’exécution
Avantages : Gain de temps
Pas d’oubli de tests
Ajout d’un maximum de tests
L’opérateur focalise son attention sur : La préparation des fiches magVALID lors de la 1ère validation
L’analyse des résultats incorrects
La correction des bugs
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
COMPIL 9
25 novembre 2010
Caractéristiques techniques
Ensemble de modules Python avec des tests types prédéfinis Fonctions d’exécution
Fonctions de comparaison
Fonctions d’accès et d’affichage
Utilisable sur les environnements UNIX, UNIX-like (Linux, Cygwin) et Windows
Analyse aisée des déroulements des tests par le biais d'un rapport Html
Utilisation possible de magLaTeX pour la génération des rapports au format PDF via LaTeX
Export au format RTF pour Word
Fonctionnement global
COMPIL 10
25 novembre 2010
Donnéesen entrée
Donnéesde référence
magVALID[python]
Rapport
[RTF]
Rapport
[PDF]Rapport
[HTML]Fiches[XML]
Exécution des fiches de tests
Génération des rapports
À préparer
Génération du rapport
COMPIL 11
25 novembre 2010
MagVALID[python]
Plan devalidation
[PDF]Cahier devalidation
[PDF]
Rapportd’exécution
[RTF]
Rapportd’exécution
[PDF]Rapport
d’exécution
[HTML]
Avec exécution
Sans exécution
Description des tests avec leurs résultats d’exécution
(OK, Non OK)
Description des tests
Même document que le rapport d’exécution, sans les résultats (à remplir lors des recettes)
Fiches[XML]
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
Exemple de rapport
COMPIL 12
25 novembre 2010
Prise en compte de modèle de document
(Word, Latex)
Sommaire
25 novembre 2010
COMPIL 13
Exemples d’usage du scripting à Magellium
1) Présentation de la société MAGELLIUM
2) Le Scripting comme outil d’exécution et de rédaction de plan de test et de validation (MAGVALID)
3) Le Scripting comme outil indispensable des processus d’intégration continue
4) L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements INGRID
5) Questions?
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
COMPIL 14
25 novembre 2010
Le SCRIPTING comme outil indispensable de l’Intégration
Continue Les processus d’INTEGRATION CONTINUE nécessitent la mise
en œuvre de moyens permettant l’automatisation des tâches de génération d’un produit logiciel.
Exemple des tâches de génération d’un produit : Rapatriement des codes sources,
Compilation des modules,
Exécution des tests unitaires,
Analyse qualité des sources,
Packaging produits,
Génération de la documentation,
Emission de rapports d’exécution,
…
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
COMPIL 15
25 novembre 2010
Le SCRIPTING comme outil indispensable de l’Intégration
Continue Le processus est complexe car :
Il met en œuvre un très grand nombre d’outils logiciels : cvs, snv, sourcesafe, java, make, gcc, maven, javadoc…
Dans des configurations extrêmement variées Dépendant des types de projets, des technologies utilisées, des habitudes
d’usage de la société, des plateformes de développements de destination…
Solutions possibles Uniformiser les méthodologies de production
Ok mais que faire de l’existant ? Comment s’assurer que la solution s’appliquera aux besoins futurs ?
Développer un outil IHM « extensible » prenant en compte l’ensemble des paramètres de configuration possible
Chaque cas particulier nécessiterait une mise à jour de l’outil… Prise en main des différentes IHM délicate
Ensemble de scripts à déclencher. Chacun des scripts décrivant des procédures particulières, adaptées à des besoins propres, à partir de fonctions génériques
Prise en compte des erreurs ? Affichages des rapports d’exécution ? Problèmes d’ergonomie
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
COMPIL 16
25 novembre 2010
Le SCRIPTING comme outil indispensable de l’Intégration
Continue La solution adaptée est mixte :
Un logiciel d’accueil extensible (CruiseControl, Hudson, …) permettant :
De définir les étapes du processus
De déclencher à échéance régulières la chaîne de génération
D’accéder aux rapports d’exécutions
De définir quelques tâches génériques
Des langages de scripts plus ou moins spécifiques à la générations de logiciels : make, shell, ant, … permettant de spécialiser l’exécution des tâches de générations
Focus sur la solution HUDSON / ANT
Le SCRIPTING comme outil indispensable de l’Intégration
Continue HUDSON
Application WEB (facilité de déploiement)
Définition de « JOBS »
Configuration des étapes du jobs
Définition du type d’étape, du chaînage, ..
Plug-in adaptés aux outils les plus utilisés
Séquencement des jobs
COMPIL 17
25 novembre 2010
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
COMPIL 18
25 novembre 2010
Le SCRIPTING comme outil indispensable de l’Intégration
Continue
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
COMPIL 19
25 novembre 2010
Le SCRIPTING comme outil indispensable de l’Intégration
Continue ANT
C’est le « Make » des projets JAVA
Le « script » ANT utilise le formalisme XML
Le « script » est exécuté dans un environnement JAVA
Exemple d’un script ANT de génération : build.xml
Le SCRIPTING comme outil indispensable de l’Intégration
Continue ANT …
Utilisation de variables (properties JAVA) déclarées et initialisées en interne du script ou sous la forme de fichiers de propriétés java
Les variables ANT peuvent être surchargées au lancement de l’exécution du script
COMPIL 20
25 novembre 2010
my-file.properties
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
COMPIL 21
25 novembre 2010
Le SCRIPTING comme outil indispensable de l’Intégration
Continue ANT …
La bibliothèque native est extrêmement riche et couvre : Des fonctions de gestion d’archivages (zip,jar,tar,war …)
Des fonctions d’audit de sources (jdepend, …)
Des fonctions de compilations (javac, depend, apt, …)
Des fonctions de déploiements JEE,
Des fonctions de documentation (javadoc)
Des fonctions de gestion d’exécution de tâches (exec, parallel, sleep, waitfor …)
Des fonctions de gestion de fichiers (copy, checksum, …)
Des fonctions de pré-processing (xslt, import, include, macrodef, …)
Des fonctions de gestion de propriétés,
Des fonctions d’exécution à distance (Rexec, ftp, SShexec, Telnet)
Des fonctions d’accès aux outils de gestion de conf (cvs, clearcase, visual sourcesafe …)
Des fonctions de déclenchement de tests unitaires (junit …)
Il existe un grand nombre de librairies d’extension : Fonctions « Qualités » : Checkstyle, AntCount,EMMA
Documentation : Doxygen, Latex
Image
Intégration : JNI, … Compilation : C,C++, fortran, CPPtasks
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
COMPIL 22
25 novembre 2010
Le SCRIPTING comme outil indispensable de l’Intégration
Continue Quelques liens
http://linsolas.developpez.com/articles/hudson/
https://hudson.dev.java.net/
http://ant.apache.org/
http://skebir.developpez.com/tutoriels/java/ant/
Sommaire
25 novembre 2010
COMPIL 23
Exemples d’usage du scripting à Magellium
1) Présentation de la société MAGELLIUM
2) Le Scripting comme outil d’exécution et de rédaction de plan de test et de validation (MAGVALID)
3) Le Scripting comme outil indispensable des processus d’intégration continue
4) L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements INGRID
5) Questions?
L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements
INGRID
COMPIL 24
25 novembre 2010
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
COMPIL 25
25 novembre 2010
L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements INGRID
INGRID : Plateforme de conception, test, expérimentation et capitalisation de traitements et chaines de traitements dédiés à l’exploitation et la valorisation d’images
Principe général Intégration de composants logiciels (exe, dll, java … )
Exemple : librairie GDAL Identification et description des traitements implémentés par les
composants Exemple : Conversion de format d’image, reprojection d’une donnée
Connexion technique permettant au système INGRID de lancer l’exécution d’un traitement particulier fourni par un composant
Edition de chaîne de traitements par assemblage de traitements successifs
Définition de règles facilitant l’interopérabilité entre les composants Formats images, type de données, …
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
COMPIL 26
25 novembre 2010
L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements
INGRID Les règles d’interopérabilité présentent les principes généraux
permettant de faire cohabiter les composants dans le système essentiellement d’un point de vue technique et préconisent des formats d’échanges pivots pour les données usuellement manipulées : images, géométrie..
Les règles ne peuvent pas tout exprimer concernant le formatage des données échangées :
Définition d’une ROI : Centre + Taille / Points HG + BD, Rapport exprimés en pourcentage ou sur une échelle de 0 à 1, …
Travaux d’intégration fastidieux nécessitant : Une couches supplémentaire d’adaptation pour tous les traitements
existants …
Un nombre important de petits traitements d’adaptation (jetables)
?
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
COMPIL 27
25 novembre 2010
L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements
INGRID Besoin de maquettage : réaliser de façon ‘quick and dirty’ des
traitements jetables (accès bd, analyse d’un répertoire, …) pour un besoin temporaire d’analyse sans pour autant mettre en œuvre toutes les procédures d’intégration. Méthode légère.
Mise en œuvre d’une fonction de scripting sous la forme d’un traitement générique :
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
COMPIL 28
25 novembre 2010
L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements
INGRID Implémentation Technique
Basé sur la capacité du langage JAVA a exécuter dynamiquement des scripts
Moteur d’exécution basée sur une interface standardisée (JSR-223), il existe de nombreux moteurs d’exécution prenant en compte des langages de script divers tels que : le javascript (RHINO), Python, Ruby, Tcl …
Le Script est exécuté au sein de même la JVM que celle de l’application appelante
Possibilité de partager des données entre l’application et le script
Possibilité d’utiliser les services et api proposées par JAVA (y compris les fonctions IHM (awt …)
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
COMPIL 29
25 novembre 2010
L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements INGRID
Contexte d’exécution du Script dans INGRID
Lien entre paramètres du traitement et variables du script : Au déclenchement du script: pour chaque paramètre d’entrée
INGRID renseigné (in_*), une variable portant le nom du paramètre est instanciée.
A la fin du script ou lors d’un appel à la notification intermédiaire: un paramètre INGRID est généré en sortie du traitement pour chaque variable (out_*) déclarée dans le script.
Types gérés actuellement : boolean, int, double, string
Des classes de services permettant d’accéder aux API INGRID standards
ingridCallbackServices : classe des services de log & notification
ingridContextServices : classe d’accès aux informations du contexte d’exécution du traitement
L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements
INGRID Exemples de script
COMPIL 30
25 novembre 2010
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
COMPIL 31
25 novembre 2010
L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements
INGRID Quelques liens :
Documentation technique sur le « scripting java »
http://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/
http://download.oracle.com/javase/6/docs/technotes/guides/scripting/programmer_guide/index.html
Javacscript RHINO
http://www.mozilla.org/rhino/
JavaDoc JAVA JRE 1.6
http://download.oracle.com/javase/6/docs/api/
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
COMPIL 32
25 novembre 2010
Les pièges du SCRIPTING
Oui, mais attention :
ANT : Logiques récursives pas évidentes, « ticket d’entrée » non négligeable
Possibilité de créer de véritables usines à gaz difficilement maintenables
Certaine fragilité des Scripts face aux programmes compilés (possibilité d’édition en phase de runtime, pas de phase de compilation …) Nécessite une gestion en configuration
Sommaire
25 novembre 2010
COMPIL 33
Exemples d’usage du scripting à Magellium
1) Présentation de la société MAGELLIUM
2) Le Scripting comme outil d’exécution et de rédaction de plan de test et de validation (MAGVALID)
3) Le Scripting comme outil indispensable des processus d’intégration continue
4) L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements INGRID
5) Questions?
Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau
QUESTIONS?En vous remerciant pour votre attention
COMPIL 34
25 novembre 2010