DissertationsEnLigne.com - Dissertations gratuites, mémoires, discours et notes de recherche
Recherche

Genie Logiciel

Mémoires Gratuits : Genie Logiciel. Rechercher de 53 000+ Dissertation Gratuites et Mémoires
Page 1 sur 23

lité : facilité à être porté sur de nouveaux environnements matériels et/ou logiciels, – la traçabilité : capacité à identifier et/ou suivre un élément du cahier des charges lié à un composant d'un logiciel, – la vérifiabilité : facilité de préparation des procédures de recette et de certification, – l’intégrité : aptitude d'un logiciel à protéger ses différents composants conte des accès ou des modifications non autorisés, – la facilité d'utilisation, d’entretien, etc. • Les coûts restent dans les limites prévues au départ. • Les délais restent dans les limites prévues au départ. Règle du CQFD : Coût Qualité Fonctionnalités Délai.

Ces qualités sont parfois contradictoires (chic et pas cher !). Il faut les pondérer selon les circonstances (logiciel critique / logiciel grand public). Il faut aussi distinguer les systèmes sur mesure et les produits logiciels de grande diffusion. 1.3. L’état des lieux Le GL est apparu dans les années 70 pour répondre à la ‘crise du logiciel’. Cette crise est apparue lorsque l’on a pris conscience que le coût du logiciel dépassait le coût du matériel. Aujourd’hui il le dépasse très largement.

Coût logiciel vs matériel 100%

La « crise du logiciel »

50%

50

60

70

80

90

2000

Figure 1.1 La crise du logiciel

Un autre symptôme de cette crise se situe dans la non qualité des systèmes produits. Les risques humains et économiques sont importants, comme l’illustrent les quelques exemples célèbres suivants : – arrêt de Transpac pour 7.000 entreprises et 1.000.000 d'abonnés : surcharge du réseau, – TAURUS, un projet d'informatisation de la bourse londonienne : définitivement abandonné après 4 années de travail et 100 millions de £ de pertes, – mission VENUS : passage à 500.000 km au lieu de 5.000 km à cause du remplacement d'une virgule par un point, – avion F16 déclaré sur le dos au passage de l'équateur : non prise en compte du référentiel hémisphère sud, – avion C17 de McDonnell Douglas livré avec un dépassement de 500 millions de $ ... (19 calculateurs hétérogènes et 6 langages de programmation différents), – faux départ de la première navette Colombus : manque de synchro entre calculateurs assurant la redondance (un délai modifié de 50ms à 80 ms entraînant une chance sur 67 d’annulation par erreur de la procédure de tir), – non reconnaissance de l'EXOCET dans la guerre des Malouines : Exocet non répertorié comme missile ennemi : 88 morts, – non différenciation entre avion civil et avion militaire : guerre du Golfe - Airbus iranien abattu : 280 morts, – mauvais pilote automatique de la commande d’une bombe au cobalt en milieu hospitalier : 6 morts, – échec d’Ariane 501 (cf. exercice 1.1 ci -dessous). D'après le cabinet de conseil en technologies de l'information Standish Group International, les pannes causées par des problèmes de logiciel ont coûté l'an dernier aux entreprises du monde entier environ 175 milliards de dollars, soit deux fois plus au moins qu'il y a 2 ans (Le Monde 23/10/01).

La solution imaginée pour répondre à cette crise à été l’industrialisation de la production du logiciel : organisation des procédés de production (cycle de vie, méthodes, notations, outils), des équipes de développement, plan qualité rigoureux, etc. Malgré tout le GL reste aujourd’hui moins avancé (formalisé, mathématique) et moins bien codifié que d’autres ‘sciences de l’ingénieur’, comme le génie civil qui construit des routes et des ponts, ou le génie chimique. Une des raisons est la nature même du logiciel : • le logiciel est un objet immatériel (pendant son développement), très malléable au sens de facile à modifier (cf. « hardware/software »), • ses caractéristiques attendues sont difficiles à figer au départ et souvent remises en cause en cours de développement, • les défaillances et erreurs ne proviennent ni de défauts dans les matériaux ni de phénomènes d’usure dont on connaît les lois mais d’erreurs humaines, inhérentes à l’activité de développement, • le logiciel ne s’use pas, il devient obsolète (par rapport aux concurrents, par rapport au contexte technique, par rapport aux autres logiciels, ...), • le développement par assemblage de composants est encore balbutiant dans le domaine logiciel (beans, EJB, composants CORBA, ...). Cependant, grâce au GL des progrès ont été réalisés. Mais la complexité des systèmes ne cesse de s’accroître. Exemple : Compilateur C : 10 HA (Homme/années), 20 à 30 KLS (milliers de lignes source) Compilateur Ada : 120 à 150 HA Logiciel 2D/3D : 50 à 150 HA, >200KLS SGBD (Oracle, DB2) : 300 à 500 HA Navette spatiale : > 1000 HA, 2 200 KLS, 6 ans, langage HAL Les exigences varient selon le type des logiciels. Exemple : défauts résiduels Navette spatiale : - logiciels embarqués : 0,1 défaut par KLS (1/10000 lignes) - logiciels au sol : 0,4 défaut par KLS (1/2500) 1.4 Caractéristiques Le GL est en forte relation avec presque tous les autres domaines de l’informatique : langages de programmation (modularité, orientation objet, parallélisme, ...), bases de données (modélisation des données, de leur dynamique, ...), informatique théorique (automates, réseaux de Petri, types abstraits, ...), etc. Comme le génie chimique utilise la chimie comme un outil pour résoudre des problèmes de production industrielle, le GL utilise l’informatique comme un outil pour résoudre des problèmes de traitement de l’information. Le GL est aussi en relation avec d’autres disciplines de l’ingénieur : ingénierie des systèmes et gestion de projets, sûreté et fiabilité des systèmes, etc. Les principales branches du GL couvrent : • la conception, • la validation/vérification, • la gestion de projet et l’assurance qualité, • les aspects socio-économiques.

Dans sa partie technique, le GL présente un spectre très large depuis des approches très formelles (spécifications formelles, approches transformationnelles, preuves de programmes) jusqu'à des démarches absolument empiriques. Cette variété reflète la variété des types de systèmes à produire : • gros systèmes de gestion (systèmes d’information) ; le plus souvent des systèmes transactionnels construits autour d’une base de donnée centrale ; • systèmes temps-réel, qui doivent répondre à des événements dans des limites de temps prédéfinies et strictes ; • systèmes distribués sur un réseau de machines (distribution des données et/ou des traitements), ‘nouvelles architectures’ liées à Internet ; • systèmes embarqués et systèmes critiques, interfacés avec un système à contrôler (ex: aéronautique, centrales nucléaires, ... ). 1.5. Plan du cours Le GL est difficile à enseigner car très vaste, pas toujours très précis (beaucoup de discours généraux), foisonnant dans les concepts et le vocabulaire, sensible aux effets de modes. Les aspects techniques nécessitent une bonne maîtrise des outils fondamentaux de l’informatique (programmation, BD, système/réseau, ...). Le discours peut s’organiser selon quatre niveaux : • quelques principes généraux, • des techniques spécialisées, qui s’appuient sur ces principes (il en existe des dizaines), • des méthodes, qui relient plusieurs techniques en un tout cohérent et organisé (il en existe des centaines), • des outils, qui supportent les méthodes (il en existe des milliers). Les plus complexes sont appelés ateliers (ou environnements) de GL. Le cours commence par une courte partie sur les principes et sur leur traduction dans les modèles de cycle de vie du logiciel. La partie la plus importante est consacrée aux techniques (survol des principales techniques de spécification, de conception, de vérification). Une méthode est ensuite étudiée (UML). On y retrouve certaines techniques évoquées précédemment. Enfin, les questions liées à la gestion du développement des logiciels sont abordées brièvement à la fin du cours (aspects humains et économiques).

principes techniques méthodes outils

Figure 1.2 Les 4 niveaux de discours

2. Les principes

Cette partie liste sept principes fondamentaux (proposés par Carlo Ghezzi): • rigueur, • séparation des problèmes (« separation of concerns »), • modularité, • abstraction, • anticipation du changement, • généricité, • construction incrémentale. 2.1. Rigueur La production de logiciel est une activité créative, mais qui doit se conduire avec une certaine rigueur. Certains opposent parfois créativité et rigueur. Il n’y a pas contradiction : par exemple, le résultat d'une activité de création pure peut être évalué rigoureusement, avec des critères précis. Le niveau maximum de rigueur est la formalité, c’est à dire le cas où les descriptions et les validations s’appuient sur des notations et lois mathématiques. Il n’est pas possible d’être formel tout le temps : il faut bien construire la première description formelle à partir de connaissances non formalisées ! Mais dans certaines circonstances les techniques formelles sont utiles.

...

Télécharger au format  txt (39 Kb)   pdf (276.3 Kb)   docx (21.3 Kb)  
Voir 22 pages de plus »
Uniquement disponible sur DissertationsEnLigne.com