You are on page 1of 33

Objectifs de ce cours

Processus de conception de SI ! Notion de méthode de conception de SI


! Méthodes OO de conception
– Généralités sur les méthodes
– Processus unifié
• description générale
M1 MIAGE - SIMA - 2007-2008 • exemples de déclinaisons
Yannick Prié – Processus AGILE
UFR Informatique - Université Claude Bernard Lyon 1

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 3

Plan Plan
! Avant-propos ! Avant-propos
! Méthodes et processus ! Méthodes et processus
! Processus unifié : caractéristiques ! Processus unifié : caractéristiques
essentielles essentielles
! Description du processus unifié ! Description du processus unifié
! Illustration : deux déclinaisons du ! Illustration : deux déclinaisons du
processus unifiés processus unifié
! Méthodes Agile ! Méthodes Agile
! Conclusion ! Conclusion

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 4 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 5

(B. Morand)
Avant-propos

Avant-propos

Ce qu’il faut aimer pour arriver à


UML : No silver bullet concevoir
! Connaître UML (ou maîtriser un AGL) n’est pas ! Être à l’écoute du monde extérieur
suffisant pour réaliser de bonnes conceptions ! Dialoguer et communiquer avec les gens qui utiliseront le
– malgré ce que le marketing peut affirmer système
– UML n’est qu’un langage ! Observer et expérimenter : une conception n’est jamais
! Il faut en plus bonne du premier coup
– savoir penser / coder en termes d’objets ! Travailler sans filet : en général, il y a très peu de recettes
• maîtriser des techniques de conception et de toutes faites
programmation objet ! Abstraire
– avoir un certain nombre de qualités ! Travailler à plusieurs : un projet n’est jamais réalisé tout
! Méthodes de conception seul
– propositions de cheminements à suivre pour concevoir ! Aller au résultat : le client doit être satisfait, il y a des enjeux
– pas de méthode ultime non plus financiers
• certains bon principes se retrouvent cependant partout

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 6 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 7
Avant-propos

Avertissement Plan
! Beaucoup de concepts dans ce cours ! Avant-propos
– proviennent du domaine du développement logiciel
• ancien (plusieurs décennies)
! Méthodes et processus
• plus récent ! Processus unifié : caractéristiques
! Tout l’enjeu est de comprendre essentielles
– ce qu’ils décrivent / signifient
! Description du processus unifié
– comment ils s’articulent
! Méthode ! Illustration : deux déclinaisons du
– construire petit à petit une compréhension globale processus unifié
• lire et relire ! Méthodes Agile
• chercher de l’information par soi même
• poser des questions ! Conclusion
• pratiquer

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 8 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 9

(O. Boissier) (O. Boissier)


Méthodes et processus

Génie logiciel Méthodes et processus Projet en général


! Définition
! Définition – ensemble d’actions à entreprendre afin de répondre à un besoin défini (avec
une qualité suffisante), dans un délai fixé, mobilisant des ressources humaines
– ensemble de méthodes, techniques et outils pour la et matérielles, possédant un coût.
production et la maintenance de composants logiciels ! Maître d’ouvrage
– personne physique ou morale propriétaire de l’ouvrage. Il détermine les objectifs,
de qualité le budget et les délais de réalisation.

! Pourquoi ? ! Maître d’oeuvre


– personne physique ou morale qui reçoit mission du maître d’ouvrage pour
– logiciels de plus en plus gros, technologies en assurer la conception et la réalisation de l’ouvrage.
évolution, architectures multiples ! Conduite de projet
– organisation méthodologique mise en oeuvre pour faire en sorte que l’ouvrage
! Principes réalisé par le maître d’oeuvre réponde aux attentes du maître d’ouvrage dans les
contraintes de délai, coût et qualité.
– rigueur et formalisation, séparation des problèmes, ! Direction de projet
modularité, abstraction, prévision du changement, – gestion des hommes : organisation, communication, animation
– gestion technique : objectifs, méthode, qualité
généricité, utilisation d’incréments – gestion de moyens : planification, contrôle, coûts, délais
– prise de décision : analyse, reporting, synthèse

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 10 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 11

(O. Boissier)
Méthodes et processus

Méthodes et processus

Projet logiciel Modèles de cycle de vie d’un logiciel


! Cycle de vie d’un logiciel
! Problème – débute avec la spécification et s'achève sur les phases
d'exploitation et de maintenance
– comment piloter un projet logiciel ? ! Modèles de cycle de vie
! Solution – organiser les différentes phases du cycle de vie pour
l'obtention d'un logiciel fiable, adaptable et efficace
– définir et utiliser des méthodes – guider le développeur dans ses activités techniques
• spécifiant des processus de développement – fournir des moyens pour gérer le développement et la
maintenance
• organisant les activités du projet • ressources, délais, avancement, etc.
• définissant les artefacts du projet ! Deux types principaux de modèles
– Modèle linéaires
• se basant sur des modèles
• en cascade et variantes
– Modèles non linéaires
• en spirale, incrémentaux, itératifs
M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 12 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 13
Méthodes et processus

Méthodes et processus
Modèle en cascade Modèle en V
Expression des besoins Validation des besoins

Analyse des besoins


Spécification fonctionnelle Validation fonctionnelle
Spécification

Conception Conception du système Tests du système

! Années 70 Production
! Linéaire, flot descendant Validation
Conception des composants Tests des composants

! Retour limité à une phase en amont


Maintenance
Implémentation
! Validation des phases par des revues
! Échecs majeurs sur de gros systèmes
– délais longs pour voir quelque chose qui tourne ! Variante du modèle en cascade
– test de l’application globale uniquement à la fin ! Tests bien structurés
– difficulté de définir tous les besoins au début du projet ! Hiérarchisation du système (composants)
! Bien adapté lorsque les besoins sont clairement identifiés et stables ! Validation finale trop tardive (très coûteuse s’il y a des erreurs)
! Variante : W (validation d’un maquette avant conception)

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 14 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 15

Méthodes et processus
Méthodes et processus

Modèle en spirale Qu’est ce qu’une méthode ?


Identification Evaluation

! Définition
– guide plus ou moins formalisé, démarche reproductible
permettant d’obtenir des solutions fiables à un problème
– capitalise l’expérience de projets antérieurs et les règles dans
le domaine du problème
Vers un système
complet
! Une méthode définit
– des concepts de modélisation (obtenir des modèles à partir
d’éléments de modélisation, sous un angle particulier,
représenter les modèles de façon graphique)
Vérification/validation Construction
– une chronologie des activités (" construction de modèles)
! Incréments successifs ! itérations – un ensemble de règles et de conseils pour tous les
! Approche souvent à base de prototypes participants
Les méthodes ! Description d’une méthode
! Nécessite de bien spécifier les incréments
objet en dérivent – des gens, des activités, des résultats
! Figement progressif de l’application
! Gestion de projet pas évidente
M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 16 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 17
Méthodes et processus
Méthodes et processus

Méthodes en génie logiciel Processus


! Grandes classes de méthodes (Bézivin) ! Pour décrire qui fait quoi à quel moment et de
– méthodes pour l’organisation stratégique
quelle façon pour atteindre un certain objectif
– méthodes de développement
– méthodes de conduite de projet ! Définition
– méthodes d’assurance et de contrôle qualité – ensemble de directives et jeu partiellement ordonné
! Méthodes de développement d’activités (d’étapes) destinées à produire des logiciels
– construire des systèmes opérationnels de manière contrôlée et reproductible, avec des coûts
– organiser le travail dans le projet prévisibles, présentant un ensemble de bonnes
– gérer le cycle de vie complet pratiques autorisées par l’état de l’art
– gérer les risques
! Deux axes
– obtenir de manière répétitive des produits de qualité constante
! Processus – développement technique
– Déf1 : soit à peu près la même chose (spécification) – gestion du développement
– Déf2 soit la réalisation effective du travail (cf. processus métier)

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 18 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 19
Méthodes et processus

Méthodes et processus
Notation et artefacts Évolution des méthodes
! Notation (e.g. UML) ! Origine : fin des années 60
– permet de représenter de façon uniforme l'ensemble des artefacts logiciels – problèmes de qualité et de productivité dans les grandes entreprises,
produits ou utilisés pendant le cycle de développement mauvaise communication utilisateurs / informaticiens
– formalisme de représentation qui facilite la communication, l’organisation et – méthodes = guides pour l’analyse et aide à la représentation du futur SI
la vérification – conception par découpage en sous-problèmes, analytico-fonctionnelle
! Artefact – méthodes d’analyse structurée
– tout élément d'information utilisé ou généré pendant la totalité du cycle de ! Ensuite
développement d'un système logiciel – conception par modélisation : « construire le SI, c'est construire sa base
– facilite les retours sur conception et l’évolution des applications de données »
– Exemples : – méthodes globales qui séparent données et traitements
• morceau de code, commentaire, spécification statique d'une classe, spécification
comportementale d'une classe, jeu de test, programme de test, interview d'un ! Maintenant
utilisateur potentiel du système, description du contexte d'installation matériel, – conception pour et par réutilisation
diagramme d'une architecture globale, prototype, rapport de réalisation, modèle • Frameworks, Design Patterns, bibliothèques de classes
de dialogue, rapport de qualimétrie, manuel utilisateur…
– méthodes
! Méthode / processus finalement • exploitant un capital d'expériences
– types d’artefacts + notation + démarche (+ outils) • unifiées par une notation commune (UML)
– façon de modéliser et façon de travailler • procédant de manière incrémentale
• validant par simulation effective

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 20 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1
Méthodes et processus

Méthodes et processus
1ère génération 2ème génération
Modélisation par les fonctions Modélisation par les données
! Approches dites « systémiques »
! Approche dite « cartésienne »
! SI = structure + comportement
! Décomposition d’un problème en sous-problèmes ! Modélisation des données et des traitements
! Analyse fonctionnelle hiérarchique : fonctions et sous- – privilégie les flots de données et les relations entre structures de données
fonctions (apparition des SGBD)
– avec fonctions entrées, sorties, contrôles (proche du – traitements = transformations de données dans un flux (notion de processus)
fonctionnement de la machine) ! Exemple : MERISE
– les fonctions contrôlent la structure : si la fonction bouge, tout – plusieurs niveaux d’abstraction
bouge – plusieurs modèles
– données non centralisées ! Points forts
! Méthodes de programmation structurée – cohérence des données, niveaux d’abstraction bien définis.
– IDEF0 puis SADT ! Points faibles
! Points faibles – manque de cohérence entre données et traitements, faiblesse de la
– focus sur fonctions en oubliant les données, règles de modélisation de traitement (mélange de contraintes et de contrôles), cycles
décomposition non explicitées, réutilisation hasardeuse de développement trop figés (cascade)

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 22 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1
Méthodes et processus

Méthodes et processus

génération actuelle
Modélisation orientée-objet Développement logiciel et activités
! Mutation due au changement de la nature des logiciels
– gestion > bureautique, télécommunications ! Cinq grandes activités qui ont
! Approche « systémique » avec grande cohérence données/traitements
! Système émergé de la pratique et des projets
– ensemble d’objets qui collaborent
– considérés de façon statique (ce que le système est : données) et – spécification des besoins
dynamique (ce que le système fait : fonctions)
– évolution fonctionnelle possible sans remise en cause de la structure – analyse
statique du logiciel
! Démarche – conception
– passer du monde des objets (du discours) à celui de l’application en
complétant des modèles (pas de transfert d’un modèle à l’autre) – implémentation
– à la fois ascendante et descendante, récursive, encapsulation
– abstraction forte – tests
– orientée vers la réutilisation : notion de composants, modularité,
extensibilité, adaptabilité (objets du monde), souples
! Exemples : nombreux à partir de la fin des années 80

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 25
Méthodes et processus

Méthodes et processus
Activités : spécification des besoins Besoins : modèle FURPS+
! Fonctionnalités
– fonctions, capacité et sécurité
! Fondamentale mais difficile ! Utilisabilité
! Règle d’or – facteurs humains, aide et documentation
! Fiabilité (Reliability)
– les informaticiens sont au service du client, et – fréquence des pannes, possibilité de récupération et prévisibilité
pas l’inverse ! Performance
! Exigences fonctionnelles – temps de réponse, débit, exactitude, disponibilité et utilisation des ressources
! Possibilité de prise en charge (Supportability)
– à quoi sert le système – adaptabilité, facilité de maintenance, internationalisation et configurabilité
– ce qu’il doit faire ! +
– implémentation : limitation des ressources, langages et outils, matériel, etc.
! Exigences non fonctionnelles – interface : contraintes d’interfaçage avec des systèmes externes
– exploitation : gestion du système dans l’environnement de production
– performance, sûreté, portabilité, etc.
– conditionnement
– critères souvent mesurables – aspects juridiques : attribution de licences, etc.

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 26 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 27

Méthodes et processus
Méthodes et processus

Activités : analyse / conception Activités : implémentation / tests


! Un seule chose est sûre : ! Implémentation
– l’analyse vient avant la conception
! Analyse
– dans un ou plusieurs langage(s)
– plus liée à l’investigation du domaine, à la compréhension du – activité la plus coûteuse
problème et des besoins, au quoi
– recherche du bon système
! Tests
! Conception – tests unitaires
– plus liée à l’implémentation, à la mise en place de solutions, au • classe, composant
comment
– test du système intégré
– construction du système
! Frontière floue entre les deux activités – non régression
– certains auteurs ne les différencient pas • ce qui était valide à un moment doit le rester
• et doutent qu’il soit possible de distinguer • impossible à réaliser sans outils
– d’autres placent des limites
• ex. : analyse hors technologie / conception orientée langage spécifique

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 28 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 29
Méthodes et processus

Méthodes et processus

Outils et processus Des outils pour gérer un projet


! Une méthode spécifie ! Outils de planification
– des activités ! Outils de gestion des versions
– des artefacts à réaliser ! Outils de gestion de documentation
! Il est souvent vital de disposer d’outil(s) ! Outils de maquettage
soutenant le processus en
! Outils de gestion des tests
– pilotant / permettant les activités
– gérant les artefacts du projet ! Outils de modélisation
– pro, rétro, roundtrip
! Les outils peuvent être plus ou moins
– intégrés à la méthode ! Ateliers de développement logiciel
– inter-opérables ! Outils de vérification
– achetés / fabriqués / transformés… ! …
M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 30 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 31
Caractéristiques Processus Unifié
Processus unifié : caractéristiques
Plan
essentielles
! Avant-propos ! Dans cette partie
! Méthodes et processus – trame du processus
! Processus unifié : caractéristiques – itératif et incrémental
essentielles – piloté par les besoins
! Description du processus unifié – piloté par les risques
! Illustration : deux déclinaisons du – centré sur l’architecture
processus unifié ! Partie suivante
! Méthodes Agile – activités, métiers et artefacts
! Conclusion – phases d’un projet UP

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 32 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 33
Caractéristiques Processus Unifié

Caractéristiques Processus Unifié


Unified Software Development Process /
Unified Process (UP)
USDP
! Beaucoup de méthodes ! Un processus capable de
– liées à des outils, à l’adaptation à UML (comme langage de – dicter l’organisation des activités de l’équipe
notation) de méthodes pré-existantes, aux entreprises, etc. – diriger les tâches de chaque individu et de l’équipe dans son
– finalement, autant de méthodes que de concepteurs / projets ensemble
– spécifier les artefacts à produire
! USDP : Rumbaugh, Booch, Jacobson (les concepteurs
– proposer des critères pour le contrôle de produits et des
d’UML) activités de l’équipe
– purement objet ! Bref
– prend de la hauteur par rapport à RUP (Rational) – gérer un projet logiciel de bout en bout
– méthode / processus ! Regroupement de bonnes pratiques, mais
– regroupement des meilleures pratiques de développement – non figé
! Dans ce cours : beaucoup de généralités liées à USDP, qui – générique (hautement adaptable : individus, cultures, …)
s’appliquent à peu près à toute méthode objet • choisir un UP (« cas de développement » dans RUP) qui
correspond au projet du moment, appliquer
• seul un expert peut en décider

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 34 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 35
Caractéristiques Processus Unifié

Caractéristiques Processus Unifié

Phases 1 / 2
Cycles de vie et phases étude préliminaire et élaboration
Cycle 1 Cycle 2 Cycle 3 ! Étude préliminaire
– que fait le système ?
– à quoi pourrait ressembler l’architecture ?
– quels sont les risques ?
Étude – quel est le coût estimé du projet ? Comment le planifier ?
Élaboration Construction Transition
préliminaire – accepter le projet ?
Phases – jalon : « vision du projet »
! Élaboration
! Considérer un produit logiciel quelconque par rapport à ses – spécification de la plupart des cas d’utilisation
versions – conception de l’architecture de base (squelette du système)
– un cycle produit une version – mise en œuvre de cette architecture (CU critiques, <10 % des besoins)
! Gérer chaque cycle de développement comme un projet ayant – planification complète
quatre phases – besoins, architecture, planning stables ? Risques contrôlés ?
– vue gestionnaire (manager) – jalon : « architecture du cycle de vie »
– chaque phase se termine par un point de contrôle (ou jalon) ! Remarque
permettant aux chefs de projet de prendre des décisions – phases (surtout préliminaire) effectuées à coût faible

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 36 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 37
Caractéristiques Processus Unifié

Caractéristiques Processus Unifié


Phases 3 / 4
construction et transition
Phases et activités
temps
! Construction activités Étude Élaboration Construction Transition
– développement par incréments préliminaire
• architecture stable malgré des changements mineurs
– le produit contient tout ce qui avait été planifié Capture
• il reste quelques erreurs des besoins
– produit suffisamment correct pour être installé chez un client ? Analyse
– jalon : « capacité opérationnelle initiale »
! Transition Conception
– produit livré (version bêta)
Réalisation
– correction du reliquat d’erreurs
– essai et amélioration du produit, formation des utilisateurs, installation Test
de l’assistance en ligne
– tests suffisants ? Produit satisfaisant ? Manuels prêts ?
– jalon : « livraison du produit » ! Le cycle met en jeu des activités
! Remarque – vue du développement sous l’angle technique (développeur)
– construction = phase la plus coûteuse (> 50% du cycle), englobe – les activités sont réalisées au cours des phases, avec des
conception/codage/tests/intégration) importances variables

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 38 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 39

Caractéristiques Processus Unifié


Caractéristiques Processus Unifié

Processus unifié : caractéristiques


Modèles d’un projet USDP
! Les activités consistent à créer (entre autres) des modèles
essentielles
! Dans cette partie
– trame du processus
– itératif et incrémental
Modèle Modèle Modèle
des cas d’analyse de conception – piloté par les besoins
d’utilisation
– piloté par les risques
– centré sur l’architecture
! Partie suivante
Modèle
– activités, métiers et artefacts
de test – phases d’un projet UP
Modèle
Modèle
d’implémentation
de déploiement

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 40 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 41
Caractéristiques Processus Unifié

Caractéristiques Processus Unifié

Risque
Période
Les problèmes du d’intégration
et de tests
Anti-cascade
cycle en cascade ! Point commun à toutes les méthodes OO
! Risques élevés et non contrôlés ! Nécessité de reconnaître que le changement est une
– identification tardive des problèmes
Temps constante (normale) des projets logiciels
– preuve tardive de bon fonctionnement – feedback et adaptation
! Grand laps de temps entre début de fabrication et sortie du produit – convergence vers un système satisfaisant
! Décisions stratégiques prise au moment où le système est le moins ! Idées
bien connu
– construction du système par incréments
! Non-prise en compte de l’évolution des besoins pendant le cycle
– gestion des risques
! Les études montrent :
– passage d’une culture produit à une culture projet
– 25 % des exigences d’un projet type sont modifiées (35-50 % pour les
gros projet) (Larman 2005) – souplesse de la démarche
– 45% de fonctionnalités spécifiées ne sont jamais utilisées (Larman
2005, citant une étude 2002 sur des milliers de projets)
– le développement d’un nouveau produit informatique n’est pas une Cycle 1 Cycle 2 Cycle 3
activité prévisible ou de production de masse
– la stabilité des spécifications est une illusion
! Distinction entre activités trop stricte
Itération 1 Itération 2 Itération 3 … Itération n
– modèle théoriquement parfait, mais inadapté aux humains
M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 42 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 43
Caractéristiques Processus Unifié

Caractéristiques Processus Unifié


Itérations et incréments Itérations et phases
temps
! Des itérations
activités Étude Élaboration Construction Transition
– chaque phase comprend des itérations préliminaire
– une itération a pour but de maîtriser une partie des risques et
apporte une preuve tangible de faisabilité Capture
• produit un système partiel opérationnel (exécutable, testé et des besoin
intégré) avec une qualité égale à celle d’un produit fini
• qui peut être évalué
– permet de savoir si on va dans une bonne direction ou non
Analyse

! Un incrément par itération


Conception
– le logiciel et le modèle évoluent suivant des incréments
• série de prototypes qui vont en s’améliorant
– de plus en plus de parties fournies Réalisation
– retours utilisateurs
• processus incrémental Test
– les versions livrées correspondent à des étapes de la chaîne des
prototypes Itération 1 Itér 2 Itér… Itér… Itér… Itér… Itér…

itérations
M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 44 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 45
Caractéristiques Processus Unifié

Caractéristiques Processus Unifié


Avantages d’un processus itératif et incrémental
Itérations et risque
! Gestion de la complexité
– pas tout en même temps, étalement des décisions importantes
! Une itération
! Maîtrise des risques élevés précoce
– est un mini-projet
– diminution de l’échec
• plan pré-établi et objectifs pour le prototype, critères d’évaluation,
– architecture mise à l’épreuve rapidement (prototype réel)
– comporte toutes les activités (mini-cascade)
! Intégration continue
– est terminée par un point de contrôle
– progrès immédiatement visibles
• ensemble de modèles agréés, décisions pour les itérations suivantes
– maintien de l’intérêt des équipes (court terme, prototypes vs
– conduit à une version montrable implémentant un certain nombre de CU documents)
– dure entre quelques semaines et 9 mois (au delà : danger) ! Prise en compte des modifications de besoins
• butée temporelle qui oblige à prendre des décisions
– feedback, implication des utilisateurs et adaptation précoce
! On ordonne les itérations à partir des priorités établies pour les cas ! Apprentissage rapide de la méthode
d’utilisation et de l’étude du risque – amélioration de la productivité et de la qualité du logiciel
– plan des itérations ! Adaptation de la méthode
– chaque prototype réduit une part du risque et est évalué comme tel – possibilité d'explorer méthodiquement les leçons tirées d'une itération
– les priorités et l’ordonnancement de construction des prototypes peuvent (élément à conserver, problèmes, éléments à essayer…)
changer avec le déroulement du plan ! Mais gestion de projet plus complexe : planification adaptative

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 46 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 47
Caractéristiques Processus Unifié
Caractéristiques Processus Unifié

Processus unifié : caractéristiques


Un processus piloté par les besoins
essentielles
! Dans cette partie ! Objectif du processus
– trame du processus – construction d’un système qui réponde à des besoins
– par construction complexe de modèles
– itératif et incrémental
! Cas d’utilisation = expression / spécification des besoins
– piloté par les besoins
– CU portée système / objectifs utilisateurs
– piloté par les risques
! CU utilisés tout au long du cycle
– centré sur l’architecture
– validation des besoins / utilisateurs
! Partie suivante – point de départ pour l’analyse (découverte des objets, de leurs
– activités, métiers et artefacts relations, de leur comportement) et la conception (sous-
systèmes)
– phases d’un projet UP
– guide pour la construction des interfaces
– guide pour la mise au point des plans de tests

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 48 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 49
Caractéristiques Processus Unifié

Caractéristiques Processus Unifié


Les CU lient les modèles Avantages des cas d’utilisation
! Centrés utilisateurs
– support de communication en langue naturelle entre utilisateurs et
Besoins spécifié par concepteurs basé sur les scénarios (et non liste de fonctions)
Modèle – dimension satisfaction d’un objectif utilisateur
des cas réalisé par
• également pour les utilisateurs informaticiens (administration)
d’utilisation distribué par
Analyse – besoins fonctionnels, pour acteurs humains et non humains à identifier
Modèle précisément
d’analyse
! Assurent la traçabilité par rapports aux besoins de toute décision de
implémenté par conception sur l’ensemble du projet
Conception Modèle Modèle
de conception de déploiement
– tout modèle peut se référer in fine à un CU
vérifié par
! Assurent le lien pour une vision commune des membres du projet sur
l’architecture
Implémentation
Modèle
! Attention
d’implémentation – créer de bons CU est un art (cf. CM rédaction de CU)
– danger de décomposition fonctionnelle des CU qui reviendrait à une
Tests Modèle conception fonctionnelle à l’ancienne
de test

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 50 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 51
Caractéristiques Processus Unifié

Caractéristiques Processus Unifié


Processus unifié : caractéristiques
Processus piloté par les risques
essentielles
! Dans cette partie ! Différentes natures de risques
– besoins / technique / autres
– trame du processus
! Exemples
– itératif et incrémental
– le système construit n’est pas le bon
– piloté par les besoins – architecture inadaptée, utilisation de technologies mal
– piloté par les risques maîtrisées, performances insuffisantes
– centré sur l’architecture – personnel insuffisant, problèmes commerciaux ou financiers
(risques non techniques, mais bien réels)
! Partie suivante ! Gestion des risques
– activités, métiers et artefacts – identifier et classer les risques par importance
– phases d’un projet UP – agir pour diminuer les risques
• ex. changer les besoins, confiner la portée à une petite partie du
projet, faire des test pour vérifier leur présence et les éliminer
– s’ils sont inévitables, les évaluer rapidement
• tout risque fatal pour le projet est à découvrir au plus tôt

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 52 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 53
Caractéristiques Processus Unifié

Caractéristiques Processus Unifié

Processus unifié : caractéristiques


Pilotage par les risques et itérations
! Principe
essentielles
– identifier, lister et évaluer la dangerosité des risques ! Dans cette partie
– construire les itérations en fonction des risques : s’attaquer en
priorité aux risques les plus importants qui menacent le plus la
– trame du processus
réussite du projet – itératif et incrémental
• « provoquer des changements précoces » – piloté par les besoins
• ex. stabiliser l’architecture et les besoins liés le plus tôt possible
– piloté par les risques
Risque – centré sur l’architecture
Inception Période d’intégration
et de tests
! Partie suivante
Élaboration Cascade
– activités, métiers et artefacts
– phases d’un projet UP
Itératif
Construction

Transition

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 54


Temps/itérations M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 55
Caractéristiques Processus Unifié

Architecture ? Architecture
! Difficile à définir
– Ex. bâtiment : plombier, électricien, peintre, ne voient pas la ! Définition pour ce cours
même chose. – art d’assembler des composants en respectant des
! Définitions contraintes, ensemble des décisions significatives sur
– Software architecture is not only concerned with structure • l’organisation du système
and behavior, but also with usage, functionality, • les éléments qui structurent le système
performance, resilience, reuse, comprehensibility, economic • la composition des sous-systèmes en systèmes
and technological constraints and tradeoffs, and esthetics. • le style architectural guidant l’organisation (couches…)
(RUP, 98) – ensemble des éléments de modélisation les plus
– A Technical Architecture is the minimal set of rules signifiants qui constituent les fondations du système à
governing the arrangement, interaction, and développer
interdependance of the parts or elements that together may
be used to form an information system. (U.S. Army 1996)

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 56 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 57

Caractéristiques Processus Unifié


Caractéristiques Processus Unifié

Facteurs influençant l’architecture Quelques axes pour considérer l’architecture


Domaine d’application Expérience
! Architectures client/serveurs en niveaux (tiers)
Cas d’utilisation Capacités d’évolution ! Architectures en couches
– Présentation, Application, Domaine/métier, Infrastructure métier (services
Contraintes métiers de bas-niveau), Services techniques (ex. sécurité), Fondation (ex.
non fonctionnelles Réutilisation accès et stockage des données)
Architecture ! Architectures en zones de déploiement
Standards imposés, – déploiement des fonctions sur les postes de travail des utilisateurs
IHM (entreprise : central/départemental/local)
politique d’entreprise
! Architectures à base de composants
Middleware, – réutilisation de composants
Systèmes existants Système support
(SE, SGBD) framework ! On pourra parler
– d’architecture logicielle (ou architecture logique) : organisation à grande
échelle des classes logicielles en packages, sous-systèmes et couches
! Points à considérer – d’architecture de déploiement : décision de déploiement des différents
Performances, qualité, testabilité, convivialité, sûreté, disponibilité, éléments
extensibilité, exactitude, tolérance aux changements, robustesse, ! Notion de patterns architecturaux
facilité de maintenance, fiabilité, portabilité, risque minimum, – ex. : Couches, MVC…
rentabilité économique…
M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 58 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 59
Caractéristiques Processus Unifié
Caractéristiques Processus Unifié

Processus centré sur l’architecture Construction de l’architecture : objectif


! Les cas d’utilisation ne sont pas suffisants comme lien pour
l’ensemble des membres du projet ! Objectif : construire une architecture
! L’architecture joue également ce rôle, en insistant sur la
réalisation concrète de prototypes incrémentaux qui – comme forme dans laquelle le système doit
« démontrent » les décisions prises s’incarner
! D’autre part • les CU réalisés doivent y trouver leur place / la
– plus le projet avance, plus l’architecture est difficile à modifier réalisation des CU suivant doit s’appuyer sur
– les risques liés à l’architecture sont très élevés, car très coûteux l’architecture.
! Objectif pour le projet
– qui permette de promouvoir la réutilisation
– établir dès la phase d’élaboration des fondations solides et
évolutives pour le système à développer, en favorisant la – qui ne change pas trop
réutilisation
• converger vers une bonne architecture rapidement
– l’architecture s’impose à tous, contrôle les développements
ultérieurs, permet de comprendre le système et d’en gérer la
complexité
! L’architecture est contrôlée et réalisée par l’architecte du projet

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 60 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 61
Caractéristiques Processus Unifié
Caractéristiques Processus Unifié

Construction de l’architecture : principe (1) Construction de l’architecture : principe (2)

! Pour commencer ! Ensuite :


– choix d’une architecture de haut-niveau et – Construction de l’architecture de référence
construction des parties générales de • confrontation à l’ébauche des cas d’utilisation les
plus significatifs (un à un)
l’application
• construction de parties de l’application réelle (sous-
– ébauche à partir systèmes spécifiques)
• de solutions existantes • stabilisation de l’architecture autour des fonctions
essentielles (sous-ensemble des CU).
• de la compréhension du domaine
• traitement des besoins non fonctionnel dans le
• de parties générales aux applications du domaine contexte des besoins fonctionnels
(quasi-indépendant des CU)
• identification des points de variation et les points
• des choix de déploiement d'évolution les plus probables.

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 62 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 63
Caractéristiques Processus Unifié

Construction de l’architecture : principe (3) Caractéristiques Processus Unifié Architecture et élaboration


! Phase d’élaboration
! Ensuite : – aller directement vers une architecture robuste, à coût limité,
appelée « architecture de référence »
– réalisation incrémentale des cas d’utilisation – 10% des classes suffisent
• itérations successives ! L’architecture de référence
• l’architecture continue à se stabiliser sans – permettra d’intégrer les CU incrémentalement
changement majeur – guidera le raffinement et l’expression des CU pas encore détaillés

! Remarque : maturation des cas


d’utilisation Besoin de développement des
modèles pour une architecture de
– plus faciles à exprimer et plus précis quand un référence : « petite et maigre »
début d’application est disponible

Modèle des cas Modèle Modèle de Modèle de Modèle de Modèle de


d’utilisation d’analyse conception déploiement réalisation tests

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 64 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 65
Caractéristiques Processus Unifié
Caractéristiques Processus Unifié

(USDP, 2000)

Description de l’architecture Architecture : en résumé


! L’architecture doit être une vision partagée sur un système très ! Qu’est ce que l’architecture ?
complexe qui permet de guider le développement – C’est ce que l’architecte spécifie dans une description d’architecture. La description
– elle doit aussi rester compréhensible de l’architecture laisse à l’architecte la maîtrise technique du développement du
système. L’architecture logicielle s’intéresse à la fois aux éléments structuraux
! Mettre en place une description (ou documentation) explicite de significatifs du système, tels que les sous-systèmes, les classes, les composants et
l’architecture, qui servira de référence jusqu’à la fin du cycle et après, les nœuds, et aux collaborations se produisant entre ces éléments par l’intermédiaire
et qui doit rester aussi stable que l’architecture de référence des interfaces.
! Une description contient une restriction du modèle – Les cas d’utilisation orientent l’architecture de telle sorte que le système offre les
– extraits les plus significatifs des modèles de l’architecture de référence usages et les fonctionnalités désirés tout en satisfaisant des objectifs de performance.
Outre son exhaustivité, l’architecture doit montrer assez de souplesse pour accueillir
• vue architecturale du modèle des CU : quelques CU
de nouvelles fonctions et permettre la réutilisation de logiciels existants.
• vue du modèle d’analyse (éventuellement non maintenue)
• vue du modèle de conception : principaux sous-systèmes et interfaces, ! Comment l’obtient-on ?
collaborations – L'architecture est développée de façon itérative au cours de la phase d’élaboration au
• vue du modèle de déploiement : diagramme de déploiement travers [des différentes activités]. Les CU signifiants sur le plan de l’architecture, ainsi
• vue du modèle d’implémentation : artefacts que certaines entrées d’une autre type, permettent d’implémenter l’architecture de
– besoins significatifs sur le plan architectural non décrits par les CU, exigences non référence, ou « squelette », du système.Cet ensemble d’entrées supplémentaires
fonctionnelles (ex. sécurité) comprend les besoins logiciels du système, les middleware, les systèmes existants à
– description de la plateforme, des systèmes, des middleware utilisés réutiliser, les besoins non fonctionnels…
– description des frameworks avec mécanismes génériques (qui pourront être ! Comment la décrit-on ?
réutilisés) – La description de l’architecture est une vue des modèles du système […]. Elle décrit
– patterns d’architecture utilisés les parties du système qu’il est important, pour les développeurs et les autres
intervenants, de comprendre.
M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 66 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 67
Caractéristiques Processus Unifié

Caractéristiques Processus Unifié


Remarque Tous les critères caractérisant les
Processus orienté composants processus UP sont liés
! On cherche à développer et à réutiliser des
composants Processus Piloté par
– souplesse, préparation de l’avenir
itératif et les risques
! Au niveau modélisation
– regroupement en packages d’analyse, de conception incrémental
réutilisables
– utilisation de design patterns
• architecturaux
• objets (création, comportement, structure)
Piloté par
! Au niveau production Centré sur
– utilisation de frameworks les cas
– achats de composants d’utilisation l’architecture

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 68 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 69
Caractéristiques Processus Unifié

Processus unifié : activités et phases Caractéristiques Processus Unifié Les activités selon les phases
temps
activités
! Activités
Étude Élaboration Construction Transition
– que faut-il décrire ? préliminaire
– sous quelle forme (modèles, documents textuels…) ?
– comment obtenir les produits ? Capture itération
des besoin
– description technique de la méthode
! Phases Analyse
– planifier les itérations / phases suivantes
– pour chaque phase : Conception
• quels sont les buts à atteindre ?
• quels sont les livrables ? Réalisation
• quels aspects décrire, avec quel niveau d’abstraction ?
Test
– description du déroulement du projet
itérations

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 70 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 71
Description Processus Unifié

Plan Description du processus unifié


! Avant-propos ! Dans cette partie
! Méthodes et processus – les différentes activités pour passer des
! Processus unifié : caractéristiques besoins au code
essentielles
– les différentes phases permettant de
! Description du processus unifié
piloter les activités
! Illustration : deux déclinaisons du
processus unifié – quelques focus sur des points
particuliers
! Méthodes Agile
! Conclusion

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 72 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 73
Description Processus Unifié

Description Processus Unifié


Rappel : principes de conception objet USDP
! UP définit un enchaînement d’activités
! Passer des besoins aux classes – réalisées par un ensemble de travailleurs (rôles, métiers)
implémentées en réalisant des scénarios – ayant pour objectif de passer des besoins à un ensemble
comme des collaborations entre objets cohérent d’artefacts constituant un système informatique
– déduire les responsabilités des collaborations – et de favoriser le passage à un autre système quand les
besoins évolueront (nouvelle version)
! S’appuyer sur un modèle du domaine pour
créer des objets métiers susceptibles ! UP n’est qu’un cadre général de processus
– un projet particulier est une instance de ce cadre adaptée
d’évoluer avec les besoins au contexte du projet (taille, personnels, entreprise,
– assumer l’évolutivité des besoins compréhension du processus, etc.)
! Favoriser systématiquement la réutilisation
– en conception : patterns
– en construction : composants, frameworks
M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 74 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 75

Description Processus Unifié


Description Processus Unifié

Activités, travailleurs, artefacts


Travailleurs et activités
! Artefacts (quoi)
– documentent le système et le projet (traces et produits)
– ex. : modèle architectural, code source, exécutable,
modèle des CU, etc.
! Travailleurs ou discipline (qui)
– rôle par rapport au projet
– ex. : architecte, analyste de CU
! Activités (comment)
– 5 grandes activités, multiples sous-activités
• tâches réalisée par un travailleur, impliquant une
manipulation d’information
– ex. : concevoir une classe, corriger un document,
détailler un CU

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 76 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 77
Description Processus Unifié

Description Processus Unifié

R(ational)UP : quelques disciplines de plus


Workflows
! Enchaînement d’activités qui produisent des artefacts
! Diagramme d’activité

Project management

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 78 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 79
Description Processus Unifié

Description Processus Unifié


Exemple RUP : requirement workflow Les modèles du processus

! Objectif
– créer un modèle global composé de modèles
– et pas une montagne de documents
! Les modèles sont liés
– par les CU
– par les enchaînement d’activité qui les mettent en place
! Rappel
– la description de l’architecture utilise une sous-partie des
modèles

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 80 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 81

Description Processus Unifié


Description Processus Unifié

Vue globale des modèles Avertissement sur la suite


Capture des besoins
!
– le modèle des CU représente le système vu de l’extérieur, son insertion
! Ce n’est pas forcément du UP générique
dans l’organisation, ses frontières fonctionnelles. complet
! Analyse
– le modèle d’analyse représente le système vu de l’intérieur. Les objets – insistance sur certains points plutôt que
sont des abstractions des concepts manipulées par les utilisateurs. Point d’autres, utilisation de plusieurs sources à peu
de vue statique et dynamique sur les comportements.
! Conception près cohérentes
– le modèle de conception correspond aux concepts utilisés par les outils,
les langages et les plateformes de développement. Le modèle de ! S’appuie largement sur le cours de JL
déploiement spécifie les nœuds physiques et la distribution des
composants. Permet d’étudier, documenter, communiquer et d’anticiper Sourrouille (INSA-Lyon)
une conception
! Implémentation
– trame description / exemple
– le modèle d’implémentation lie le code et les classes de conception
! Tests
– le modèle de tests décrits les cas de tests

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 82 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 83

1- Activité expression des besoins


Description Processus Unifié
Description Processus Unifié

1- Activité : expression Exemple : liste initiale


des besoins des besoins
Une chaîne d'hôtels a décidé de mettre sur le réseau un système de réservation de
! Quelles valeurs sont attendues du nouveau système et de chambres ouvert à tout client via un navigateur, et d'autre part elle veut automatiser la
la nouvelle organisation ? gestion de ses hôtels. Un hôtel est géré par un directeur assisté d'employés.
Pour réserver à distance, après avoir choisi hôtels et dates, le client fournit un numéro de
– arriver à un accord client / développeurs carte bleue. Lorsque le retrait a été accepté (1h après environ), la réservation devient
# Recenser les besoins potentiels effective et une confirmation est envoyée par mail. Les clients sous contrat (agences de
voyage...) bénéficient d'une réservation immédiate.
– caractéristiques potentielles, priorité, risques…
Le directeur de l'hôtel enregistre les réservations par téléphone. Si un acompte est reçu
# Comprendre le contexte du système avant 72h, la réservation devient effective, sinon elle est transformée en option (toute
– association d’analystes et d’experts métier pour construire un personne ayant payé a la priorité). Si la réservation intervient moins de 72h avant la date
d'occupation souhaitée, le client doit se présenter avant 18h.
vocabulaire commun
Le directeur fait les notes des clients, perçoit l'argent et met à jour le planning d'occupation
– modèle du domaine (ou modèle de l’entreprise) effectif des chambres.
• diagramme de classes Une chambre est nettoyée soit avec l'accord du client lorsqu'il reste plusieurs jours, soit
– modèle du métier (éventuellement) après le départ du client s'il s'en va, et dans ce cas avant occupation par un nouveau
client. Les employés s'informent des chambres à nettoyer et indiquent les chambres
• modélisation des processus (CU métier, diagrammes de
nettoyées au fur et à mesure. Pour cela les chambres vides à nettoyer doivent être
séquences, activité) affichées, et les employés doivent pouvoir indiquer les chambres nettoyées de façon
– glossaire très simple. Un historique des chambres nettoyées par chaque employé est conservé un
mois.

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 84 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 85
1- Activité expression des besoins 1- Activité expression des besoins

Description Processus Unifié


Description Processus Unifié

Exemple :
Modèle du domaine modèle du domaine
! Représentation des classes conceptuelles d’une situation
réelle Occupation
– objets métier (ex. Réservation), du monde réel (ex. Chambre), Hôtel
événements dateDébut
Numéro dateFin
– quelques attributs, peu d’opérations
– associations (s’il y a nécessité de conserver la mémoire de la
relation)
– les classes non retenues sont placées dans un glossaire 0..* 0..*
Chambre Hôte
! « Dictionnaire visuel » du domaine construit surtout pendant 0..* 0..*
Sdb : douche
la phase d’élaboration, itérativement en fonction des CU
considérés Réservation

! Servira à réduire le décalage des représentation entre dateDébut


domaine et objets logiciels dateFin

– inspiration pour la construction de la couche domaine de


l'architecture logicielle (parfois aussi appelée modèle de
domaine : ne pas mélanger)

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 86 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 87

1- Activité expression des besoins 1- Activité expression des besoins

Description Processus Unifié


Description Processus Unifié

Méthode de construction de Modèle du métier


modèle du domaine (Larman) (facultatif)
! Réutiliser/modifier des modèles existants ! Modèle des CU métier
! Lister les catégories – représenter les processus
– acteurs métier
– classes : objets physiques, transactions, autre systèmes – CU métier Client
informatiques, organisations, documents de travail, etc. Gérant
! Modèle objet métier
– associations : A est membre de B, A est une transaction – montre comment les
liée à une transaction B, A est une description de B, etc. CU métier sont réalisés par
• acteurs métier
! Utiliser des groupes nominaux
• travailleurs métier
– extraits par exemple des CU détaillés • entités métier Réservation Planning
! Modélisation du domaine
= modélisation métier limitées aux entités métier
! Possibilité d’identifier les CU à partir
du modèle métier
Ménage

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 88 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 89

1- Activité expression des besoins 1- Activité expression des besoins


Description Processus Unifié

Description Processus Unifié

Produits de l’acquisition des besoins Expression des besoins (suite)


Concepts de
Expérience l’application
Utilisateurs
Documents
# Appréhender les besoins fonctionnels
du domaine -manuel AQ – écrire les récits d’utilisation
-…
Acquisition des besoins – définir les acteurs et leurs objectifs
Compréhension du système • limites du système à construire
Modèle du domaine – interactions avec le système
Liste des besoins
(modèle du métier) – définir les cas d’utilisation
potentiels
• portée système / objectif utilisateur
Spécification des besoins • description brève, puis plus détaillée
– construire le modèle des cas d’utilisation
• organiser les cas d’utilisation
– utiliser des CU portée organisation

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 90 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 91
1- Activité expression des besoins 1- Activité expression des besoins
Description Processus Unifié

Description Processus Unifié


Exemple : description des CU
Exemple : description des CU Gestion de l’hôtel
Le système à développer est divisé en deux sous systèmes indépendants!:
Administration
le système de réservation à distance et le système de gestion local à
l'hôtel. Le gérant entre la liste de
Facturation ses chambres, leur
La base de données des réservations est considérée comme un système
externe mais non détaillé (sous-système classique). catégorie, leur prix... Il
peut déclarer qu'une
Localement, la base de données est considérée comme interne au chambre est
système et ignorée pour l'instant. Administration
momentanément non
« actor » utilisable (travaux...). Il
Réservation distante Système de fait le bilan mensuel des
Gérant Gestion planning Réservation employés de nettoyage. Il
« actor »
tient à jour une liste des
Base de données
des réservations
services et les prix (petit
déjeuner en salle, dans la
Réservation Réservation chambre...)...
Client « actor »
Facturation
Système ...
bancaire Mise à jour
Confirmation Nettoyage
nettoyage

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 92 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 93

1- Activité expression des besoins 1- Activité expression des besoins

Description Processus Unifié


Description Processus Unifié

Expression des besoins (suite) Expression des besoins (suite)


# Classer les cas d’utilisation par priorité # Détailler et formaliser les cas d’utilisation
– la priorité dépend des risques associés au cas – scénarios
d’utilisation et de leur importance pour l’architecture, des • séquence d’étape nominale
nécessités de réalisation et de tests • extensions
– compléter la description des scénarios
! Exemple : classement des CU par importance • éventuellement diagrammes de séquence système, diagrammes
d’activité, de machines d’états
Les traitements très classiques de la gestion locale sont à examiner en • maquette IHM
– uniquement si l’interface est complexe ou nécessite une évaluation
dernier (risque faible). Les réservations (client ou gérant) mettent en jeu par le client
une architecture plus complexe et sont à examiner en priorité : # Structurer le modèle
Réservation (distante) – réorganiser si besoin
Réservation locale Utilisateurs non spécialistes, interface simple et logique.
Administration Problème classique, sans risque majeur, donc pas de
maquette.
...

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 94 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 95

1- Activité expression des besoins 1- Activité expression des besoins


Description Processus Unifié

Description Processus Unifié

Exemple : détails des cas d’utilisation Exemple : diagramme de séquence


système pour un scénario
! Description détaillée
– scénario nominal, extensions : Gestion : Système de
hôtel
– voir cours sur la rédaction des CU : Gérant réservation

CU : Réservation d’une chambre Planning(période)


Portée : système de réservation
Niveau : objectif utilisateur plan := Planning(période)
Acteur principal : Gérant Afficher(plan)
Intervenants et intérêts : Client, Chaîne hôtelière
Préconditions : une chambre est libre pour la période désirée Réserver(chambre, nom, période)
Garanties minimales : rien ne se passe ok := Réserver(hôtel,chambre, nom, période)
Garanties en cas de succès : la chambre est réservée
Scénario nominal [ok] Informer(résultat)
1. Le gérant demande le planning d'occupation pour la période qui vient. Le système
affiche le planning sur plusieurs semaines. [non ok] Problème(nature) ! Remarque
2. Le gérant sélectionne une chambre libre pour une date qui l’intéresse. Le système
– une séquence d’étapes textuelle est
lui présente le récapitulatif de cette chambre, et sa disponibilité quelques jours avant
beaucoup plus claire et plus explicite
et après la date choisie.

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 96 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 97
1- Activité expression des besoins 1- Activité expression des besoins
Description Processus Unifié

Description Processus Unifié


Expression des besoins : artefacts
Expression des besoins (suite)
Concepts de
Utilisateurs
# Appréhender les besoins non fonctionnels (contraintes sur le Expérience l’application Documents
système : environnement, plate-forme, fiabilité, vitesse…) du domaine -manuel AQ
– rattacher si possible les besoins aux cas d’utilisation -…
• description dans les descriptions des CU (section « exigences Acquisition des besoins
particulières » pour UP)
Compréhension du système
– sinon, dresser une liste des exigences supplémentaires
Modèle du domaine
Liste des besoins
La chaîne possède 117 hôtels de 30 chambres en moyenne. Les appels sur le (modèle du métier)
réseau sont évalués à 300 par jour (au début, prévoir des évolutions). potentiels

Pour des raisons d'extensibilité, de performances et de sécurité, la chaîne de


traitement des réservations des clients doit être indépendante des liaisons des Besoins / Spécification des besoins
hôtels avec le système de réservation. Les hôtels sont reliés en permanence au spécifications Classement des cas
système de réservation aux coupures près (ADSL) et les postes devront être fiables (non fonctionnels) (" vue architecture)
(coupures de courant...). supplémentaires
Le temps d’apprentissage du logiciel par les acteurs professionnels ne doit pas Maquette(s) interface(s)
dépasser une demi-journée. Modèle des cas utilisateur
d’utilisation Analyse
Une société tierce s'occupera de la maintenance du système et abritera les Glossaire
serveurs. (texte) Vision
M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 98 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 99

1- Activité expression des besoins

Description Processus Unifié


Description Processus Unifié

Expression des besoins : travailleurs 2- Activité : analyse


! Objectif :
! Analyste système, du domaine – construction du modèle d’analyse pour préparer la
– modèle du domaine / du métier conception
• forme générale stable du système, haut-niveau d’abstraction
– modèle des CU / acteurs
• vision plus précise et formelle des CU, réalisation par des
– glossaire objets d’analyse
! Spécificateur de cas d’utilisation • passage du langage du client à celui du développeur
– CU détaillés # Analyse architecturale
! Concepteur d’interface utilisateur – identifier les paquetages d’analyse
• regroupement logique indépendant de la réalisation
– maquette/prototype • relations de dépendances, navigabilité entre classes de
! Architecte paquetage différents
• à partir des CU et du domaine
– vue architecturale du modèle des CU
• point de départ du découpage en sous-systèmes

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 100 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 101

2- Activité analyse 2- Activité analyse


Description Processus Unifié

Description Processus Unifié

Exemple :
découpage en paquetages Analyse architecturale (suite)
! Identifier les classes entités manifestes (premier
Gestion réservations
modèle structurel)
Réservations – modèle des 10-20 classes constituant l’essence du
Clients/gérants domaine (à partir du modèle du domaine/métier)
Réservations – 3 stéréotypes de classe : frontière, contrôle, entité
Gestion hôtel
Requêtes – responsabilités évidentes
gérants
! Identifier les exigences particulières communes
– distribution, sécurité, persistance, tolérance aux fautes…
Comptabilité – les rattacher aux classes et cas d’utilisation
Connexion
système
bancaire

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 102 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 103
2- Activité analyse 2- Activité analyse
Description Processus Unifié

Description Processus Unifié


Exemple : premier modèle structurel
(paquetage : Gestion hôtel) Activité : analyse (suite)
# Analyse des cas d'utilisation
– réalisation des scénarios des cas d'utilisation " découverte des
<< InterfaceUtilisateur >>
GestionHotel AgentNettoyage
classes, attributs, relations, interactions entre objets, et des
Hôtel Emploie
besoins spéciaux
+lesAgents
numéro – identifier les classes, attributs et relations
<<InterfaceLogicielle >>
Historique • examiner l'information nécessaire pour réaliser chaque scénario
CComptabilité • ajouter les classes isolant le système de l'extérieur (interfaces
Nettoyage Nettoie physiques, vues externes des objets…)
• éliminer les classes qui n’en sont pas : redondantes, vagues, de
conception, etc.
<< InterfaceLogicielle >>
SystèmeRéservation +lesChambres
– décrire les interactions entre objets
Hôte Occupe Chambre • diagrammes de séquence
• diagrammes de collaboration
dateDébut : Date
• si scénario trop complexe, modéliser par parties (enchaînements), et
Responsabilités :
dateFin : Date indiquer les branchements
<< InterfacePhysique >> - connaître sa taille
CommunicationRéseau - connaître son ! Le modèle structurel sera construit pour supporter l'union des
équipement
- savoir si elle est collaborations et interactions exprimées
occupée
M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 104 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 105

2- Activité analyse 2- Activité analyse

Description Processus Unifié


Description Processus Unifié

Exemple : diagramme de collaboration


(Raffinement du scénario « Mise à jour Nettoyage ») Activité : analyse (suite)
2.3: Ajouter(nouvNettoyage)

# Préciser les classes d’analyse


– faire le bilan des responsabilités à partir des
2:ChambreNettoyée(noCh,noEmpl)
collaborations
• responsabilité d’une classe = union des rôles dans tous les
2.4: Afficher(resteANettoyer) cas (négliger en analyse les opérations implicites)
:IUGestionHôtel : Hôtel
2.1: marquer(nettoyée)
– identifier les attributs
• rester simple, pas choix de conception à ce niveau
1:Chambre nettoyée 2.2: nouvNettoyage := – identifier les associations
New(date, – identifier les relations d’héritage
lesAgents[noEmpl]…)
– identifier les besoins spéciaux des classes
# Vérifier les paquetages d’analyse
– dépendances, couplages
lesChambres[noCh] :
Chambre : Nettoyage – ils seront à la base des composants / sous-systèmes
{new}

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 106 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 107

2- Activité analyse 2- Activité analyse


Description Processus Unifié

Description Processus Unifié

Produits de l’analyse Analyse : travailleurs


Produits des activités précédentes

! Architecte
Analyse – responsable de l’intégrité du modèle d’analyse
Réalisation des cas Modèle de
(collaboration, paquetages – description de l’architecture
séquences) • extrait du modèle d’analyse
Description de
Modèle d’analyse l’architecture ! Ingénieur des CU
(structurel) (analyse)
Conception – réalisation/analyse des CU
! Ingénieur des composants
– classes d’analyse
– paquetages d’analyse

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 108 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 109
2- Activité analyse 2- Activité analyse
Description Processus Unifié

Description Processus Unifié


Comparaison des Remarque :
modèles CU et analyse Différentes sortes de classes
Modèle des cas d'utilisation Modèle d’analyse
! Classe conceptuelle
Langage du client Langage du développeur – objets du monde réel

Vue externe du système Vue interne du système ! Classe d’analyse


– 3 stéréotypes de Jacobson : frontière, contrôle, entité
Structuré par les cas Structuré par les classes et
(vue externe) paquetages (vue interne) ! Classe logicielle
– composant logiciel du point de vue des spécifications ou
Utilisé comme "contrat" avec
le client Utilisé pour comprendre le système de l’implémentation
– classe de conception
Informel Cohérent, non redondant...
! Classe d'implémentation
Capture les fonctions du Esquisse la manière de réaliser les – classe implémentée dans un langage OO
système et ce qui conditionne fonctions dans le système et leur
l'architecture répartition dans des classes

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 110 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 111

3- Activité conception

Description Processus Unifié


Description Processus Unifié

Exemple : diagramme de déploiement


3- Activité : conception
! Proposer une réalisation de l'analyse et des cas d’utilisation Client 1 Client i
Client n
en prenant en compte toutes les exigences internet internet internet
# Conception architecturale
– identifier les nœuds et la configuration du réseau Serveur
intranet
(déploiement), les composants/sous-systèmes et leurs Système internet clients BD
interfaces (modèle en couche), les classes significatives de bancaire réservations
l'architecture intranet
Serveur
# Concevoir les cas d'utilisation Gérants
– identifier les classes nécessaires à la réalisation des cas ... internet
internet internet
# Concevoir les classes et les interfaces Gérant 1 Gérant n
– ... décrire les méthodes, les états, prendre en compte les Gérant i
besoins spéciaux
# Concevoir les sous-systèmes • Les deux serveurs et la BD des réservations peuvent être sur un même nœud tant que
les liaisons clients ne pénalisent pas les liaisons gérants
– mettre à jour les dépendances, les interfaces...
• Les liaisons gérant-serveur sont en internet/ADSL
– composants de service liés à l’appli, de middleware…
• Sur le Gérant, la facturation doit pouvoir être sur une autre machine
– permettra de distribuer le travail aux développeurs
• ...
M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 112 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 113

3- Activité conception 3- Activité conception


Description Processus Unifié

Description Processus Unifié

Exemple : découpage en composants


Produits de la conception
<<component>> Paiement
Stockage Accès BD
<<component>> Produits des activités précédentes
réservations Accès
système bancaire

Conception
Réservation Services gérant
<<component>> Diagrammes Modèle des
<<component>> Requêtes d’interactions composants
Réservations gérant détaillés (cas)
Description de
Modèle de classe l’architecture
<<component>>
de conception (conception)
Gestion hôtel Réalisation
Modèle de
<<component>> déploiement
<<component>>
Comptabilité ODBC BD gestion
Compta

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 114 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 115
3- Activité conception 3- Activité conception
Description Processus Unifié

Description Processus Unifié


Comparaison des modèles analyse et conception
Conception : travailleurs
Modèle d’analyse Modèle de conception

! Architecte Modèle conceptuel, abstraction du Modèle physique qui sera mis en


système oeuvre
– intégrité des modèles de conception et de
déploiement Générique vis à vis de la conception Spécifique
– description de l’architecture
Moins formel Plus formel
! Ingénieur de CU
– réalisation/conception des CU Donne les grandes lignes de la Réalise cette conception.
conception, dont l'architecture. Définit Façonne le système en essayant
! Ingénieur de composants une structure essentielle pour le de conserver la structure définie
système
– classes de conception Représente 1/ 5ème du coût de la
– composants/sous-systèmes de conception conception

– interfaces Éventuellement non maintenu durant Nécessairement maintenu durant


le cycle le cycle (UML mode plan)

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 116 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 117

4- Activité réalisation

Description Processus Unifié


Description Processus Unifié

4- Activité : réalisation Produits de la réalisation

# Mise en oeuvre architecturale Produits des activités précédentes


– identifier les artefacts logiciels et les associer à
des nœuds
Réalisation
# Intégrer le système Interfaces Composants et
– planifier l'intégration, intégrer les incréments (composants et sous-systèmes
réalisés sous-systèmes)
Plan
# Réaliser les composants/sous-systèmes Artefacts : d’intégration
# Réaliser les classes exécutables, fichiers, Test
données…
# Faire les tests unitaires
– tests de spécification en boîte noire, de
structure en boîte blanche
M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 118 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 119

4- Activité réalisation
Description Processus Unifié

Description Processus Unifié

Réalisation : travailleurs 5- Activité : test


! Architecte # Rédiger le plan de test
– modèles d'implémentation et de déploiement – décrire la stratégie de test, estimer les besoins
– description de l’architecture pour l'effort de test, planifier l'effort dans le
! Ingénieur de composants temps
– artefacts logiciels, sous-systèmes et composants # Concevoir les tests
d’implémentation, interfaces
# Automatiser les tests
! Intégrateur système
– plan de construction de l’intégration
# Réaliser les tests d'intégration
# Réaliser les tests du système
# Évaluer les tests

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 120 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 121
5- Activité test 5- Activité test

Description Processus Unifié


Description Processus Unifié

Produits de l’activité de test Tests : travailleurs

Produits des activités précédentes ! Concepteur de tests


– modèle de tests, cas de test, procédures de
test, évaluation des tests, plan de tests
Test
Cas de tests, Modèle de test ! Ingénieur de composants
procédures de test, – test unitaires
composants de test
Défauts
! Testeur d’intégration
– tests d’intégration
Plan de test
! Testeur système
Couverture des – vérification du système dans son ensemble
tests

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 122 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 123
Description Processus Unifié

Description du processus unifié Description Processus Unifié Généralités sur les phases
! Déroulement du projet par phases
! Dans cette partie ! Chaque phase spécifie les activités à effectuer
– les différentes activités pour passer des
Inception Élaboration Construction Transition
besoins au code
– les différentes phases permettant de Capture
des besoin
piloter les activités
Analyse
– quelques focus sur des points
particuliers Conception

Réalisation

Test

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 124 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 125
Description Processus Unifié

Description Processus Unifié

Phase d’étude préliminaire


Gestion des phases (inception)
! Objectif : lancer le projet
! Planifier les phases
– établir les contours du système et spécifier sa portée
– allouer le temps, fixer les points de contrôle de fin de phase,
– définir les critères de succès, estimer les risques, les ressources
les itérations par phase et le planning général du projet nécessaires et définir un plan
! Dans chaque phase – à la fin de cette phase, on décide de continuer ou non
– planifier les itérations et leurs objectifs de manière à réduire – attention à ne pas définir tous les besoins, à vouloir des
• les risques spécifiques du produit estimation fiables (coûts, durée), etc.
• les risques de ne pas découvrir l'architecture adaptée • on serait dans le cadre d’une cascade
• les risques de ne pas satisfaire les besoins
– définir les critères d'évaluation de fin d'itération Ressources

! Dans chaque itération


– faire les ajustements indispensables (planning, modèles,
processus, outils...)

Besoins Analyse Conception Réalisation Tests


M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 126 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 127
Description Processus Unifié
Description Processus Unifié

Activités principales de
l’étude préliminaire
Livrables de l’étude préliminaire
! Capture des besoins ! Première version du modèle du domaine ou de contexte de
– comprendre le contexte du système (50-70% du contexte) l’entreprise
– établir les besoins fonctionnels et non fonctionnels (80%) – parties prenantes, utilisateurs
– traduire les besoins fonctionnels en cas d'utilisation (50%) ! Liste des besoins
– détailler les premiers cas par ordre de priorité (10% max)
– fonctionnels et non fonctionnels
! Analyse
! Ébauche des modèles de cas, d’analyse et de conception
– analyse des cas d'utilisation (10% considérés, 5% raffinés)
– pour mieux comprendre le système à réaliser, guider le choix ! Esquisse d’une architecture
de l'architecture ! Liste ordonnée de risques et liste ordonnée de cas
! Conception ! Grandes lignes d’un planning pour un projet complet
– première ébauche de la conception architecturale : sous-
systèmes, nœuds, réseau, couches logicielles
! Première évaluation du projet, estimation grossière des coûts
– examen des aspects importants et à plus haut risque ! Glossaire

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 128 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 129
Description Processus Unifié

Description Processus Unifié


Activités principales
Phase d’élaboration
de l’élaboration
! Objectif : analyser le domaine du problème ! Capture des besoins
– capturer la plupart des besoins fonctionnels – terminer la capture des besoins et en détailler de 40 à 80%
– planifier le projet et éliminer ses plus hauts risques – faire un prototype de l'interface utilisateur (éventuellement)
– établir un squelette de l’architecture ! Analyse
– analyse architecturale complète (paquetages...)
– réaliser un squelette du système
– raffinement des cas d'utilisation (pour l'architecture, < 10%)
! Conception
Ressources – terminer la conception architecturale
– effectuer la conception correspondant aux cas sélectionnés
! Réalisation
– limitée au squelette de l'architecture
– faire en sorte de pouvoir éprouver les choix
! Test
Besoins Analyse Conception Tests – du squelette réalisé
Réalisation

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 130 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 131
Description Processus Unifié
Description Processus Unifié

Livrables de l’élaboration Phase de construction


Un modèle de l'entreprise ou du domaine complet
!
! Objectif : Réaliser une version beta
! Une version des modèles : cas, analyse et conception,
(<10%), déploiement, implémentation (<10%)
! Une architecture de base exécutable
! La description de l'architecture (extrait des autres modèles)
– document d’architecture logicielle
! Une liste des risques mise à jour Ressources
! Un projet de planning pour les phases suivantes
! Un manuel utilisateur préliminaire (optionnel)
! Évaluation du coût du projet

Besoins Analyse Conception Tests


Réalisation

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 132 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 133
Description Processus Unifié

Description Processus Unifié


Activités principales
Livrables de la construction
de la construction
! Capture des besoins ! Un plan du projet pour la phase de
– spécifier l'interface utilisateur
! Analyse transition
– terminer l'analyse de tous les cas d'utilisation, la construction
du modèle structurel d'analyse, le découpage en paquetages...
! L'exécutable
! Conception ! Tous les documents et les modèles du
– l'architecture est fixée et il faut concevoir les sous-systèmes
dans l'ordre de priorité (itérations de 30 à 90j, max. 9 mois) système
– concevoir les cas puis les classes
! Une description à jour de l'architecture
! Réalisation
– réaliser, faire des tests unitaires, intégrer les incréments ! Un manuel utilisateur suffisamment détaillé
! Test pour les tests
– toutes les activités de test : plan, conception, évaluation...

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 134 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 135
Description Processus Unifié

Description Processus Unifié


Activités principales de la phase
Phase de transition de transition (déploiement)
! Objectif : mise en service chez l’utilisateur ! Préparer la version beta à tester
! Installer la version sur le site, convertir et faire migrer les données
– test de la beta-version, correction des erreurs nécessaires...
– préparation de la formation, la ! Gérer le retour des sites
commercialisation ! Le système fait- il ce qui était attendu ? Erreurs découvertes ?
! Adapter le produit corrigé aux contextes utilisateurs (installation...)
! Terminer les livrables du projet (modèles, documents...)
Ressources
! Déterminer la fin du projet
! Reporter la correction des erreurs trop importantes (nouvelle
version)
! Organiser une revue de fin de projet (pour apprendre)
! ...
Besoins Analyse Conception Tests ! Planifier le prochain cycle de développement
Réalisation

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 136 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 137
Description Processus Unifié
Description Processus Unifié

Livrables de la transition Modèles / phases


! L'exécutable et son programme d'installation Création Élaboration

! Les documents légaux : contrat, licences, U A C D I T U A C D I T


garanties, etc. modèle
des cas d'utilisation
! Un jeu complet de documents de développement modèle
à jour d’analyse
modèle
! Les manuels utilisateur, administrateur et de conception
modèle
opérateur et le matériel d'enseignement Construction Transition de déploiement
modèle
! Les références pour le support utilisateur (site U A C D I T U A C D I T d’implémentation
modèle
Web...) de tests

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 138 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 139
(Larman, 2004)
Description Processus Unifié

Description Processus Unifié


Description du processus unifié Retour sur l’architecture
! Analyse architecturale
! Dans cette partie – identifier et traiter les besoins non fonctionnels dans le
contexte des besoins fonctionnels. Consiste notamment à
– les différentes activités pour passer des identifier les points de variation et les points d'évolution les
besoins au code plus probables.
• points de variation : variations dans le système existant ou dans
– les différentes phases permettant de piloter les les besoins
activités • points d’évolution : points de variation spéculatifs, actuellement
absents des besoins
– quelques focus sur des points particuliers ! Identifier un problème = facteur architectural
• Analyse architecturale ! Résoudre le problème (solution)
• Planification des itérations – principes
• faible couplage, forte cohésion, protection des variations, patterns
• Les tentations de la cascade architecturaux
• Personnes, environnement et outils • au niveau du système
– description dans un mémo technique

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 140 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 141

(Larman, 2004) (Larman, 2004)


Description Processus Unifié

Facteurs architecturaux Description Processus Unifié Mémo technique


! Facteurs qui ont une influence significative sur l’architecture ! Décrire les solutions choisies et la motivation
– fonctionnalités, performance, fiabilité, facilité de maintenance,
– traçabilité des décisions, raisons, alternatives, etc.
implémentation et interface, etc.
! Description d’un facteur ! Mémo technique (texte + diagrammes)
– nom – problème
• ex. : « fiabilité, possibilité de récupération »
– résumé de la solution
– mesures et scénarios de qualité
• ce qu’il doit se passer et comment le vérifier – facteurs architecturaux
• ex. : « si pb, récupétation dans la minute » – solution
– variabilité – motivation
• souplesse actuelle et évolutions futures
• ex. : «pour l’instant service simplifiés acceptables en cas de rupture, – problèmes non résolus
évolution : services complets » – autres solutions envisagées
– impacts
• pour les parties prenantes, l’architecture…
• ex. : « fort impact, rupture de service non acceptable »
– priorité (ex. : élevée)
– difficulté ou risque (ex. : moyen)

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 142 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 143

(Larman, 2004)
Description Processus Unifié

Description Processus Unifié

Document d’architecture du logiciel Les 4+1 vues de Philip Kruchten


! Vue architecturale
– vue de l’architecture du système depuis un point de vue
particulier
• texte + diagrammes
– se concentre sur les informations essentielles et documente la
motivation
• « ce que vous diriez en 1 minute dans un ascenseur à un collègue »
– description a posteriori
! DAL : récapitulatif des décisions architecturales
– introduction, facteurs, mémos technique
– ensemble de vues architecturales
! Modèle N+1 vues : permettent aux différents intervenants de
se concentrer sur les problèmes de l'architecture du système
qui les concernent le plus
– logique, processus, déploiement, données, sécurité,
implémentation, développement, etc.
– + la vue des cas d’utilisation pour fédérer les autres vues
M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 144 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 145
Description Processus Unifié

Description Processus Unifié


Itération pilotées par la réduction des risques
Planification des itérations
! Planification des itérations dès l’élaboration Risques initiaux
Définir les scénarios Planifier l’itération N
– précise pour la suivante, imprécise pour la fin permettant de prendre • coût
du projet
en compte les risques • planning
– la planification générale est adaptée en fonction des risques Objectif initial
les plus importants
du projet
identifiés/traités et des résultats obtenus dans les itérations
Développer l’itération N
! Planification adaptative (vs. prédictive) • Collecter les dépenses
– fixer des butées temporelles et les métriques de
qualité
– gérer l’adaptation avec le client Iteration N
! Itération Valider l’itération N
– toutes les activités des besoins aux tests, résultats différents en
fonction de la phase dans laquelle on se trouve Réviser l’ensemble de
L’objectif du projet
– mini-projet : planning, ressources, revue • coût
– premières itérations : suivre une méthode • planning
• objectifs/contenu Réviser les risques Risques
– à la fin d’une itération : retrospective du projet éliminés
• éléments à conserver, problèmes, éléments à essayer • nouvelles priorités

Copyright © 1997 by Rational Software Corporation


M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 146 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 147
Description Processus Unifié

Attention aux tentations de la cascade Description Processus Unifié Attention aux personnes
! Le processus a un impact sur les personnes
! Les « principes cascade » ne doivent pas – changements de rôles
envahir le processus – on passe des « ressources » aux « travailleurs »
– on ne peut pas tout modéliser avant de réaliser ! Mérites UP par rapport aux personnes
– favorise le travail d’équipe
! Exemples de problèmes • chaque membre comprend son rôle
• les développeurs appréhendent mieux l’activité des autres
– « nous avons une itération d’analyse suivie de développeurs
deux itérations de conception » • les dirigeants comprennent mieux
– diagrammes d’architecture
– « le code de l’itération est très bogué, mais
– si tout le monde le connaît
nous corrigerons tout à la fin » • meilleure productivité de l’entreprise (passage d’un projet à l’autre,
– « la phase d’élaboration sera bientôt finie : il ne formation)
reste que quelques cas d’utilisation à ! Nécessités de la communication
détailler » – les artefacts soutiennent la communication dans le projet
– il faut également des moyens de communications

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 148 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 149
Description Processus Unifié

Personnes, environnement et outils Plan


! Un mixte de facteurs à prendre en compte ! Avant-propos
dans la gestion du projet ! Méthodes et processus
– équilibre entre outils et processus (gérer leur ! Processus unifié : caractéristiques
influence réciproque)
essentielles
– nécessaire gestion de tous les artefacts et de
la communication ! Description du processus unifié
• site web du projet, wiki, cvs, etc. ! Illustration : deux déclinaisons du
– organisation physiques des personnes et processus unifié
artefacts physiques
• tableaux, outils de projection et de capture, pièces et
! Méthodes Agile
circulation, etc. ! Conclusion

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 150 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 151
Two Tracks Unified Process Two Tracks Unified Process
! Processus proposé par Valtech (consulting), présenté dans ! Principe général
– Pascal Roques, Franck Vallée (2004) UML2 en action (3ème – toute évolution imposée au système d’information peut se
édition), Eyrolles, 386 pp. décomposer et se traiter parallèlement, suivant un axe
! Objectif fonctionnel et un axe technique
– prendre en compte les contraintes de changement continuel ! TTUP
imposées aux systèmes d’information des organisations
– processus unifié (itératif, centré sur l’architecture et piloté par
! Création d’un nouveau SI les CU)
– deux grandes sortes de risques
– deux branches
• imprécision fonctionnelle : inadéquation aux besoins
• besoins techniques : réalisation d’une architecture technique
• incapacité à intégrer les technologies : inadaptation technique
• besoins fonctionnels : modèle fonctionnel
! Evolution du SI
– réalisation du système
– deux grandes sortes d’évolutions
• fusionner les résultats des deux branches du processus
• évolution fonctionnelle
• évolution technique

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 152 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 153

Branche Branche
Contraintes fonctionnelle technique Contraintes
fonctionnelles techniques TTUP : commentaires
Capture de besoins Capture des besoins
fonctionnels techniques
! Côté fonctionnel
Analyse Conception générique – relativement classique, indépendant des technologies
– modèle d’analyse réutilisable
Architecture
Modèle d’analyse technique ! Côté technique
Prototype
Conception préliminaire
– insistance sur l’architecture technique indépendamment
des besoins fonctionnels
• c’est un problème de conception en soi
Conception détaillée
– notion de CU techniques
• dépend de l’existant
Codage et tests
• architecture à base de composant
– architecture technique réutilisable
Recette
! Branche commune
Branche conception et – conception préliminaire : le plus délicat
développement logiciel

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 154 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 155

Itérations et TTUP UP Agile (Larman)


! Proposé par Craig Larman, présenté dans
Inception Elaboration Construction – Craig Larman (2005) UML 2 et les Design Patterns (3e
édition), Pearson Education, 655 p.
! Parce que UP est souvent considéré comme
complexe, formel et lourd
– dans sa description générale,
• essaye de prendre en compte toutes les options possibles,
pour toutes les entreprises, et toutes les tailles de projets
– nombreux artefacts, activités, workflows
• doit être adapté à chaque projet
Incrément 1 Incr.2 Incr.3 Incr.4 Incr.5 … – ce dont tout le monde ne se rend pas forcément compte
– dans son utilisation
• application « à l’ancienne »
– suivi strict des activités : rigidité
• tendance à la cascade
– les mauvaises habitudes sont difficiles à perdre
M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 156 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 157
Sample UP Artifact Relationships
Domain Model

Sale 1 1..* Sales


Business ...
LineItem
Modeling
date
...

UP agile = les bonnes pratiques de UP


... quantity

Use-Case Model

Process Sale
Process
use
! Itérations courtes (3 semaines max) Cashier
Sale
case
names
1. Customer
arrives ...
Supplementary
Specification
2. ...
! Mode organisationnel léger 3. Cashier
enters item
non-functional
– petit ensemble d’activités et d’artefacts
identifier.
functional requirements
Require-
Use Case Diagram Use Case Text requirements
ments
! Fusion analyse / conception ideas for system
events
that must be
realized by
domain rules

the post- the objects


! Utilisation de UML pour comprendre et concevoir inspiration for
conditions
: System
names of Glossary
– plus que pour générer du code some
software
Operation:
enterItem(…)
: Cashier
make
system NewSale()
! Planification adaptative domain
objects Post-conditions:
-...
operations
enterItem
item details,
(id, quantity)
! Bref, application de UP dans l’ « esprit Agile »
formats,
Operation Contracts System Sequence Diagrams validation
starting events to

– vs. esprit cascade design for, and


detailed post-
condition to
– en considérant que UP est agile naturellement dans sa satisfy
: Register
Design Model
: ProductCatalog : Sale

conception (et pour ses concepteurs), mais ne l’est pas dans enterItem
ses applications Design (itemID, quantity)

d = getProductDescription(itemID)
! Transparents suivants addLineItem( d, quantity )

– liens entre artefacts dans UP agile Register


ProductCatalog
– mise en œuvre physique des réunions ...
...
* 1 makeNewSale()
getProductDescription(...)
M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 158 enterItem(...)
M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université
...
... Claude Bernard Lyon 1 159

Organisation physique : CU When Where


Organisation physique : modélisation objet
Once during inception. Short; do not try to At a requirements workshop.
define or polish all requirements. When Where
Near the beginning of each iteration, for a In a project room with lots of support
Several times during elaboration iterations. "short" period before programming. for drawing and viewing drawings.

January February
January February

Two adjacent projections.


Two adjacent projections.

Use Case: Capture a Sale Use Case: Handle Returns


... ... whiteboards Sto r e
1 a d d r e s s : Ad d r e s s 1

Main Success Scenario: Main Success Scenario:


1
n a me : Te x t
Pr o d u c tSp e c ific a tio n
: R e g is te r : Pr o d u c tC a ta lo g a d d Sa le ( )
Pr o d u c tC a ta lo g
d e s c r ip tio n : Te x t

1. ... 1. ... 1 p r ic e : M o n e y
1 1 1 ..* ite m ID : Ite m ID : R e g is te r : Pr o d u c tC a ta lo g
m a k e N e w Sa le ( ) g e tSp e c ific a tio n ( )

c r e a te ( )
2. ... 2. ... e n te r Ite m : Sa le
1 1 Sa le
1
m a k e N e w Sa le ( )

e n te r Ite m
c r e a te ( ) : Sa le
( ite m ID , q u a n tity ) * ( ite m ID , q u a n tity )
3. ... 3. ... s p e c := g e tSp e c ific a tio n ( ite m ID )
R e g is te r d a te : D a te
is C o m p le te : Bo o le a n
tim e : T im e
Sa le s L in e Ite m
s p e c := g e tSp e c ific a tio n ( ite mID )
a d d L in e Ite m ( s p e c , q u a n tity )
a d d L in e Ite m ( s p e c , q u a n tity ) q u a n tity : In te g e r

Extensions: Extensions: ...


e n d Sa le ( )
e n te r Ite m ( )
m a k e N e w Sa le ( )
1 1 b e c o m e C o m p le te ( )
ma k e L in e Ite m( )
ma k e Pa y m e n t( )
1 1 ..*
g e tSu b to ta l( )
...

m a k e Pa y m e n t( )
g e tT o ta l( ) ...
1
* Pa y m e n t
...
amo un t : Mon e y
1

System
Analyst Customer
Software
Software Developer
End User Developer Architect
Architect Developer

How: Tools
Who Software:
Many, including end users and developers, will play For use case text, use a web-enabled requirements tool Who How: Tools
the role of requirements specifier, helping to write that integrates with a popular word processor. Perhaps developers will do some design work in Software: A UML CASE tool that can also reverse engineer
use cases. For use case diagrams, a UML CASE tool. pairs. The software architect will collaborate, mentor, diagrams from code.
Hyperlink the use cases; present them on the project website. and visit with different design groups.
Led by system analyst who is responsible for Hardware:
requirements definition. Hardware: Use two projectors attached to dual video cards and - Use two projectors attached to dual video cards.
set the display width double to improve the spaciousness of the - For whiteboard drawings, perhaps a digital camera.
drawing area or display 2 adjacent word processor windows . - To print noteworthy diagrams for the entire team, a plotter
M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 160 M1 MIAGE - SIMA 2007-2008 / Yannick Prié -forUniversité Claude
large-scale drawings Bernard
to hang Lyon 1
on walls. 161

Plan Petite histoire des méthodes Agile

! Avant-propos ! Années 90
– réaction contre les grosses méthodes
! Méthodes et processus – prise en compte de facteurs liés au développement logiciel
! Processus unifié : caractéristiques ! Fin années 90
essentielles – méthodes
• d’abord des pratiques liées à des consultants, puis des livres
! Description du processus unifié • XP, Scrum, FDD, Crystal…
! Illustration : deux déclinaisons du ! 2001
processus unifié – les principaux méthodologues s’accordent sur le « Agile
manifesto »
! Méthodes Agile ! Depuis
! Conclusion – projets Agile mixent des éléments des principales méthodes

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 162 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 163
Du rien au monumental à l’agile Principes communs des méthodes Agile
! Rien ! Méthodes adaptatives (vs. prédictives)
– « code and fix »
– itérations courtes
– marche bien sur les petits projets, suicidaire ensuite
! Monumental – lien fort avec le client
– méthodes, processus, contrats : rationalisation à tous les étages – fixer les délai et les coûts, mais pas la portée
– problèmes et échecs ! Insistance sur les hommes
• trop de choses sont faites qui ne sont pas directement liées au produit
logiciel à construire – les programmeurs sont des spécialistes, et pas des
• planification trop rigide unités interchangeables
! Agile – attention à la communication humaine
– trouver un compromis : le minimum de méthode permettant de mener
à bien les projets en restant agile – équipes auto-organisées
• capacité de réponse rapide et souple au changement ! Processus auto-adaptatif
• orientation vers le code plutôt que la documentation
– révision du processus à chaque itération

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 164 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 165

Méthodes agiles Manifeste Agile


Février 2001, rencontre et accord sur un manifeste
! Simplicité
!
! Mise en place de la « Agile alliance »
! Légèreté – objectif : promouvoir les principes et méthodes Agile
– http://www.agilealliance.com/
! Orientées
participants plutôt que plan ! Les signataires privilégient
– les individus et les interactions davantage que les processus et les
! Nombreuses outils
– les logiciels fonctionnels davantage que l’exhaustivité et la
– XP est la plus connue documentation
– la collaboration avec le client davantage que la négociation de
! Pas de définition unique contrat
– la réponse au changement davantage que l’application d’un plan
! Mais un manifeste ! 12 principes
– (transparents suivants)

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 166 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 167

http://agilemanifesto.org/principles.html http://agilemanifesto.org/principles.html

Manifeste Agile : principes Manifeste Agile : principes


1. Our highest priority is to satisfy the costumer through early and 7. Working software is the primary measure of progress
continuous delivery of valuable software. 8. Agile processes promote sustainable development. The
2. Welcome changing requirements, even late in development. sponsors, developers, and users should be able to
Agile process harness change for the customer´s competitive maintain a constant pace indefinitely
advantage.
3. Deliver working software frequently, from a couple of weeks to a 9. Continuous attention to technical excellence and good
couple of months, with a preference to the shorter timescale. design enhances agility
4. Business people and developers must work together daily 10. Simplicity – the art of maximizing the amount of work not
throughout the project. done – is essential
5. Build projects around motivated individuals. Give them the 11. The best architectures, requirements, and designs emerge
environment and support they need, and trust them to get the job from self-organizing teams
done.
12. At regular intervals, the team reflects on how to become
6. The most efficient and effective method of conveying information more effective, then tunes and adjusts its behavior
to and within a development team is face-to-face conversation.
accordingly

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 168 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 169
(Larman 2005, p.36-37)

Processus agile et modélisation Dans la suite


! Utilisation d’UML ! Description rapide de quelques méthodes
! La modélisation vise avant tout à comprendre et à – XP (Kent Beck)
communiquer
– Scrum (Ken Schwaber)
! Modéliser pour les parties inhabituelles, difficiles ou
délicates de la conception. – Crystal (Alistair Cockburn)
! Rester à un niveau de modélisation minimalement suffisant ! Autres méthodes
! Modélisation en groupe – UP, FDD (Feature Driven Development) , DSDM
! Outils simples et adaptés aux groupes (Dynamic System Development Method), …
! Les développeurs créent les modèles de conception qu’ils
développeront

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 170 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 171

http://www.swen.uwaterloo.ca/~kostas/ECE355-05/lectures/Lect3-Ch15-Unit2.ppt

XP (eXtreme Programming) XP : vue d’ensemble


! Site officiel
toutes les
– http://www.extremeprogramming.org/ 2 ou 3 semaines
! Caractéristiques principales (http://www.design-
Planning
up.com/methodes/XP/)
– Le client (maîtrise d’ouvrage) pilote lui-même le projet, et ce de très
près grâce à des cycles itératifs extrêmement courts (1 ou 2 Écriture des tests
semaines).
– L’équipe autour du projet livre très tôt dans le projet une première
version du logiciel, et les livraisons de nouvelles versions s’enchaînent Release Programmation par pairs développement
ensuite à un rythme soutenu pour obtenir un feedback maximal sur + Refactoring piloté par les tests
l’avancement des développements.
– L’équipe s’organise elle-même pour atteindre ses objectifs, en
favorisant une collaboration maximale entre ses membres. Test
– L’équipe met en place des tests automatiques pour toutes les
fonctionnalités qu’elle développe, ce qui garantit au produit un niveau
de robustesse très élevé. Integration
– Les développeurs améliorent sans cesse la structure interne du logiciel chaque jour
pour que les évolutions y restent faciles et rapides. (intégration continue)

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 172 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 173

http://web.engr.oregonstate.edu/~cook/classes/cs569.agile.ppt

XP : rôles et responsabilités XP : pratiques (1)


! Programmeur ! Le « jeu de la planification »
– écrit les tests et puis code – regroupement des intervenants pour planifier l’itération
! Client – les développeurs évaluent les risques techniques et les efforts
– écrit les histoires et les tests fonctionnels prévisibles liés à chaque fonctionnalité (user story, sortes de
! Testeur scénarios abrégés)
– aide le client à écrire les tests et à les exécuter – les clients estiment la valeur (l’urgence) des fonctionnalités, et
! Consultant décident du contenu de la prochaine itération
– fournit les connaissances spécialisées au besoin ! Temps court entre les releases
! Coach – au début : le plus petit ensemble de fonctionnalités utiles
– aide l’équipe par rapport au processus – puis : sorties régulières de prototypes avec fonctionnalités
! Tracker ajoutées
– vérifie que l’équipe ne perd pas la bonne direction ! Métaphore
! Manager – chaque projet a une métaphore pour son organisation, qui
– prend les décisions fournit des conventions faciles à retenir

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 174 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 175
XP : pratiques (2) XP : pratiques (3)
! Conception simple ! Programmation par paires (pair programming)
– toujours utiliser la conception la plus simple qui fait ce qu’on veut – tout le code de production est écrit par deux programmeurs devant un
ordinateur
• doit passer les tests
– l’un pense à l’implémentation de la méthode courante, l’autre à tout le
• assez claire pour décrire les intentions du programmeur
système
– pas de généricité spéculative – les paires échangent les rôles, les participants des paires changent
! Tests ! Propriété collective du code
– développement piloté par les tests : on écrit d’abord les tests, puis – tout programmeur qui voit une opportunité d’améliorer toute portion de
on implémente les fonctionnalités code doit le faire, à n’importe quel moment
– les programmeurs s’occupent des tests unitaires ! Intégration continue
– les clients s’occupent des tests d’acceptation (fonctionnels) – utilisation d’un gestionnaire de versions (e.g., CVS)
! Refactoring – tous les changements sont intégrés dans le code de base au minimum
chaque jour : une construction complète (build) minimum par jour
– réécriture, restructuration et simplification permanente du code – 100% des tests doivent passer avant et après l’intégration
– le code doit toujours être propre

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 176 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 177

XP : pratiques (4) XP : pratiques (5)


! Semaine de 40 heures (35 en France ?) ! Règles
– les programmeurs rentrent à la maison à l’heure – l’équipe décide des règles qu’elle suit, et peut les
– faire des heures supplémentaire est signe de problème changer à tout moment
– moins d’erreurs de fatigue, meilleure motivation
! Espace de travail
! Des clients sur place
– tout le monde dans la même pièce
– l’équipe de développement a un accès permanent à un vrai • awareness
client/utilisateur (dans la pièce d’à côté)
– tableaux au murs
! Des standards de codage
– matérialisation de la progression du projet
– tout le monde code de la même manière • par les histoires (user stories) réalisées et à faire
• tout le monde suit les règles qui ont été définies – papiers qui changent de position, sont réorganisés
• il ne devrait pas être possible de savoir qui a écrit quoi • par les résultats des tests
• …

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 178 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 179

XP : quelques point du site web XP : avantages


! Planning ! Coding ! Concept intégré et simples
– User stories are written. – The customer is always available.
– Release planning creates the schedule. – Code must be written to agreed standards. ! Pas trop de management
– Make frequent small releases. – Code the unit test first.
– The Project Velocity is measured. – All production code is pair programmed.
– pas de procédures complexes
– The project is divided into iterations. – Only one pair integrates code at a time. – pas de documentation à maintenir
– Iteration planning starts each iteration. – Integrate often.
– Move people around. – Use collective code ownership.
– communication directe
– A stand-up meeting starts each day. – Leave optimization till last. – programmation par paires
– Fix XP when it breaks. – No overtime.
! Designing ! Testing
! Gestion continuelle du risque
– Simplicity. – All code must have unit tests. ! Estimation permanente des efforts à fournir
– Choose a system metaphor. – All code must pass all unit tests before it
– Use CRC cards for design sessions. can be released. ! Insistance sur les tests : facilite l’évolution et la maintenance
– Create spike solutions to reduce risk. – When a bug is found tests are created.
– No functionality is added early. – Acceptance tests are run often and the
– Refactor whenever and wherever score is published.
possible.

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 180 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 181
http://web.engr.oregonstate.edu/~cook/classes/cs569.agile.ppt

XP : inconvénients Scrum
! Approprié pour de petites équipes (pas plus de 10 ! Scrum : mêlée
développeurs), ne passe pas à l’échelle ! Phases
– pour des groupes plus gros, il faut plus de structure et – Initiation / démarrage
de documentation (ceremony) • Planning
! Risque d’avoir un code pas assez documenté – définir le système : product Backlog = liste de fonctionnalités,
ordonnées par ordred de priorité et d’effort
– des programmeur qui n’auraient pas fait partie de
l’équipe de développement auront sans doute du mal à • Architecture
– conception de haut-niveau
reprendre le code
– Développement
! Pas de design générique • Cycles itératifs (sprints) : 30j
– pas d'anticipation des développements futurs – amélioration du prototype
– Clôture
• Gestion de la fin du projet : livraison…

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 182 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 183

http://fr.wikipedia.org/wiki/Scrum http://web.engr.oregonstate.edu/~cook/classes/cs569.agile.ppt

Principes Scrum Scrum : rôles responsabilités


! Isolement de l'équipe de développement ! Scrum Master
– l'équipe est isolée de toute influence extérieure qui pourrait lui nuire.
Seules l'information et les tâches reliées au projet lui parviennent : pas – expert de l’applicatron de Scrum
d’évolution des besoins dans chaque sprint.
! Développement progressif
! Product owner
– afin de forcer l'équipe à progresser, elle doit livrer une solution tous les – responsable officiel du projet
30 jours. Durant cette période de développement l'équipe se doit de
livrer une série de fonctionnalités qui devront être opérationnelles à la ! Scrum Team
fin des 30 jours.
– équipe projet.
! Pouvoir à l'équipe
– l'équipe reçoit les pleins pouvoirs pour réaliser les fonctionnalités. ! Customer
C'est elle qui détient la responsabilité de décider comment atteindre
ses objectifs. Sa seule contrainte est de livrer une solution qui – participe aux réunions liées aux fonctionnalités
convienne au client dans un délai de 30 jours.
! Management
! Contrôle du travail
– le travail est contrôlé quotidiennement pour savoir si tout va bien pour – prend les décisions
les membres de l'équipe et à la fin des 30 jours de développement
pour savoir si la solution répond au besoin du client.

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 184 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 185

http://web.engr.oregonstate.edu/~cook/classes/cs569.agile.ppt

Scrum : pratiques Méthodologies « Crystal »


! Product Backlog ! Alistair Cockburn (2002). Agile Software Development.
Addison Wesley
– état courant des tâches à accomplir
! Le développement logiciel vu comme un jeu coopératif de
! Effort Estimation communication et d’invention
– permanente, sur les entrées du backlog – des projets différents et des méthodes différentes
! Sprint – le projet change à mesure que les gens changent
– itération de 30 jours ! Choix de la méthode en fonction de différents facteurs
! Sprint Planning Meeting – taille en nombre de personnes / criticité pour le client (LEDC)
– réunion de décision des objectifs du prochain sprint et de la manière
de les implémenter air-traffic
control system
! Sprint Backlog
banking system
– Product Backlog limité au sprint en cours
! Daily Scrum meeting
– ce qui a été fait, ce qui reste à faire, les problèmes
! Sprint Review Meeting
medium-sized
– présentation des résultats du sprint
small productivity tool
utilities
M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 186 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 187
La famille de méthodes Crystal Crystal Clear
! Familles conçues à partir de ! “C6-D6”
l'observation et des interviews ! Une seule équipe, à un seul
! Trouver à chaque fois la méthode la endroit
moins rigide qui réussira quand même – Good, small teams produce
– haute productivité, haute tolérance good, small software
– focus sur la communication products
! Exemples – Communication étroite
– Crystal Clear ! Rôles
– Crystal Yellow – sponsor
– Crystal Orange – développeur sénior
– Crystal Red – concepteurs-programmeurs
– utilisateurs
! Livraison incrémentale tous
les 2/3 mois

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 188 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 189

Crystal Orange Plan


“C40-E40”
!
– plus de structure d’équipes
! Avant-propos
!
– lus de coordination
Tout le monde dans le même
! Méthodes et processus
immeuble ! Processus unifié : caractéristiques
! Rôles
– Sponsor essentielles
– Expert métier
– Expert IHM ! Description du processus unifié
– Expert techniques
– Analyste concepteur métier ! Illustration : deux déclinaisons du
– Manager processus unifié
– Architecte
– Concepteur mentor ! Méthodes Agile
– …
! 1-2 ans de développement ! Conclusion
! Importance du respect des délais et
de l’adaptation au marché

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 190 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 191

Conclusion Crédits – remerciements


! « There is no silver bullet » : le retour ! J.L.
Sourrouille (INSA de Lyon)
Même si le développement incrémental permet de
s’affranchir de beaucoup de problèmes, il y aura quand ! Sources
même des problèmes. Mais ceux-ci seront normalement
d’ampleur plus faible, et mieux gérés. – http://www.swen.uwaterloo.ca/~kostas/E
! Toute méthode est adaptable et doit être adaptée CE355-05/lectures/Lect3-Ch15-
Mais, lorsque l’on débute, il vaut mieux ne pas trop
s’écarter de la voie décrite pour bien comprendre au Unit2.ppt
départ (cf. musique)
– http://web.engr.oregonstate.edu/~cook/c
lasses/cs569.agile.ppt

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 192 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 193
Annexe :
Annexe : coders’ dojo
gestion des composants et bibliothécaire
! Qualité ! Idée
– niveau plus élevé que celui d’une application
(surcoût minimum 50%, en pratique 100%) – parallèle arts martiaux / conception-
– une confiance absolue est nécessaire pour que la programmation OO
réutilisation soit effective • il faut s’entraîner à appliquer des « routines »
! Une fonction : bibliothécaire connues avant de pouvoir commencer à les utiliser
– participe au choix des produits à généraliser de façon créative, voire à en inventer de nouvelles
– contribue ou procède à la généralisation • les débutant doivent apprendre des maîtres
– établit des normes, règles, niveaux de qualité, – un exemple de formation
protocoles de mise en bibliothèque
• http://www.xpday.net/Xpday2005/CodersDojo.html
– classifie les produits de la bibliothèque (critères)
– diffuse, informe, facilite l’accès (outils)

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 194 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 195

(O. Boissier) (O. Boissier)

Annexe : qualité du logiciel Qualité du logiciel


! Facteur externes (utilisateur) ! Facteurs externes (suite)
– Correction (validité) – Compatibilité
• facilité avec laquelle un logiciel peut être combiné avec
• aptitude à répondre aux besoins et à remplir les d’autres
fonctions définies dans le cahier des charges
– Efficacité
– Robustesse (fiabilité) • utilisation optimale des ressources matérielles
• aptitude à fonctionner dans des conditions non (processeur, mémoires, réseau, …)
prévues au cahier des charges, éventuellement – Convivialité
anormales • facilité d’apprentissage et d’utilisation, de préparation des
– Extensibilité données, de correction des erreurs d’utilisation,
d’interprétation des retours
• facilité avec laquelle de nouvelles fonctionnalités
peuvent être ajoutées – Intégrité (sécurité)
• aptitude d’un logiciel à se protéger contre des accès non
autorisés.

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 196 M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 197

(O. Boissier)

Qualité du logiciel
! Facteurs internes (concepteur)
– Ré-utilisabilité
• aptitude d’un logiciel à être réutilisé, en tout ou en
partie, pour d’autres applications
– Vérifiabilité
• aptitude d’un logiciel à être testé (optimisation de la
préparation et de la vérification des jeux d’essai)
– Portabilité
• aptitude d’un logiciel à être transféré dans des
environnements logiciels et matériels différents
– Lisibilité
– Modularité

M1 MIAGE - SIMA 2007-2008 / Yannick Prié - Université Claude Bernard Lyon 1 198