Projet de développement Génie logiciel
Transcript of Projet de développement Génie logiciel
![Page 1: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/1.jpg)
Projet de développementGénie logiciel
n Philippe Collet
n Master 1 Informatique – 2018-19n https://wiki.unice.fr/pages/viewpage.action?pageId=289482168
n Avec certains slides de Sébastien Mosser et Guilhem Molines
P. Collet 1
![Page 2: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/2.jpg)
P. Collet 2
PROJETTechnique
Expertise
Acceptation
Client
![Page 3: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/3.jpg)
Notion de cycle de vie
• Description d’un processus pour :– la création d ’un produit– sa distribution sur un marché– son retrait
• Cycle de vie et assurance qualité– Validation : le bon produit ?– Vérification : le produit correct ?
P. Collet 3
![Page 4: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/4.jpg)
Les phases du cycle de vie
P. Collet 4
Objectifs
Définition des besoins
Analyse des besoins
Planification
Maintenance
Mise en exploitation
Qualification
Validation et Intégration
Implémentation et tests unitaires
Conception
Retrait ou remplacement
![Page 5: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/5.jpg)
Modèle en cascade (1970)
P. Collet 5
Analyse des besoinsvérificationSpecif. fonctionnelles
vérificationPlanification
vérificationConceptionvérification
Implémentationtests unitaires
IntégrationtestsQualification
testsExploitation
Retrait
Changementdans l’expression
des besoins
vérification
![Page 6: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/6.jpg)
Problèmes du modèle en cascade• Les vrais projets suivent rarement un développement
séquentiel• Établir tous les besoins au début d’un projet est difficile• Le produit apparaît tard• Seulement applicable pour les projets qui sont bien compris
et maîtrisés
P. Collet 6
![Page 7: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/7.jpg)
Modèle en V
P. Collet 7
Qualification
F Gestion des configurations, de projet, plan assurance qualité
Conception globale
Intégration
Conceptiondétaillée
Testsunitaires
Programmation
Définition des tests
Définition du plan d ’intégration
Spécifications fonctionnelles& planification
![Page 8: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/8.jpg)
Comparaison
• Le cycle en V–permet une meilleure anticipation–évite les retours en arrière
• Mais– le cadre de développement est rigide– la durée est souvent trop longue– le produit apparaît très tard
P. Collet 8
![Page 9: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/9.jpg)
Prototypage
P. Collet 9
construire /améliorer
la maquetteÉcoute du
client
Le clientessaie
la maquette
![Page 10: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/10.jpg)
Prototypage• Discuter et interagir avec l’utilisateur• Vérifier l ’efficacité réelle d ’un algorithme
• Vérifier des choix spécifiques d ’IHM• Souvent utilisé pour identifier les besoins– Prototype jetable (moins de risque ?)
• Souvent implémenté par des générateurs de code– Prototype évolutif
P. Collet 10
![Page 11: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/11.jpg)
Prototypage (suite)
• Mais :– Les objectifs sont uniquement généraux– Prototyper n’est pas spécifier– Les décisions rapides sont rarement de bonnes
décisions– Le prototype évolutif donne-t-il le produit demandé ?– Les générateurs de code produisent-ils du code assez
efficace ?
F Projets petits ou à courte durée de vieP. Collet 11
![Page 12: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/12.jpg)
Modèle incrémental
P. Collet 12
Analyse des besoinsvérificationSpécif. & Planification
vérificationConcept. globale
vérification
Exploitation
Retrait
Incrément Nconception détaillée, codage, tests uni., intégration, livraison
![Page 13: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/13.jpg)
Le développement incrémental• combine des éléments des modèles linéaires et du
prototypage• produit des incréments livrables• se concentre sur un produit opérationnel (pas de
prototype jetable)• peut être utilisé quand il n’y a pas assez de
ressources disponibles pour une livraison à temps
FLe premier incrément est souvent le noyauFLes incréments aident à gérer les risques
techniques (matériel non disponible)P. Collet 13
![Page 14: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/14.jpg)
Modèle en spirale (Boehm, 1988)
P. Collet 14
![Page 15: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/15.jpg)
Modèle en spirale (suite)
• Spécification : communiquer avec le client• Analyse de risque : évaluation des risques
techniques et des risques de gestion• Implémentation et vérification : construire,
tester, installer et fournir un support utilisateur• Validation: obtenir des retours• Planification : définir les ressources, la répartition
dans le temps
P. Collet 15
![Page 16: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/16.jpg)
Modèle en spirale (suite)
• Couplage de la nature itérative du prototypage avec les aspects systématiques et contrôlés du modèle en cascade
• Les premières itérations peuvent être des modèles sur papier ou des prototypes
• Utilisation possible tout au long de la vie du produit
FRéduit les risques si bien appliquéFLes augmentent considérablement si le contrôle
faiblitP. Collet 16
![Page 17: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/17.jpg)
2TUP : Two Track Unified Process
P. Collet 17
§ S’articule autour de l’architecture§ Propose un cycle de développement en Y§ Détaillé dans « UML en action »§ pour des projets de toutes tailles
![Page 18: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/18.jpg)
Développement :Agilité ?
P. Collet 18
![Page 19: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/19.jpg)
Ce qui NE marche PAS
• Des spécifications complètes en premier
• Commencer par coder sans aucune conception
19
![Page 20: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/20.jpg)
Ce qui MARCHE
• Principe KISS: Keep It Simple, Stupid !– Procéder par incrément
• Impliquer le client• Classer les tâches par priorité• Faire des itérations courtes• Utiliser des tests unitaires
20
![Page 21: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/21.jpg)
Simplicité, de bout en bout
P. Collet 21
![Page 22: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/22.jpg)
Manifeste agile…• Idées de base
– Un produit ne peut pas être entièrement spécifié au départ– L’économie est trop dynamique: l’adaptation du processus s’impose.– Accepter les changements d’exigences, c’est donner un avantage
compétitif au client
• Privilégier :– L’interaction entre les personnes plutôt que les processus et les outils– le logiciel fonctionnel plutôt que la documentation pléthorique– la collaboration avec le client plutôt que la négociation de contrats– la réaction au changement plutôt que le suivi d’un plan
22
![Page 23: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/23.jpg)
Plusieurs méthodes agiles
• XP : eXtreme Programming– Kent Beck, 1999 : focus sur la construction
• SCRUM : mêlée en rugby– Met l’accent sur la pratique des réunions
quotidiennes
• LEAN• ….
P. Collet 23
![Page 24: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/24.jpg)
eXtreme Programming• Maximiser les activités qui apportent une réelle
valeur au logiciel
• Problèmes ciblés :– Défauts– Travail non terminé– Dérives
• (fonctionnalités jamais utilisées)– Multiplicité des tâches– Documentation pas à jour– Obsolescence
P. Collet 24
![Page 25: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/25.jpg)
eXtreme Programming (XP…) : mise en oeuvre…
§ Ensemble de « Bests Practices » de développement(travail en équipes, transfert de compétences…)
§ plutôt pour des projets de moins de 10 personnes
4 Valeurs§ Communication§ Simplicité§ Feedback§ Courage
![Page 26: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/26.jpg)
Scrum• Scrum est un processus agile qui vise à produire la plus grande
valeur métier dans la durée la plus courte. • Un logiciel qui fonctionne est produit à chaque sprint (toutes les 2 à
4 semaines).
• Le métier définit les priorités. • L'équipe s'organise elle-même pour déterminer la meilleure façon
de répondre aux exigences les plus prioritaires.
• A chaque fin de sprint, tout le monde peut voir fonctionner le produit courant et décider soit de le livrer dans l'état, soit de continuer à l'améliorer pendant un sprint supplémentaire.
26
![Page 27: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/27.jpg)
Processus Scrum
27
![Page 28: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/28.jpg)
Backlog du produit
• Les exigences du produit• Toutes (Idées, fonctionnalités, Epic, Thème,
etc.)• Exprimées en User Stories • Le Product Owner le maintient organisé• Toujours estimé et avec les priorités
28
![Page 29: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/29.jpg)
User Stories, Epic…
29
SPRINT
RELEASE
FUTUR
![Page 30: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/30.jpg)
User story et tâche ???
• Système
30
![Page 31: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/31.jpg)
Une tâche ?
• Une tâche -> heure(s)• Un commit -> minute(s)
31
![Page 32: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/32.jpg)
Le découpage ?
• Interface graphique / interface externe
• Client
• Back-end
32
![Page 33: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/33.jpg)
Un système bien intégré ? Complet ?
33
![Page 34: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/34.jpg)
Vraiment ?
34
![Page 35: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/35.jpg)
User Story
• Une ou deux phrases résument ce que veut l’utilisateur
• Décrit comment le système est sensé travailler• Ecrite sur une carte• Contient suffisamment de détails pour
pouvoir être estimée
35
![Page 36: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/36.jpg)
User story : en fiche
• Au Recto : – Fonctionnalité exigée
sous la forme d’un «récit utilisateur»,
– Sa priorité attribuée par l’utilisateur et
– Le temps estimé par l’équipe pour sa réalisation.
36
![Page 37: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/37.jpg)
User story : en fiche• Au Verso : – conditions
d’acceptation définies par l’utilisateur
– niveau de risque (optionnel)
– modifications de la demande (optionnel)
37
![Page 38: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/38.jpg)
Bonne « story » : testable ?Principe SMART• Spécifique - défini et explicite• Mesurable - quantifiable et mesurable• Atteignable - qui peut être réalisé et validé• Relevant - pertinent pour la story• Temporaire - limité dans le temps
• Facilite la rédaction des critères d’acceptation
38
![Page 39: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/39.jpg)
Découpage vertical idéal
• Interface graphique / interface externe
• Client
• Back-end
39
![Page 40: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/40.jpg)
Comment ?…
40
Attention, faites simple mais pas simpliste
![Page 41: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/41.jpg)
Verticalité : 1. Epics
41
![Page 42: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/42.jpg)
Verticalité : 2. Stories / features
42
![Page 43: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/43.jpg)
Bonne « story » : quelle taille ?
• Des petites user stories pour un futur proche• Macro (Epic) pour les prochaines
• Les user stories sont progressivement affinées dans le temps, plus elles s’approchent de la fin
• Deux types de grandes user stories– Les user stories complexes : intrinsèquement grande et sans
possibilités de les réduire
– Les user stories combinées : Plusieurs user stories combinées en une seule
P. Collet 43
![Page 44: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/44.jpg)
On essaye ?• Description du problème Comparer deux mains de poker saisie sur l’entrée standard, déterminer laquelle est la plus forte et afficher ce résultat. • Description des règlesUne main de poker comprend 5 cartes tirées d’un seul jeu de 52 cartes. Chaque carte à une couleur, Trèfle, Carreau, Coeur, Pique (dénotée Tr, Ca, Co, Pi) et une valeur parmi 2, 3, 4, 5, 6, 7, 8, 9, 10, valet, dame, roi, as (dénotée 2, 3, 4, 5, 6, 7, 8, 9, 10, V, D, R, A). Pour le calcul du score, toutes les couleurs ont le même niveau, par exemple l’as de carreau n’est pas battu par l’as de pique, ils sont égaux. Les valeurs sont ordonnées comme définies précédemment, le 2 étant la plus petite valeur et l’as la plus grande.
Plus haute carte : les mains qui ne correspondent à aucune autre catégorie sont classées par la valeur de leur plus haute carte. Si les plus hautes cartes ont la même valeur, les mains sont classées par la plus haute suivante et ainsi de suite.Paire : 2 des 5 cartes de la main ont la même valeur. Deux mains qui contiennent une paire sont classées par la valeur des cartes formant la paire. Si les valeurs sont les mêmes, les mains sont classées par les cartes hors de la paire, en ordre décroissant.Deux paires : La main contient deux paires différentes. Les mains qui contiennent deux paires sont classées par la valeur de la paire la plus élevée. Deux mains avec la paire la plus élevée de même valeur sont classées par l’autre paire. Si ces valeurs sont les mêmes, les mains sont classées par la valeur de la carte restante.Brelan, Suite , Couleur, Full, Carré, Quinte Flush…
P. Collet 44
![Page 45: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/45.jpg)
Valeur cumulée d’intégration et livraison continues
45
petites stories
grosses stories
Incréments sans intégration verticale
![Page 46: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/46.jpg)
Attention à maîtriser le développement de la dette technique…
46
![Page 47: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/47.jpg)
Comment s’organiser ?• Maximiser le
minimalisme…• Kanban
– Mot japonais signifiant étiquette (ou petite fiche)
– Pratique basée sur l’utilisation d’étiquette (post-it) pour matérialiser les informations sur le processus
47
![Page 48: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/48.jpg)
Kanban : historique• Méthode inventée à la fin des années 1950 dans les usines
Toyota– Mise en place entre deux postes de travail– Une simple fiche cartonnée fixée sur les bacs de pièces dans une
ligne d'assemblage ou une zone de stockage• Intérêts chez Toyota
– Limite la production du poste amont aux besoins exacts du poste aval
– Le nombre de kanban en circulation doit être limité pour éviter la constitution d'en-cours trop importants
• Cette méthode est au départ adaptée aux entreprises ayant une production répétitive et relativement régulière
48
![Page 49: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/49.jpg)
Kanban : premiers principes• Le problème à résoudre est un workflow
– La solution consiste à le visualiser• Diviser le travail (comme dans Scrum…)
– Décrire chaque élément sur une fiche et la mettre au mur (tableau, board)
– Tracer des colonnes, donnez leur le nom des étapes du workflow– Placer les éléments du travail
• En tant que développeur– Choisir ce qui est à faire en fonction de ses compétences ou missions– Faire ce qui est « en cours »– Mettre à jour le tableau Kanban
49
![Page 50: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/50.jpg)
Kanban: exemples d’étapes• Au minimum
– ToDo In Progress Done
• Plus Fin– ToDo Chosen Development– Tests Delivery Done
50http://www.modalisa-technology.com/
![Page 51: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/51.jpg)
Kanban sur très gros projets : github.com
51
![Page 52: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/52.jpg)
Kanban : autres principes
• Et si j’ai 12000 fiches dans « In Progress », ou « TODO », je fais quoi ?
• Limiter le TAF (Travail A Faire / WIP : Work in Progress)– Fixer des bornes au nombre d’éléments dans chaque étape
• Mesurer le temps de cycle (lead time)– C’est le temps moyen pour traiter complètement un élément,
c’est à dire le faire passer par toutes les étapes du workflow– Optimiser le processus en réduisant le temps de cycle et en le
rendant prévisible
– No silver bullet : pas de borne fixe, ca dépend…
52
![Page 53: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/53.jpg)
Mesurer…
53
y = a.x + ba = velocity / vitesse
![Page 54: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/54.jpg)
Kanban(project board dans github)
54
![Page 55: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/55.jpg)
Estimer la durée des tâches
• Une activité extrêmement complexe– Seule l’expérience permet de réaliser des
estimations avec une marge d’erreur acceptable
• Méthodes « classique » d’estimation– Plein de formules mathématiques– Utilisation de plusieurs « experts »– Plus ou moins coûteuses et très peu précises
![Page 56: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/56.jpg)
Planning Poker : Rappel
• Utilisé dans les méthodes agiles– Livraison incrémentale– Correction de « trajectoire » fréquente
• Auteur : J. Grenning (2002)– Popularisé par M. Cohn (Agile Estimating and Planning)
• Avantage : expression libre de tous sur l’estimation
![Page 57: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/57.jpg)
Planning Poker : déroulement• Tous les développeurs sont impliqués
– Ils estiment l’ensemble de la tâche, pas uniquement leur partie– Un des développeurs est le modérateur
• Le product owner peut être la, mais ne participe pas– Il obtiendra des estimations sur l’ensemble des « stories »– Les estimations seront en « story points », une unité
permettant de comparer les stories entre elles, pas une valeur en heures ou jours !
• Chaque développeur reçoit un paquet de cartes
57
![Page 58: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/58.jpg)
Les cartes
58
Plus c’est gros, plus l’estimation est grossière
![Page 59: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/59.jpg)
Planning Poker : déroulement• Pour chaque « user story » ou activité à évaluer
– Le modérateur lit la description– Le product owner répond aux éventuelles questions– Chaque développeur choisit ensuite une carte pour cette
estimation, la carte reste cachée• Ensuite, les cartes sont retournées
– Les estimations vont différer, la plus grande et la plus petite explique leur point de vue
– On discute– On repart
![Page 60: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/60.jpg)
Planning Poker : déroulement• Le product owner utilise les résultats pour fixer les
priorités• A la fin de l’itération, on compare l’estimation aux
nombre de jours réel :– On obtient la vélocité de l’équipe
• Au début, il faut bien choisir la première story qui va servir à l’estimation– Trop grande : on va se retrouver avec des fractions– Trop petite : l’estimation sera trop facile
60
![Page 61: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/61.jpg)
Pourquoi ça marche ?• Plusieurs « experts » donnent leur opinion sans
s’influencer– On ne parle pas– On n’influence pas par le langage du corps
• Cela améliore la qualité de l’estimation– On doit justifier ses estimations– Moyenner les estimations des personnes donne de meilleurs
résultats
• Google « free planning poker online »…
61
![Page 62: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/62.jpg)
Livraison ?Intégration continue(petite introduction)
P. Collet 62
![Page 63: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/63.jpg)
Livraison…
• 1995: Ms Windows 95 : 2 service packs– 1 après 6 mois– 1 après 12 mois
• 2015: Ms Windows 10 : – 4 éditions– Updates en continu et forcées– Impossible de compter les « service packs » : 1 Go
d’update le premier jour !
P. Collet 63
![Page 64: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/64.jpg)
Livraison chaque jour
• Quelle est la propriété la plus importante pour livrer en continu ?
LA CONFIANCE
P. Collet 64
![Page 65: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/65.jpg)
Chaîne d’outillage pour développement et intégration
• Niveau 1 : 1 projet pour un groupe d’étudiants– Compilation automatique : maven– Versioning : github– Gestion des fonctionnalités : ticketing (sur github)– Code, compilation par clic– Construction sur la machine locale, mais portable
• C’est ce que vous allez faire en projet !
P. Collet 65
![Page 66: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/66.jpg)
Chaîne d’outillage pour développement et intégration
• Niveau 2 : projet industriel complexe– 20 à 200 contributeurs– 1 release par an, 1 patch par mois– Plus de 20 Millions de ligne de code
• Besoins (second semestre) :– Développement par composants– Indépendance des constructions– Indicateurs de qualité (test)– Automatisation complète
• -> SECOND SEMESTRE
P. Collet 66
![Page 67: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/67.jpg)
Intégration
• C’est complexe• Donc :– On intègre au plus tôt– On intègre des éléments pour lesquels on a confiance• Ils sont de bonne « qualité »
P. Collet 67
![Page 68: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/68.jpg)
Qualité ?• Pas de défaut ?
• Ou défauts connus ?
• Objectifs :– Connaître et documenter les bugs– Les vérifier pour être sur qu’il n’y a pas de régression– Trouver éventuellement des contournements– Faire émerger de nouveaux besoins
P. Collet 68
![Page 69: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/69.jpg)
Types de tests• Unit Tests • Integration Tests • GUI Tests • Non-regression Tests • Coverage Tests • Load Tests • Stress Tests • Performance Tests • Scalability Tests • Reliability Tests • Volume Tests
• Usability Tests • Security Tests • Recovery Tests • L10N/I18N Tests • Accessibility Tests • Installation/Configuration
Tests • Documentation Tests• Platform testing• Samples/Tutorials Testing• Code inspections
P. Collet 69
![Page 70: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/70.jpg)
Types de tests en M1
• Unit tests : tests unitaires (1er semestre)– JUnit– Mocking– Adaptation à Spring
• Functional and Integration tests (2nd semestre)
P. Collet 70
![Page 71: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/71.jpg)
P. Collet 71
![Page 72: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/72.jpg)
Etape 1: github up• Créer un compte github avec un nom bien identifiable (idéalement
vos noms et prénoms)• Activer le student pack https://education.github.com/pack en
utilisant votre adresse email unice.fr au lieu de univ-cotedazur(même identifiant), car la nouvelle entité n'est pas encore connue de github
• Conseil: il y aura un cours dédié sur la gestion de versions, l’utilisation des branches, etc. Si certains n'ont jamais utilisé cet outil, un excellent tutoriel interactif est https://learngitbranching.js.org/)
P. Collet 72
![Page 73: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/73.jpg)
Etape 2 : team up
• Formation des équipes (4 par équipes, 3 sinon)• Un des membres de l'équipe crée un repository privé
(c'est justement gratuit avec le student pack) et invite les autres membres de l'équipe
• Inviter ensuite les facilitateurs sur le même repository(logins: collet et PhilippeRenevierGonin)
• Mail à [email protected] avec rappel des noms/prénoms/login-github des membres de l’équipe et nom du repository de projet
P. Collet 73
![Page 74: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/74.jpg)
Etape 3: play Takenoko
P. Collet 74
![Page 75: Projet de développement Génie logiciel](https://reader030.fdocuments.net/reader030/viewer/2022032410/62325870f17b751b5f36ef6e/html5/thumbnails/75.jpg)
Etape 4: slice
• Projet:– Pas de version graphique– Des Bots plus ou moins intelligents qui jouent– Livraison en intégration continue, tous les jours (ou il y
a cours), une version intégrée le soir
• TODO:– Epics– Architecture du Produit Minimum viable – Slices sur les deux premières livraisons
P. Collet 75