Vous êtes sur la page 1sur 29

Génie Logiciel1

Chapitre2: Processus de développement


logiciel et modèle de processus
(Partie3)
Rim Afdhal

Niveau: 2éme année Informatique

2021/2022
1
Plan du cours

1 Les Méthodes Agiles

2 Processus Unifié

2
Les Méthodes Agiles
Introduction
❑ Au milieu des années 90, un groupe d’expert en Cycles de vie de logiciels
voulaient proposer de nouveaux modèles.

❑ Les nouveaux modèles sont plus « légers » : moins de documentation et moins


de contrôle sur le procédé.

❑ Ces modèles s’adresse à des projets de petite ou moyenne taille avec une
équipe réduite.

❑ Ces modèles permettent de s’ajuster rapidement aux changements des


spécifications.

❑ Ces modèles sont qualifiés de «modèles agiles».

3
Les Méthodes Agiles
Principe
❖ Toujours satisfaire le client à travers des livraisons rapides et continues.
❖ Une prise en compte de possibles changements dans les besoins des utilisateurs
au cours du projet.
❖ Livrer fréquemment un système fonctionnel.

❖ Une forte participation entre développeurs et utilisateurs: La meilleure méthode


de faire circuler l’information c’est le contact direct entre eux.

❖ Conduire le projet autour d’équipes motivées.

❖ Simplifier au maximum.

❖ Le développement doit être à un rythme constant

4
Les Méthodes Agiles

Parmi les méthodes agiles, les plus usuelles on peut citer:

La méthode RAD(Rapid Application Development)

La méthode DSDM(Dynamic Systems Development Method)

La méthode XP(Programmation eXtrême)

La méthode SCRUM.

5
Les Méthodes Agiles: XP
Principe
❖ L'extreme programming a été inventée par Kent Beck, Ward Cunningham, Ron
Jeffries pendant leur travail sur un projet de calcul des rémunérations.

❖ XP est née officiellement en octobre 1999.

❖ XP s'attache à rendre le projet plus flexible et ouvert au changement en introduisant


des principes et des pratiques.

❖ Destinée à des équipes réduites de moyenne taille avec des spécifications incomplets
et / ou vagues.

6
Les Méthodes Agiles: XP
Principe
❖ Les principes de cette méthode ne sont pas nouveaux : ils existent
dans l'industrie du logiciel depuis des dizaines d'années et dans les
méthodes de management depuis encore plus longtemps. L'originalité
de la méthode est de les pousser à l'extrême :

▪ Puisque la revue de code est une bonne pratique, elle sera faite en
permanence (par un binôme)

▪ Puisque les tests sont utiles, ils seront faits systématiquement avant
chaque mise en œuvre

7
Les Méthodes Agiles: XP
Principe

▪ Puisque la simplicité permet d'avancer plus vite, la solution la plus


simple sera toujours celle qui sera retenue

▪ Puisque la compréhension est importante, des métaphores seront


définies

▪ Puisque la conception est importante, le code sera retravaillé tout au


long du projet

8
Les Méthodes Agiles: XP
Pratiques
❑ Client sur site: Le client est tout le temps présent avec l’équipe pour participer
et répondre aux questions

❑ Jeu du planning: Le client crée des scénarios pour les fonctionnalités qu'il souhaite
obtenir. L'équipe évalue le temps nécessaire pour les mettre en œuvre.
Le client sélectionne ensuite les scénarios en fonction des priorités et du temps
disponible
❑ Petites livraisons: D’abord livrer un système minimaliste puis le faire évoluer à
travers des versions à des délais très courts
❑ Utilisation de métaphores: On utilise des métaphores et des analogies pour
décrire le système et son fonctionnement

❑ Rythme soutenable: L'équipe ne fait pas d'heures supplémentaires. Si le cas


se présente, il faut revoir le planning. Un développeur fatigué travaille mal.
9
Les Méthodes Agiles: XP
Pratiques
❑ Appropriation collective du code: L'équipe est collectivement responsable de
l'application. Chaque développeur peut faire des modifications dans toutes les portions
du code, même celles qu'il n'a pas écrites. Les tests diront si quelque chose ne
fonctionne plus.

❑ Conception simple: Le système doit être conçu de la manière la plus simple


possible.

❑ Refactoring: Amélioration régulière de la qualité du code sans en modifier le


comportement.

❑ intégration continue: Lorsqu'une tâche est terminée, les modifications sont


immédiatement intégrées dans le produit complet. On évite ainsi la surcharge de
travail liée à l'intégration de tous les éléments avant la livraison.

10
Les Méthodes Agiles: XP
Pratiques
❑ Tests: Avant de mettre en œuvre une fonctionnalité, le développeur écrit un test qui
vérifiera que son programme se comporte comme prévu. Ce test sera conservé
jusqu'à la fin du projet, tant que la fonctionnalité est requise. À chaque modification
du code, on lance tous les tests écrits par tous les développeurs, et on sait
immédiatement si quelque chose ne fonctionne plus.

❑ Programmation en binôme: La programmation se fait par deux. Le premier


appelé driver (ou pilote) tient le clavier. C'est lui qui va travailler sur la portion de
code à écrire. Le second appelé partner (ou copilote) est là pour l'aider en suggérant
de nouvelles possibilités. Les développeurs changent fréquemment de partenaire et de
rôle, ce qui permet d'améliorer la connaissance collective de l'application et d'améliorer
la communication au sein de l'équipe.

❑ Convention de nommage: Puisque tous les développeurs interviennent sur tout


le code, il est indispensable d'établir et de respecter des normes de nommage pour
les variables, méthodes, objets, classes, fichiers, etc.
11
Les Méthodes Agiles: XP
Avantages
❖ Contact étroit avec les clients

❖ Les modifications peuvent être prises en charge à court terme

❖ Logiciel stable grâce à des tests continus

❖ Aucune heure supplémentaire, propre rythme

❖ Code clair

12
Les Méthodes Agiles: XP
inconvénients

❖ Charge horaire relativement élevée

❖ Coûts relativement élevés

❖ La faible documentation peut nuire en cas de départ des développeurs

❖ Demande une certaine maturité des développeurs

13
Les Méthodes Agiles: SCRUM
Principes

❖Cette méthode a été principalement conçue pour le


développement de logiciels informatiques.

❖C’est une technique de reprise de jeu après faute qui remet


une équipe sur de bons rails par un effort collectif.

14
Les Méthodes Agiles: SCRUM
Principes

15
Les Méthodes Agiles: SCRUM
Acteurs
▪ Un directeur de produit (Product Owner) :
o C’est une personne qui joue le rôle du client et des utilisateurs.

o Il définit les fonctionnalités du carnet du produit (Product Backlog).

o Il définit les priorités dans le backlog en fonction de la valeur métier.

o Il est le seul habilité à prendre les décisions sur l’orientation du


projet.

o Il accepte et rejette les résultats.

16
Les Méthodes Agiles: SCRUM
Acteurs
▪ Le maître Scrum (Scrum master) :
o C’est le management de projet.

o Il résout les problèmes.

o Il s’assure que l’équipe est complètement fonctionnelle et productive.

o Il est au service du product owner.

o Il facilite les interactions entre les membres de l’équipe Scrum.

17
Les Méthodes Agiles: SCRUM
Acteurs
▪ L’équipe de développement (Development team) :
o Elle est composée de plus de 3 et moins de 9 membres.

o Elle est auto-organisée et pluridisciplinaire.

o Aucun membre n’a un rôle particulier.

o Elle est en charge de la réalisation du produit.

18
Les Méthodes Agiles: SCRUM
Evènements
La méthode Scrum comprend différents événements:

▪ Le Sprint
▪ La réunion de planification de sprint (Sprint Planning Meeting)
▪ La mêlée quotidienne (Daily Scrum)
▪ La revue du sprint (Sprint Review Meeting)
▪ La rétrospective du Sprint (Sprint Retrospective)

19
Les Méthodes Agiles: SCRUM
Définition

▪ Le Sprint: est défini pour réaliser un objectif de l’activité de


développement liée à la réalisation du produit attendu. Il est
constitué de la planification du Sprint (Sprint Planning), des
mêlées quotidiennes (Daily Scrums), des activités de
développement, de la revue du Sprint (Sprint Review) et de la
rétrospective du Sprint (Sprint Retrospective).

20
Les Méthodes Agiles: SCRUM
Définition
▪ Le carnet du produit (Product Backlog) :
o C’est une liste ordonnée des besoins.
o Le product owner est responsable de la gestion de son contenu.
o Il contient des éléments du produit à réaliser.
o Lorsque ces derniers sont alors réalisés et validés, ils deviennent
des incréments du produit.
o Un carnet du produit est maintenu tout au long de la vie d’un
produit.

21
Les Méthodes Agiles: SCRUM
Définition
▪ Le carnet du Sprint (Sprint Backlog) :
o Les éléments du produit sélectionnés pour être réalisés sont consignés
dans un carnet du Sprint.
o Le plan de réalisation de la fonctionnalité ciblée est indiqué dans ce
carnet du produit, ainsi que le travail nécessaire (temps, moyens…)
o Le carnet du sprint est mis à jour régulièrement (responsabilité de
l’équipe de développement).
o Les estimations des temps de travail sont mises à jour lors de chaque
Daily meeting.
22
Les Méthodes Agiles: SCRUM
Réunions
▪ Planification du Sprint (2à 4h):
o Définir le but du sprint
o Identification les tâches
o Estimation des tâches
o Attribution des tâches

23
Les Méthodes Agiles: SCRUM
Réunions
▪ Revue de sprint (2 à 4h) :
o Préparer la démonstration
o Rappeler les objectifs du sprint
o Effectuer la démonstration
o Évaluer les résultats du sprint

24
Les Méthodes Agiles: SCRUM
Réunions
▪ La rétrospective du Sprint (Sprint Retrospective Meeting):
o Elle fait suite à la réunion de revue du sprint.
o Elle a pour but de mettre en place un plan d’amélioration du
processus de développement lors de la prochaine itération (Sprint).
o Elle doit aider à l'adaptation aux changements qui surviennent au
cours du projet et à l'amélioration continue du processus de
réalisation

25
Processus Unifié
• Le processus unifié ou Unified Process(UP) est un modèle
de procédé très populaire
• UP est incrémental et itératif: Le projet est découpé en
itérations ou étapes de courte durée qui permettent de
mieux suivre l’avancement globale. A la fin de chaque
itération une partie exécutable du système finale est
produite, de façon incrémentale (par ajout).
• UP a plusieurs implémentation et / ou variation dont la
plus célèbre est RUP (Rational Unified Process) 26
Processus Unifié

27
Processus Unifié

• L’architecture bidirectionnelle: UP gère le processus de


développement par deux axes.
• L'axe vertical: représente les principaux enchaînements
d'activités, qui regroupent les activités selon leur nature.
Cette dimension rend compte l'aspect statique du processus
qui s'exprime en termes de composants, de processus,
d'activités, d'enchaînements, d'artefacts et de travailleurs.
• L'axe horizontal: représente le temps et montre le
déroulement du cycle de vie du processus; cette dimension
rend compte de l'aspect dynamique du processus qui
s'exprime en terme de cycles, de phases, d'itérations et de
jalons. 28
Processus Unifié

29

Vous aimerez peut-être aussi