Les bonnes pratiques pour gérer les applications NI LabVIEW en utilisant l'Explorateur de projet

Aperçu

Cet article fait partie d'une série de documents relatifs aux pratiques et outils de génie logiciel pour le développement d'applications d'envergure dans LabVIEW.

Cliquez ici pour visualiser la liste des autres articles.


Cet article passe en revue le Projet LabVIEW et propose des conseils sur la façon de gérer et d'organiser vos applications LabVIEW. Utilisez ces recommandations pour établir des lignes de conduite et des procédures avant de commencer le développement afin que votre application soit adaptée à un grand nombre de VIs et à de nombreux développeurs.

Contenu

Définir et identifier les fichiers d'application

Établir des lignes directives pour stocker et gérer des fichiers nécessite de prévoir comment l'application sera structurée, de quelle façon les fonctionnalités seront réparties, et les types de fichiers au-delà du code source dont il faudra tenir compte. Réfléchissez bien à la façon dont les fonctionnalités seront réparties dans le code et comment collaborer avec des développeurs sur les emplacements de stockage de fichiers et les fichiers ou ressources supplémentaires dont ils auront besoin pour le bon fonctionnement de l'application. Utilisez ces informations dans le prochain paragraphe pour déterminer les critères à utiliser afin de regrouper les fichiers sur disque.

Organiser les fichiers sur disque

L'organisation des fichiers sur disque doit faire l'objet d'une réflexion préalable. Une mauvaise organisation des fichiers constitutifs d'une application d'envergure aboutit à passer du temps supplémentaire à déplacer et à renommer les fichiers en cours de développement. Si vous traitez un grand nombre de fichiers, souvenez-vous que ces opérations peuvent poser un risque considérable à l'intégrité des liens dans LabVIEW, et par conséquent, au comportement de votre application. Établir ces pratiques le plus tôt possible évite de devoir déplacer de grands ensembles de fichiers assez tard dans le processus. En outre, de cette façon, les développeurs peuvent facilement retrouver des fichiers et déterminer l'endroit où en enregistrer de nouveaux.

Un grand nombre de développeurs logiciels ont déjà mis en place un certain nombre de pratiques et de systèmes pour déterminer où les fichers doivent être stockés. Enfin, il existe toute une variété de pratiques et de structures possibles, mais celles qui suivent sont des pratiques courantes qui se sont révélées adaptées à des applications volumineuses. Stocker les fichiers dans un répertoire racine unique garantit que tout ce dont vous avez besoin est facilement accessible, et appliquer une convention de nommage aide les utilisateurs à savoir où trouver les fichiers et où en placer de nouveaux. Les répertoires du disque dur sont souvent utilisés pour grouper ou catégoriser les fichiers et par conséquent séparer les sous-VIs des appelants. Inversement, les structures de répertoires plates rendent difficile l'accès aux fichiers ou la localisation du VI de niveau principal et sont par conséquent déconseillées même pour un petit nombre de VIs. Les critères habituellement utilisés pour grouper ces fichiers sont une combinaison de trois éléments : des fonctionnalités, du type et du niveau hiérarchique du fichier dans l'application. En fait, l'organisation sur disque devrait être le reflet des relations entre les fichiers et le code dans l'application.

Figure n°1. Cette capture d'écran présente un exemple d'application qui a été organisée sur disque sans utiliser l'Explorateur de projet LabVIEW.  

La Figure n°1 illustre le fait d'organiser tous les fichiers dans un répertoire racine, le fait de séparer le VI de haut principal des dépendances, et les divers critères selon lesquels "remplir" les fichiers dans des répertoires.

Conseils

  • Stockez tous les fichiers dans un répertoire racine unique
  • Divisez votre application en parties logiques de taille gérable
  • Utilisez des conventions de nommage descriptives et logiques
  • Séparez les VIs de niveau principal des autres codes source
  • Commencez par un diagramme de haut niveau qui contient les principaux composants de votre application (par exemple, le diagramme pourrait inclure des sections séparées pour la configuration, l'acquisition, l'analyse, l'affiche de données, l'enregistrement de données et la gestion d'erreurs).
  • Groupez ou "remplissez" des fichiers en fonction des critères prédéterminés

Considération spéciale pour les dépendances dynamiques et le code partagé

Les fichiers chargés dynamiquement posent un problème supplémentaire qui mérite souvent une attention particulière. Étant donné que ces fichiers ne sont pas liés de façon statique par des appelants dans l'application, ils peuvent être facilement placés au mauvais endroit ou bien tout simplement oubliés au moment de changer d'emplacements ou en changeant les chemins vers les fichiers.

Pour faciliter le maintien des liens vers les fichiers appelés de façon dynamique, vous pouvez les regrouper dans un dossier séparé et y faire référence en utilisant des chemins relatifs. Ainsi, s'il est nécessaire de déplacer ou de distribuer l'application, vous aurez la certitude d'avoir les fichiers dont vous avez besoin uniquement en incluant le dossier.

Si des applications volumineuses partagent du code, il est important de garder à l'esprit où ces fichiers sont stockés et que des changements risquent d'affecter d'autres appelants. La réutilisation de code est courante et encouragée pour accélérer le développement en profitant du travail déjà accompli. Les applications qui sont semblables peuvent nécessiter les mêmes fonctionnalités, ou différentes branches d'un code peuvent faire référence à un même ensemble de VIs communs. Faire référence à la même copie de code implique que ces fichiers se trouvent en-dehors du répertoire racine de l'une des application au moins. Toutefois, si vous envisagez de procéder à des changements de ces VIs communs, faites des copies locales pour tester et procéder à une intégration ultérieure.

Vous pouvez aussi utiliser des fournisseurs de contrôle du code source pour suivre de près les nombreuses versions des logiciels et comparer les changements effectués entre plusieurs itérations. Pour approfondir le sujet, nous vous invitons à lire le tutorial intitulé Mise en œuvre de LabVIEW avec les fournisseurs de contrôle du code source.

Conseils

  • Conservez les dépendances chargées de façon dynamique dans un dossier commun.
  • Utilisez des chemins relatifs pour référencer des dépendances dynamiques.
  • Minimisez les changements sur le code partagé par des applications.
  • Passez du temps à gérer et à intégrer des changements dans le code partagé.
  • Utilisez le contrôle du code source.

Résumé de l'organisation de fichiers sur disque

Organiser des applications sur disque est essentiel pour garantir que le développement soit adapté à la taille de l'application et au nombre grandissant de VIs. Toutefois, ceci n'est que la première étape d'un processus. Il y a toujours un grand nombre de défis inhérents dont vous pouvez limiter la portée en utilisant des pratiques et des outils plus sophistiqués comme l'Explorateur de projet LabVIEW.

L'Explorateur de projet LabVIEW

L'Explorateur de projet a été introduit dans LabVIEW 8.0 pour offrir aux développeurs une visualisation au niveau système des fichiers dont ils ont besoin pour une application. L'objectif de l'Explorateur de projet LabVIEW est d'aider les développeurs à facilement trouver et organiser des fichiers dans l'environnement de développement et de fournir des fonctionnalités supplémentaires répondant aux défis de la gestion et du dévelopement d'applications LabVIEW d'envergure. Depuis la sortie initiale de l'Explorateur de projet LabVIEW, National Instruments a incorporé plusieurs nouvelles fonctionnalités suite aux commentaires des clients.

Figure n°2. Ce projet présente la façon dont l'application que nous avons vue en Figure n°1 peut être organisée dans l'Explorateur de projet LabVIEW.

Utilisez les projets LabVIEW pour regrouper des fichiers LabVIEW et d'autres fichiers, créer des spécifications de construction, et déployer ou télécharger des fichiers sur cibles. Lorsque vous enregistrez un projet, LabVIEW crée un fichier .lvproj qui contient des références aux fichiers sur disque, des variables, des liens hyper texte, des informations relatives à la configuration, à la construction, et au déploiement, etc.

L'Explorateur de projet LabVIEW ne reproduit ni ne copie vos fichiers dans d'autres endroits sur le disque. Il propose une nouvelle méthode pour afficher les fichiers sur le disque et offre des raccourcis vers les emplacements des fichiers. Grâce à l'Explorateur de projet LabVIEW, vous pouvez :

  • facilement accéder à et naviguer dans les fichiers sans quitter LabVIEW
  • personnaliser et filtrer la façon dont les fichiers sont organisés
  • conserver les liens lors du déplacement ou du renommage des fichiers sur disque
  • prévenir, détecter et solutionner des liens incorrects
  • gérer du code pour des cibles matérielles spécifiques1
  • gérer des configurations en termes de construction1
  • intégrer l'interface avec un gestionnaire de contrôle du code source1

1Ceci n'est pas couvert dans cet article.

Notez que certaines des fonctionnalités décrites dans cet article sont disponibles uniquement dans LabVIEW 8.5 ou version ultérieure. Pour obtenir une liste des nouvelles fonctionnalités de LabVIEW 8.5, prenez connaissance des notes de mise à jour ou visitez ni.com/labview85/f/upgrade.

Gérez vos fichiers dans l'Explorateur de projet

Il y a deux pages pour visualiser les fichiers dans le Projet LabVIEW : la page Éléments et la page Fichiers.

Figure n°3. La page Fichiers présente une vue filtrée de tous les éléments du Projet au fur et à mesure qu'ils sont localisés sur disque et permet aux utilisateurs d'effectuer des opérations de copie et de renommage.

La vue par défaut est la page Éléments, qui offre une arborescence des éléments que vous avez ajoutés au Projet LabVIEW et qui les regroupe par cible matérielle. Vous pouvez créer des dossiers dans cette vue soit pour personnaliser la façon dont les fichiers sont organisés soit pour les synchroniser vers un emplacement particulier sur disque. C'est la vue que vous allez utiliser le plus souvent. Vous ne pouvez pas effacer les fichiers sur disque de la page Éléments. C'est fait exprès pour éviter aux utilisateurs d'effacer du code par inadvertance. Vous pouvez effacer les éléments de la page Fichiers uniquement en cliquant droit dessus et en sélectionnant "Effacer du disque".

La page Fichiers affiche l'emplacement physique sur le disque des fichiers constitutifs du projet. Utilisez cette vue pour effectuer les mêmes opérations sur fichiers que vous feriez normalement depuis votre explorateur de fichier système, comme par exemple déplacer, copier ou effacer. Dans la mesure où LabVIEW est au courant des changements, il est capable de mettre à jour les appelants et de conserver les liens quand des changements s'effectuent.

Vous pouvez personnaliser la hiérarchie des fichiers dans l'Explorateur de projet LabVIEW sans modifier la disposition des fichiers sur disque : il est tout de même conseillé que l'organisation du Projet LabVIEW reflète la hiérarchie que vous avez déjà sur disque de façon aussi fidèle que possible.

Mise en œuvre des dossiers dans le Projet LabVIEW

Vous pouvez organiser le contenu de votre Projet LabVIEW en utilisant deux types de dossiers : les répertoires virtuels et les répertoires remplis automatiquement. Avec les répertoires virtuels, vous pouvez personnaliser l'organisation des éléments du projet sans procéder à aucune modification sur disque.

Figure n°4. Les utilisateurs peuvent choisir des dossiers virtuels ou remplis automatiquement en organisant les fichiers dans l'Explorateur de projet LabVIEW.

Les dossiers virtuels sont tout à fait adaptés si vous voulez changer l'organisation des fichiers dans LabVIEW sans procéder à des modifications dans leurs emplacements de stockage sur disque. Si vous ajoutez un dossier sur disque dans l'Explorateur de projet LabVIEW sous forme de dossier virtuel, son contenu correspondra à un instantané des fichiers sur le disque au moment où vous l'avez ajouté. Si vous procédez à d'autres changements ultérieurs, comme l'ajout de nouveaux fichiers, ces changements n'apparaissent pas dans le Projet LabVIEW. Cependant, vous pouvez effectuer des changements de façon manuelle en glissant de nouveaux fichiers dans le Projet LabVIEW ou convertir de façon temporaire le dossier virtuel en dossier automatiquement rafraîchi.

Avec ces dossiers virtuels, vous pouvez regrouper des fichiers en provenance de deux emplacements ou plus sur disque dans l'Explorateur de projet LabVIEW. Ils servent aussi à filtrer les informations affichées dans l'Explorateur de projet LabVIEW pour vous aider à déterminer si les fichiers sont groupés avec d'autres éléments inutiles.

NI a introduit les dossiers remplis automatiquement dans LabVIEW 8.5 pour refléter de façon automatique le contenu des dossiers sur disque. Les dossiers remplis automatiquement sont synchronisés vers un dossier physique, ce qui signifie qu'ils affichent toujours n'importe quel changement ou modification apporté(e) à cet emplacement en dehors de l'environnement de développement LabVIEW. Utilisez les dossiers remplis automatiquement autant que possible pour conserver la hiérarchie des dossiers sur le disque dans l'Explorateur de projet LabVIEW. Les dossiers remplis automatiquement ne sont pas conseillés pour gérer des bibliothèques de projets ni des classes LabVIEW ou au moment d'essayer de résoudre une grande quantité de références croisées.

Conseils

Utilisez les dossiers remplis automatiquement et virtuels pour mettre en place l'organisation et la structure pour les fichiers de vos applications dans l'Explorateur de projet LabVIEW. Les dossiers remplis automatiquement sont idéaux pour préserver et maintenir la structure des fichiers sur le disque dans le projet, mais il existe des cas où vous ne pouvez pas les utiliser ou alors une personnalisation est nécessaire. Dans ces cas-là, utilisez des dossiers virtuels pour personnaliser l'organisation des fichiers dans l'Explorateur de projet LabVIEW.

Dépendances

LabVIEW charge automatiquement tous les sous-VIs liés de façon statique en mémoire quand vous ouvrez le VI appelant. La partie Dépendances de l'Explorateur de projet LabVIEW est automatiquement occupée de ces mêmes sous-VIs s'ils n'ont pas été ajoutés au Projet LabVIEW au moment où le VI appelant est chargé dans l'Explorateur de projet LabVIEW. Depuis LabVIEW 8.5, les dépendances des utilisateurs sont séparées du contenu du vi.lib pour faciliter l'identification des fichiers écrits par les développeurs des applications.

Ajouter des fichiers au Projet LabVIEW indique à LabVIEW quels fichiers et ressources vont être utilisés dans une application. Vérifiez la partie des dépendances pour être sûr(e) que vous avez bien ajouté tout ce dont vous avez besoin dans votre Projet LabVIEW. Si ce n'est pas le cas, les fichiers restants figurent dans cette section. C'est une étape importante pour s'assurer que vous utilisez bien les sous-VIs voulus.

Un VI de votre projet peut être lié de façon incorrecte à un sous-VI, auquel cas lors de l'ajout dans le Projet LabVIEW du sous-VI que vous souhaitez utiliser, LabVIEW signale qu'un ou plusieurs VIs appelants risquent d'être liés à un sous-VI différent de celui attendu, portant le même nom. On parle de référence croisée.

Référence croisée

LabVIEW ouvre des sous-VIs depuis l'emplacement stocké dans le VI appelant en utilisant des chemins relatifs. Si LabVIEW ne trouve pas de sous-VI à l'endroit voulu, il recherche le sous-VI par nom. LabVIEW charge en mémoire le premier sous-VI qu'il trouve sous ce nom et informe l'utilisateur sur les liens modifiés. Dans la mesure où plusieurs VIs aux différentes fonctionnalités peuvent partager un nom commun (comme par exemple initialize.vi), ou deux versions du même VI peuvent exister dans des endroits distincts, LabVIEW peut établir un lien vers le mauvais fichier.

Figure n°5. Illustration haut niveau de référence croisée

Prévenir les références croisées

Une référence croisée se passe habituellement après avoir déplacé ou copié de grands ensembles de fichiers pour reproduire une hiérarchie de code dans un nouvel emplacement sur disque. Si des chemins relatifs changent, des liens peuvent être corrompus et votre application risque d'être liée à un mauvais ensemble de dépendances, de façon inexpliquée.

LabVIEW ne peut pas charger en mémoire deux VIs différents portant le même nom. Par conséquent, en ouvrant deux applications qui font référence à des sous-VIs séparés mais portant le même nom, cela signifie que l'une des applications s'exécute en utilisant la mauvaise dépendance.

Conseils

Il existe plusieurs mesures à prendre pour empêcher la référence croisée :

  • Évitez de travailler simultanément sur plusieurs applications avec des dépendances en commun sur la même machine
  • Utilisez des applications de contrôle du code source pour préciser avec exactitude là où les fichiers doivent se trouver et pour conserver des appelants correctement liés
  • Évitez de déplacer ou de copier des segments de votre application
  • Ajoutez tous vos fichiers dans un Projet LabVIEW pour indiquer quelles ressources vous avez l'intention d'utiliser
  • Évitez d'utiliser des noms courants comme initialize.vi
  • Qualifiez des noms communs en utilisant les bibliothèques de projets pour dissocier l'appel à deux fonctions portant le même nom

Identifier les conflits

Garantir une liaison correcte est un défi commun à tous les langages de programmation. Avancer avec précaution peut minimiser les références croisées et offrir des sauvegardes des fichiers correctement liés, mais ça reste un gros souci parmi les fournisseurs qui développent de grosses applications. Le Projet LabVIEW de LabVIEW 8.5 a introduit plusieurs nouvelles fonctionnalités qui visaient à aider les développeurs à détecter et résoudre des références croisées.

Figure n°6. LabVIEW est capable d'avertir de façon automatique l'utilisateur de la présence de conflits.

La fonctionnalité la plus utile en termes de références croisées est le fait que le Projet LabVIEW détermine si un VI est en train d'appeler un sous-VI portant le même nom qu'un fichier que vous avez ajouté au Projet LabVIEW. LabVIEW vous avertit d'un indicateur jaune sur l'icône du fichier. Il existe alors plusieurs méthodes pour trouver davantage d'informations sur les fichiers pour déterminer quel fichier est la bonne version :

  • cliquez droit sur le fichier .lvproj dans l'Explorateur de Projet LabVIEW et choisissez "Trouver les éléments sans appelant". Si vous avez des VIs non liés en dehors de votre VI de niveau principal, ils figurent ici :
  • Cliquez droit sur un VI et choisissez Trouver >> Appelants pour identifier quel VI est en train de l'appeler ou s'il n'a pas d'appelants.
  • Dans la barre d'outils du menu, choisissez Projet >> Montrer les chemins des éléments pour voir l'emplacement sur disque de tous les fichiers dans la page Éléments.
  • Cliquez sur l'icône de la barre "Résoudre les conflits..." pour voir des informations détaillées sur tous les VIs à références croisées.

Une fois que vous avez identifié les références croisées et déterminé la façon de solutionner les liens, vous pouvez procéder aux corrections de façon manuelle ou utiliser les outils de l'Explorateur de projet LabVIEW pour avancer dans le processus.

Résoudre les conflits

Il existe de nombreuses méthodes pour résoudre les conflits une fois que LabVIEW les a détectés. Suivre les conseils ci-dessous va vous permettre de préserver les liens vers les sous-VIs tout en effectuant les changements nécessaires.

Conseils

  • S'il y a des conflits dans un dossier rempli automatiquement, vous avez besoin de stopper le rafraîchissement automatique, ou de résoudre les conflits en renommant les éléments sur la page Fichiers.
  • Si un ou plusieurs appelants sont mal liés à un sous-VI en dehors de l'Explorateur de projet LabVIEW, il faut que vous reliiez ces VIs au sous-VI approprié dans le Projet LabVIEW. Cliquez avec le bouton droit sur un VI en conflit dans la fenêtre de l'Explorateur de projet LabVIEW et sélectionnez "Remplacer" dans le menu local pour choisir le bon sous-VI sur disque. Répétez ce processus pour n'importe quel autre conflit persistant.
  • Si les appelants font référence à plusieurs éléments portant le même nom, mais que seul un élément existe sur disque, vous pouvez cliquer avec le bouton droit sur un élément en conflit et sélectionner "Remplacer par l'élément trouvé par le projet" dans le menu local.
  • Si plusieurs éléments portant le même nom ont été ajoutés au Projet LabVIEW et que vous voulez les utiliser tous les deux dans votre application, renommez-les et ajoutez-les à des Bibliothèques de projet séparées afin de qualifier leurs noms.

Vous pouvez automatiser ces conseils avec la boîte de dialogue "Résoudre les conflits". Sélectionnez Projet»Résoudre les conflits dans la fenêtre de l'Explorateur de projet LabVIEW pour afficher la boîte de dialogue "Résoudre les conflits". Vous pouvez aussi cliquer sur le bouton de la barre d'outils "Résoudre les conflits" ou cliquer avec le bouton droit sur un élément en conflit dans la fenêtre de l'Explorateur de projet LabVIEW et sélectionner "Résoudre les conflits" dans le menu local pour afficher cette boîte de dialogue.

Figure n°7. La boîte de dialogue "Résoudre les conflits" invite les utilisateurs à choisir le bon sous-VI.

Cette boîte de dialogue comprend les composantes suivantes :

  • Conflits : affiche les conflits du projet par nom qualifié.
  • Comparer : compare deux VIs en conflit.
  • Utilise l'élément choisi : résout le conflit quand vous sélectionnez un élément à utiliser. Si la liste de conflits contient uniquement des éléments de niveau principal, LabVIEW supprime du Projet LabVIEW tous les éléments dans la liste de conflits à l'exception de l'élément sélectionné. LabVIEW ne peut pas modifier les dossiers remplis automatiquement dans la boîte de dialogue "Résoudre les conflits du projet". Vous pouvez manuellement résoudre ces éléments ou désactiver le dossier rempli automatiquement en cliquant avec le bouton droit sur le dossier et en choisissant "Arrêter le rafraîchissement automatique" dans le menu local.

Utilisez cette boîte de dialogue pour résoudre les conflits en redirigeant les éléments en conflit de façon à appeler des éléments dépendants à partir du bon chemin.

Résumé

En suivant les conseils de cet article, vous pouvez établir des lignes directives de développement et de gestion d'applications qui vous permettront de développer des applications d'envergure. N'oubliez pas de considérer avec intérêt l'organisation des fichiers sur disque et d'établir des critères pour trier les fichiers. Utilisez L'Explorateur de projet LabVIEW pour une visualisation au niveau système de votre application pour accéder rapidement et naviguer dans les fichiers, et profiter des outils pour détecter des références croisées.