1 Ing. NTOH MOUALAM Annick Introduction au Génie Logiciel : 4 crédits (60 heure

1 Ing. NTOH MOUALAM Annick Introduction au Génie Logiciel : 4 crédits (60 heures); CM, TD, TPE Table des matières Introduction au Génie Logiciel : 4 crédits (60 heures); CM, TD, TPE ............................................................. 1 Objectif du module : .................................................................................................................................. 3 Chapitre 1. Notion de génie logiciel ..................................................................................................... 4 Définitions ..................................................................................................................................... 4 Environnement du logiciel ............................................................................................................. 4 Crise du logiciel .......................................................................................................................... 5 Raisons de la faible qualité des logiciels .................................................................................... 7 Importance de la qualité des logiciels ........................................................................................... 8 Qualité du logiciel ...................................................................................................................... 9 Principes utilisés dans le Génie Logiciel .................................................................................. 10 Chapitre 2. Processus de développement logiciel .............................................................................. 11 Activités du développement logiciel ou Cycle de vie .................................................................. 11 Documentation ............................................................................................................................ 19 Modélisation des processus logiciels ...................................................................................... 21 Chapitre 3. Gestion de projets ............................................................................................................ 24 I. Pratiques du chef de projet ......................................................................................................... 24 II. Planification des projets .............................................................................................................. 28 III. Analyse et gestion des risques ................................................................................................ 41 IV. Test logiciel .............................................................................................................................. 43 Chapitre 4. L’ergonomie du logiciel .................................................................................................. 52 Problématique de l’ergonomie : ................................................................................................. 52 La place des technologies cognitives dans l’ergonomie .............................................................. 53 La prise en compte de l’ergonomie dans le développement d’IHM et plus spécifiquement dans le développement d’applications Web ....................................................................................... 55 Chapitre 5. Production du code source ............................................................................................... 61 Introduction ................................................................................................................................. 61 Convention de nommage ............................................................................................................ 61 2 Ing. NTOH MOUALAM Annick Langue utilisée ......................................................................................................................... 62 Formatage du code .................................................................................................................. 62 Commentaires ............................................................................................................................. 63 Chapitre 6. Systèmes de gestion de versions ..................................................................................... 65 Notion de gestion de versions ..................................................................................................... 65 Application concrète : une infrastructure ................................................................................... 65 La gestion des versions d'un logiciel, en utilisant comme exemple l'outil Git. ....................... 66 Les logiciels de gestion des versions ....................................................................................... 67 Chapitre 7. Travail collaboratif ........................................................................................................... 71 Les enjeux du travail collaboratif ................................................................................................ 71 Présentation de GitHub ............................................................................................................... 71 Chapitre 8. Documentation ................................................................................................................ 75 Introduction ................................................................................................................................. 75 Documentation technique .......................................................................................................... 75 La documentation utilisateur .................................................................................................. 80 Conseils de rédaction .............................................................................................................. 82 Chapitre 9. Architecture logicielle ...................................................................................................... 83 Définition ..................................................................................................................................... 83 Importance .................................................................................................................................. 83 Objectifs ................................................................................................................................... 83 Architecture ou conception ? .................................................................................................. 84 L'activité d'architecture ............................................................................................................... 84 L'architecture d'un logiciel ...................................................................................................... 85 Chapitre 10. Principes de conception .................................................................................................. 86 3 Ing. NTOH MOUALAM Annick Objectif du module : Avoir des procédures systématiques pour des logiciels de grande taille afin que: ● la spécification corresponde aux besoins réels du client ● le logiciel respecte sa spécification ● les délais et les coûts alloués à la réalisation soient respectés Ce cours permet de répondre à :  Comment faire des logiciels de qualité ?  Qu’attend-on d’un logiciel ? Quels sont les critères de qualité pour un logiciel ? A la fin de ce cours l’étudiant doit être capable de :  Analyser les besoins du client.  Définir l'architecture du logiciel.  Faire un Choix de conception.  Définir des règles et méthodes de production du code source.  Gérer des versions.  Faire des Test du logiciel.  Produire une Documentation.  Organiser l'équipe et interagir avec le client. 4 Ing. NTOH MOUALAM Annick Chapitre 1. Notion de génie logiciel Définitions Génie logiciel Idée : appliquer les méthodes classiques d'ingénierie au domaine du logiciel Ingénierie (ou génie) : Ensemble des fonctions allant de la conception et des études à la responsabilité de la construction et au contrôle des équipements d'une installation technique ou industrielle Exple : Génie civil, naval, aéronautique, mécanique, chimique... Logiciel : Ensemble d'entités nécessaires au fonctionnement d'un processus de traitement automatique de l'information Exple : Programmes, données, documentation... Ensemble de programmes qui permet à un système informatique d’assurer une tâche ou une fonction en particulier Logiciel = programme + utilisation Génie logiciel : Ensemble des méthodes, des techniques et des outils dédiés à la conception, au développement et à la maintenance des systèmes informatiques. Environnement du logiciel 5 Ing. NTOH MOUALAM Annick ● utilisateurs : grand public (traitement de texte), spécialistes (calcul météorologique), développeurs (compilateur) ● autres logiciels : librairie, composant ● matériel : capteurs (système d'alarme), réseau physique (protocole), machine ou composant matériel contrôlé. Spécification : ce que doit faire le logiciel, ensemble de critères que doivent satisfaire son fonctionnement interne et ses interactions avec son environnement. Crise du logiciel Constat du développement logiciel fin années 60 : ● délais de livraison non respectés ● budgets non respectés ● ne répond pas aux besoins de l'utilisateur ou du client ● difficile à utiliser, maintenir, et faire évoluer 6 Ing. NTOH MOUALAM Annick 7 Ing. NTOH MOUALAM Annick « La satisfaction du client et la valeur du produit sont plus grandes lorsque les fonctionnalités livrées sont bien moins nombreuses que demandé et ne remplissent que les besoins évidents. » Raisons de la faible qualité des logiciels 1) Tâche complexe : ● Taille et complexité des logiciels ● Taille des équipes de conception/développement 2) Manque de méthodes et de rigueur : ● Manque de méthodes de conception ● Négligence et manque de méthodes et d'outils des phases de validation/vérification 3) Mauvaise compréhension des besoins : ● Négligence de la phase d'analyse des besoins du client ● Manque d'implication du client dans le processus 8 Ing. NTOH MOUALAM Annick 4) Difficultés spécifiques du logiciel : ● Produit invisible et immatériel ● Difficile de mesurer la qualité ● Conséquences critiques causées par modifications infimes ● Mises à jour et maintenance dues à l'évolution rapide de la technologie ● Défaillances logicielles principalement humaines Importance de la qualité des logiciels  Fiabilité, sûreté et sécurité des logiciels est importante dans les domaines suivants : ● Transports automobile, ferroviaire, aéronautique ● Contrôle de processus industriels, nucléaire, armement ● Médical : imagerie, appareillage, télé-surveillance ● e-commerce, carte bancaire sans contact, passeport électronique  Raisons économiques : coût d'un bug ● Coût de la correction, du rappel des appareils défectueux ● Coût de l'impact sur l'image, de l'arrivée tardive sur le marché 9 Ing. NTOH MOUALAM Annick ● Coût en vies, coût de l'impact écologique Qualité du logiciel Critères de qualité : ● Validité : réponse aux besoins des utilisateurs ● Facilité d'utilisation : prise en main et robustesse ● Performance : temps de réponse, débit, fluidité... ● Fiabilité : tolérance aux pannes ● Sécurité : intégrité des données et protection des accès ● Maintenabilité : facilité à corriger ou transformer le logiciel ● Portabilité : changement d'environnement matériel ou logiciel 10 Ing. NTOH MOUALAM Annick Principes utilisés dans le Génie Logiciel  Généralisation : regroupement d’un ensemble de fonctionnalités semblables en une fonctionnalité´ paramétrable (généricité, héritage)  Structuration : façon de décomposer un logiciel (utilisation d’une méthode bottom-up ou top-down)  Abstraction : mécanisme qui permet de présenter un contexte en exprimant les éléments pertinents et en omettant ceux qui ne le sont pas.  Modularité : décomposition d’un logiciel en composants discrets  Documentation : gestion des documents incluant leur identification, acquisition, production, stockage et distribution.  Vérification : détermination du respect des specifications établies sur la base des besoins identifiés dans la phase précédente du cycle de vie 11 Ing. NTOH MOUALAM Annick Chapitre 2. Processus de développement logiciel Le cycle de vie désigne l’ensemble d'activités successives, organisées en vue de la production d'un logiciel Les modèles décrivent les liens, les relations entre les différentes étapes du cycle de vie du logiciel. Les méthodes permettent de mettre en œuvre un développement logiciel selon un modèle en organisant les différentes étapes du cycle de vie du logiciel. En pratique : ● Pas de processus idéal ● Choix du processus en fonction des contraintes (taille des équipes, temps, qualité...) ● Adaptation de « processus types » aux besoins réels Activités du développement logiciel ou Cycle de vie ● Analyse des besoins ● Spécification ● Conception ● Programmation ● Validation et vérification ● Livraison ● Maintenance Pour chaque activité : Utilisation et production de documents 1) Analyse des besoins : Comprendre les besoins du client ● Objectifs généraux, environnement du futur système, ressources disponibles, contraintes de performance… ● Fournie par le client (expert du domaine d'application, futur utilisateur…) 2) Spécification : ● Établir une description claire de ce que doit faire le logiciel (fonctionnalités détaillées, exigences de qualité, interface…) ● Clarifier le cahier des charges (ambiguïtés, contradictions) en listant les exigences fonctionnelles et non fonctionnelles 12 Ing. NTOH MOUALAM Annick 3) Conception : Élaborer une solution concrète réalisant la spécification ● Description architecturale en composants (avec interface et fonctionnalités) ● Réalisation des fonctionnalités par les composants (algorithmes, organisation des données) ● Réalisation des exigences non fonctionnelles (performance, sécurité…) 4) Programmation : Implantation de la solution conçue ● Choix de l'environnement de développement, du/des langage(s) de programmation, de normes de développement... 5) Validation et vérification Objectifs : ● Validation : assurer que les besoins du client sont satisfaits (au niveau de la spécification, du produit fini...) ● Vérification : assurer que le logiciel satisfait sa spécification 6) Maintenance Types de maintenance : ● Correction : identifier et corriger des erreurs trouvées après la livraison ● Adaptation : adapter le logiciel aux changements dans l'environnement (format des données, environnement d'exécution...) 13 Ing. NTOH MOUALAM Annick ● Perfection : améliorer la performance, ajouter des fonctionnalités, améliorer la maintenabilité uploads/Ingenierie_Lourd/ chap-1-9.pdf

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