Les développeurs d’applications embarquées doivent faire face à des problèmes plus complexes que leurs confrères développeurs d’applications classiques.
Le choix d’une solution solide de Gestion de la Configuration Logicielle peut les aider à relever les défis auxquels ils doivent faire face : gérer des ensembles étendus et complexes de fichiers, fonctionner dans des environnements de développement distribués, et participer à la gestion de la propriété intellectuelle.
Perforce est de plus en plus utilisé dans les secteurs de l’électronique pour aider à accélérer les développements et le prototypage, comme pour améliorer le travail d’équipe autour de la conception des produits.
Parmi les clients de Perforce dans ce secteur on trouve CSR, Harman Becker, National Instruments, Zoran, Nvidia et TomTom.
Pour répondre aux contraintes de leur secteur, les développeurs d’applications embarquées doivent être d’autant plus exigeants quant au choix de leur solution de Gestion de la Configuration Logicielle. En effet, au-delà du besoin classique d’une application rapide, simple d’emploi et facile à administrer, une application de GCL utilisée dans le développement d’applications embarquées doit en outre être capable de gérer des ensembles étendus et complexes de fichiers, de fonctionner dans des environnements de développement distribués, et de participer à la gestion de la propriété intellectuelle.
Premier défi: gérer des ensembles étendus et complexes de fichiers
Les systèmes embarqués sont composés de nombreux composants, hardware et software. Par exemple, une puce intelligente combine des schémas, du code RTL, des données GDS, des drivers logiciels, du middleware et même un OS et des applications. Chaque système est complexe et peut contenir des variantes d’un même composant. De plus chaque système a lui-même des variantes propres à une région ou à une plateforme de telle sorte qu’un même produit puisse être vendu dans sur des marchés aux besoins différents (par exemple plusieurs versions d’un même téléphone pour les différents marchés mondiaux). Les fichiers auxiliaires, comme les jeux de tests, peuvent changer alors que les composants en cours de test sont eux-mêmes modifiés. Cependant, un build complet requiert la version correcte de chacun des composants. Le défi est de s’assurer de la corrélation entre chaque composant et ses fichiers auxiliaires.
Deuxième défi: fonctionner dans des environnements de développement distribués
Les composants des systèmes embarqués sont souvent développés sur des sites géographiques multiples. Dans certains cas des équipes outsourcées travaillent sur le même composant. Dans ces circonstances, le développement collaboratif suppose que chaque développeur ait accès en temps réel au travail de ses collègues. Le défi est de s’assurer que les différentes équipes de développement restent synchrones.
Troisième défi: participer à la gestion de la propriété intellectuelle
Les systèmes embarqués sont souvent intégrés à des technologies tierces. Dans ce cas les développeurs de tierces-parties doivent être en mesure de mettre à jour leurs contributions. Ces mises à jour doivent être répertoriées et il doit être possible de les suivre de telle sorte que les produits restent composés de versions à jours, compatibles et stables.Le défi est de permettre à chaque éditeur de contrôler et de suivre leurs contributions.
Un bon système de Gestion de la Configuration Logicielle doit être rapide et efficace, de telle sorte que les Développeurs ne soient pas tentés de le contourner. Il doit également être suffisamment souple pour gérer les complexités propres au développement d’applications embarquées.
Voici quelques bonnes pratiques à adopter pour qu’une solution efficace et bien déployée de GCL mette de l’ordre dans un environnement complexe.
Pour assurer la gestion d’ensembles étendus et complexes de fichiers, il faut organiser les fichiers de façon cohérente et effectuer de bons builds
Les branches logicielles peuvent être utilisées pour isoler le code expérimental du code de production, ou encore pour isoler une version. Il faut choisir avec soin la source à partir de laquelle la branche est créée, par exemple pour incorporer une technologie tierce sur un composant. Avec une bonne solution de Gestion de la Configuration Logicielle on peut créer des branches et définir les relations entre les branches. Les branchements doivent se faire de telle sorte que la consommation d’espace disque soit réduite, en utilisant la technique du « lazy copying » par exemple. Cette technique permet de ne copier que les différences sans recopier ce qui est équivalent d’une branche à une autre. Ainsi les branches qui contiennent un grand nombre de fichiers peuvent être créées rapidement et sans nuire aux performances ou aux coûts.
Méthodes à considérer pour faire mieux fonctionner des environnements de développement distribués
Pour participer à la gestion de la propriété intellectuelle