CM Methodes Complet
CM Methodes Complet
Plan Plan
! Introduction ! 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 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 3 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 4
(B. Morand)
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 5 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 6
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 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 7 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 8
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 9 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 10
(O. Boissier)
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 11 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 12
Modèle en cascade Modèle en V
Expression des besoins Validation des besoins
! Années 70 Production
! Linéaire, flot descendant Validation
Conception des composants Tests des composants
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 13 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 14
! 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)
Construction
– une chronologie des activités (" construction de modèles)
Vérification/validation
– un ensemble de règles et de conseils pour tous les participants
! Incréments successifs ! itérations
! Description d’une méthode
! Approche souvent à base de prototypes
– des gens, des activités, des résultats
! Spécification des incréments difficile
! De plus en plus difficile de modifier
! Gestion de projet pas évidente
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 15 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 16
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 17 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 18
Notation et artefacts Évolution des méthodes
! Notation ! Origine : fin des années 60
– permet de représenter de façon uniforme l'ensemble des artefacts – problèmes de qualité et de productivité dans les grandes entreprises,
logiciels produits ou utilisés pendant le cycle de développement mauvaise communication utilisateurs / informaticiens
– formalisme de représentation qui facilite la communication, – méthodes = guides pour l’analyse et aide à la représentation du futur SI
l’organisation et 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 ! Ensuite
de 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 »
– Exemple: morceau de code, commentaire, spécification statique d'une – méthodes globales qui séparent données et traitements
classe, spécification comportementale d'une classe, jeu de test,
programme de test, interview d'un utilisateur potentiel du système, ! Maintenant
description du contexte d'installation matériel, diagramme d'une – conception pour et par réutilisation
architecture globale, prototype, rapport de réalisation, modèle de • Frameworks, Design Patterns, bibliothèques de classes
dialogue, rapport de qualimétrie, manuel utilisateur… – méthodes
! Méthode / processus • exploitant un capital d'expériences
– notation + démarche (+ outils) • unifiées par une notation commune (UML)
• procédant de manière incrémentale
– façon de modéliser et façon de travailler
• validant par simulation effective
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 19 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 21 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 24
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é
– 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
– à 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 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 25 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 26
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 27 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 28
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 31 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 32
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 33 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 34
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 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 35 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 36
Phases 3 / 4
construction et transition
Phases et activités
temps
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 37 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 38
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 39 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 40
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 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 41 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 42
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
itérations
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 43 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 44
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 45 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 46
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 47 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 48
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 de l’utilisateur (vs fonction intéressante à
des cas réalisé par ajouter)
d’utilisation distribué par • également pour les utilisateurs informaticiens (administration)
Analyse
Modèle – besoins fonctionnels en boîte noire, pour acteurs humains et non
d’analyse humains à identifier précisément
implémenté par ! Assurent la traçabilité par rapport aux besoins de toute décision de
Conception Modèle Modèle conception sur l’ensemble du projet
de conception de déploiement
– tout modèle s’y réfère
vérifié par
! Assurent le lien pour une vision commune des membres du projet
Implémentation sur l’architecture
Modèle
d’implémentation ! Attention
– créer de bons CU est un art
Tests Modèle – danger de décomposition fonctionnelle des CU qui reviendrait à une
de test conception fonctionnelle à l’ancienne
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 49 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 50
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 51 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 52
Construction
Transition
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 55 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 56
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 61 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 62
(USDP, 2000)
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 67 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 68
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 69 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 70
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 73 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 74
Project management
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 75 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 76
! 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 mettre en place
! Rappel
– la description de l’architecture utilise une sous-partie des
modèles
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 77 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 78
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 sur le cours de JL Sourrouille
déploiement spécifie les nœuds physiques et la distribution des
composants. Permet d’étudier, documenter, communiquer et d’anticiper (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 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 79 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 80
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 81 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 82
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 83 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 84
Modèle du métier (facultatif) Produits de l’acquisition des besoins
Concepts de
Utilisateurs
Expérience l’application Documents
! Modèle des CU métier du domaine -manuel AQ
– représenter les processus -…
– acteurs métier Client Acquisition des besoins
Gérant Compréhension du système
– CU métier
! Modèle objet métier Modèle du domaine
– montre comment les Liste des besoins
(modèle du métier)
CU métier sont réalisés par potentiels
• acteurs métier
• travailleurs métier Réservation Planning Spécification des besoins
• entités métier
! Modélisation du domaine
– modélisation métier simplifiée entités métier
! Possibilité d’identifier les CU à partir
du modèle métier Ménage
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 85 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 86
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 89 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 90
Exemple : détails des cas d’utilisation
Expression des besoins (suite)
! Description détaillée
# Détailler et formaliser les cas d’utilisation – scénario nominal, alternatives (extensions), exceptions, etc.
– un cas d’utilisation représente un ensemble de scénarios – style essentiel (intentions des utilisateurs, responsabilités du
– donner pour chaque cas les scénarios principaux système) plutôt que style concret (évocation IHM)
– détailler le déroulement des scénarios (texte)
– compléter la description des scénarios (diagrammes de CU : Réservation d’une chambre
séquences système, éventuellement de collaboration, Portée : système de réservation
d’activité, d’états) Niveau : objectif utilisateur
# Structurer le modèle (révision des cas si besoin) Acteur principal : Gérant
– ex. généralisation entre cas Intervenants et intérêts : Client, Chaîne hôtelière
Préconditions : une chambre est libre pour la période désirée
# Faire une maquette de l’interface utilisateur
Garanties minimales : rien ne se passe
– uniquement si l’interface est complexe ou nécessite une Garanties en cas de succès : la chambre est réservée
évaluation par le client
Scénario nominal
1. Le gérant demande le planning d'occupation pour la période qui vient. Le système
Utilisateurs non spécialistes, interface simple et logique. affiche le planning sur plusieurs semaines.
Problème classique, sans risque majeur, donc pas de 2. Le gérant sélectionne une chambre libre pour une date qui l’intéresse. Le système
maquette. lui présente le récapitulatif de cette chambre, et sa disponibilité quelques jours avant
et après la date choisie.
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 91 …M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 92
plan := Planning(période) La chaîne possède 117 hôtels de 30 chambres en moyenne. Les appels sur le
réseau sont évalués à 300 par jour (au début, prévoir des évolutions).
Afficher(plan)
Pour des raisons d'extensibilité, de performances et de sécurité, la chaîne de
Réserver(chambre, nom, période)
traitement des réservations des clients doit être indépendante des liaisons des
ok := Réserver(hôtel,chambre, nom, période) hôtels avec le système de ré[Link] hôtels ne sont pas reliés en permanence
au système de réservation (économie) et les postes devront être fiables (coupures
[ok] Informer(résultat) de courant...).
Le temps d’apprentissage du logiciel par les acteurs professionnels ne doit pas
[non ok] Problème(nature)
dépasser une demi-journée.
Une société tierce s'occupera de la maintenance du système et abritera les
serveurs.
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 93 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 94
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 97 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 98
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 103 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 104
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 105 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 106
Serveur
intranet
Système internet clients BD <<subsystem>>
bancaire réservations <<subsystem>>
Réservation Services gérant Requêtes
intranet
Serveur Réservations gérant
Gérants
internet
internet internet <<subsystem>>
Gérant 1 Gérant n
Gérant i Gestion hôtel
• Les deux serveurs et la BD des réservations peuvent être sur un même nœud tant que les <<subsystem>>
liaisons clients ne pénalisent pas les liaisons gérants <<subsystem>>
• Les liaisons gérant-serveur démarrent par le réseau téléphonique BD gestion
Comptabilité ODBC
• Sur le Gérant, la facturation doit pouvoir être sur une autre machine Compta
• ...
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 109 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 110
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 111 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 112
Modèle conceptuel, abstraction du Modèle physique qui sera mis en # Mise en oeuvre architecturale
système oeuvre
– identifier les artefacts logiciels et les associer à
Générique vis à vis de la conception Spécifique des nœuds
# Intégrer le système
Moins formel Plus formel
– planifier l'intégration, intégrer les incréments
Donne les grandes lignes de la Réalise cette conception. réalisés
conception, dont l'architecture. Définit Façonne le système en essayant
une structure essentielle pour le de conserver la structure définie # Réaliser les sous-systèmes
système
Représente 1/ 5ème du coût de la
# Réaliser les classes
conception # Faire les tests unitaires
Éventuellement non maintenu durant Nécessairement maintenu durant – tests de spécification en boîte noire, de
le cycle le cycle
structure en boîte blanche
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 113 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 114
Produits de la réalisation Réalisation : travailleurs
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 115 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 116
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 117 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 118
Test
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 119 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 120
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
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 123 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 124
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 125 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 126
Livrables de l’élaboration Phase de construction
Un modèle de l'entreprise ou du domaine complet
!
! Objectif : Réaliser une version bêta
! 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
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 127 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 128
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 129 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 130
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 131 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 132
Livrables de la transition Modèles / phases
! L'exécutable et son programme d'installation Création Élaboration
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 133 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 134
(Larman, 2004)
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 137 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 138
(Larman, 2004)
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 143 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 144
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 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 145 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 146
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 147 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 148
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 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 149 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 150
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 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 151 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 152
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
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 )
January February
January February
1. ... 1. ...
p r ic e : M o n e y
1 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
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 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 155 M1 MIAGE - SIMA 2005-2006 / Yannick Prié -forUniversité Claude
large-scale drawings Bernard
to hang Lyon 1
on walls. 156
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 ! 1991
processus unifié – les principaux méthodologues s’accordent sur le « Agile
manifesto »
! Méthodes Agile ! Années 2000
! Conclusion – projets Agile mixent des éléments des principales méthodes
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 157 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 158
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 159 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 160
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 161 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 162
[Link] [Link]
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 163 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 164
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 165 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 166
[Link]
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 167 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 168
[Link]
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 169 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 170
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 171 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 172
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 173 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 174
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 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 175 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 176
[Link]
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 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 177 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 178
[Link] [Link]
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 179 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 180
[Link]
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 183 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 184
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 185 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 186
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. – [Link]
! 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 [Link]
départ (cf. musique)
– [Link]
lasses/[Link]
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 187 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 188
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
• [Link]
– classifie les produits de la bibliothèque (critères)
– diffuse, informe, facilite l’accès (outils)
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 189 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 190
M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 191 M1 MIAGE - SIMA 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 192
(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 2005-2006 / Yannick Prié - Université Claude Bernard Lyon 1 193