See discussions, stats, and author profiles for this publication at: https://ww

See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/37422534 Cycle de vie du logiciel Article Source: OAI CITATIONS 0 READS 1,925 2 authors, including: Some of the authors of this publication are also working on these related projects: CREST - A Modelling DSL for Hybrid CPSs View project Dynamic system modelling View project Didier Buchs University of Geneva 195 PUBLICATIONS 1,269 CITATIONS SEE PROFILE All content following this page was uploaded by Didier Buchs on 20 May 2014. The user has requested enhancement of the downloaded file. 1 13. Mar 2000 CYCLE DE VIE DU LOGICIEL Alfred Strohmeier Laboratoire de Génie Logiciel - Département d’Informatique Ecole Polytechnique Fédérale de Lausanne Table des matières 1. Crise du logiciel et génie logiciel 2. Domaine du génie logiciel 3. Cycle de vie du logiciel 4. Cycle de développement du logiciel 5. Phases du cycle de développement 6. Autres modèles de développement 7. Notion de système Références 1. Crise du logiciel et génie logiciel Alors que le matériel informatique a fait, et continue de faire, des pro- grès très rapides, le logiciel, l'autre ingrédient de l'informatique, traverse une véritable crise. Etant donné que cette crise a été décelée en 1969 déjà et qu'elle dure toujours, il serait plus approprié de parler d'une maladie chroni- que. La crise du logiciel (software crisis) peut tout d'abord se percevoir à travers ses symptomes: • Le coût de développement d'un logiciel est presque impossible à prévoir et le délai de livraison n'est que rarement respecté. On cite ainsi dans la littérature des dépassements moyens du coût budgeté et du délai prévu respectivement de 70% et 50%. • La qualité du logiciel livré est souvent déficiente. Le produit ne satisfait pas les besoins de l'utilisateur, il consomme plus de ressour- ces que prévu et il est à l'origine de pannes. • La maintenance du logiciel est difficile, coûteuse et souvent à l'ori- gine de nouvelles erreurs. Mais en pratique, il est indispensable 2 13. Mar 2000 d'adapter les logiciels car leurs environnements d'utilisation chan- gent et les besoins des utilisateurs évoluent. • Il est rare qu'on puisse réutiliser un logiciel existant ou un de ses composants pour confectionner un nouveau système, même si celui- ci comporte des fonctions similaires. Tout amortissement sur plu- sieurs projets est ainsi rendu impossible. La crise du logiciel a ensuite des conséquences économiques: aujourd'hui le coût du logiciel est supérieur à celui du matériel. Même si des chiffres précis font défaut, les experts sont unanimes quant à la tendance: partant d'une proportion 50%-50% en 1965, et passant par 70%-30% en 1975, ce rapport avait atteint 80%-20% en 1985. Mais pas seulement en pro- portion, en valeur également, le coût du logiciel croît à une vitesse vertigi- neuse. On peut montrer que cette inflation des coûts est surtout due aux frais de maintenance, situés actuellement entre 40% et 75% du coût total d'un système informatique (matériel et logiciel). Or ces frais de maintenance résultent avant tout de la qualité déficiente du logiciel, au moment de sa livraison déjà ou après qu'il ait évolué. La raison de fond de la crise du logiciel réside dans le fait qu'il est beaucoup plus difficile de créer des logiciels que le suggère notre intuition. Comme les solutions informatiques sont essentiellement constituées de composants immatériels, tels des programmes, des données à traiter, des procédures et de la documentation, on sous-estime facilement leur com- plexité. Déjà la taille des programmes montre que cette complexité est sou- vent bien réelle: un million de lignes pour un logiciel de commande et de navigation d'un avion moderne, le décuple pour une station orbitale. Pour maîtriser la complexité des systèmes logiciels, il convient de pro- céder selon une démarche bien définie, de se baser sur des principes et méthodes, et d'utiliser des outils performants. On arrive ainsi à gérer des projets complexes et à élaborer scientifiquement des solutions. Le génie logiciel (software engineering) cherche donc à établir et à utiliser des princi- pes sains d'ingénierie dans le but de développer économiquement du logiciel qui est fiable et qui fonctionne efficacement sur des machines réelles. Arrivé à ce point, il nous semble important de définir un certain nom- bre de notions inhérentes au génie logiciel. Commençons par la notion de logiciel. L'Organisation internationale de normalisation, appelée brièvement ISO, a défini en 1981 le logiciel (software) comme une création intellectuelle rassemblant des programmes, des procédures, des règles et de la documentation utilisés pour faire fonc- tionner un système informatique. Pour renforcer le caractère intellectuel du logiciel, l'ISO précise en plus que le logiciel existe indépendemment des supports utilisés pour le transporter, ce qui sous-entend qu'il ne faut pas con- 3 13. Mar 2000 fondre le logiciel avec son support. Le mot génie, utilisé en général accompagné d'un adjectif, comme dans génie civil, génie chimique ou génie atomique, désigne, d'après le Petit Robert, les connaissances et techniques de l'ingénieur. Ce terme est donc synonyme de science de l'ingénieur (engineering) qui peut être définie comme l'application des sciences et mathématiques par laquelle les proprié- tés de la matière et les sources d'énergie de la nature sont rendues utiles à l'homme dans des constructions, machines, produits, systèmes et procédés (traduit de l'anglais d'après le dictionnaire Webster). Une première définition du génie logiciel consiste donc à dire qu'il s'agit de la science de l'ingénieur-informaticien spécialiste du logiciel. En explicitant cette définition, on peut encore affirmer que le génie logiciel est l'application des sciences et mathématiques par laquelle les possibilités d'un équipement informatique sont rendues utiles à l'homme à l'aide de program- mes, de procédures, de règles et de la documentation associée [1]. Remarquons maintenant que le mot anglais engineering possède par ailleurs un sens plus restrictif traduit en français par ingénierie, dont c'est la seule acception. D'après le Petit Robert, l'ingénierie est l'étude globale d'un projet industriel sous tous ses aspects (techniques, économiques, financiers et sociaux) coordonnant les études particulières de plusieurs équipes de spé- cialistes. Une deuxième définition possible, complémentaire de la première, du génie logiciel est donc la suivante: Le génie logiciel cherche à établir et à utiliser des principes sains d'ingénierie dans le but de développer économi- quement du logiciel qui satisfait les besoins, qui est fiable et qui fonctionne efficacement sur des machines réelles (d'après Fritz Bauer, 1969). L'une et l'autre des définitions que nous venons de voir montrent que l'objectif premier du génie logiciel, comme d'ailleurs de toutes les sciences de l'ingénieur, n'est pas l'acquisition de nouvelles connaissances, mais plutôt leur mise en application, donc l'accumulation de savoir-faire. Il en résulte que le génie logiciel ne constitue qu'une petite partie de l'informatique, mot intraduisible en anglais si ce n'est par informatics, puisqu'il inclut à la fois la science et la technique du traitement de l'information, alors que l'anglais uti- lise des termes spécifiques: computer science, d'une part, computer enginee- ring et software engineering, d'autre part. 2. Domaine du génie logiciel Une autre façon d'appréhender le génie logiciel est d'en définir le con- tenu. Ce contenu peut être structuré de différentes façons, chacune mettant l'accent sur un autre point de vue. Comme toute science de l'ingénieur, le génie logiciel est régi par des 4 13. Mar 2000 règles et des normes (standard). L'association professionnelle IEEE a éla- boré une classification des normes du génie logiciel ayant la référence ANSI/IEEE 1002 [2]. Une première classification caractérise les contenus des normes par des mots-clés que nous allons décrire ci-dessous (fig. 1). Un procédé (process) décrit la suite des actions et opérations à entre- prendre pour développer un produit ou fournir un service. Les actions et opérations utilisent des méthodes (method), techniques (technique) et outils (tool). Pour évaluer un procédé, ou un produit, on effectue des mesures (measurement). Un procédé répond donc aux questions: qui doit faire le tra- vail? que faut-il faire? comment faut-il faire le travail? quand faut-il le faire? et à quel niveau de détail faut-il faire le travail? Les produits (product) sont les résultats documentés des activités de développement et de maintenance, et fournissent les bases pour des activités futures. La norme d'un produit précise son format et son contenu. Les normes de la profession (professional standard) traitent des aspects du génie logiciel qui en font une profession, ou en tout cas une spé- cialité de l'informatique. Un plan d'études d'ingénieur en génie logiciel en est un exemple. Les notations (notation) constituent le moyen de communication entre professionnels. En résumé, dans cette vue du génie logiciel, on peut dire que le résultat d'un procédé est un produit, et qu'un procédé est mis en oeuvre par des per- sonnes qui utilisent des méthodes, techniques, outils et notations communs à la profession. En se référent toujours à ANSI/IEEE 1002, on peut également décrire le contenu du génie logiciel en énumérant les activités typiques qui en font partie (fig. 2). Fig. 1 Classification des normes du génie logiciel d'après le contenu (Tableau extrait de ANSI/IEEE 1002) Procédé (process) Méthode (method) Technique (technique) Outil (tool) Mesure (measurement) Produit (product) Analyse (requirement) Conception (design) Composant (component) Plan (plan) Rapport uploads/Industriel/cycle-de-vie 2 .pdf

  • 15
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager