Cours 2 : Activités de développement logiciel et cycles de vie PDF
Document Details
Uploaded by FlatterSatellite
Ali EL MEZOUARY
Tags
Summary
This document provides an overview of software development and software life cycles. It details activities and objectives involved in the software development process.
Full Transcript
Module M12 : Génie logiciel & programmation Java avancée Ali EL MEZOUARY – [email protected]...
Module M12 : Génie logiciel & programmation Java avancée Ali EL MEZOUARY – [email protected] Génie logiciel Cours 2 : Activités de développement logiciel et cycles de vie 1 Résumé rappelant Cours N °1 − La motivation première de génie logiciel est d'essayer de rationaliser, de maitriser et de rendre efficace le processus de production du logiciel. Fournir des garanties sur les temps, les couts et la qualité du produit Cours Génie Logiciel Copyright @ A. EL mezouary 2 1 Résumé rappelant Cours N °1 − Le génie logiciel peut être défini comme l'ensemble des principes, des méthodes, des techniques et des outils utiles au développement d'un projet logiciel. − Sa mise en œuvre implique la prise en compte : des environnements de développement, avec toute la variété d'outils et d'approches dont on peut disposer, des méthodes et des techniques de gestion de processus, des aspects humains au sein de l'équipe de développement Cours Génie Logiciel Copyright @ A. EL mezouary 3 Résumé rappelant Cours N °1 − Le GL doit fournir des méthodes de conception de systèmes complexes permettant Une prise en compte du client Une démarche qualité Une organisation du travail en équipe − Le GL, c’est aussi des outils associés AGL (Atelier de Génie Logiciel) Méthodologiques Exemple : Rational Rose (UML) Cours Génie Logiciel Copyright @ A. EL mezouary 4 2 Cours 2 : Activités de développement du logiciel et cycles de vie Objectifs Objectifs du du cours cours − Découvrir les principes de base du gestion de projet − Découvrir les principales activités de développement de logiciels − Connaitre les cycles de vie et leur motivation − Connaitre les cycles de vie classiques − Pouvoir choisir un cycle de vie sur la base des données concernant un projet de développement Cours Génie Logiciel Copyright @ A. EL mezouary 5 Cours 2 : Activités de développement du logiciel et cycles de vie Section 1 : Notion Section 2 : de projet en GL Développement du logiciel Section 4 : Quelques Cours Génie Logiciel Copyright @ A. EL mezouary Section 3 : Cycle de méthodes de vie logiciel développement 6 3 Cours 2 : Activités de développement du logiciel et cycles de vie Section 1 : Notion de projet en GL Cours Génie Logiciel Copyright @ A. EL mezouary 7 Cours 2 : Activités de développement du Section 1 : Notion de projet logiciel et cycles de vie en GL Contexte − Les principes et les techniques de GL s’appliquent mieux aux projets de grande taille Regroupant plusieurs personnes Devant fournir plusieurs versions Généralement de longue durée − Ceci met en évidence les différences entre La programmation : une activité personnelle Cours Génie Logiciel Copyright @ A. EL mezouary Le développement logiciel : une activité d’équipe au sein d’un projet 8 4 Cours 2 : Activités de développement du Section 1 : Notion de projet logiciel et cycles de vie en GL Notion de Projet en GL − Combinaison d’un ensemble de ressources humaines, matérielles, techniques, administratives et financières, mises ensemble afin de réaliser un objectif spécifique dans un délai fixé, à un coût fixé − Il s’agit d’un effort temporaire caractérisé notamment par : Taille : plusieurs personnes, varie dans le temps Durée : plusieurs mois, au moins… (un début et une fin déterminés) Nature : unique et non récurrente… mais avec des bases Cours Génie Logiciel Copyright @ A. EL mezouary scientifiques ! 9 Cours 2 : Activités de développement du Section 1 : Notion de projet logiciel et cycles de vie en GL Gestion de projet en GL − La plus part du problèmes de développement logiciel sont des problèmes de gestion Identification et organisation des tâches Planification et contrôle : Organigrammes des tâches, gestion des délais, Estimation des coûts, outils GANT/PERT, Gestion des changements Contrôle des versions et gestion des configurations Cours Génie Logiciel Copyright @ A. EL mezouary 10 5 Cours 2 : Activités de développement du Section 1 : Notion de projet logiciel et cycles de vie en GL Gestion de projet en GL Gestion de la qualité et gestion des risques : Gestion de la documentation, de la configuration, normes qualité, le plan d’assurance qualité, identification et analyse des risques, le plan de gestion des risques Gestion de l’Equipe de Projet et communication : Formation de l’équipe de projet, organisation et animation, évaluation, élaboration et mise en œuvre du plan de communication. Cours Génie Logiciel Copyright @ A. EL mezouary 11 Cours 2 : Activités de développement du logiciel et cycles de vie Section 2 : Développement du logiciel Cours Génie Logiciel Copyright @ A. EL mezouary 12 6 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Etapes de développement d’un logiciel − Le développement de logiciels passe par plusieurs étapes − Ces étapes peuvent être résumées en trois étapes de base ci- dessous Cours Génie Logiciel Copyright @ A. EL mezouary Définition Développement support 13 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Etapes de développement d’un logiciel Définition − Définir les besoins − Que doit faire le logiciel − Et sous quelles conditions Cours Génie Logiciel Copyright @ A. EL mezouary 14 7 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Etapes de développement d’un logiciel Développement − Transformation de données collectées pendant l’étape de définition en plusieurs produits connexes − Modèles et architectures − Codes source et programmes informatique − Logiciels fonctionnels Cours Génie Logiciel Copyright @ A. EL mezouary 15 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Etapes de développement d’un logiciel Support amélioration adaptation changement Correction Cours Génie Logiciel Copyright @ A. EL mezouary prévention 16 8 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Etapes de développement d’un logiciel Support − Amélioration : en terme de performance et d’ergonomie, etc. − Correction : réparation des fonction qui ne marche pas ou qui ne marche pas comme souhaité; − Adaptation : adaptation des fonctions aux évolution technologiques actuelles.; − Prévention : rendre le logiciel plus facile à la maintenance. Cours Génie Logiciel Copyright @ A. EL mezouary 17 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel − Chaque projet de développement est le résultat de plusieurs activités − Chaque activité est conduite et réalisée par plusieurs acteurs − Une activité a des entrées et des sorties (les livrables). − Les livrables sont des produits ou des documents produits par une activité et utilisés par les activités qui en dépendent − Exemple des livrables : documents, planning, code source Cours Génie Logiciel Copyright @ A. EL mezouary 18 9 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel − Il est important de distinguer entre une étapes (découpage temporel) et activités (découpage selon la nature du travail) − Il y a des activités qui se déroulent dans plusieurs étapes (ex : la spécification, la validation et la vérification), voire dans toutes les étapes (ex : la documentation). Cours Génie Logiciel Copyright @ A. EL mezouary 19 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel − Les activités des processus de développement logiciels sont : Spécification conception implémentation Validation et vérification Livraison Maintenance Cours Génie Logiciel Copyright @ A. EL mezouary (teste) − Ces activités se retrouvent dans touts les projets de développement 20 10 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel Spécification/Analyse des besoins − Identifier les besoins de client et les contraintes qui doivent être respectées le logiciel. − Modéliser sous forme d’exigences et de modèles − Détermination des éléments constituant le système. Première description du futur système Les fonctions générales, Les caractéristiques des utilisateurs, Cours Génie Logiciel Copyright @ A. EL mezouary 21 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel Spécification/Analyse des besoins − Entrées : Fournies par le client (Cahier de charge) − Acteurs : Expert du domaine d'application, futur utilisateur − Document produit Un document de spécification/un cahier des charges fonctionnel − Remarques importantes Pas de choix d’implémentation à ce niveau... Cours Génie Logiciel Copyright @ A. EL mezouary Cette phase est difficile car généralement le client et les développeurs ne parlent pas le même langage 22 11 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel Spécification/Analyse des besoins Exigences Future utilisateur Spécification Cahier de Modèles Cours Génie Logiciel Copyright @ A. EL mezouary charges systèmes Analyste 23 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel Spécification/Analyse des besoins : Exemple Cours Génie Logiciel Copyright @ A. EL mezouary Exemple d’automate pour décrire un scénario Exemple de description de scénario de cas d’utilisation 24 12 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel Conception − Déterminer la façon dont le logiciel fournit les différentes fonctionnalités recherchées − Conception générale Conception architecturale : Déterminer la structure du système Conception des interfaces : Déterminer la façon dont les différentes parties du système agissent entre elles − Conception détaillée Cours Génie Logiciel Copyright @ A. EL mezouary Détailler le fonctionnement des composants → Modéliser la résolution du problème posé par l’analyse → Définir une organisation logique du code → Déterminer les algorithmes pour les différentes parties du système 25 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel : Conception Conception Architecture Exigences générale Conception Modèles Conception Cours Génie Logiciel Copyright @ A. EL mezouary systèmes détaillés 26 13 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel Conception : Exemple Exemple d’une architecture système Cours Génie Logiciel Copyright @ A. EL mezouary Exemple d’une classe 27 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel Implémentation − Choix de l'environnement de développement, langage(s) de programmation, normes de développement... − Réalisation du système (codage de chaque module de système et assemblage) − Ajout d’optimisation si nécessaire Entrée : − Dossier conception Cours Génie Logiciel Copyright @ A. EL mezouary Document produit − Code opérationnel documenté − Manuel d'utilisation 28 14 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Implémentation (Programmation) Implémentation Architecture Code générale documenté Implémentation Conception Manuel Cours Génie Logiciel Copyright @ A. EL mezouary détaillés d’utilisation 29 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel Implémentation: Exemple Exemple de code écrite en langage Java Cours Génie Logiciel Copyright @ A. EL mezouary 30 15 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel Validation et Vérification − Essayer le logiciel sur des données d’exemple pour s’assurer qu’il fonctionne correctement 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 Cours Génie Logiciel Copyright @ A. EL mezouary 31 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel Validation et Vérification − Tests unitaires : Faire tester durant l’activité de codage les parties du logiciel par leurs développeurs. − Tests d’intégration : Tester pendant l’intégration − Tests de validation : Pour acceptation par l’acheteur − Tests système : Tester dans un environnement proche de l’environnement de production − Tests Alpha : Faire tester par le client sur le site de Cours Génie Logiciel Copyright @ A. EL mezouary développement − Tests Bêta : Faire tester par le client sur le site de client − Tests de régression : Enregistrer les résultats des tests et les comparer à ceux des anciennes versions 32 16 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel Validation et Vérification Cours Génie Logiciel Copyright @ A. EL mezouary 33 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel Livraison − Aussi appelée le déploiement consiste à fournir au client une solution logicielle qui fonctionne correctement Installation : rendre le logiciel opérationnel sur le site du client Formation : enseigner aux utilisateurs à se servir du logiciel Assistance : répondre aux questions des utilisateurs − Acteurs : programmeurs, ingénieurs du client, utilisateurs Cours Génie Logiciel Copyright @ A. EL mezouary 34 17 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel Maintenance − La maintenance consiste à apporter des modifications sur le logiciel après la livraison pour assurer sa pérennité Son but est correctif, évolutif ou prédictif (voir cours 1) Adapte le logiciel aux besoins futurs de ses clients Le degré de la maintenance dépend de la qualité da la phase de conception et de l’implémentation Cours Génie Logiciel Copyright @ A. EL mezouary 35 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel Activité de gestion de projet − En plus des activités précédentes on ajoute les activités liées au gestion de projet terminer comment on va développer le logiciel Analyse des coûts : établir une estimation du prix du projet Planification : établir un calendrier de développement Assurance qualité du logiciel : déterminer les actions qui permettront de s’assurer de la qualité du produit fini Cours Génie Logiciel Copyright @ A. EL mezouary Répartition des tâches : hiérarchiser les tâches et sous-tâches nécessaires au développement du logiciel 36 18 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel Répartition de l'effort Cours Génie Logiciel Copyright @ A. EL mezouary 37 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel La documentation − Objectif : Traçabilité des projet et communication entre acteurs − Pour l’équipe Regrouper et structurer les décisions prises Faire référence pour les décision futures Garantir les cohérence entre les modèles et le produit − Pour le client Cours Génie Logiciel Copyright @ A. EL mezouary Donner une vision clair de l’état d’avancement du projet − Base commune de référence Personne quittant le projet : pas de perte d'informations Personne rejoignant le projet : intégration rapide 38 19 Cours 2 : Activités de développement du Section 2 : Développement du logiciel et cycles de vie logiciel Activités de génie logiciel − Documents produits dans les différentes activités Cours Génie Logiciel Copyright @ A. EL mezouary 39 Cours 2 : Activités de développement du logiciel et cycles de vie Cours Génie Logiciel Copyright @ A. EL mezouary Section 3 : Cycle de vie 40 20 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycles de vie logiciel Notion de cycle vie logiciel − Le cycle de vie d’un logiciel est le processus qui constitué de l’ensemble de phases et activités intervenantes ainsi que leur enchainement pour la réalisation de ce logiciel − Les cycles de vie de logiciel sont complexent et dépendent fortement des acteurs qui dirigent les activités − Les activités d’un processus de développement ne peuvent être automatisées mais il y a des outils de support, appelés CASE (Computer-Aide Software Engineering) Cours Génie Logiciel Copyright @ A. EL mezouary − Il n’existe pas des cycles de vie idéal 41 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycles de vie logiciel Modèles de cycles de vie − Il est très rare d’appliquer un cycle de vie comme une unique séquence des activités − Ces activités peuvent être organisées de différentes manières selon les besoins et particularités des systèmes et des équipes participantes. Cours Génie Logiciel Copyright @ A. EL mezouary 42 21 Cours 2 : Activités de développement du Section 1 : Cycle de vie de logiciel et cycles de vie logiciel Modèles de cycles de vie logiciel − Pour maitriser des gros projet, on fait appelle à des modèles de cycle de vie logiciel. En général deux types modèles Modèles linéaires → cascade → modèle en V →... Modèles non linéaires → prototypage Cours Génie Logiciel Copyright @ A. EL mezouary → modèles incrémentaux → modèle en spirale →... 43 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycles de vie logiciel Modèle en cascade Cours Génie Logiciel Copyright @ A. EL mezouary 44 22 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycles de vie logiciel Modèle en cascade − Hérité des méthodes classiques d’ingénierie. − Chaque phase doit se terminer à une date précise pour commencer la phase suivante − Des documents sont produits pour concrétiser la réalisation de chaque phase − Adapté pour des projets de petite taille, et dont le domaine est bien maitrisé Cours Génie Logiciel Copyright @ A. EL mezouary 45 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycles de vie logiciel Modèle en cascade Avantages − Facile à utiliser et à comprendre − Un procédé structuré pour une équipe inexpérimentée − Idéal pour la gestion et le suivi de projets − Fonctionne très bien quand la qualité important que les couts et les délais Cours Génie Logiciel Copyright @ A. EL mezouary 46 23 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycles de vie logiciel Modèle en cascade Inconvénients − Une phase ne peut démarrée que si la phase précédente est finie − Sensible aux nouveaux besoins : refaire tous le processus − Le produit n’est visible que à la fin − Les risque se décale vers la fin Cours Génie Logiciel Copyright @ A. EL mezouary 47 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycles de vie logiciel Modèle en cascade Quand l’utilisé − Quand les besoins sont connus est stables − Quand la technologie à utiliser est métrisée − Lorsque la création d’une nouvelle version d’un logiciel existant Cours Génie Logiciel Copyright @ A. EL mezouary 48 24 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycles de vie logiciel Modèle en V − Variante du modèle en cascade qui fait l’accent sur la vérification et la validation. Le test de produit se fait en parallèle par rapport aux autres activités Cours Génie Logiciel Copyright @ A. EL mezouary 49 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycles de vie logiciel Modèle en V Avantages − Met l’accent sur les tests et la validation et par conséquent, ça croit la qualité logiciel − Chaque livrable doit être testable − Facile à planifier dans une gestion de projets − Facile à utiliser Inconvénients Cours Génie Logiciel Copyright @ A. EL mezouary − Ne contient pas les activités d’analyse de risque 50 25 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycles de vie logiciel Modèle en V Quand l’utilisé − Quand le logiciel à développer à très hautes exigence de qualité − Quand les besoins sont connus à l’avance − Les technologies à utiliser sont connus à l’avance Cours Génie Logiciel Copyright @ A. EL mezouary 51 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycles de vie logiciel Modèle Prototypage − Appelé aussi le modèle évolutif, car le projet se fait sur plusieurs itérations. − Un prototype est construite rapidement est confronté au client − Le prototype est évalué par le client puis il donne sont feedback − En fonction des résultats, on raffine la spécification − On reprend le prototype ou on le réécrit jusqu’à l’obtention du système final. Cours Génie Logiciel Copyright @ A. EL mezouary 52 26 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycles de vie logiciel Modèle Prototypage Écouter le client Développer Cours Génie Logiciel Copyright @ A. EL mezouary Evaluer le le prototype prototype 53 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycles de vie logiciel Modèle Prototypage Avantages − Implication active du client − S’adapte rapidement aux changement des besoins − Progrès constant et visible − Une grande interaction avec le produit Inconvénients − Un code faiblement structuré Cours Génie Logiciel Copyright @ A. EL mezouary − Le processus peut ne jamais s’arrêter − Très difficile d’établir un planning 54 27 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycle de vie logiciel Modèle Prototypage Quand l’utilisé − Quand les besoins ne sont pas stables − Les technologies à utiliser sont connus à l’avance − Peut être utilisé avec le modèle en cascade pour la clarification les besoins Cours Génie Logiciel Copyright @ A. EL mezouary 55 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycle de vie logiciel Modèle incrémental de Parnas − Concevoir et livrer au client un sous-ensemble minimal par ordre de priorités de fonctionnalités du système, pour hiérarchiser les besoins du client Cours Génie Logiciel Copyright @ A. EL mezouary 56 28 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycle de vie logiciel Modèle incrémental de Parnas Cours Génie Logiciel Copyright @ A. EL mezouary Modèle incrémental 57 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycle de vie logiciel Modèle incrémentale de Parnas Avantages − Développement des fonctionnalités à risque en premier − Chaque incrément donne un produit fonctionnel − Le client intervient à la fin de chaque incrément Inconvénients − Exige une bonne planification et une bonne conception − Exige une vision sur le produit fini pour pouvoir le divisé en Cours Génie Logiciel Copyright @ A. EL mezouary incréments − Le coût total du système peut être cher 58 29 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycle de vie logiciel Modèle incrémentale de Parnas Quand l’utilisé − Quand on veut rapidement un produit fonctionnel − Pour des projet des long durées − Pour des projet impliquant de nouvelle technologies Cours Génie Logiciel Copyright @ A. EL mezouary 59 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycle de vie logiciel Modèle incrémental en Spirale − Modèle itératif − Des incréments sous forme des cycles − À la fin de chaque cycle en détermine les objectifs de cycle suivant − Chaque cycle est composé des mêmes activités que de modèles en cascade − Inclut l’identification et l’évaluation des risques ainsi le prototypage Cours Génie Logiciel Copyright @ A. EL mezouary 60 30 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycle de vie logiciel Modèle incrémental en Spirale − Le modèle en spirale met l’accent sur l’évaluation des risques Cours Génie Logiciel Copyright @ A. EL mezouary 61 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycle de vie logiciel Modèle incrémental en Spirale − Chaque boucle de la spirale est décomposée en quatre secteurs 1 détermination des objectifs en terme des fonctionnalités, des performances, de coût, 2 identification et évaluation des risques : Étudier les risques : techniques non maitrisés, équipe non expérimentée, planning trop serré Évaluation des risques : voir si les risques peuvent impacter le projet et à quel degré Cours Génie Logiciel Copyright @ A. EL mezouary 3 développement et test : pratiquement elle contient la plupart des activités (conception codage, test, ….) 4 Planification de la boucle suivante. 62 31 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycle de vie logiciel Modèle incrémental en Spirale − Les principaux risques à prendre en compte et leurs remèdes : Cours Génie Logiciel Copyright @ A. EL mezouary 63 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycle de vie logiciel Modèle incrémentale en Spirale Avantages − Identification rapide des risques − Impact minimaux des risques sur le projet − Feedback rapide du client − Une évolution contenue du processus de développement Inconvénients − L’évaluation des risques peut prendre du temps et engendrer Cours Génie Logiciel Copyright @ A. EL mezouary plus de coûts que la réalisation du logiciel − Le modèle est très complexe − Les objectifs ne sont pas faciles à formuler − n’est adapté qu’aux projets suffisamment gros 64 32 Cours 2 : Activités de développement du Section 3 : Cycle de vie de logiciel et cycle de vie logiciel Modèle incrémentale en Spirale Quand l’utilisé − Quand le prototypage est exigé − Lorsque le risque du projet est considérable − Quand les spécifications ne sont pas stables − Pour les nouveaux produits et de grande taille Cours Génie Logiciel Copyright @ A. EL mezouary 65 Cours 2 : Activités de développement du logiciel et cycles de vie Cours Génie Logiciel Copyright @ A. EL mezouary Section 4 : Quelques méthodes 66 33 Cours 2 : Activités de développement du Section 4 : Quelques logiciel et cycles de vie méthodes Méthode de développement dans un projet logiciel − Une méthode de développement de projet logiciel repose sur Une démarche de développement (processus de développement) → Cascade, en V, Spiral, etc. Un formalisme → Langages formels → Langages semi-formels → Langages naturels Cours Génie Logiciel Copyright @ A. EL mezouary 67 Cours 2 : Activités de développement du Section 4 : Quelques logiciel et cycle de vie méthodes Méthodes de GL − Plusieurs méthodes se sont développées au long de l’évolution de génie logiciel − Différentes manière de les classer − Une classification admise Les méthodes dirigées par les données Les méthodes fonctionnelles (dirigées par les traitements) Les méthode systémiques Cours Génie Logiciel Copyright @ A. EL mezouary Les méthodes orientés objets 68 34 Cours 2 : Activités de développement du Section 4 : Quelques logiciel et cycle de vie méthodes Méthodes dirigées par les données − Assez anciennes (1975-1980) − Repose sur l’idée que la structure d’un logiciel peut se traduire de la structure des données apparaissant en entrée et en sortie de ce logiciel − Particulièrement bien adaptées à certains problèmes simples − Traitent mal les problèmes complexe − Exemples de ces méthodes Cours Génie Logiciel Copyright @ A. EL mezouary Méthode de M.Jackson, 1975 Méthode de J.D.Warnier 1976 69 Cours 2 : Activités de développement du Section 4 : Quelques logiciel et cycle de vie méthodes Méthodes fonctionnelles − Plus orientées vers les traitements que vers les données − Mettent en évidence les fonctions à assurer et proposent une approche hiérarchique, Descendante et modulaire en précisant les liens entre les différents modules. − Les méthodes fonctionnelles les plus connues : SA-AD (Structured Analysis-Structured Design) SADT (Structured Analysis and Design Technique) Cours Génie Logiciel Copyright @ A. EL mezouary 70 35 Cours 2 : Activités de développement du Section 4 : Quelques logiciel et cycle de vie méthodes Méthodes Systémiques − Méthodes s’appuyant sur une approche systémique − Proposent de nombreux modèles complémentaires − Sont souvent spécialisées pour la conception d’un certain type de systèmes − Les plus connus Merise AXIAL Cours Génie Logiciel Copyright @ A. EL mezouary MEGA OSSAD … 71 Cours 2 : Activités de développement du Section 4 : Quelques logiciel et cycle de vie méthodes Méthodes Orientées Object − Ces méthodes adoptent l’approche objet − Traitent un problème suivant trois aspects Aspect statique : identifie les propriétés des objets et leurs liaisons avec les autres objets Aspect dynamique : définit le cycle de vie des objets en précisant le comportement des objets, les différents états par lesquels ils passent, … Aspect fonctionnel : précise les fonctions réalisées par les objets Cours Génie Logiciel Copyright @ A. EL mezouary par l’intermédiaire des méthodes 72 36 Cours 2 : Activités de développement du Section 4 : Quelques logiciel et cycle de vie méthodes Méthodes Orientées Object − Quelques méthodes à base de langage de modélisation orientés objet OMT (Rumbaugh et al. 1995) OOA (Object Oriented Analysis – Coad & Yourdon 1992) BOOCH (Booch 1991) Objectory-OOSE (Jacobson & al. 1997) UP, RUP Cours Génie Logiciel Copyright @ A. EL mezouary 73 37