Software Design

Notre approche

Le logiciel tient une place importante dans nos conceptions de calculateurs et de cartes électroniques complexes, alliant différentes couches d’exploitation du système et sa logique de validation.


Les compétences logiciel de notre bureau d’études vont des couches basses jusqu’à l’IHM opérateur en passant par l’installation d’OS, le développement de middleware et d’API système ainsi que de logiciel de tests unitaires ou de VBF automatique.  

 

Nous avons également les capacités de développer des applicatifs opérationnels sur spécification. Notre équipe projet et les développeurs assurent les livraisons, la configuration, le déploiement et le suivi des validations sur vos équipements.

 

Les équipes ont déjà exploitées différentes méthodes de développement logiciel qu’elles soient de type Agile, Cycle en V, sur différents niveaux : boite noire, middleware…

Compétences techniques

Nos équipes de développeurs ont des compétences sur des architectures diverses, aussi bien au niveau matériel que logiciel.

Leur expertise couvre les architectures type x86 32 et 64bis, ARM sur carte SBC ou module SoC (Xilinx Ultrascale +, MicroSemi PolarFire)

Sur ces architectures les équipes déploient des Systèmes d’Exploitation COTS (Distribution Linux Ubuntu Fedora, Windows®), embarqués (ElinOs de SYSGO, VxWorks de Windriver, PETALinux, Yocto, FreeRTOS)

environnement de développement

Moyens

Le processus de développement est régie par des process interne et des règles métiers en respect de la certification ISO 9001.

Des documents de conception et de validation sont créés et enrichis au cours des études.

Chaque fonction rédigée et codée est validée par des tests unitaires.

Les équipes utilisent les outils de gestion de configuration tels que GIT et MANTIS pour la gestion des faits techniques relevés durant les développements et afin de les traiter de manière efficace.

gaci logiciel process

Nos équipes sont rompues au développement sous différents langages : C, C++ majoritairement pour les parties couche-basses et middleware.

Les langages C++ et Python sont quant à eux privilégiés pour l’écriture des logiciels de test haut niveau ou les IHM et logiciels de validation fonctionnelle (VBF) des bancs de tests.
Pour accélerer les développements d’applications multi-taches, l’utilisation d’API telles que Zmqueue et Poco sont intégrées dans les codes.

Pour les bancs de test servant à la validation de bon fonctionnement des équipements pendant les phases de qualification et d’industrialisation, les équipes mettent en place des tests automatisés avec generation de rapports basés sur Robotframework.

Récemment un nouveau défi est relevé par les équipes logiciel pour assister leur collègues VHDL dans leurs projets :

La prise en main et la maîtrise du langage HLS (High Level Software)

développé et utilisé par Xilinx pour ses FPGA hautes performances et sur toute la famille VERSALE.
Ce langage optimisé pour les cibles Xilinx donne la possibilité, en fonction des besoins de disponibilité des personnes ou de complexité des design, de partager le travail.

Une fois les développements finalisés et livrés, nous assurons le SAV sur les parties logiciel pendant 12 mois.
Ce suivi dans le cadre de la garantie GACI comprend les correctifs de faits techniques lorsque ceux-ci sont avérés.
Toutefois, en accord nos clients, ce suivi peut également se compléter par un MCS (Maintien en condition de Sécurité) : la mise en place de ce contrat déclenche le suivi de failles de sécurité pouvant être découvertes, l’étude de correctifs et leur application avec tests de non-régression dans le cas où les correctifs sont applicables. Un rapport est également généré une à deux fois par an.

 

Cybersécurité

Lors de la génération des OS embarqués dans les systèmes, du développement et déploiement des logiciels, un soin tout particulier est apporté aux éléments non nécessaires : par exemple, les services de connexion distance non requis sont désactivés dans les noyaux, les ports IP utilisent des numéros non communs, en résumé tout point d’entrée pouvant être considéré comme une faille et non nécessaire est systématiquement retiré.

Logiciel couche basse

Applications :

  • Middleware
  • Hardware services Abstraction
  • API / library
  • Services
  • Fire-control system

 

Features :

  • UML design
  • Embedded Linux : ElinOS
  • PREMPT-RT
  • C++ API, ADA binding
  • Poco Technical Framework
  • ZMQ distributed messaging

low level software

Defense Avionic Recorder

Applications :

  • Video recorder
  • Streaming (MPEG-TS, H264)

 

Features :

  • FPGA conversion CSI/HD-SDI
  • Intel Atom Hardware video decode for H264
  • CSI module vor V4L2 kernel subsystem
  • Gstreamer Plugin for CSI acquisition
  • Secure erase
  • Built in test

Server Deployment

Features

  • Digital power line carrier equipment for power distribution network
  • Digital signal processing
  • Xilinx, PowerQuick 2

 

Design

  • Hardware
  • VHDL
  • controlled impedance power interface
  • test bench
Project example

Project Example

Applications

  • Product Functions + Env + Usage
    • Fn1
    • Fn2

 

Features

Logical features (Example) :

  • Architecture CPU : imx6 target
  • Bootloader : Uboot integration on imx6 target
  • Kernel, Driver & BSP : 
  • v4l2 subsystem driver development
  • Software : Zmq pattern, Poco & Gstreamer plugin