Ajouter un commentaire

Par :
Frédéric Mazué

jeu, 27/11/2008 - 15:07

Nombreux sont les équipements modernes qui embarquent aujourd’hui du logiciel informatique: équipement de voix sur IP, téléphones, décodeurs de télévision sur IP, équipements réseaux… La liste est longue et ne cesse de croître.
Pour tous ces équipements les équipes de R&D produisent un grand nombre de prototypes, dont très peu sont finalement retenus, et quand ils le sont les impératifs commerciaux nécessitent que de nombreuses variantes soient développées très rapidement pour satisfaire les clients existants et pour en séduire de nouveaux. Un outil GCL tel que Perforce apporte une solution, à ce problème

Nombreux sont les équipements modernes qui embarquent aujourd’hui du logiciel informatique: équipement de voix sur IP, téléphones, décodeurs de télévision sur IP, équipements réseaux… La liste est longue et ne cesse de croître.
Pour tous ces équipements les équipes de R&D produisent un grand nombre de prototypes, dont très peu sont finalement retenus, et quand ils le sont les impératifs commerciaux nécessitent que de nombreuses variantes soient développées très rapidement pour satisfaire les clients existants et pour en séduire de nouveaux.
Parmi les variantes développées le plus souvent on trouve les déclinaisons sous plusieurs OS, langues, types d’applications...
La gestion de ces variantes devient très vite une nécessité et requiert des procédures et des outils adaptés. Ce sont les procédures de gestion des variantes qui permettent d’identifier et de gérer les éléments communs à l’ensemble d’une ligne de produits, comme ceux qui sont spécifiques à certaines variantes. Cela suppose de garder trace des éléments qui ont été livrés et de savoir à qui ils ont été livrés.

Une bonne gestion des variantes doit permettre de faire tout cela sans pénaliser la réactivité des développeurs et de l’activité commerciale.

Cette bonne gestion peut être assurée par l’utilisation de certains logiciels de Gestion de la Configuration Logicielle (SCM ou GCL).
L’adoption d’une solution de ce type suppose un changement d’attitude de la part des industries de l’électronique car la culture du hardware est très différente de celle du software, déjà largement acquis à l’utilisation de solution de Gestion de la Configuration.
Pourtant certaines des entreprises du monde de l’électronique ont déjà sauté le pas et bénéficient pleinement de l’apport de la GCL. C’est ainsi que plusieurs d’entre elles ont commencé à utiliser Perforce pour les aider à gérer le développement de leurs matériels qui embarquent du logiciel informatique. Parmi eux citons National Instruments, NVIDIA, Palm, Trolltech, UIQ, Qualcomm, Silicon Graphics, Sun Microsystems ou encore Matrix Semiconductors.

Pour clarifier les idées, voici quelques uns des atouts que la GCL peut apporter aux entreprises des marchés de l’électronique :

Favoriser le développement collaboratif Un produit fini se compose de nombreux éléments: du code source, de la documentation, des prototypes, des scénarios de tests… Tous ces éléments sont la base de ce qui est livré aux consommateurs, donc utiliser un même lieu de stockage pour l’ensemble parait sensé. Les outils de GCL en sont capables mais s’ils sont trop centrés sur l’utilisation qu’en font les développeurs, les autres populations d’utilisateurs risquent de ne pas les apprécier. Cela risque même de renforcer leur impression que la GCL est réservée à la gestion du code source, des illustrations et des documentations. L’utilisation d’un seul outil pour l’ensemble des utilisateurs permet de plus de réduire les contraintes administratives liées à l’utilisation de deux outils. De plus l’ensemble des utilisateurs disposent ainsi d’une meilleure visibilité sur l’ensemble du projet de telle sorte que les décisions peuvent être prises en pleine connaissance des dernières données du projet.

Une gestion des branches et des merge efficace Dans un outil de GCL chaque variante d’un produit suppose la création d’une branche dédiée, même si parfois les différences entre les variantes et le produit principal sont minimes. Quand on gère des centaines de variantes, sans compter les branches personnelles de développement, il est essentiel que l’outil de GCL que l’on utilise la technique du « lazy copying ». Cette technique permet de ne copier que les différences sans recopier ce qui est équivalent d’une branche à une autre. En effet la copie systématique de l’ensemble des fichiers d’une variante résulterait dans l’utilisation d’un espace disque énorme et dans la nécessité de mettre à jour un même fichier de multiples fois si celui-ci est modifié. Il est aussi essentiel que la solution de GCL soit capable de déterminer ce qui a déjà fait l’objet d’une branche ou d’un merge dans les différentes variantes. En effet la propagation de modifications d’une branche à une autre peut poser de gros problèmes si la solution de GCL ne sait pas se remémorer les branches ou les merge précédents. Cela résulterait dans la dégradation linéaire des performances dans le temps.

La liberté de développement Les entreprises des marchés technologiques sont exposées à de fréquents changements imposés par de nouvelles conditions de marchés, par des améliorations technologiques ou de méthodes de travail. Concepteurs et développeurs doivent être capables de changer leurs procédures et leurs outils doivent être suffisamment flexibles pour s’adapter. De tous les outils utilisés l’outil de GCL doit être le plus flexible car son remplacement serait coûteux et complexe dans la mesure où il permet de stocker l’ensemble du code source et des actifs numériques comme les valeurs historiques indispensables à tout audit. Voici les caractéristiques importantes d’une solution de GCL pour qu’elle reste flexible et adaptée aux besoins :

• Elle doit être rapide et ne pas gêner les utilisateurs qui ne doivent pas modifier leurs habitudes de travail pour s’adapter aux défauts du système.

• Elle doit être simple à prendre en main et les utilisateurs avancés doivent disposer d’une aide efficace dans l’utilisation des fonctionnalités moins communément utilisées.

• Elle doit s’intégrer parfaitement aux autres outils et systèmes
Ces caractéristiques sont le gage d’une utilisation étendue, parfois même pour des tâches réalisées manuellement auparavant, comme le suivi des modifications non essentielles.

Autoriser le travail collaboratif à distance Que les équipes aient accès ou non au même réseau privé, et qu’elles travaillent ou non dans le même fuseau horaire, une bonne solution de GCL doit aussi permettre aux équipes de collaborer à distance. Si les équipes n’ont pas accès au même réservoir de données, une bonne solution de GCL doit leur permettre d’accéder à des instantanés du code source et des données à échanger aussi simplement que possible. L’utilisation d’une solution de GCL adaptée pour la gestion des prototypes produit rapidement des effets positifs.

Permettre le prototypage rapide Le prototypage rapide est une technique populaire qui permet de faire évoluer rapidement des concepts électroniques vers la production. Cependant la vitesse avec laquelle le logiciel embarqué et le firmware évoluent dans les premiers stades du prototypage peut déboucher sur des problèmes du fait du grand nombre de variantes et de versions produits en un temps limité. Par exemple, les modifications apportées à une fonctionnalité dans une variante ont-elles été propagées à l’ensemble des variantes qui utilisent le même code, d’autant plus que certains prototypes peuvent contenir des milliers de fichiers. Le problème du stockage de toutes les variantes se pose également, surtout si l’ensemble des fichiers de chacune est stocké systématiquement, alors même que certaines variantes ne diffèrent que très légèrement, ce qui entraine le stockage de nombreux fichiers identiques. Les solutions de GCL règlent ce problème et un nombre croissant de concepteurs les utilisent pour les aider dans leurs prototypages rapides. De plus en plus utilisées, notamment pour la conception d’équipements électroniques qui embarquent du logiciel, une solution de GCL donne aux équipes de concepteurs un cadre de travail collaboratif qui leur permet le prototypage rapide, ainsi que des gains de temps et d’espace de stockage considérables. Le rôle des solutions de GCL est d’enregistrer l’ensemble des fichiers qui ont existé dans le cadre d’un projet. Elles permettent aussi de mémoriser l’ensemble des fichiers qui ont trait à une release (ou à un build) importante du projet (les « configurations »). Elles permettent enfin de créer des branches ou de faire des merge à partir de ces configurations. La technique du «lazy copying » limite la consommation d’espace de stockage lors de la création de nouvelles variantes, ce qui permet de créer de nouveaux prototypes très rapidement et en consommant un minimum de ressources. Les prototypes retenus peuvent ensuite faire l’objet d’un merge avec la branche principale de développement, alors que ceux qui ne sont pas retenus peuvent être ignorés, sans pour autant être complètement oubliés, au cas où…

A propos de l'auteur

Frédéric Mazué

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
     J  PPPP   FFFF  BBBB       J 
J P P F B B J
J PPPP FFF BBBB J
J J P F B B J J
JJJ P F BBBB JJJ