Démystifier la mise en œuvre de la programmation orientée objet sous LabVIEW



Documents pareils
Patrons de Conception (Design Patterns)

TP1 : Initiation à Java et Eclipse

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Traduction des Langages : Le Compilateur Micro Java

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

Formation, Audit, Conseil, Développement, UX WinRT Silverlight WPF Android Windows Phone

Semarchy Convergence for MDM La Plate-Forme MDM Évolutionnaire

RÉUSSIR L AUTOMATISATION DU PROCESSUS DE TEST FONCTIONNEL

IFT785 Approches Orientées Objets. FINAL Été Remise : Jeudi 19 août 2002 à 9h00 am

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

1 Actuate Corporation de données. + d analyses. + d utilisateurs.

Le moteur de workflow JBPM

Annexe : La Programmation Informatique

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Gestion des utilisateurs dans un environnement hétérogène

TP1 : Initiation à Java et Eclipse

Environnements de développement (intégrés)

S T L - C P S - L e s p l u g i n s E c l i p s e. - Une Introduction , Frédéric Peschanski

Le partenaire tic de référence. Gestion des ressources humaines INOVA RH

Mettre en place une infrastructure Web nouvelle génération avec Drupal et Acquia

La technologie Java Card TM

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Journée Développeurs LabVIEW

Développer avec les technologies ESRI. ESRI Developer Network (EDN) Gaëtan LAVENU ESRI France Jérémie MAJEROWICZ ESRI France

Point sur les solutions de développement d apps pour les périphériques mobiles

Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles

Programmer en JAVA. par Tama

Programmation MacOSX / ios

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

BES WEBDEVELOPER ACTIVITÉ RÔLE

Documentation Technique du programme HYDRONDE_LN

Analyse,, Conception des Systèmes Informatiques

Linux embarqué: une alternative à Windows CE?

Projet de développement

CONTEC CO., LTD. Novembre 2010

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy

Fouillez facilement dans votre système Big Data. Olivier TAVARD

Stage : Développement du contenu Web

Université de Bangui. Modélisons en UML

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Semarchy Convergence for Data Integration La Plate-Forme d Intégration pour le MDM Évolutionnaire

energy BOX WEB Automates de GTB

Agile 360 Product Owner Scrum Master

Diagrammes de Package, de déploiement et de composants UML

as Architecture des Systèmes d Information

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

Créateur d innovation 3D

Paul FLYE SAINTE MARIE

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

FICHE PRODUIT 360 SPEECHMAGIC SDK

Evaluation et mise en place d un serveur de messages pour Chamilo 2.0

Wonderware System Platform

Pentaho Business Analytics Intégrer > Explorer > Prévoir

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

Pour une entreprise plus performante

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

CQP Développeur Nouvelles Technologies (DNT)

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

Héritage presque multiple en Java (1/2)

INF2015 Développement de logiciels dans un environnement Agile Examen final hiver 2015

L enseignement de méthodes agiles dans un contexte d apprentissage actif

Valorisez vos actifs logiciels avec Rational Asset Manager. Jean-Michel Athané, Certified IT Specialist IBM Rational Software

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

CAHIER DES CHARGES D IMPLANTATION

TRAAM STI Acquisition et exploitations pédagogiques des données sur un système pédagogique

Projet de Veille Technologique

les techniques d'extraction, les formulaires et intégration dans un site WEB

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Vérifier la qualité de vos applications logicielle de manière continue

Drive your success. «Un écosystème complexe implique une capacité de gestion temps réel des aléas»

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Le Cloud Computing et le SI : Offre et différentiateurs Microsoft

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Forthcoming Database

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Devenez un véritable développeur web en 3 mois!

Plateforme de capture et d analyse de sites Web AspirWeb

La reconquête de vos marges de manœuvre

Développement d un interpréteur OCL pour une machine virtuelle UML.

Intégration de l interface graphique de Ptidej dans Eclipse

BROCHURE PRODUIT. Gestion centralisée de PC Industriels Galium

Pilot4IT Tableaux de Bord Agréger et consolider l ensemble de vos indicateurs dans un même portail.

White Paper - Livre Blanc

SQL SERVER 2008, BUSINESS INTELLIGENCE

Découvrir le CMS. et l utiliser dans une approche pro!

La plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle

SOLVABILITÉ II, FUSIONS ET REGROUPEMENTS : QUEL SYSTÈME D INFORMATION COMPTABLE ET FINANCIER?

Introduction au développement SharePoint. Version 1.0

11 Février 2014 Paris nidays.fr. france.ni.com

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Etude et développement logiciel Exemples de réalisation

Vulgarisation Java EE Java EE, c est quoi?

Transcription:

Démystifier la mise en œuvre de la programmation orientée objet sous LabVIEW Mathilde VINCENT - Olivier JOURDAN Paris - le 7/2/2012 france.ni.com

Qui sommes-nous? Une PME du Grésivaudan Créée en 1989! Plus de 15 développeurs certifiés LabVIEW Formations 10 % Produits 5 % Développement Intégration 85 %

Programme Pourquoi? Étude de cas Exemples d applications Perspectives

Historique 1950 : Apparition du concept de POO 1960 : Premiers langages «Orienté Objet» 1990 : Adoption généralisée (JAVA, C++ ) 1994 : GOOP - Add-on LabVIEW 2006 : LabVIEW 8.2 - implémentation native

Avantages escomptés Faciliter l ajout des fonctionnalités Simplifier le travail en équipe Gagner du temps lors du développement Améliorer la maintenabilité du code

Étude de cas Développer une application capable de récupérer des données en provenance d instruments multiples. RS-232 GPIB USB

Exigences Lire pour chaque instrument Un identifiant Un numéro de série La valeur mesurée Pouvoir ajouter facilement d autres instruments

Sans objet solution 1 «Modulaire» Peu évolutive Ne favorise pas un code homogène Risque de duplication de code

Sans objet solution 2 «Modulaire» «Plus évolutive» Moins maintenable!

Sans objet solution 2 «Modulaire» «Plus évolutive» Moins maintenable!

Sans objet solution 2 «Modulaire» «Plus évolutive» Moins maintenable!

Solution Orientée Objet Décrire le monde réel au sein du logiciel à l aide d objets Profiter des fonctionnalités de la POO pour obtenir un code évolutif et maintenable

Concept : encapsulation Une classe est un ensemble de données et de fonctions qui interagissent sur ces données Un objet est une instance spécifique d une classe Classe Instrument Objet 1 AG34401 B254255 1,4 mv Données Fonctions Identifiant Numéro de série Dernière valeur lue Initialiser Écrire Lire Libérer Objet 2 Objet 3 SP202 3367E 15,37g LSC480 S/2323A88 57,3 K

Important L accès aux données et fonctions d une classe est cadré Le niveau d accès aux données de la classe est privé Le niveau d accès aux fonctions de la classe est configurable

Démo

Concept : héritage Les enfants héritent des fonctions et des données du parent Les enfants peuvent ajouter des données et des fonctions Parent Instrument Ancêtres Enfants GPIB Série Descendants

Concept : redéfinition et dispatch dynamique Redéfinition Capacité de modifier le comportement d une fonction parente Dispatch dynamique LabVIEW décide lors de l exécution quelle fonction appeler Le choix est dicté par le type de l objet

Classe Données Fonctions Série Port COM Vitesse Bit de stop Identifiant Numéro de série Dernière valeur lue Initialiser Récupérer info Lire Libérer Classe Données Fonctions GPIB Adresse GPIB Identifiant Numéro de série Dernière valeur lue Initialiser Récupérer info Lire Libérer france.ni.com

Classe Données Fonctions Instrument Identifiant Numéro de série Dernière valeur lue Initialiser Récupérer info Lire Libérer Classe Série Classe GPIB Données Fonctions Port COM Vitesse Bit de stop Initialiser Lire Libérer Données Fonctions Adresse GPIB Initialiser Lire Libérer france.ni.com

Démo

Résumé

Résumé Un code structuré Organisation de code par les classes «Protection» des données Développement des classes >< Utilisation des classes Un code évolutif Très facile d ajouter de nouveaux instruments Très facile de faire évoluer le code principal

Exemple d application - Topaze france.ni.com

france.ni.com

Contexte Pouvoir s adapter à tout type de fichiers Pouvoir proposer différentes configurations (traitements, visualisations ) N avoir qu un seul exécutable

Solution Mettre en place une architecture plug-in Chargement dynamique de classes filles Enrichissement de l exécutable au runtime grâce au dispatch dynamique Chargement statique Chargement dynamique Fichier CSV WAV AIFF TDMS

Aller plus loin De nombreux modèles de conception existent : Factory pattern Singleton Pattern Débat ouvert entre «By value» et «By reference» Actor framework, G#...

Pour aller plus loin Communauté NI : Large LabVIEW Application Development Actor Framework 2011 G# Forum LAVA Formation Object-Oriented Design and programming in LabVIEW

Des questions? www.saphir.fr https://decibel.ni.com/content/groups/saphir-toolkit https://decibel.ni.com/content/groups/saphir-topaze france.ni.com