La Traçabilité
La Traçabilité
La Traçabilité
Employ tous les jours ou presque, il dsigne un bon principe sur lequel tout le monde est daccord : il est ncessaire dtablir des liens de traabilit entre les diffrents lments manipuls, des besoins mtiers, jusquau code. Le but est de sassurer (et dtre capable de prouver) que ce qui a t demand a bien t produit, vrifi, valid dans les dlais prvus et pourra tre maintenu facilement. Pourtant la comprhension de ce principe et sa mise en uvre sont parfois complexes et il peut tre difficile didentifier le niveau de traabilit ncessaire dans un contexte particulier, de le mettre en uvre et de le mesurer. Dans cet article, nous apporterons des lments de rflexion sur cette notion afin de lexploiter plus efficacement, et en particulier en ce qui concerne les tests logiciels. Quid de la traabilit ? De nombreuses dfinitions existent pour le mot "traabilit", et pas seulement dans le domaine informatique. La dfinition issue de l'agro-alimentaire est intressante : "Traabilit = Possibilit de retrouver, pour un produit donn, la trace de toutes les tapes de sa fabrication et la provenance de tous ses composants. La traabilit d'un produit permet, par exemple, de retrouver les fournisseurs des matires premires, les diffrents endroits o le produit a t entrepos, les manipulations et quipements utiliss dans sa fabrication." Dfinition intressante et, si on remplace "matires premires" par "composants" et "entrepos" par "dvelopp et test", nous ne sommes pas si loin du sens donn dans le monde du dveloppement logiciel ! CMMI-dveloppement par exemple dfinit la traabilit comme "une association identifiable entre au moins deux lments tels que Exigences, lments constituant le systme, Vrifications ou encore Tches". En ralit dans chaque entreprise, et parfois pour chaque projet, il est ncessaire de prciser la dfinition que l'on donne au mot "traabilit" avant de rflchir sa mise en oeuvre. Quels sont les lments concerns par la traabilit ? Les lments qui peuvent tre lis les uns aux autres sont nombreux, en particulier si l'on couvre tout le cycle, de l'expression des besoins jusqu'aux incidents survenant en production. Par exemple : - les besoins exprims par un client ou une matrise d'ouvrage, - les exigences mtiers, - les exigences produits, - les lments d'architecture technique, - les lments d'architecture fonctionnelle, - le code, - les tests, - les instances de test, - les environnements de test, - les donnes de test, - les rsultats de test, - les anomalies.
Cette liste n'est pas exhaustive, loin s'en faut ! Il appartient chacun de la modifier et de la complter selon son contexte. Quels sont les liens utiles et pourquoi ? Ici encore, les rponses seront diffrentes selon les entreprises et les projets. L'essentiel est de se poser la question et d'y rpondre. Cela permettra de communiquer efficacement sur le sujet et de convaincre les acteurs concerns de faire l'effort de "tracer". Faire un lien de traabilit a un cot non ngligeable. A moins d'tre dans un contexte particulier, tel que celui des systmes scurit critique, il n'est pas ncessaire de mettre en place tous les liens de traabilit possibles mais seulement ceux qui auront une valeur pour le succs du projet. Essayons d'identifier, partir des lments lists plus haut, des liens de traabilit utiles. Le lien "besoin - exigence mtier" Dans un sens, il va permettre de s'assurer qu'un besoin, souvent formul "par morceau" sur diffrents supports (mails, documents, images...) est bien pris en compte dans une ou plusieurs exigences mtier, clairement rfrence(s) Dans l'autre sens, il va permettre, lors de la dfinition ou de la revue des exigences mtier, de retrouver ce qui est l'origine de l'exigence, avec un certain niveau de dtail. Le lien "exigence mtier - exigence produit" Ce lien de traabilit verticale indique comment le produit dvelopper va prendre en compte chaque exigence mtier. Il permet de ne pas oublier d'exigence mtier et galement, pour chaque exigence produit, de remonter sa source. Une exigence mtier pouvant impacter plusieurs parties du produit, ce lien pourra tre utile pour commencer valuer l'impact de changements mtier sur la spcification et le dveloppement du produit. Le lien "exigence produit - lments d'architecture" Pour savoir dans quels lments matriels ou dans quelles briques logicielles, une exigence produit va tre implmente, il est ncessaire d'tablir un lien qui permettra de garantir la prise en compte relle d'une exigence dans le produit. Le lien entre l'humain (textes, dessins...) et le logiciel (architecture) commence se faire ! Le lien "exigence produit - code" Quel sera l'impact de la modification d'une exigence produit sur le code ? Quelle exigence produit sera impacte par une erreur prsente dans une partie prcise du code ? Quel est le volume de code dvelopp pour satisfaire l'exigence ? C'est pour rpondre ces questions que le lien ci-dessus est utile. Il peut tre direct ou indirect, en passant par l'intermdiaire des lments d'architecture. Le lien "code - tests" Souvent gr au niveau de l'environnement de dveloppement, ce lien est trs important, car il permet non seulement de s'assurer que chaque partie du code est teste, mais aussi d'identifier les tests rejouer en cas de modification du code et d'automatiser des tests de non rgression sur les composants, tout cela de faon automatise. Ce lien est trs prsent au niveau "tests de composants".
Le lien "exigence produit - test" Dans un premier temps, ce lien qui peut tre cr tt, va permettre de vrifier qu'un test (au moins !) est bien prvu pour l'exigence concerne et, si on se place du ct des tests, de savoir prcisment ce qui est test par chaque test. Les tests tant parfois nombreux et complexes, il n'est pas toujours vident de savoir rapidement ce qui est test. Dans un deuxime temps, lorsque les tests commenceront tre excuts, ce lien permettra de faire remonter des informations issues de l'excution sur les exigences. La "famille" de lien "test- instance de test - environnement de test - donnes de test rsultat de test" Nombreux sont les liens de traabilit dans le domaine du test logiciel. Si on considre qu'un test correspond simplement un scnario compos d'tapes et de vrifications, alors un mme test pourra tre excut dans diffrents environnements d'excution, avec diffrentes donnes de test et avec bien sr diffrents rsultats d'excution la cl. Le concept d' "instance de test" est parfois utilis. Il ncessite la mise en place de diffrents liens de traabilit, car il dsigne un test associ un environnement d'excution et des donnes de tests, qui pourra tre excut plusieurs fois avec des rsultats potentiellement diffrents ! Pour tre rigoureux dans la traabilit autour des tests et dans la documentation associe, il est vivement conseill de s'appuyer sur la norme IEEE 829 sur la documentation des tests. Le lien "rsultat de test - anomalie" Ce lien permettra de s'assurer que chaque incident lors de l'excution d'un test a bien donn lieu la cration d'une anomalie. Utilis partir d'une anomalie, il sera doublement utile. Il permettra premirement la personne en charge du traitement de l'anomalie de retrouver le dtail du test qui l'a mise en vidence et de reproduire l'anomalie facilement. Deuximement, une fois l'anomalie corrige, il permettra la personne en charge de la vrification de la correction, de vrifier que le test qui avait chou est maintenant bien passant. Chaque lien prsente en gnral un rel intrt mais lorsque tous ces liens sont mis en place, l'intrt est dcupl ! Par exemple, une traabilit "Exigence Mtier - Exigence Produit - Test - Instance de Test Rsultat de Test - Anomalies" permettra de connatre tout instant le statut de la couverture de l'exigence par rapport aux tests et de rpondre aux questions : a-t-elle t teste ? si oui, quel est le rsultat ? si le rsultat est ngatif, quelle est l'anomalie associe ? ... Comment mettre en place les liens utiles et mesurer la traabilit ? Une fois les liens utiles identifis, il est ncessaire de rflchir la faon de les mettre en place. Toutes les phases du cycle de dveloppement logiciel sont touches, de nombreux lments sont concerns, plusieurs acteurs interviennent et diffrents outils informatiques sont concerns (gestion des exigences, gestion et excution des tests, modlisation, dveloppement, gestion des anomalies...). Chaque lien peut tre mis en place de faon manuelle (rfrences ou liens renseigns manuellement dans des documents ou outils) ou automatique (lien de traabilit cr partir
de fonctions des outils). Malheureusement, aucune chane d'outils ne permet d'implmenter d'emble tous les liens de traabilit ncessaires et il est frquent d'avoir recours des dveloppements spcifiques. Le plus important est d'expliquer et de documenter la faon de crer ces liens, puis de former les personnes concernes. Enfin, l'aspect "mesure" entre en jeu et peut tre considr sous deux angles. La mesure de la traabilit elle-mme : l'objectif est de mesurer le pourcentage de mise en uvre des diffrents liens de traabilit (idalement 100% !) et de prendre des mesures adquates si ncessaires. 100% des exigences sont elles associes au moins un test ? Chaque composant logiciel ou morceau de code est-il associ une exigence ou un lment de l'architecture logicielle ? Le deuxime angle concerne les mesures possibles grce la traabilit qui a t mise en place, par exemple : quel est le nombre d'anomalies associes aux diffrentes parties du code ? Quelles sont les exigences produit qui ont t testes entirement avec succs ? Combien de tests vont devoir tre rejous si telle exigence mtier est modifie ? La traabilit peut donc tre complexe dfinir et mettre en uvre. Cela doit se faire projet par projet, en fonction des objectifs et des besoins lis la qualit. Utilise bon escient, la traabilit devient un outil puissant d'amlioration de la qualit.
Aujourd'hui, la traabilit des produits industriels et agricoles est devenue un enjeu majeur sur le plan de l'conomie, de la sant, de l'cologie. Et cette situation est amplifie dans le domaine informatique, aussi bien en ce qui concerne la traabilit au sein du fonctionnement du systme d'information (SI) lui-mme qu'en ce qui est relatif aux effets grs par l'informatique. Tant que le management des produits agricoles, industriels et commerciaux supposait systmatiquement des entres-sorties papiers avant et aprs traitement de gestion ou de calcul, la traabilit restait matrialise. Ce n'est plus le cas depuis un bon quart de sicle ! En effet, nous constatons :
une dmatrialisation croissante des changes qui se font de faon numrique, par les changes de donnes par l'informatique (EDI) par exemple ; la gnralisation toujours plus large des paiements par transactions lectroniques ; la reconnaissance du fait que les courriels font foi dans les relations entre entreprises.
Si, sur le plan technologique, les outils ont considrablement volu, sur le plan des habitudes acquises par les professionnels des systmes d'information, de vastes lacunes restent combler. Ainsi, dans nombre de projets informatiques, le volet traabilit demeure, encore en ce dbut de deuxime dcennie du XXIe sicle, au mieux, une pice rapporte a posteriori, et au pire, un pan de sous-projet compltement oubli car souffrant d'une spcification a minima, tantt dans le cahier des charges techniques, tantt dans les spcifications fonctionnelles. En effet, dans de nombreux dossiers, le besoin de traabilit se borne l'unique phrase de douze mots : Le systme sera en mesure d'assurer la traabilit de son fonctionnement . Les consquences peuvent tre alors trs fcheuses, d'autant que de telles pratiques impliquent :
des dpenses non budgtes, donc considres comme surcots ; des efforts pour implmenter un systme de traage qui sera peu ou mal intgr l'ensemble des applications ; par contre-raction, une exagration des exigences de traabilit labores bien aprs la conception du systme, et, le plus souvent, dans un contexte de crise ou de pr-crise, avec, de surcrot, une grande pression sur les dlais ; une dtrioration de la performance du SI.
Nous dcrirons dans ce fascicule une approche de la traabilit nativement prise en compte au niveau des dimensions des projets de conception des systmes d'information, qu'ils s'adressent des progiciels de gestion intgre (PGI) que nous dsignerons ci-aprs par l'acronyme anglais ERP (Enterprise Resource Planning), ou qu'ils concernent des applications unitaires.
Codification
Enfin, la codification est un systme qui peut permettre didentifier un article ou un produit grce un code qui lui est li. Tous les codes utiliss doivent pouvoir tre reconnus par les systmes informatiques ou manuels appropris. La codification permet ainsi une redirection de lusager vers toutes les informations qui concernent un produit donn. Elle peut donner, par exemple, les dates de production de tout produit mis sur le march, notamment les denres alimentaires et les produits pharmaceutiques. Pays dorigine du produit, composantes sont autant dinformations qui sont transmises par ce procd. Le code est videmment la base du systme de codification. Il sagit gnralement dune suite des chiffres placs sous plusieurs barres et utilise pour identifier les produits : alimentaire, informatique, bureautique Lutilisation du code-barres est dailleurs autant rglemente par des normes bien dfinies. Dailleurs, ces normes ont t mises en place pour que le systme soit universel et puisse tre valable dans nimporte quel pays. Ainsi, il existe des normes de codification europennes, nord-amricaines Chaque domaine, chaque secteur dactivit peut donc avoir sa propre norme de codification. Le global commerce Initiative (GCI) est certainement lune des plus grandes entits qui uvrent pour la mise en place de systmes de codification normalise. Il y a aussi lEAN ou European Article Numbering, pour le continent europen en particulier.
Dans un discours, traabilit est un mot qui compte triple. Dans la ralit, la traabilit tient probablement en trois points :
la volont et la ncessit moderne de connatre le parcours de chaque produit, l'apparition de nouveaux outils de suivi et de contrle (codes barre, RFID, logiciels spcialiss...),
la gnralisation d'une codification universelle, lue et comprise par tous, notamment les machines.
des nomenclatures unifies (pays, fabricants,...) des codifications logiques (SSCC, GTIN...), des syntaxes standardises (EAN, XML...), des moyens de reprsentation physique (code barre, enregistrement informatique...) des protocoles d'change d'informations (EDI, )
Tout ceci pour simplifier, malgr que la plupart des normes dfinissent simultanment plusieurs de ces niveaux. Au del, il faut galement remarquer que ces dfinitions varient suivant :
les secteurs d'activit (alimentation, transport, sant...), les types de transaction (production, archivage...)
Jusqu'alors, les industriels et les distributeurs europens utilisaient les normes EAN (European Article Numbering), les Nord-amricains les normes de l'UCC (Uniform Code Council). La GCI (Global Commerce Initiative) est une structure de travail cre en 1999 par des industriels et les distributeurs (Auchan, Carrefour, Tesco, ...) et des fabricants (Nestl, Coca Cola, Procter & Gamble, Johnson & Johnson...) afin de faciliter l'intgration de la chane d'approvisionnement et de simplifier les processus commerciaux. Elle s'applique notamment faire converger les standards de codification actuels. Par exemple, les projets de la GCI comprennent l'appui des GLN (Global Location Numbers) et des GTIN (Global Trade Item Numbers). Elle a lanc le GSMP (Global Standard Maintenance Process) en janvier 2002. Enfin l'EAN (European Article Numbering) et l'UCC (Uniform Code Council) se sont associs et des nouveaux standards sont labors sous le systme mondial de standards EANUCC.
Format de codification
un identifiant d'une personne morale, gnralement attribu par un organisme normalisateur national, un identifiant spcifique (lieux, produit, colis...) attribu par la personne morale en question, une cl de contrle, pour s'assurer de l'intgrit du code et de l'exactitude de la lecture.
De fait, la convergence vers l'international est thoriquement facilement tablie par l'ajout de prfixes, suffixes.... Dans la pratique, c'est bien sr plus complexe, puisqu'il faut harmoniser les nomenclatures et les annuaires et surtout, modifier logiciels et lecteurs industriels.
Nature des informations transmises
Jusqu'alors, on ne porte principalement sur les produits ou leur conditionnement que des informations d'identification ; par exemple :
le GLN (Global Location Number) : pour identifier la destination, le GTIN (Global Trade Item Number) : pour identifier le produit, le SSCC (Serial Shipping Container Code) : pour identifier le colis.
Une fois l'identification effectue, on laisse aux bases de donnes le soin de conserver toutes les informations relatives au produit (origine prcise, contenu, composition, parcours, dates de fabrication, de livraison, de premption...). Ces informations tant transmises paralllement au transport l'aide d'changes informatiss (EDI). On peut toutefois penser que dans l'avenir un nombre de plus en plus important d'informations accompagneront physiquement le produit, par exemple dans des puces RFID ou bien, comme c'est dj le cas avec l'tiquette logistique EAN/UCC.
GLN (Global Location Number), code lieux-fonctions international
C'est une codification internationale unique 13 chiffres, utilise pour dsigner un emplacement. Elle peut-tre :
une personne morale : socit, filiale... une entit fonctionnelle : service comptabilit, entrept... une entit physique : pice, chambre d'hpital, trave de stockage...
Gencod EAN France attribut le CNUF (Code National Unifi Fournisseur) et le CNUD (Code National Unifi Distributeur), constituant la partie principale du code lieux-fonctions. Le code
interne est choisi par l'utilisateur. Le projet GEPIR (Global EAN Party Information Repository) a pour ambition d'interconnecter les diffrents annuaires de code lieux-fonctions nationaux.
GTIN (Global Trade Item Number)
C'est une codification internationale unique 13 chiffres, utilise pour dsigner un produit l'unit, susceptible d'tre achet par le consommateur final. Il constitue donc l'largissement du code EAN-13.
SSCC (Serial Shipping Container Code)
Code international 18 chiffres utilis pour numroter les colis en logistique. Par exemple, trois articles identiques expdis dans trois colis diffrents auront le mme code article EAN-13, mais des codes SSCC diffrents.
Codes barre
Les identifications logiques (lieux, produits, colis) sont le plus souvent imprimes et lues l'aide de codes barre. L'usage du code barre est bien entendu soumis des exigences physiques (taille et forme du support, couleur de fond...). En fonction de ces exigences ainsi que du nombre de caractres figurer, plusieurs normes coexistent :
EAN-8 et EAN-13 : 8 ou 13 chiffres (inscrits sous les barres en clair) - employ essentiellement pour les produits de consommation ITF 14 : 14 chiffres : plus gros et plus lisibles ces informations sont utilises essentiellement en logistique sur les conditionnements (cartons, palettes..) UCC / EAN 128 : nouvelle norme permettant de reprsenter une chane de caractres alphanumriques de longueur variable
RFID et EPC
Initi par plusieurs acteurs, dont EAN et UCC, EPC (Electronic Product Code) est un systme d'identification l'aide de puces RFID comprenant essentiellement :
Une traabilit fine de chaque produit, depuis ses composants de fabrication, jusqu' ses modalits de transport et de conservation est effectue l'aide d'une base de donnes.
HIBC, professions de sant
Le HIBCC (Health Industry Business Communications Council) propose la codification HIBC (Health Industry Bar Code), compatible EAN-UCC. Ce standard a t labor par un comit de professionnels charg de rpondre aux besoins d'une codification sre, alphanumrique et format variable pour les applications de traabilit concernant les produits de sant.
Scurit alimentaire
En matire de scurit alimentaire, la rglementation europenne entrant en vigueur le 1er janvier 2005 impose notamment que:
la traabilit des denres alimentaires soit tablie toutes les tapes de la production, de la transformation et de la distribution et pour cela que les denres alimentaires et aliments pour animaux sont tiquets ou identifis de manire adquate afin de permettre la traabilit, en entre, que les exploitants du secteur alimentaire soient en mesure didentifier toute personne leur ayant fourni une denre alimentaire. en sortie, que les exploitants du secteur alimentaire et de lalimentation animale disposent de systmes et procdures leur permettant didentifier les entreprises auxquelles leurs produits ont t fournis.