Introduction au génie logiciel Interv. SERNANE SOUFIANE PLAN : Génie logiciel
Introduction au génie logiciel Interv. SERNANE SOUFIANE PLAN : Génie logiciel Logiciel Qualité du logiciel Processus de développement logiciel Activités du développement logiciel Processus Développement Méthodes Documentation Modélisation 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. Génie logiciel : Objectif : 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 Un logiciel : Ensemble d'entités nécessaires au fonctionnement d'un processus de traitement automatique de l'information - Programmes, données, documentation... Un logiciel : Ensemble de programmes qui permet à un système informatique d’assurer une tâche ou une fonction en particulier Logiciel = programme + utilisation Un logiciel : Les caractéristiques Environnement: - utilisateurs : Grand public (traitement de texte), Spécialistes (calcul météorologique), Développeurs (compilateur) Un logiciel : Les caractéristiques 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: 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 Étude du DoD : Étude du Standish group Enquête sur des milliers de projets, de toutes tailles et de tous secteurs Petits vs grands projets Utilisation des fonctionnalités implantées Raisons de la faible qualité des logiciels Raisons de la faible qualité des logiciels Raisons de la faible qualité des logiciels Tâche complexe : - Taille et complexité des logiciels - Taille des équipes de conception/développement 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 Raisons de la faible qualité des logiciels Mauvaise compréhension des besoins : - Négligence de la phase d'analyse des besoins du client - Manque d'implication du client dans le processus Importance de la qualité des logiciels Fiabilité, sûreté et sécurité des logiciels: - 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 Importance de la qualité des logiciels 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é - Coût en vies, coût de l'impact écologique Solution : 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 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 Qualité du logiciel Critères de qualité 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 Contrôleur de télécommande Aire caractéristique de qualité logiciel (représentative du coût) Jeu vidéo Client mail Simulateur pour Météo Processus de développement logiciel Ensemble d'activités successives, organisées en vue de la production d'un logiciel En pratique : Pas de processus idéal Choix du processus en fonction des contraintes Adaptation de « processus types » aux besoins réels Processus de développement logiciel Activités du développement logiciel: Analyse des besoins Spécification Conception Programmation Validation et vérification Livraison Maintenance Activités du développement logiciel 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 Activités du développement logiciel Spécification : Établir une description claire de ce que doit faire le logiciel Clarifier le cahier des charges en listant les exigences fonctionnelles et non fonctionnelles Activités du développement logiciel 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é…) Activités du développement logiciel 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... 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 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...) Perfection : améliorer la performance, ajouter des fonctionnalités, améliorer la maintenabilité du logiciel Répartition de l'effort Processus en cascade Processus en V Caractéristiques : Variante du modèle en cascade Mise en évidence de la complémentarité des phases menant à la réalisation et des phases de test permettant de les valider Processus en V Développement par prototypage Principe : Développement rapide d'un prototype avec le client pour valider ses besoins Écriture de la spécification à partir du prototype, puis processus de développement linéaire Développement incrémental Principe : Hiérarchiser les besoins du client Concevoir et livrer au client un produit implantant un sous- ensemble de fonctionnalités par ordre de priorité Méthodes agiles et extreme programming Principe : Implication constante du client Programmation en binôme Développement dirigé par les tests Cycles de développement rapides pour réagir aux changements Documentation Objectif : Traçabilité du projet Pour l'équipe : Regrouper et structurer les décisions prises Faire référence pour les décisions futures Garantir la cohérence entre les modèles et le produit Pour le client : Donner une vision claire de l'état d'avancement du projet Documents de spécification et conception Rédaction : le plus souvent en langage naturel (français) Problèmes : Ambiguïtés : plusieurs sens d'un même mot selon les personnes ou les contextes Contradictions, oublis, redondances difficiles à détecter Difficultés à trouver une information Mélange entre les niveaux d'abstraction Documents de spécification et conception Alternatives au langage naturel : Langages informels : Langage naturel structuré : modèles de document et règles de rédaction précis et documentés Pseudo-code : description algorithmique de l'exécution d'une tâche, donnant une vision opérationnelle du système Documents de spécification et conception Langages semi-formels : Notation graphique : diagrammes accompagnés de texte structuré, donnant une vue statique ou dynamique du système Langages formels : Formalisme mathématique : propriétés logiques ou modèle du comportement du système dans un langage mathématique Modélisation Modèle : Simplification de la réalité, abstraction, vue subjective modèle météorologique, économique, démographique... Modéliser un concept ou un objet pour : Mieux le comprendre Mieux le construire En génie logiciel : Modélisation = spécification + conception Aider la réalisation d'un logiciel à partir des besoins du client Modélisation graphique Pourquoi UML ? Langage : Syntaxe et règles d'écriture Notations graphiques normalisées … de modélisation : Abstraction du fonctionnement et de la structure du système Spécification et conception … unifié : Fusion de plusieurs notations antérieures : Booch, OMT, OOSE Standard défini par l'OMG (Object Management Group) Dernière version : UML 2.5.1 (Décembre 2017) UML : Unified Modeling Language Besoin de modéliser pour construire un logiciel Modélisation des aspects statiques et dynamiques Modélisation à différents niveaux d'abstraction et selon plusieurs vues Indépendant du processus de développement Besoin de langages normalisés pour la modélisation Langage semi-formel Standard très utilisé Conception orientée objet Façon efficace de penser le logiciel Façon efficace de penser le logiciel Indépendance du langage de programmation Méthodes de conception Conception fonctionnelle Système = ensemble de fonctions État du système (données) centralisé et partagé par les fonctions Conception guidée par les données Système = base de données Fonctions communes à toutes les données Adaptée à l’élaboration de grandes bases de données Conception orientée objet Système = ensemble d’objets Objet = données + fonctions État du système distribué entre tous les objets Conception orientée objet Principes Concept du domaine d'application = objet Décrit par état (attributs) + comportement (opérations) Liens entre concepts : héritage, agrégation, composition... Caractéristiques des objets Identité : objet = entité unique (mêmes attributs ⇏même objet) Classification : regroupement des objets de même nature (attributs + opérations) Polymorphisme : comportement différent d'une même opération dans différentes classes Héritage : partage hiérarchique des attributs et opérations Conception orientée objet avec UML UML Langage graphique : Ensemble de diagrammes uploads/Industriel/ mdaaa.pdf
Documents similaires










-
34
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 26, 2021
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 4.7832MB