Une question de compétence

Le développement logiciel et l’ingénierie système vont ensemble chez Innovation Codotek. Nous agissons en en tant qu’ingénieur système dans les domaines de la programmation logicielle, du développement d’algorithmes, de la programmation FPGA, de la programmation de microcontrôleurs et de la conception électronique. De plus, pour les clients intéressés, nous pouvons prendre en charge la gestion des requis de projets.

Différents types de diagrammes MBSE (Model Based System Engineering) représentent différents aspects d’un projet. Plusieurs ensembles de diagrammes différents représentent un projet dans ses diverses facettes. Un peu comme le font les diagrammes UML dans l’architecture logicielle.

Chez Innovation Codotek, le but de notre utilisation du MBSE n’est pas de tout définir sous forme de diagramme. Essayer de tout définir est souvent contre-productif. L’idéal est de bien comprendre le type de projet ainsi que son envergure et d’établir un plan d’action approprié. Le but est d’assurer une bonne compréhension du projet et non pas d’y attacher des contraintes de gestion abusives. On se concentre surtout sur les parties les plus complexes. Le but final de tout ce travail est de livrer un produit de qualité qui respecte le temps accordé et le budget.

Il est humainement impossible de garder en tête tous les éléments et tous les détails d’interactions entre les différentes parties d’un système complexe. Il est cependant facile de le faire lorsque le système est schématisé. Ce type de représentation repousse donc les limites de raisonnement, favorisant ainsi la création de nouvelles idées novatrices.

Par ailleurs, des oublis coûteux et des délais affectent les projets sur le long terme lorsqu’une équipe se précipite trop rapidement à la phase de conception.

Exemple d’ingénierie système dans un développement logiciel

Vous avez débuté la conception d’un logiciel pour vous connecter à un capteur de température. Tout allait bien jusque ici. Vient le moment où l’on veut ajouter plusieurs capteurs de vitesse, de vent et d’humidité. On veut aussi contrôler les paramètres de chacun tout en sauvegardant les donnés en fonction de leur localisation. Vous allez alors assurément perdre énormément de temps pour adapter l’architecture de votre code qui devra supporter de nouvelles fonctionnalités. Avec une architecture de code appropriée, il est possible de le faire. L’idéal reste encore de le faire correctement dès le départ.

Vous aurez aussi une surprise en apprenant que les capteurs ne peuvent tous sauvegarder les données à la même fréquence. Ou encore que la communication avec les circuits de contrôle nécessite un protocole différent. Dans ce cas-ci, vous aurez peut-être plus que du code à refaire. Les circuits de contrôles ou les protocoles de communication seront peut être à modifier et, dans ce cas, les délais seront beaucoup plus grand.

Comment de l’ingénierie système peut-elle éviter ces problèmes?

Rapidement, Innovation Codotek peut utiliser les outils du MBSE (Model Based System Engineering) et visualiser les liens entre les différentes composantes d’un système.

Dans l’exemple précédent, un simple diagramme d’utilisation aurait permis de prévoir la connexion de plusieurs capteurs en parallèles. La bonne architecture logicielle aurait alors tout de suite été développée.

Quant à lui, un simple diagramme de bloc aurait permis de voir les problèmes d’incompatibilité entres les différents capteurs.

La visualisation haut niveau d’un système et sous différentes facettes est un investissement payant dans un projet. Chez Innovation Codotek, nous avons compris que le développement logiciel et l’ingénierie système allaient ensemble.