Modèles génériques d’un processus de développement

Slides:



Advertisements
Présentations similaires
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Advertisements

Licence pro MPCQ : Cours
Distance inter-locuteur
Eléments de Génie Logiciel
6 — Aperçu du processus unifié
M1 MASTER GESTION Séance 3 Pilotage coûts- délais
Processus d'expression du besoin
La Gestion de la Configuration
Les numéros
Le processus unifié UML est un langage de modélisation et n ’impose pas de démarche de développement Le processus unifié : méthodologie de développement.
Finalités et objectif de la sous-épreuve
1 Les technologies XML Cours 1 : Les Web Services et Architectures Orientées Services Fé vrier Version 1.0 -
Chapitre 7 : démarche de conception, conduite de projet SI
Les démarches de développement
Les démarches de développement
1 B Système Enjeux et principes Cours DESS Nantes 04 Décembre 2002 Didier ESSAME.
Processus général de la gestion de projet
Les Ateliers de Génie Logiciel
Pédagogie par Objectifs
La revue de projet.
MIAGE MASTER 1 Cours de gestion de projet
Cycle de vie dun logiciel Origine des erreurs La spécification 50% 40% 10% Le design Le codage.
MANAGEMENT DU PRODUIT Organisation Technique du Produit (OTP) Objet Arborescence Produits Relation autres domaines Décomposition du système Gestion.
le profil UML en temps réel MARTE
Recherche d’un thème de projet Identification d’un besoin
Parcours de formation SIN-7
Initiation à la conception de systèmes d'information
Sésame Conseils Bon sens et compétences
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
Le projet en STI2D Initier le projet Délimiter les champs du possible
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
Vuibert Systèmes dinformation et management des organisations 6 e édition R. Reix – B. Fallery – M. Kalika – F. Rowe Chapitre 7 : Les méthodes de conception.
Les stratégies pédagogiques en
IGL301 - Spécification et vérification des exgiences 1 Chapitre 2 Le processus dingénierie des exigences (ref : Bray chapitre 2)
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
Conception des Réalisé par : Nassim TIGUENITINE.
Démarche de développement
Ingénierie Système en SysML appliquée à la rédaction du cahier des charges Y. Le Gallou Séminaire académique STI2D - Calais – 1er avril 2014.
Patrons de conceptions de créations
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
ANALYSE METHODE & OUTILS
1. Présentation générale du système
Stratégie d’entreprise - Alstom Transport – Marco Férrogalini
Le management de l'IVVQ Processus techniques IVVQ
Supports de formation au SQ Unifié
Université de Sherbrooke
Hatainville Les Moitiers d’Allonne – Tel : Website : stratic.online.com La démarche projet Mars 2001.
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
Vérification dans le cycle de vie GEF492A 2014 Référence: [HvV §14.2, 14.9] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et.
2003 (revisé 2008)SEG Chapitre 11 Chapitre 1 “The Systems Engineering Context” Le contexte du génie de systèmes.
Cycles de Vie du Logiciel LFI2 Genie Logiciel/ Gestion de Projets Septembre 2008.
© Petko ValtchevUniversité de Montréal Février IFT 2251 Génie Logiciel Conception Hiver 2002 Petko Valtchev.
Introduction au Génie Logiciel
Initiation à la conception des systèmes d'informations
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
Management de la qualité
IFT 2251 Génie Logiciel Le Processus
Année 2006 – 2007 ENSEA © Emeric Rollin
1 Vers la gestion de la cohérence dans les processus multi-modèles métier Wolfgang THEURER Ecole Nationale Supérieure d’Ingénieurs des Etudes et Techniques.
G.L modèle en CASCADE Plan Réalisé par : Selmane mohamed lamine
Les démarches de développement
Sensibilisation aux projets logiciels
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Le Processus Hiver 2002 Petko Valtchev.
AMDEC AMDEC : Analyse des modes de défaillances, de leurs effets et leurs criticités Origine: 1950 : USA (FMECA) 1970 : Europe.
Présentation de la méthode Merise
ISO 9001:2000 Interprétation Article 7 Réalisation du produit
C’est ce que l’on veut obtenir la manière dont on va l’obtenir
19 avril Spécification d’un cadre d’ingénierie pour les réseaux d’organisations Laboratoire de recherche : OMSI à l’EMSE.
Transcription de la présentation:

Modèles génériques d’un processus de développement Mustapha EL FEDDI mustapha.elfeddi@sofrecom.com

Plan des cours Les différents cycles de vie du logiciel Les modèles linéaires Les modèles itératifs Autres modèles Conclusion

Modèles génériques d’un processus de développement Les différents cycles de vie du logiciel

Définition du cycle de vie du logiciel Un cycle de vie d’un logiciel est un ordonnancement des différents étapes du processus de développement Comme pour toutes les fabrications, il est important d’avoir un procédé de fabrication du logiciel bien défini et explicitement décrit et documenté. En GL, il s’agit d’un type de fabrication un peu particulier : en un seul exemplaire, car la production en série est triviale (recopie).

Modèles de cycles de vie Les modèles de cycle de vie du logiciel décrivent à un niveau très abstrait et idéalisé des différentes manières d’organiser la production. Les étapes, leur ordonnancement, et parfois les critères pour passer d’une étape à une autre sont explicités critères de terminaison d’une étape revue de documents critères de choix de l’étape suivante critères de démarrage d’une étape

Modèles génériques Modèles linéaires Modèles itératifs modèle en cascade modèle en V Modèles itératifs modèle de développement incrémental modèle de développement en spirale modèle par prototypage prototypage jetable prototypage évolutif Autres modèles

Modèles génériques d’un processus de développement Modèle linéaires

Modèles linéaires: Modèle en cascade Historiquement, la première tentative pour mettre de la rigueur dans le ‘développement sauvage’ (coder et corriger ou ‘code and fix’) a consisté à distinguer une phase d’analyse avant la phase d’implémentation (séparation des questions). Analyse Implémentation

Modèles linéaires: Modèle en cascade Un plus grand nombre d’étapes étaient nécessaires pour organiser le développement des applications complexes Il faut distinguer: l’analyse du ‘quoi faire ?’ qui doit être validée par rapport aux objectifs poursuivis la conception du ‘comment faire?’ qui doit être vérifiée pour sa cohérence et sa complétude.

Modèles linéaires: Modèle en cascade Le modèle en cascade décrit cette succession d’étapes qui sont représentées ici (Six étapes fondamentales) Analyse des besoins Pas de validation intermédiaire Haut risque : erreurs coûteuses ! Analyse du système Conception Implémentation et tests unitaires Validation et tests d’intégration Peut être viable pour des « petits » projets (Taille + Nbre de participants) Exploitation et maintenance

Modèles linéaires: Modèle en cascade Chaque phase se termine à une date précise par la production de certains documents ou logiciels. Les résultats sont définis sur la base des interactions entre étapes et activités, ils sont soumis à une revue approfondie (on ne passe à la phase suivante que s'ils sont jugés satisfaisants)

Modèles linéaires: Modèle en cascade Certaines phases portent le nom d'une activité signifie que l'activité est essentielle pour cette phase, mais n'impose pas qu'elle n'ait lieu que dans cette étape. D'autres activités interviennent, par exemple le contrôle technique et la gestion de la configuration, tout au long du processus. Le modèle original ne comporte pas de possibilité de retour en arrière. a été rajoutée sur la base qu'une étape ne remet en cause que l'étape précédente, ce qui, dans la pratique, s'avère insuffisant.

Modèles linéaires: Modèle en cascade Même si on l’étend avec des possibilités de retour en arrière, idéalement limitées à la seule phase qui précède celle remise en cause, le développement reste fondamentalement linéaire. Analyse des besoins Analyse du système Conception Implémentation et tests unitaires

Modèles linéaires: Modèle en cascade Ce modèle se fonde sur l’hypothèse souvent irréaliste que l’on peut dès le départ définir complètement et en détail ce qu’on veut réaliser (expressions des besoins). La pratique montre que c’est rarement le cas. Même si elle n’est pas réaliste, cette représentation très simplifiée a permis de définir des cadres conceptuels et terminologiques, largement acceptés et normalisés par plusieurs organismes (ISO, AFNOR, IEEE, DOD pour les applications militaires aux USA, ESA, etc.) Ceci facilite la gestion et le suivi des projets.

Modèles linéaires: Modèle en cascade Étude préliminaire ou étude de faisabilité ou planification : (rapport d’analyse préliminaire ou schéma directeur) définition globale du problème, différentes stratégies possibles avec avantages/inconvénients, ressources, coûts, délais.

Modèles linéaires: Modèle en cascade Analyse des besoins ou analyse préalable : (cahier des charges + plan qualité) qualités fonctionnelles attendues en termes des services offerts qualités non fonctionnelles attendues : efficacité, sûreté, sécurité, facilité d’utilisation, portabilité, etc. qualités attendues du procédé de développement (ex. procédures de contrôle qualité) Le cahier des charges peut inclure une partie destinée aux clients (définition de ce que peuvent attendre les clients) et une partie destinée aux concepteurs (spécification des besoins).

Modèles linéaires: Modèle en cascade Analyse du système : (dossier d’analyse + plan de validation) modélisation du domaine modélisation de l’existant (éventuellement) définition d’un modèle conceptuel (ou spécification conceptuelle) plan de validation

Modèles linéaires: Modèle en cascade Conception : (dossier de conception + plan de test global et par module) proposition de solution au problème spécifié dans l’analyse organisation de l’application en modules et interface des modules (architecture du logiciel) description détaillée des modules avec les algorithmes essentiels (modèle logique) structuration des données

Modèles linéaires: Modèle en cascade Programmation et tests unitaires : (dossiers de programmation et codes sources) traduction dans un langage de programmation tests avec les jeux d’essais par module selon le plan de test

Modèles linéaires: Modèle en cascade Intégration et tests de qualification : composition progressive des modules tests des regroupements de modules test en vraie grandeur du système complet selon le plan de test global (‘alpha testing’)

Modèles linéaires: Modèle en cascade Installation Mise en fonctionnement opérationnel chez les utilisateurs. Parfois restreint dans un premier temps à des utilisateurs sélectionnés (‘beta testing’).

Modèles linéaires: Modèle en cascade Maintenance : maintenance corrective (ou curative) maintenance adaptative maintenance perfective

Modèles linéaires: Modèle en cascade Activités transversales à tout le cycle de vie Spécification Documentation validation et vérification management.

Modèles linéaires: Modèle en cascade Des études ont été menées pour évaluer le coût des différentes étapes du développement Type de système Conception Implémentation Test Gestion 44 28 Scientifique 26 30 Industriel 46 20 34 Mais c’est la maintenance qui coûte le plus cher.

Modèles linéaires: Modèle en V Objectifs Validations intermédiaires pour prévenir les erreurs tardives : meilleure planification et gestion Principes du cycle de vie en V Processus linéaire Validation à chaque étape Préparation des protocoles de validation finaux à chaque étape descendante Validation finale montante et confirmation de la validation descendante

Modèles linéaires: Modèle en V avec toute décomposition doit être décrite la recomposition, la préparation des dernières phases (validation- vérification) est explicite par les premières (construction du logiciel) toute description d'un composant est accompagnée de tests qui permettront de s'assurer qu'il correspond à sa description. permet ainsi d'éviter un écueil bien connu de la spécification : énoncer une propriété qu'il est impossible de vérifier objectivement après la réalisation.

Modèles linéaires: Modèle en V Spécifications Analyse Conception Implémentation Maintenance Expression des besoins Validation fonctionnelle Validation finale validé par besoins Validations des étapes intermédiaires sous forme de documents

Modèles linéaires: Modèle en V On distingue donc deux sortes de dépendances : enchaînement et itération : se déroulent essentiellement de gauche à droite préparation des phases ultérieures Par exemple à l'issue de la conception architecturale le protocole et les jeux de test de l'intégration doivent être complètement décrits.

Modèles linéaires: Modèle en V Conséquences : obligation de concevoir les jeux de test et leurs résultats réflexion et retour sur la description en cours meilleure préparation de la branche droite du V Les activités de chaque phase peuvent être réparties en 5 catégories : assurance qualité production contrôle technique gestion contrôle de qualité

Modèles linéaires: Modèle en V Spécifications Analyse Conception Implémentation Expression des besoins Validation fonctionnelle Validation finale besoins Protocoles de validation définis par l’analyse descendante Processus descendant Validation montante

Modèles linéaires: Modèle en V intérêts Validations intermédiaires bon suivi du projet : avancement éclairé et limitation des risques en cascade d’erreurs favorise la décomposition fonctionnelle de l’activité génération de documents et outils supports Modèle très utilisé et éprouvé

Modèles linéaires: Modèle en V Limitations Un modèle séquentiel (linéaire) manque d’adaptabilité maintenance non intégrée : logiciels à vocation temporaire validations intermédiaires non formelles : aucune garantie sur la non transmission d’erreurs Un modèle adaptée aux problèmes si les besoins sont bien identifiés, l’analyse et la conception sont claires

Modèles linéaires: Modèle en V Améliorations Retours de correction des phases précédentes Fonctionne si corrections limitées casser la linéarité : cycle de vie itératif Spécifications Analyse Conception Implémentation Expression des besoins

Modèles génériques d’un processus de développement Modèle itératifs

Modèles itératifs: Modèle par incrément Face aux dérives bureaucratiques de certains gros développements, et à l’impossibilité de procéder de manière aussi linéaire, le modèle incrémental a été proposé dans les années 80. Incréments délivrés temps

Modèles itératifs: Modèle par incrément Le produit est délivré en plusieurs fois, de manière incrémentale, c’est à dire en le complétant au fur et à mesure et en profitant de l’expérimentation opérationnelle des incréments précédents. Chaque incrément peut donner lieu à un cycle de vie classique plus ou moins complet. Les premiers incréments peuvent être des maquettes (jetables s’il s’agit juste de comprendre les besoins des utilisateurs) ou des prototypes (réutilisables pour passer au prochain incrément en les complétant et/ou en optimisant leur implantation). Le risque de cette approche est celui de la remise en cause du noyau.

Modèles itératifs: Modèle par incrément Différents des autres modèles où un logiciel est décomposé en composants développés séparément et intégrés à la fin du processus Dans les modèles par incrément un seul ensemble de composants est développé à la fois : des incréments viennent s'intégrer à un noyau de logiciel développé au préalable chaque incrément est développé selon l'un des modèles précédents

Modèles itératifs: Modèle par incrément Intérêts chaque développement est moins complexe les intégrations sont progressives possibilité de livraisons et de mises en service après chaque incrément meilleur lissage du temps et de l'effort de développement à cause de la possibilité de recouvrement des différentes phases

Modèles itératifs: Modèle par incrément Risques mettre en cause le noyau ou les incréments précédents ne pas pouvoir intégrer de nouveaux incréments Recommandations Le noyau, les incréments ainsi que leurs interactions doivent donc être faites globalement, au début du projet Les incréments doivent être aussi indépendants que possibles, fonctionnellement mais aussi sur le plan du calendrier du développement.

Modèles itératifs: Modèle par incrément Modèle de développement incrémental Identifie les incréments Produit les incréments Evalue les Spécifie et implémente

Modèles itératifs: Modèle en spirale Proposé par B. Boëhm en 1988, ce modèle général met l'accent sur l’évaluation des risques A chaque étape, après avoir défini les objectifs et les alternatives, celles-ci sont évaluées par différentes techniques (prototypage, simulation, ...) L’étape est réalisée et la suite est planifiée Le nombre de cycles est variable selon que le développement est classique ou incrémental

Modèles itératifs: Modèle en spirale Analyse Conception Spécifications V1.0 V1.1 V1.2 V1.3 Implémentation Validation Tests

Modèles itératifs: Modèle en spirale Les principaux risques et leurs remèdes, tels que définis par Boëhm Risque Remède Défaillance de personnel Embauches de haut niveau, formation mutuelle, leaders, adéquation profil/fonction, … Calendrier et budgets irréalistes Estimation détaillée, développement incrémental, réutilisation, élagage des besoins, … Développement de fonctions inappropriées Revues d’utilisateurs, manuel d’utilisation précoce, ... Développement d’interfaces utilisateurs inappropriées Maquettage, analyse des tâches, … Volatilité des besoins Développement incrémental de la partie la plus stable d’abord, masquage d’information, ... Problèmes de performances Simulations, modélisations, essais et mesures, maquettage, … Exigences démesurées par rapport à la technologie Analyses techniques de faisabilité, maquettage, ... Tâches ou composants externes défaillants Audit des sous-traitants, contrats, revues, analyse de compatibilité, essais et mesures, ...

Modèles itératifs: Prototypage Idée : fournir rapidement un prototype exécutable pour permettre une validation concrète (ici expérimentale) et non sur papier (document) Progressions par incréments successifs de versions successives du prototype : itérations Certains prototypes peuvent être « validés » par le client Ne dispense pas de fournir des documents intermédiaires

Modèles itératifs: Prototypage jetable Spécification schématique Codage du prototype Evaluation du prototype Modèle gérable d’un point de vue changement des spécifications Les spécifications sont générées par prototypage Spécification du système

Modèles itératifs: Prototypage évolutif Spécification schématique Codage du prototype Evaluation du prototype Acceptation du système Modèle difficile à gérer

Modèles itératifs: Intérêts Validation plus concrète (pas sur document) Correction à chaque itération : risques limités et flexibilité modification des spécifications maintenance Client impliqué dès le début : Besoins du client apparaissent progressivement (et pas la veille de la livraison) Meilleure Planification une nouvelle itération

Modèles itératifs: Intérêts Processus itératif Adapté à une démarche incrémentale Modèle de programmation orientée objet Nécessitant une planification rigoureuse et ne supportant pas l’improvisation Planification supportant abstraction et raffinements successifs Ayant une portée générale

Modèles génériques d’un processus de développement Autres modèles

Autres modèles: Transformationnels Spécification formelle Transformation correcte Spécification formelle concrète Modèle gérable Difficile à mettre en œuvre : Passage du formel au concret => nécessite de connaissances avancées (techniques et formelles) Génération de code Programme correcte

Autres modèles: Hybrides Principe : Système complexe = composition de sous-systèmes Utilisation d’un processus de développement adapté à chaque sous-systèmes Utilisation du modèle à chute d’eau pour les sous-systèmes bien connus Utilisation du modèle de prototypage évolutif pour les sous-systèmes « délicats »

Conclusion Il n’y a pas de modèle idéal car tout dépend des circonstances le modèle en cascade ou en V est risqué pour les développements innovants car les spécifications et la conception risquent d’être inadéquats et souvent remis en cause. Le modèle incrémental est risqué car il ne donne pas beaucoup de visibilité sur le processus complet. Le modèle en spirale est un canevas plus général qui inclut l’évaluation des risques. Souvent, un même projet peut mêler différentes approches, comme le prototypage pour les sous-systèmes à haut risque et la cascade pour les sous systèmes bien connus et à faible risque.

Questions Citer les différentes étapes du processus de développement d’un logiciel Donner une définition d’un Cycle de vie Citer quelques exemples de cycles de vie d’un logiciel