Rapprocher les logiciels intégrés et les technologies de l’information

Une femme vérifiant la mise en œuvre d'un code

La capacité de mettre à jour les logiciels de manière simple et régulière est un pas dans la bonne direction. En revanche, dans le cas de produits dont la sécurité est capitale, l’utilisation d’un logiciel bogué peut être catastrophique, même pour une courte période.

Si, il y a 10 ou 20 ans, vous m’aviez demandé quelles étaient les responsabilités et les compétences d’un ingénieur en logiciel embarqué, je vous aurais donné une réponse claire, précise et cohérente. Mais de nos jours, le contexte dans lequel s’inscrivent les logiciels embarqués s’est considérablement élargi. Cette évolution conditionne les langages de programmation utilisés, la complexité des systèmes d’exploitation, les possibilités de prise en charge des besoins de l’Internet des objets (IdO) et les processus de qualité, d’un bout à l’autre du cycle de vie du développement logiciel (SDLC).

Avancer au rythme de la technologie

En tant qu’ingénieur en micrologiciels ou en systèmes embarqués, j’ai découvert qu’il était nécessaire de rester au fait des dernières avancées technologiques, même en tant que gestionnaire. À l’heure actuelle, un état d’esprit d’apprentissage continu est encore plus essentiel, car toutes les industries imposent des exigences supplémentaires en matière de connectivité.

Par exemple, prenez une conception logicielle avec des fonctionnalités de base pour un algorithme de contrôle avec des caractéristiques comme le traitement des entrées/sorties, les diagnostics et un affichage. Pour se maintenir à jour, cet appareil nécessitera des fonctions plus avancées qui étaient moins courantes dans le passé. Pour organiser et stocker les données afin d’en faciliter l’accès, il est nécessaire de disposer d’un système de base de données embarqué, plutôt que de les stocker manuellement dans la mémoire morte programmable et électriquement effaçable (EEPROM).

Un serveur Web intégré est nécessaire pour permettre à un client externe d’accéder aux données de l’appareil. Concernant l’affichage, le logiciel sera écrit en langage JavaScript et fonctionnera comme une application Web séparée. Cette étape permet aux changements apportés au contrôle dorsal de ne pas impacter l’interface graphique (et vice-versa) pour que les changements apportés à l’interface graphique soient effectués de manière indépendante – ce qui conduit à un temps de test de régression plus court.

Ces nouvelles fonctionnalités des appareils exigent que les ingénieurs de logiciels embarqués quittent leur zone de confort et commencent à comprendre les frameworks JavaScript, comme Node, React et Electron. Une connaissance des systèmes de base de données courants, du langage de balisage extensible (XML) et de la notation d’objets JavaScript (JSON) permettra également à l’ingénieur de logiciels embarqués de bénéficier d’une certaine souplesse de configuration. Les équipes d’ingénieurs de logiciels embarqués performantes se chargeront alors de ces compétences informatiques et de programmation classiques.

Connecter les systèmes, la taille et les outils

La baisse du coût de la mémoire, les microcontrôleurs plus performants dans des boîtiers plus compacts et la stabilité des distributions spécifiques aux produits embarqués ont fait de Linux une option populaire pour les produits embarqués, avec l’utilisation d’un noyau en temps réel. Les ingénieurs de logiciels embarqués ont pu utiliser des machines Unix dans le passé pour leur environnement de développement, mais ils doivent maintenant se familiariser avec les fonctions avancées que C++ et le système d’exploitation Linux peuvent offrir à la conception de leur produit, comparativement à un système d’exploitation en temps réel (RTOS) à encombrement réduit.

Les équipes d’ingénierie des logiciels embarqués flexibles devront connaître le « spectre de taille » des systèmes embarqués. Cela peut aller de la petite architecture « round-robin » sans système d’exploitation aux plus grandes architectures multicœurs et multifils qui se rapprochent d’un système PC entièrement développé », ce qui nous ramène au domaine de l’informatique.

Les outils utilisés à l’heure actuelle pour le SDLC concernent un autre domaine, où le rôle traditionnel de l’informatique et des logiciels embarqués se rejoignent. Les différents outils peuvent être configurés de manière à permettre : la vérification automatique d’un état de révision lorsqu’un fichier de code source est vérifié, la construction automatique, les tests de régression automatiques, et l’enregistrement automatique des échecs dans l’outil de suivi des bogues. La configuration de ces outils va au-delà de l’administration de base du système; elle nécessite des connaissances en matière de scripts de test automatisés, de fichiers de construction exécutables et de serveurs de construction, ainsi qu’une compréhension du processus Agile. Ce rôle est considéré comme faisant partie du DevOps (Opérations de développement) et nécessite des connaissances en informatique et en génie logiciel.

找到一个l 'equilibre之间拉rapidite et质量é

Tout au long de ma carrière dans ce secteur, j’ai fait partie de groupes de développement logiciel qui s’efforçaient de trouver un équilibre entre la publication rapide de logiciels, due à la pression d’un marché concurrentiel, et la nécessité de procéder à des contrôles de qualité rigoureux, notamment en matière de sécurité fonctionnelle. Les applications PC et Web peuvent être mises à jour fréquemment en raison de la facilité de déploiement de nouveaux logiciels sur ces environnements, tandis que les produits embarqués nécessitent généralement des processus de mise à jour plus mesurés et plus formels. Cette circonstance peut inclure notamment des révisions de code formelles, des tests unitaires, des tests de régression du système, entre autres.

我花费两个哲学是incompatibles, en raison de la prévalence de la programmation « over-the-air ». D’une part, la possibilité de mettre à jour les logiciels régulièrement et en toute simplicité est une avancée positive pour le domaine du logiciel embarqué. Cependant, les ingénieurs et les gestionnaires doivent se rappeler que pour les produits dont la sécurité est essentielle, même pour une courte période, l’exécution d’un logiciel bogué peut s’avérer catastrophique.

Ce constat est particulièrement vrai pour les dispositifs embarqués interagissant avec d’autres modules matériels, des bus de communication et des capteurs, le tout parfois dans des environnements extrêmes. Dans ce domaine, la qualité des logiciels doit dépasser l’informatique ordinaire et inclure tous les processus du SDLC.

Mettre l’accent sur les processus et les pratiques exemplaires

L’équipe multidisciplinaire d’ingénieurs logiciels actuelle d’Actalent est prête à exécuter les projets de nos clients qui requièrent un mélange cohésif de micrologiciels, de C embarqué de bas niveau, de C++ basé sur Linux au niveau de l’application, de logiciels d’application Web et d’expériences DevOps. Nous continuons à insister sur le fait que la définition traditionnelle de la qualité en ingénierie n’est pas indépendante de la création du code source ou limitée aux seuls tests; elle inclut les processus et les meilleures pratiques que tous les membres de l’équipe suivent tout au long du SDLC.

Vous souhaitez en savoir davantage sur les tendances en matière de logiciels embarqués et de technologies de l’information? Communiquez avec Actalent dès aujourd’hui.