Download as pdf
Download as pdf
You are on page 1of 2
Free Jest lleavefey? Je == front() dequeue() lent=0 goltront()}! enqueue(e) Ficure 2 ~ Automate du contrdleur AAccessibilité — Analyse en avant Soit l'automate temporisé suivant : yS3,a,y:=0 222,a,r:=0 En considérant que la localité 0 est la localité initiale, déterminer Paccessibilité de la localité 3 AT’aide d'une analyse en avant utilisant le graphe de zones (on n’utilisera pas 'opérateur extrapolation). 2 Test logiciel 2.1 Vérification de parité Une application regoit périodiquement une mesure codée sur un octet, incluant 7 bits de valeur et un bit de parité : b7 [66 [b5 | bI | b3 | b2 | BI] BO] Par exemple, Loctet 6 (00000110) représente une mesure de valeuy 3 (0000011) avec un bit de parité correct (b0 est 0, d’ot un nombre pair de 1). L’octet 7°(09Q0Q}11) représente cette méme valeur avec un bit de parité incorrect. ° % Dans cette application, la fonction VERIF_PARITE () retourne false lorsque deux mesures successives de méme valeur sont lues avec une parité incorrecte. Dans tous les autres cas, la fonction retourne true. Scanned with CamScanner Les entrées de VERIF_PARITE () sont l'octet Iu la période courante (octet_1u) et cel lu a la période précédente (octet_prec). 1. On va tester 'implémentation ci-dessous. Elle contient une faute de programmation classique : une borne de Vindice de boucle est incorrecte (ici, on itére sur 7 bits am Ii de 8). Identifiez les conditions pour révéler cette faute. Dooleen VERIF_PARITE (char octet_lu, char octet_prec) { char octet, bit, mb1; /+ ne faire 1a vérification que si les octets sont identiques +/ if (octet_lu == octet_prec) & octet = octét_lu; nb_i = 0 ; /+ on'va compter le nombre de bits 4 1 +/ for (i=0; 4 <7; itt) £ if (octet 1 == 1) /+ ‘test Vopérateur ‘and? bit-a-bit +/ 7+ on teste donc ici la valeur du bit de poids faible +/ mb. +5 octet = octet 2> 1; /+ décalage a droite dun bit */ } if (mp_4 % 2 != 0) /+ nombre total impair de bits 417 +/ return (false); return (true) + + 2. Dessinez. le graphe de controle de VERIF_PARITE (). ~ 3. Combien y-a-t-il de chemins exécutables? Parmi eux, combien de chemins dont V'acti- vation peut révéler la faute? 2.2. File d’attente On considére une structure de données de type file FIFQ (First In, First Out). Une action de production rajoute tne valeur dans Ia file et une opération de consommation retire un élément de la fle. La file peut contenir 2 éléments au plus. Une tentative d'ajout dans une file pleine, ou de retrait dans une file vide, doit générer une , exception informant l'utilisateur que Topération est illégale. Le contenu de la file reste alors inchangé. 1. Modéliser le comportement de la file sous forme d'une machine a états finis avee les alphabets d'entrée et de sortie suivant : Alphabet entrée ¢ ‘Alphabet de sortie _t ‘Aj : tentative d'ajout Pune valeur | - + aucune observation de sortie Ret : tentative de retrait d'une valeur | Exe : levée d'une exception Val : une valeur est délivrée a Vutilisateur ‘On place sur Tes transitions une valeur de Valphabet d'entrée suivie une valeur de Tal- phabet de sortie ("Aj -" signific qu’nne tentative d’ajout ne produit rien d’observable). 2. Concevoir un test pour couvrir toutes les transitions. Scanned with CamScanner

You might also like