MODULE No 01

Titre : Analyse du titre du cours : Vérification et assurance qualité de logiciel.

But : Avoir une idée claire de la signification des termes qui composent le titre du cours pour mieux en saisir le contenu.

Antécédents : Aucun.

Corps : Commençons par voir la signification de chaque mot et prenons-les dans l’ordre pour ne pas en privilégier aucun.

a.       Vérification.

i.      Dans le langage courant Vérification est un synonyme de contrôle. Dans une vérification on examine un élément pour s’assurer qu’il est conforme à quelque chose de connu et/ou de prévu. « Je vais vérifier si tu es allé aider ta tante. À cause de ce que tu as fait le mois passé, je ne crois plus un traître mot de ce que tu dis. » Voilà un exemple d’emploi de vérification dans le sens commun du terme, emploi qui n’est pas très loin de celui du génie logiciel (GL)

ii.      Dans le GL Vérification veut dire… mais avant de dire ce que le terme Vérification signifie, où chercher sa définition ? Par exemple dans la norme IEEE 610 — une norme qui définit un grand nombre de terme du GL. Les voilà (il y a deux acceptions)

1.      Le processus d’évaluation d’un système ou d’un composant pour déterminer si le produit d’une phase donnée du développement satisfait les conditions imposées au début de la phase. Dans cette définition ce qui est important c’est qu’il s’agit d’un processus et que le processus s’applique à des phases.

2.      Preuve formelle de l’exactitude d’un programme. Ce qui veut dire que la vérification nous assure, au-delà de toute interprétation subjective que le programme est correct.

Mais, puisque la vérification est définie comme étant un processus, on peut aller chercher la définition dans la norme ISO 12207 (la norme qui définit les processus du cycle de vie du logiciel). La voilà

a.       Le processus de vérification est un processus pour déterminer si les produits logiciels d’une activité satisfont les exigences ou les conditions que l’on a imposées sur eux lors des activités précédentes. Pour l’efficacité du point de vue des coûts et des performances, la vérification doit être intégrée le plus tôt possible avec les  processus qui l’emploie. Ce processus peut inclure analyse, revue et test.

iii.      Il y a aussi un slogan très connu qui permet d’avoir une première idée de ce qu’est la vérification. La vérification permet de savoir si les produits sont bien faits. (Ce slogan on le met souvent à côté de celui qui définit la validation comme étant le processus qui permet de s’assurer que l’on a réalisé le bon produit). Donc, encore plus synthétique : bien = vérification et bon = validation.

b.      Et. Conjonction de coordination omniprésente dans la langue française (et en logique) et si dangereuse dans… dans la définition des buts d’une méthode. Note : je suis sûr qu’il n’y a pas un seul étudiant, même au bac, qui ne sache pas pourquoi « et » est si dangereux. Fin de la note. Dans le titre « et » indique qu’il y a deux choses distincte l’assurance qualité et la vérification, que ces deux processus sont au même niveau et que donc la vérification ne fait pas partie de l’assurance qualité comme on pourrait le penser.

c.       Assurance.

iv.      Dans le langage courant. Si vous cherchez ce terme dans un dictionnaire comme le TLF (Trésor de la Langue Française http://atilf.atilf.fr/dendien/scripts/tlfiv4/showps.exe?p=combi.htm;java=no;) vous trouverez un grand nombre d’acceptions différentes. En droit, par exemple il s’agit de « garantir contre certains risques ». Au figuré « Garantie de vérité, quasi certitude »

v.      Dans IEEE 610 on ne trouve le terme qu’associé à qualité (assurance qualité). Assurance qualité :

1.      Une suite planifiée et systématique d’actions nécessaires pour fournir une confiance suffisante qu’un éléments ou un produit est conforme aux exigences techniques établies.

2.      Un ensemble d’activités conçues pour évaluer le processus avec lequel sont développés ou fabriqués les produits.

vi.      Dans ISO 12207 : Le processus d’AQ est le processus qui fournit une assurance suffisante que les produits et les processus logiciels dans le cycle de vie du projet sont conformes aux exigences spécifiées et adhèrent aux plans spécifiés.

d.      Qualité. Inutile de donner une définition dans la langue courante. Nous savons tous ce que nous voulons dire quand nous parlons des qualités de quelqu’un ou de quelque chose.

vii.      IEEE 610. Pour cette expression aussi la norme nous donne deux définitions qui, malgré les apparences, sont très différentes. Qualité :

1.      Le degré avec lequel un système, un composant ou un processus rencontre des exigences spécifiées.

2.      Le degré avec lequel un système, un composant ou un processus rencontre les besoins ou les attentes des utilisateurs ou des clients.

viii.      Cette fois au lieu de chercher la définition dans la norme ISO 12207, on va al chercher dans l’une des  normes ISO de la série 9126. Qualité : la totalité des caractéristiques d’une entité qui lui confère l’aptitude à satisfaire les besoins implicites ou exprimé.

e.       De. Une proposition qui crée souvent de grandes ambiguïtés. Exemple : La peur des femmes. Ce sont les femmes qui ont peur des hommes ou les hommes qui craignent les femmes ?

f.       Logiciel. Dans le langage courant par « logiciel » on entend le programme (malheureusement, souvent, les étudiants en informatique aussi considèrent que le logiciel n’est que le programme).

ix.      IEEE 610. Logiciel : les programmes, les procédures, et la documentation associée et les données qui concernent le fonctionnement d’un système informatique.

Si on met ensemble les différents morceaux que l’on vient de voir et si on considère qu’il s’agit d’un cours universitaire on peut dire que ce titre nous indique que : l’étudiant doit acquérir les connaissances et le savoir faire pour pouvoir évaluer les artefacts logiciels et pour assurer que ces mêmes artefacts et les processus pour les réaliser rencontrent les exigences fixées et satisfont les besoins des utilisateurs et des clients.

Conséquents :

·         Être capable de redire avec ses propres mots les définitions.

·         Avoir saisi les différences entre les différentes définitions.

·         Connaître l’existence de trois normes (IEEE 610, ISO 12207, ISO 9126)

·         Être conscient que même des termes qui nous employons des dizaines de fois dans une journée, comme « et » et « de », ont leurs particularités qui en font des éléments à soigner dans le GL (et non seulement dans le GL).

Note 01 : Lorsqu’il y a un conflit entre les exigences fixées et les besoins implicites ou exprimées par les utilisateurs et les clients, on se retrouve devant un grave problème de gestion qui, souvent, est réglé avec des compromis techniques et/ou économiques.

Note 02 : Les définitions présentées ci-dessus n’ont pas été données pour que l’on les retienne par cœur mais pour commencer à vous introduire aux concepts parmi lesquels vous circulerez pendant quinze semaines. Dire qu’il ne faut pas les connaître pas cœur, n’implique pas que l’on ne doive pas être à même de les redonner avec ses propres mots sans s’éloigner trop de l’original.