131
Processus de Développement Cycle de vie d’un logiciel Deuxième partie Cycle de vie Processus Hafidi Imad-ENSAK-Cours PD 1 Pr Hafidi Imad [email protected] Deuxième partie

Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Processus de DéveloppementCycle de vie d’un logiciel

Deuxième partie

Cycle de vie

Processus

Hafidi Imad-ENSAK-Cours PD1

Pr Hafidi Imad [email protected]

Deuxième partie

Page 2: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Cycle de vieLa qualité du processus de fabrication est garante

de la qualité du produit.� Pour obtenir un logiciel de qualité, il faut en maîtriser le

processus d'élaboration.La vie d'un logiciel est composée de différentes étapes.

Hafidi Imad-ENSAK-Cours PD2

� La vie d'un logiciel est composée de différentes étapes.� La succession de ces étapes forme le cycle de vie du logiciel.� Il faut contrôler la succession de ces différentes étapes.

Page 3: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Etapes de développements� Étude de faisabilité

� Spécification� Déterminer les fonctionnalités du logiciel.

� Conception� Déterminer la façon dont le logiciel fournit les différentes

Hafidi Imad-ENSAK-Cours PD3

� Déterminer la façon dont le logiciel fournit les différentes fonctionnalités recherchées.

� Codage

� Tests� Essayer le logiciel sur des données d'exemple pour s'assurer

qu'il fonctionne correctement.

� Maintenance

Page 4: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Étude de Faisabilité� Déterminer si le développement propose vaut la peine d‘être

mis en ouvre, compte tenu des attentes et de la difficulté de développement

� Etude de marche : déterminer s'il existe un marche potentiel pour le produit.

Hafidi Imad-ENSAK-Cours PD4

pour le produit.

Page 5: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Spécification� Déterminer les fonctionnalités que doit posséder le logiciel

� Collecte des exigences : obtenir de l'utilisateur ses exigences pour le logiciel

� Analyse du domaine : déterminer les tâches et les structures qui se répètent dans le problème

Hafidi Imad-ENSAK-Cours PD5

se répètent dans le problème

Page 6: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Organisation du projet� Déterminer comment on va développer le logiciel

� Analyse des coûts : établir une estimation du prix du projet� Planification : établir un calendrier de développement� Assurance qualité du logiciel : déterminer les actions qui

permettront de s'assurer de la qualité du produit fini

Hafidi Imad-ENSAK-Cours PD6

permettront de s'assurer de la qualité du produit fini� Répartition des tâches : hiérarchiser les tâches et sous-tâches

nécessaires au développement du logiciel

Page 7: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Conception� Déterminer la façon dont le logiciel fournit les différentes

fonctionnalités recherchées :

� Conception générale� Conception architecturale : déterminer la structure du système� Conception des interfaces : déterminer la façon dont les

Hafidi Imad-ENSAK-Cours PD7

� Conception des interfaces : déterminer la façon dont les différentes parties du système agissent entre elles

� Conception détaillée : déterminer les algorithmes pour les différentes parties du système

Page 8: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Implémentation� Ecrire le logiciel

Hafidi Imad-ENSAK-Cours PD8

Page 9: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Tests� Essayer le logiciel sur des données d'exemple pour s'assurer qu'il

fonctionne correctement� Tests unitaires : faire tester les parties du logiciel par leurs

développeurs� Tests d'intégration : tester pendant l'intégration� Tests de validation : pour acceptation par l'acheteur

Hafidi Imad-ENSAK-Cours PD9

� Tests de validation : pour acceptation par l'acheteur� Tests système : tester dans un environnement proche de

l'environnement de production� Tests Alpha : faire tester par le client sur le site de développement� Tests Bêta : faire tester par le client sur le site de production� Tests de régression : enregistrer les résultats des tests et les comparer

a ceux des anciennes versions pour vérifier si la nouvelle n'en a pas dégrade d'autres

Page 10: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Livraison� Fournir au client une solution logicielle qui fonctionne

correctement� Installation : rendre le logiciel opérationnel sur le site du client� Formation : enseigner aux utilisateurs a se servir du logiciel� Assistance : répondre aux questions des utilisateurs

Hafidi Imad-ENSAK-Cours PD10

� Assistance : répondre aux questions des utilisateurs

Page 11: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Maintenance� Mettre a jour et améliorer le logiciel pour assurer sa

pérennité

� Pour limiter le temps et les coûts de maintenance, il faut porter ses efforts sur les étapes antérieures

Hafidi Imad-ENSAK-Cours PD11

Page 12: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Documents courants

Hafidi Imad-ENSAK-Cours PD12

Page 13: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Cahier de charge� Description initiale des fonctionnalités désirées,

généralement écrite par l'utilisateur

Hafidi Imad-ENSAK-Cours PD13

Page 14: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

spécification� Décrit précisément les conditions que doit remplir le logiciel

� Modèle objet : indique les classes et les documents principaux

� Scenarios des cas d'utilisation : indique les différents enchaînements possibles du point de vue de l'utilisateur

Hafidi Imad-ENSAK-Cours PD14

enchaînements possibles du point de vue de l'utilisateur

Page 15: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Calendrier du projet� Ordre des différentes tâches

� Détails et ressources qu'elles demandent

Hafidi Imad-ENSAK-Cours PD15

Page 16: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Plan test du logiciel� Décrit les procédures de tests appliquées au logiciel pour

contrôler son bon fonctionnement

� Tests de validation : tests choisis par le client pour déterminer s'il peut accepter le logiciel

Hafidi Imad-ENSAK-Cours PD16

Page 17: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Plan d’assurance qualité� Décrit les activités mises en ouvre pour garantir la qualité du

logiciel

Hafidi Imad-ENSAK-Cours PD17

Page 18: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Manuel d’utilisateur� Mode d'emploi pour le logiciel dans sa version finale

Hafidi Imad-ENSAK-Cours PD18

Page 19: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Code source� Code complet du produit fini

Hafidi Imad-ENSAK-Cours PD19

Page 20: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Rapport des tests� Décrit les tests effectues et les réactions du système

Hafidi Imad-ENSAK-Cours PD20

Page 21: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Rapport des défauts� Décrit les comportements du système qui n'ont pas satisfait

le client

� Il s'agit le plus souvent de défaillances du logiciel ou d'erreurs

Hafidi Imad-ENSAK-Cours PD21

Page 22: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Documents produits dans le cycle de vie

Documents Cycle de vie

Manuel utilisateur final Implémentation

Conception Architectural Conception

Pan d’assurance qualité Planification

Code source Implémentation

Cahier de charge Faisabilité

Hafidi Imad-ENSAK-Cours PD22

Cahier de charge Faisabilité

Plan de test Spécification

Manuel d’utilisateur préliminaire Spécification

Conception détaillé Conception

Estimation des coûts Planification

Calendrier du projet Planification

Rapport des tests Test

Documentation Implémentation

Page 23: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Modèles de cycle de vie d’un logiciel

Hafidi Imad-ENSAK-Cours PD23

Page 24: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Procédé logiciel� Un procédé logiciel (software process) est un ensemble

d’activités conduisant à la production d’un logiciel

� Ils sont aussi appelés cycle de vie d’un logiciel (SDLC)

� Un procédé définit les étapes qui le composent ainsi que leur enchaînement enchaînement

� Les Cycles de vie de logiciels sont complexes et dépendent fortement des acteurs qui dirigent les activités

� Les activités des procédés ne peuvent être automatisées .Il y a des outils de support, appelés outils CASE (Computer-AidedSoftware Engineering)

24 Hafidi Imad-ENSAK-Cours PD

Page 25: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Modèles de procédés� Un modèle de procédé est une abstraction d’un procédé

� Un modèle décrit le procédé selon une certaine perspective

� Un procédé logiciel est une application d’un modèle pour un projet spécifique, qui peut inclure une certaine adaptation

25 Hafidi Imad-ENSAK-Cours PD

Page 26: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Modèles de procédés pourquoi� Pour maîtriser les gros projets

� Pour découper le projet et affecter correctement les tâches

� Pour anticiper et gérer les risques

26 Hafidi Imad-ENSAK-Cours PD

Page 27: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Modèles de procédés� Il existe deux types de modèles de procédés :

Méthodes classiquesclassiques

Méthodologie Agiles

27 Hafidi Imad-ENSAK-Cours PD

Page 28: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Modèles de procédés

Caractéristiques

Méthodes classiques •Modèles stricts •Etapes très clairement définies •Documentation très fournie •Fonctionne bien avec les gros projets

Hafidi Imad-ENSAK-Cours PD28

Méthodologie agiles •Modèles incrémentaux et itératifs •Petites et fréquentes livraisons •Accent sur le code et moins sur la documentation •Convient aux projets de petite et moyenne taille

Page 29: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Choix d’un modèle� Aucun modèle n’est meilleur que l’autre

� Le choix se fait selon certains critères tels que la nature du projet, sa taille, la nature du client et les compétences de l’équipe

Hafidi Imad-ENSAK-Cours PD29

Page 30: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Cycles de vie classiques

Hafidi Imad-ENSAK-Cours PD30

Page 31: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Modèle en cascade� L’un des premiers modèles proposés, inspiré du modèle de

Royce (1970)

� Aussi appelé modèle linéaire

� Le résultat de chaque phase est un ensemble de livrables,

� Une phase ne peut démarrer que si la précédente est finie

Hafidi Imad-ENSAK-Cours PD31

� Une phase ne peut démarrer que si la précédente est finie

� Le modèle académique par excellence

Page 32: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Hafidi Imad-ENSAK-Cours PD32

Page 33: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Avantages :

� Facile à utiliser et à comprendre

� Un procédé structuré pour une équipe inexpérimentée

� Idéal pour la gestion et le suivi de projets

Fonctionne très bien quand la qualité est plus importante que

Hafidi Imad-ENSAK-Cours PD33

� Fonctionne très bien quand la qualité est plus importante que les coûts et les délais

Page 34: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Inconvénients :

� Les besoins des clients sont très rarement stables et clairement définis

� Sensibilité aux nouveaux besoins : refaire tout le procédé

� Une phase ne peut démarrer que si l’étape précédente est

Hafidi Imad-ENSAK-Cours PD34

� Une phase ne peut démarrer que si l’étape précédente est finie

� Le produit n’est visible qu’à la fin

� Les risques se décalent vers la fin

� Très faible implication du client

Page 35: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Quand l’utiliser ?

� Quand les besoins sont connus et stables

� Quand la technologie à utiliser est maîtrisée

� Lors de la création d’une nouvelle version d’un produit existant

Hafidi Imad-ENSAK-Cours PD35

existant

� Lors du portage d’un produit sur une autre plateforme

Page 36: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Modèle en V� Variante du modèle en cascade qui fait l’accent sur la

vérification et la validation

� Le test du produit se fait en parallèle par rapport aux autres activités

Hafidi Imad-ENSAK-Cours PD36

Page 37: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Hafidi Imad-ENSAK-Cours PD37

Page 38: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Avantages :

� Met l’accent sur lest tests et la validation et par conséquent, ça accroît la qualité du logiciel

� Chaque livrable doit être testable

� Facile à planifier dans une gestion de projets

Hafidi Imad-ENSAK-Cours PD38

� Facile à planifier dans une gestion de projets

� Facile à utiliser

Page 39: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Inconvénients :

� Ne gère pas les activités parallèles

� Ne gère pas explicitement les changements des spécifications

� Ne contient pas d’activités d’analyse de risque

Hafidi Imad-ENSAK-Cours PD39

Page 40: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Quand l’utiliser:

� Quand le produit à développer à de très hautes exigences de qualité

� Quand les besoins sont connus à l’avance

� Les technologies à utiliser sont connues à l’avance

Hafidi Imad-ENSAK-Cours PD40

� Les technologies à utiliser sont connues à l’avance

Page 41: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Prototypage Prototypage Prototypage Prototypage � Le projet se fait sur plusieurs itérations

� Les développeurs construisent un prototype selon les attentes du client

� Le prototype est évalué par le client

� Le client donne son feedback

Hafidi Imad-ENSAK-Cours PD41

� Le client donne son feedback

� Les développeurs adaptent le prototype selon les besoins du client

� Quand le prototype satisfait le client, le code est normalisé selon les standards et les bonnes pratiques

Page 42: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Ecouter le client

Hafidi Imad-ENSAK-Cours PD42

Développer le

prototype

Evaluer le prototype

Page 43: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Avantages

� Implication active du client

� Le développeur apprend directement du client

� S’adapte rapidement aux changements des besoins

Progrès constant et visible

Hafidi Imad-ENSAK-Cours PD43

� Progrès constant et visible

� Une grande interaction avec le produit

Page 44: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Inconvénients

� Le prototypage implique un code faiblement structuré

� Degré très faible de maintenabilité

� Le processus peut ne jamais s’arrêter

Très difficile d’établir un planning

Hafidi Imad-ENSAK-Cours PD44

� Très difficile d’établir un planning

Page 45: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Quand l’utiliser ?

� Quand les besoins sont instables et/ou nécessitent des clarifications

� Peut être utilisé avec le modèle en cascade pour la clarification des besoins

Hafidi Imad-ENSAK-Cours PD45

clarification des besoins

� Quand des livraisons rapides sont exigées

Page 46: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Modèle Incrémental Modèle Incrémental Modèle Incrémental Modèle Incrémental � Chaque incrément est une construction partielle du logiciel

� Trie les spécifications par priorités et les regroupent dans des groupes de spécifications

� Chaque incrément implémente un ou plusieurs groupes jusqu’à ce que la totalité du produit soit finie

Hafidi Imad-ENSAK-Cours PD46

jusqu’à ce que la totalité du produit soit finie

Page 47: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Hafidi Imad-ENSAK-Cours PD47

Page 48: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Avantages

� Développement de fonctionnalités à risque en premier

� Chaque incrément donne un produit fonctionnel

� Le client intervient à la fin de chaque incrément

Utiliser l’approche « diviser pour régner »

Hafidi Imad-ENSAK-Cours PD48

� Utiliser l’approche « diviser pour régner »

� Le client entre en relation avec le produit très tôt

Page 49: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Inconvénients

� Exige une bonne planification et une bonne conception

� Exige une vision sur le produit fini pour pouvoir le diviser en incréments

� Le coût total du système peut être cher

Hafidi Imad-ENSAK-Cours PD49

� Le coût total du système peut être cher

Page 50: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Quand l’utiliser ?

� Quand la plupart des spécifications sont connues à l’avances et vont être sujettes à de faibles évolutions

� Quand on veut rapidement un produit fonctionnel

� Pour des projets de longues durées

Hafidi Imad-ENSAK-Cours PD50

� Pour des projets de longues durées

� Pour des projets impliquant de nouvelles technologies

Page 51: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Modèle en spirale Modèle en spirale Modèle en spirale Modèle en spirale � Modèle itératif

� Des incréments sous forme de cycle

� À la fin de chaque cycle on détermine les objectifs du cycle suivant

� Chaque cycle est composé des même activités que du modèle

Hafidi Imad-ENSAK-Cours PD51

� Chaque cycle est composé des même activités que du modèle en cascade

� Inclut l’analyse de risque et le prototypage

Page 52: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Hafidi Imad-ENSAK-Cours PD52

Page 53: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Détermination des objectifs

� En terme de fonctionnalité, de performance, de coût,...etc.

� Déterminer les alternatives : développer, réutiliser, acheter, sous-traiter…etc.

� Contraintes : coûts, plannings, … etc.

Hafidi Imad-ENSAK-Cours PD53

� Contraintes : coûts, plannings, … etc.

Page 54: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Identification et évaluation de risques

� Etudier les alternatives de développement

� Identification des risques : technologie non maîtrisées, équipe peu expérimentée, planning trop serré, …etc.

� Evaluation des risques : voir si les risques peuvent impacter

Hafidi Imad-ENSAK-Cours PD54

� Evaluation des risques : voir si les risques peuvent impacter le projet et à quel degré

Page 55: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Développement et test

� Contient pratiquement la plupart des activités : conception, codage, test, … etc.

Planification de la prochaine itération

Hafidi Imad-ENSAK-Cours PD55

Planification de la prochaine itération

� Un planning de l’itération

� Un plan de tests

Page 56: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Avantages

� Identification rapide des risques

� Impacts minimaux des risques sur le projet

� Fonctions critiques développées en premier

Feedback rapide du client

Hafidi Imad-ENSAK-Cours PD56

� Feedback rapide du client

� Une évaluation continue du procédé

Page 57: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Inconvénients

� L’évaluation des risques peut prendre beaucoup de temps

� Le modèle est très complexe

� La spirale peut s’éterniser

Les développeurs doivent être réaffectés pendant les phases

Hafidi Imad-ENSAK-Cours PD57

� Les développeurs doivent être réaffectés pendant les phases de non-développement

� Les objectifs ne sont pas souvent faciles à formuler

Page 58: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Quand est-ce que l’utiliser ?

� Quand le prototypage est exigé

� Quand le risque du projet est considérable

� Quand les spécifications ne sont pas stables

Pour les nouveaux produits

Hafidi Imad-ENSAK-Cours PD58

� Pour les nouveaux produits

� Quand le projet implique de la recherche et de l’investigation

Page 59: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Méthodologie Agiles

Hafidi Imad-ENSAK-Cours PD59

Page 60: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Historique� 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

Hafidi Imad-ENSAK-Cours PD60

� 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 tout en garantissant des livraisons fréquentes

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

Page 61: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Manifeste Agile� Réunion organisée par Kent Beck en Février 2001

� 17 personnalités, dont les créateurs de Crystal, Scrum, Adaptive Software Development, etc.

Hafidi Imad-ENSAK-Cours PD61

Page 62: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

http://www.agilemanifesto.org/

� Nous cherchons de meilleures manières pour développer des logiciels en aidant les autres et en développant nous mêmes. À travers ce travail nous en sommes venus à valoriser :

Personnes et interaction plutôt que processus et outils

Hafidi Imad-ENSAK-Cours PD62

Personnes et interaction plutôt que processus et outils

Logiciel fonctionnel plutôt que documentation complète

Collaboration avec le client plutôt que négociation de contrat

Réagir au changement plutôt que suivre un plan

� En fait, bien que les éléments de droite soient importants, nous pensons que les éléments de gauche le sont encore plus.

Page 63: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Définition� Une tentative de définition, pourrait être :

« 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, appliquant un cérémonial minimal, qui

Hafidi Imad-ENSAK-Cours PD63

responsabilisées, appliquant un cérémonial minimal, qui produisent un logiciel de grande qualité dans un délai contraint, répondant aux besoins changeants des utilisateurs. »

� Avec ses valeurs et ses principes, on peut considérer l’agilité comme une nouvelle culture du développement.

Page 64: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Principes Agiles

Individus et interaction au lieu de processus et

outils

Logiciel fonctionnelle au lieu de documentation

massive

Hafidi Imad-ENSAK-Cours PD64

Collaboration client au lieu de négociation du

contrat

Réagir au changement au lieu de suivre un plan

Page 65: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

INDIVIDUS ET INTERACTIONS AU LIEU DE PROCESSUS ET OUTILS

� Les collaborateurs sont la clé du succès � Les « seniors » échoueront s’ils ne collaborent pas en tant

qu’équipe � Un bon collaborateur n’est pas forcément un bon programmeur.

Hafidi Imad-ENSAK-Cours PD65

� Un bon collaborateur n’est pas forcément un bon programmeur. C’est quelqu’un qui travaille bien en équipe

� Une surabondance d’outils est aussi mauvaise que le manque d’outils

� Démarrer petit et investir peu au démarrage � Construire l’équipe c’est plus important que construire

l’environnement

Page 66: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

LOGICIEL FONCTIONNEL AU LIEU DE DOCUMENTATION MASSIVE

� Un code sans documentation est un désastre

� Trop de documents est pire que pas de documents

� Difficulté à produire et à synchroniser avec le code

Hafidi Imad-ENSAK-Cours PD66

� Difficulté à produire et à synchroniser avec le code

� Souvent les documents sont des « mensonges » formels

� Le code ne ment jamais sur lui-même

� Produire toujours des documents aussi courts que possible

Page 67: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

COLLABORATION DU CLIENT AU LIEU DE LA NÉGOCIATION DE CONTRATS

� Très difficile de décrire la totalité du logiciel depuis le début

� Les projets réussis impliquent les clients d’une manière fréquente et régulière

Hafidi Imad-ENSAK-Cours PD67

fréquente et régulière

� Le client doit avoir un contact direct avec l’équipe de développement

Page 68: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

RÉAGIR AUX CHANGEMENTS AU LIEU DE SUIVRE UN PLAN

� Un logiciel ne peut pas être planifié très loin dans le futur � Tout change : technologie, environnement et surtout les besoins � Les chefs de projets classiques fonctionnent sur la base de

GANTT, PERT et le système de tâches, avec le temps, les

Hafidi Imad-ENSAK-Cours PD68

GANTT, PERT et le système de tâches, avec le temps, les diagrammes se dégradent car des tâches s’ajoutent et d’autres deviennent non nécessaires

� Une meilleure stratégie est de planifier très court (2 semaines à 1 mois)

� Plannings détaillés pour la semaine à venir, rigoureux pour les trois mois et très vagues au-delà

Page 69: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

LES DOUZE PRINCIPES AGILES LES DOUZE PRINCIPES AGILES LES DOUZE PRINCIPES AGILES LES DOUZE PRINCIPES AGILES � 1.Toujours satisfaire le client à travers des livraisons rapides

et continues

� 2.Bien accueillir tous les changements même les tardifs

� 3.Livrer fréquemment un système fonctionnel

� 4.Les clients et les développeurs doivent collaborer

Hafidi Imad-ENSAK-Cours PD69

� 4.Les clients et les développeurs doivent collaborer

� 5.Conduire le projet autour d’équipes motivées

� 6.La meilleure méthode de faire circuler l’information c’est le contact direct entre collaborateurs

� 7.La première mesure d’avancement c’est un logiciel fonctionnel

Page 70: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� 8.Le développement doit être durable et à un rythme constant

� 9.La bonne conception et l’excellence technique augmentent l’agilité

� 10.Simplifier au maximum

Hafidi Imad-ENSAK-Cours PD70

� 10.Simplifier au maximum

� 11.Les meilleurs architectures, besoins et conceptions proviennent d’équipes qui s’organisent d’elles-mêmes

� 12.L’équipe s’améliore d’une manière autonome et régulière

Page 71: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Méthodes agiles

Hafidi Imad-ENSAK-Cours PD71

Page 72: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

XP

Hafidi Imad-ENSAK-Cours PD72

Page 73: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Méthodologie XP� eXtreme Programming

� Crée en 1995 Kent Beck and Ward Cunningham

� XP est un moyen léger, efficace, à bas risques, flexible, scientifique et amusant de développer des logiciels

� Destinée à des équipes de moyenne taille avec des

Hafidi Imad-ENSAK-Cours PD73

� Destinée à des équipes de moyenne taille avec des spécifications incomplets et/ou vagues

� Le codage est le noyau de XP

Page 74: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Fondamentaux

Implication Massive du

client

Test unitaire continu

Hafidi Imad-ENSAK-Cours PD74

Programmation par paires

Itérations courtes et livraisons rapides

Page 75: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Principales Activités

Codage

(Noyau XP)

Tests(Pendant le codage)

Hafidi Imad-ENSAK-Cours PD75

Ecoute(Le client ou le partenaire)

Conception(encore basée sur le codage)

Page 76: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Cycle de vie XP

Hafidi Imad-ENSAK-Cours PD76

Page 77: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Modèle XP d’une itération de développement.

Hafidi Imad-ENSAK-Cours PD77

Page 78: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Les 12 pratiques1- LE JEU DE PLANNING :

� Le client et les développeurs décident quoi mettre dans la prochaine livraison en triant les spécifications par priorité

� L’estimation est la responsabilité du développeur, pas du chef de projet ni du client

Hafidi Imad-ENSAK-Cours PD78

de projet ni du client

2 – DE PETITES ET FRÉQUENTES LIVRAISONS :

� D’abord livrer un système minimaliste puis le faire évoluer à travers des versions à des délais très courts

Page 79: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

3- LES MÉTAPHORES � Exprimer de manière naturelle et très simples des fonctions du

système � Le client et les développeurs doivent s’accorder sur les

métaphores

Hafidi Imad-ENSAK-Cours PD79

4 – CONCEPTION SIMPLE � Le système doit être conçu de la manière la plus simple possible

5 –TESTS � Les développeurs rédigent les tests unitaires d’une manière

continue, Le client rédige les tests d’acceptation des fonctionnalités,

Page 80: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

6 – REFACTORING � Les développeurs améliorent continuellement le code tout en

veillant à le garder fonctionnel 7 – PROGRAMMATION PAR PAIRES

� La totalité du code est écrite par deux programmeurs sur une seule machine. L’un est appelé conducteur (driver) et l’autre

Hafidi Imad-ENSAK-Cours PD80

seule machine. L’un est appelé conducteur (driver) et l’autre navigateur. Les rôles s’inversent régulièrement.

8 - PROPRIÉTÉ COLLECTIVE � N’importe qui peut changer le code n’importe où dans le système

à n’importe quel moment 9 - 40 HEURES LA SEMAINE

� Le travail ne doit pas dépasser 40 heures par semaine

Page 81: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

10 – intégration continue

� Construire le système à chaque fois qu’une tâche est terminée.

11 – Le client est sur site

� Le client est tout le temps présent avec l’équipe pour

Hafidi Imad-ENSAK-Cours PD81

� Le client est tout le temps présent avec l’équipe pour participer et répondre aux questions

12 – Les standards de codage

� À cause de la propriété collective, des standards (une charte de codage) doivent être établis et adhérés par l’équipe de développement

Page 82: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Rôles dans XP� Le programmeur a une double responsabilité de

conception technique et de codage, pour des raisons de maintenabilité du code. Il doit en effet construire son programme de façon à ce qu’il puisse évoluer facilement par modification ou ajout de spécifications.

Hafidi Imad-ENSAK-Cours PD82

par modification ou ajout de spécifications.

Page 83: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Le rôle du client consiste à exprimer ses exigences, sous forme de scénarios (user stories) et en dialoguant avec les développeurs, et à écrire des jeux de tests fonctionnels qui seront utilisés lors de la recette.

Hafidi Imad-ENSAK-Cours PD83

Page 84: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Le testeur aide le client à élaborer des jeux de test. Il peut intervenir dans les choix de conception pour éviter des options qui augmentent les difficultés de test, donc les risques de non détection d’erreur. Ce rôle délicat nécessite une bonne connaissance du métier et des

Hafidi Imad-ENSAK-Cours PD84

nécessite une bonne connaissance du métier et des compétences en développement. Il s’appuie le plus souvent sur des outils automatisés.

Page 85: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Le tracker est le gestionnaire du temps. Il intervient notamment en début de chaque itération, lors de l’estimation, et ensuite il contrôle la progression par des échanges avec les développeurs. Cette tâche correspond à un pilotage opérationnel et quotidien . Le tracker n’a pas d’autorité hiérarchique.

Son rôle est de maintenir le souci du respect des engagements par

Hafidi Imad-ENSAK-Cours PD85

� Son rôle est de maintenir le souci du respect des engagements par son activité quotidienne, mais aussi de détecter d’éventuels problèmes suffisamment tôt pour alerter le coach ou le manager.

� Chaque matin, il anime une brève réunion, appelée standupmeeting car l’on reste debout, au cours de laquelle chaque développeur annonce ce qu’il va faire durant la journée et d’éventuelles difficultés auxquelles il se heurte.

Page 86: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Le coach a un rôle de soutien technique des membres de l’équipe, notamment lors des premières itérations de livraison. Il peut recadrer certaines options de conception technique ou de codage, organiser des réunions de remue-méninges pour résoudre un

Hafidi Imad-ENSAK-Cours PD86

réunions de remue-méninges pour résoudre un problème ou demander des changements d’un binôme, en cas de blocage ou disfonctionnement.

Page 87: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Le rôle du manager correspond à un rôle de chef de projet. Il est le responsable des développeurs, qu’il soutient et encourage. Il doit rendre des comptes au client sur la base des informations fournies par le coach et le tracker.

Hafidi Imad-ENSAK-Cours PD87

et le tracker.

Page 88: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Avantages� Implication active du client

� Forte réactivité des développeurs

� Responsabilisation et solidarité de l’équipe

� Appel aux meilleurs pratiques de développement

Souplesse extrême

Hafidi Imad-ENSAK-Cours PD88

� Souplesse extrême

Page 89: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Inconvénients� Demande une certaine maturité des développeurs

� La programmation par paires n’est toujours pas applicable

� Difficulté de planifier et de budgétiser un projet

� Stress dû aux devoir de l’intégration continue et des livraisons fréquentes

Hafidi Imad-ENSAK-Cours PD89

livraisons fréquentes

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

Page 90: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Méthodologie Scrum

Hafidi Imad-ENSAK-Cours PD90

Page 91: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Scrum� Inspiré par une approche développée en 1986 par H.

Takeuchii et II.. Nonaka, le terme « Scrum » utilisé dans « Wiicked Problems, Rightteous Solutions » par DeGrace et Stahl en 1991

� Utilisé comme méthodologie dans le livre : « Agile Software Developmentt with SCRUM” par K. Schwaber et M.. Beedlle

Hafidi Imad-ENSAK-Cours PD91

Developmentt with SCRUM” par K. Schwaber et M.. Beedlleen 2001

Page 92: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Définition� Scrum signifie mêlée au rugby. Scrum utilise les valeurs et l’esprit du

rugby et les adapte aux projets de développement. Comme le pack lors d’un ballon porté au rugby, l’équipe chargée du développement travaille de façon collective, soudée vers un objectif précis. Comme un demi de mêlée, le ScrumMaster aiguillonne les membres de l’équipe, les repositionne dans la bonne direction et donne le temps pour assurer la

Hafidi Imad-ENSAK-Cours PD92

repositionne dans la bonne direction et donne le temps pour assurer la réussite du projet.

Page 93: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

PrincipesSimple

•Peut être combiné avec d’autres méthodes•

Compatible avec les best practices

Empirique

•Itérations courtes (sprints)

•Feedback continu

Techniques simples

•Sprints de 2 à 4 semainesEquipes

Hafidi Imad-ENSAK-Cours PD93

•Sprints de 2 à 4 semaines

•Besoins capturés en tant que user stories

Equipes

•Auto-organisation

•Multi-compétences

Optimisation

•Détection rapide des anomalies

•Organisation simple

•Requiert l’ouverture et la visibilité

Page 94: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Mécanique Scrum� Scrum sert à développer des produits, généralement en

quelques mois. Les fonctionnalités souhaitées sont collectées dans le backlog de produit et classées par priorité. C’est le Product Owner qui est responsable de la gestion de ce backlog.

Hafidi Imad-ENSAK-Cours PD94

backlog.

� Une version (release) est produite par une série d’itérations d’un mois appelées des sprints. Le contenu d’un sprint est défini par l’équipe, avec le Product Owner, en tenant compte des priorités et de la capacité de l’équipe. À partir de ce contenu, l’équipe identifie les tâches nécessaires et s’engage pour réaliser les fonctionnalités sélectionnées pour le sprint.

Page 95: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Pendant un sprint, des points de contrôle sur le déroulement des tâches sont effectués lors des mêlées quotidiennes (scrums). Cela permet au ScrumMaster, l’animateur chargé de faire appliquer Scrum, de déterminer l’avancement par rapport aux engagements et d’appliquer, avec l’équipe, des ajustements pour

Hafidi Imad-ENSAK-Cours PD95

et d’appliquer, avec l’équipe, des ajustements pour assurer le succès du sprint.

� À la fin de chaque sprint, l’équipe obtient un produit partiel (un incrément) qui fonctionne. Cet incrément du produit est potentiellement livrable et son évaluation permet d’ajuster le backlog pour le sprint suivant

Page 96: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Hafidi Imad-ENSAK-Cours PD96

Page 97: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

CYCLE DE DÉVELOPPEMENT SCRUM

Hafidi Imad-ENSAK-Cours PD97

Page 98: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Éléments

Hafidi Imad-ENSAK-Cours PD98

Page 99: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

TimeBoxes� Scrum utilise des blocs de temps pour créer de la régularité.

Le cœur du rythme de Scrum est le sprint, une itération d’un mois ou moins. Dans chaque sprint, le cadre est donné par un cérémonial léger mais précis basé des réunions.

� Sprint est le terme utilisé dans Scrum pour itération. Dans le

Hafidi Imad-ENSAK-Cours PD99

� Sprint est le terme utilisé dans Scrum pour itération. Dans le langage Scrum, un sprint est un bloc de temps fixé aboutissant à créer un incrément du produit potentiellement livrable.

Page 100: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Release peut avoir plusieurs sens :� Release comme version – Le dictionnaire du jargon

informatique français définit une release comme suit : « version d’un logiciel effectivement diffusée, donc lâchée dans la nature. Synonyme de « Mise sur le marché ». Exemple : Unix system V release. Cette définition énonce clairement qu’il y a des

Hafidi Imad-ENSAK-Cours PD100

release. Cette définition énonce clairement qu’il y a des versions qui ne constituent pas des releases.

� Release comme période de temps – Par extension, on appelle également released une release, mais l’usage en anglais, et maintenant en français, est d’utiliser release comme période de temps, notamment dans l’expression plan de release. la période de temps qui permet de la produire. On devrait dire le cycle de production

Page 101: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Sprints/Releases

Hafidi Imad-ENSAK-Cours PD101

Les sprints sont des itérations de durées fixes de une à quatre semaines. Chaque sprint représentant des fonctions à réaliser.

Page 102: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Aretefacts� Scrum exige peu d’artefacts lors du développement : le plus

remarquable est le backlog de produit, pivot des différentes activités.

Hafidi Imad-ENSAK-Cours PD102

Page 103: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Backlog du produit� Une équipe Scrum ne produit pas une documentation faite au

début du projet, qui décrit en détail toutes les spécifications fonctionnelles. Elle collecte les fonctions essentielles et les raffine progressivement. L’outil de collecte s’appelle le backlog de produit, c’est une liste dont les éléments sont

Hafidi Imad-ENSAK-Cours PD103

backlog de produit, c’est une liste dont les éléments sont rangés par priorité.

� Le backlog produit est un catalogue de toutes les fonctionnalités.

� Les éléments (Story) ne sont pas relatives à des utilisateurs (user), certaines sont à caractère technique

Page 104: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Story� Une des proposition de décrire un story est :

Hafidi Imad-ENSAK-Cours PD104

Page 105: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� Le backlog sert à communiquer : il est utilisé largement, car au carrefour de plusieurs activités :� la gestion de projet, car le backlog est la base pour la

planification ;� l’ingénierie des exigences, puisqu’on y collecte ce que doit faire

le produit ;

Hafidi Imad-ENSAK-Cours PD105

le produit ;� la conception et le codage des stories sélectionnées pour un

sprint ;� le test, qui permettra de s’assurer que les stories sont bien finies

dans un sprint.� Le blacklog peut changer au cours du projet(Ordre,

fonctionnalités) en fonction du feedback.

Page 106: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Backlog du sprint� Composées des items du backlog du produit sont choisis afin

de constituer ce sprint

� Chaque item est alors divisé en petites tâches constituant ainsi le backlog du sprint.

Hafidi Imad-ENSAK-Cours PD106

Page 107: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Rôles� L’équipe a un rôle capital dans Scrum : elle est constituée

avec le but d’optimiser la flexibilité et la productivité ; pour cela, elle s’organise elle-même et doit avoir toutes les compétences nécessaires au développement du produit. Elle est investie avec le pouvoir et l’autorité pour faire ce qu’elle

Hafidi Imad-ENSAK-Cours PD107

est investie avec le pouvoir et l’autorité pour faire ce qu’elle à faire.

Page 108: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Product owner� Le propriétaire (product owner) représente le client en ce

qui concerne les spécifications et les acceptations.

� Le rôle de Product Owner varie beaucoup avec le contexte de l’organisation, cependant il est possible d’identifier ses responsabilités majeures :

Hafidi Imad-ENSAK-Cours PD108

responsabilités majeures :

Page 109: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Scrum Master� Le scrum master est un capitaine d’équipe (Pas de chef du

projet), ses responsabilités générales sont les suivantes :� veiller à la mise en application de Scrum, par exemple en faisant

en sorte que les différentes réunions aient lieu et qu’elles se fassent dans le respect des règles ;

Hafidi Imad-ENSAK-Cours PD109

� encourager l’équipe à apprendre, et à progresser, en fonction du contexte du projet, dans les pratiques d’ingénierie ;

� faire en sorte d’éliminer les obstacles qui pourraient freiner l’avancement, par exemple en protégeant l’équipe des interférences extérieures pendant le déroulement d’un sprint ;

� inciter l’équipe à devenir autonome.

Page 110: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Avantages� Méthode très simple et très efficace

� Adoptée par les géants du marche : Microsoft, Google, Nokia..

� Orientée projet contrairement a XP qui est orientée développement

Hafidi Imad-ENSAK-Cours PD110

développement

� Peut inclure d’autres activité venant d’autres méthodologies (surtout XP)

Page 111: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Inconvénients� N’est pas 100% spécifique au GL

� Difficulté de budgétiser un projet

Hafidi Imad-ENSAK-Cours PD111

Page 112: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Métriques orientés objets

Hafidi Imad-ENSAK-Cours PD112

Page 113: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Problématique� Les logiciels sont de plus en plus conséquents, ce qui

implique un coût de revient élevé.

� Ces projets doivent évaluer au mieux le rapport coût -efficacité et répondre aux besoins de leurs clients.

� Une fois les projets mis en place, l'évolution du système doit

Hafidi Imad-ENSAK-Cours PD113

� Une fois les projets mis en place, l'évolution du système doit être en adéquation avec les progrès technologiques.

� Pour cela, il faut analyser les méthodologies, les outils de conception et de développement, et la maintenabilité du système.

� Ces caractéristiques sont quantifiées à l'aide des métriques.

Page 114: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Problématique : Code complexe

"Vous ne pouvez pas gérer ce que vous ne contrôlez pas, et vous ne pouvez pas contrôler ce que vous ne mesurez pas "

Pour avoir un code de haute qualité on a besoin d’utiliser un outil de métrique de haute qualité.

Hafidi Imad-ENSAK-Cours PD114

outil de métrique de haute qualité.

Page 115: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Définition� La métrique est un élément de mesure. Elle est basée sur une

théorie ensembliste et permet d'associer une pondération à un ensemble de données.

� Les approches sont multiples et variées. Elles peuvent être purement théorique ou davantage basées sur un savoir-faire empirique mais efficace.

Hafidi Imad-ENSAK-Cours PD115

empirique mais efficace.� La métrique (objet ou non) peut être perçue comme un outil

pour systématiser les tâches d'un ingénieur, qui, pour un projet de taille importante, est plus adapté que des choix arbitraires.

Page 116: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Métriques Objet de Chidamber et Kermer

� Ensemble de métriques (Metric Suite for Object OrientedDesign)� Evaluation des classes d'un système

Hafidi Imad-ENSAK-Cours PD116

� Evaluation des classes d'un système� La plupart des métriques sont calculées classe par classe� Le passage au global n'est pas clair, une moyenne n‘étant pas

très satisfaisante

Page 117: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

M1 : Méthodes pondérées par class

� WMC : Weighted Methods per Class

avec C un ensemble de n classes comportant chacune Mi

Hafidi Imad-ENSAK-Cours PD117

avec C un ensemble de n classes comportant chacune Mi méthodes dont la complexité (le poids) est note ci

Page 118: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

M2 : Profondeur de l'arbre d'héritage

� DIC : Depth of Inheritance Tree� Distance maximale entre un nœud et la racine de l'arbre

d'héritage de la classe concernée

Hafidi Imad-ENSAK-Cours PD118

d'héritage de la classe concernée� Calculée pour chaque classe

Page 119: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

M3 : nombre d’enfants

� NOC : Number Of Children� Nombre de sous-classes dépendant immédiatement d'une classe

donnée, par une relation d'héritage

Hafidi Imad-ENSAK-Cours PD119

donnée, par une relation d'héritage� Calculée pour chaque classe

Page 120: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

M4 : couplage entre les classes� Dans un contexte OO, le couplage est l'utilisation de

méthodes ou d'attributs d'une autre classe.� Deux classes sont couplées si les méthodes déclarées dans l'une

utilisent des méthodes ou instancie des variables définies dans l'autre

Hafidi Imad-ENSAK-Cours PD120

� Le relation est symétrique : si la classe A est couplée a B, alors B l'est à A

� CBO : Coupling Between Object classes� Pour chaque classe, nombre de classes couplées � Calculée pour chaque classe

Page 121: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

M5 : Réponse pour une class (RFC)

� {RS} : ensemble des méthodes qui peuvent être exécutées en réponse a un message reçu par un objet de la classe, considérée� Réunion de toutes les méthodes de la classe avec toutes les

Hafidi Imad-ENSAK-Cours PD121

� Réunion de toutes les méthodes de la classe avec toutes les méthodes appelées directement par celles-ci

� Calculée pour chaque classe

RFG = |RS|

Page 122: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

M6 : Manque de cohésion des méthodes� Un module (ou une classe) est cohésif lorsque tous ses

éléments sont étroitement lies

� LCOM (Lack of COhesion in Methods) tente de mesurer l'absence de ce facteur

� Posons

Hafidi Imad-ENSAK-Cours PD122

� Posons� Ii l'ensemble des variables d'instance utilisées par la méthode i� P l'ensemble les paires de (Ii ; Ij ) ayant une intersection vide� Q l'ensemble des paires de (Ii ; Ij ) ayant une intersection non

vide

Page 123: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

� LCOM peut être visualise comme un graphe bi-partite� Le premier ensemble de nœuds correspond aux n différents

Hafidi Imad-ENSAK-Cours PD123

� Le premier ensemble de nœuds correspond aux n différents attributs et le second aux m différentes méthodes

� Un attribut est lie a une fonction si elle y accède ou modifie sa valeur

� L'ensemble des arcs est Q

� Il y a n m arcs possibles, et |P| = n x m - |Q|

Page 124: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Métriques MOOD� Ensemble de métriques pour mésuser les attributs des

propriétés suivantes :

� Encapsulation

� Héritage

� Couplage

Hafidi Imad-ENSAK-Cours PD124

� Couplage

� Polymorphisme

Page 125: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Encapsulation� MHF : Method Hiding Factor (10-30%)

Hafidi Imad-ENSAK-Cours PD125

Avec

� Md (Ci ) le nombre de méthodes déclarées dans une classe Ci

� Mh(Ci ) le nombre de méthodes cachées

� TC le nombre total de classes.

Page 126: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Encapsulation� AHF : Attribute Hiding Factor (70-100%)

Hafidi Imad-ENSAK-Cours PD126

Avec

� Ad (Ci ) le nombre d'attributs déclares dans une classe Ci

� Ah(Ci ) le nombre d'attributs caches

Page 127: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Facteurs d’héritage� MIF : Method Inheritance Factor (65-80%)

Hafidi Imad-ENSAK-Cours PD127

Avec� Mi (Ci ) le nombre de méthodes héritées (et non

surchargées) de Ci� Ma(Ci ) le nombre de méthodes qui peuvent être appelées

depuis la classe i

Page 128: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Facteurs d’héritage� AIF : Attribute Inheritance Factor (50-60%)

Hafidi Imad-ENSAK-Cours PD128

Avec

� Ai (Ci ) le nombre d'attributs herites de Ci

� Aa(Ci ) le nombre d'attributs auxquels Ci peut acceder

Page 129: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Facteur de couplage� CF : Coupling Factor (5-30%)

� Mesure le couplage entre les classes sans prendre en compte celui dû a l'héritage

Hafidi Imad-ENSAK-Cours PD129

Avec� client(Ci ; Cj ) = 1 si la classe i a une relation avec la classe j ,

et 0 sinon� Les relations d'héritage ne sont pas prises en compte dans les

relations

Page 130: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Facteur de polymorphisme� PF : Polymorphism Factor (3-10%)

� Mesure le potentiel de polymorphisme d'un système

Hafidi Imad-ENSAK-Cours PD130

Avec� Mo(Ci ) le nombre de méthodes surchargées dans la classe i� Mn(Ci ) le nombre de nouvelles méthodes dans la classe i� DC(Ci ) le nombre de descendants de la classe i

Page 131: Processus de Développement Cycle de vie d’un logicielimad-hafidi.com/Cours/Genie/PD2.pdfCycle de vie La qualité du processus de fabrication est garante de la qualité du produit

Etat actuelle � Utilisation des métriques demeure une pratique plutôt

marginale dans l’industrie

� Durant trente ans, des milliers de métriques ont été proposées

� Tous les concepts attachés aux métriques sont soit ambigus

Hafidi Imad-ENSAK-Cours PD131

� Tous les concepts attachés aux métriques sont soit ambigus ou, manquent de base théorique solide

Toutes ces ambiguïtés rendent difficile voir impossible la conception d’outils qui assisteraient dans le domaine des

métriques.