Qu'est-ce que l'analyse du flux d'informations?
L'analyse du flux d'informations, également appelée analyse de dépendance des variables, consiste à étudier les interdépendances entres les variables du programme. LDRA Testbed analyse ces dépendances procédure par procédure.
Exemple d'analyse de flux d'informations
On dit qu'une variable A dépend d'une autre variable B dans une procédure, s'il existe un chemin tel que la valeur de B peut modifier la valeur de A. Les variables intermédiaires n'apparaissent pas dans les listes de dépendances. Seules les variables d'entrée apparaissent dans ces listes. Par exemple, si la variable B est une variable intermédiaire qui dépend de C, comme dans:
B := C; A := B;
alors la variable A dépend de C (et non de B). On distingue différents types de dépendances:
Forte dépendance: Si une variable A est définie, alors elle dépend toujours de la variable B, c.-à-d. la valeur de A dépend de B pour chaque chemin comprenant une attribution à A dans le cadre de la procédure. Ainsi:
A = B + 1
Faible dépendance: La variable A dépend parfois de la variable B, c.-à-d. il existe au moins un chemin dans la procédure sur lequel A est défini par rapport à B, et il n'existe aucun autre chemin sur lequel A n'est pas défini par rapport à B.
Ainsi:
si (condition) A = B + 1
Dépendance conditionnelle: variable A ne dépend par directement de la variable B, mais la valeur de la variable B influence la valeur de A en modifiant les chemins du flux de commande. Ainsi:
si (B > 0) A = 0
De plus, on identifie deux types de définition:
Forte définition: Une variable est fortement définie si elle est toujours attribuée à une valeur, c.-à-d. la valeur de la variable est calculée sur chaque chemin dans le cadre de la procédure.
Faible définition: Une variable est faiblement définie si elle est parfois attribuée à une valeur, c.-à-d. la variable n'est par conséquent pas calculée sur au moins un chemin dans le cadre de la procédure.
Lorsque les utilisateurs savent qu'elles doivent être les dépendances, ils peuvent insérer cette information dans leur code au moyen d'un commentaire, tel que (pour Ada):
--LDRA_INFOFLOW < variable de sortie >[texte]([< variable d'entrée > {,< variable d'entrée >}])
où < variable de sortie > correspond au nom d'une variable de sortie, [texte]
correspond au commentaire et < variable d'entrée > correspond au nom d'une variable d'entrée dont dépend la variable de sortie. Si le commentaire occupe plus d'une ligne, la deuxième ligne et les lignes suivantes doivent également être des commentaires légal, c.-à-d. pour Ada, commencez avec --.
Par exemple:
--LDRA_INFOFLOW xi (a,b,c)
--LDRA_INFOFLOW hiy dépend de (y,z)
--LDRA_INFOFLOW DGSZ ( )
--LDRA_INFOFLOW G5Y dépend de (P,Q,R)
--LDRA_INFOFLOW MANY dépend de (UN,DEUX,
--TROIS,QUATRE)
LDRA Testbed compare cette dépendance prévue à la dépendance réelle et indique les résultats dans le rapport d'analyse du flux d'informations. Afin de rendre les concepts précédents plus explicits, considérons le code suivant:

Code d'exemple pour l'analyse de flux d'informations
Instructions mortes, c.-à-d. les instructions qui ne contribuent pas aux valeurs de sortie sont signalées afin que l'analyse du flux d'informations correspondante produise:

Résultats de l'analyse de flux d'informations pour le code d'échantillon indiqué ci-dessus.
Obtenir plus d'informations
Pour plus d'informations sur cette fonctionnalité spécifique de TBsafe et sa disponibilité, veuillez remplir le fformulaire de réponse LDRA ou envoyer un e-mail à .
|