Le Processus RUP - 3kernels.free.fr3kernels.free.fr/divers/support/insta/modelisation/rup.pdf · Le...
Transcript of Le Processus RUP - 3kernels.free.fr3kernels.free.fr/divers/support/insta/modelisation/rup.pdf · Le...
Le Processus RUP …
H. Kadima
Designer /Developer
Analyst Tester
DatabaseAdministrator
PerformanceEngineer
ReleaseEngineerProject
Leader
Table des matières
• 1. De l’artisanat à l’industrialisation de développements de logiciels ….
• 2. Le processus RUP (Rational Unified Process)• 4. Comparaison de quelques processus de
développement
1. De l’artisanat à l’industrialisation de développements de logiciels …
• Complexité de plus en plus accrue des technologies
• Nécessité d’amélioration de la productivité et de la qualité
• L’industrialisation correspond en général à la refonte du processus d’ingénierie système et logiciel de l’entreprise …
Les quatre axes d’industrialisation des développements
• Pratiques et méthodes : de bonnes pratiques, éventuellement organisées en modèles de processus de développement (RUP, XP etc…)
• Architectures : description, conception, choix technologiques, etc …
• Ressources humaines : formation et évolution
• Outils : connaissance des outils
Analogie avec l’industrie classique …
• Toute industrie possède trois caractéristiques essentielles :
• - optimisation de ses processus en les rationalisant et en travaillant à l’amélioration de la qualité de ses produits.
• - automatisation des processus qui peuvent l’être
• - standardisation des outils et composants qui entrent dans la fabrication de ses produits
• L’industrialisation de développements de logiciels doit suivre cette voie …
Processus de développement ?
• Un processus définit une séquence d’étapes, partiellement ordonnées, qui concourent à l’obtention d’un système logiciel ou à l’évolution d’un système existant.
• L’objet d’un processus de développement est de produire des logiciels de qualité qui répondent aux besoins de leurs utilisateurs dans des temps et des coûts prévisibles.
• « Qui fait quoi et quand ? »
Qu’est ce qu’un processus ?
Un processus définit qui fait quoi, quand et comment pour atteindre un objectif donné.
Le Processus Unifié de Rational est un processus générique qui utilise UML comme langage de modélisation.
Exigences nouvellesou améliorées
Système nouveau ou amélioré
Processus d’ingénierielogicielle
2. Processus Rational Unifié (RUP)
• 2.1. Caractéristiques générales• 2.2. Disciplines et phases RUP• 2.3 Outils RUP• 2.4. Déploiement de projets RUP• 2.5. Exemples de bonnes pratiques
RUP est une instance de UP …
Unified P rocess
Requirem ent M anagem ent()A nalys is ()Des ign()Im plem entation()Tes t()Deploym ent()
Rat io nal Unifi ed P rocess
B us ines s m odel ing ()A nalys is & Des ign()P roj ec t Ma nagem ent()Con fi gurati on & Change Ma nagem ent()E nvironm ent ()
UP
Ges tion des ex igences ()A nalyse()Conception()Im plem entation()Tes t()Déploiem ent()
RUP
Mod èli sat ion M éti er()A naly se & Concept ion()Ges tion de P rojet()Ges tion de Configuration et du Chagnem ent()E nvironnem ent()
Caractéristiques générales
• Le Processus RUP est un processus de développement logiciel « itératif et incrémental, centré sur l’architecture, piloté par les cas d’utilisation et par les risques »
Itératif et incrémental …
• Le projet est découpé en itérations de courte durée (environ un mois) qui aident à mieux suivre l’avancement global.
• A la fin de chaque itération, une partie exécutable du système final est produite, de façon incrémentale
Intérêts Intérêts de de développement itératifdéveloppement itératif
–– Les Les risques sont évalués avant risques sont évalués avant
–– Les premières Les premières itérations permettent d’avoir itérations permettent d’avoir des des retours utilisateur retours utilisateur
–– Le test et Le test et l’intégration sont continus l’intégration sont continus
–– Les Les jalons permettent jalons permettent de fixer les de fixer les objectifsobjectifs
–– Les Les avancées sont mesurées avancées sont mesurées au fur et à au fur et à mesure mesure de de l’implémentationl’implémentation
–– Des Des maquettes intermédiaires peuvent être maquettes intermédiaires peuvent être déployéesdéployées
RUP est itératif et incrémentalExigences Analyse & conception
Planification initiale
PlanificationTests
Déploiement
ImplémentationGestion
Environnement
Chaque itération a pour finalité une version exécutable.
Centré sur l’architecture …
• Tout système complexe doit être décomposé en parties modulaires afin de garantir une maintenance et une évolution facilitées.
• Cette architecture (fonctionnelle, logique, matérielle etc …) doit être modélisée en UML et pas seulement documentée sous forme textuelle.
Le processus RUP est centré architecture …
• Très simplement, on peut dire que l’architecture est la structure d’un système.
• La description de l’architecture n’est pas monolithique, elle est constituée de l’agrégation cohérente de différents points de vue.
• RUP préconise d’utiliser le modèle des 4+1 vues ci-contre pour guider l’élaboration de l’architecture. (Vues de P. Krutchen)
Représentation de l’architecture : le modèle 4+1 (1)
Une vue de l’architecture est la description d’un système d’un point de vue particulier, couvrant certains points et en omettant certains autres.
Le Processus Unifié de Rational identifie 4 vues + 1 :
•La vue logique concerne les exigences fonctionnelles du système. Elle identifie la plupart des paquetages, sous-systèmes et classes.
•La vue d’implémentation décrit l’organisation des modules du logiciel.
Représentation de l’architecture : le modèle 4+1 (2)
•La vue du processus concerne les aspects concurrents du système à l’exécution: taches, threads ou processus, et leur interaction.
•La vue de déploiement montre comment les différents exécutables sont structurés dans la plate-forme ou les différents nœuds.
•La vue des cas d’utilisation contient les scénarios principaux qui sont utilisés pour faire fonctionner l’architecture et pour la valider.
Piloté par les risques …
• Les risques majeurs du projet doivent être identifiés au plus tôt, mais surtout levés les plus rapidement possible.
• Les mesures à prendre dans ce cadre déterminent l’ordre des itérations.
Piloté par les cas d’utilisation …
• Le projet est mené en tenant compte des besoins et des exigences des utilisateurs.
• Les cas d’utilisation du futur système sont identifiés, décrits avec précision et priorisés.
RUP est piloté par les cas d’utilisation
Modèle d’implémentationModèle d’implémentation Modèle de testModèle de test
Vérifié parVérifié parRéalisé parRéalisé par
Implémenté parImplémenté par
Modèle de conceptionModèle de conception
RUP est un cadre de processus
• RUP décrit qui, quoi, comment et quand faire à l’aide d’un langage visuel
• RUP apporte des outils et une méthode d’organisation pour l’ingénierie participative
• RUP apporte une vision unifiée sur le processus qui peut être partagée par tous les acteurs
RUP permet d’appliquer les meilleures pratiques (Best Practices)
Le processus Unifié Rational décrit comment appliquer les six directives de l’ingénierie logicielle
Contrôler le Contrôler le ChangementChangement
Utiliser le Développement ItératifUtiliser le Développement Itératif
(Ré)Utiliser(Ré)UtiliserComposantsComposantsArchitecturesArchitectures
Analyser Analyser les Besoinsles Besoins
Modeler Modeler VisuellementVisuellement
(UML)(UML)ContrôlerContrôlerla Qualitéla Qualité
Disciplines RUP• Quatre phases : initialisation, élaboration, construction et
transition• Chaque phase est elle-même décomposée séquentiellement en
itérations limitées dans le temps (entre 2 et 4 semaines).• Cinq disciplines fondamentales pour les activités de
développement : modélisation métier, capture des exigences, analyse et conception, implémentation, test et déploiement
• Trois disciplines supports : gestion de projet, gestion de changement et configuration, mise à disposition d’un environnement complet de développement.
Description des disciplines dans RUP
• Les disciplines sont des agrégats d’activités qui produisent un ensemble déterminé d’artefacts.
• Une discipline est donc définie par :
• - une liste d’activités ;• - une liste d’artéfacts (produits ou
modifiés par la réalisation des activités)
• - un workflow qui décrit, sous la forme d’un diagramme d’activité UML, l’enchaînement logique des activités. (ci-contre exemple de workflow de la discipline Requirements)
Artefacts ?• Un artefact est un élément d’information produit (ou
modifié) dans le cadre du processus de développement(document texte, diagramme, compte rendu réunion, code source, modèle base de données …)
• On distingue deux types d’artefacts• - ceux qui dépendent de l’activité de gestion de projet
(comptes rendus divers, planning d’activités etc ..)• - ceux directement issus des activités de fabrication du
logiciel (modèles, spécifications, code source etc …)• RUP ne prend en charge que le cycle de vie des ces
derniers.
Rôles dans RUP ?
• Un rôle dans RUP est défini par un ensemble d’activités et de responsabilités. Ces dernières peuvent être associées à un ou plusieurs individus.
• Les rôles sont groupés en quatre ensembles :
• - les analystes impliqués dans l’analyse des exigences
• - les développeurs impliqués dans la conception et implémentation.-les testeurs testent l’application
• - les managers gèrent le processus• - puis les autres
Modèle statique du RUPProjet
Role
Discipline
Activité Livrable
Chef deProjet
AnalysteSystème
Architecte ModèleDocument Elément
responsabilité produit(56)
(67) (8) (26)
(artefact)
9
(30) (100)
Enchaînement d’activités dans RUPModélisation du métier
Il a pour but
• de décrire la structure et la dynamique de l'organisation (ou de l ’équipe participative)
• de garantir que les clients, les utilisateurs finaux et les développeurs partagent une vision commune de l'organisation
• de réaliser une base d'information qui contiendra le cahier des charges du produit et la planification des tâches de l ’organisation.
Artefacts et rôle de la modélisation MétierArtefacts et rôle de la modélisation Métier
• Concepteur Métier (Business Designer)
Enchaînement d’activités dans RUPGestion des exigences
Il a pour but
• de définir une vision du produit,
• de traduire cette vision en un modèle de cas d'utilisation, (ce modèle, accompagné des spécifications externes, constitue le cahier des charges logicielles),
• d’organiser et de gérer les exigences,
• de définir et de construire une maquette de l'interface utilisateur.
Enchaînement d’activités dans RUPAnalyse et conception
• L'objectif de l'analyse est de comprendre le cahier des charges et d ’écrire les spécifications internes. L'analyse permet d'obtenir une vue interne du produit
• La conception a pour but de définir l'architecture du système/produit
• L'analyse se concentre sur le "quoi faire", la conception se concentre sur le "comment le faire".
Enchaînement d’activités dans RUPImplémentation
• L'objectif est de créer les composants : sources, scripts, puis exécutables...
Enchaînement d’activités dans RUPTest
• La phase de test a pour objectif d'évaluer le niveau de qualité atteint par le produit et d'en tirer les conclusions. Elle s'appuie sur les cas d'utilisation et définit des cas de test.
Enchaînement d’activités dans RUPDéploiement
• Le but de l'enchaînement des activités de déploiement est de livrer le produit aux utilisateurs finaux.
Enchaînement d’activités dans RUPGestion de projet
• La planification d'un projet itératif
• La gestion des risques
• Le contrôle des progrès.
Enchaînement d’activités dans RUPGestion de la configuration et des changement
• Le but de la gestion de la configuration et des changements est de garder la trace de tous les éléments tangibles qui participent au développement, et de suivre leur évolution.
Enchaînement d’activités dans RUPEnvironnement
Il a pour but de fournir
• un processus de développement adapté au projet
• des outils de travail qui aident à réaliser les activités et les artefacts du processus.
Les phases RUP
DémarrageDémarrage ÉlaborationÉlaboration ConstructionConstruction TransitionTransition
temps
Le Processus RUP comprend quatre phases :– Démarrage - Définit le champ d’action du projet– Élaboration – Le plan du projet, il spécifie les exigences, les
bases de l’architecture – Construction – Réalise le produit– Transition - Transfère le produit vers les utilisateurs finaux
La phase inception
• Détermination de la vision globale du système à construire …
• Identification des principaux cas d’utilisation• Identification de l’architecture candidate• Maîtrise des coûts, des délais et des risques …
La phase d’élaboration
• Définition des détails des exigences• Conception, implémentation et validation de l’architecture• Tests des scénarios critiques• Réduction des risques et estimation des délais et des coûts• Affinage du plan de développement
La phase de construction
• Développement itératif du système complet• Réalisation et exécution des tests
unitaires,et d’intégration
La phase de transition …
• Exécution des bêtas tests• Formation des utilisateurs• Déploiement et test de réception
Itérations…• Une phase peut-être divisée en itérations
–– Circuit complet de développement Circuit complet de développement résultant en une livraison (interne ou résultant en une livraison (interne ou externe) d’un produit exécutableexterne) d’un produit exécutable
• un sous-ensemble du produit final en cours de développement, qui croît incrémentalement d’itération en itération pour devenir le système final
– Chaque itération au sein d’une phase aboutit en une livraison exécutable du système
…Itérations•• Importance différente de chaque discipline en Importance différente de chaque discipline en
rapport avec la phaserapport avec la phase• Répartition de la charge de travail dans chaque discipline
au cours de la progression d’itération en itération suivant chacune des 4 phases
Projet de Déploiement RUPRUP est un modèle standard de processus pour :
• Grands projets ( > 10 années.homme)
– Parfait car il détaille tous les rôles du projet
– Doit être complété par les contraintes de l’organisation
• Petits et Moyens projets ( < 10 années.homme)
– Doit être fortement simplifié (garder l’essentiel)
– Doit être outillé si le nombre de projets est important
Exemples de bonnes pratiques Une petite application support …
• Une application classique de commerce électronique dans laquelle les clients peuvent acheter des ouvrages sur le web en les ajoutant à leur panier électronique.
• Lorsque les clients souhaitent régler leurs achats, ils valident leur panier. Le prix du panier est alors calculé et le paiement de la commande peut être effectué.
Traçabilité des exigences …
• On devrait maintenir au cours du projet des dépendances de traçabilité entre les besoins des utilisateurs et les artefacts traduisant ces besoins en exigences
Mise en œuvre des outils de gestion des exigences
• Les principaux outils actuels de gestion des exigences sont :
• DOORS (Telelogic)• RequisitePro (IBM
Rational)• CaliberRM (Borland)
Mise en place d’un système de gestion du changement intégré selon RUP
• La gestion des changements s’appuie sur les outils de gestion de configuration qui permettent :
• - d’archiver les différentes versions d’un artefact ;
• - de contrôler les autorisations d’accès et de changements sur les artefacts.
• Ces outils s’appuient sur une base de données (project repository) stockant les artefacts et leurs versions, éventuellement associée à des métadonnées.
Planification du projet en itérations
• Afin d’identifier et lever les risques majeurs au plus tôt, le chef de projet doit donc prendre en compte de façon combinée la priorité fonctionnelle et l’estimation du risque :
• Si priorité haute et risque haut :planifier le cas d’utilisation dans une des toutes premières itérations.
• Si priorité basse et risque bas : reporter le cas d’utilisation aux dernières itérations.
• Si les deux critères antagonistes : ne faudrait-il pas favoriser le cas d’utilisation risqué ?
3. Comparaison des processus de développement…
• 3.1. Extreme Programming XP• 3.2. Le processus en Y – 2TUP• 3.3. Convergence des processus
XP : une méthode strictement itérative …
• Développements selon un système d’itérations imbriquées de courtes durées :
• - des itérations de développement : réalisation progressive des fonctionnalités exprimées par le client.
• - des itérations de livraison (composées de 2 à 3 itérations de développement) qui produisent une version stabilisée du logiciel.
Le jeu de la planification (planning game)
• Le travail de planification (de livraison ou de développement) est traité comme un jeu qui comprend :
• - des pièces : les scénarios utilisateurs
• - un but : implémenter le plus possible de fonctionnalités exprimées par le client ;
• - des joueurs• - des actions
Une journée de travail d’un programmeur XP …
• Le rôle du programmeur XP cumule les rôles d’analyste, de concepteur et d’implémenteur (souvent distincts dans les autres processus de développement)
RUP : une bonne méthodologie et un outil prêt à l’emploi …
• Points forts :• - Spécifie le dialogue entre les différents intervenants du
projet : les livrables, les plannings, les prototypes ..• - Propose des modèles de documents et des canevas pour
des projets types• Points faibles :• - Coûteux à personnaliser• - Très axé processus, au détriment du développement.
Projection de XP et de 2TUP sur la matrice de RUP
• Dans le cas d’un projet nouvelles technologies, on peut par exemple intégrer :
• - les valeurs dde XP et quelques règles ( communication, simplicité, feedback …)
• - les documents types du RUP et leur enchaînement
• - la branche technique du 2TUP
Quelques références bibliographiques
• 1. P. Kruchten et P. Kroll : Guide pratique du RUP, Campus Press 2003• 2. J.L Bénard et al. Gestion de projet Extreme Programming, Eyrolles 2002• 3. T. Cros Maîtriser les projets avec l’Extreme Programming – Pilotage par les
tests-clienst, Cépaduès 2004.• 4. P. Roques « UML2 – Modéliser une application web » Les Cahiers du
programmeur 3ème édition Eyrolles 2007