53
tionaliser la conception participative

Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Embed Size (px)

Citation preview

Page 1: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Rationaliser la conception participative

Page 2: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

LogicielLogiciel

LogicielLogicielLogicielLogiciel

LogicielLogiciel

LogicielLogicielLogicielLogiciel

Croissance en nombre

LogicielLogicielCroissance en taille

Croissance en complexité

Page 3: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Rational Unified ProcessRational Unified Process

Rational Unified Process (RUP) : est un processus de conception/développement de logiciel défini par Rational Software.

http://www.rational.com/

Page 4: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Organisation séquentielleOrganisation séquentielleLe risque est au débutLe risque est au début

RISQUE

TEMPS

Tests unitaires

Test système

Développement

Conception

Prérequis

• Les décideurs prennent le risque• Les concepteurs assument…• Les développeurs suivent…

Page 5: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Organisation participativeOrganisation participativeLe risque est partagéLe risque est partagé

TransitionTransition

RisqueRisque

InceptionInception

ConceptionConception

ConstructionConstruction

PreliminaryPreliminaryIterationIteration

Architect.Architect.IterationIteration

Architect.Architect.IterationIteration

Devel. Devel. IterationIteration

Devel. Devel. IterationIteration

Devel. Devel. IterationIteration

TransitionTransitionIterationIteration

TransitionTransitionIterationIteration

Post-Post-deploymentdeployment

TempsTemps

Equipe

Page 6: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Développement itératifDéveloppement itératif

– Les risques sont évalués avant Les risques sont évalués avant

– Les premières itérations permettent Les premières itérations permettent d’avoir des retours utilisateur d’avoir des retours utilisateur

– Le test et l’intégration sont continus Le test et l’intégration sont continus

– Les jalons permettent de fixer les Les jalons permettent de fixer les objectifsobjectifs

– Les avancées sont mesurées au fur Les avancées sont mesurées au fur et à mesure de l’implémentationet à mesure de l’implémentation

– Des maquettes intermédiaires Des maquettes intermédiaires peuvent être déployéespeuvent être déployées

Page 7: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Accroître la productivité Accroître la productivité en en conception/développemeconception/développementntTous les membres partagentTous les membres partagent

• Des bases de connaissanceDes bases de connaissance

• Une même méthode Une même méthode

• Une organisation du travailUne organisation du travail

• Un langageUn langage

Designer /Developer

Analyst Tester

DatabaseAdministrator

PerformanceEngineer

Release Engineer

Project Leader

Page 8: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Guide

Amplifient Utilisent

Oriente

Automatisent

Se focalise

Fédèrent

Instrumentent AccélèrentOutils

Travailleur

Services

Le langage RUP : un modèle Le langage RUP : un modèle visuelvisuel

Activité

Page 9: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Quatre éléments de modélisation dans Quatre éléments de modélisation dans RUPRUP

• Membre est le qui : Chef de projet, Analyste, Testeur, Utilisateur, etc.

• Artéfact est le quoi : Document de l’architecture, Modèle des cas d’utilisation, Fichier exécutable, etc.

• Activité est le comment : Analyse de cas d’utilisation, Conception de cas d’utilisation, etc.

• Enchaînement d’activités est le quand : Modélisation de métier, implémentation, test, etc.

Page 10: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Décrit un rôle dans le

processus

Membre

Use-Case Specifier

NotationsNotations

Activité

Décrit une partie du travail

Décrit une connaissance ou une donnée

Artéfact

Use-Case Package

Use Case

Responsable de

Page 11: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Concepteur Analyse de cas d ’utilisation

Conception de cas d ’utilisation

Réalisation de cas d ’utilisation

est responsable de

Exemple : rôles du Exemple : rôles du concepteurconcepteur

activité1

ConnaissanceDocument

produit

activité2

Page 12: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Planification des RHPlanification des RH

Re s o u rc e Wo rke r Ac tiv itie s

Paul

Mary

Joe

Sylvia

Stefan

Designer

Use-Case Specifier

Use-Case Designer

Design Reviewer

Architect

Define Operations...

Describe a Use Case...

Distribute Behavior...

Review Use-Case Model...

Define Use-Case ViewDefine Logical Viiew...

Chaque membre est considéré comme un acteur

Page 13: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Exemple d’un WorkflowExemple d’un Workflow

Page 14: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

RUP est itératif et RUP est itératif et incrémentalincrémental

Exigences

Planification initiale

PlanificationTests

Déploiement

Implémentation

Analyse & conception

Gestion Environnemen

t

Chaque itération a pour finalité une version exécutable.

Page 15: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Architecture Architecture bidirectionnelle du RUPbidirectionnelle du RUP

Page 16: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Enchaînement d’activités dans Enchaînement d’activités dans RUPRUP

6 enchaînements d'activités

essentielles

• Modélisation du métier

• Gestion des exigences

• Analyse et Conception

• Implémentation

• Test

• Déploiement

3 enchaînements d'activités de soutien

• Gestion de Projet

• Gestion de la configuration et des changements

• Environnement

Page 17: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Enchaînement d’activités dans Enchaînement d’activités dans RUPRUP

Modélisation du métierModélisation du métier

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

Il a pour but

Page 18: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Enchaînement d’activités dans Enchaînement d’activités dans RUPRUP

Gestion des exigencesGestion 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.

Page 19: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Enchaînement d’activités dans Enchaînement d’activités dans RUPRUP

Analyse et conceptionAnalyse 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".

Page 20: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Enchaînement d’activités dans Enchaînement d’activités dans RUPRUP

ImplémentationImplémentation

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

Page 21: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Enchaînement d’activités dans Enchaînement d’activités dans RUPRUPTestTest

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

Page 22: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Enchaînement d’activités dans Enchaînement d’activités dans RUPRUP

DéploiementDéploiement

• Le but de l'enchaînement des activités de déploiement est de livrer le produit aux utilisateurs finaux.

Page 23: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Enchaînement d’activités dans Enchaînement d’activités dans RUPRUP

Gestion de projetGestion de projet

• La planification d'un projet itératif

• La gestion des risques

• Le contrôle des progrès.

Page 24: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Enchaînement d’activités dans Enchaînement d’activités dans RUPRUPGestion de la configuration et des Gestion de la configuration et des changementchangement

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

Page 25: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Enchaînement d’activités dans Enchaînement d’activités dans RUPRUP

EnvironnementEnvironnement

• un processus de développement adapté au projet

• des outils de travail qui aident à réaliser les activités et les artefacts du processus.

Il a pour but de fournir

Page 26: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Phases dans RUPPhases dans RUP

Inception Conception Construction Transition

Temps

Jalon : objectifs et cycle de vie

Jalon : architecture du système

Jalon :prototype

Jalon : livraison du produit

Page 27: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

InceptionInception

• Il s’agit de décrire quelle vision on a du produit final et où on veut aller, de réaliser une étude de rentabilité et de définir le projet.

• La phase Inception se termine par le jalon «  objectifs et cycle de vie »

Page 28: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

ConceptionConception

• Il s’agit de

¤ planifier les activités et les ressources nécessaires à la réalisation du projet

¤ spécifier les fonctionnalités

¤ concevoir l’architecture

• La phase de conception se termine par le jalon «  architecture du système »

Page 29: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

ConstructionConstruction

• Il s’agit de construire le système et de faire évoluer la vision, l ’architecture et les plans de développement jusqu’à l ’obtention d’un produit prêt à être testé.

• La phase construction se termine par le jalon «  prototype »

Page 30: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

TransitionTransition

• Il s’agit de soumettre le produit aux utilisateurs (béta-test),

• La phase transition se termine par le jalon « livraison du produit » ou par une nouvelle itération

Page 31: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Ambition de RUPAmbition de RUP

• Faire face aux changements en cours du projet qui restent les causes principales de l’échec du projet. • Par exemple :

¤ Les utilisateurs changent leurs exigences

¤ L’équipe de développement modifie l’architecture du logiciel

Page 32: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Changement des Changement des exigencesexigences

• Au départ, les utilisateurs ne savent pas quelles sont leurs exigences et comment les spécifier de façon précise.

• Ils changent leurs exigences quand ils voient les livrables

Effet: IKIWISIIKIWISI

I Know It When I See It - Je le saurai quand je l ’aurai vu

Bary Boehm - Université de Californie du Sud

Page 33: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Changements de Changements de l’architecturel’architecture

• Les membres de l’équipe :

¤ n’ont peut-être pas bien compris le système exigé

¤ n’ont peut-être pas partagé une même compréhension du système

Page 34: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

RUP est centré sur RUP est centré sur l’architecturel’architecture

Vue logiqueVue pratique

Vue déploiement

Vue d'implémentation

Vue des processus

ProgrammeursGestion du logicielUtilisateur final

Fonctionnalité

Analystes/TesteursComportement

Intégrateurs systèmePerformanceCapacité à grandirDébit d'information

Ingénieurs SystèmeTopologie du systèmeLivraison, installationCommunication

Vue des cas d'utilisation

Page 35: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Briques d’organisationBriques d’organisation

Contrôle des changements

Management

Composants logiciels

Processus itératif

Modèle visuel Qualité

Page 36: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

RUP : tracer les changementsRUP : tracer les changements

• RUP définit un enchaînement d’activités de soutien : gestion des configurations et des changements

• RUP est piloté par les cas d ’utilisation

Page 37: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

RUP est piloté par les cas RUP est piloté par les cas d’utilisationd’utilisation

Modèle d’implémentationModèle d’implémentation Modèle de test

Modèle de test

Vérifié parVérifié parRéalisé parRéalisé par

Implémenté parImplémenté par

Modèle de conceptionModèle de conception

Page 38: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

AvantagesAvantages

• RUP améliore la qualité du produit

• RUP augmente le taux de succès du projet

• RUP est supporté par les outils du Rational Software

Page 39: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

RUP améliore la qualité du RUP améliore la qualité du produitproduit

• RUP améliore la compréhension du système

¤ RUP est itératif

¤ RUP reste centré sur l’architecture

¤ RUP utilise UML pour modéliser le logiciel

Page 40: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

RUP améliore la qualité du RUP améliore la qualité du produitproduit

• RUP contrôle et trace le processus de transformation de la compréhension du système en produit

¤ RUP est piloté par les cas d’utilisation

¤ RUP contrôle l’avancement de travail à l ’aide des livrables fournis dans les jalons

Page 41: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

RUP augmente le taux de RUP augmente le taux de succès du projetsuccès du projet

RUP permet d’anticiper et de limiter les risques. On peut mieux les traiter quand ils sont petits...

Page 42: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

RUP est intégré par les outils du RUP est intégré par les outils du Rational SoftwareRational Software

Rose

TeamTest

RequisitePro

SoDA ClearCase

ClearQuest

PurifyQuantify

PureCoverage

Visual StudioApex

Page 43: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Interface

Page 44: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Présentation des rôles

Page 45: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Présentation des scénarios

Page 46: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Diagramme de la collaboration

Page 47: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Présentation des classes (UML)

Page 48: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Diagramme des états de transition

Page 49: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Diagramme des composants

Page 50: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité
Page 51: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

Points faibles de RUPPoints faibles de RUP

• RUP ne supporte pas les multi-projets

• RUP exige des experts

• RUP est propriété de Rational Software

Page 52: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité

RUP est un cadre de RUP est un cadre de processusprocessus

• 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

Page 53: Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en taille Croissance en complexité