Comment aborder l’Assurance Qualité du Logiciel (AQL) ? Comment la mettre en place ?Maintenant standardisée par des organismes, tels que l’IEEE, l’ISO ou l’AFCIQ, l’AQL est définie comme le domaine de toutes les actions planifiées et systématiques nécessaires pour fournir un niveau de confiance indiquant que le logiciel est conforme à des spécifications techniques préalablement établies.

 

 

La problématique

En 2150 avant J.C., le premier code de lois d’Hammourabi à Babylone précise que si un maçon a construit une maison et que celle-ci s’écrase et tue ses occupants, le maçon devra être également tué. Une forme d’action corrective plutôt expéditive en somme et heureusement obsolète.
Les habitudes de travail ont pourtant parfois relativement peu évolué, alors même que la complexité des projets abordés par les entreprises croît régulièrement, et que la part des développements logiciels devient prépondérante vis-à-vis des coûts matériels.

En mettant en place la fonction méthodes déjà connue dans les secteurs industriels traditionnels, l’objectif est clair, c’est celui de tout professionnel quelle que soit sa discipline : maîtrise du processus de développement et maîtrise de la qualité des produits résultants. En un mot, il s’agit donc aujourd’hui d’évoluer de pratiques artisanales vers une démarche industrielle de développement de systèmes informatisés.

Dans son application, l’AQL n’éliminera systématiquement ni les dépassements de budgets ni les glissements de délais, mais elle permettra de connaître leur ampleur exacte et de cerner leur origine. La justification est si triviale et énorme que l’on comprend mal la raison pour laquelle la profession ne fait que s’éveiller à la qualité : la simple évaluation des coûts liés à la non qualité sur un projet fournit des chiffres si évidents que l’on se met regretter de ne pas l’avoir fait plus tôt.

L’absence de mesures primaires est significative. Quelle entreprise connaît le nombre de lignes de code source livrées par an, le coût moyen de l’instruction, la productivité moyenne des développeurs ? Le décalage par rapport à d’autres disciplines est énorme.

IEEE(Institute for Electrical and Electronic Engineers)Parmi ses activités figurent l’élaboration de normes dans le domaine informatique.MIL-STD-498Issue de l’intégration de la DOD-STD-2167A et de la DOD-STD-7935A, cette norme définit les activités et la documentation applicables au développement de systèmes d’informationautomatisés ou de systèmes d’armes.GAM-T-17Méthodologie de développement des logiciels intégrés (dans les systèmesmilitaires).AFCIQAssociation Française des Cercles Industriels de QualitéSDM/SSystem Development Method / Structured

Méthodes et organisation

Les grands projets impliquent un nombre important de programmeurs et se matérialisent par des applications complexes, rendant indispensable une démarche pour structurer l’effort global, suivre l’avancement des projets, et juger de la qualité des travaux tout au long de la vie du projet.

Afin de mieux maîtriser le processus de développement des logiciels, différents modèles de ce processus ou cycles de vie sont apparus, visant tous à scinder le processus de développement en une suite d’étapes, la maîtrise du processus global résultant de la maîtrise des différentes phases.

Ces cycles de vie sont supportés par des standards (IEEE, MIL-STD498, GAM T17.V2 en informatique technique, AFCIQ, SDM/S et Method/1 en informatique de gestion) qui associent aux préoccupations d’ingénierie, celles liées la maîtrise des délais et des coûts (gestion de projet) et à la maîtrise des évolutions (gestion des configurations).

Chaque activité donne lieu à l’élaboration d’une documentation facilitant la mise en place de revues et d’audits officiellement liés à l’exécution d’un contrat de développement logiciel.

Toutes ces méthodes ont pour but de permettre au mieux de maîtriser les problèmes d&ucircs à la nature même du logiciel :

  • le logiciel est un produit complexe, immatériel et évolutif,
  • son élaboration est une activité intellectuelle dont les résultats sontinfluencés par les facteurs humains et organisationnels,
  • il faut pour le corriger ou le modifier le même niveau de compétence que pourl’élaborer.

Elles visent également à garantir la visibilité du logiciel durant le développement selon les différents niveaux requis (futur utilisateur, maître d’ouvrage, maître d’oeuvre) et à assurer la pérennité du produit (contrôle et assurance qualité du logiciel).

Le dernier point relatif à la maintenance du logiciel est cependant souvent sous-estimé dans les méthodes actuelles : nous aurons l’occasion de revenir sur ce sujet dans une prochaine lettre.

A aucun moment, une méthode de développement ne devrait figer le comment faire. Elle devrait se limiter au quoi faire.

Pour éviter de sombrer dans une démarche purement administrative, la mise en place de ces méthodes doit être contrôlée. L’application doit étre personnalisée pour chaque projet (plan qualité du logiciel) en fonction de la complexité, de la criticité, du caractère innovant des développements entrepris et des techniques de réalisation utilisées (gestion des risques).

Au point de vue ingénierie, elles soulignent le besoin de continuité entre les phases successives d’élaboration du logiciel (traçabilité des exigences). Ce point est important dans le choix des méthodes d’analyse et de conception mises en oeuvre sur le projet. Il sera débattudans un prochain numéro.

SEI Le Software Engineering Institute maintient des modèles de référence basés sur des pratiques de développement éprouvées pour aider à mesurer les progrès accomplis suite &agrave l’introduction de nouvelles techniques.ISO 9000 Ensemble de cinq standards pour documenter les éléments du système qualité desentreprises.

Un enjeu stratégique

L’AQL constitue l’enjeu le plus stratégique de l’industrie du logiciel. Elle est indispensable pour obtenir la satisfaction de l’utilisateur. Elle est aussi le point de passage obligé pour le contrôle des coûts et des délais du logiciel.

Mais plus encore, s’il n’était qu’une seule raison pour investir dans une politique qualité, elle serait économique. Pour accroître leurs chances d’être retenues dans les appels d’offres lancés par les grands donneurs d’ordre, les entreprises découvrent aujourd’hui les vertus de la mise à niveau selon les modèles du SEI, de la certification ISO 9000 ou de la conformité à la MIL-STD-498.

Le succès de l’introduction de la qualité repose sur la synergie de trois pôles :

  • organisation de l’AQL au niveau de la conduite de projets,
  • choix et mise en place des méthodes, techniques et outils supports de l’organisation,
  • implication des hommes et des femmes participant aux développements de logiciels.
error: Content is protected !!
Téléphonez moi