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

Le Processus RUP - 3kernels.free.fr3kernels.free.fr/divers/support/insta/modelisation/rup.pdf · Le Processus Unifié de Rational est un processus générique qui utilise UML comme

Embed Size (px)

Citation preview

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é

Exemple de mise en œuvre de diagrammes UML dans un processus de développement

Disciplines et phases RUP …

• Les deux dimensions de RUP• Disciplines RUP• Phases RUP

Les Deux Dimensions du RUPVision statique (Disciplines) et dynamique (Phases) du

processus

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

Exemple Exemple d’un Workflowd’un Workflow

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.

Workflow modélisation métier

Artefacts et rôles de la modélisation Métier…Artefacts et rôles de la modélisation Métier…

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.

Workflow gestion des exigences

Artefacts et rôles gestion des exigences...

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".

Artéfacts et rôles Analyse & Conception...

Analyse & Conception...

Enchaînement d’activités dans RUPImplémentation

• L'objectif est de créer les composants : sources, scripts, puis exécutables...

Artéfacts et rôles Implémentation...

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.

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.

Déploiement...Déploiement...

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.

Gestion de Projet...

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.

Gestion de Configuration et Changement…Gestion de Configuration et Changement…

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.

Environnement

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

Enchaînement des phases et principaux jalons

Interface

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é.

Diagramme de cas d’utilisation

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

Quelques dépendances de traçabilité entre les modèles UML dans RUP …

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)

Un exemple de matrice de traçabilité entre cas d’utilisation et exigences

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)

Cycle de développement en Y - 2TUP

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