GENIE LOGICIEL PRAGMATIQUE
|
|
|
- Florent Poitras
- il y a 10 ans
- Total affichages :
Transcription
1 GENIE LOGICIEL PRAGMATIQUE ESISAR Emmanuel CHENU Développeur logiciel à THALES Avionics 1
2 Éditions du cours [Edition 1] Année scolaire 2007/2008. Version initiale. [Edition 2] Année scolaire 2008/2009. Remaniement du cours avec ajout de Scrum, de l'extrème-programming et du Manifeste Agile. 2
3 Génie Logiciel: c est quoi? Définition Wikipédia: «Le terme génie logiciel désigne l'ensemble des méthodes, des techniques et outils concourant à la production d'un logiciel, audelà de la seule activité de programmation.» L art et la manière de créer un logiciel. 3
4 Objectifs du cours Présenter un aperçu de l'état de l'art en matière de génie logiciel. Exposer les principaux courants de pensées en matière de développement logiciel. Proposer un ensemble de pratiques pragmatiques qui permettent de survivre à un projet de développement de logiciel. Vous donner envie de devenir développeur de logiciels! 4
5 Thèmes du cours Les principaux thèmes abordés: Pourquoi un cours de génie logiciel? C est quoi un bon logiciel bien fait? Processus et activités Intégration continue Gestion de configuration et de faits techniques Travail d équipe Gestion de projet 5
6 Le génie logiciel est un far-west De nombreuses manières d envisager le génie logiciel: Les hackers anarchistes et solitaires, La communauté open-source, Les praticiens de l agilité, Les «modélisateurs», Les générateurs, Les héros, les artistes, les pragmatiques «Il n y a pas une méthode unique pour étudier les choses.» Aristote. 6
7 Le jargon du métier Spécification, exigences et cas d'utilisation, recueil de besoins Tests de validation, de recette, d acceptation Natif et croisé Conception, architecture, plan Boite blanche et boite noire Indicateurs, métriques, avancement Codage, implémentation Processus, cycle de vie Documentation Tests Gestion de configuration, de version Standards, guides, «best practices» Intégration Gestion des faits techniques Outils, ateliers, IDE Validation, recette, acceptation Cycle en V, cascade, développement prédictif Tests unitaires Cycle itératif et incrémental Orienté-objet Tests d intégration Traçabilité et couverture Model-Driven, test-driven, usecase-driven, behaviour-driven, agile, extreme-programming 7
8 Pourquoi? Pourquoi un cours de génie logiciel à l ESISAR? Pourquoi en fin de cursus? Pourquoi a-ton besoin de génie logiciel? 8
9 Pourquoi participer? 1/6 Objectifs «court terme» des étudiants ESISAR: Prendre du recul sur des expériences vécues en stages, mini-projets, travaux pratiques. Formaliser votre expérience du développement logiciel. Note à l'examen. 9
10 Pourquoi participer? 2/6 Objectifs «moyen terme» des étudiants ESISAR: Faire des choix: Chercher un emploi dans l informatique, dans le logiciel? Développer? 10
11 Pourquoi participer? 3/6 Objectifs «moyen terme» des étudiants ESISAR: Pour ceux qui choisissent de ne pas développer: Comprendre comment sont construits les logiciels qu ils vont utiliser; Être en mesure d exprimer des besoins et de suivre un développement de logiciel. 11
12 Pourquoi participer? 4/6 Objectifs «moyen terme» des étudiants ESISAR: Pour ceux qui choisissent le hw ou le système: Comprendre les «softeux» avec qui ils vont travailler. S inspirer de pratiques de «softeux» qui s adaptent bien à d'autres domaines. Selon les organisations, vous ferez peut-être aussi du sw. 12
13 Pourquoi participer? 5/6 Objectifs «moyen terme» des étudiants ESISAR: Pour ceux qui choisissent le développement sw: Établir des contacts pour stages et emplois. Identifier le vocabulaire qui séduira les employeurs. Renforcer une culture générale qui permettra de s'intégrer en douceur dans une équipe de professionnels. 13
14 Pourquoi participer? 6/6 Ce cours arrive t-il trop tard dans le cursus? 3 manières d insérer ce cours dans un cursus: Tôt, théorique et antérieur à la pratique Risque d être trop abstrait, sans résonnance concrète. En continue, en alternance avec de la pratique Probablement l optimum, mais très ambitieux à mettre en place. Tard, après la pratique Permet de formaliser les impressions vécues. Permet de réagir sur la base de l expérience. 14
15 Pourquoi le génie logiciel? 1/8 Pour répondre à cette question, il faut d abord mesurer l impact d un développement logiciel pour une entreprise: Que représente le poids financier d un projet de développement logiciel? Est-ce qu un projet de développement logiciel est une aventure tranquille? 15
16 Pourquoi le génie logiciel? 2/8 Ordre de grandeur dans le meilleur des mondes: 1 H/An = 1350h, 1h = ~50, Productivité = ~2à5 lignes/h Dimension Nb lignes Heures Cout Hommes/An Petit 30_000 6_ K 4 Gros 500_ _000 5M 74 Pour comparer: 1 voiture ~15K 1 maison ~150K 16
17 Pourquoi le génie logiciel? 3/8 Nous avons vu que: 1h = ~50, Productivité = ~2 à 5 lignes/h Donc, le code suivant: ActivityMap total = new ActivityMap(); Iterator iter = this.workmonths_.iterator(); while (iter.hasnext()) { } WorkPeriod month = (WorkPeriod) iter.next(); total.add(month.getactivities()); met 1h à traverser le processus de développement et coûte 50! 17
18 Pourquoi le génie logiciel? 4/8 Selon «The Standish Group Report», en
19 Pourquoi le génie logiciel? 5/8 Selon l étude «The Standish Group Report» en
20 Pourquoi le génie logiciel? 6/8 Selon l étude «The Standish Group Report» 20
21 Pourquoi le génie logiciel? 7/8 21
22 Pourquoi le génie logiciel? 6/6 En conclusion: Le développement d un logiciel est une entreprise risquée car: Cela coûte cher (et plus que prévu) Cela dure longtemps (et plus que prévu) Cela n est même pas sûr d aboutir! (pas sûr d'obtenir ce qui a été demandé) 22
23 Réussite/échec 1/3 Selon l étude «The Standish Group Report» (1995) Les principales raisons de réussite d un projet sont: L implication des utilisateurs Soutient de la hiérarchie Besoins clairs du client 23
24 Réussite/échec 2/3 Selon l étude «The Standish Group Report» (1995) Les principales d échec d un projet sont: 1. Manque d informations des utilisateurs 2. Besoin client incomplet 3. Besoin client changeant 24
25 Réussite/échec 3/3 Conclusions: Les utilisateurs d un logiciel doivent être impliqués dans son développement Les besoins du client sont imprécis et changeants: Faut-il faire un effort pour préciser et figer le besoin du client en début de projet? Faut-il développer de manière à être tolérant aux imprécisions et aux changements de besoins? 2 pratiques différentes du génie logiciel s opposent sur la manière de traiter ces 2 problèmes. 25
26 Quel est l enjeu du génie logiciel? Essayer de maitriser la complexité et le coût d'un développement de logiciel. Augmenter la probabilité de réussite d un projet de développement de logiciel. Bien développer le bon logiciel. Bien développer: maitriser coût/délai/qualité. Bon logiciel: celui attendu par les utilisateurs. 26
27 Avec ou sans génie logiciel? 27
28 Est-ce applicable? Mythe: «Nous n avons pas le temps ni le budget pour travailler proprement et de manière disciplinée.» Non! Travailler de manière propre et disciplinée fait gagner du temps et de l argent. 28
29 Est-ce toujours applicable? Non, pour les logiciels très simples cela peut être superflu. Mais, on emploi pas des professionnels du développement logiciel pour développer des logiciels simples 29
30 Objectif: Le bon logiciel bien fait 30
31 C est quoi un bon logiciel bien fait? 1/11 Un des enjeux d un développement est de bien faire le bon produit. C est quoi un bon logiciel? C est quoi un logiciel bien fait? 31
32 C est quoi un bon logiciel bien fait? 2/11 Facteurs de qualité (Bertrand Meyer): Correction «La correction est la capacité que possède un produit logiciel de mener à bien sa tâche, telle qu elle a été définie par sa spécification.» 32
33 C est quoi un bon logiciel bien fait? 3/11 Facteurs de qualité (Bertrand Meyer): Robustesse «La robustesse est la capacité qu offrent des systèmes logiciels à réagir de manière appropriée à la présence de conditions anormales.» 33
34 C est quoi un bon logiciel bien fait? 4/11 Facteurs de qualité (Bertrand Meyer): Extensibilité «L extensibilité est la facilité d adaptation des produits logiciels aux changements de spécifications.» 34
35 C est quoi un bon logiciel bien fait? 5/11 Facteurs de qualité (Bertrand Meyer): Réutilisabilité «La réutilisabilité est la capacité des éléments logiciels à servir à la construction de plusieurs applications différentes.» 35
36 C est quoi un bon logiciel bien fait? 6/11 Facteurs de qualité (Bertrand Meyer): Compatibilité «La compatibilité est la facilité avec laquelle des éléments logiciels peuvent être combinés à d autres.» 36
37 C est quoi un bon logiciel bien fait? 7/11 Facteurs de qualité (Bertrand Meyer): Efficacité «L efficacité est la capacité d un système logiciel à utiliser le minimum de ressources matérielles, que ce soit le temps machine, l espace occupé en mémoire externe et interne, ou la bande passante des moyens de communication.» 37
38 C est quoi un bon logiciel bien fait? 8/11 Facteurs de qualité (Bertrand Meyer): Portabilité «La portabilité est la facilité avec laquelle des produits logiciels peuvent être transférés d un environnement logiciel ou matériel à l autre.» 38
39 C est quoi un bon logiciel bien fait? 9/11 Facteurs de qualité (Bertrand Meyer): Facilité d utilisation «La facilité d utilisation est la facilité avec laquelle des personnes présentant des formations et des compétences différentes peuvent apprendre à utiliser les produits logiciels et s en servir pour résoudre des problèmes. Elle recouvre également la facilité d installation, d opération et de contrôle.» 39
40 C est quoi un bon logiciel bien fait? 10/11 Facteurs de qualité (Bertrand Meyer): Ponctualité «La ponctualité est la capacité d un système logiciel à être livré au moment désiré par ses utilisateurs, ou avant.» 40
41 C est quoi un bon logiciel bien fait? 11/11 Donc, bon logiciel bien fait est un logiciel correct, robuste, extensible, compatible avec d autres logiciels, efficace, portable, facile à utiliser, ponctuel et avec un code réutilisable. Que va-t-on faire pour bien faire le bon logiciel? 41
42 Comment faire des logiciels? Processus de développement et activités 42
43 Processus de développement: c est quoi? Processus: «Ensemble d activités coordonnées et régulées, en partie ordonnées, dont le but est de créer un produit.» L ordre et la manière d enchaîner les étapes d un développement est le processus de développement. 43
44 Processus de développement: 2 choses Un processus décrit 2 choses importantes: Les activités (étapes) (= quoi?) L enchainement des activités (= quand?) 44
45 Processus de développement: pourquoi? Un logiciel à développer est un problème très complexe à résoudre. Pour appréhender cette complexité, il faut arriver à rendre les choses simples. Pour cela, il faut séparer les problèmes qui peuvent l être afin de les résoudre de manière presque indépendante. Analogie: «Diviser pour mieux régner.» 45
46 Processus de développement: diviser pour mieux régner Un processus définit un enchainement d activités pendant lesquelles on traite des problèmes différents. Ces problèmes ne sont pas complètement indépendants, c est pourquoi l enchainement est important. 46
47 Quels sont les problèmes à résoudre? Quoi? Comment? Qu est-ce que le logiciel doit faire? Comment s assurer qu il fait bien ce qu il doit faire? Le logiciel fait-il ce qu il doit faire? Comment s assurer qu on développe le bon logiciel? A-t-on développé le bon logiciel? Comment organiser et construire le logiciel pour qu il fasse ce qu il doit faire? Comment s assurer que le logiciel est organisé et construit de manière à faire ce qu il doit faire? Le logiciel est-il organisé et construit de manière à faire ce qu il doit faire? Comment traduit-on cette organisation en code source? Le code source est-il bien écrit? Ces problèmes sont-ils indépendants? 47
48 Activité 1/2 Les activités d un processus sont souvent décrites en termes de: Entrées de l activité (matière première) Sorties de l activité (résultat) Intervenants et rôles (qui) Description de l activité (quoi quel est le problème à traiter?) Standards, guides, «best practices» à appliquer (comment) 48
49 Activité 2/2 Entrées Activité: nom Quoi: description Comment: guides, standards Sorties 49
50 Activités 50
51 Activités: les classiques Activités courantes et problèmes traités: Spécifier Qu est-ce que le logiciel doit faire? Comment s assurer qu il le fait? Comment s assurer qu on développe le bon logiciel? Concevoir Comment organiser le logiciel pour qu il fasse ce qu il doit faire? Quelles choix techniques faut-il faire pour que le logiciel fasse ce qu il doit faire? Comment s assurer que le logiciel est organisé et construit de manière à faire ce qu il doit faire? Coder Comment traduit-on cette organisation en code source? Valider Le logiciel fait-il ce qu il doit faire? Développe t on le bon logiciel? Intégrer Le logiciel est-il organisé et construit de manière à faire ce qu il doit faire? Tester unitairement Le code source est-il bien écrit? 51
52 Processus: le cycle en V 52
53 Le cycle en V: alternative 53
54 Le cycle en V A ce jour, le cycle en V reste le cycle de vie le plus utilisé. C est un cycle de vie orienté test: A chaque activité créative (spécification, conception et codage) correspond une activité de vérification (validation, intégration, tests unitaires). La vérification est prise en compte au moment même de la création. 54
55 Activités: spécifier Activité Description Entrées Spécifier Décrire ce que doit faire le logiciel (comportement en boite-noire). Décrire comment vérifier en boite-noire que le logiciel fait bien ce qui est exigé. Client qui a une idée de ce qu il veut. Sorties Une spécification (description des besoins du client). Des procédures de validation. Une spécification peut suivre de nombreux formalismes: cas d utilisation, modèles UML, user-stories, exigences Les procédures de validation peuvent être des procédures manuelles ou des tests. 55
56 Spécifier: exemple En entrée de la spécification, il y a un besoin d un client: Le logiciel DigitalTuner doit s interfacer avec la radio numérique DigitalRadio. Le logiciel affiche la fréquence et le nom de la station à l écoute. Le logiciel peut mémoriser la station à l écoute. L utilisateur sélectionne une station mémorisée pour l écouter. L utilisateur incrémente/décrémente la fréquence à l écoute. L utilisateur passe à la précédente/prochaine station radio dans la bande de fréquence. Faire un premier produit embarqué sur automobile. Prévoir un produit embarqué sur téléphone portable, puis un produit embarqué sur lecteur MP3. Le besoin est trop vague, il faut le clarifier: c est la spécification. 56
57 Spécifier: exemple (Diagramme de classes UML) Le composant DigitalRadio permet de: positionner la fréquence à capter lire l énergie du signal capté lire le nom de la station captée 57
58 Spécifier: exemple (Diagramme de déploiement UML) La carte comprend un logiciel exécutable Tuner.exe (à développer) et un composant DigitalRadio. 58
59 Spécifier: exemple (Diagramme des cas d utilisation UML) L utilisateur utilise le logiciel Tuner pour sélectionner une station à capter. Il y a différentes manières de faire (inc/dec, next/prev, selectmemorized)/ Eventuellement, il peut mémoriserla station captée. 59
60 Spécifier: exemple (Diagramme de classes UML) 60
61 Spécifier: exemple Interface du composant DigitalRadio: Le nom de la station correspondant à la fréquence captée est donné par la sortie tunedstationident. Si la fréquence captée ne correspond à aucune station, la sortie tunedstationident vaut. Le nom d une station radio est disponible N s après avoir positionné la fréquence à capter. Une station est identifiée par un pic d énergie sur la sortie measuredenergy du composant DigitalRadio. La commande freqtotune est lue et les sorties tunedstationident et measuredenergy sont écrites cycliquement à la fréquence F. 61
62 Spécifier: exemple Exigences allouées au logiciel DigitalTuner (1/3) [1.1] L utilisateur peut utiliser le logiciel DigitalTuner pour incrémenter la fréquence captée. Dans ce cas, la commande freqtotune du composant DigitalRadio est incrémentée de df Hz. [1.2] Si l utilisateur incrémente la fréquence à l écoute au-delà de Fmax, alors la fréquence à l écoute devient Fmin. [2.1] L utilisateur peut utiliser le logiciel DigitalTuner pour décrémenter la fréquence captée. Dans ce cas, la commande freqtotune du composant DigitalRadio est décrémentée de df Hz. [2.2] Si l utilisateur décrémente la fréquence à l écoute au-dessous de Fmin, alors la fréquence à l écoute devient Fmax. 62
63 Spécifier: exemple Exigences allouées au logiciel DigitalTuner (2/3) [3.1] L utilisateur peut utiliser le logiciel DigitalTuner pour capter la prochaine station sur la bande de fréquences [Fmin.. Fmax]. [3.2] S il ne reste plus de signal à capter jusqu à Fmax, la recherche repart de Fmin. [4.1] L utilisateur peut utiliser le logiciel Tuner pour capter la précédente station sur la bande de fréquences [Fmin.. Fmax]. [4.2] S il ne reste plus de signal à capter jusqu à Fmin, la recherche repart de Fmax. 63
64 Spécifier: exemple Exigences allouées au logiciel DigitalTuner (3/3) [5.1] L utilisateur peut mémoriser la fréquence captée. [5.2] Même après avoir rallumé la radio, l utilisateur peut sélectionner une fréquence précédemment mémorisée. La commande freqtotune du composant DigitalRadio est positionnée à la fréquence mémorisée. [5.3] A la mise sous tension, le logiciel DigitalTuner demande à DigitalRadio de capter la fréquence écoutée à la fin de la dernière mise sous tension. [6.1] L utilisateur peut lire la fréquence du signal capté. [6.2] Si la fréquence captée est une station, alors l utilisateur peut lire le nom de la station. 64
65 Spécifier = le quoi 65
66 Activités: concevoir Activité Description Entrées Sorties Concevoir Organiser le logiciel afin qu il puisse satisfaire les exigences de la spécification. Faire les principaux choix techniques pour satisfaire les exigences de la spécification. Une spécification. Une description des décisions de conception. Des procédures de tests qui permettent de vérifier que les décisions de conception sont correctement implémentées en code source et qu elles contribuent à satisfaire les exigences de la spécification. Une conception peut prendre de nombreux formalismes: description textuelle des décisions de l architecture, modèles UML, code source 66
67 Concevoir: exemple Idée d architecture candidate: GUI: composant responsable de l interface utilisateur. Controllers::Async: composant contenant la logique de contrôle asynchrone (traitement des commandes utilisateur) et pilotage du composant DigitalRadio. Controllers::Cyclic: composant contenant la logique de contrôle cyclique de surveillance et pilotage du composant DigitalRadio. Persistance: composant contenant la logique de gestion des données persistantes (stations mémorisées). Drivers: composant contenant les moyens de pilotage et surveillance du composant DigitalRadio. 67
68 Concevoir = le comment 68
69 Activités: coder Activité Description Entrées Sorties Coder et tester Écrire le code source du logiciel. Tester le comportement du code source afin de vérifier qu il réalise les responsabilités qui lui sont allouées. Spécification, conception. Code source. Tests unitaires. Documentation électronique navigable? 69
70 Activités: intégrer Activité Description Entrées Sorties Intégrer Assembler le code source du logiciel (éventuellement partiellement) et dérouler les tests d intégration. Conception, code source, tests d intégration (tests). Un rapport de test d intégration. 70
71 Intégrer: exemple Conception difficile à tester par morceaux! Difficile de tester une application partielle? 71
72 Intégrer: exemple Remanier la conception pour se découpler du composant DigitalRadio et de la logique de persistance des stations. 72
73 Intégrer: exemple Tester la logique de contrôle avec un composant DigitalRadio simulé et une persistance simulée. 73
74 Intégrer: exemple Difficile de tester l IHM sans la logique de contrôle. Il faut encore remanier la conception! 74
75 Intégrer: exemple Remanier la conception pour découpler l IHM de la logique de contrôle. 75
76 Intégrer: exemple On peut tester l IHM avec une logique de contrôle simulée. 76
77 Intégrer: exemple Conclusion de l exemple: Envisager une stratégie d intégration du logiciel nous à contraint à remanier la conception pour la rendre testable. De manière générale, il faut toujours penser à la testabilité de ce que l on développe. 77
78 Activités: valider Activité Description Entrées Valider Construire le logiciel complet exécutable. Dérouler les tests de validation sur le logiciel complet exécutable. Logiciel complet exécutable à valider. Tests de validation. Sorties Rapport de tests de validation. 78
79 Cycle en V: efficace? Le cycle en V est-il adapté pour: Bien construire le logiciel? Construire le bon logiciel? 79
80 Cycle en V: faiblesses Construit-on bien le logiciel? Les choix techniques (spec, conception, codage) sont validés très (trop) tard par test. Beaucoup de choix techniques sont pris sans disposer d information concrète (prise de risques). Il faut attendre longtemps pour savoir si on a bien construit le logiciel. 80
81 Cycle en V: faiblesses Construit-on le bon logiciel? Le logiciel est utilisé très (trop) tard. Il faut attendre longtemps pour savoir si on a construit le bon logiciel. Difficile d impliquer les utilisateurs lorsque qu un logiciel utilisable n est disponible qu à la dernière phase 81
82 Cycle itératif et incrémental Le cycle itératif et incrémental est né en réaction aux faiblesses du cycle en V. 82
83 Cycle en V versus iter&inc 83
84 Cycle en V versus iter&inc 84
85 Cycle en V versus iter&inc 85
86 Cycle iter&inc: efficace? Le cycle iter&inc est-il adapté pour: Bien construire le logiciel? Construire le bon logiciel? 86
87 Cycle itér&inc: avantages Les choix techniques (spécification, conception, codage) sont validés très tôt par test. L enchainement des itérations permet de régulièrement vérifier que l on construit bien le logiciel. Le logiciel est utilisé très tôt. L enchainement des itérations permet aux utilisateurs de vérifier régulièrement que l on construit le bon logiciel. 87
88 Cycle iter&inc PRATIQUE: Adoptez un cycle de vie itératif et incrémental Développez de petits incréments fonctionnels livrés en courtes itérations. Analogie: «Un tiens vaut mieux que deux tu l auras.» Remplacez les phases par des activités. Un incrément fonctionnel est un besoin du client. 88
89 Cycle iter&inc «Un système complexe qui fonctionne a toujours évolué à partir d un système simple qui a fonctionné Un système complexe conçu à partir de zéro ne fonctionne jamais et ne peut être rapiécé pour qu il fonctionne. Il faut tout recommencer, à partir d un système simple qui fonctionne.» - John Gall 89
90 Cycle iter&inc: difficultés Pour chaque version à développer après la 1 ère version livrée, il faut arbitrer entre: les demandes de correction, les demandes de modification et les nouvelles fonctionnalités à développer. Demandes de correction Demandes de modifications Nouvelles fonctionnalités Définir le contenu de l itération Contenu de l itération 90
91 Cycle iter&inc: difficultés Comment arbitrer? Il est malsain de vivre avec des défauts identifiés (ou pas ) Ajouter des fonctionnalités sur un code que l utilisateur souhaite modifier entrainera des changements en cascade. Laissez le client choisir 91
92 Cycle iter&inc: exemple 92
93 Que met-on dans un incrément? PRATIQUE: Pilotez le développement par les besoins du client Développez des incréments de fonctionnalités de bout en bout. Fonctionnalité du produit = Besoin du client. Les besoins peuvent être exprimés par des exigences, des cas d utilisation, des scénario, etc Laissez le client piloter. 93
94 Un besoin de bout en bout 94
95 Dans quel ordre faut-il réaliser les itérations? PRATIQUE: Pilotez le développement par les priorités Commencez par développer les fonctionnalités les plus importantes pour le client et les plus risquées. Analogie: «Un tiens vaut mieux que deux tu l auras.» Pensez à la règle des 80/20! 95
96 Comment savoir qu une itération est terminée? PRATIQUE: Pilotez le développement par les tests d acceptation Écrivez des tests automatisés d acceptation. Utilisez ces tests pour mesurer l avancement du développement. Il n y a pas de meilleure mesure de l avancement que les fonctionnalités s exécutant conformément aux besoins du client. Une fonctionnalité s exécute conformément au besoin du client si elle réussit ses tests d acceptation. Les tests d acceptation sont ceux qui font le plus avec le moins. 96
97 Cycle iter&inc: difficultés Un cycle itératif et incrémental implique que l on retouche souvent au même code: ATTENTION AUX REGRESSIONS! Heureusement, on peut les éviter grâce aux tests. 97
98 Comment construire bien et sans régression? PRATIQUE: Pilotez le développement par les tests Développez en cycles très courts: ajoutez un test qui échoue, puis faites le réussir. Dès qu un bug est détecté, commencez par écrire un test qui révèle le défaut. Écrire les tests avant le code est un outil de conception: cela conduit à une conception plus pragmatique, plus simple et moins couplée. Assurez vous que l exécution des tests est automatisée, qu ils vérifient leurs propres résultats et sont jouées par un outil d intégration continue sur toutes les plateformes et pour tous les environnements visés. Les tests sont destinés à éviter les défauts, pas les trouver! 98
99 L intégration est risquée 1/5 PRATIQUE: Intégrez continuellement Entretenez tôt et toujours une version du logiciel qui soit compilable, testable, livrable, installable et comprenant les tous derniers développements. Évitez les stocks, préférez le flux tendu. 99
100 Intégration continue 2/5 100
101 Intégration continue 3/5 101
102 Intégration continue 4/5 102
103 Intégration continue 5/5 103
104 Et hop! Sans les mains ;o) PRATIQUE: N utilisez pas de procédure manuelle Automatisez les procédures de production, de test, de livraison, d'installation afin de gagner en productivité et d'éviter les erreurs humaines. Mais n automatisez que si la procédure sera déroulée plus d une fois 104
105 Penser et/ou faire? 105
106 Gestion de configuration 1/5 PRATIQUE: Utilisez un outil de gestion de configuration Gérez en configuration tout ce qui sert à produire le logiciel (code, tests, outils, documentation, procédures automatisées). Développez dans un espace privé. Ne soumettez à la base commune que des éléments qui ne la font pas régresser. La machine à remonter le temps. La mémoire du projet. «L encre la plus pâle est meilleure que la meilleure mémoire.» Proverbe chinois. Une discipline nécessaire pour développer en équipe. 106
107 Gestion de configuration 2/5 Un outil de gestion de configuration permet de: Identifier et archiver les éléments de la configuration code, tests, documentation, scripts de production Tracer et archiver les changements dans la configuration Identifier et archiver les versions de la configuration Gérer le travail concurrent à plusieurs développeurs sur les éléments de la configuration 107
108 Gestion de configuration 3/5 108
109 Gestion de configuration 4/5 109
110 Gestion de configuration 5/5 110
111 Tout doux PRATIQUE: Avancez à petits pas Travaillez en petits cycles: [synchroniser / coder / compiler / tester / livrer]. Pour avancer en limitant les risques. Pour intégrer en douceur les travaux en parallèle. Avec une gestion de configuration, pour revenir en arrière si besoin est. Démarche itérative et incrémentale appliquée à la journée du développeur. 111
112 Gestion des faits techniques 1/4 PRATIQUE: Utilisez un outil de gestion des faits techniques Évitez l amnésie collective. Maintenez une liste de problèmes et de solutions. «L encre la plus pâle est meilleure que la meilleure mémoire.» Proverbe chinois. «Savoir, c est se souvenir.» Aristote. 112
113 Gestion des faits techniques 2/4 Un fait technique peut être: Un défaut (bug) Une demande d évolution Changement de spécification Une décision importante Choix technique déterminant 113
114 Gestion des faits techniques 3/4 Un outil de gestion des faits techniques permet de: Identifier les faits techniques Identifiant, description, type (défaut, changement, décision ) Tracer et archiver le traitement des faits techniques État courant (nouveau, en cours de traitement, clos), décisions prises pour traiter le fait technique, impact sur le logiciel 114
115 Gestion des faits techniques 4/4 Gestion de configuration et gestion des faits techniques sont 2 pratiques très couplées. En utilisant des outils couplés, on peut: Identifier la version concernée par le fait technique; Identifier les changements dans la configuration liés au traitement du fait technique; Identifier la version pour laquelle le fait technique est clos. 115
116 DRY: Don t Repeat Yourself PRATIQUE: Ne vous répétez pas Éliminez toute duplication de code et d information. Code, valeurs (constantes), 116
117 Une question de vocabulaire PRATIQUE: Soignez votre vocabulaire Construisez et maintenez un glossaire du vocabulaire du produit. Concevez, codez et testez en utilisant le vocabulaire des utilisateurs. «Retirer de l argent» n est pas la même chose que «Débiter quantité de devise du compte principal client». 117
118 Un travail d équipe 1/20 Constats: L'équipe est au cœur d'un projet de développement de logiciel. Pas de réussite sans travail d'équipe! Équipe /= groupe Travail(équipe) > somme(travail individuel) Problème: Comment construire une équipe efficace? 118
119 Un travail d équipe 2/20 Pour construire une équipe efficace: Pratiques d'équipe; Espace de travail adapté aux pratiques d'équipe; Management adapté aux pratiques d'équipe; Des équipiers! 119
120 Un travail d équipe 3/20 Partagez un espace commun au projet 120
121 Un travail d équipe 4/20 Partagez un espace commun au projet 121
122 Un travail d équipe 5/20 122
123 Un travail d équipe 6/20 123
124 Un travail d équipe 7/20 Ce qui est important est visible. 124
125 Un travail d équipe 8/20 L'équipe se pilote elle-même: le flux-tendu par Kanban 125
126 Un travail d équipe 9/20 L'équipe reste synchronisée 126
127 Un travail d équipe 10/20 L'équipe sait où en est le projet 127
128 Un travail d équipe 11/20 L'équipe fait prend soin d'elle 128
129 Un travail d équipe 12/20 L'équipe a du rythme - Gizmo! 129
130 Un travail d équipe 13/20 L'équipe a du rythme - Timebox 130
131 Un travail d équipe 14/20 L'équipe a du rythme : le groove 131
132 Un travail d équipe 15/20 132
133 Un travail d équipe 16/20 PRATIQUE: Développez une propriété collective du code N importe quel développeur de l équipe peut (et se doit d être prêt à) modifier n importe quel code de l application. Permutez les développeurs sur les zones du code, les fonctionnalités du produit et les activités à réaliser. Objectif: les développeurs sont polyvalents sur leur projet. Mais ne veut pas dire que personne n est responsable! 133
134 Un travail d équipe 17/20 PRATIQUE: Concevez en équipe Prenez les décisions importantes de conception à plusieurs. «Je ne fais pas qu utiliser tous les neurones que j ai, mais aussi tous ceux que je peux emprunter.» Woodrow Wilson (Président des Etats-Unis). 134
135 Un travail d équipe 18/20 Utilisez un langage formel pour communiquez vos décisions de conception (ex: UML) 135
136 Un travail d équipe 19/20 PRATIQUE: Relisez-vous les uns les autres Relisez tout. Travaillez en binômes en permutant les paires. «Deux paires d yeux valent mieux qu une.» Travail en binôme: relecture continue, relire sans stock 136
137 Un travail d équipe 20/20 137
138 2 styles d'équipe 138
139 Penser et/ou faire? (bis) 139
140 Génie Logiciel PRATIQUE: Gare aux outils et aux technologies Les outils couteux ne font pas de meilleurs logiciels. Ne mettez pas de technologie non-maitrisée sur le chemin critique. Il vaut mieux faire briller son CV en citant des projets réussis qu en citant des technologies et des outils «maitrisés». 140
141 KISS: Keep It Simple Software PRATIQUE: Optez pour la simplicité Développez la solution la plus simple qui soit viable. L'équipe entretien une conception strictement adaptée aux fonctionnalités actuelles du produit. Le logiciel passe avec succès tous ses tests, ne contient aucune duplication, exprime clairement l'intention des développeurs et contient aussi peu de code que possible. «La perfection est atteinte pas lorsqu'il n y a plus rien à ajouter, mais lorsqu'il n y a plus rien à retirer». St Exupéry. «Il y a deux manière de créer une conception de logiciel. Une manière est de la rendre si simple qu il n y a évidemment aucun défaut. Et l autre est de la rendre si complexe qu il n y a aucun défaut évident.» C.A.R. Hoare. Mais simple n est pas simpliste 141
142 C est clair! PRATIQUE: Soyez clairs Écrivez un code clair, pas un code rusé. Communiquez en code source et réservez les commentaires pour justifier des décisions complexes. Écrivez un code qui puisse être compris par un humain, puis par un compilateur ou un interpréteur. Chaque ligne de code sera plus souvent lue que écrite. «Ce que l on conçoit bien s énonce clairement, et les mots pour le dire arrivent aisément». Boileau. «La première qualité du style, c est la clarté.» Aristote. 142
143 Ça passe PRATIQUE: Gare à l optimisation N'optimisez pas prématurément votre code. Il est plus facile de rendre un code correcte rapide que de rendre un code rapide correcte. «Ne cravachez pas un cheval consentant.» Proverbe latin. Mais ayez conscience des ressources que vous consommez. 143
144 La cause, pas de symptôme (1/2) PRATIQUE: Attaquez les problèmes à la racine Cherchez à comprendre pourquoi. Ne faites pas de correction rapide. Cherchez l origine du problème et corrigez le proprement à la racine. «De verrue en verrue, on produit un chou-fleur.» «Oui, mais pourquoi ce pointeur est-il nul?» Les 5 pourquoi. 144
145 La cause, pas de symptôme (2/2) On surprend un ouvrier en train de épandre de la sciure de bois dans le couloir entre deux machines: Q: Pourquoi répandez-vous de la sciure? R: Parce que le plancher est glissant et peut présenter un danger. Q: Pourquoi le plancher est-il glissant et peut-il présenter un danger? R: Parce qu il y a de l huile sur le plancher. Q: Pourquoi y a-t-il de l huile sur le plancher? R: Parce qu elle fuit le la machine. Q: Pourquoi fuit-elle de la machine? R: Parce que l huile s échappe du cardan à huile. Q: Pourquoi fuit-elle du cardan? R: Parce que le revêtement en caoutchouc à l intérieur du cardan est usé. GENIE LOGICIEL - E.CHENU 145
146 Standardisez PRATIQUE: Faites votre standard Tout le code semble avoir été écrit par une seule, même et très compétente personne. Mais ne standardisez pas les goûts et les couleurs 146
147 Ne pas figer les plans PRATIQUE: Laissez la conception guider, pas dicter La conception est un plan qui doit évoluer. «Aucun plan ne survit au contact avec l ennemi.» Helmut Von Moltke. «En préparant une bataille, j ai toujours trouvé que les plans sont inutiles, mais la planification est indispensable.» Dwight Eisenhower. La bataille de la Somme: suivre un plan coûte que coûte peut coûter très cher 147
148 Refactoring PRATIQUE: Remaniez votre logiciel Corrigez les mauvaises conceptions, les mauvaises décisions et le mauvais code dès que vous les détectez. Lorsque vous avez à ajouter une fonctionnalité à un logiciel et que le code n est pas organisé de manière à l accueillir, commencez par remanier le logiciel pour que la fonctionnalité devienne facile à ajouter. Ensuite, ajoutez la fonctionnalité. Remanier: changer le code sans changer les fonctionnalités et le comportement du logiciel. 148
149 Détrompez-vous 1/6 PRATIQUE: Détrompez votre code Concevez par contrats: Utilisez des contrats pour documenter le logiciel et vérifier que le code ne fait ni plus ni moins que ce qu il annonce. Utilisez des assertions pour valider vos postulats et contrats. Utilisez le niveau d avertissement le plus strict du compilateur. Exigez des constructions sans avertissement. Éliminez les avertissements en changeant le code, non en réduisant la sévérité du compilateur. Écrivez vos tests au plus tard en même temps que le code et rejouez les aussi souvent que possible. 149
150 Détrompez par assertion 2/6 Une assertion représente un énoncé considéré ou présenté comme vrai. double altitude = getaltitude(); assert altitude >= 0.0 : "Altitude is positive"; double res = Math.sqrt(altitude); En programmation, une assertion erronée interrompt l exécution du programme: run: java.lang.assertionerror: Altitude is positive at cours.main.main(main.java:30) «Une violation d assertion à l exécution est la manifestation d un bogue dans le logiciel.» Bertrand Meyer 150
151 Détrompez par contrat 3/6 Soit une routine r. Le contrat de r est sa pré-condition et sa post-condition. «Si vous promettez d appeler r avec une pré-condition vérifiée, en retour, je promets de délivrer un état final dans lequel la post-condition est vérifié.» Bertrand Meyer. static double sqrt(double num) { assert num >= 0.0 : "precond num must be positive"; final double res = java.lang.math.sqrt(num); assert (res * res) == num : "postcond"; return res; } 151
152 Détrompez par contrat 4/6 «Une violation de pré-condition est la manifestation d un bogue chez le client.» Bertrand Meyer. res = Math.sqrt(4.0); res = Math.sqrt(-4.0); run: java.lang.assertionerror: precond num must be positive! at cours.math.sqrt(math.java:19) at cours.main.main(main.java:34) Exception in thread "main" Java Result: 1 Le bug se trouve chez l appelant de cours.math.sqrt(). 152
153 Détrompez par contrat 5/6 «Une violation de post-condition est la manifestation d un bogue chez le fournisseur.» Bertrand Meyer. run: java.lang.assertionerror: postcond! at cours.math.sqrt(math.java:22) at cours.main.main(main.java:33) Exception in thread "main" Java Result: 1 Le bug se trouve dans cours.math.sqrt(). 153
154 Détrompez par test 6/6 public void testsqrt() { System.out.println("sqrt"); } assertequals(math.sqrt(0.0), 0.0); assertequals(math.sqrt(4.0), 2.0); Si ce test est écrit avant l implémentation de Math.sqrt(), alors l implémentation sera correcte. Si ce test est rejoué aussi souvent que possible, alors on détectera toute régression de Math.sqrt(). 154
155 Le Manifeste Agile Les 4 Valeurs Les personnes et les interactions plutôt que les processus et les outils. Un logiciel opérationnel plutôt qu une documentation exhaustive. La collaboration avec le client plutôt que la négociation du contrat. Réagir au changement plutôt que le suivi d'un plan. 155
156 Le Manifeste Agile Les 12 principes Notre priorité est de satisfaire le client par des livraisons rapides et continues de logiciel utile. Intégrer les changements aux exigences même s ils arrivent tard dans le processus de développement. Les méthodes Agiles intègrent rapidement les changements de façon à offrir un avantage compétitif au client. Livrer fréquemment du logiciel opérationnel, soit à toutes les quelques semaines ou quelques mois en visant de courts délais. Les clients et les développeurs doivent travailler main dans la main quotidiennement tout au long du projet. Élaborer des projets autour d individus motivés. Leur procurer l environnement et le support nécessaire et leur faire confiance pour réaliser le travail. La façon la plus efficace de transmettre l information à une équipe et entre les membres est par des conversations en face à face. Le logiciel opérationnel est la principale mesure de progrès Agile favorise le développement à rythme "normal". Les gestionnaires, développeurs et utilisateurs devraient être en mesure de maintenir un rythme constant et ce, indéfiniment. Porter une attention continue à l excellence technique et à un bon design améliore l agilité. La simplicité - l art de maximiser la quantité de travail non fait - est essentielle. Les meilleures architectures, exigences et designs prennent naissance dans des équipes qui se gèrent ellesmêmes. Régulièrement, l équipe fait une réflexion sur les façons de devenir plus efficace, s ajuste et modifie son comportement en conséquence. 156
157 SCRUM: Team, ScrumMaster & Product Owner 157
158 SCRUM: Pratiques 158
159 SCRUM: Product backlog 159
160 SCRUM: Sprint planning meeting 160
161 SCRUM: Sprint planning meeting & sprint backlog 161
162 SCRUM: Sprint 162
163 SCRUM: Daily scrum meeting 163
164 SCRUM: Sprint review meeting 164
165 SCRUM: Sprint retrospective meeting 165
166 SCRUM: Burndown 166
167 extreme-programming (XP) Méthode de développement logiciel Recherche l'efficacité maximale en concentrant l'effort de travail sur l'objectif de développer vite et juste. La démarche est légère, pragmatique, disciplinée, empirique et adaptative. Les valeurs: Communication Simplicité Retour d'information Courage Respect 167
168 extreme-programming (XP) Pratiques: Jeu du Planning Intégration continue Petites livraisons Rythme soutenable Tests de recette Client sur site Tests unitaires Conception simple Remaniement Appropriation collective du code Convention de nommage Programmation en binôme 168
169 Scrum ou XP? Scrum: démarche de gestion de projet (générique); XP : démarche technique de développement logiciel, qui prend en compte la gestion de projet; Scrum + XP! 169
170 Glossaire 1/7 Application concurrente Application multithread Architecture Assertion Asynchrone Boîte noire Une application est concurrente lorsqu elle a plusieurs flux d exécution en parallèle. Les applications distribuées et multithread sont 2 exemples d applications concurrentes. Application dont le flux d exécution se divise en flux parallèles appelés processus légers ou threads dans l espace d adressage d un processus unique. L architecture logicielle décrit d une manière symbolique et schématique les différents composants d un ou de plusieurs programmes informatiques, leurs interrelations et leurs interactions. L architecture logicielle, produite lors de la phase de conception, ne décrit pas ce que doit réaliser un programme mais plutôt comment il doit être conçu de manière à répondre aux spécifications. L analyse décrit le «quoi faire» alors que l architecture décrit le «comment le faire». Une assertion représente un énoncé considéré ou présenté comme vrai. L asynchronisme qualifie deux processus qui ne se déroulent pas au même moment. Au sein d un programme, les appels de méthodes sont faits de façon synchrone, c est-à-dire l appellent attend le retour de l appelé pour continuer son exécution. En asynchrone, l appelant continue immédiatement son exécution après un appel. L appelé réalise son traitement de façon indépendante. Envisager un produit uniquement en termes d entrées et sorties. 170
171 Glossaire 2/7 Classe Conception Cohésion Compatibilité Composant Correction Couplage En programmation orientée objet une classe déclare des propriétés communes à un ensemble d'objets. La classe déclare des attributs représentant l'état des objets et des méthodes représentant leur comportement. Une classe représente donc une catégorie d'objets. Il apparaît aussi comme un moule ou une usine à partir de laquelle il est possible de créer des objets. On parle alors d'un objet en tant qu'instance d'une classe (création d'un objet ayant les propriétés de la classe). Voir Architecture. Cohésion entre classes dans un package, entre services dans une classe : «qui se ressemble s assemble» Facteur de qualité. La compatibilité est la facilité avec laquelle des éléments logiciels peuvent être combinés à d autres. Brique logicielle. Un composant est un élément d un système, d une application ayant des fonction prédéfinies et est capable, théoriquement, de communiquer avec d autres composants. On parle aussi de programmation orientée composant, c est-à-dire une programmation ayant une approche modulaire de l architecture applicative. Facteur de qualité. La correction est la capacité que possède un produit logiciel de mener à bien sa tâche, telle qu elle a été définie par sa spécification. Une entité (fonction, module, classe, package, composant) est couplée à une autre si elle dépend d elle. 171
172 Glossaire 3/7 Couplage faible Couverture de code Déploiement Design-pattern Efficacité Encapsulation Extensibilité Par opposition au couplage fort. Aussi nommé couplage lâche ou léger. Désigne une relation faible entre plusieurs entités (classes, composants), permettant une grande souplesse de programmation, de mise à jour. Ainsi, chaque entité peut être modifiée en limitant l impact du changement au reste de l application. Le couplage fort, au contraire, tisse un lien puissant qui rend l application plus rigide à toute modification de code. Consiste à s'assurer que le test conduit à exécuter l'ensemble (ou une fraction déterminée) des instructions présentes dans le code à tester. Action permettant la diffusion d une application. On peut utiliser un installeur ou simplement un téléchargement. Motif de conception ou patron de conception. Concept aidant à résoudre un problème récurrent. Il décrit une solution au problème que l on rencontre. Il s agit de procédés de conception, des bonnes pratiques. Facteur de qualité. L efficacité est la capacité d un système logiciel à utiliser le minimum de ressources matérielles, que ce soit le temps machine, l espace occupé en mémoire externe et interne, ou la bande passante des moyens de communication L encapsulation permet de cacher quelque chose dans une autre chose. En programmation, l'encapsulation de données est l'idée de cacher l'information. Facteur de qualité. L extensibilité est la facilité d adaptation des produits logiciels aux changements de spécifications. 172
173 Glossaire 4/7 Facilité d utilisation Fonctionnalité Génie logiciel Gestion de configuration Instance Facteur de qualité. La facilité d utilisation est la facilité avec laquelle des personnes présentant des formations et des compétences différentes peuvent apprendre à utiliser les produits logiciels et s en servir pour résoudre des problèmes. Elle recouvre également la facilité d installation, d opération et de contrôle La fonctionnalité est l étendue des possibilités offertes par un système. Le terme génie logiciel désigne l'ensemble des méthodes, des techniques et outils concourant à la production d'un logiciel, au-delà de la seule activité de programmation La gestion de configuration consiste à gérer la description technique d'un système (et de ses divers composants), ainsi qu'à gérer l'ensemble des modifications apportées au cours de l'évolution du système. La gestion de configuration est utilisée pour la gestion de systèmes complexes. La gestion de configuration est avant tout un ensemble de pratiques. Ces pratiques sont au nombre de quatre. - Identification des articles de la configuration - Contrôle des changements - Enregistrement des états de la configuration - Audit et revue Instance d une classe = objet. Voir les définitions de classe et objet. 173
174 Glossaire 5/7 Intégration Intégration continue Itération Objet Optimisation L'intégration a pour but de valider le fait que toutes les parties développées indépendamment fonctionnent bien ensemble. L'intégration est une activité d'un projet durant laquelle on vérifie le produit par des tests d'intégration L'intégration continue est une technique utilisée en génie logiciel. Elle consiste à vérifier à chaque modification de code source que le résultat des modifications ne produit pas de régression de l'application en cours de développement. Bien que le concept existait auparavant, l"intégration continue" se réfère généralement a la pratique de l'extreme programming Au sens général, une itération représente des passages dans une boucle de répétition. Au sens méthodologique, ce terme est employé pour désigner un passage au travers toutes les activités de développement d un logiciel. Un objet est l'instanciation d'une classe au sens de la programmation orientée objet. C est une variable d une classe. En programmation optimiser le code consiste à le modifier pour rendre le logiciel plus efficace, c est-à dire plus économe en terme de consommation de ressources (temps d exécution, utilisation de la mémoire, ). 174
175 Glossaire 6/7 Paradigme de programmation Persistance Polymorphisme Programmation orientée objet Ponctualité Portabilité Un paradigme de programmation est un style fondamental de programmation informatique qui traite de la manière dont les solutions aux problèmes doivent être formulées dans un langage de programmation (à comparer à la méthodologie, qui est une manière de résoudre des problèmes spécifiques de génie logiciel. La persistance est un mot employé pour qualifier le fait de permettre à une application d exploiter ses données même après un arrêt ou un crash: les données persistent même après l arrêt de l application. En informatique, le polymorphisme est l'idée d'autoriser le même code à être utilisé avec différents types, ce qui permet des implémentations plus abstraites et générales. Paradigme de programmation informatique qui consiste en la définition et l'assemblage de briques logicielles appelées objet; un objet représente un concept, une idée ou toute entité du monde physique, comme une voiture, une personne ou encore une page d'un livre. Facteur de qualité. La ponctualité est la capacité d un système logiciel à être livré au moment désiré par ses utilisateurs, ou avant. Facteur de qualité. La portabilité est la facilité avec laquelle des produits logiciels peuvent être transférés d un environnement logiciel ou matériel à l autre 175
176 Glossaire 7/7 Processus Réutilisabilité Robustesse Spécification Test Test d intégration Test unitaire Ensemble d activités coordonnées et régulées, en partie ordonnées, dont le but est de créer un produit Facteur de qualité. La réutilisabilité est la capacité des éléments logiciels à servir à la construction de plusieurs applications différentes Facteur de qualité. La robustesse est la capacité qu offrent des systèmes logiciels à réagir de manière appropriés à la présence de conditions anormales C'est l'étape en génie logiciel qui consiste à décrire ce que le logiciel doit faire En informatique, un test (anglicisme) désigne une procédure de vérification partielle d'un système informatique : le but est de s'assurer que le système informatique réagit de la façon prévue par ses concepteurs. Test qui vérifie que toutes les parties développées indépendamment fonctionnent bien ensemble. Le test unitaire est un procédé permettant de s'assurer du fonctionnement correct d'une partie déterminée d'un logiciel ou d'une portion d'un programme. Il s'agit pour le programmeur de tester un module, indépendamment du reste du programme, ceci afin de s'assurer qu'il répond aux spécifications fonctionnelles et qu'il fonctionne correctement en toutes circonstances. 176
177 Mythes affirmations erronées Les délais et le budget ne sont pas compatibles d un travail propre. Les exigences peuvent être assez précises dès le début du projet. Les exigences sont stables. La conception peut être terminée avant que ne débute la programmation. Il faut tester pour trouver les défauts. Se dépêcher créé du gaspillage. Il existe une unique meilleure manière de procéder. Planifier, c est s engager. 177
178 Les règles d or Travailler en équipe, confronter les points de vue Être pragmatique Utiliser l expérience acquise Rendre les choses simples Faire les choses bien et y prendre du plaisir! 178
Topologie du web - Valentin Bourgoin - http://www.valentinbourgoin.net. Méthodes agiles & SCRUM
Méthodes agiles & SCRUM 1/ Pourquoi les méthodes agiles? Définition d une méthode agile. Fondamentaux. Quand les utiliser? 2/ SCRUM En quoi est-ce une méthode agile? Sprints et releases. Le Product Owner.
25/12/2012 www.toubkalit.ma
25/12/2012 www.toubkalit.ma 1 Définition Exemple des méthodes agiles Valeurs Principes Le cycle itératif et incrémental (Itération/Sprint) Schéma de travail Méthode Scrum. Méthode XP (Extreme programming).
Méthodes Agiles et gestion de projets
Méthodes Agiles et gestion de projets Eric LELEU Consultant Solutions Collaboratives Contact [email protected] Site Personnel http://home.nordnet.fr/~ericleleu Blog http://ericleleu.spaces.live.fr La
Les méthodes Agiles Introduction. Intervenant : Tremeur Balbous [email protected] http://www.agilegardener.com/ 04/09/2008
Les méthodes Agiles Introduction Intervenant : Tremeur Balbous [email protected] http://www.agilegardener.com/ 04/09/2008 Les méthodes Agiles Le contexte Le Manifeste Agile Une tentative de définition
Développement itératif, évolutif et agile
Document Développement itératif, évolutif et agile Auteur Nicoleta SERGI Version 1.0 Date de sortie 23/11/2007 1. Processus Unifié Développement itératif, évolutif et agile Contrairement au cycle de vie
Conduite de projets SI. Les méthodes «Agiles» N QUAL/1995/3660e ORESYS
Conduite de projets SI Les méthodes «Agiles» N QUAL/1995/3660e ORESYS Agilité : de quoi parle-t-on? Agilité de l entreprise Urbanisme Architectures SOA Agilité du SI ERP Plateformes applicatives agiles
GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET
GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET 1 Tianxiao LIU Licence Professionnelle Réseaux & Sécurité Université de Cergy-Pontoise http://depinfo.u-cergy.fr/~tliu/lpg.php PLAN Objectif et
Gestion de projet Agile. STS IRIS Module 4.2 - «Gérer et organiser un projet informatique»
Gestion de projet Agile Module 4.2 - «Gérer et organiser un projet informatique» Sommaire Introduction Principes et méthodes Agiles Scrum 2 Introduction Gestion de projet : démarche structurante assurant
Processus d Informatisation
Processus d Informatisation Cheminement de la naissance d un projet jusqu à son terme, deux grandes étapes : Recherche ou étude de faisabilité (en amont) L utilisateur a une idée (plus ou moins) floue
INF2015 Développement de logiciels dans un environnement Agile Examen final hiver 2015
INF2015 Développement de logiciels dans un environnement Agile Examen final hiver 2015 Question #1 Quelle technique de mise sous test devons-nous utiliser si nous voulons simuler le comportement d'une
Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer
Le Processus RUP Database Administrator Project Leader H. Kadima Performance Engineer Release Engineer Analyst Designer / Developer Tester Table des matières 1. De l artisanat à l industrialisation de
CHAPITRE 3 : LES METHODES AGILES?
CHAPITRE 3 : LES METHODES AGILES? UE Gestion de Projet Master 1 STIC 2014/2015 Céline Joiron 2 Introduction Après avoir présenté les cycles de vie «classiques» de la gestion de projet L objectif de ce
Gestion Projet. Cours 3. Le cycle de vie
Gestion Projet Cours 3 Le cycle de vie Sommaire Généralités 3 Séquentiel 7 Itératif/Incrémental 17 Extreme Programming 22 Que choisir? 29 Etats Transverse 33 Cours 3 2006-2007 2 Généralités Cours 3 2006-2007
Agilitéet qualité logicielle: une mutation enmarche
Agilitéet qualité logicielle: une mutation enmarche Jean-Paul SUBRA Introduction : le manifeste Agile Manifeste pour le développement Agile de logiciels Nous découvrons comment mieux développer des logiciels
Le génie logiciel. maintenance de logiciels.
Le génie logiciel Définition de l IEEE (IEEE 1990): L application d une approche systématique, disciplinée et quantifiable pour le développement, l opération et la maintenance de logiciels. Introduction
Méthodes de développement
1 / 9 Méthodes de développement Méthodes agiles 1 - Introduction... 2 2 -Le manifeste agile et les méthodes agiles... 2 2.1 Le manifeste agile... 2 2.2 Les méthodes agiles... 3 3 - Caractéristiques communes
L enseignement de méthodes agiles dans un contexte d apprentissage actif
L enseignement de méthodes agiles dans un contexte d apprentissage actif Ruben González-Rubio Eugène Morin Balkrishna Sharma Gukhool Groupe ɛ X it C1-3019 Département de génie électrique et de génie informatique
Méthodes agiles. www.businessinteractif.com CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif.
Méthodes agiles www.businessinteractif.com Jean-Louis Bénard [email protected] CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS 0 20 mai 2002 Sommaire Méthodes agiles : une réponse à un malaise?
backlog du produit Product Owner
Méthodes agiles : Définition: selon Scott Ambler «Une méthode agile est une approche itérative et incrémentale pour le développement de logiciel, réalisé de manière très collaborative par des équipes responsabilisées
Analyse,, Conception des Systèmes Informatiques
Analyse,, Conception des Systèmes Informatiques Méthode Analyse Conception Introduction à UML Génie logiciel Définition «Ensemble de méthodes, techniques et outils pour la production et la maintenance
Scrum Une méthode agile pour vos projets
Avant-propos 1. Objectif du livre 17 2. Notre démarche 17 3. Structure du livre 18 4. Remerciements 20 Scrum, une méthode agile avant tout 1. Le grand départ 21 2. La gestion de projet informatique 22
Retour d expérience implémentation Scrum / XP
Retour d expérience implémentation Scrum / XP Bruno Orsier Octobre 2008 p.1 Bruno Orsier, Agile Tour 2008 Grenoble Plan Qui sommes nous? Pourquoi Scrum/XP? Historique de la mise en œuvre Bilan Sondage
Les méthodes itératives. Hugues MEUNIER
Les méthodes itératives Hugues MEUNIER INTRODUCTION. Toute les méthodes ont le même but : la maîtrise du budget, du planning et de la qualité des projets de développement informatique Plusieurs approches
Introduction au génie logiciel
Introduction au génie logiciel Guillaume Laurent ENSMM 2007 G. Laurent (ENSMM) Introduction au génie logiciel 2007 1 / 36 Plan du cours 1 Problématique du génie logiciel 2 Méthodes de développement logiciel
Séance 1 Méthodologies du génie logiciel
Séance 1 Méthodologies du génie logiciel Objectifs : Histoire du développement du logiciel. La crise du logiciel. Explorer les différentes méthodologies de développement. Comprendre l importance d adopter
Scrum et l'agilité des équipes de développement
NormandyJUG Scrum et l'agilité des équipes de développement Par Dimitri Baeli & Nicolas Giard 23 Février 2010 Présentation des intervenants Dimitri Baeli http://twitter.com/dbaeli VP Quality Enterprise
GL - 2 2.1 Le Génie Logiciel
GL - 2 2.1 Le Génie Logiciel Lydie du Bousquet [email protected] En collaboration avec J.-M. Favre, I. Parissis, Ph. Lalanda 1 Rappels La production logicielle est une activité complexe de façon
Yassine ZAKARIA SÉMINAIRE : MÉTHODES AGILES
Yassine ZAKARIA SÉMINAIRE : MÉTHODES AGILES Quelques constats Etude du Standish Group Seul 1/3 des projets informatiques sont qualifiés de succès 50 % sont livrés et opérationnels, mais sont sortis du
Guide de Préparation. EXIN Agile Scrum. Foundation
Guide de Préparation EXIN Agile Scrum Foundation Édition Décembre 2014 Droits d auteur 2014 EXIN Tous droits réservés. Aucune partie de cette publication ne saurait être publiée, reproduite, copiée, entreposée
Cours Gestion de projet
Cours Gestion de projet Méthodes de conduite de projet Version Date Auteur V1.8 Septembre 2007 Pascal HEYER 1 Méthodes de conduite de projet Ce document est publié sous la licence libre Creative Commons-BY-NC-SA
Les mécanismes d'assurance et de contrôle de la qualité dans un
Les mécanismes d'assurance et de contrôle de la qualité dans un projet Agile SPIN de Montréal - ETS 5 mars 2012 Qui sommes nous? mathieu boisvert Coach Agile Chargé de cours Co auteur d un livre avec Sylvie
Méthode Agile de 3 ème génération. 2008 J-P Vickoff
PUMA Essentiel Méthode Agile de 3 ème génération 1 Structure de la présentation PUMA Essentiel méthode Agile de 3 ème génération Quelques principes Agiles Principales pratique Agile de pilotage Structure
Développement d'un projet informatique
Développement d'un projet informatique par Emmanuel Delahaye (Espace personnel d'emmanuel Delahaye) Date de publication : 27 janvier 2008 Dernière mise à jour : 25 avril 2009 Cet article présente un certain
Règles d engagement. Présentation Diapositives Bibliographie Questions Les vertus de la marche
Règles d engagement Présentation Diapositives Bibliographie Questions Les vertus de la marche Plan Rappels sur l agilité Scrum : une implantation de l agilité Scrum ou XP? Conclusion Historique sélectif
Introduction Les processus traditionnels extreme Programming Conclusion. extreme Programming. vers plus d agilité. F. Miller francois.miller@inpg.
vers plus d agilité F. Miller [email protected] FC INPG Octobre 2008 - version 1.0 Introduction Contexte Le monde bouge économie des moyens (humains, financier,...) ; recherche de plus d efficacité
Agile 360 Product Owner Scrum Master
Agile 360 Product Owner Scrum Master Lead Technique Equipe Agile Conception Agile Leadership Agile Software Craftmanship Test Driven Development Catalogue 2013 Liste des formations Formation Agile 360
Génie logiciel (Un aperçu)
(Un aperçu) (sommerville 2010) Laurent Pérochon INRA URH 63122 St Genès Champanelle [email protected] Ensemble d activités conduisant à la production d un logiciel Sur un échantillon de
Soyez agile. Dans l industrie du logiciel, la. De plus chaque projet informatique
Soyez agile Dans l industrie du logiciel, la gestion de projet est confrontée à de nombreux défis. Le principal est de pouvoir assurer l adéquation d un produit et de ses fonctionnalités avec les besoins
Vérifier la qualité de vos applications logicielle de manière continue
IBM Software Group Vérifier la qualité de vos applications logicielle de manière continue Arnaud Bouzy Kamel Moulaoui 2004 IBM Corporation Agenda Analyse de code Test Fonctionnel Test de Performance Questions
Évaluation et implémentation des langages
Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation
Certification Scrum Master
avec Jeff Sutherland Les méthodes Agiles représentent indéniablement une approche nouvelle et différente dans la conduite de projets. Au lieu de suivre un plan à la lettre en assignant des tâches à une
UML est-il soluble dans les méthodes agiles?
Pascal ROQUES Valtech Training UML est-il soluble dans les méthodes agiles? octobre 07 Résumé On entend beaucoup parler actuellement de deux approches ayant l'air fondamentalement opposées : l'approche
Projet Active Object
Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques
Plan. 1 Cycles de développement. 2 Méthodes agiles, principes généraux. 3 Comment se passe un Sprint?
Plan nitiation au Génie Logiciel Cours 5 ntroduction au π développement agile T. Genet ([email protected]) (STC/RSA) GEN-5 1/ 28 T. Genet ([email protected]) (STC/RSA) GEN-5 2/ 28 Bibliographie Plan L informatique
Brique BDL Gestion de Projet Logiciel
Brique BDL Gestion de Projet Logiciel Processus de développement pratiqué à l'enst [email protected] url:http://www.infres.enst.fr/~vignes/bdl Poly: Computer elective project F.Gasperoni Brique BDL
Présentation UBO 12/2008 Présentation des méthodes agiles
Gestion de projet Vers les méthodes agiles Des approches prédictives aux méthodes agiles appliquées avec SCRUM Présentation UBO 12/2008 Présentation des méthodes agiles Partie 1 : La société Altran Altran
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes
Conditions gagnantes pour démarrer sa transition Agile
Conditions gagnantes pour démarrer sa transition Agile 1 4 Les De plus en plus d organisations voient l Agilité comme une piste de solution aux problèmes auxquels elles sont confrontées. Par ailleurs,
Analyse et conception des Systèmes d Information. La démarche Merise : La Maintenance
Analyse et conception des Systèmes d Information La démarche Merise : La Maintenance Place, spécificité, objectifs et principes directeurs Niveaux et catégories de maintenance Formes de maintenance Déroulement
GESTION DE PROJET : LA METHODE AGILE
GESTION DE PROJET : LA METHODE AGILE Le SCRUM est une méthode de gestion de projet. Elle a pour but d améliorer la productivité des équipes. Ce terme est inspiré du terme Scrum en rugby qui désigne une
Scrum + Drupal = Julien Dubois
Pourquoi j aime Scrum Pourquoi Scrum et Drupal sont faits pour s entendre Scrum + Drupal = Julien Dubois Happyculture.coop De quoi allons-nous parler? 1. Que sont les méthodes agiles? 2. Présentation de
Scrum. Description. Traduit en langue française par Bruno Sbille et Fabrice Aimetti - Avril 2014 - Trad FR v1.1
Scrum Description Traduit en langue française par Bruno Sbille et Fabrice Aimetti - Avril 2014 - Trad FR v1.1 V 2012.12.13 2014 Scrum Alliance,Inc 1 Les principes de Scrum Les Valeurs du Manifeste Agile
Annexe : La Programmation Informatique
GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de
Logiciel Libre Cours 3 Fondements: Génie Logiciel
Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli [email protected] Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/
XP : plus qu'agile. Extreme Programming v2 et Développement Responsable. Thierry Cros
XP : plus qu'agile Extreme Programming v2 et Développement Responsable Thierry Cros Retrouvez cette présentation sur le site http://thierrycros.net Licence CC-BY-NC-SA XP : plus qu'agile Pourquoi XP Installer
Programmation Agile Mise en oeuvre via Scrum et l'extreme Programming (XP)
Programmation Agile Mise en oeuvre via Scrum et l'extreme Programming (XP) B. Mermet 2010 Plan La programmation Agile et L'artisanat du logiciel Mise en œuvre avec Scrum Mise en œuvre avec l'extreme Programming
Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé. http://www.rzo.free.fr
Cours de Java Sciences-U Lyon Java - Introduction Java - Fondamentaux Java Avancé http://www.rzo.free.fr Pierre PARREND 1 Octobre 2004 Sommaire Java Introduction Java Fondamentaux Histoire de Java Machine
Méthodologies SCRUM Présentation et mise en oeuvre
Méthodologies SCRUM Présentation et mise en oeuvre Réalisé par Istace Emmanuel (Manu404) pour la communauté Hackbbs Document sous license GFDL (Licence de documentation libre GNU) http://www.gnu.org/licenses/licenses.fr.html
Le Product Owner Clé de voute d un projet agile réussi
Le Product Owner Clé de voute d un projet agile réussi Cédric Pourbaix - EFIDEV Qui est le product owner? SM PO Scrum Team Qui est le product owner? SM PO Scrum Team Qui est le product owner? marketing
Qu'est-ce que le BPM?
Qu'est-ce que le BPM? Le BPM (Business Process Management) n'est pas seulement une technologie mais, dans les grandes lignes, une discipline de gestion d'entreprise qui s'occupe des procédures contribuant
Jean-Pierre Vickoff. 2008 J-P Vickoff
Agilité étendue Jean-Pierre Vickoff 1 Structure de la présentation PUMA Essentiel méthode Agile de 3 ème génération Le mouvement Itératif-Incrémental (Agile) Agilité étendue au SI et PUMA Essentiel Entreprise
Agile Maroc 24 Novembre 2010. Méthodes agiles. Thierry Cros. http://etre-agile.com. Agile Maroc 24 novembre 2010
Agile Maroc 24 Novembre 2010 Méthodes agiles Thierry Cros 1 Thierry Cros 10 ans déjà... 2010 Création Extreme Programming France 2009 SigmaT Les Agilistes Toulousains 2010 Membre de «Fédération Agile»
Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.
Analyse et conception objet du logiciel : Méthode de conception objet et notation UML Rémy Courdier Email : [email protected] Rémy Courdier V2.1 1 Plan du cours Introduction au Génie Logiciel
Les Bonnes PRATIQUES DU TEST LOGICIEL
Les Bonnes PRATIQUES DU TEST LOGICIEL SOMMAIRE Qu est-ce que le test logiciel? Pourquoi le test est-il un maillon crucial de l ingénierie logicielle? Quels sont les différents types de tests? Qu est-ce
Christophe Leroy Marc Lainez. L Agilité est-elle soluble dans la culture francophone?
Christophe Leroy Marc Lainez L Agilité est-elle soluble dans la culture francophone? Le Manifeste Agile http://agilemanifesto.org/ 2 Les 4 valeurs Agiles Equipe Personnes et interactions plutôt que processus
Modèle de changement d organisation. Leanpizza.net présente. Petit Guide Rapide du jeu de cartes Modèle de Changement d Organisation
Guide rapide Leanpizza.net présente Petit Guide Rapide du jeu de cartes Modèle de Changement d Organisation v1.0 Rédacteur : Olivier Lafontan Traduction : Yannick Quenec hdu Date : 29 juin 2010 - Guide
Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational
IBM Software Group Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational Fernard Bonaguidi [email protected]
Patrons de Conception (Design Patterns)
Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques
Types de REA produites dans le cadre de la séquence pédagogique
Scénario pédagogique APPRENDRE À ENSEIGNER AUTREMENT Description générale du scénario Titre Les bases de données relationnelles Résumé Dans le cadre d'un cours à distance, la visioconférence est une REA
1. Considérations sur le développement rapide d'application et les méthodes agiles
Chapitre 1 Introduction 1. Considérations sur le développement rapide d'application et les méthodes agiles 1.1 Rappel Longtemps les méthodes en cascade ou en V ont été opposées aux démarches empiriques
LES tests d'acceptation
dans la série : b.d. agile! Idée et dessins par Anis berejeb : www.berejeb.com LES tests d'acceptation reflexions, experimentations... réussites et échecs... apprentissage et amelioration. à Partager avec
ITIL V2. La gestion des mises en production
ITIL V2 La gestion des mises en production Création : novembre 2004 Mise à jour : août 2009 A propos A propos du document Ce document de référence sur le référentiel ITIL a été réalisé en 2004 et la traduction
GL - 2 2.2 Processus de développement Cycles de vie
GL - 2 2.2 Processus de développement Cycles de vie Lydie du Bousquet [email protected] En collaboration avec J.-M. Favre, Ph. Lalanda, I. Parissis, Y. Ledru 1 Plan Introduction Modèles en cascade
Maîtrise d ouvrage agile
Maîtrise d ouvrage agile Offre de service Smartpoint 17 rue Neuve Tolbiac 75013 PARIS - www.smartpoint.fr SAS au capital de 37 500 - RCS PARIS B 492 114 434 Smartpoint, en quelques mots Smartpoint est
INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30
Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité
Ingénierie des méthodes Agiles : Que cache l opposition entre déploiement et livraison en continu? Faut-il adopter DevOps 1?
DEVOPS et le déploiement d application Les Livres Blancs de MARTE Ingénierie des méthodes Agiles : Que cache l opposition entre déploiement et livraison en continu? Faut-il adopter DevOps 1? L alignement
Introduc)on à l Agile
Introduc)on à l Agile 1 D où je viens Études M2 info : Paris Diderot (2009) MS Management de Projets Technologiques : ESSEC / Telecom Paris (2010) Aujourd hui Consultant à OCTO Technology (Conseil en SI)
PG208, Projet n 3 : Serveur HTTP évolué
PG208, Projet n 3 : Serveur HTTP évolué Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L objectif
En face du commanditaire, on met un chef de projet qui connait le domaine (banque, administration, etc.)
Atelier «Science du projet» séance 4 8 novembre 2008 Compte rendu 1. Sébastien Larribe : la méthode AGILE, méthode de gestion de projet Sébastien Larribe part de l hypothèse que des méthodes de conception,
AGILE IPHONE DEVELOPMENT
AGILE IPHONE devday for iphone, Geneva 2010 DEVELOPMENT Jérôme Layat [email protected] BREVE PRESENTATION Directeur Technique hortis, le studio 10 ans de pratique de l Agilité: développement, coaching
But de cette introduction à la gestion de projets :
But de cette introduction à la gestion de projets : Présenter quelques méthodes de conception logicielle. Replacer la conception de bases de données dans un contexte plus vaste. Présenter quelques méthodes
OMGL 6 Cahier des charges
OMGL 6 Helpdesk Radoslav Cvetkoski, Xavier Fanti, Yohann Haution, Yanis Salti, Sébastien Tassier Sommaire Helpdesk... 1 0. Historique du document... 3 1. Introduction... 3 2. Présentation de la société...
Architecture pragmatique pour la gestion du cycle de vie des applications (ALM)
Architecture pragmatique pour la gestion du cycle de vie des applications (ALM) Concepts Agile appliqués à l architecture et à la conception Jean-Louis Maréchaux [email protected] Jean-Louis Maréchaux
ISTQB Agile Tester en quelques mots ISTQB Marketing Working Group
ISTQB Agile Tester en quelques mots ISTQB Marketing Working Group Mai 2014 Qu est-ce que l ISTQB? ISTQB : International Software Testing Qualifications Board (www.istqb.org): Association sans but lucratif
Gestion de projets logiciels. Xavier Dubuc
Gestion de projets logiciels Résumé blocus Xavier Dubuc 16 janvier 2011 1 Table des matières 1 Planification (PERT-GANTT) 3 1.1 Définitions............................................. 3 1.2 Analyse un
SCRUM BUT, LE LIVRE BLANC. De la problématique de mener un projet AGILE dans une organisation classique
SCRUM BUT, LE LIVRE BLANC De la problématique de mener un projet AGILE dans une organisation classique Résumé Alors que les demandes de conduite de projet en AGILITE sont de plus en plus fréquentes, les
Gé nié Logiciél Livré Blanc
Gé nié Logiciél Livré Blanc Version 0.2 26 Octobre 2011 Xavier Blanc [email protected] Partie I : Les Bases Sans donner des définitions trop rigoureuses, il faut bien commencer ce livre par énoncer
Testeur Agile Niveau Fondation 2014 - Bertrand Cornanguer, Vice-chair Agile tester WG
Testeur Niveau Fondation 2014 - Bertrand Cornanguer, Vice-chair tester WG Enquêtes 2013 sur l Agilité Seriez-vous interessé par la certification Testeur? Enquête ISTQB (70 pays juin octobre 2013) Ingénieurs
Développement spécifique d'un système d information
Centre national de la recherche scientifique Direction des systèmes d'information REFERENTIEL QUALITE Procédure Qualité Développement spécifique d'un système d information Référence : CNRS/DSI/conduite-proj/developpement/proc-developpement-si
Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles
Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles Laurent PY CEO, Smartesting [email protected] @py_laurent www.smartesting.com Guillaume Coquelle Testeur,
MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»
MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE» Du cours Modélisation Semi -Formelle de Système d Information Du Professeur Jean-Pierre GIRAUDIN Décembre. 2002 1 Table de matière Partie 1...2 1.1
Jean-Pierre Vickoff www.vickoff.com
Techniques du futur Agile Communication - Architecture - Méthode Vers une approche Agile de 3 ème génération Jean-Pierre Vickoff www.vickoff.com Protocole de séance : Précisions techniques immédiates possibles
Qualité du logiciel: Méthodes de test
Qualité du logiciel: Méthodes de test Matthieu Amiguet 2004 2005 Analyse statique de code Analyse statique de code Étudier le programme source sans exécution Généralement réalisée avant les tests d exécution
Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION
Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Classe de terminale de la série Sciences et Technologie du Management et de la Gestion Préambule Présentation Les technologies de l information
1/15. Jean Bernard CRAMPES Daniel VIELLE
1/15 Jean Bernard CRAMPES Daniel VIELLE CaseOnCloud est un SaaS de gestion de projets de développement logiciel CaseOC est : Multi démarches : MACAO MACAO Agile SCRUM Suivi d'aucune démarche particulière
Chapitre I : le langage UML et le processus unifié
I. Introduction Les méthodes d analyse orientées objet sont initialement issues des milieux industriels. La préoccupation dominante de leurs auteurs est le génie logiciel, c est-àdire les principes et
CQP Développeur Nouvelles Technologies (DNT)
ORGANISME REFERENCE STAGE : 26572 20 rue de l Arcade 75 008 PARIS CONTACT Couverture géographique : M. Frédéric DIOLEZ Bordeaux, Rouen, Lyon, Toulouse, Marseille Tél. : 09 88 66 17 40 Nantes, Lille, Strasbourg,
Plateforme de capture et d analyse de sites Web AspirWeb
Projet Java ESIAL 2A 2009-2010 Plateforme de capture et d analyse de sites Web AspirWeb 1. Contexte Ce projet de deuxième année permet d approfondir par la pratique les méthodes et techniques acquises
ITIL V3. Transition des services : Principes et politiques
ITIL V3 Transition des services : Principes et politiques Création : janvier 2008 Mise à jour : août 2009 A propos A propos du document Ce document de référence sur le référentiel ITIL V3 a été réalisé
