Université Abou Bakr belkaid faculté des sciences département d’informatique Co
Université Abou Bakr belkaid faculté des sciences département d’informatique Cours Génie Logiciel Niveau : L3 informatique Octobre 2021 Chargé de cours : S Meziane Tani E –mail : s.mezianetani13@gmail.com 11/11/2022 Cliquez pour ajouter du texte Click to add text Click to add text Organisation du cours Cours: 8 séances en ligne + 4 séances en présentiel TD 8 séances en ligne + 4 séances en présentiel TP: Modélisation UML avec Modelio 4 séances en présentiel + 8 séances en ligne 11/11/2022 2 Contenu de la matière Chapitre 1. Introduction au génie logiciel Chapitre 2. Introduction à la modélisation avec UML((Unified Modeling Language) Chapitre 3. Diagramme UML de cas d’utilisation Chapitre 4. Diagramme de séquence. Chapitre 5 . Diagrammes UML de classes et d’objets 11/11/2022 3 Cliquez pour ajouter du texte Objectif du cours Comprendre comment sont construits les logiciels ; Être en mesure d’exprimer des besoins et de suivre un développement de logiciel. Vous donner envie de devenir développeur de logiciels ! 11/11/2022 4 Chapitre 1 : Introduction au Génie Logiciel 11/11/2022 5 Plan 1. Définition du génie logiciel . 2. Les enjeux du génie logiciel . 3 . Qualité du logiciel . 4. Modèles de cycle de vie d’un logiciel. 11/11/2022 6 Génie Logiciel : c’est quoi ? Génie Logiciel (software engineering) (IEEE standards) Ensemble des méthodes , des techniques et des outils dédiés à la conception, au développement et à la maintenance des systèmes informatiques. 11/11/2022 7 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 . Génie , civil, naval, mécanique, 11/11/2022 8 Un logiciel : c’est quoi ? • Ensemble d'entités nécessaires au fonctionnement d'un processus de traitement automatique de l'information 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 11/11/2022 9 Click to add text 11/11/2022 10 Catégories de logiciel Systèmes d’information Manipulation de données Exemples: gestion de stock, réservation de salles Systèmes temps reel Réaction à des évènements Exemples: automatisation d’usine, pilotage automatique Systèmes distribués Coordination de différentes composantes Exemples: messagerie électronique, Teams Systèmes embarques Combinaison de matériel et logiciel spécifiques Exemples: GAB, 11/11/2022 11 Historique du Génie logiciel Le GL est apparu à la fin des années 60 pour répondre à la "la crise du logiciel". Symptôme de cette crise : Le logiciel livré ne satisfait pas les besoins de l’utilisateur, il consomme plus de ressources que prévu et il est à l’origine de pannes. Temps de réponse trop lents. Non respect des délais et des coûts Maintenance difficile, coûteuse et souvent à l’origine de nouvelles erreurs. 11/11/2022 12 Erreurs célèbres . . . Entre 1985 et 1987, le problème du Therac-25 (un appareil d’irradiation thérapeutique) : 2 morts, 4 irradiés. En 1994, Le bug du Pentium. Coût : 500 millions de dollars. le 4 juin 1996, l’explosion du premier vol d’Ariane 5, le bug informatique le plus coûteux de l’histoire. En 1962, la mission Mariner 1 a connu un incident similaire TAURUS, un projet d’informatisation de la bourse londonienne : définitivement abandonné après 4 années de travail et 100 millions de dollars de pertes. Le bug de l’an 2000 : dysfonctionnements lorsque les dates sont postérieures au 31 décembre 1999. 11/11/2022 13 11/11/2022 14 Étude du DoD 1995 Étude du Department of Defense des États-Unis sur les logiciels produits dans le cadre de 9 gros projets militaires 11/11/2022 15 Génie Logiciel : Difficultés Difficultés liées à la nature du logiciel un logiciel ne s’use pas, sa fiabilité ne dépend que de sa conception pour rester utilisé un logiciel doit évoluer (changements fréquents) Les difficultés liées aux personnes ne savent pas toujours ce qu’elles veulent, ou ne savent pas bien l’exprimer communication difficile entre personnes de métiers différents (jargons) beaucoup d’autodidactes qui croient savoir, . . . Les difficultés technologiques courte durée de vie du matériel, beaucoup de méthodes et de langages évolution des outils de développement, . . . 11/11/2022 16 LES PRINCIPES DU GENIE LOGICIEL (Carlo Ghezzi) 1. La rigueur : o Précision / exactitude o Modèles mathématiques 2. La Généralisation o généricité et héritage o Réutilisabilité 3.La Structuration o Modele bottom-up ≪ ≫ o Modele top-down ≪ ≫ 4.La modularité : 5.L’abstraction : o Modelisation d’un fait o Vue partielle 6.La construction incrémentale o Evolutivite o Reutilisabilite o maintenabilité 7 . LaDocumentation 8.La Vérification 11/11/2022 17 Click to add text Enjeu du génie logiciel ? Bien développer le bon logiciel. Comment faire des logiciels de qualité ? Qu’attend-on d’un logiciel ? Quels sont les critères de qualité ? 11/11/2022 18 Qualité logiciel 11/11/2022 19 Classification des critères de qualités logiciel 11/11/2022 20 Interne externe Concerne l’utilisateur Exemple :Ergonomie concerne le développeur Exemple : Maintenabilité Critères de qualité de (Bertrand Meyer) Facilité d'utilisation(ergonomie) : 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 11/11/2022 21 Critère de qualité La validité (correction, justesse, conformité) est la capacité que possède un produit logiciel à remplir exactement ses fonctions, définies par le cahier des charges et les spécifications. Adéquation entre : Le besoin effectif de l’utilisateur Les fonctions offertes par le logiciel 11/11/2022 22 Critère de qualité(validité ) Solutions : • Emphase sur l’analyse des besoins •Améliorer la communication (langage commun, démarche participative) •Travailler avec rigueur 11/11/2022 23 Critère de qualité Fiabilité ou Robustesse (fiabilité, sureté) est la capacité qu’offrent des systèmes logiciels à réagir de manière appropriée à la présence de conditions anormales (i.e. rien de catastrophique ne peut survenir, même en dehors des conditions d’utilisation prévues). Solutions : •Utiliser des méthodes formelles, des langages et des méthodes de programmation de haut niveau •Vérifications, tests 11/11/2022 24 Critère de qualité Facilité d’utilisation(Ergonomie) La facilité d’utilisation est la facilité avec laquelle des personnes présentant des formations et des compétences différentes peuvent apprendre à utiliser les produits logiciels et s’en servir pour résoudre des problèmes. ◦Facilité d’apprentissage : comprendre ce que l’on peut faire avec le logiciel, et savoir comment le faire ◦Facilité d’utilisation : importance de l’effort nécessaire pour utiliser le logiciel à des fins données 11/11/2022 25 Solutions : •Analyse du mode opératoire des utilisateurs •Adapter l’ergonomie des logiciels aux utilisateurstion et de contrôle. Critère de qualité Compatibilité (Interopérabilité ou coulabilité) La compatibilité est la facilité avec laquelle des éléments logiciels peuvent être combinés à d’autres. Un logiciel doit pouvoir interagir en synergie avec d’autres logiciels Solutions : Bases de données (découplage données/traitements) « Externaliser »certaines fonctions en utilisant des « Middleware »avec une API (Application Program Interface) bien définie Standardisation des formats de fichiers (XML...) et des protocoles de communication (CORBA...) Les ERP (Entreprise Resources Planning) 11/11/2022 26 Critère de qualité Efficacité (performance) L’efficacité est la capacité d’un système logiciel à utiliser le minimum de ressources matérielles, que ce soit le temps machine, l’espace occupé en mémoire externe et interne, ou la bande passante des moyens de communication. Les logiciels doivent satisfaire aux contraintes de temps d’exécution Solutions : Logiciels plus simples Veiller à la complexité des algorithmes Machines plus performantes 11/11/2022 27 Critère de qualité Portabilité La portabilité est la facilité avec laquelle des produits logiciels peuvent être transférés d’un environnement logiciel ou matériel à l’autre. Un même logiciel doit pouvoir fonctionner sur plusieurs machines Solutions : Rendre le logiciel indépendant de son environnement d’exécution (voir interopérabilité) Machines virtuelles 11/11/2022 28 Critère de qualité Réutilisabilité La réutilisabilité est la capacité des éléments logiciels à servir à la construction de plusieurs applications différentes. On peut espérer des gains considérables car dans la plupart des logiciels : 80 % du code est du « tout venant »qu’on retrouve à peu près partout 20 % du code est spécifique Solutions : Abstraction, généricité Construire un logiciel à partir de composants prêts à l’emploi Design Patterns 11/11/2022 29 Critére de qualité Maintenabilité La maintenabilité est le degré de facilité de la maintenance d’un produit logiciel. Un logiciel ne s’use pas Pourtant, la maintenance absorbe une très grosse partie des efforts dedéveloppement (représente 67 % de l’effort de développement) ; Les coûts de maintenance se jouent très tôt dans le processus d’élaboration du logiciel Solution : Réutilisabilté, modularité Vérifier, tester Anticiper les changements à venir. 11/11/2022 30 Critère de qualité Extensibilité L’extensibilité est la facilité d’adaptation des produits logiciels aux changements de spécifications. Intégrité Aptitude d’un logiciel à protéger son code et ses données contre des accès non autorisé. Ponctualité La ponctualité est la capacité d’un système logiciel à être livré au moment désiré par ses utilisateurs, ou avant. 11/11/2022 31 C’est quoi un bon logiciel bien fait ? Un bon logiciel bien fait est un logiciel correct (valide), fiable (robuste), avec un code uploads/Science et Technologie/ cours-1-gl 1 .pdf
Documents similaires
-
23
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Aoû 15, 2021
- Catégorie Science & technolo...
- Langue French
- Taille du fichier 4.9553MB