mardi 10 février 2009

La programmation orientée objet sous LabVIEW

labviewSaviez-vous que depuis la version 8.20 de LabVIEW, sortie en 2006, il est possible de programmer avec une architecture objet ? On peut ainsi créer des classes avec leurs propriétés et leurs méthodes, comme en C++, Java, C#, pascal object (Delphi) et autres langages évolués.
J'entends certains d'entre vous dire "mais qu'est-ce que ça nous apporte en plus pour le développement de logiciel de test et mesure ?". Serte, il est vrai que pour un petit logiciel qui fait une mesure ou plusieurs mesures et un traitement simple, le langage objets n'est pas forcément le plus adapté... quoi que : on pense toujours développer en "one shot" et on se rend très souvent compte, après coup, qu'il faut faire évoluer le logiciel et/ou récupérer une fonctionnalité pour l'intégrer dans un autre développement. C'est là que la programmation objet (LVOOP sous LabVIEW pour LabView Oriented-Object Programming) a tout son intérêt : elle permet un concept et une architecture plus proche du monde physique et donc du raisonnement humain (exemple d'objet : une voiture avec ses méthodes, tourner, freiner, et ses propriétés, vitesse maximum, couleur). De plus, on peut alors profiter des outils de modélisation qui permettent de concevoir sous forme de schémas semi-formels la structure d'un programme, basé par exemple sur UML (d'ailleurs il y a un toolkit dédié sous LabVIEW).

2 commentaires:

  1. Quel toolkit pour le uml ?
    Merci

    RépondreSupprimer
  2. Et bien, pour le moment National Instruments n'a pas développé d'outil pour faire de la modélisation UML pour la génération de classe. Cependant, il est possible d'utiliser le toolkit "UML Modeller" d'Endevo qui génère des classes GOOP (qui nécessite le toolkit Endevo GOOP Inheritance utilisable à partir de LabVIEW 6.1) qui sont distinctes des LVOOP (en natif à partir de LabVIEW 8.20).
    voir la liste des produits de chez Endevo ici : http://www.flander.com/English/Endevo/Products/tabid/7430/language/en-US/Default.aspx/

    RépondreSupprimer