Académique Documents
Professionnel Documents
Culture Documents
Avant-propos Mthodes et processus Processus unifi : caractristiques essentielles Description du processus unifi Illustration : deux dclinaisons du processus unifi Mthodes Agile Conclusion
142
Pascal Roques, Franck Valle (2004) UML2 en action (3me dition), Eyrolles, 386 pp.
Objectif
prendre en compte les contraintes de changement continuel imposes aux systmes dinformation des organisations
Cration dun nouveau SI
143
Contraintes fonctionnelles
Branche fonctionnelle
Branche technique
Contraintes techniques
toute volution impose au systme dinformation peut se dcomposer et se traiter paralllement, suivant un axe fonctionnel et un axe technique
TTUP
processus unifi (itratif, centr sur larchitecture et pilot par les CU) deux branches
besoins techniques : ralisation dune architecture technique besoins fonctionnels : modle fonctionnel
ralisation du systme
fusionner les rsultats des deux branches du processus
144
145
TTUP : commentaires
Itrations et TTUP
Inception Elaboration Construction
Ct fonctionnel
relativement classique, indpendant des technologies modle danalyse rutilisable
Ct technique
insistance sur larchitecture technique indpendamment des besoins fonctionnels
cest un problme de conception en soi
notion de CU techniques
Incrment 1
Incr.2
Incr.3
Incr.4
Incr.5
Branche commune
conception prliminaire : le plus dlicat
146 147
UP Agile (Larman)
vs. esprit cascade en considrant que UP est agile naturellement dans sa conception (et pour ses concepteurs), mais ne lest pas dans ses applications
Transparents suivants
tendance la cascade
les mauvaises habitudes sont difficiles perdre
M1 MIAGE - SIMA 2005-2006 / Yannick Pri - Universit Claude Bernard Lyon 1
liens entre artefacts dans UP agile mise en uvre physique des runions 148
M1 MIAGE - SIMA 2005-2006 / Yannick Pri - Universit Claude Bernard Lyon 1
149
Business Modeling
1..*
...
Organisation physique : CU
When
Once during inception. Short; do not try to define or polish all requirements. Several times during elaboration iterations.
Where
At a requirements workshop.
Use-Case Model
Process Sale
Process Sale Cashier
1. Customer arrives ... 2. ... 3. Cashier enters item identifier. Use Case Text system events : System
Supplementary Specification
January
February
Requirements
ideas for the postconditions inspiration for names of some software domain objects
Operation: enterItem() Post-conditions: -... Operation Contracts
: Cashier
non-functional requirements
Two adjacent projections.
domain rules
system operations
Use Case: Capture a Sale ... Main Success Scenario: 1. ... 2. ... 3. ... Extensions:
Use Case: Handle Returns ... Main Success Scenario: 1. ... 2. ... 3. ... Extensions:
System Analyst
: ProductCatalog : Sale
Design Model
End User
Developer
Design
Many, including end users and developers, will play the role of requirements specifier, helping to write use cases.
ProductCatalog
Software: For use case text, use a web-enabled requirements tool that integrates with a popular word processor. For use case diagrams, a UML CASE tool. Hyperlink the use cases; present them on the project website. Hardware: Use two projectors attached to dual video cards and set the display width double to improve the spaciousness of the drawing area or display 2 adjacent word processor windows .
1 * getProductDescription(...) ... M1 MIAGE - SIMA 2005-2006 / Yannick Pri - Universit Claude Bernard Lyon 1
150
151
Where
In a project room with lots of support for drawing and viewing drawings.
Plan
January
February
whiteboards
1
Sto r e a d d r e s s : Ad d r e s s n a me : Te x t a d d Sa le ( ) 1 1 g e tSp e c ific a tio n ( ) 1 1 Pr o d u c tSp e c ific a tio n Pr o d u c tC a ta lo g 1 1 ..* d e s c r ip tio n : Te x t p r ic e : M o n e y ite m ID : Ite m ID
: Pr o d u c tC a ta lo g
: Pr o d u c tC a ta lo g
: Sa le
1 R e g is te r 1 Sa le d a te : D a te is C o m p le te : Bo o le a n tim e : T im e 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( ) g e tT o ta l( )
: Sa le
*
Sa le s L in e Ite m 1 ..* q u a n tity : In te g e r g e tSu b to ta l( )
e n d Sa le ( ) e n te r Ite m ( ) m a k e N e w Sa le ( ) m a k e Pa y m e n t( )
Pa y m e n t 1 amo un t : Mon e y
Software Architect
Developer Developer
Who
Perhaps developers will do some design work in pairs. The software architect will collaborate, mentor, and visit with different design groups.
How: Tools
Software: A UML CASE tool that can also reverse engineer diagrams from code. Hardware: - Use two projectors attached to dual video cards. - For whiteboard drawings, perhaps a digital camera. - To print noteworthy diagrams for the entire team, a plotter Pri -for large-scale drawings to hang on walls. Universit Claude Bernard Lyon 1
Avant-propos Mthodes et processus Processus unifi : caractristiques essentielles Description du processus unifi Illustration : deux dclinaisons du processus unifi Mthodes Agile Conclusion
153
152
Rien
code and fix marche bien sur les petits projets, suicidaire ensuite
raction contre les grosses mthodes prise en compte de facteurs lis au dveloppement logiciel
Fin annes 90
Monumental
mthodes, processus, contrats : rationalisation tous les tages problmes et checs
trop de choses sont faites qui ne sont pas directement lies au produit logiciel construire planification trop rigide
mthodes
dabord des pratiques lies des consultants, puis des livres XP, Scrum, FDD, Crystal 1991
Agile
trouver un compromis : le minimum de mthode permettant de mener bien les projets en restant agile
capacit de rponse rapide et souple au changement orientation vers le code plutt que la documentation
154
155
Mthodes agiles
Simplicit Lgret Orientes
Processus auto-adaptatif
rvision du processus chaque itration
http://agilemanifesto.org/principles.html
Manifeste Agile
Fvrier 1991, rencontre et accord sur un manifeste Mise en place de la Agile alliance
3. 4. 5.
les individus et les interactions davantage que les processus et les outils les logiciels fonctionnels davantage que lexhaustivit et la documentation la collaboration avec le client davantage que la ngociation de contrat la rponse au changement davantage que lapplication dun plan
12 principes
6.
Our highest priority is to satisfy the costumer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile process harness change for the customers competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
http://agilemanifesto.org/principles.html
communiquer
Modliser pour les parties inhabituelles, difficiles ou
dlicates de la conception.
Rester un niveau de modlisation minimalement suffisant Modlisation en groupe Outils simples et adapts aux groupes Les dveloppeurs crent les modles de conception quils
dvelopperont
160
161
Dans la suite
XP (eXtreme Programming)
Site officiel
http://www.extremeprogramming.org/
Autres mthodes
UP, FDD (Feature Driven Development) , DSDM (Dynamic System Development Method),
162
163
http://www.swen.uwaterloo.ca/~kostas/ECE355-05/lectures/Lect3-Ch15-Unit2.ppt
http://web.engr.oregonstate.edu/~cook/classes/cs569.agile.ppt
XP : vue densemble
toutes les 2 ou 3 semaines Planning
XP : rles et responsabilits
Programmeur
crit les tests et puis code
Client
crit les histoires et les tests fonctionnels
Testeur
aide le client crire les tests et les excuter
criture des tests Release Programmation par pairs + Refactoring Test dveloppement pilot par les tests chaque jour (intgration continue) M1 MIAGE - SIMA 2005-2006 / Yannick Pri - Universit Claude Bernard Lyon 1
Consultant
fournit les connaissances spcialises au besoin
Coach
aide lquipe par rapport au processus
Tracker
vrifie que lquipe ne perd pas la bonne direction
Integration
Manager
prend les dcisions
164
165
XP : pratiques (1)
Le jeu de la planification
XP : pratiques (2)
Conception simple
regroupement des intervenants pour planifier litration les dveloppeurs valuent les risques techniques et les efforts prvisibles lis chaque fonctionnalit (user story, sortes de scnarios abrgs) les clients estiment la valeur (lurgence) des fonctionnalits, et dcident du contenu de la prochaine itration
Temps court entre les releases
au dbut : le plus petit ensemble de fonctionnalits utiles puis : sorties rgulires de prototypes avec fonctionnalits ajoutes
Mtaphore
dveloppement pilot par les tests : on crit dabord les tests, puis on implmente les fonctionnalits les programmeurs soccupent des tests unitaires les clients soccupent des tests dacceptation (fonctionnels)
Refactoring
chaque projet a une mtaphore pour son organisation, qui fournit des conventions faciles retenir
rcriture, restructuration et simplification permanente du code le code doit toujours tre propre
166
167
XP : pratiques (3)
XP : pratiques (4)
Semaine de 40 heures (35 en France ?) les programmeurs rentrent la maison lheure faire des heures supplmentaire est signe de problme moins derreurs de fatigue, meilleure motivation Des clients sur place
Intgration continue
utilisation dun gestionnaire de versions (e.g., CVS) tous les changements sont intgrs dans le code de base au minimum chaque jour : une construction complte (build) minimum par jour 100% des tests doivent passer avant et aprs lintgration
168
169
XP : pratiques (5)
Rgles
lquipe dcide des rgles quelle suit, et peut les changer tout moment
Planning
User stories are written. Release planning creates the schedule. Make frequent small releases. The Project Velocity is measured. The project is divided into iterations. Iteration planning starts each iteration. Move people around. A stand-up meeting starts each day. Fix XP when it breaks.
Coding
The customer is always available. Code must be written to agreed standards. Code the unit test first. All production code is pair programmed. Only one pair integrates code at a time. Integrate often. Use collective code ownership. Leave optimization till last. No overtime. All code must have unit tests. All code must pass all unit tests before it can be released. When a bug is found tests are created. Acceptance tests are run often and the score is published.
Espace de travail
tout le monde dans la mme pice
awareness
Designing
Simplicity. Choose a system metaphor. Use CRC cards for design sessions. Create spike solutions to reduce risk. No functionality is added early. Refactor whenever and wherever possible.
Testing
170
171
XP : avantages
Concept intgr et simples Pas trop de management
XP : inconvnients
pas de procdures complexes pas de documentation maintenir communication directe programmation par paires
Appropri pour de petites quipes (pas plus de 10 dveloppeurs), ne passe pas lchelle
pour des groupes plus gros, il faut plus de structure et de documentation (ceremony)
Gestion continuelle du risque Estimation permanente des efforts fournir Insistance sur les tests : facilite lvolution et la maintenance
172
173
http://web.engr.oregonstate.edu/~cook/classes/cs569.agile.ppt
http://fr.wikipedia.org/wiki/Scrum
Scrum
Principes Scrum
Dveloppement progressif
afin de forcer l'quipe progresser, elle doit livrer une solution tous les 30 jours. Durant cette priode de dveloppement l'quipe se doit de livrer une srie de fonctionnalits qui devront tre oprationnelles la fin des 30 jours.
Architecture
conception de haut-niveau
Dveloppement
Cycles itratifs (sprints) : 30j
amlioration du prototype
Pouvoir l'quipe
l'quipe reoit les pleins pouvoirs pour raliser les fonctionnalits. C'est elle qui dtient la responsabilit de dcider comment atteindre ses objectifs. Sa seule contrainte est de livrer une solution qui convienne au client dans un dlai de 30 jours.
Clture
Gestion de la fin du projet : livraison
Contrle du travail
le travail est contrl quotidiennement pour savoir si tout va bien pour les membres de l'quipe et la fin des 30 jours de dveloppement pour savoir si la solution rpond au besoin du client.
174
175
http://web.engr.oregonstate.edu/~cook/classes/cs569.agile.ppt
http://web.engr.oregonstate.edu/~cook/classes/cs569.agile.ppt
Scrum : pratiques
Scrum Master
expert de lapplicatron de Scrum
Product Backlog
tat courant des tches accomplir
Effort Estimation
permanente, sur les entres du backlog
Product owner
responsable officiel du projet
Sprint
itration de 30 jours
Scrum Team
quipe projet.
Customer
participe aux runions lies aux fonctionnalits
Sprint Backlog
Product Backlog limit au sprint en cours
Management
prend les dcisions
176
177
Mthodologies Crystal
Alistair Cockburn (2002). Agile Software Development. Addison Wesley Le dveloppement logiciel vu comme un jeu coopratif de communication et dinvention
des projets diffrents et des mthodes diffrentes le projet change mesure que les gens changent
Familles conues partir de l'observation et des interviews Trouver chaque fois la mthode la moins rigide qui russira quand mme
haute productivit, haute tolrance focus sur la communication
Exemples
Crystal Clear Crystal Yellow Crystal Orange Crystal Red
small utilities
178
179
Crystal Clear
C6-D6 Une seule quipe, un seul
Crystal Orange
C40-E40
plus de structure dquipes lus de coordination
endroit
Good, small teams produce good, small software products Communication troite
Rles
1-2 ans de dveloppement Importance du respect des dlais et de ladaptation au march 181
180
Plan
Conclusion
Avant-propos Mthodes et processus Processus unifi : caractristiques essentielles Description du processus unifi Illustration : deux dclinaisons du processus unifi Mthodes Agile Conclusion
182
183
Crdits remerciements
J.L.
Qualit
niveau plus lev que celui dune application (surcot minimum 50%, en pratique 100%) une confiance absolue est ncessaire pour que la rutilisation soit effective
184
185
(O. Boissier)
Ide
parallle arts martiaux / conceptionprogrammation OO
il faut sentraner appliquer des routines connues avant de pouvoir commencer les utiliser de faon crative, voire en inventer de nouvelles les dbutant doivent apprendre des matres
Robustesse (fiabilit)
aptitude fonctionner dans des conditions non prvues au cahier des charges, ventuellement anormales
un exemple de formation
http://www.xpday.net/Xpday2005/CodersDojo.html
Extensibilit
facilit avec laquelle de nouvelles fonctionnalits peuvent tre ajoutes
186
187
(O. Boissier)
(O. Boissier)
Qualit du logiciel
Qualit du logiciel
Efficacit
utilisation optimale des ressources matrielles (processeur, mmoires, rseau, )
Vrifiabilit
aptitude dun logiciel tre test (optimisation de la prparation et de la vrification des jeux dessai)
Convivialit
facilit dapprentissage et dutilisation, de prparation des donnes, de correction des erreurs dutilisation, dinterprtation des retours
Portabilit
aptitude dun logiciel tre transfr dans des environnements logiciels et matriels diffrents
Intgrit (scurit)
aptitude dun logiciel se protger contre des accs non autoriss. 188
Lisibilit Modularit
M1 MIAGE - SIMA 2005-2006 / Yannick Pri - Universit Claude Bernard Lyon 1
189