Rationaliser la conception participative. Logiciel Croissance en nombre Logiciel Croissance en...

Preview:

Citation preview

Rationaliser la conception participative

LogicielLogiciel

LogicielLogicielLogicielLogiciel

LogicielLogiciel

LogicielLogicielLogicielLogiciel

Croissance en nombre

LogicielLogicielCroissance 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/

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…

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

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

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

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é

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.

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

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

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

Exemple d’un WorkflowExemple d’un Workflow

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.

Architecture Architecture bidirectionnelle du RUPbidirectionnelle du RUP

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

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

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.

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

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

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.

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.

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.

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.

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

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

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 »

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 »

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 »

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

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

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

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

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

Briques d’organisationBriques d’organisation

Contrôle des changements

Management

Composants logiciels

Processus itératif

Modèle visuel Qualité

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

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

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

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

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

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

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

Interface

Présentation des rôles

Présentation des scénarios

Diagramme de la collaboration

Présentation des classes (UML)

Diagramme des états de transition

Diagramme des composants

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

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

Recommended