Home

G`ni I giciel - Chair of Software Engineering

image

Contents

1. Tableau ll Dix facteurs de la qualit du logiciel Validit Fiabilit D finition Aptitude d un produit logiciel remplir exac tement ses fonctions d finies par le cahier des charges et la sp cification Aptitude d un produit logiciel fonctionner dans des conditions anormales Extensibilit Facilit avec laquelle un logiciel se pr te une modification ou une extension des fonctions qui lui sont demand es R utilisabilit Aptitude d un logiciel tre r utilis en tout ou en partie dans de nouvelles applications Compatibilit Facilit avec laquelle un logiciel peut tre combin avec d autres Efficacit Utilisation optimale des ressources mat riel les processeurs m moires internes et ex ternes dispositifs de communication etc Portabilit Facilit avec laquelle un produit peut tre transf r dans diff rents environnements mat riels et logiciels V rifiabilit Facilit de pr paration des proc dures de re cette et de validation particuli rement des jeux d essai et des proc dures de d tection d erreurs et de suivi d incidents en exploita tion int grit Aptitude d un logiciel prot ger son code et ses donn es contre des acc s non autoris s Facilit d apprentissage d utilisation de pr paration des donn es d interpr tation des r sultats de rattrapage en cas d erreur d utilisation g nie logiciel du fai
2. l tude des probl mes g n raux du g nie logiciel sans examiner ceux qui ne se posent que dans un domaine d application particulier tude pr alable Sp cification Conception g n rale Conception d taill e CONSTRUCTION criture des programmes v rification individueile Validation globale recette H 2050 3 MISE EN PLACE Fig 1 Mod le de la cascade G NIE LOGICIEL que l on ne passe pas l tape n sans avoir termin l tape n 1 et fait avahser formellement ses r sultats par un comit tech rique diff rent de l quipe de d veloppement selon une proc dure d firne l avance que les rerrises en cause in vitables en pratique ne puissent Se propager qu au mMvaau imm diatement sup rieur on ne peut changer l tape n que des d cisions prises l tape n 1 et passent obhgatoirement par la m me proc dure de validation 2 2 tapes D finissons maintenant plus pr cis ment l objet des diff rentes tapes cit es le r sultat de chacune d elles ce qui doit en sortir concr ternent est r sum sur le tableau I Nous suivons ici les auteurs qui se rattachent ce que nous venons d appeler l interpr tation volontariste m me si l on ne s impose pas la discipline stricte qu implique cette interpr tation les d finitions suivantes fournissent un cadre de r f rence utile Tableau I R sultats des tapes du cycle
3. _ 21 22 23 24 25 26 27 28 Addison Wesley 1983 HABERMANN N et al The Second Compen dium of Gandalf Documentation Carnegie Mellon University Pittsburgh Pennsylvania 1982 Une r f rence plus r cente sur Gandaif est le num ro sp cial du Journal of Systems and Software vol 5 n 2 mai 1985 consacr ce syst me HOARE C A R Communicating Sequential Processes Communications of the ACM vol 21 n 8 p 666 77 August 1978 HOROWITZ E KEMPER A et NARASIM HAN B A Survey of Application Generators IEEE Software vol 2 n 1 p 40 54 1985 Reading Massachusetts IEEE Standard for Software Quality Assu rance Plans ANSI IEEE Standard 730 1981 1981 KERNIGHAN B W et RITCHIE D M The C Programming Language Prentice Hall Engle wood Cliffs New Jersey 1978 KRUCHTEN F et SCHONBERG E Le Sys t me Ada Ed une exp rience de prototype uti lisant le langage SETL TSI vol 3 n 3 p 193 200 1984 KUHN T The Structure of Scientific Revolu tions Second edition The University of Chicago Press 1970 McCALL J Ed Factors in Software Quali ty General Electric 1977 MEYER B Quelques concepts importants des langages de programmation modernes et leur expression en Simula 67 Bulletin de la Di rection des tudes et Recherches d lectricit de France S rie C Informatique n 1 p 89 15
4. recette validation de l ensemble du syst me il s agit cette fois de valider par rapport aux fonctions assurer on distingue la v rification qui a pour objet de contr ler la coh rence interne d un l ment de logiciel de la validation qui contr le le respect de conditions fix es ext rieurement l objet lui m me Cette phase s appuie sur le plan de validation d fini l tape de sp cification elle est normalement confi e une quipe diff rente de l quipe de d veloppement Son r sultat est un document de certification souvent appel compte rendu de recette Diffusion pr paration et distribution des diff rentes versions Exploitation mise en place du syst me dans son environnement op rationnel prise en compte des rapports d incident correction des erreurs Dans ce mod le il convient de noter l absence d tapes associ es la documentation activit n cessaire tout au long du projet et non pas phase ind pendante du cycle de vie et la maintenance qui est couverte par l exploitation pour ce qui est de la correc tion des erreurs et doit tre consid r e comme relevant d un nou veau projet pour ce qui est des modifications de sp cification 2 3 Variantes le prototypage La notion de cycle de vie avec ce qu elle implique de rigidit dans le d roulement s quentiel des tapes a donn lieu un certain nombre de critiques des sch mas plus souples ont t pro
5. Informatiques vol 1 n 1 p 1 20 janvier f vrier 1982 Tra duction d Emmanuel Girard BOEHM B W Software Engineering Eco nomics IEEE Transactions on Software Engine ering vol SE 10 n 1 p 4 21 January 1984 BROOKS F P The Mythical Man Month Addison Wesley Reading Massachusetts 1974 COLMERAUER A KANOUI H et VAN CANEGHEM M Prolog Bases th oriques et D veloppements actuels TSI vol 2 n 4 p 271 311 juillet ao t 1983 COX B J Message Objet Programming An Evolutionary Change in Programming Tech nology IEEE Software vol 1 n 1 p 50 69 January 1984 DEWAR R B K GRAND A LIU S C SCHWARTZ J T et SCHONBERG E Programming by Refinements as Exemplified by the SETL Language ACM Transactions on Pro gramming Languages and Systems vol 1 n 1 p 27 49 July 1979 DIJKSTRA E W A Discipline of Program ming Prentice Hall Englewood Cliffs New Jersey 1976 DONZEAU GOUGE V HUET G KAHN G et LANG B Programming Environments Ba sed on Structured Editors The MENTOR Expe rience Interactive Programming Environments ed BARSTOW D R SHROBE H E SANDE es E p 128 40 McGraw Hill New York GOLDBERG A et ROBSON D Small talk 80 The Language and its Implementation V rifier qu une fiche plac e en t te de cet article ne modifie pas le pr sent texte 15 16 17 19 20
6. aveugl ment au processus de construction si rigoureux soit il pour garantir la qualit trop d erreurs et d impr vus guettent le logiciel sur la route de la perfection pour qu un processus de contr le permanent ne soit pas indispensable Les m thodes de contr le de la qualit d velopp es jusqu pr sent s appliquent surtout au produit ultime le code Il s agit en particulier des m thodes de test qui aident la pr paration des donn es d essai et la conduite des essais eux m mes On distingue les tests dits bo te noire o l on d duit les don n es d essai de la structure des sp cifications et les tests en bo te blanche qui prennent en compte la structure des programmes Cette distinction recoupe celle que l on op re entre validation et v rification cf 2 2 Les m thodes en bo te blanche sont bien adapt es l tape de v rification individuelle o l on veut en g n ral contr ler pour cha H 2050 9 G NIE LOGICIEL que l ment de programme que les donn es d essai choisies ont permis de suivre tous les chemins possibles de couvrir pour chaque variable un large spectre de valeurs etc les m thodes en bo te noire elles s appliquent tout naturellement l tape suivante vali dation globale et recette o l on veut s assurer sans se laisser influencer par la structure interne des programmes qu ils remplis sent bien les fonctions d finies par la sp cificat
7. d automatiser le processus de test existent en pratique Des g n rateurs automatiques de jeux d essai ont t d velopp s par des chercheurs mais Sont rarement applicables en pratique l exception de quelques domaines bien d finis comme le test des compilateurs o des batteries de tests normalis es existent pour certains langages comme Pascal i b 39 et Ada cf article Conformit aux normes des langages de programmation de ce trait Des outils de validation de port e th orique limit e mais qui peu vent rendre de grands services sont disponibles d s aujourd hui il s agit des analyseurs statiques qui permettent d examiner un texte de programme ind pendamment de toute donn e et donc de toute ex cution pour y d tecter des anomalies possibles et fournir H 2050 15 G NIE LOGICIEL des ents de documentation automatis e et des analyseurs dynamiques ou moniteurs de test qui permettent de contr ler l ex cution d un programme sur des jeux d essai et d en d duire un certain nombre de r sultats et de mesures taux de couverture Un de produit commercial combinant l analyse statique et se dynamique sur des programmes FORTRAN est RXVP de rai Research qui montre bien les b n fices pratiques que peu vent apporter ces techniques Parmi les autres outils de ce type on notera analyseur Ant applicable au langage C et disponible sous Unix l outil Auditor de la soci t Softool et deux outils fran a
8. gr ce auxquels les programmeurs peuvent faire semblant de croire qu ils disposent de langages de programmation moins primitifs qu ils ne le sont en r alit les g n rateurs de programmes ou langages de quatri me g n ration l b 17 progiciels param trables permettant de produire dans un domaine d application bien d limit des programmes adap t s aux besoins de chaque utilisateur qui il suffira de pr ciser les param tres sp cifiques de son application de tels outils existent en informatique de gestion o ils commencent concurrencer s rieuse ment COBOL pour les applications de nature r p titive et bien con nue mais aussi dans d autres domaines o l on peut traiter les applications les plus courantes dans un cadre normalis comme l analyse syntaxique les diteurs structurels 1 b 13 15 25 et 27 qui permettent de cr er de manipuler et de modifier des textes structur s pro grammes sp cifications etc en fonction de leur structure et non pas comme de simples suites de caract res ces outils commencent don sortir des milieux de la recherche pour gagner l indus rie 7 2 Outils de gestion de projets et de configurations L ordinateur permet aujourd hui de g rer bien des t ches humai nes le d veloppement de logiciel ne devrait pas faire exception De nombreux outils ont t propos s dans ce domaine allant de sim ples outils ponctuels permettant par exemple la prise e
9. la premi re page de cet article LANGAGES mm mi E db dt a aA SEA mt A tn End siste introduire m erreurs volontaires si le processus de mise au point est poursuivi normalement la d tection de n erreurs dont p sont des erreurs artificiellement introduites permet d estimer le nombre d erreurs naturelles Une telie m thode n a de sens que si l on dispose de donn es exp rimentales fiables sur la nature et le taux de r partition des erreurs ordinairement commises par les po grammeurs afin de garantir que les erreurs mtroduites leur sont bien statistiquement comparables les poissons bagu s doivent avoir la m me probabilit que les poissons du lac de passer tra vers les mailles du filet Pour int ressantes qu apparaissent ces diff rentes techniques on peut cependant ressentir un certain malaise vis vis de la concep tion qu elles refl tent des erreurs en programmation et plus g n ra lement de la programmation elle m me S il appara t naturel de trai ter par des m thodes statistiques les d faillances de syst mes ma t riels l id e selon laquelle la pr sence d erreurs dans un logiciel est un ph nom ne qui peut et doit tre mesur donc finalement un ph nom ne normal peut choquer Les erreurs dans les programmes sont des erreurs de raisonne ment et l analyse quantitative a ses limites dans ce domaine En phase de mise au point le nombre d erreurs restantes n est pas n cessairement un bon indicateur
10. les syst mes et les concepts qui ont perc depuis quelques ann es qu ils sppetlent Unix interlisp Pascal C Macintosh Simula Smalltalk ou Prolog on constate immanquablement qu ils proc dent de ces gr x paradigmes et r sultent du travail de petites quipes ou Gi individus brillants plut t que des m thodes qui permirent en leur emps l dification des Pyramides ou celle de l OS 360 O sont donc les progr s potentiels Ce tour d horizon a fait ressortir quelques domaines particuli rement importants dans les quels ne nous semble pas d raisonnable d esp rer des am liora tions consid rables si l on s en donne les moyens H 2050 18 la n cessit d une d marche plus rigoureuse vis vis de la construction de programmes fond e sur les math matiques et plus particuli rement sur la logique c est ce prix que des am liorations significatives pourront tre apport es la validit des logiciels travers l utilisation de sp cifications formelles et de techniques de construction syst matique la formation des informaticiens qui appara t essentielle en re gard du point pr c dent les m thodes formelles on l a vu font appel la culture math matique et dont le multiplicateur 4 1 attri bu au facteur aptitude de l quipe dans le mod le Cocomo r sultat d une analyse de la r alit actuelle fait cruellement ressortir l importance l utilisation de langage
11. phases de con ception et de mise en uvre au cours desquelles les objets du SySt me programmes et structures de donn es seront effective Pour la table analytique se reporter la premi re page de cet article LANGAGES md mm ro aS ment construits La sp cification a pour but de d finir auparavant les propri t s pr cises que devront respecter ces obiets Au del d une certaine taille de projet cette t che se r v le sou vent la plus importante et la plus ardue Plusieurs m thodes ont t propos es pour la faciliter Parmi celles qui sont r ellement em ploy es dans certaines branches de l industrie les unes SADT Me rise cherchent essentiellement faciliter le dialogue entre les infor maticiens et leurs clients en proposant un support commun de description et de discussion graphique dans le premier cas cit D autres SREM PSL PSA mettent l accent sur les outils informati ques permettant d exercer un contr le serr de l volution du projet de ses sp cifications et de sa documentation A c t de ces m thodes issues en g n ral de l industrie de nom breux chercheurs ont propos des langages formels permettant gr ce des notations de type math matique d exprimer les sp cifi cations sous une forme rigoureuse et non ambigu Les m thodes associ es sont en g n ral plus difficiles mettre en uvre car elles exigent de la part des sp cificateurs une culture math matique e
12. provocation Lorsqu en 1968 le comit scientifique de l OTAN Organisation du Trait de l Atlantique Nord se mit en t te d inviter quelques uns des plus grands sp cialistes mondiaux de la programmation r fl chir ensemble sur ce que l on commen ait d appeler la crise du logiciel le titre choisi pour la conf rence sonna comme un d fi parler de software engineering de g nie logiciel et donc sugg rer l analogie avec de respectables disciplines telles que le g nie civil ou le g nie chimique ce ne pouvait tre qu une mani re de d rision un proc d pour alerter les informaticiens sur le carac t re rudimentaire de leurs m thodes et de leurs outils quotidiens La conf rence se d roula Garmisch en Bavi re l automne 1968 et se termina sur un cri d alarme dont on peut retrouver l cho dans les actes publi s un peu plus tard l b 33 Face l extraordinaire d veloppement de la puissance du mat riel le logi ciel n avait pas suivi Projets en retard budgets d pass s informati gations manqu es syst mes monstrueux graves erreurs de fonc tionnement innombrables taient les exemples qui montraient l ur gence d une r flexion en profondeur sur les moyens d am liorer la qualit des logiciels et leur mode de production Dix sept ans apr s la conf rence de Garmisch le terme de g nie logiciel et son quivalent anglais ne sont plus ressentis comme oxy morons C est m me plut t leur succ s qui frapp
13. r t g n ral ant rieure au projet Cette mesure pr te le flanc la critique et de fait nombreux sont les auteurs qui ont propos des crit res de mesure plus fins Cer tains de ces crit res cherchent ainsi prendre en compte la com plexit du graphe de contr le des programmes Mais il faut bien admettre que les mesures plus ambitieuses ne donnent pas dans les tudes qui ont t men es sur la corr lation entre les divers crit res propos s et l effort r el observ exp rimentalement sur les logiciels correspondants des r sultats tr s sup rieurs celui de fa simple mesure I qui pr sente l avantage de pouvoir tre calcul e facilement par un simple programme de comptage L application de mod les de ce type suppose par ailleurs que l on conna t la taille du programme final qui n est pas toujours facile d terminer l avance m me pour un responsable de projet exp riment Une autre objection vidente est que les formules universelles comme celle de Cocomo ne permettent pas de rendre compte des conditions particuli res chaque projet il est certainement irr a liste de traiter de la m me facon un syst me de pilotage automa tique d avion r alis sur un microprocesseur m moire strictement limit e par une quipe qui conna t mal le mat riel et le langage et un programme de comptabilit crit en Cobol sur BM 370 par une soci t de service rompue ce genre d exercice m me si le n
14. sent x t i Programme 1 tm 1 jen trouv faux tant que i j et non trouv faire m l i j 2 si t m lt x alors i em i sinon si t m x alors trouv vrai sinon j m 1 fin fin pr sent trouv Programme 2 ennemie ppm one E araa Pme programmes i 0 j n tant que i j faire m i j 2T si t m x alors i m 1 sinon j m fin fin siiz 1eti lt nalors pr sent x t il sinon pr sent faux fin Programme 3 i 0 j n 1 tant que i j faire m L i j 2 si t m x alors i m i sinon j m fin fin siiz 1eti lt nalors pr sent x t il sinon pr sent faux fin Programme 4 Pour chacun des quatre programmes on trouvera ci apr s une ou plusieurs valeurs du tableau t et de l l ment x pour lequel le program me est incorrect Dans tous ces contre exemples t contient un ou deux l ments mais il existe une infinit d autres valeurs qui soul vent les m mes probl mes Programme 1 t 1 2 x 2 bouclage infini Programme 2 t 1 2 x 0 d bordement du tableau t 1 r sultat erron pr sent mis faux alors que l l ment est j Programme 3 t 1 2 x O d bordement du tableau Programme 4 t 1 2 x 0 d bordement du tableau contre exemples La notation r o r est un r el d signe le plus grand entier inf rieur ou gal r partie enti re de la m me fa o
15. solutions seront recherch es en priorit du c t de l tude des pratiques in dustrielles de la collecte de mesures si l on met l accent sur des m thodes il s agira de m thodes de gestion de projets ou d organi sation des quipes plut t que de sp cification formelle ou de con ception par objets L importance des probl mes de gestion appara t clairement qui conque a observ le d roulement d un projet mais dans l tat ac tuel du m tier ils nous semblent plus un sympt me qu une cause premi re Le g nie logiciel n a pas atteint un niveau suffisant pour que les aspects techniques puissent tre consid r s comme secon daires par rapport aux questions d organisation est peu pr s H 2050 17 G NIE LOGICIEL rer faire progresser la qualit du logiciel par des de travail employ es dans les entreprises qu il redt t fonder les progr s de l pid miologie dix ans avant sur l tude des pratiques hygi niques en vigueur dans les On peut aussi reprocher beaucoup de travaux sur l organisation ses ou la gestion des projets de ne pas s carter du para me a classique du d veloppement de logiciel dans les grands pro ets industriels le mod le du toujours plus qui suppose de gros ses quipes de grosses machines de gros budgets Or il existe d autres paradigmes qui misent plus sur le talent et la cr ativit que uur la masse et sur la force brute et si l on consid re
16. successifs qui part de l expression la plus g n rale du probl me r soudre et d compose r p titivement les t ches effectuer en sous t ches plus simples jusqu ce que tout ait t exprim en termes d op ra tions assez l mentaires pour tre mises en uvre directement dans un langage de programmation Les m thodes ascendantes ne doivent pas tre n glig es pour autant elles cherchent favoriser la r utilisation de logiciel existant et la construction de nouveaux syst mes par combinaison d l ments pr d finis Elles r pondent ainsi l un des probl mes cl s du g nie logiciel celui de la r utilisabilit trop d investissements sont perdus en raison du faible taux de r utilisation des programmes et de l habitude qui dans l tat actuel de la technique est souvent une n cessit de repartir de z ro pour chaque nouveau produit La v rit en mati re de m thodes de conception consiste sans doute en une judicieuse combinaison de descendant et d ascendant permettant d appliquer chaque nouveau probl me une tude sys t matique partant de la sp cification tout en favorisant au maxi mum la r utilisation d l ments de logiciel pr c demment r alis s 4 3 M thodes de sp cification Les m thodes de sp cification Sont destin es faciliter l analyse des probl mes r soudre et la description externe des syst mes Dans le cycle de vie la sp cification pr c de les
17. versions successives d un document non pas n ces sairement un programme malgr le nom du produit et Make qui permet de reconstruire un logiciel en ex cutant automatiquement les actions de recr ation rendues n cessaires par l volution de cer tains composants par exemple un module source qui a t modifi post rieurement la cr ation du module objet correspondant doit tre recompil Plusieurs quipes d veloppent aujourd hui des outils de gestion de projets et de configurations qui s appuient sur des syst mes de gestion de bases de donn es On trouvera dans l article I b 28 la description d un syst me qui s appuie sur un mod le binaire des relations entre composants logiciels et sur la notion de contrainte s mantique Toujours dans le domaine des outils de gestion nous avons cit pr c demment 5 1 les mod les de co t des outils logiciels sont associ s certains de ces mod les comme Wicomo de l Institut Wang pour Cocomo Price S de RCA pour le mod le du m me nom etc 7 3 Outils de contr le et de validation Comme nous l avons vu au paragraphe 4 6 le test dynamique c est dire l ex cution du syst me dans des situations pr d termi n es et la comparaison des r ponses obtenues avec un sc nario type tabli l avance reste la m thode de validation la plus r pan due malgr ses limitations videntes il est d autant plus surprenant de constater que peu d outils per mettant
18. 0 Clamart France 1979 MEYER B A Basis for the Constructive Ap proach to Programming Information Processing 80 Proceedings of the IFIP World Computer Congress Tokyo Japan October 6 9 1980 ed S H Lavington p 293 8 North Holland Pu blishing Company Amsterdam 1980 MEYER B et NERSON J M C page Un diteur structurel Pleine Page Second Colloque de G nie Logiciel Second Conference on Soft ware Engineering p 153 8 AFCET Nice Fran ce 1984 MEYER B Eiffel A Design and Implemen tation Language for Software Engineering Inter University of California Santa Barbara Novem ber 1985 MEYER B C page vers la Conception de Logiciel assist e par Ordinateur Convention In formatique Paris septembre 1985 MEYER B The Software Knowledge Base 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 8th international Conference on Software Engi neering London August 1985 MEYER B On Formalism in Specifications IEEE Software vol 3 n 1 p 6 25 January 1985 MILNER R A Calculus of Communicating Systems Lecture Notes in Computer Science 92 Springer Verlag Berlin 1980 MOSTOW J Ed Special Issue on Artificial Intelligence and Software Engineering EEE Transactions on Software Engineering vol SE 11 n 11 November 1985 MUSA J D A Theory of Software Reliability and its Application IEEE Tr
19. A A a SESER STR ARE VESEO SERTARE A G nie logiciel par Bertrand MEYER Ancien l ve de l cole Polytechnique et de l cole Nationale Sup rieure des T l communications Master of Science Stanford University Docteur s Sciences Professeur associ l Universit de Californie Pr sident de la Soci t Interactive Software Engineering Inc Introduction Du slogan la r alit Logiciel g nie logiciel Cycle de vie D finition et interpr tations tapes NDNN amaa w Objectif majeur la qualit du logiciel M thodes Programmation structur e M thodes de conception descendantes et ascendantes M thodes de sp cification M thodes objets types abstraits modularit M thodes emprunt es l intelligence artificielle M thodes de contr le de la qualit M thodes de gestion de projets 4 4 4 4 4 4 4 5 Mesures et mod les Mod les de co t P me Outils d aide la construction des programmes Outils de gestion de projets et de configurations Outils de contr le et de validation Au del des outils les environnements QD NNNNN RON Vers une discipline scientifique Index bibliographique g cel a T o a 2 E Z 9 z p al 1 W g 2 T J u H 2050 1 GENIE LOGICIEL OoOo Immm PT El Introduction 1 1 Du slogan la r alit Au commencement ce ne fut gu re qu un jeu de mots tout le moins une
20. a plage de varia tion de l effort r el selon que l quipe de d veloppement conna t particuli rement bien ou particuli rement mal la machine virtuelle terme sous lequel Boehm regroupe l ordinateur le syst me d ex ploitation le compilateur et les autres outils qui constituent ensem ble la machine vue par les membres du projet L examen de ces multiplicateurs par exemple du dernier relatif la comp tence de l quipe qui peut aller jusqu 4 18 peut vi demment laisser sceptique sur l applicabilit r elle de mod les tels que Cocomo quoi sert un mod le qui donne d un c t des formules math matiques pr cises et de l autre des coefficients de variation aussi importants se rapportant des facteurs dont l ana lyse est in vitablement subjective Ce type de mod le est en effet difficile d fendre comme source de pr visions absolues 1 serait illusoire m me si Cocomo donne quelques indications g n rales sur ce point de chercher savoir de but en blanc si l aptitude de l quipe doit tre valu e 2 3 ou 2 7 Mais les choses changent si l on consid re plut t des valeurs relati ves Une soci t qui a s rieusement entrepris de collecter des mesu res sur ses projets pendant un certain temps peut comparer les valeurs observ es avec les pr dictions du mod le et donc calibrer celui ci en fonction de ses caract ristiques propres Il devient alors beaucoup plus facile d estimer les par
21. aines des entit s caract ristiques des projets logiciels co ts d lais taux d erreurs se pr tent une analyse quantitative et des techniques de mod lisation math matique ont t propos es pour estimer l avance la valeur de certains param tres C est l axe des mesures et mod les 5 A Cycle de vie 2 1 D finition et interpr tations Un paradigme dans une discipline scientifique est un concept fondamental ou un ensemble de concepts comme la notion d inva riant en physique ou celle de structure en math matiques qui impli que tout un mode de raisonnement et sert de r f rence commune aux sp cialistes de la discipline une certaine tape de son volu tion historique l b 21 L un des paradigmes principaux du g nie logiciel est la notion de cycle de vie pierre de touche de l tude chronologique des projets Le cycle de vie est une mod lisation conventionnelle de la succes sion d tapes qui pr side la mise en uvre d un produit logiciel Il est souvent repr sent sous la forme dite mod le de la cascade en raison de l analogie qu voque le sch ma correspondant fig 1 Les huit tapes indiqu es sur ce sch ma se r partissent en deux poques jusqu la phase d criture des programmes il s agit de construire au del de mettre en place Il faut noter que le d tail de la division en tapes varie dans les diff rentes pr sentations publi es Une norme de l IEEE Institute of Elec
22. am tres non pas dans l absolu mais par comparaison avec les valeurs retenues pour des projets pr c dents sur lesquels le mod le a t essay et affin C est de cette fa on qu il faut comprendre un mod le tel que celui de Gocomo non pas un oracle qui donne une r ponse infaillible une question pr cise mais un l ment d estimation qui suppose une politique de collecte de mesures et la mise en place d une base de donn es sur les co ts de d veloppement de logiciel dans l entrepri se Notons pour terminer sur ce Sujet que nous avons seulement donn un aper u du mod le Cocomo qui inclut aussi des techniques Sa Ta plus fines dont on trouvera la description dans Lb 5 et 71 5 2 Mod les de fiabilit Les mod les math matiques de fiabilit 1 b 38 transpositi Bs i D Sposition au logiciel de la th orie classique de la fiabilit des nr mat riels H 2050 12 permettent d obtenir un certain nombre d informations sur les er reurs qui subsistent dans un programme partir d informations sur le projet particuli rement sur les erreurs pr c demment d tect es de donn es de r f rence et d hypoth ses statistiques sur la r parti tion des erreurs implicitement ces mod les traitent donc les d faillances des sys t mes logiciels de la m me fa on que celles des dispositifs mat riels On peut trouver cette assimilation hasardeuse puisque les d faillances des syst mes mat riels provi
23. ansactions on Soft ware Engineering vol SE 1 n 1 p 312 27 Juiy 1975 NAUR P et RANDELL B W Eds Software Engineering NATO Scientific Affairs Division Bruxelles 1969 NERSON J M Panorama des outils d aide l am lioration de la qualit des logiciels Note Atelier Logiciel n 41 lectricit de France Di rection des tudes et Recherches Clamart avril 1983 PARNAS D L On the Criteria to Be Used in Decomposing Systems into Modules Communications of the ACM vol 5 n 12 p 1 053 8 December 1972 PARNAS D L Designing Software for Ease of Extension and Contraction IEEE Transactions on Software Engineering vol SE 5 n 2 p 128 38 March 1979 PARNAS D L Software Aspects of Strate gic Defense Systems Software Engineering No tes ACM vol 10 n 5 p 15 23 octobre 1985 Egalement dans American Scientist vol 73 p 432 40 septembre octobre 1985 SHOOMAN M L Software Engineering Design Reliability and Management McGraw Hill New York 1984 SIDI J Validation de compilateurs applica tion Pascal TSI vol 2 n 5 p 345 54 sept oct 1983 STEELE G L Common Lisp Prentice Hall Englewood Cliffs New Jersey 1984 STROUSTRUP B The C Programming Language Addison Wesley 1986 TURNER D A SASL Language Manual Saint Andrews University 1981 TURNER D A Recursion Equations as a Pro gramming Language Functional Pro
24. articulier du langage Prolog cf 4 en utilisant des notations formel les soumises certaines restrictions on peut obtenir des textes interpr tables comme sp cifications mais pouvant gale ment tre ex cut s sur un ordinateur On doit accepter pour cela une perte de puis sance expressive du point de vue de la sp cification et d efficacit du point de vue de l ex cution mais on gagne l unicit de la description C est une des m thodes qui tendent r concilier la sp cification et le prototypage 4 4 M thodes objets types abstraits modularit convient de mentionner un ensemble de m thodes qui peuvent s appli quer aux diff rentes tapes de la premi re partie du cycle de vie la phase de construc tion et s opposent assez nettement la d marche traditionnelle Dans une program mation conception sp cification par ob jets on d crit un syst me de fa on globale moins par la fonction qu il remplit que comme un ensemble de classes d objets caract ris s par leurs propri t s abstraites Le bien fond de cette approche est parti culi rement vident dans des domaines comme la conception des syst mes d ex ploitation ou des syst mes de contr le commande o les objets coop rants sont les gestionnaires des diff rentes ressources disponibles mais la m me id e se trans pose avec bonheur aux autres domaines d application La programmation par objets a t intr
25. c pour le compte de l arm e de lar am ricaine Lb 22 McCa prend bien soin de distinguer les deux sortes de condi tions qui d terrmnent la qualit d un produit logiciel les caract nstiques externes de la qualit d un logiciel comme l extensbiht facilit d adaptation des changements de sp cifica tons qui peuvent tre per ues par les utilisateurs du produit les caract ristiques internes de la qualit qui peuvent tre ana lys es par les mformaticiens l examen du programme et des au tres documents techniques associ s un exemple est la modularit du syst me c est dire sa division en unit s logiques simples et coh rentes Cette distinction qui n apparaissait pas toujours clairement dans les travaux ant rieurs sur la qualit du logiciel est importante car elle vite de confondre causes et sympt mes McCall appelle Facteurs les caract ristiques externes et crit res les caract risti ques mternes Seuls les facteurs comptent en dernier ressort puisqu ils d termi rent l utilisation du produit mais c est le respect des crit res au cours du d veloppement qui conditionne la production d un logiciel conforme ces facteurs Les exemples pr c dents illustrent cette remarque la modularit crit re est un l ment important pour assurer l extensibilit facteur Plus g n ralement McCall propose une matrice montrant t in fluence de chacun des crit res sur chacun des facteurs C
26. de vie ooo ee EE Phase exploratoire dossier d entretiens d cision ne pas faire acheter faire faire faire budget approximatif tude pr alable Sp cification Conception g n rale Conception d taill e criture des programmes v rification individuelle Validation globale recette at Exploitation Phase conceptuelle cahier des charges plan g n ral du projet budget pr cis d finition des contraintes Document de sp cification fonctions et performances premi re version du manuel d utilisation plan d taill du reste du projet plan de validation tests en particulier D finition des principales structures de donn es d composition du sys t me en modules architecture et description du r le de chaque module Description d taill e des structures de donn es et des modules Texte des programmes chaque mo dule v rifi s par ment Compte rendu de recette rapports d inspection et de validation Versions des programmes et de leur documentation adapt es aux diff ren tes cat gories d utilisateurs Programme en fonctionnement Rap ports d incidents et de correction H 2050 4 tude pr alable il s agit tout d abord phase exploratoire de d terminer en g n ral apr s avoir men une s rie d entretiens avec les utilisateurs potentiels s il
27. de voir la programmation structur e pr sent e comme un simple ensemble d interdictions relatives aux structures de contr le dans les langages de programmation ne pas employer de branchements se limiter trois figures de base encha nement choix boucle et quelques variantes En r alit la programmation structur e se voulait une remise en cause profonde des m thodes habituelles de construction de logi ciel et ses cr ateurs insistaient sur la n cessit d une d marche rigoureuse math matique Un r le important tait d volu la no tion de d monstration de validit des programmes un programme doit tre construit selon Dijkstra et Hoare comme on prouve un th or me sa validit doit tre vidente et math matiquement v ri fiable Ces m thodes rigoureuses exigent que l on parte d une descrip tion du probl me qui soit elle aussi math matiquement irr procha ble elles m nent donc au probl me de la sp cification formelle ye en donnerons quelques exemples apr s avoir abord ce th me S 4 3 4 2 M thodes de conception descendantes et ascendantes Les m thodes de conception proposent des principes g n raux pour guider le concepteur d un syst me complexe travers le labyrinthe des probl mes r soudre Les m thodes le plus souvent associ es la programmation structur e sont de type descendant c est dire qu elles appii quent une d marche syst matique dite par affinages
28. des contextes diff rents et favorise donc les fac teurs de r utiisabilit et de compatibilit s v rit des contr les de types dans la tradition de Pascal qui cermet d am liorer la validit et la fiabilit les erreurs de conception se traduisent souvent au moment de la mise en uvre par des incompatibiit s de types que des langages laxistes tol reront abu sivernent Destin tout particuli rement la programmation des agphcations temps r el Ada permet par ailleurs de construire des syst mes t ches parall les ce qui est une n cessit dans ce do mans Dans l attente de compilateurs qui soient la fois facilement accessibles de qualit industrielle et adapt s aux principaux mat riels du commerce Ada reste un pari Un chec de ce pari aurait sans doute une influence consid rable sur l volution du g nie logi Au moment o sont r dig es ces lignes il existe des compilateurs r pondant l un de ces crit res parfois deux mais non aux trois voir la table fournie suti r ment par C R Morgan sous le titre Matrix of Ada Language Implemen tation dans le bulletin Ada Letters du groupe Ada de l ACM dernier tat en date dans le volume VY n 1 juillet ao t 1985 L apparition d Ada aura de toute fa on marqu une tape dans l volution des langages On peut dire qu Ada constitue le couron nement de la lign e des langages de programmation classiques dans la filiation FORTRAN Algo
29. deux deux compatibles Le tableau HE indique quelques uns de ces outils non n cessairement tous pr sents dans toutes les versions commerciales du produit Pour les nombreux sp cialistes qui cherchent actuellement d velopper des environnements logiciels Unix et ses contemporains tel Interlisp dans lequel la structure de r f rence commune est plut t que le fichier la liste au sens du langage Lisp ne m ritent pas v ritablement le qualificatif int gr De Drouas et Nerson i b 44 les appellent environnements de deuxi me g n ration ces environnements vitent les incompatibilit s inh rentes leurs pr d cesseurs mais sont essentiellement des bo tes outils Pour cer tains auteurs seuls peuvent tre dits int gr s les environnements dans lesquels les outils sont li s par un fil conducteur plus solide qu un simple ensemble de conventions homog nes par exemple un langage comme dans les environnements Apse d finis autour d Ada par le DoD ou une m thode int gr e de d veloppement Cette vision selon laquelle les environnements doivent tre pour ainsi dire totalitaires b tis autour d une id e centrale tr s forte ne fait cependant pas l unanimit les ateliers bo tes outils de type Unix moins int gr s mais plus souples et ouverts ont fait leurs preuves et conservent de chauds partisans Une chose est certaine pour l avenir les nouveaux ateliers int gr s prendront de plus en plu
30. dits objets d riv s de Simula 67 1 b 3 ou de Smalltalk T 141 comme C l b 41 Objective C l b 10 ou Eiffel 1 b 26 permettent de d crire un syst me non pas comme une suite d instructions ex cuter mais comme un en semble d objets dynamiques autonomes et communicants II reste savoir ce qui dans ce bouillonnement va merger Les langages fonctionnels et logiques jouent un r le essentiel dans les recherches sur l intelligence artificielle leur applicabilit au g nie logiciel reste d montrer Ils sont parfois propos s comme langa ges pour le prototypage rapide SETL a t utilis avec succ s dans ce domaine ayant servi de langage pour le premier compilateur Ada officiellement valid I b 20 Les perspectives offertes par les lan gages objets nous semblent plus prometteuses leur r le peut notre sens tre fondamental pour r soudre quelques uns des pro bl mes cruciaux du g nie logiciel en particulier la r utilisabilit et l extensibilit Ce point de vue est d velopp dans les articles l b 23 et l b 26 Outils Dans toute branche de l ing nierie les outils commun ment dis ponibles jouent un r le consid rable Il ne s agit pas seulement de leur utilit concr te et quotidienne plus long terme il se forme autour des outils chez les praticiens du domaine une culture aussi importante que la culture proprement scientifique Devient homme du m tier c
31. du travail qui reste faire une seule erreur bien cors e peut en valoir beaucoup de v nielles en phase d exploitation le passager d un avion ne sera pas n cessaire ment r confort surtout s il est lui m me programmeur par l an nonce que d apr s les pr dictions du mod le il ne doit rester que 0 005 d erreurs r siduelles dans le logiciel d atterrissage automa tique veaux langages venus d horizons divers Pascal issu de la recher che universitaire et d abord destin l enseignement qui a atteint une diffusion importante en mini et en micro informatique d velopp aux Laboratoires Bell AT amp T qui gagne du terrain en m me temps que le syst me Unix APL ancien dans sa conception 1960 mais qui n est utilisable en vraie grandeur que depuis quel ques ann es Un langage plus r cent a fait couler beaucoup d encre Ada d velopp par une quipe de Bull en r ponse un appel d offres du Minist re Am ricain de la D fense DoD Ada est sans doute le premier langage d ambition industrielle avoir t con u selon des crit res qui ressortissent incontestablement du g nie logiciel modularit avec la notion de paquetage compilation s par e importante pour la programmation en quipe et pour la gestion des configurations H 2050 13 ue NAN G NIE LOGICIEL EE RER g n ricit qui permet d utiliser une m me structure proc dure type dans
32. e on ne compte plus les enseignements universitaires les congr s les revues et les groupes de travail qui s en r clament Mais cette faveur m me peut sembler suspecte au del de l engouement pour une appellation bien tourn e le m tier qu elle d signe est il vraiment devenu un g nie une discipline d ing nieur On peut en d battre Que les concepts aient progress que des id es majeures aient fait leur chemin il serait difficile de le nier mais l effet r el de ces progr s dans les entreprises l o se d veloppe le logiciel qui devrait tre de qualit industrielle c est une autre affaire Les r flexions qui suivent apporteront peut tre quelques l ments de r ponse 1 2 Logiciel g nie logiciel Avant de commencer notre promenade il est utile de pr ciser l objet de l tude Qu appelle t on exactement g nie logiciel Une d finition parfois propos e pas tout fait s rieusement est que cette expression sert d signer ce que l on appelait nagu re tout bonnement programmation et doit tre employ e en pr sence de ses sup rieurs hi rarchiques des jeunes personnes qui l on fait la cour et plus g n ralement chaque fois que l on souhaite donner une apparence plus noble ce que l on fait le terme de programma tion tant r serv aux circonstances o l on doit vraiment se faire comprendre par exemple lorsqu on affecte une t che l un de ses subordonn s Au del de la boutade ce
33. e d un contr le permanent du projet et de ses produits Nota le mod le de la cascade qui semble pr senter la v rifica tion et la validation comme des tapes chronologiques et non comme des activit s continues n est pas enti rement satisfaisant cet gard Il est de toute vidence n cessaire de d velopper des m thodes de contr le de la qualit qui s appliquent tous les produits d un projet programmes mais aussi donn es cahiers des charges sp cifications documents de conception manuels et autres documents techniques et qui puissent tre mis en uvre tout au long de la vie du projet Le contr le de la qualit rejoint ici tout naturellement la gestion de projets 4 7 M thodes de gestion de projets A c t des probl mes purement techniques la r alisation de logiciel soul ve de nombreu ses difficult s quant la gestion des projets Dans une certaine mesure ces difficult s sont les m mes que dans les autres applica tions de l ing nierie mais les particularit s du logiciel et la com plexit des syst mes que l on r alise dans ce domaine ont rendu n cessaire la mise au point de m thodes sp cifiques Les travaux sur la gestion des projets logiciels ont port par exemple sur l organisation des quipes comment viter le ph no m ne souvent observ selon lequel au del d une certaine taille de l quipe les probl mes de communication l emportent sur les pro bl mes techniqu
34. e peut dans certains cas faire bon m nage avec une sp cification s il est na f de croire que la r alisation d un proto type dispense d une r flexion initiale approfondie il peut tre tout fait raisonnable d int grer cette r flexion une composante exp ri mentale sous la forme d un prototype destin valider certaines hypoth ses qu il est difficile d analyser autrement L auteur a port ses recherches dans la direction de la sp cifica tion plus que dans celle du prototypage encore qu il ait comme tout le monde pratiqu sans l avoir cherch le prototypage incr mental lent Mais on ne peut nier que la technique du prototypage rapide puisse rendre des services lorsque les conditions de son ap plication sont r unies une liste de conditions n cessaires est don n e en l b 7 H 2050 5 i 3 5 i a S E E Eo ss A La d fimtion du g nie logiciel sur laquelle repose cet article ac corde une place primordiale la notion de qualit Il est donc n ces saire d examiner d un peu plus pr s ce que recouvre cette notion dans Le cas du logiciel Un certain nombra d auteurs en ont propos des d finitions lune des premi res reposer sur une tude syst matique tait celle de Boehm et de ses collaborateurs TRW Lb 4 La d finition dont nous nous inspirerons ici est celle de James McCall r sultat d une tude effectu e en 1977 par General Electri
35. elui qui a non seulement ma tris les concepts et les connaissances jug s n cessaires un certain moment de l volution des techniques mais aussi appris manier et dominer les outils qui ce m me moment constituent le support ordinaire des pro fessionnels En logiciel l outil est d abord mat riel devenu depuis quelques ann es de moins en moins lointain gr ce la diffusion de la micro informatique et la d centralisation des fonctions sur les grands syst mes nous allons y revenir Mais les outils qui nous int ressent ici au premier chef sont les outils logiciels programmes destin s favoriser le d veloppement la modification et la diffusion d autres programmes Un catalogue des diff rents types d outils de g nie logiciel d pas serait les limites de cette introduction b 34 Nous nous borne rons citer quelques uns des domaines les plus prometteurs 7 1 Outils d aide la construction des programmes Parmi les outils qui interviennent lors des phases de construction certains sont classiques comme les diteurs de textes sur les syst mes interactifs Parmi les d veloppements plus originaux on peut citer les outils d aide la conception en g n ral associ s un lan gage de conception ou pseudo code galement appel PDL Program Design Language et plus g n ralement tous les outils pr processeurs tels que le processeur de macros int gr au lan gage C l b 19
36. ennent non seulement de fautes de conception ou de r alisation mais aussi de la simple usure physique ph nom ne qui bien s r n existe pas en logiciel Dans la suite nous appelons erreur ne anomalie pr sente dans le logiciel et d faillance un cas observ de mauvais fonctionnement du logiciel A la diff rence des d faillances mat rielles les d fail lances d un logiciel sont toujours dues des erreurs Comme tout mod le math matique un mod le de fiabilit calcule un certain nombre de r sultats en fonction d un certain nombre de param tres d entr e Ces param tres d entr e peuvent tre le temps selon les mod les on prend en compte soit le temps calendaire soit le temps pendant lequel le programme s ex cute les taux de d faillances observ s en phase de mise au point ou si l on est d j en phase d exploitation jusqu l instant courant je des r sultats ant rieurs relatifs d autres projets compara les des hypoth ses statistiques par exemple l un des mod les les plus connus celui de Musa I b 32 suppose que les erreurs sont uniform ment distribu es parmi les instructions du programme des param tres sp cifiques du projet En sortie on obtient par exemple Une estimation du nombre d erreurs r siduelles le taux pr visible d erreurs z t o t est le temps le temps moyen jusqu la prochaine d faillance MTTF Mean Time T
37. es Certaines m thodes d organisation tr s strictes ont t pr conis es en r ponse ces difficult s comme la m thode des quipes programmeur en chef d IBM I b 2 Brooks l architecte principal du syst me OS 360 r sume ainsi dans son livre intitul Le Mythe de l Homme Mois I b 8 l insuffi sance des recettes simples pour r soudre les probl mes de la ges tion de projets Si l on ajoute du personnel un projet en retard on ne fait que le retarder encore Une autre question li e la gestion des projets est celle de la ma trise des co ts et des d lais est essentiel dans ce domaine de pouvoir effectuer des estimations l avance c est ici qu intervien nent les mod les B Mesures et mod les L une des id es essentielles de la science moderne est que l on ne conna t bien que ce que l on sait mesurer Le g nie logiciel ayant pour ambition d asseoir la production de logiciel sur des bases scientifiques il est naturel que de nombreux sp cialistes se soient demand si l on pouvait appliquer ce domaine des techniques quantitatives Des m thodes de mod lisation et de mesure ont ainsi t propos es elles sont encore loin de constituer ce que certains auteurs ont pr matur ment appel une physique du logiciel mais contiennent des l ments qui peuvent tre utiles au praticien Les mod les applicables au logiciel se r partissent en deux cat gories pri
38. es peuvent ici tre mis profit cf 6 e Un prototype de la seconde forme ne comporte que certaines des fonctions de base du syst me envisag il s agit de le faire voluer vers un produit complet par additions successives sans rupture de continuit On peut utiliser les termes de prototype jetable et de prototype incr mental pour distinguer ces deux variantes certains auteurs par lent de maquette dans le premier cas et r servent le terme de proto type au second mais cette terminologie n est pas universelle Le d bat entre partisans de la m thode s quentielle et du proto typage n est pas clos Il est int ressant de noter que les arguments des deux coles se nourrissent de la m me constatation de base tous les r sultats d tudes sur le co t des erreurs en logiciel mon trent que les erreurs commises t t dans le cycle de vie aux tapes d tude pr alable et de sp cification et d cel es tard ont des con s quences normes sur le co t des projets Ce ph nom ne est illus tr de fa on particuli rement frappante par une courbe r sumant les r sultats d un certain nombre d analyses de grands projets et pu bli e par B W Boehm 1 b 5 fig 2 Les donn es sur ces projets proviennent de l Arm e de l Air am ricaine projet Safeguard et des soci t s am ricaines IBM TRW et GTE On voit pourquoi ces r sultats peuvent servir justifier des m thodes tr s diff rentes Une conclusi
39. ette in fluence peut tre positive comme dans l exemple de la modularit et de l extensibilit n gative ou nulle Cette analyse est compl t e par la d finition d un certain nombre de mesures permettant d as socier chaque crit re des v rifications quantitatives Le tableau H donne la d finition de dix facteurs voisins de ceux de McCall L une des caract ristiques essentielles d une telle d finition de la qualit est qu elle est plurielle ce sont des qualit s possibles que l on met ici en vidence Or un simple examen montre que ces qualit s ne sont pas n cessairement deux deux compatibles On ne saurait par exemple atteindre l optimum tout la fois en mati re de fiabilit et de facilit d emploi le premier but entra ne in vitable ment l inclusion de protections de barri res qui sont pr judiciables au second Une telle constatation n a rien de vraiment surprenant dans toute branche d ing nierie ta qualit s obtient au prix d un compro mis entre des objectifs souvent contradictoires co ts d lais de r alisation tendue des fonctions offertes s curit d emploi etc Mais en logiciel ce compromis est trop souvent encore r alis de fa on inconsciente l un des facteurs l efficacit par exemple tant exag r ment privil gi Si la n cessit d op rer des compromis est une des constantes de l ing nierie le probl me se pose de fa on particuli rement aigu en H 2050 6
40. gramming and its Applications ed John Darlington Peter Henderson and David Turner Cambridge Uni versity Press 1983 de DROUAS E et NERSON J M Les Ate liers Logiciels Int gr s D veloppements Fran ais Actuels TSI vol 1 n 3 p 211 32 1982 H 2050 19
41. igation pour le programmeur d indiquer pr cis ment l ordre s quentiel du d roulement des instructions description proc durale du traitement fond e sur les actions effectuer et non sur la vie individuelle des objets du syst me De nombreux langages propos s depuis quelques ann es cher chent s affranchir de ces diff rents d fauts les langages ensemblistes tels que SETL I b 11 offrent les ensembles les listes etc comme structures de donn es primitives les langages fonctionnels nouvelles versions de Lisp b 40 ou cr ations plus r centes comme FP I b 1 SASL I b 42 et KR l b 43 s appuient sur la notion de fonction de pr f rence celle de variable les langages logiques en particulier Prolog b 9 permet tent d assimiler les programmes des clauses de logique math ma tique calcul des pr dicats du premier ordre ex cutables en rappro chant leur forme de celle de sp cifications formelles les langages dits flot de donn es ou affectation unique tels que VAL LAU SISAL ou Lucid permettent de ne pas pr ciser l ordre d ex cution des instructions lorsqu il n a pas d influence sur la s mantique finale du programme et d autres langages fond s sur les concepts des processus s quentiels coop rants de Hoare l b 16 ou ceux du calcul des syst mes communicants de Milner l b 30 s orientent vers le parall lisme v ritable enfin les langages
42. ion Les m thodes de test se pr tent aussi la distinction entre as cendant et descendant introduite propos de la conception Avec une m thode ascendante on teste chaque module avant les modules qui l utilisent on est donc certain de tester chaque l ment dans des circonstances qui se rapprochent de son utilisation op rationnelle mais on ne peut s attaquer aux modules de plus haut niveau ceux dans lesquels les erreurs sont les plus graves et les plus difficiles corriger qu la fin du processus Une m thode d scendante permet en revanche de commencer par les l ments de plus haut niveau mais elle exige que l on crive la place des modules non encore d velopp s des pseudo modules ou chafau dages stubs en anglais versions tr s simplifi es des modules man quants destin es permettre au test de se d rouler normalement La m thode descendante permet de mieux r partir l effort de test au cours du projet mais elle implique outre l effort suppl mentaire consacr aux chafaudages le risque que les conditions de test diff rent par trop des conditions r elles d exploitation Bien entendu le choix d une m thode de test ascendante ou descendante est troitement li au choix correspondant quant la m thode de conception Tester les programmes implique qu on les ex cute Les limites de cette technique sont bien connues les tests ne sauraient tre ex haustifs ils renseignent su
43. ire m poissons bagu s et apr s un temps suffisant de p cher n poissons dont p x n l seront bagu s Le rapport mX np vous donnera une id e du nombre total de poissons dans le lac Si maintenant au lieu de poissons vous voulez compter le nom bre d erreurs dans un programme la m thode correspondante con Langages Les langages de programmation ont pendant longtemps occup une place sans doute exag r e dans les discussions sur le logiciel mais l exc s inverse serait tout aussi regrettable on ne peut n gli ger l importance de l outil d expression fondamental pour l criture des programmes et la description des donn es lI convient d ailleurs d inclure dans cette discussion les notations dont se servent les informaticiens aux autres tapes du cycle de vie particuli rement en amont les langages de sp cification et de conception La situation en mati re de langages de programmation a pendant longtemps t caract ris e par une coupure presque compl te entre la r alit industrielle domin e par les langages des ann es cin quante et soixante langages d assemblage FORTRAN BASIC CO BOL PL I et les recherches universitaires qui tournaient autour des d riv s d Algol 60 d une part et de ceux de Lisp d autre part Depuis 1975 environ cette division a t remise en cause par la Perc e industrielle encore limit e mais ind niable de plusieurs nou Pour la table analytique se reporter
44. is le Quatim tre C de la soci t IGL et pour un but l g rement diff rent lla mesure de complexit des programmes les Jogiscopes de la soci t V riog 7 4 Au del des outils les environnements Quand les outils deviennent nombreux et complexes leurs qua Hds individuelles ne suffisent plus encore faut il pouvoir les em ployer les uns avec les autres Ce probl me de compatibilit a sou vent t mal r solu par les syst mes d exploitation classiques le compilateur l diteur de textes l interpr te de commandes s y pr sentent en g n ral comme des entit s distinctes construites et utili s es selon des conventions diff rentes voire contradictoires qui provoquent chez l utilisateur g ne et parfois danger comme sur tel syst me o deux outils permettent de copier des fichiers l un exige que lon nomme d abord la source puis la cible l autre attend l inverse La notion d environnement logiciel int gr est n e d une r ac tion contre les multiples incompatibilit s qui polluent les syst mes classiques La plupart des environnements actuels s inspirent au moins en partie d Unix Unix tait au d part un syst me d exploitation plus qu un environnement au sens d fini ci dessus il serait en outre exag r de dire que ce syst me est compl tement int gr Mais les outils disponibles sous Unix b n ficient d un niveau de compatibilit encore peu pr s unique dans la confr rie des sy
45. l 60 Algo W PL I Algol 68 Pascal filiation certes ill gitime certaines tapes l effort consa cr la conception du dernier n semble avoir presque compl te ment ferm au moins pour un temps toute recherche dans cette famille de langages avec quelques exceptions comme la cr ation du langage Modula 2 par Wirth l auteur de Pascal Cela ne signifie pas bien s r que les recherches aient cess sur le th me des langages en g n ral on peut noter que ce domaine conna t au contraire depuis quelques ann es un regain d int r t Les travaux actuels s orientent pour la plus grande part vers des langa ges s cartant notablement de la famille cit e pr c demment il s agit en g n ral de langages de plus haut niveau moins imp ratifs que les langages courants Comme on l a souvent fait remarquer les langages classiques poss dent maintes caract ristiques directe ment inspir es de l architecture typique des ordinateurs actuels faible niveau d abstraction des objets manipul s malgr les primitives de construction de nouveaux types offertes par la plupart des langages depuis Algol W importance de la notion de variable et donc d effet de bord modification dynamique et r p t e de la valeur du m me objet panra H 2050 14 n cessit de raisonner en termes de commandes plut t que de conditions logiques ce qui accro t la distance de la sp cification au programme obl
46. lus r cemment le bruit fait autour des syst mes experts et de la programmation heuristique a soulev quelques espoirs peut on esp rer que des syst mes intelligents d aide la programmation fourniront une solution radicale aux grands probl mes du g nie logiciel Quelques applications exp rimentales de syst mes experts d aide la construction ou la correction de programme ont t r alis s mais aucune exp rience en vraie grandeur n a encore fourni de r ponse d finitive Un num ro sp cial des Transactions de l IFEE sur le g nie logiciel l b 31 fait le point sur les perspectives de f condation crois e entre g nie logiciel et intelligence artificielle 4 6 M thodes de contr le de la qualit La qualit telle est on l a dit la pr occupation principale en g nie logiciel Un vieil adage des ing nieurs d assurance de la qualit qui s applique au logiciel comme aux autres domaines dit que la qualit ne se con tr le pas a posteriori elle se construit a priori On ne peut produire du logiciel conforme aux facteurs du paragraphe 3 qu en int grant la recherche de la qualit au processus de construction tout particuli rement aux premi res tapes du cycle de vie lorsque le logiciel existe il est trop tard pour se pr occuper de sa qualit Aussi les m thodes examin es pr c demment s appliquent elles la production de logiciel de qualit II serait d raisonnable cependant de s en remettre
47. n la notation r d signe le plus petit entier sup rieur ou gal r partie sup rieure Si p est un entier p 2 est la division de p par 2 et p 2 est gal Lip 11 2 Fig 3 Quatre programmes faux de recherche dichotomique que toutes ces solutions premi re vue acce ptables sont en fait Le programme correct de la figure 4 calcule le plus grand indice tel que t J lt x ou O s il n existe pas de tel indice la sp cification plus pr cise est donn e sur la figure Pour obtenir la r ponse la question x appara t il dans t on doit le faire suivre d une instruc tion de la forme sii gt 1eti lt nalors pr sent x t i sinon pr sent faux fin On notera quel point tous les d tails de la construction sont importants pour obtenir un programme correct valeurs ini tiales signes lt ou lt affectation de m i et de m 1 j choix de la partie sup rieure du r sultat de la division etc La troisi me voie de d veloppement cit e propos de la sp cification formelle est celle qu empruntent certains auteurs qui cherchent abattre la cloison entre la sp ci fication forme descriptive du syst me et le programme forme prescriptive ex cutable On obtient ainsi la notion de sp cification ex cutable Cette approche a t particu li rement illustr e par les utilisateurs de cer taines m thodes issues de l intelligence arti ficielle et en p
48. n rale on notera cepen dant qu elle limite le g nie logiciel aux activit s de deuxi me degr d velopper un outil de construction de programmes c est faire du g nie logiciel mais ce n est pas n cessairement en faire que de se Aa un simple programme d application m me de bonne qualit 1 3 Quelques questions fondamentales ll est tout d abord utile de pr ciser quelques uns des grands axes qui d finissent les degr s de libert d un projet logiciel Le premier axe est celui du temps Un projet logiciel suit un d roulement chronologique un mod le de ce d roulement recueille aujourd hui un accord peu pr s g n ral au moins dans ses gran des lignes le mod le du cycle de vie Nous le pr senterons U paragraphe 2 et nous discuterons ses limitations et quelques vari tions possibles TP PRINT a Le deuxi me axe correspond l un des mots essentiels de la d finition pr c dente le mot de qualit Le but du g nie logiciel tant de permettre la production de logiciel de qualit il importe de savoir pr cis ment ce que recouvre ce concept Tel est l objet du paragraphe 3 Vient ensuite l axe des m thodes la mise en place d une politi que de g nie logiciel exige des m thodes s appliquant aux aspects techniques sp cification conception validation et l organisation des projets Quelques unes de ces m thodes sont bri vement pr sent es au paragraphe 4 Cert
49. n compte et l b n renvoie la r f rence n de l Index bibliographique plac en fin d article LANGAGES mr mr or a an a le contr le des emplois du temps individuels dans une quipe de v ritables syst mes int gr s de gestion de projets regroupant au tour d une base de donn es centrale l ensemble des donn es le chef de projet dispose ainsi chaque instant du tableau de pilotage complet comprenant des informations techniques et d autres rela tives aux co ts aux t ches aux d lais l ordonnancement Il est clair que l utilisation de tels syst mes n a de sens que si elle s ac compagne de m thodes rigoureuses pour la gestion et le suivi de projet Une activit compl mentaire de la gestion de projets est la ges tion de configurations dont le but est de contr ler l volution des diff rents composants d un logiciel programmes sp cifications do cuments de conception jeux d essai donn es documents divers tout au cours du projet On rencontre encore rarement dans la pratique des syst mes int gr s de gestion de projets et de configurations b tis autour d une base de donn es compl te mais il existe des outils s par s qui n en rendent pas moins d appr ciables services Dans le do maine de la gestion de configurations en particulier de nombreux environnements offrent des outils inspir s de deux produits disponi bles sous Unix SCCS Source Code Control System qui permet d archiver les
50. ncipales mod les de co t mod les de fiabilit Les pre miers permettent d valuer a priori les d penses li es un projet les seconds d estimer le taux d erreurs dans un syst me 5 1 Mod les de co t 5 11 Forme g n rale Les mod les de co t ont t propos s en grand nombre Beaucoup d entre eux se pr sentent au moins dans leur version la plus simple sous la forme E a o a et b sont des constantes une telle formule donne l effort nominal E n cessaire la construction du logiciel exprim en hom mes mois en fonction du nombre de milliers d instructions du pro gramme final T Ainsi selon le mod le Cocomo de Boehm I b 5 et 7 qui donne a 2 8 et b 1 2 pour un logiciel int gr un syst me complexe l effort total n cessaire la construction d un produit dont le code comporte 20 000 lignes est 2 8 X 20120 102 hommes mois 9 hommes ann es tant entendu qu il s agit de l effort total incluant toutes les phases de construction sp cification etc et la r daction de la documenta tion on se place dans l hypoth se d un logiciel r alis dans des conditions industrielles Quelques pr cisions sont n cessaires pour bien comprendre l ap plication d une formule de ce genre obtenue par interpolation partir de diverses bases de donn es contenant des informations collect es sur des projets industriels Il est bien connu que l homme mois est une unit douteuse i b 8
51. o Failure 1 MTTF t t ETP Ce dernier param tre est choisi de pr f rence au temps moye entre d faillances MTBF qui n a pas de sens si l on suppose v l exploitation s arr te apr s toute d faillance afin de permettre correction de l erreur ou des erreurs qui l ont caus e Le mod le de Musa qui utilise le temps d ex cution T a pour formule de base 1 F mme pi KT MTT MKN S avec f fr quence moyenne d ex cution des instructions du pro gramme fr quence moyenne d ex cution des instructions divis e par le nombre d instructions du programme K constante facteur de d tection des erreurs No nombre d erreurs restant au d but de la phase consid r e ll est n cessaire de pr ciser ici comme pour le mod le de co t Cocomo que les mod les effectivement utilis s en pratique sont plus fins que ne laisserait supposer cette br ve pr sentation et que seule une politique de mesure syst matique aboutissant une base de donn es propre l entreprise permet de calibrer convenable ment les param tres Une technique amusante se rapproche des mod les de fiabilit celle du bebugging que l on peut appeler en fran ais p che aux bogues la bogue avant d tre le terme recommand par le Pre mier Ministre pour traduire l anglais bug d signait une vari t de poisson Supposez que vous ayez compter le nombre de poissons dans un lac vous aurez peut tre l id e d y introdu
52. oduite en 1967 par le erron es il suffit pour cela de montrer pour chacune d entre elles que certaines valeurs du tableau t et de l l ment x produiront un r sultat incorrect pr sent mis vrai alors que l l ment est absent ou inversement ou entra neront une erreur l ex cution d borde ment de m moire bouclage infini Un cOntre exemple est fourni dans la figure 3b pour chacun de ces quatre programmes H 2050 8 langage de programmation Simula 67 dont les principales id es ont depuis t reprises par Smalltalk Certains l ments de cette m thode ont galement influenc la conception du langage Ada La base th orique a t fournie par les travaux men s partir de 19 74 autour de la notion de type abstrait mod lisation math matique des concepts informatiques de type et d objet Donn e un tableau t 1 n un l ment x Bien entendu le programme ne peut modifier les valeurs de ces objets On suppose n O si n O le tableau est vide Hypoth se t tri c est dire tli t por 1 lt i lt ji lt n R sultat cherch un entier tel que O lt i lt net tik xpour 1 lt Kk lt i tik gt xpouri 1 lt k lt n Note il est important de v rifier qu il existe toujours un index i unique conforme ces propri t s En particulier i vaudra O si x lt a 1 i vaudra n si x t n on se souviendra qu une propri t de la forme pour tout x appartenant E P x e
53. ogiciel le groupe de travail g nie logiciel de l AFCET publie le bulletin Bigre Globule en collaboration avec l Institut IRISA de Rennes Le principal congr s international est l International Conference on Software Engineering organis tous les dix huit mois depuis 1975 annuellement partir de 1987 dont les actes sont publi s par l IFEE L AFCET tient tous les deux ans depuis 1982 son Colloque de G nie Logiciel il sera compl t les ann es impaires partir de 1987 par une conf rence europ enne European Software Engineering Conference R f rences 1 11 12 13 14 BACKUS J Can Programming be Liberated from the Von Neumann Style A Functional Style and its Algebra of Programs Communications of the ACM vol 21 n 8 p 613 41 August 1978 BAKER F T Chief Programmer Team Mana gement of Production Programming IBM Sys tems Journal vol 11 n 1 1972 BIRTWISTLE G DAHL 0 J MYRHAUG B et NYG RD K Simula Begin Student Lite ratur and Auerbach Publishers 1973 BOEHM B W BROWN J R McLEOD G LIPOW M et MERRIT M Characteristics of Software Quality TRW Series of Software Technology North Holland Publishing Co Amsterdam 1978 BOEHM B W Software Engineering Econo mics Prentice Hall Englewood Cliffs New Jersey 1982 BOEHM B W Les Facteurs de Co t du Logi ciel TSI Technique et Science
54. oins en partie ces trois l La question de la maintenance par exemple ne sera pas r solue par des recherches visant am liorer les m thodes de maintenance elle m me mais par des progr s dans les m thodes de construction permettant de produire des syst mes plus corrects et plus souples Les co ts du logiciel pour prendre un autre exemple ne peuvent diminuer qu au prix d une industrialisation v ritable c est dire de la mise au point de composants normalis s r utilisables et combinables Or en logi ciel nous l avons d j signal on repart trop souvent de z ro l instant o vous lisez ces lignes combien de personnes de par le monde sont elles en train d crire pour la mille et uni me fois un Programme de tri ou de recherche en table Pour trouver un renseignement consulter la table alphab tique H 12 Il nous semble donc que les probl mes cl s du g nie logiciel ceux dont la solution peut apporter des sauts quantiques et non pas seulement des am liorations marginales sont pour l heure des pro bl mes techniques probl mes de m thodes de langages d outils Cette opinion il est juste de le pr ciser est loin d tre universel le pour toute une cole c est du c t de la gestion des projets que le b t blesse B W Boehm par exemple estime que plus de 50 des probl mes du d veloppement de logiciel sont des probl mes de gestion Si l on part de telles pr misses il est clair que les
55. ombre d instructions final des deux programmes est le m me Mais Co como permet de prendre en compte cette remarque d une part le mod le comporte non pas une mais trois formules de base celle que nous avons cit e pour les logiciels int gr s un syst me com plexe une autre pour les logiciels autonomes et moins critiques et la troisi me pour les cas interm diaires mais surtout des multiplica teurs associ s aux particularit s de chaque projet permettent d ajus ter les estimations de base fournies par ces formules La figure 5 p 12 donne les plages de variation pour chacun des facteurs de co t Ainsi selon ce tableau un multiplicateur de 1 34 est associ au facteur exp rience de la machine virtuelle cette valeur est le H 2050 11 ORNE nine GENRE LOGICIEL Z oOo mmm rimes in aE Facteurs 1 20 Exp rience du langage 1 23 Contraintes de d lai 1 23 Base de donn es 1 32 D lai de restitution Outils logiciels 13 Exp rience de la machine virtuelle Stabilit de la machine virtuelle es Pratiques modernes de programmation Contraintes sur la taille de la m moire Exp rience de l application Contraintes sur le temps d ex cution Fiabilit requise Complexit du produit 1 1 5 2 2 5 3 3 5 4 Coefficient multiplicateur Fig 5 Facteurs influant sur le co t r el du logiciel I b 6 rapport entre les Valeurs maximale et minimale de l
56. on importance 4 5 M thodes emprunt es l intelligence artificielle Les sp cialistes d intelligence artificielle ont depuis longtemps plus pr cis ment depuis 1959 date de diffusion de Lisp utilis des m tho des et des langages les placant quelque peu en marge du g nie logiciel L une de leurs contributions les plus importantes est la mise au point d environnements de programmation avenants tel Inter lisp disponibles dans les laboratoires d intelligence artificielle bien avant que l industrie se pr occup t de la question Remarque les langages de l intelligence artificielle et les syste mes associ s se distinguent en particuker par le caract re dyna mique des objets manipul s il est possible dans ces environne ments de cr er librement de nouveaux objets de programme l ex cution Les langages utilis s en g nie logiciel classique sont bien plus statiques il faut en g n ral pr voir d s avant l ex cution le nombre et la taille des objets dont on aura besoin cela est vrai de Fortran et de Cobol mais aussi dans une large mesure de langages comme Pascal C et Ada dont les possibilit s de cr ation dynamique d objets voient leur utilit pratique limit e par l absence de m cani smes automatiques de r cup ration de la m moire Cela nous pa ra t une des limitations techniques majeures des langages classi ques On notera que les langages objets tels que Simula et Small talk n en souffrent pas P
57. on possible est qu il faut consacrer une attention consid rable aux phases initiales du cycle de vie afin d viter tout prix que des erreurs commises lors de la d finition du syst me pas sent inaper ues jusqu aux tapes de mise en place c est l un des arguments majeurs des recherches sur la sp cification formelle b n renvoie la r f rence n de l Index bibliographique plac en fin d article LANGAGES RO e ee E A a a a A Conception Etude pr alable Sp cification criture des programmes Exploitation d veloppement Test de qualification a Safeguard re GTE m TRW IBM Fig 2 Co t de correction d une erreur de d finition en fonction de la phase o elie est d tect e on peut au contraire en d duire que les erreurs de d finition tant in vitables la seu e chose raisonnable est d essayer d en limi ter les cons quences il convient donc de passer le plus vite possi ble l exp rimentation s par e sur des segments du syst me seg ments suffisamment bien d limit s pour que les ph nom nes d crits par la figure 2 n aient pas d effet catastrophique sur le projet dans son ensemble C est la voie qui m ne au prototypage sous l une de ses deux formes Les deux m thodes prototypage et sp cification compl te avant toute r alisation ne sont cependant pas aussi totalement incompa tibles que cette discussion peut le laisser supposer En particulier un prototype jetabl
58. ournit des formules pour r viser en cons quence les estimations pr c den tes On notera que la formule correspondant au prernier cas diminu tion du d lai ne s applique qu une plage de d lais allant de 75 100 du d lai nominal D pour Boehm il est vain d esp rer gagner plus de 25 sur D quelles que soient les ressources sup pl mentaires en personnel dont on dispose C est le th or me de Brooks cit plus haut qui r appara t sous une forme plus pr cise 5 13 Discussion L examen d un mod le de ce type appelle plu sieurs commentaires Il faut noter tout d abord le caract re assez fruste de la mesure que constitue L nombre d instructions du programme en milliers La d finition pr cise est nombre de kilolignes d instructions sources livr es en d autres termes on ne consid re que les ins tructions du programme source crit dans un certain langage dont le niveau d abstraction influe in vitablement sur cette mesure Le mot instruction couvre aussi bien les d clarations que les instruc tions ex cutables mais exclut les commentaires Enfin seules sont prises en compte les instructions livr es les programmes de test ou les outils de d veloppement n entrent dans le calcul que s ils font partie du produit livr au client un appel de sous programme compte pour une instruction mais les instructions du sous pro gramme lui m me ne sont pas comptabilis es s il appartient une biblioth que d int
59. pos s I est en particulier beaucoup question depuis quelques ann es de prototypage rapide Le prototypage rapide s oppose non seulement la m thode du cycle de mals aussi celle du prototypage lent qui est certainement l une des fa ons le plus courantes de d velopper du logiciel Les tenants de cette m thode consid rent qu il est vain de voue figer un stade pr coce des sp cifications qui de toute fa on vont tre remises en cause lis recommandent donc de travailler par aP proximations successives en construisant d abord le plus rapide ment possible une premi re version sommaire un prototype Les avis diff rent sur le r le exact qui est assign au prototype on peut distinguer deux grandes tendances e Dans le premier cas le prototype est simplement destin mettre certaines hypoth ses l preuve hypoth ses qui peuvent porter par exemple sur l interface du syst me avec ses utilisateurs l efficacit de certains algorithmes la faisabilit de certaines t ches etc une fois le r sultat obtenu on ne conserve pas le prototype et le d veloppement repart de z ro fort c pendant de l exp rience gagn e Avec cette m thode le prototype peut tre r alis avec des outils et un langage diff rents de ceux qui seront retenus pour le produit final certains langages de tr s haut niveau de mise en uvre peu efficace mais permettant d obtenir tr s vite des pro grammes ex cutabl
60. pour prendre un cas extr me 365 personnes ne font pas en un jour le travail d une en un an I convient donc d interpr ter le r sultat E avec pr caution Cocomo comme certains autres mod les permet d ailleurs d estimer non seulement l effort total E mais aussi le d lai nominal donn selon ce mod le et toujours pour la cat gorie des logiciels int gr s des syst mes complexes par la formule D 2 5 E Pour l exemple pr c dent cela donne 11 5 mois en l absence des multiplicateurs de l effort mentionn s plus loin Par division on obtient la taille moyenne nominale T de l quipe de d veloppement 8 5 personnes environ dans l exemple choisi 5 12 Variations Le terme nominal appliqu aux r sultats pr c dents effort E d lai D taille de l quipe T signifie que pour Boehm il existe pour tout produit logiciel une s rie de valeurs opti males celles que fournissent les formules du mod le de base Que se passe t il dans le cas bien r el o le responsable du projet sou haite soit aller plus vite en mettant plus de monde au travail soit diminuer la taille de l quipe en acceptant de retarder la fin du projet V rifier qu une fiche plac e en t te de cet article ne modifie pas le pr sent texte Comme tout gestionnaire de projets le sait d exp rience ce genre d am nagement n est pas gratuit en termes d effort total et ne peut de toute fa on s op rer que dans certaines limites Cocomo f
61. r e rapide souris tablette En particulier nombre d entre eux reprenant les id es introduites l origine par l environ nement Smalltalk de Xerox b ti autour du langage de m me nom permettent de diviser un cran en plusieurs zones rectangulaires ou fen tres si le logiciel est la hauteur c est dire s il permet de g rer plusieurs processus actifs en parall le affect s chacun une fen tre les possibilit s d Unix en mati re de cr ation de processus concurrents font que ce syst me est bien adapt des situations de ce genre le confort des utilisateurs est singuli rement am lior ils peuvent en effet poursuivre simultan ment plusieurs activit s cha cune d entre elles restant visible gr ce la pr sence de sa fen tre sur l cran Ces possibilit s que le lancement du Macintosh par Apple ont fait conna tre un large public sont particuli rement int ressantes pour les informaticiens que leur t che force souvent tre tout la fois au four au moulin et la rivi re Dans une situation typique par exemple celle de la mise au point d un module le programmeur peut tre conduit alterner constamment entre le compilateur l diteur LANGAGES oo a a A R mm mom et le langage de commande m me si l on peut esp rer qu l avenir ces outils seront mieux int gr s qu il n est aujourd hui de r gle la n cessit subsistera de pouvoir passer rapidement d une vue une autre Les sys
62. r les erreurs qu ils d tectent mais non sur celles qui leur chappent dans le cas de syst mes interactifs parall les ou non d terministes ils sont difficiles mettre en uvre et ne peuvent tre reproduits l identique D autres m thodes de validation et de v rification ont t d velopp es les techniques de d monstration math matique de la validit des programmes troitement li es aux m thodes de sp cification formelle cf 4 3 sont th oriquement id ales mais encore diffi ciles mettre en uvre plus modestes sont les techniques d analyse statique qui permettent d examiner le texte des programmes pour y d tecter les anomalies potentielles des tests sans ex cution en quelque sorte Nous citerons au paragraphe 7 3 certains outils d analyse statique Avec quelques proc dures manuelles qui ressortissent plut t la gestion de projets comme la proc dure des inspections de code r unions d analyse et de critique des programmes en cours de d H 2050 10 veloppement les techniques que nous venons de voir le test et ses variantes constituent l essentiel de ce qui est pratiqu aujourd hui en mati re de contr le de la qualit Ces techniques s appliquent surtout on l aura not aux phases finales du cycle de vie et leurs produits les programmes Elles ne r pondent donc pas vraiment l objectif d fini au d but de cette discussion du contr le de la qualit l id
63. s en compte les progr s du mat riel L l ment important ici est le d veloppement des postes de travail qui gr ce la puissance croissante des microprocesseurs et aux progr s des r seaux locaux et distance permettent de concilier les avantages des micro ordinateurs et ceux des grands syst mes Un aspect remarquable de ces nouveaux postes de travail est la qualit de l interface utilisant des crans de haute r solution et des Tableau lll Quelques outils sous Unix Applioation ows OO O Compilateurs C Pascal FORTRAN 77 Lisp Prolog et interpr tes FP yacc et lex construction de compi lateurs Courrier lectronique mail UUCP r seau Utilitaires de base coquille interpr te de commandes gestion de fichiers copie d placement etc diteurs de texte ed vi emacs cr ation de processus parall les Traitement Formatage de textes et photocompost de textes tion nroff troff description de figures pic et de tables tbl textes math ma tiques eqn bibliographies refer con tr le de l orthographe et du style spell diction style Recherche de mod les dans un texte grep comparaison de fichiers diff tri sort transformation de fichiers sed awk Traitement de donn es Gestion de versions et de configurations de logiciel sccs make analyse statique linti mise au point de programmes adb dbxi D veloppement dispositifs d ent
64. s et d outils modernes en particulier dans le domaine de la conception et de la programmation par objets meilleure solution connue notre sens au probl me de la r utilisa bilit et celui de l extensibilit des outils d aide la construction des programmes g n rateurs de programmes et diteurs structu rels tout particuli rement de la gestion de configurations l utilisation des possibilit s des postes de travail modernes comme composants essentiels d environnements v ritablement in t gr s I ne reste plus qu s y mettre om INDEX BIBLIOGRAPHIQUE La liste ci apr s comprend toutes les r f rences cit es dans le corps de l article D une fa on g n rale on consultera avec profit les principales revues consacr es au domaine par les soci t s savantes l IEEE Institute of LANGAGES Electrical and Electronic Engineers publie le mensuel IEEE Transactions on Software Engineering l origine trimestriel depuis 1975 et le bimestriel d orientation plus magazine IEEE Software depuis 1984 l ACM dispose depuis 1979 dans un domaine plus sp cialis de la revue trimestrielle TOPLAS Transactions on Programming Languages and Systems et publie le bulletin Software Engineering Notes En France la revue TSI Technique et Science Informatiques publi e par l AFCET Association Fran aise pour la Cybern tique conomique et Technique contient fr quemment des articles sur le g nie l
65. st mes Ce remar quable succ s a t obtenu gr ce la simplicit de la conception de base du syst me et la combinaison d un petit nombre d id es fructueuses la structure des fichiers est uniforme les fichiers normaux sont de simples suites de caract res accessibles soit en s quence soit par leur index l interactivit est ramen e au m me sch ma on consid re le terminal comme un fichier qui peut tre utilis comme entr e ou comme sortie par tout programme apte lire ou crire sur des fichiers un programme simple sous Unix est en g n ral un filtre qui prend en entr e un fichier du type pr c dent et produit en sortie un fichier du m me type deux ou plusieurs programmes de ce type peuvent donc tre compos s en soudant la sortie de l un l entr e de l autre c est la notion de tuyau la notation refer tbl eqn troff d signe un tuyau de cette sorte obtenu en composant les outils Unix de traitement de texte refer traitement des r f rences biblio graphiques tbl traitement des tables egn traitement des textes de type math matique troff photocomposition La sortie de cha cun d entre eux est utilis e comme entr e du suivant La simplicit et l l gance de ces structures de base ont favoris l closion sous Unix d une quantit consid rable d outils qui la H 2050 16 diff rence de ce qui se passe sur d autres syst mes sont souvent
66. st toujours vraie quelle que soit la propri t P si l ensemble E est vide M THODE Le but recherch peut s crire sous la forme C4 et o c est d fini comme O lt i lt j lt net t k x pour 1s k siet tik gt xpourj 1 lt k lt n et c est la condition j j Consid rons c comme un invariant et c comme un but Le program me peut s crire tablir c de fa on simple tant que c n est pas v rifi faire rapprocher i de j en conservant c fin MISE EN UVRE Pour tablir c de fa on simple il suffit de prendre i 0 j n Pour rapprocher i de j consid rons la valeur m diane m i j 21 Pouvons nous affecter j ou j la valeur de m sans pour autant remettre en cause la validit de l invariant c Cela d pend des valeurs relatives de x et t m Sit m x nous savons que t k x pour 1 k m puisque test tri Nous pouvons donc choisir m comme nouvelle valeur de i Sit m gt x nous savons que t k gt x pour k m c est dire pour k m 1 1 Nous pouvons donc choisir m 1 comme nouvelle valeur de j Mais attention ce raisonnement n est correct qu en raison de deux propri t s que le lecteur est invit v rifier soigneusement dans les deux cas le nouveau choix de jou de jfait d cro tre la valeur de la quantit enti re j i le variant de la boucle tout en la maintenant positive ou nulle le processus est donc assur de se terminer la vale
67. t mes muilti fen trage fournissent ici un l ment de solution particuli rement int ressant Cela n a de sens bien enten du que si la d finition de l cran est suffisante et r p tons le si le syst me d exploitation fournit le substrat logiciel ad quat en ma ti re de gestion des processus concurrents Ce n est pas par hasard que nous avons choisi de mentionner les volutions du mat riel au terme de cette br ve visite guid e malgr toute leur superbe les sp cialistes de logiciel sont bien oblig s de reconna tre que pour une large part l informatique reste tra n e par le mat riel hardware driven selon le mot de Wirth Sans mat riel il n y aurait pas de logiciel c est une platitude mais si le mat riel n avait pas volu de fa on aussi ph nom nale le g nie logiciel ne serait peut tre pas aussi n cessaire et serait de toute fa on beau coup moins int ressant A Vers une discipline scientifique On nous permettra au terme de cette promenade rapide un point de vue plus personnel Pour l auteur le d fi majeur auquel les informaticiens sont aujourd hui confront s vient de trois des fac teurs de la qualit cit s pr c demment 2 3 la validit l extensibilit la r utilisabilit Le logiciel fabriqu actuellement n est pas assez s r il est trop difficile modifier il est trop sp cifi que La plupart des autres probl mes du g nie logiciel peuvent tre rattach s au m
68. t une habitude du raisonnement abstrait que tous les informaticiens ne poss dent pas c est selon les partisans des m thodes formel les le prix payer pour obtenir des syst mes informatiques dont la validit et la fiabilit pourront tre garanties On trouvera dans l ar ticle I b 29 une discussion de l utilit compar e des sp cifications formelles et informelles On peut distinguer dans les travaux sur la sp cification formelle trois directions principales validation construction ex cution Ces trois fa ons de consid rer la sp cification ne sont pas n cessaire ment incompatibles elles se distinguent par l utilisation prioritaire laquelle on destine les sp cifications Les m thodes de la premi re cat gorie par exemple FDM HDM Affirm mettent l accent sur la production de sp cifications qui puis sent servir de base la validation automatis e des programmes des progr s importants ont t r alis s dans ce domaine depuis quelques ann es et l on sait d sormais valider math matiquement au prix d un effort qui reste consid rable des programmes de plu sieurs dizaines de milliers d instructions incluant des processus pa rall les D autres m thodes ont pour but essentiel non pas de permettre la validation de programmes d velopp s ind pendamment de la sp cification mais plut t d utiliser la sp cification elle m me comme point de d part de la conception du programme le proces s
69. t de la complexit des logiciels que l on r alise aujourd hui On peut sans risque affirmer que certains de ces logi ciels comme ceux qui quipent les autocommutateurs t l phonti ques ou certains logiciels militaires d passent en complexit tous les syst mes de quelque nature pr c demment construits par lhu manit Certains se demandent si nous n approchons pas des limites au del desquelles cette complexit ne pourra plus tre ma tris e C est ainsi qu un c l bre informaticien am ricain David Parnas a d mis sionn de son poste de conseiller scientifique aupr s de l Initiative de D fense Strat gique du Pr sident Reagan non par d saccord politique mais parce qu il estime techniquement irr alisable le logi ciel n cessaire au succ s de cette entreprise sa prise de position l b 37 a suscit un d bat passionn parmi les sp cialistes du do maine A M thodes De nombreux travaux ont t men s depuis une quinzaine d an n es sur la m thodologie de constr ction des programmes Nous avons retenu quelques tapes particuli rement marquantes 4 1 Programmation structur e Le terme de programmation structur e est un de ceux qui ont eu le plus de succ s la suite des travaux de Dijkstra et Hoare partir de 1967 environ Pourtant les id es de ces pr curseurs n ont souvent atteint les praticiens de la programmation que sous une forme tronqu e Il est trop courant
70. tre en uvre les utiliser et les modifier Cette d finition permet d inclure dans le logiciel non pas seule ment les programmes sous leurs diff rentes formes c est dire sources aussi bien qu objets mais aussi les donn es et la docu mentation associ e sp cifications documents de conception ma nuels d utilisation etc La d finition couvre le logiciel de base com pilateurs syst mes d exploitation etc aussi bien que les applica tions Nous suivrons l usage en utilisant aussi le mot logiciel comme adjectif et en crivant un logiciel pour un produit logiciel Munis de cette premi re d finition nous pouvons nous attaquer au g nie logiciel proprement dit D finition on appelle g nie logiciel l application de m thodes scientifiques au d veloppement de th ories m thodes techniques langages et outils favorisant la production de logiciel de qualit Cette d finition cherche r unir les l ments qui nous paraissent essentiels la pr sence d une base scientifique sans laquelle on ne peut parler de g nie cinq directions de d veloppement fondamentales de la plus abstraite les th ories la plus pratique les outils le r le essentiel de la notion de qualit Nous consid rons le mot production suffisamment g n ral pour qu il ne soit pas n cessaire d ajouter et la maintenance ou l entretien Cette d finition peut appara tre tr s g
71. trical and Electronic Engineers propose cependant une termino logie de r f rence l b 18 La notion de cycle de vie se pr te deux interpr tations l interpr tation neutre selon laquelle le cycle de vie est une description plus ou moins id alis e un mod le au sens math mati que du terme de ce qui se passe dans la plupart des projets logi ciels l interpr tation volontariste qui propose le mod le de la cas cade mod le signifiant ici exemple suivre comme une m thode Hs dans l organisation d un projet impliquant en particulier b 6 que toutes les tapes sans exception soient ex cut es que l ordre indiqu soit respect V rifier qu une fiche plac e en t te de cet article ne modifie pas le pr sent texte LANGAGES Un r le fondamental est jou par les langages utilis s aux diff rentes tapes de la r alisation des produits logiciels Cet axe est tudi au paragraphe 6 Enfin les outils ont une influence consid rable en g nie logiciel comme dans les autres disciplines Cette question fait l objet du paragraphe 7 Un dernier axe important est orthogonal tous les pr c dents c est l axe des applications qui permet de parcourir les probl mes sp cifiques dus au fait que les produits logiciels ont des objets diff rents calcul scientifique gestion contr le commande infor matique syst me etc Nous nous limiterons dans cet expos d in troduction
72. tte formule a le m rite de rappeler que la distance entre la simple notion de programmation et celle de g nie logiciel n est pas aussi grande que pourraient le faire croire certains clivages entre chercheurs A l autre extr me on rencontre aussi une d finition tr s limit e qui ne s int resse qu aux circonstances sp cifiques de la production industrielle de logiciel gestion de grands projets gestion de confi gurations organisation des quipes mesures et mod les de co t et de fiabilit etc Cette d finition exclut tout ce qui se rapporte aux probl mes classiques de la programmation langages outils de pro grammation th orie elle proc de d une vue selon laquelle les diffi H 2050 2 cult s de la production de logiciel dans l industrie sont dues des probl mes conomiques et d organisation beaucoup plus qu des questions strictement techniques Nous ne partageons pas cette opinion et la d finition qu elle implique nous para t exag r ment restrictive Nous allons tenter de proposer une d finition satisfaisante du g nie logiciel mais il convient pour cela de pr ciser d abord l sens du mot logiciel D finition on regroupe sous le terme de logiciel les diff rentes formes des programmes qui permettent de faire fonctionner un ordinateur et de l utiliser pour r soudre des probl mes les donn es qu ils utilisent et les documents qui servent concevoir ces pro grammes et ces donn es les met
73. ur choisie pour m est telle que dans les conditions d ex cu tion du corps de boucle c v rifi c non v rifi 1 m n l l ment t m utilis pour les comparaisons est donc bien d fini SOLUTION Nous obtenons finalement le programme suivant i 0 j n tant que i j faire m li j 2T si t m lt x alors m sinon j m 1 fin fin Fig 4 D veloppement d un programme selon une m thode rigoureuse exemple de la recherche dichotomique La notion de programmation par objets se combine particuli re ment bien avec les techniques de programmation modulaire intro duites partir de 1972 par David Parnas cf tout particuli rement l b 35 et l b 36 La principale contribution de Parnas est la notion de masquage de l information selon laquelle chaque mo dule ne doit laisser filtrer vers l ext rieur que ses propri t s officiel les en conservant par devers lui les d tails de sa mise en uvre ou Pour trouver un renseignement consulter la table alphab tique H 12 LANGAGES A aaaea aaa aa secrets En autorisant les autres modules se servir de ces propri t s internes on rendrait en effet tr s difficiles voire impossibles les remises en cause uit rieures bloquant ainsi toute volution du sys t me Parmi les facteurs de la qualit cit s au paragraphe 3 c est donc l extensibilit et la r utilisabilit que le principe du mas quage de l information doit toute s
74. us de validation tant int gr au processus de construction Par tant de la sp cification on peut proc der par d duction par trans formation ou par utilisation de sch mas pr d finis ou encore par une combinaison de ces techniques pour obtenir des versions ex cutables Les travaux de Dijkstra l b 12 ont donn une forte im pulsion ce domaine de nombreuses quipes s y int ressent pro jet CIP Munich m thodes d velopp es Nancy m thode d ducti ve SPES m thode VDM Jones Bj rner travaux men s par Abrial Manna Sintzoff van Laamswerde et par de nombreux cher cheurs gravitant autour du groupe de travail 2 1 de l IFIP Interna tional Federation for Information Processing et en France du groupe Anna Gram voir aussi I b 24 La figure 4 p 9 cherche donner une id e sur un petit exemple de ce que peut tre une telle m thode de construction des program mes par affinage de leur sp cification Le probl me trait ici est celui de la recherche d un l ment dans une table suppos e tri e Il s agit bien entendu d un exemple de petite taille mais qui pr sente quelques pi ges On s en persuadera n consultant d abord la figure 3a p 8 qui pr sente quatre tentati ves de solution du m me probi me le lecteur est invit v rifier H 2050 7 G NIE LOGICIEL fix 1 j n tant que j faire m i j 2 si t m x alors i m sinon j m fin fin pr
75. y a lieu de r aliser l application et si oui d en fixer les conditions g n rales d bouchant phase conceptuelle sur un cahier des charges et un plan du projet Sp cification passage de la description non formelle que repr sente le cahier des charges une d finition pr cise des objets mani pul s par le syst me des t ches qu il doit effectuer sur ces objets sp cification fonctionnelle des contraintes de performances et de la planification d taill e des tapes suivantes On peut en particulier pr parer d s cette tape le plan de validation du syst me Conception g n rale on passe ici de la d finition la r alisa tion s agit de concevoir l architecture du syst me c est dire de d crire les principales structures de donn es internes aussi bien qu externes la seconde cat gorie incluant les fichiers et les bases de donn es et la d composition du syst me en un certain nombre de modules qui dans la m thode objets sont pr cis ment b tis autour des structures de donn es cf 4 4 Conception d taill e affinage des l ments pr c dents struc tures de donn es modules jusqu l obtention d une forme permet tant d crire imm diatement les programmes criture des programmes et v rification individuelle criture des textes des programmes et mise en uvre des structures de donn es v rification interne de chaque module par ses auteurs Validation globale

Download Pdf Manuals

image

Related Search

Related Contents

LED Video Wall Display - AV-iQ  dana ps/pr1350 carrier assy,v2, manual,maintenance  BenQ PB6240 User's Manual  Sharp SF-2530 Specifications  Tripp Lite P005-010-14RA power cable  Garmin zumo 210 Declaration of Conformity  1 - Automatizari pentru porti  Casio 5275 User's Manual  CAT 202 CAT 202  Clock Radio  

Copyright © All rights reserved.
Failed to retrieve file