Axe dynamique
Définition : Description de l'axe
Cet axe permet de décrire le fonctionnement de la partie logicielle pendant son fonctionnement.
En fonction de la problématique, les diagrammes suivants sont utilisés :
Diagramme de séquence (sd). Il montre les appels entre les objets, les acteurs en suivant un scénario. Il peut être plus ou moins précis mais doit rester cohérent.
Diagramme d'états. Dans un système, ce diagramme montre clairement les états de fonctionnement, les conditions et événements ayant une incidence pour en changer.
Diagramme d'activités (act). Il montre l'activité intéressante d'une partie de l'application. Il met en évidence les parallélismes logiciel, les synchronisations entre processus ou threads.
Diagramme états transitions du système général
Notre système comporte 2 états.
Quel que soit l'état dans lequel il se trouve, il est possible d'arrêter le système.
La transition start permet de lancer les tâches parallèles (threads) des capteurs.
La transition stop permet de stopper les threads.
L'état Mesurer effectue un certain nombre d'actions détaillées dans le diagramme d'activités associé suivant.
Diagramme d'activités de l'état système Mesurer
Ce diagramme met en évidence les besoins informatiques :
Le parallélisme des activités de lecture des capteurs et de gestion des périphériques de communication.
Le segment de mémoire partagé est central. Certaines activités ont besoin d'y écrire tandis que d'autres y lire. Comme les activités s'exécutent en parallèle, il sera nécessaire de protéger le segment de mémoire partagé des accès concurrents. La mise en place d'un mutex solutionnera le problème.
La nécessité de disposer de trois paramètres différents pour chaque intervalle de temps.
Rappel : Mutex
Un mutex (mutual exclusion) est un objet dépendant du système d'exploitation et réglementant l'accès à une ressource.
Un processus qui utilise la ressource empêche les autres processus d'y accéder. Ils se mettent en veille jusqu'à libération de la ressource.
Complément : Mutex et Qt
Il existe la classe Qt QSharedMemory
dont le rôle est de gérer un segment de mémoire partagé.
Il se trouve que cette classe inclue un objet QMutex
permettant précisément de protéger les accès. Pas mal non ?
Remarque : Cycle de développement
Le développement d'une application est le plus souvent itératif et incrémental.
Chaque itération a pour objectif de construire une partie du système.

Chaque itération est développée en suivant un cycle de développement en V.
Au cours d'une itération, les exigences sont étudiées, l'analyse est faite, formalisée par le langage SysML associé à une documentation, le codage effectué ainsi que les tests de validation, intégration et la recette finale.
La fonctionnalité peut alors être déployée.
Ce cycle recommence pour chaque itération afin de compléter toutes les fonctionnalités du système.
Le dossier actuel ne rend pas compte de cette manière de développer car il ne s'agit que d'une synthèse à usage pédagogique orienté sur le développement informatique et non sur le génie logiciel.