AdaCore a dévoilé aujourd'hui les noms des gagnants de son cinquième concours annuel de programmation pour systèmes embarqués ‘« Make with Ada’ ». Le concours s'est déroulé du 31 juillet 2020 au 31 janvier 2021 et a accueilli 173 participants venant du monde entier.
L'objectif du concours était de concevoir et de mettre en œuvre un projet de logiciel embarqué dans lequel Ada et/ou SPARK sont les principales technologies de langage. Les participants devaient démontrer que leur système répondait aux spécifications qui lui étaient fixées et qu'il avait été développé en utilisant des bonnes pratiques d'ingénierie logicielle. Les projets ont été jugés sur la base de la documentation fournie dans les journaux de projets. Les prix ont été décernés aux projets qui répondaient le mieux aux critères de fiabilité des logiciels, d'ouverture, de coopération, d'inventivité et de « buzz factor » pour la communauté technologique en général.
«Après avoir découvert l'existence du firmware Ada pour le nano drone Crazyflie 2.0, j'ai commencé à le tester et j'ai pu comprendre les fonctionnalités de base en quelques semaines…J'ai l'intention de poursuivre mes implémentations du firmware du drone avec Ada et de les rendre open source pour tous les passionnés.»
Cette année, le premier prix, d’un montant de 2 000 dollars, est attribué à Tharindu Suraj Liyanage, fondateur et PDG de la start-up SRQ Robotics spécialisée dans les drones, pour son projet « Autonomous Crazyflie with ToF Sensors ». Le drone Crazyflie est doté de plusieurs capteurs qui lui permettent de voler, mais aucun d’entre eux ne peut identifier des obstacles ou la distance réelle par rapport au sol. Les objectifs du projet étaient d'intégrer des capteurs de mesure du temps de vol dans le firmware existant du drone, développé en Ada/SPARK par AdaCore, et de mettre en œuvre des fonctions autonomes telles que le maintien en altitude.
« Je mets en œuvre des firmware customisés pour les drones depuis cinq ans », explique M. Liyanage. « Après avoir découvert l'existence du firmware Ada pour le nano drone Crazyflie 2.0, j'ai commencé à le tester et j'ai pu comprendre les fonctionnalités de base en quelques semaines. La simplicité de ce firmware m'a aidé à mettre en place mes propres fonctions tandis que les bibliothèques Ada disponibles m'ont permis d'intégrer différents types de capteurs dans le drone. J'ai l'intention de poursuivre mes implémentations du firmware du drone avec Ada et de les rendre open source pour tous les passionnés. »
Le prix Etudiant, d’un montant de 1 000 dollars, a été attribué à Ahmed Hamdy, un étudiant en master en Computer & Systems Engineering à l'Universiti Teknologi Malaysia à Kuala Lumpur, en Malaisie, pour son driver d’accéléromètre en Ada couplé à un jeu de stabilité nerveuse. Il a utilisé le langage Ada pour écrire un pilote d'accéléromètre pour LSM303AGR sur un BBC:MicroBit v1.5, puis a utilisé ce pilote pour réaliser un petit jeu qui met le joueur au défi de maintenir le MicroBit dans une position presque plate où l'accélération le long des axes X et Y est proche de zéro.
Dix finalistes ont également reçu 600 dollars chacun. Parmi les contributions remarquables, on peut citer :
- Un dispositif numérique de surveillance de la pression artérielle
- Un système de surveillance de fuites des gaz et de ventilation pour les espaces confinés
- Une porte d’accès intelligente avec radar
- Un appareil de surveillance de la pollution urbaine
« Cette année, les projets ‘’Make with Ada’’ ont apporté des contributions exceptionnelles qui ont permis de tirer parti des capacités uniques d'Ada pour aider les programmeurs à fournir des logiciels de haute qualité », a déclaré Bill Wong, co-juge et rédacteur en chef de la rubrique Technologie chez Electronic Design. « Les projets ont touché à presque tous les aspects des applications embarquées, y compris les logiciels pour drones, ce qui montre qu'Ada et SPARK sont applicables partout. »
« Cette année, les projets ‘’Make with Ada’’ ont apporté des contributions exceptionnelles qui ont permis de tirer parti des capacités uniques d'Ada pour aider les programmeurs à fournir des logiciels de haute qualité »
« Nous avons été heureux de voir un plus grand nombre de candidatures de la part des étudiants cette année », a déclaré Fabien Chouteau, ingénieur logiciel d'AdaCore et auteur de la série d'articles du blog Make with Ada. « Tant de choses peuvent être apprises grâce à ce type de concours. Nous espérons qu'une sensibilisation précoce aux principes de génie logiciel d'Ada et de SPARK auront permis à tous nos participants d'acquérir des compétences fondamentales qu'ils pourront utiliser tout au long de leur carrière professionnelle. »
Le concours « Make with Ada » s'inscrit dans le cadre d'une démarche globale d'AdaCore visant à favoriser la croissance d'Ada et de SPARK pour le développement de systèmes embarqués et plus généralement pour le développement de logiciels qui sont importants. Pour ceux qui découvrent ces langages ou qui souhaitent rafraîchir leurs connaissances en programmation, AdaCore a développé une plateforme interactive d'apprentissage en ligne pour apprendre Ada et SPARK (learn.adacore.com). :
D'autres éléments de cette démarche comprennent également des ressources pour les développeurs de logiciels libres et les étudiants/hobbystes dans le dépôt GitHub (github.com/AdaCore), et l'environnement de développement gratuit de la communauté GNAT disponible en téléchargement (adacore.com/community).
A propos d’Ada et de SPARK
Ada est un langage de programmation moderne, normalisé au niveau international, qui a fait ses preuves depuis longtemps dans le développement de systèmes embarqués à haute fiabilité. Sa forte capacité de vérification à la compilation permet de détecter les erreurs à un stade précoce, lorsqu'elles sont les plus faciles et les moins coûteuses à corriger. La version la plus récente de la norme Ada, Ada 2012, prend en charge la programmation basée sur des contrats (conditions préalables et postérieures pour les sous-programmes), qui intègre en fait les exigences de bas niveau du logiciel sous forme d'assertions vérifiables dans le code source.
Dans les systèmes critiques où les tests seuls pourraient ne pas fournir une confiance suffisante, le sous-ensemble SPARK d'Ada prend en charge l'assurance mathématique que les propriétés pertinentes du programme sont respectées (par exemple, l'absence d'erreurs d'exécution telles que le débordement de la mémoire tampon). SPARK peut être introduit progressivement dans un projet, et les contrats peuvent être vérifiés soit statiquement (par le moteur de vérification de SPARK), soit dynamiquement (avec des contrôles d'exécution).