CREATION D’UNE API DE GESTION DE PROJETS DE DEVELOPPEMENT AVEC LA METHODE B
Objectif :
Développer une bibliothèque qui regroupe l’ensemble des fonctionnalités actuelles pour consulter et manipuler un projet B, de telle sorte qu’il soit possible de remplacer, dans l’interface graphique, la couche d’appel à l’interface en ligne de commandes par des appels directs à l’API offerte par cette bibliothèque.
Contexte :
La méthode B est utilisée pour développer formellement des composants logiciels et des modèles de systèmes critiques. Atelier B est un environnement de développement intégré (IDE) pour la méthode B qui est maintenue et développée par CLEARSY. Atelier B fournit à la fois une interface graphique et une interface en ligne de commande pour gérer le développement. Il n’existe actuellement pas d’API permettant d’accéder programmatiquement à l’état d’un projet pour le consulter ou le manipuler. En effet, l’interface graphique opère en créant des processus qui instancient l’interface en ligne de commandes et en communiquant avec ces processus.
Le stage est structuré comme suit :
- Rédiger une spécification détaillée de l’API à développer : cette spécification servira d’entrant pour le développement de la bibliothèque ainsi que pour le développement du banc de test.
- Définir un calendrier par étapes de la mise en œuvre de la bibliothèque, de sa documentation, et de son banc de test (développement itératif).
- Réalisation des différentes étapes du calendrier
- Créer une nouvelle interface en lignes de commandes, compatible avec la précédente sur la partie identifiée en §2.1 et §2.2.
Contraintes technologiques :
- L’interface en ligne de commandes actuelle est en langage C. L’interface graphique est en C++. Le stagiaire devra savoir naviguer confortablement dans le code existant.
- La bibliothèque devra être accessible depuis l’interface graphique (C++), et avoir une efficacité comparable ou supérieure à celle de l’interface en ligne de commandes actuelle.
- La bibliothèque sera amenée à accéder au système de fichiers et à faire des appels à des outils externes (communication interprocessus).
- La bibliothèque devra être développée dans un langage pouvant être compilé et exécuté dans des environnements Windows, Linux, macOS, en ayant un minimum de dépendances externes.
Compétences recherchées :
- Solides connaissances de C/C++
- Gestion de configuration avec Git