Processus de Développement Logiciel



Documents pareils
Processus de Développement Logiciel

Cours Gestion de projet

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

Méthodes de développement

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Méthodes agiles. CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif.

25/12/2012

Les méthodes itératives. Hugues MEUNIER

Gestion Projet. Cours 3. Le cycle de vie

Conduite de projets SI. Les méthodes «Agiles» N QUAL/1995/3660e ORESYS

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Génie logiciel (Un aperçu)

Gestion de projet Agile. STS IRIS Module «Gérer et organiser un projet informatique»

Méthodologies Orientées-Objet!

Méthodes Agiles et gestion de projets

Introduction au génie logiciel

Conduite de projets informatiques Développement, analyse et pilotage (2ième édition)

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Chapitre I : le langage UML et le processus unifié

CINEMATIQUE DE FICHIERS

But de cette introduction à la gestion de projets :

Formation : Modélisation avec UML 2.0 et Mise en pratique

Outil de gestion et de suivi des projets

XP : plus qu'agile. Extreme Programming v2 et Développement Responsable. Thierry Cros

Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21

CHAPITRE 3 : LES METHODES AGILES?

2. Activités et Modèles de développement en Génie Logiciel

Les méthodes Agiles Introduction. Intervenant : Tremeur Balbous tremeur@agilegardener.com 04/09/2008

Topologie du web - Valentin Bourgoin - Méthodes agiles & SCRUM

Introduction Les processus traditionnels extreme Programming Conclusion. extreme Programming. vers plus d agilité. F. Miller francois.miller@inpg.

Méthodes de développement. Analyse des exigences (spécification)

Séance 1 Méthodologies du génie logiciel

Nom-Projet MODELE PLAN DE MANAGEMENT DE PROJET

UML est-il soluble dans les méthodes agiles?

Agile 360 Product Owner Scrum Master

LES INTERFACES HOMME-MACHINE

Développement spécifique d'un système d information

Processus d Informatisation

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

Analyse,, Conception des Systèmes Informatiques

Règles d engagement. Présentation Diapositives Bibliographie Questions Les vertus de la marche

IFT2255 : Génie logiciel

Génie logiciel pour le commerce électronique Hiver 2003 Prof.: Julie Vachon

Développement itératif, évolutif et agile

NOUVEAUTES de Microsoft Dynamics CRM 2011 REF FR 80342A

Chapitre 1 : Introduction aux bases de données

Méthode Agile de 3 ème génération J-P Vickoff

Le génie logiciel. maintenance de logiciels.

1. Considérations sur le développement rapide d'application et les méthodes agiles

Refonte front-office / back-office - Architecture & Conception -

BOOK REFERENCES ERGONOMIQUES Gfi Informatique

Conduite et Gestion de Projet - Cahier des charges

2.DIFFERENTS MODELES DE CYCLE DE VIE

Soyez agile. Dans l industrie du logiciel, la. De plus chaque projet informatique

Compte-rendu de projet de Système de gestion de base de données

MODALITES DE SUIVI DU PROJET ANNUEL DU MASTER 2 SOLUTIONS INFORMATIQUES LIBRES

Concepteur Développeur Informatique

Cours Composant 2. Qualité logicielle et spécications algébriques

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Le management de projet

Jean-Pierre Vickoff J-P Vickoff

Qualité et Test des Logiciels. Le génie logiciel. Moez Krichen.

Deuxième partie. Approche globale d'implémentation d'un projet PLM

Eclipse Process Framework et Telelogic Harmony/ITSW

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

ERP5. Gestion des Services Techniques des Collectivités Locales

Service de réplication des données HP pour la gamme de disques Continuous Access P9000 XP

Scrum Une méthode agile pour vos projets

GL Processus de développement Cycles de vie

Besoins utilisateurs. Quelle démarche pour passer des besoins au code? Code. chapitre1 UNIFIED MODELING LANGUAGE. package LogiqueMetier.

Méthodologies de développement de logiciels de gestion

backlog du produit Product Owner

Enquête 2014 de rémunération globale sur les emplois en TIC

Sommaire. Conduite de projet Méthode d analyse et de conception. Processus unifié. Objectifs d un processus de développement

Feature Team Primer. par Craig Larman et Bas Vodde. Version 1.2

Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles

CQP Développeur Nouvelles Technologies (DNT)

Université de Bangui. Modélisons en UML

Catalogue des Formations

Qu'est-ce que le BPM?

OMGL6 Dossier de Spécifications

Introduction IV. Comparaison MERISE/UML/SCRUM Approche fonctionnelle Schéma Entité/Association Méthodologie...

Extrait du site de l'oseo (ex.anvar) Reste à déterminer les points incontournables

What s New. HOPEX V1 Release 2. MEGA International Avril V1R2 What's New 1

Le Guide Pratique des Processus Métiers

Année : Team-War Jaafar AMRANI-MESBAHI Fabien GARCIA Abdelali NAIT BELKACEM Rahma NAKARA Philippe NGUYEN

Conception, architecture et urbanisation des systèmes d information

Rational Unified Process

MEGA Application Portfolio Management. Guide d utilisation

Télécom Nancy Année

INF2015 Développement de logiciels dans un environnement Agile Examen final hiver 2015

Développement d'un projet informatique

Plan. 1 Cycles de développement. 2 Méthodes agiles, principes généraux. 3 Comment se passe un Sprint?

Programmation Agile Mise en oeuvre via Scrum et l'extreme Programming (XP)

Mise en place d'une solution libre de gestion d'entreprise. Maurice MORETTI Directeur associé

Jean-Pierre Vickoff

MEGA ITSM Accelerator. Guide de Démarrage

ITIL V3. Transition des services : Principes et politiques

Les diagrammes de modélisation

Rectorat de Grenoble

Transcription:

Processus de Développement Logiciel Cours M14 Pierre Gérard Université de Paris 13 IUT Villetaneuse Formation Continue Licence Pro SIL LA TE X Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 1 / 86

Plan Des besoins au code avec UML 1 Des besoins au code avec UML 2 Rational Unied Process 3 extreme programming Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 2 / 86

Des besoins au code avec UML Nécessité d'une méthode Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 3 / 86

Des besoins au code avec UML Processus de développement Ensemble d'étapes partiellement ordonnées, qui concourent à l'obtention d'un système logiciel ou à l'évolution d'un système existant. Objectif : produire des logiciels De qualité (qui répondent aux besoins de leurs utilisateurs) Dans des temps et des coûts prévisibles A chaque étape, on produit Des modèles De la documentation Du code Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 4 / 86

Des besoins au code avec UML Méthode = Démarche + Langage La méthode MERISE fournit Un langage de modélisation graphique (MCD, MPD, MOT, MCT...) ET Une démarche à adopter pour développent un logiciel UML n'est qu'un langage Spécie comment décrire des cas d'utilisation, des classes, des interactions... Ne préjuge pas de la démarche employée Méthodes s'appuyant sur UML RUP (Rational Unied Process) - par les auteurs d'uml XP (extreme Programming) - pouvant s'appuyer sur UML Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 5 / 86

Des besoins au code avec UML Méthode minimale Objectif Résoudre 80% des problèmes avec 20% d'uml Proposition d'une méthode archi-minimale Vraiment très très nettement moins complexe que RUP Adaptée pour des projets modestes Minimum vital pour qui prétend utiliser un peu UML Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 6 / 86

Des besoins au code avec UML Méthode minimale Objectif Résoudre 80% des problèmes avec 20% d'uml Inspirée de UML 2 - Modéliser une application web Pascal Roques Editions Eyrolles (2006) Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 6 / 86

Des besoins au code avec UML Méthode minimale Objectif Résoudre 80% des problèmes avec 20% d'uml Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 6 / 86

Des besoins au code avec UML Cas d'utilisation Comment aboutir au diagramme de cas d'utilisation? 1 Identier les limites du système 2 Identier les acteurs 3 Identier les cas d'utilisation 4 Structurer les cas d'utilisation en packages 5 Ajouter les relations entre cas d'utilisation 6 Classer les cas d'utilisation Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 7 / 86

Des besoins au code avec UML Exemple de classement Cas d'utilisation Priorité Risque Rechercher des ouvrages Haute Moyen Gérer son panier Haute Bas Eectuer une commande Moyenne Haut Consulter ses commandes en cours Basse Moyen Consulter l'aide en ligne Basse Bas Maintenir le catalogue Haute Haut Maintenir les informations éditoriales Moyenne Bas Maintenir le site Moyenne Bas Un tel classement permet de déterminer les cas d'utilisation centraux en fonction de leur priorité fonctionnelle du risque qu'il font courrir au projet dans son ensemble Les fonctionnalités des cas les plus centraux seront développées en premier lieu Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 8 / 86

Des besoins au code avec UML Modèle du domaine Le modèle du domaine est constitué d'un ensemble de classes dans lesquelles aucune opération n'est dénie Le modèle du domaine décrit les concepts invariants du domaine d'application Exemple : Pour un logiciel de gestions de factures, on aura des classes comme Produit, Client, Facture... Peu importe que le logiciel soit en ligne ou non Peu importe qu'on utilise php ou ajax Etapes de la démarche : 1 Identier les concepts du domaine 2 Ajouter les associations et les attributs 3 Généraliser les concepts 4 Structurer en packages : structuration selon les principes de cohérence et d'indépendance. Les concepts du domaine peuvent être identiés directement à partir de la connaissance du domaine ou par interview des experts métier. Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 9 / 86

Des besoins au code avec UML Exemple de modèle du domaine Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 10 / 86

Des besoins au code avec UML Structuration en packages Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 11 / 86

Des besoins au code avec UML Dénition synthétique des packages Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 12 / 86

Des besoins au code avec UML Diagramme de séquence système Un diagramme de séquence système est une formalisation des descriptions textuelles des cas d'utilisation Un diagramme diérent est produit pour chaque cas d'utilisation. Construire un DSS implique la Construction des diagrammes de séquence système Mise à jour des cas d'utilisation (on peut réviser le diagramme de cas à la lumière des réexions que nous inspirent la production des DSS) Spécication des opérations système Le système est considéré comme un tout On s'intéresse à ses interactions avec les acteurs Les diagrammes de séquence système sont parfois très seront enrichis par la suite simples mais ils Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 13 / 86

Des besoins au code avec UML Exemple de diagramme de séquence système Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 14 / 86

Des besoins au code avec UML Opérations système Les opérations système sont des opérations qui devront être réalisées par l'une ou l'autre des classes du système Elles correspondent à tous les messages qui viennent des acteurs vers le système dans les diérents DSS Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 15 / 86

Des besoins au code avec UML Classes d'analyse Réalisation des cas d'utilisation par les classes d'analyse Typologie des classes d'analyse Les classes dialogue sont celles qui permettent les interactions entre les utilisateurs et l'application. Les classes contrôle contiennent la dynamique de l'application Elles font le lien entre les classes dialogue et les classes métier. Elles permettent de contrôler la cinématique de l'application, l'ordre dans lequel les choses doivent se dérouler. Les classes métier ou entités représentent les objets métier. Elles proviennent directement du modèle du domaine (mais peuvent être complétées en fonction des cas d'utilisation). Les classes d'analyse sont les classes métier auxquelles on adjoint toutes les classes sui permettront au système de fonctionner : dialogues et contrôles Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 16 / 86

Des besoins au code avec UML Diagramme de classes participantes Le diagramme des classes participantes est un diagramme de classes décrivant les classes d'analyse et dans lequel on ajoute les acteurs A ce point du développement, seules les classes dialogue ont des opérations (actions de l'utilisateur sur l'ihm) Ces opérations correspondent aux opérations système, c'est à dire aux messages entrants que seules les classes de dialogues sont habilitées à intercepter. Associations : Les dialogues ne peuvent être reliés qu'aux contrôles ou à d'autres dialogues (en général, associations unidirectionnelles) Les classes métier ne peuvent être reliées qu'aux contrôles ou à d'autres classes métier. Les contrôles ont accès à tous les types de classes. Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 17 / 86

Des besoins au code avec UML Exemples de classes participantes Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 18 / 86

Des besoins au code avec UML Diagramme d'activités de navigation Modélisation de l'interface Homme-Machine (IHM) avec des diagrammes d'activité Les activités peuvent représenter des écrans, des fenêtres de l'application, des pages php... Exploitation des maquettes de manière à représenter l'ensemble des chemins possibles entre les principaux écrans proposés à l'utilisateur. Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 19 / 86

Des besoins au code avec UML Exemple de diagramme d'activités de navigation Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 20 / 86

Des besoins au code avec UML Diagrammes d'interaction Dans les diagrammes de séquence système, le système était vu comme une boîte noire Mais on sait maintenant de quels types d'objets est composé le système (diag. de classes participantes) Le système n'est plus une boîte noire. Chaque diagramme de séquence système donne lieu à un diagramme d'interaction Les diagrammes d'interaction montrent les interactions du système avec l'extérieur et les interactions internes qu'elles provoquent Les DSS sont repris mais l'objet système est éclaté pour donner le détail des classes d'analyse Les lignes de vie correspondent aux classes participantes Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 21 / 86

Des besoins au code avec UML Des séquences système aux interactions internes Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 22 / 86

Des besoins au code avec UML Diagramme des classes de conception Enrichissement du diagramme de classes pour Prendre en compte l'architecture logicielle hôte Modéliser les opération privées des diérentes classes Finaliser le modèle des classes avant l'implémentation On peut utiliser des diagrammes de séquence pour détailler : Les interactions entre classes Cartains algorithmes Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 23 / 86

Plan Rational Unied Process 1 Des besoins au code avec UML 2 Rational Unied Process 3 extreme programming Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 24 / 86

Rational Unied Process Modèles de cycles de vie linéaire Les phases du développement se suivent dans l'ordre et sans retour en arrière Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 25 / 86

Rational Unied Process Modèles de cycles de vie linéaire Les phases du développement se suivent dans l'ordre et sans retour en arrière Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 25 / 86

Rational Unied Process Problèmes des cycles linéaires Risques élevés et non contrôlés Identication tardive des problèmes Preuve tardive de bon fonctionnement Eet tunnel Améliorations : construction itérative du système Chaque itération produit un nouvel incrément Chaque nouvel incrément a pour objectif la maîtrise d'une partie des risques et apporte une preuve tangible de faisabilité ou d'adéquation Enrichissement d'une série de prototypes Les versions livrées correspondent à des étapes de la chaîne des prototypes Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 26 / 86

Rational Unied Process Production itérative d'incréments Itérations 0 A chaque itération, on refait 1 Spécication 2 Conception 3 Implémentation 4 Tests Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 27 / 86

Rational Unied Process Production itérative d'incréments Itérations 1 A chaque itération, on refait 1 Spécication 2 Conception 3 Implémentation 4 Tests Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 27 / 86

Rational Unied Process Production itérative d'incréments Itérations 2 A chaque itération, on refait 1 Spécication 2 Conception 3 Implémentation 4 Tests Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 27 / 86

Rational Unied Process Production itérative d'incréments Itérations 3 A chaque itération, on refait 1 Spécication 2 Conception 3 Implémentation 4 Tests Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 27 / 86

Rational Unied Process Production itérative d'incréments Itérations 4 A chaque itération, on refait 1 Spécication 2 Conception 3 Implémentation 4 Tests Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 27 / 86

Rational Unied Process Production itérative d'incréments Itérations 5 A chaque itération, on refait 1 Spécication 2 Conception 3 Implémentation 4 Tests Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 27 / 86

Rational Unied Process Production itérative d'incréments Itérations 6 A chaque itération, on refait 1 Spécication 2 Conception 3 Implémentation 4 Tests Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 27 / 86

Rational Unied Process Production itérative d'incréments Itérations 7 A chaque itération, on refait 1 Spécication 2 Conception 3 Implémentation 4 Tests Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 27 / 86

Rational Unied Process Elimination des risques à chaque itération On peut voir le développement d'un logiciel comme un processus graduel d'élimination de risques C'est pendant Planication et éxécution qu'on répète Spécication Conception Implémentation Tests Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 28 / 86

Rational Unied Process Rational Unied Process RUP est une démarche de développement qui est souvent utilisé conjointement au langage UML Rational Unied Process est Piloté par les cas d'utilisation Centré sur l'architecture Itératif et incrémental Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 29 / 86

Rational Unied Process RUP est itératif et incrémental Chaque itération prend en compte un certain nombre de cas d'utilisation Les risques majeurs sont traités en priorité Chaque itération donne lieu à un incrément et produit une nouvelle version exécutable Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 30 / 86

Rational Unied Process RUP est piloté par les cas d'utilisation La principale qualité d'un logiciel est son utilité Adéquation du service rendu par le logiciel avec les besoins des utilisateurs Le développement d'un logiciel doit être centré sur l'utilisateur Les cas d'utilisation permettent d'exprimer ces besoins Détection et description des besoins fonctionnels Organisation des besoins fonctionnels Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 31 / 86

Rational Unied Process RUP est centré sur l'architecture Modélisation de diérentes pespectives indépendantes et complémentaires Architecture en couches et vues de Krutchen Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 32 / 86

Rational Unied Process Vues du système Vue cas d'utilisation Description du système comme un ensemble de transactions du point de vue de l'utilisateur Vue logique Créée lors de la phase d'élaboration et ranée lors de la phase de construction Utilisation de diagrammes de classes, de séquences... Vue composants Description de l'architecture logicielle Vue déploiement Description de l'architecture matérielle du système Vue implémentation Description des algorithmes, code source Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 33 / 86

Rational Unied Process Organisation en phases du développement Initialisation Dénition du problème Elaboration Planication des activités, aectation des ressources, analyse Construction Développement du logiciel par incréments successifs Transition Recettage et déploiement Les phases du développement sont les grandes étapes du développement du logiciel Le projet commence en phase d'initialisation et termine en phase de transition Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 34 / 86

Rational Unied Process Phase d'initialisation : Objectifs Dénition du cadre du projet, son concept, et inventaire du contenu Elaboration des cas d'utilisation critiques ayant le plus d'inuence sur l'architecture et la conception Réalisation d'un ou de plusieurs prototypes démontrant les fonctionnalités décrites par les cas d'utilisation principaux Estimation détaillée de la charge de travail, du coût et du planning général ainsi que de la phase suivante d'élaboration Estimation des risques Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 35 / 86

Rational Unied Process Phase d'initialisation : Activités Formulation du cadre du projet, des besoins, des contraintes et des critères d'acceptation Planication et préparation de la justication économique du projet et évaluation des alternatives en termes de gestion des risques, ressources, planication Synthèse des architectures candidates, évaluation des coûts Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 36 / 86

Rational Unied Process Phase d'initialisation : Livrables Un document de vision présentant les besoins de base, les contraintes et fonctionnalités principales Une première version du modèle de cas d'utilisation Un glossaire de projet Un document de justication économique incluant le contexte général de réalisation, les facteurs de succès et la prévision nancière Une évaluation des risques Un plan de projet présentant phases et itérations Un ou plusieurs prototypes Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 37 / 86

Rational Unied Process Phase d'initialisation : Critères d'évaluation Un consensus sur la planication, les coûts la dénition de l'ensemble des projets des parties concernées La compréhension commune des besoins Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 38 / 86

Rational Unied Process Phase d'élaboration : objectifs Dénir, valider et arrêter l'architecture Démontrer l'ecacité de cette architecture à répondre à notre besoin Planier la phase de construction Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 39 / 86

Rational Unied Process Phase d'élaboration : activités Elaboration de la vision générale du système, les cas d'utilisation principaux sont compris et validés Le processus de projet, l'infrastructure, les outils et l'environnement de développement sont établis et mis en place Elaboration de l'architecture et sélection des composants Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 40 / 86

Rational Unied Process Phase d'élaboration : livrables Le modèle de cas d'utilisation est produit au moins à 80 % La liste des exigences et contraintes non fonctionnelles identiées Une description de l'architecture Un exécutable permettant de valider l'architecture du logiciel à travers certaines fonctionnalités complexes La liste des risques revue et la mise à jour de la justication économique du projet Le plan de réalisation, y compris un plan de développement présentant les phases, les itérations et les critères d'évaluation Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 41 / 86

Rational Unied Process Phase d'élaboration : Critères d'évaluation La stabilité de la vision du produit nal La stabilité de l'architecture La prise en charge des risques principaux est adressée par le(s) prototype(s) La dénition et le détail du plan de projet pour la phase de construction Un consensus, par toutes les parties prenantes, sur la réactualisation de la planication, des coûts et de la dénition de projet Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 42 / 86

Rational Unied Process Phase de construction : objectifs La minimisation des coûts de développement par l'optimisation des ressources la minimisation des travaux non nécessaires Le maintien de la qualité Réalisation des versions exécutables Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 43 / 86

Rational Unied Process Phase de construction : Activités La gestion et le contrôle des ressources et l'optimisation du processus de projet Evaluation des versions produites en regard des critères d'acceptation dénis Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 44 / 86

Rational Unied Process Phase de construction : Livrables Les versions exécutables du logiciel correspondant à l'enrichissement itération par itération des fonctionnalités Les manuels d'utilisation réalisés en parallèle à la livraison incrémentale des exécutables Une description des versions produites Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 45 / 86

Rational Unied Process Phase de construction : Critères d'évaluation La stabilité et la qualité des exécutables La préparation des parties prenantes La situation nancière du projet en regard du budget initial Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 46 / 86

Rational Unied Process Phase de transition : Objectifs Le déploiement du logiciel dans l'environnement d'exploitation des utilisateurs La prise en charge des problèmes liés à la transition Atteindre un niveau de stabilité tel que l'utilisateur est indépendant Atteindre un niveau de stabilité et qualité tel que les parties prenantes considèrent le projet comme terminé Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 47 / 86

Rational Unied Process Phase de transition : Activités Activités de packaging du logiciel pour le mettre à disposition des utilisateurs et de l'équipe d'exploitation Correction des erreurs résiduelles et amélioration de la performance et du champ d'utilisation Evaluation du produit nal en regard des critères d'acceptation dénis Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 48 / 86

Rational Unied Process Phase de transition : Livrables La version nale du logiciel Les manuels d'utilisation Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 49 / 86

Rational Unied Process Phase de transition : Critères d'évaluation La satisfaction des utilisateurs La situation nancière du projet en regard du budget initial Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 50 / 86

Rational Unied Process Organisation en activités de développement Chaque phase comprend plusieurs itérations Pour chacune des itérations, on se livre à plusieurs activités Modélisation métier Expression des besoins Analyse Conception Implémentation Test Dépoloiement Les activités sont des étapes dans le développement d'un logiciel, mais à un niveau de granularité beaucoup plus n que les phases Chaque activité est répétée autant de fois qu'il y a d'itérations Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 51 / 86

Rational Unied Process Modélisation métier Objectif : Mieux comprendre la structure et la dynamique de l'organisation. Proposer la meilleure solution dans le contexte de l'organisation cliente. Réalisation d'un glossaire des termes métiers. Cartographie des processus métier de l'organisation cliente. Activité coûteuse mais qui permet d'accélérer la compréhension d'un problème Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 52 / 86

Rational Unied Process Expression des besoins Objectif : Cibler les besoins des utilisateurs et du clients grâce à une série d'interviews. L'ensemble des parties prenantes du projet, maîtrise d'oeuvre et maîtrise d'ouvrage, est acteur de cette activité. L'activité de recueil et d'expression des besoins débouche sur ce que doit faire le système (question QUOI? ) Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 53 / 86

Rational Unied Process Expression des besoins Utilisation des cas d'utilisation pour Schématiser les besoins Structurer les documents de spécications fonctionnelles. Les cas d'utilisation sont décomposés en scénarios d'usage du système, dans lesquels l'utilisateur raconte ce qu'il fait grâce au système et ses interactions avec le système. Un maquettage est réalisable pour mieux immerger l'utilisateur dans le futur système. Une fois posées les limites fonctionnelles, le projet est planié et une prévision des coûts est réalisée. Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 53 / 86

Rational Unied Process Analyse Objectif : Transformer les besoins utilisateurs en modèles UML Analyse objet servant de base à une réexion sur les mécanismes internes du système Principaux livrables Modèles d'analyse, neutre vis à vis d'une technologie. Livre une spécication plus précise des besoins Peut envisagé comme une première ébauche du modèle de conception Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 54 / 86

Rational Unied Process Conception Objectif : Modéliser comment le système va fonctionner Exigences non fonctionnelles Choix technologiques. Le système est analysé et on produit Une proposition d'architecture. Un découpage en composants. Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 55 / 86

Rational Unied Process Impémentation Objectif : Implémenter le système par composants. Le système est développé par morceaux dépendant les uns des autres. Optimisation de l'utilisation des ressources selon leurs expertises. Les découpages fonctionnel et en couches sont indispensable pour cette activité. Il est tout à fait envisageable de retoucher les modèles d'analyse et de conception à ce stade. Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 56 / 86

Rational Unied Process Test Objectif : Vérier des résultats de l'implémentation en testant la construction. Tests unitaires : tests composants par composants Tests d'intégration : tests de l'interaction de composants préalablement testés individuellement Méthode : Planication pour chaque itération Implémentation des tests en créant des cas de tests Exécuter les tests Prendre en compte le résultat de chacun. Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 57 / 86

Rational Unied Process Déploiement Objectif : Déployer les développements une fois réalisés. Peut être réalisé très tôt dans le processus dans une sousactivité de prototypage dont l'objectif est de valider l'architecture physique les choix technologiques. Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 58 / 86

Rational Unied Process Importance des activités dans chaque phase Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 59 / 86

Rational Unied Process Principaux diagrammes UML par activité Expression des besoins et modélisation métier Analyse Modèles métier, domaine, cas d'utilisation Diagramme de séquences Diagramme d'activité Modèles métier, cas d'utilisation Diagramme des classes, de séquences et de déploiement Conception Diagramme des classes, de séquences Diagramme état/transition Diagramme d'activité Diagramme de déploiement et de composant Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 60 / 86

Rational Unied Process 2TUP, une variante du Unied Process 2TUP, avec un processus de développement en Y, développé par Valtech UML 2.0, en action : De l'analyse des besoins à la conception J2EE Pascal Roques, Franck Vallée Editions Eyrolles (2004) Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 61 / 86

Plan extreme programming 1 Des besoins au code avec UML 2 Rational Unied Process 3 extreme programming Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 62 / 86

extreme programming Méthodes agiles Quelles activités pouvons nous abandonner tout en produisant des logiciels de qualité? Comment mieux travailler avec le client pour nous focaliser sur ses besoins les plus prioritaires et être aussi réactifs que possible? Filiation avec le RAD Exemples de méthodes agiles XP (extreme Programming), DSDM (Dynamic Software Development Method), ASD (Adaptative Software Development), CCM (Crystal Clear Methodologies), SCRUM, FDD (Feature Driven Development) Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 63 / 86

extreme programming Priorités des méthodes agiles Priorité aux personnes et aux interactions sur les procédures de les outils Priorité aux applications fonctionnelles sur une documentation pléthorique Priorité à la collaboration avec le client sur la négociation de contrat Priorité à l'acceptation du changement sur la planication Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 64 / 86

extreme programming extreme Programming extreme Programming, une méthode basée sur des pratiques qui sont autant de boutons poussés au maximum Méthode qui peut sembler naturelle mais concrètement dicile à appliquer et à maîtriser Réclame beaucoup de discipline et de communication (contrairement à la première impression qui peut faire penser à une ébullition de cerveaux individuels). Aller vite mais sans perdre de vue la rigueur du codage et les fonctions nales de l'application. Force de XP : sa simplicité et le fait qu'on va droit à l'essentiel, selon un rythme qui doit rester constant. Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 65 / 86

extreme programming Valeurs d'xp Communication XP favorise la communication directe, plutôt que le cloisonnement des activités et les échanges de documents formels. Les développeurs travaillent directement avec la maîtrise d'ouvrage Feedback Les pratiques XP sont conçues pour donner un maximum de feedback sur le déroulement du projet an de corriger la trajectoire au plus tôt. Simplicité : Du processus Du code Courage : d'honorer les autres valeurs de maintenir une communication franche et ouverte d'accepter et de traiter de front les mauvaises nouvelles. Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 66 / 86

extreme programming Pratiques d'xp XP est fondé sur des valeurs, mais surtout sur 13 pratiques réparties en 3 catégories Gestion de projets Programmation Collaboration Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 67 / 86

extreme programming Pratiques de gestion de projets Livraisons fréquentes L'équipe vise la mise en production rapide d'une version minimale du logiciel, puis elle fournit ensuite régulièrement de nouvelles livraisons en tenant compte des retours du client. Planication itérative Un plan de développement est préparé au début du projet, puis il est revu et remanié tout au long du développement pour tenir compte de l'expérience acquise par le client et l'équipe de développement. Client sur site Le client est intégré à l'équipe de développement pour répondre aux questions des développeurs et dénir les tests fonctionnels. Rythme durable L'équipe adopte un rythme de travail qui lui permet de fournir un travail de qualité tout au long du projet. Jamais plus de 40h de travail par semaine (un développeur fatigué développe mal) Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 68 / 86

extreme programming Pratiques de programmation Conception simple On ne développe rien qui ne soit utile tout de suite. Remaniement Le code est en permanence réorganisé pour rester aussi clair et simple que possible. Tests unitaires Les développeurs mettent en place une batterie de tests de nonrégression qui leur permettent de faire des modications sans crainte. Tests de recette Les testeurs mettent en place des tests automatiques qui vérient que le logiciel répond aux exigences du client. Ces tests permettent des recettes automatiques du logiciel. Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 69 / 86

extreme programming Pratiques de collaboration Responsabilité collective du code Chaque développeur est susceptible de travailler sur n'importe quelle partie de l'application. Programmation en binômes Les développeurs travaillent toujours en binômes, ces binômes étant renouvelés fréquemment. Règles de codage Les développeurs se plient à des règles de codage strictes dénies par l'équipe elle-même. Métaphore Les développeurs s'appuient sur une description commune du design. Intégration continue L'intégration des nouveaux développements est faite chaque jour. Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 70 / 86

Cycle de vie XP extreme programming Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 71 / 86

extreme programming Exploration Les développeurs se penchent sur des questions techniques Explorer les diérentes possibilités d'architecture pour le système Etudier par exemple les limites au niveau des performances présentées par chacune des solutions possibles Le client s'habitue à exprimer ses besoins sous forme de user strories (proches de diagrammes de cas illustrés par des diagrammes de séquences) Les développeurs estiment les temps de développement Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 72 / 86

extreme programming Planning Planning de la première release : Uniquement les fonctionnalités essentielles Première release à enrichir par la suite Durée du planning : 1 ou 2 jours Première version (release) au bout de 2 à 6 mois Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 73 / 86

extreme programming Itérations jusqu'à la première release Développement de la première version de l'application Itérations de une à quatre semaines Chaque itération produit un sous ensemble des fonctionnalités principales Le produit de chaque itération subit des tests fonctionnels Itérations courtes pour identier très tôt des déviation par rapport au planning Brèves réunions quotidiennes réunissant toute l'équipe, pour mettre chacun au courant de l'avancement du projet Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 74 / 86

extreme programming Mise en production La mise en production produit un logiciel Orant toutes les fonctionnalités indispensables Parfaitement fonctionnel Mis à disposition des utilisateurs Itérations très courtes Tests constants en parallèle du développement Les développeurs procèdent à des réglages anés pour améliorer les performances du logiciel Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 75 / 86

extreme programming Maintenance Continuer à faire fonctionner le système Adjonction de nouvelles fonctionnalités secondaires Pour les fonctionnalités secondaires, on recommence par une rapide exploration L'ajout de fonctionnalités secondaires donne lieu à de nouvelles releases Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 76 / 86

extreme programming Mort Quand le client ne parvient plus à spécier de nouveaux besoins, le projet est dit mort Soit que tous les besoins possibles sont remplis Soit que le système ne supporte plus de nouvelles modications en restsant rentable Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 77 / 86

extreme programming Equipe XP Pour un travil en équipe, on distingue 6 rôles principaux au sein d'une équipe XP Développeur Client Testeur Tracker Manager Coach Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 78 / 86

Développeur extreme programming Conception et programmation, même combat! Participe aux séances de planication, évalue les tâches et leur diculté Dénition des test unitaires Implémentation des fonctionnalités et des tests unitaires Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 79 / 86

Client extreme programming Écrit, explique et maîtrise les scénarios Spécie les tests fonctionnels de recette Dénit les priorités Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 80 / 86

Testeur extreme programming Écriture des tests de recette automatiques pour valider les scénarios clients Peut inuer sur les choix du clients en fonction de la testatibilité des scénarios Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 81 / 86

Tracker extreme programming Suivre le planning pour chaque itération. Comprendre les estimations produites par les développeurs concernant leur charges Interagir avec les développeurs pour le respect du planning de l'itération courante Détection des éventuels retards et rectications si besoin Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 82 / 86

extreme programming Manager Supérieur hiérarchique des développeurs Responsable du projet Vérication de la satisfaction du client Contrôle le planning Gestion des ressources Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 83 / 86

extreme programming Coach Garant du processus XP Organise et anime les séances de planications Favorise la créativité du groupe, n'impose pas ses solutions techniques Coup de gueules... Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 84 / 86

extreme programming Spécication avec XP Pas de documents d'analyse ou de spécications détaillées Les tests de recette remplacent les spécications Emergence de l'architecture au fur et à mesure du développement Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 85 / 86

extreme programming XP vs RUP Inconvénients de XP Focalisation sur l'aspect individuel du développement, au détriment d'une vue globale et des pratiques de management ou de formalisation Manquer de contrôle et de structuration, risques de dérive Inconvénients de RUP Fait tout, mais lourd, usine à gaz Parfois dicile à mettre en oeuvre de façon spécique. XP pour les petits projets en équipe de 12 max RUP pour les gros projets qui génèrent beaucoup de documentation Pierre Gérard (P13 IUT FC) Processus de Développement Logiciel Licence Pro SIL 86 / 86