• Aucun résultat trouvé

Chapitre V : Etude de cas 81

V.3 Phase de conception 95

V.3.1 Etape 2a : Conception des stratégies de détection

Les stratégies de détection d’erreurs sont déterminées à partir de la table 11. Dans la matrice de traçabilité, le tableau suivant regroupe les colonnes « 1- Types de défaillance logicielle » et « 3- Stratégie de détection d’erreur » définies en section III.4.

1- Type de Défaillance

spécifique

3- Stratégie de Détection d’erreur

D1a : Flot de données : Valeur

échangée non voulue

L’assertion exprime les conditions dans lesquelles la valeur d’une donnée est nominale.

Les éléments de la condition et la donnée considérée sont donc tracés.

Si l’assertion n’est pas vérifiée, une erreur est notifiée. D1b : Flot de

contrôle : Séquence d’exécution non

voulue

L’assertion exprime les conditions dans lesquelles une séquence d’algorithmes de calcul ou d’évènements de contrôle est nominale. Les éléments de la condition et l’algorithme de calcul ou

évènement de contrôle considéré sont donc tracés. Si l’assertion n’est pas vérifiée, une erreur est notifiée. D2 : Flot de

contrôle : Temps d’exécution trop

long

L’assertion exprime les conditions dans lesquelles le temps d’exécution d’un algorithme de calcul est interdit.

Les éléments de la condition et l’algorithme de calcul considéré sont donc tracés.

Si l’assertion est vérifiée, une erreur est notifiée. D3 : Flot de

contrôle : Transition invalide

L’assertion exprime les conditions dans lesquelles un évènement de contrôle ne doit pas se produire.

Les éléments de la condition et l’évènement de contrôle considéré sont donc tracés.

Si l’assertion est vérifiée, une erreur est notifiée. D4 : Flot de

contrôle : Transition non

voulue

L’assertion exprime les conditions dans lesquelles un évènement de contrôle doit se produire.

Les éléments de la condition et l’évènement de contrôle considéré sont donc tracés.

V.3.2 Etape 2b : Conception des stratégies de recouvrement

Les stratégies de recouvrement d’erreurs sont déterminées à partir de la table 12. Dans la matrice de traçabilité, le tableau suivant regroupe les colonnes « 1- Types de défaillance logicielle » et « 5- Stratégie de recouvrement d’erreur » définies en section III.4.

1- Type de Défaillance

spécifique

5- Stratégie de Recouvrement d’erreur

D1a : Flot de données : Valeur

échangée non voulue

Erreur notifiée : la valeur de la donnée est erronée.

Le type de recouvrement choisi est par poursuite : annuler la valeur échangée, transmettre une valeur par défaut

D1b : Flot de contrôle : Séquence d’exécution non

voulue

Erreur notifiée : La séquence d’exécution est erronée. Interrompre la séquence en cours.

Recouvrement par reprise : Rétablir une bonne séquence. D2 : Flot de

contrôle : Temps d’exécution trop

long

Erreur notifiée : Le temps d’exécution d’un algorithme de calcul est erroné.

Interrompre l’algorithme de calcul en cours.

Recouvrement par poursuite : Déclencher un mode dégradé D3 : Flot de

contrôle : Transition invalide

Erreur notifiée : La requête de transition est manquante. Recouvrement par compensation : Déclencher la transition. D4 : Flot de

contrôle : Transition non

voulue

Erreur notifiée : La requête de transition est erronée.

V.3.3 Etape 2c : Conception des stratégies de l’instrumentation

La stratégie de détection d’erreur (V.2.3) indique les informations à capturer pour les différentes assertions. L’implémentation est précisée en V.2.6. Dans la matrice de traçabilité, le tableau suivant regroupe les colonnes « 1- Types de défaillance logicielle » et « 4- Sondes logicielles » définies en section III.4.

1- Type de Défaillance spécifique 4- Sondes logicielles D1a : Flot de données : Valeur échangée non voulue

Condition : capturer l’identifiant de Task_Clim_C avant son exécution

Données : capturer l’identifiant et la valeur de Var_HF_1 à Var_HF_10 et Var_MS_1 à leur écriture

D1b : Flot de contrôle : Séquence d’exécution non voulue Condition :

Algorithmes de calcul : capturer l’identifiant, l’instant de

démarrage, l’instant de terminaison de Runnable_Clim_HF, Runnable_Clim_MS, Runnable_Clim_WM

D2 : Flot de contrôle : Temps

d’exécution trop long

Condition : capturer l’identifiant et la valeur de Var_FC_1 à sa lecture

Algorithme de calcul : capturer l’identifiant, l’instant de démarrage, l’instant de terminaison, et 10ms après le démarrage de

Runnable_Air_FC

Task_Clim_P Var_HF_1 Task_Clim_C

Var_HF_10 Var_MS_1 Données produites Données Consommées

Task_Clim_P Var_HF_1 Task_Clim_C

Var_HF_10 Var_MS_1 Données produites Données Consommées Runnable_Clim_WM Runnable_Clim_MS Runnable_Clim_HF Runnable_Clim_WM Runnable_Clim_MS Runnable_Clim_HF 0 25 ms 25 ms t Runnable_Clim_WM Runnable_Clim_MS Runnable_Clim_HF Runnable_Clim_WM Runnable_Clim_MS Runnable_Clim_HF 0 25 ms 25 ms t Données Consommées Task_Air_FC Var_FC_1 Var_FC_5 <10ms Données Consommées Task_Air_FC Var_FC_1 Var_FC_5 <10ms

D3 : Flot de contrôle : Transition invalide

Condition : capturer l’identifiant de Task_Trans_SM, Task_Trans_Mod1, Task_Trans_Mod2 avant son exécution

Evènement de contrôle : capturer l’instant d’appel et le paramètre (tâche activée) de ChainTask()

D4 : Flot de contrôle : Transition non

voulue

Condition : capturer l’identifiant de Task_Trans_SM, Task_Trans_DC avant leur exécution

Evènement de contrôle : capturer l’instant d’appel et le paramètre (tâche activée) de ChainTask(), capturer l’état de l’alarme Al_Trans_SM avant l’exécution de Task_Trans_SM

La stratégie de recouvrement d’erreur (V.2.4) indique les actionneurs logiciels à utiliser pour réaliser le recouvrement. L’implémentation est précisée en V.2.6. Dans la matrice de traçabilité, le tableau suivant regroupe les colonnes « 1- Types de défaillance logicielle » et « 6- Actionneurs logiciels » définies en section III.4.

1- Type de Défaillance spécifique 6- Actionneurs logiciels D1a : Flot de données : Valeur échangée non voulue

Annuler la valeur échangée erronnée, transmettre une valeur dégradée : les données erronées peuvent être Var_HF_1 à Var_HF_10 et Var_MS_1. La valeur dégradée est spécifique à chaque donnée. Task_Trans_SM Task_Trans_Mod1 Task_Trans_Mod2 ou active Task_Trans_SM Task_Trans_Mod1 Task_Trans_Mod2 ou active Task_Trans_SM Al_Trans_SM Task_Trans_DC ou active Task_Trans_SM Al_Trans_SM Task_Trans_DC ou active

Task_Clim_P Var_HF_1 Task_Clim_C

Var_HF_10 Var_MS_1 Données produites Données Consommées

Task_Clim_P Var_HF_1 Task_Clim_C

Var_HF_10 Var_MS_1 Données produites Données Consommées

D1b : Flot de contrôle : Séquence d’exécution non

voulue

Interrompre la séquence en cours, Rétablir la bonne séquence : La séquence considérée est une séquence de

runnables. Mais en termes de tâches : la tâche qui n’intervient pas

au bon moment est forcément la tâche consommatrice Task_Clim_C, qui doit être arrêtée et la tâche productrice Task_Clim_P doit être relancée.

D2 : Flot de contrôle : Temps

d’exécution trop long

Interrompre l’algorithme de calcul en cours, Déclencher un mode dégradé : L’incohérence entre la donnée Var_FC_1 et le temps d’exécution signifie que le calcul de l’algorithme est incorrect. Le mode dégradé est une réinitialisation et nouvelle lecture des données, pour tolérer une faute physique transitoire. Si la faute est permanente, notre architecture permet d’inhiber l’une ou l’autre des informations contradictoires, mais il est judicieux que le concepteur révise l’application.

D3 : Flot de contrôle : Transition invalide

Déclencher la transition : La mémorisation de la commande dans la trace d’appels à ChainTask() permet de lancer

Task_Trans_Mod1 ou Task_Trans_Mod2 D4 : Flot de

contrôle : Transition non

voulue

Inhiber la transition en cours. Une détection d’erreur de

déclenchement de Task_Trans_SM a été faite donc cette tâche doit être terminée.

Runnable_Clim_WM Runnable_Clim_MS Runnable_Clim_HF Runnable_Clim_WM Runnable_Clim_MS Runnable_Clim_HF 0 25 ms 25 ms t Runnable_Clim_WM Runnable_Clim_MS Runnable_Clim_HF Runnable_Clim_WM Runnable_Clim_MS Runnable_Clim_HF 0 25 ms 25 ms t Données Consommées Task_Air_FC Var_FC_1 Var_FC_5 <10ms Données Consommées Task_Air_FC Var_FC_1 Var_FC_5 <10ms Task_Trans_SM Task_Trans_Mod1 Task_Trans_Mod2 ou active Task_Trans_SM Task_Trans_Mod1 Task_Trans_Mod2 ou active Task_Trans_SM Al_Trans_SM Task_Trans_DC ou active Task_Trans_SM Al_Trans_SM Task_Trans_DC ou active