Gestion de projet Jean-Charles Régin Licence Informatique 3ème année - MIAGE Gé
Gestion de projet Jean-Charles Régin Licence Informatique 3ème année - MIAGE Génie Logiciel Jean-Charles Régin Licence Informatique 3ème année - MIAGE Génie logiciel Génie logiciel Wiki édi « L é i l i i l ( l i ft i i ) Wikipédia : « Le génie logiciel (en anglais : software engineering) : ensemble des méthodes, des techniques et des outils concourant à la production d'un logiciel, au-delà de la seule activité de programmation » programmation ». Manière dont le code source d'un logiciel est spécifié puis produit. Concerne le Cycle de vie des logiciels : analyse du besoin élaboration des spécifications conceptualisation du mécanisme interne au logiciel conceptualisation du mécanisme interne au logiciel techniques de programmation développement h d phase de test maintenance. Génie logiciel Génie logiciel Pas de méthodes particulières présentées Basé sur mon expérience p Logiciel Logiciel Arrêté ministériel du 22 décembre 1981: un logiciel est défini comme "un ensemble de programmes, de procédés, de règles, de documentation relatifs au fonctionnement d’un ensemble de traitement de l’information". Logiciel Logiciel Les bugs surviennent quand le logiciel ne correspond pas au besoin. Un bug = non-respect de la spécification du système, c’est-à-dire de la définition de ses y , fonctionnalités, de ce que le système est censé faire. Un programme bogué = programme dont la mise Un programme bogué = programme dont la mise en œuvre ne vérifie pas la spécification Ne jouez pas sur les mots Bugs Bugs Logiciel Logiciel Sans bug ? Validation de Windows 2000 600 000 bêta testeurs Au lancement de sa commercialisation il restait 63 000 Au lancement de sa commercialisation il restait 63 000 problèmes potentiels dans le code, dont 28 000 sont réels. 0,57 erreurs (var non initialisées…) par millier de lignes de code en moyenne lignes de code en moyenne MySQL : 0,09 Bugs Bugs L 13 b 2007 10000 i b héb é Le 13 novembre 2007 au soir, 10000 sites web hébergés par Ovh, connaissent des difficultés. Ovh a subit un crash majeur sur un des 16 serveurs de stockage Ovh a subit un crash majeur sur un des 16 serveurs de stockage, qui fonctionne avec en Raid-6 avec 28 disques, permettant une tolérance de panne de 2 disques, or 3 disques sont en panne et le s stème Raid a été rend in opérationnel le système Raid a été rendu in-opérationnel. Les sites ont été inaccessibles (erreur 404) environ 20h. Les serveurs SQL n'ont pas été touchés. Les serveurs SQL n ont pas été touchés. Les backups récent ont sauté aussi, les webmestres se sont retrouvés avec des sites datant d’avril 2007. Toutes les difi ti f it d i 7 i l tili t t d modifications faites depuis 7 mois par les utilisateurs sont perdues Ovh a annoncé un "geste commercial" de quelques euros Bugs Bugs 29/ 2/200 C i i i Q 3 29/12/2005 Cotisation retraite - Quelque 113 personnes ont eu la surprise de recevoir pour Noël i d'é hé d l ti ti t it un avis d'échéance de leurs cotisations retraite pour l'année 2006 de... deux milliards d'euros 01/11/2005 G b à l b d T k 01/11/2005 Gros bug à la bourse de Tokyo : toutes les cotations bloquées toute la journée. 17/11/2004 é d 17/11/2004 «aucune couverture réseau» durant 15 à 48h. Chez Bouygues Telecom deux serveurs d' h i t d l t t bé d acheminement des appels sont tombés en panne. L'un était censé être le secours de l'autre. Bugs identifiés Bugs identifiés Con ocation de centenaires à l'école C ti à l'é l i i d Convocation de centenaires à l école : Convocation à l école primaire de personnes âgées de 106 ans. Codage sur deux caractères de l’age Mission Vénus : passage à 5 000 000 de Km de la planète, au lieu de 5 000 Km prévus. remplacement d'une virgule par un point (au format US des nombres). Mariner 1 : 27 juillet 1962, la première sonde spatiale du programme Mariner fut détruite peu de temps après son envol. Coût : 80 millions de dollars. un trait d’union oublié dans un programme Fortran un trait d union oublié dans un programme Fortran (« plus coûteux trait d’union de l’histoire », Arthur C. Clarke). Passage de la ligne : Au passage de l'équateur un F16 se retrouve sur le dos. h d i d l l i d l i changement de signe de la latitude mal pris en compte. Logiciel partout et très gros Logiciel partout et très gros montre 2 K instr ctions montre : 2 K instructions téléphone mobile : 150 K instructions automobile : 1 M instructions central téléphonique : 1 M instructions noyau Linux : 3,7 M instructions système de combat du porte avions Charles de Gaulle : 8 M instructions portail Yahoo : 11 M instructions W95 : 10 M instructions WNT : 16,5 M instructions , W2K : 30 à 50 M instructions Office VX pour Mac : 25 M Direction générale de la comptabilité publique (Bercy) : 160 M instructions Cobol Direction générale de la comptabilité publique (Bercy) : 160 M instructions Cobol Catia : 200 M instructions Bugs Bugs Socrate. système de réservation de places Socrate de la SNCF : plantage régulier rachat par la SNCF d'un système de réservation de places d'une compagnie aérienne, sans réadaptation totale au cahier des charges du transport ferroviaire. Retards de la mise en service de la Très Grande Bibliothèque, en 1999. Le système informatique a pourtant coûté 8 Milliards de F (merci Google). p ( g ) Logiciel partout et très gros Logiciel partout et très gros 90% des nouvelles fonctionnalités des automobiles sont apportées par l'électronique et l'informatique embarquées. "Il y a plus d'informatique dans la Volvo S80 que dans le chasseur F15" déclarait en janvier 2000 le Président d'Audi. Logiciel : une règle Logiciel : une règle Un logiciel n’est jamais utilisé comme le programmeur le pense On ne sait donc pas bien ce qui va intéresser les utilisateurs Mise sur la marché rapide Modifications après compréhension Modifications après compréhension Logiciel : fonctions et besoin Logiciel : fonctions et besoin U l i i l ti t Un logiciel contient Plein de fonctions pour les débutants Des fonctions pour les gens moyens Des fonctions pour les gens moyens Plein de fonctions pour les experts Les utilisateurs sont Certains sont débutants La grande majorité est moyen Peu sont experts Adéquation ? Logiciel Logiciel Détection de bugs automatique ? Problème de la Halte consiste, étant donné un programme informatique quelconque (au sens machine de Turing), à dire s'il q q ( g), finira par s'arrêter ou non. Indécidable : il n'existe pas de programme p p g informatique qui prendrait comme entrée le code d'un programme informatique quelconque et qui grâce à la seule analyse de ce code ressortirait VRAI si le programme s'arrête et FAUX sinon. La Halte : conséquences La Halte : conséquences P blè d i tt h h à libé d Problème du ramasse-miettes : on cherche à libérer des zones mémoires juste après leur dernière utilisation. Ce problème est équivalent à celui de l'arrêt. Réduction : soit P un programme dont on veut tester l'arrêt ; considérons le programme : créer une zone mémoire X (jamais utilisée dans P) exécuter P écrire dans X. Clairement, la zone mémoire X sert après sa création si et seulement si P termine. Donc, si on savait déterminer automatiquement au vu de la lecture du programme si on peut libérer X juste après son la lecture du programme si on peut libérer X juste après son allocation, on saurait si P termine. Cela est impossible, donc il n'existe aucun algorithme de ramasse-miettes optimalement précis. Comment minimiser les bugs ? Comment minimiser les bugs ? En appliquant certaines règles de base En pensant aux problèmes par avance p p p En testant Génie Logiciel Génie Logiciel Définition générale et vue d’ensemble Génie logiciel Génie logiciel Gé l i i l ’ t idé l i t i t Gérer un logiciel c’est considérer les points suivants : Compétition (que font les autres) Evolution des techniques (C++ normes architecture SSE Evolution des techniques (C++ normes, architecture SSE, multicores, GPGPU, CUDA…) Tests Le code Gestion/Partage du code Exemples (pas les tests) Exemples (pas les tests) Documentation (qd commence t’on ?) Qualité et outils : Qualité et outils : Du développement Du logiciel en lui-même : facilité d’utilisation / accessibilité Génie logiciel Génie logiciel Gé l i i l ’ t idé l i t i t Gérer un logiciel c’est considérer les points suivants : Optimisation du code (qd ? Ou ?) : profiler, quantify Protection/Secrets (Obfuscation) uploads/Management/ c4-gestionprojet.pdf
Documents similaires










-
23
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 05, 2021
- Catégorie Management
- Langue French
- Taille du fichier 0.4447MB