Professional Documents
Culture Documents
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
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
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
Méthodes et processus
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 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
! 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
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
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
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é
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é
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é
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
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é
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é
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é
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é
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é
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é
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é
Transition
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
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é
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é
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)
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é
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é
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é
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é
! 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
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
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
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
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
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
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é
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
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
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
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é
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
! 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é
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
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é
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
4- Activité réalisation
Description Processus Unifié
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
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é
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é
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é
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é
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é
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é
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é
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
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é
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é
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
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. ... 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
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
! 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
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
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)
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
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
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
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
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
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
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
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
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
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