france.ni.com démystifier la mise en œuvre de la programmation orientée objet sous labview...

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

Upload: internet

Post on 03-Apr-2015

106 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: France.ni.com 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

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

LabVIEW

Mathilde VINCENT - Olivier JOURDANParis - le 7/2/2012

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

Qui sommes nous ?

• Une PME du Grésivaudan• Créée en 1989 !• Plus de 15 développeurs certifiés LabVIEW

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

Programme

• Pourquoi ?• Etude de cas• Exemples d’applications • Perspectives

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

Historique

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

Bénéfices attendus

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

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

Etude de cas

Développer une application capable de récupérer des données en provenance d’instruments multiples.

USB

GPIB

RS-232

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

Exigences

• Lire pour chaque instrument Un identifiant Un numéro de série La valeur mesurée

• Pouvoir ajouter facilement d’autres instruments

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

Sans objet – solution 1

• « Modulaire »• Peu évolutif• Ne favorise pas un code homogène• Risque de duplication de code

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

Sans objet – solution 2

• « Modulaire »• « Plus évolutif »• Moins maintenable !

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

Solution OO

• 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

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

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

DonnéesIdentifiantNuméro de sérieDernière valeur lue

FonctionsInitialiserEcrireLireLibérer

Objet 1• AG34401• B254255• 1,4 mV

Objet 2• SP202• 3367E• 15,37g

Objet 3• LSC480• S/2323A88• 57,3K

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

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

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

Démo

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

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

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

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

Page 16: France.ni.com 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

Classe Série

Données

Port COMVitesseBit de stopIdentifiantNuméro de sérieDernière valeur lue

FonctionsInitialiserRécupérer infoLireLibérer

Classe GPIB

DonnéesAdresse GPIBIdentifiantNuméro de sérieDernière valeur lue

FonctionsInitialiserRécupérer infoLireLibérer

Classe Instrument

DonnéesIdentifiantNuméro de sérieDernière valeur lue

FonctionsInitialiserRécupérer infoLireLibérer

Classe Série

DonnéesPort COMVitesseBit de stop

FonctionsInitialiserLireLibérer

Classe GPIB

Données Adresse GPIB

FonctionsInitialiserLireLibérer

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

Démo

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

Résumé

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

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 nouvelles fonctionnalités Très facile de faire évoluer le code principal

Page 20: France.ni.com 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

Exemple d’application-

Topaze

Page 21: France.ni.com 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

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

Contexte

• Pouvoir s’adapter à tout type de fichiers• Pouvoir proposer différentes configurations

(traitements, visualisations, …)• N’avoir qu’un seul exécutable

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

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

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

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#, ...

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

Pour aller plus loin…

• NI Community : Large LabVIEW Application Development Actor Framework 2011 G#

• Forum LAVA• Formation Object-Oriented Design and programming

in LabVIEW

Page 26: France.ni.com 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

Des questions ?www.saphir.fr

https://decibel.ni.com/content/groups/saphir-toolkithttps://decibel.ni.com/content/groups/saphir-topaze