CHAPITRE 2: PROCESSUS LOGICIELS
Avant propos
Mythes du logiciel
▪ Idée grossière du logiciel suffisante pour commencer à programmer Faux : échecs dus principalement à une idée imprécise du logiciel
▪ Travail terminé quand programme écrit et fonctionnel Faux : maintenance du logiciel = plus du 50% du coût total
▪ Facile de gérer spécifications changeantes Faux : changements de spécifications souvent coûteux
▪ En cas de retard, solution : ajouter des programmeurs Faux : période de familiarisation et communication plus difficile impliquent perte de productivité « Ajouter des programmeurs à un projet en retard ne fait que le retarder davantage »
Cours « Génie Logiciel 1 » Niveau II2
AU: 2016/2017
2
14/09/20171
14/09/20171
Avant propos
Petits projets Vs Grands projets
Avant propos
Etude du Standish group
3
4
14/09/20172
CHAPITRE 2: Processus Logiciels
Plan
- Introduction 2. Définitions 3. Activités du cycle de vie 4. Modèles de processus
▪ Modèles classiques
▪ Modèle orienté réutilisation
▪ Modèles agiles
▪ Modèles orientés objet
5
CHAPITRE 2: Processus Logiciels
Introduction
SECTION 1
▪ Réalisation d’un programme simple développé par une personne :
▪ Analyse du problème;
▪ Ecriture de l’algorithme;
▪ Codage;
▪ Mise au point.
▪ Programmes de taille importante et développés par plusieurs personnes :
▪ Un processus de développement plus élaboré et plus rigoureux doit être mis en place
6
14/09/20173
14/09/20173
14/09/20173
CHAPITRE 2: Processus Logiciels
Définitions
▪ Processus: un ensemble d’activités coordonnées et contrôlées dont le but est de créer un produit.
▪ Cycle de vie d’un logiciel : processus
▪ Début: Détection d’un besoin de développement d’un logiciel
▪ Fin: Mise hors service du logiciel (disparition).
▪ Cycle de développement logiciel: processus
▪ Début: Décision de développer un logiciel
▪ Fin: Livraison du logiciel et son installation.
Le cycle de développement est la partie du cycle de vie d’un logiciel consacrée au développement.
7
CHAPITRE 2: Processus Logiciels
Définitions
▪ Il existe différents modèles de cycles de vie.
▪ Il n’existe pas de cycle de vie idéal:
▪ Diversité des besoins et des contraintes de qualité.
▪ Différences de contexte et d’expertise aussi bien des organisations que des personnes.
8
14/09/20174
CHAPITRE 2: Processus Activités de
Logiciels
développement
Etude Préalable
▪ Les tâches effectuées:
▪ Dresser un état de l’existant et analyser ses forces et faiblesses;
▪ Identifier les besoins de l’utilisateur
▪ Formuler des solutions potentielles et étudier la faisabilité
▪ L’objectif est de répondre essentiellement aux questions suivantes:
▪ Pourquoi a-t-on besoin du logiciel?
▪ Quels moyens faut-il mettre en œuvre?
Besoins du client
Etude préalable Cahier des charges du logiciel
10
Développement Avant-projet
Exploitation Maintenance & Retrait Planification, Pilotage & Suivi
Gestion de qualité
Cycle de développement du logiciel
Cycle de vie du logiciel
CHAPITRE 2: Processus Logiciels
Activités du cycle de vie
Initiation du projet
Étude préalable
Analyse
Conception
Vérification et Validation (V&V)
Gestion des configurations
Implémentation
Documentation
Tests
Installation
Maintenance & Assistance
Évaluation
Mise hors service
9
14/09/20175
CHAPITRE 2: Processus Logiciels
Analyse et spécification des besoins
Activités de développement
▪ Objectif
▪ Répondre à la question quoi? Que doit faire le logiciel faire?
▪ Tâches
▪ Analyse des besoins de l’utilisateur
▪ Spécification du logiciel à réaliser (fonctionnalités, exigences de qualité, …)
14/09/20176
14/09/20176
Étude préalable
Analyse
Conception
Vérification et Validation (V&V)
Gestion de la configuration
Implémentation
Documentation
Tests
Installation
Maintenance & Assistance
Maintenance & Assistance
Mise hors service
Mise hors service
Mise hors service
11
14/09/20176
14/09/20176
14/09/20176
14/09/20176
14/09/20176
Cahier des charges du projet
Analyse et
spécification des besoins
Cahier des charges du logiciel (fonctionnel)
Cahier des charges du logiciel (fonctionnel)
12
Développement Exploitation & Maintenance Retrait Avant-projet
14/09/20176
14/09/20176
14/09/20176
14/09/20176
Planification, Pilotage & Suivi Gestion de qualité
CHAPITRE 2: Processus Logiciels
Activités du cycle de vie
Initiation du projet
Évaluation
Évaluation
14/09/20176
14/09/20176
14/09/20176
Activités CHAPITRE 2: Processus
de Logiciels développement Conception
▪ Objectif : répondre à la question comment?
▪ Ebauche de plusieurs variantes de solutions, comparaison et choix de celle qui offre le meilleur rapport entre coûts et avantages.
▪ Se compose de deux phases:
▪ Conception globale ou architecturale
▪ Conception détaillée
Cahier des charges du logiciel (fonctionnel)
Conception Document de
conception
CHAPITRE 2: Processus Logiciels
Implémentation
Document de conception
Activités de développement
▪ Tâches
▪ Transformation des éléments de la conception en code, écrit dans un langage de programmation
▪ Choix de l’environnement de développement, du/des langage(s) de programmation, de normes de développement…
Implémentation Logiciel
14
14/09/20177
CHAPITRE 2: Processus
Activités de Logiciels
développement
Tests
▪ Durant cette phase, les composants du logiciel sont évalués et intégrés ainsi que le logiciel lui-même.
▪ Phase généralement subdivisée en trois phases:
▪ Tests unitaires
▪ Tests individuels des composants
▪ Tests d’intégration
▪ Assemblage progressif des composants
▪ Tests des composants assemblés
▪ Tests du système
▪ Test en vraie grandeur du système complet15
Développement Exploitation & Maintenance Retrait Avant-projet
Planification, Pilotage & Suivi Gestion de qualité
CHAPITRE 2: Processus Logiciels
Activités du cycle de vie
Initiation du projet
Étude préalable
Analyse
Conception
Vérification et Validation (V&V)
Gestion de la configuration
Implémentation
Documentation
Tests
Installation
Maintenance & Assistance
Évaluation
Mise hors service
16
14/09/20178
CHAPITRE 2: Processus Logiciels
Gestion de la configuration
Activités de développement
▪ La constitués long documentation du cycle d’un de grand vie du (code, développement nombre tests, d’éléments documentation, et le qui logiciel évoluent etc.). sont tout au ▪ But :
Maîtriser l’évolution du logiciel et de sa documentation.
▪ Utiliser un outil de gestion de la configuration:
▪ Identifier différentes et versions archiver les éléments de la configuration et les ▪ Tracer et archiver les changements dans la configuration;
▪ Gérer éléments le travail de la configuration.
concurrent à plusieurs développeurs sur les 18
CHAPITRE 2: Processus Logiciels
Vérification &Validation
Activités de développement
▪ V&V englobe tous les processus qui permettent de s’assurer
▪ Le logiciel <-> bien à son cahier des charges
▪ Le cahier des charges <-> aux besoins de l’utilisateur.
▪ Vérification: « Est ce que nous construisons bien le produit? »
▪ Vérification de toutes les étapes de développement et les fonctionnalités fournies
▪ Validation: « Est ce que nous construisons le bon produit? »
▪ Vérification du respect des spécifications du logiciel et des besoins du client.
17
14/09/20179
CHAPITRE 2: Processus Logiciels
Maintenance et assistance
Activités de développement
▪ La logiciel maintenance après sa du mise logiciel en œuvre : Modifications apportées à un ▪ But:
▪ Corriger les fautes
▪ Améliorer l’efficacité ou autres caractéristiques
▪ Adapter à un environnement modifié
▪ Tâches:
▪ Effectuer des corrections mineures /majeures
▪ Réappliquer plus importantes le cycle de développement pour des modifications ▪ Assistance :
▪ Fournir l’assistance technique
▪ Maintenir un journal des demandes d’assistance et de support.
20
Développement Exploitation & Maintenance Retrait Avant-projet
14/09/201710
14/09/201710
Étude préalable
Analyse
Conception
Vérification et Validation (V&V)
Gestion de la configuration
Implémentation
Documentation
Tests
Installation
Maintenance & Assistance
Maintenance & Assistance
Mise hors service
Mise hors service
Mise hors service
19
14/09/201710
14/09/201710
14/09/201710
14/09/201710
14/09/201710
Planification, Pilotage & Suivi Gestion de qualité
CHAPITRE 2: Processus Logiciels
Activités du cycle de vie
Initiation du projet
Évaluation
Évaluation
14/09/201710
14/09/201710
14/09/201710
CHAPITRE 2: Processus Logiciels
Types de maintenance
Activités de développement
▪ Maintenance corrective : modification d’un logiciel afin de corriger les défauts rencontrés.
▪ Maintenance adaptative : modification d’un logiciel pour qu’il reste utilisable dans un environnement qui change ou a changé.
▪ Maintenance évolutive : mise à jour du logiciel à la suite de modification des spécifications d’un point de vue fonctionnel ou performance.
▪ Maintenance préventive : modification d’un logiciel pour en déceler et corriger les défauts latents avant qu’ils ne se manifestent.
21
Quelques chiffres ?
14/09/201711
14/09/201711
CHAPITRE 2: Processus Logiciels
Activités de développement
22
14/09/201711
14/09/201711
CHAPITRE 2: Processus Logiciels
Avant le développement
Activités de gestion de projet
▪ Initiation du projet: préparation de la gestion de projet:
▪ Représenter les activités à entreprendre dans un modèle
▪ Identifier les tâches et procédures du projet et les mesures à mettre en place pour contrôler leur application
▪ Prévoir les ressources nécessaires au projet
▪ Planifier la gestion de projet
24
Développement Exploitation & Maintenance Retrait Avant-projet
14/09/201712
14/09/201712
Étude préalable
Analyse
Conception
Vérification et Validation (V&V)
Gestion de la configuration
Implémentation
Documentation
Tests
Installation
Maintenance & Assistance
Maintenance & Assistance
Mise hors service
Mise hors service
Mise hors service
23
14/09/201712
14/09/201712
14/09/201712
14/09/201712
14/09/201712
Planification, Pilotage & Suivi Gestion de qualité
CHAPITRE 2: Processus Logiciels
Activités du cycle de vie
Initiation du projet
Évaluation
Évaluation
14/09/201712
14/09/201712
14/09/201712
CHAPITRE 2: Processus Logiciels
Lors du développement
Activités de gestion de projet
- Affinement de la planification du projet
▪ La planification du projet définit les tâches, le calendrier, les ressources, l’allocation de ces ressources aux tâches et les procédures du projet. 2. Pilotage et suivi du projet
▪ Enregistrer les faits sur l’avancement du projet et le comparer à la planification;
▪ Entreprendre, si nécessaire, des mesures correctives.
25
14/09/201713
14/09/201713
CHAPITRE 2: Processus Logiciels
Lors du développement
Activités de gestion de projet
- Gestion de la qualité:
▪ Définir et planifier un programme pour mesurer la qualité;
▪ Piloter et contrôler l’application du programme de qualité;
▪ Recommander des améliorations pour les programmes.
▪ La gestion de la qualité du logiciel et les activités de vérification et de validation sont parfois regroupées sous le nom « assurance de qualité du logiciel ».
26
14/09/201713
14/09/201713
CHAPITRE Logiciels 2: Processus Après le développement
Activités de gestion de projet
▪ Evaluation du projet:
▪ Respect des objectifs
▪ Respect des coûts
▪ Respect des délais -> Suggestions d’améliorations pour les projets futures!
▪ Gestion de la maintenance et de l’assistance
▪ Identification des tâches et planification
▪ Estimation des coûts et des délais
27
A la prochaine séance!
28
14/09/201714
14/09/201714
▪ Modèles classiques
▪ Modèles linéaires
▪ Modèle en cascade
▪ Modèle en V
▪ Modèles itératifs
▪ Modèle par prototypage
▪ Modèle de développement incrémental
▪ Modèle orienté réutilisation
▪ Modèles de la transformation formelle
▪ Modèles agiles : SCRUM,…
▪ Modèles orientés objet
▪ PU
▪ 2TUP, …
CHAPITRE 2: Processus Logiciels
Aperçu
Analyse
Modèles de processus
29
14/09/201715
14/09/201715
14/09/201715
CHAPITRE 2: Processus Logiciels
Modèle en cascade
Modèles de processus
▪ Présente le développement logiciel comme une suite de phases qui s’enchaînent dans un déroulement linéaire.
30
14/09/201715
14/09/201715
V&V
Conception globale et détaillée
14/09/201715
14/09/201715
V&V
Implémentation
14/09/201715
14/09/201715
V&V
[Royce70]
V&V
Tests unitaires
Intégration et Tests
Intégration et Tests
14/09/201715
14/09/201715
14/09/201715
14/09/201715
14/09/201715
V&V
Installation
14/09/201715
14/09/201715
CHAPITRE 2: Processus Logiciels
Modèle en cascade
Modèles de processus
▪ Chaque étape doit être achevée avant que ne débute la suivante.
▪ Chaque fin d’étape est matérialisée par un événement, où s’exerce une activité de contrôle (V&V) afin d’éliminer au plus tôt les anomalies des produits réalisés.
▪ Le passage à l’étape suivante est conditionné par le résultat de contrôle (acceptation, rejet, ajournement)
▪ Les retours en arrière sur les étapes précédentes se limitent à un retour sur l’étape immédiatement antérieure.
Adapté aux projets dont les besoins sont clairs dès le début
du projet.
31
14/09/201716
14/09/201716
CHAPITRE 2: Processus Logiciels
Modèle en cascade: Bilan
Modèles de processus
▪ Avantage
▪ Facile à comprendre
▪ Inconvénients
▪ Pas toujours adapté à une production logicielle, en particulier si les besoins du client sont changeants ou difficiles à spécifier
▪ Le client ne reçoit pas de résultats concrets pendant le développement du logiciel (Problème de l’effet tunnel )
▪ Coût de modification d’une erreur important, donc choix en amont cruciaux (typique d’une production industrielle)
32
14/09/201716
14/09/201716
CHAPITRE 2: Processus Logiciels
Modèle en V
Modèles de processus
▪ Processus linéaire dérivé du modèle de la cascade;
▪ La première branche correspond à un modèle en cascade classique.
▪ Les premières étapes du cycle doivent préparer les dernières étapes, essentiellement les activités de vérification et de validation.
▪ Toute description d’un composant est accompagnée de définitions de tests.
▪ Avec les jeux de tests préparés dans la première branche, les étapes de la deuxième branche peuvent être mieux préparées et planifiées.
▪ La seconde branche correspond à des tests effectifs effectués sur des composants réalisés.
34
Analyse des besoins
CHAPITRE 2: Processus Logiciels
Modèle en V
Ecriture
Validation
Spécification Tests
d’acceptation
Conception Globale
Conception Détaillée
Codage
Tests unitaires
Tests d’intégration
Modèles de processus
Tests système
33
14/09/201717
CHAPITRE 2: Processus Logiciels
Modèle en V
Modèles de processus
▪ Deux sortes de dépendances entre étapes :
▪ Traits continus : correspondent à l’enchaînement du modèle en cascade, les étapes se déroulent séquentiellement en suivant le V de gauche à droite
▪ Traits non continus : Une partie des résultats de l’étape de départ est utilisée directement par l’étape d’arrivée.
▪ Par exemple : à l’issue de la conception globale, le protocole d’intégration et les jeux de tests d’intégration doivent être décrits.
35
14/09/201718
14/09/201718
CHAPITRE 2: Processus Logiciels
Modèle en V: Bilan
Modèles de processus
Avantages
▪ Une meilleure spécification
▪ évite fois le d’énoncer logiciel réalisé. une propriété qu’il est impossible de vérifier objectivement une ▪ Prévenir les erreurs
▪ réflexion l’obligation et à de des concevoir retours sur les jeux la description de tests et en leurs cours. résultats oblige à une ▪ Une meilleure planification du projet:
▪ Les étapes de la branche droite du V peuvent être mieux préparés et planifiés.
Inconvénients
▪ Le logiciel client ne reçoit pas de résultats concrets pendant le développement du ▪ Les insuffisances validations des intermédiaires étapes précédentes n’empêchent pas la transmission des ▪ Adapté aux projets de taille et de complexité moyenne.
36
14/09/201718
14/09/201718
CHAPITRE 2: Processus Logiciels
Modèle du prototypage
Analyse préliminaire des besoins
Modèles de processus
38
Analyse et sélection des nouvelles fonctions
Construction du prototype
État non satisfaisant
Évaluation expérimentationÉtat satisfaisant
Expression claire des besoins réels• Initialement, d’ordre général les ;
spécifications données par le client sont Spécifications
- Raffinement performances des par spécifications, des prototypes des successifs.
fonctionnalités et des définitives
- Quand souvent le un client cycle donne de vie son linéaire.
accord, le développement suit
CHAPITRE 2: Processus Logiciels
Modèle du prototypage
Modèles de processus
▪ Prototype = une version de tout ou d’une partie d’un logiciel, facile à mettre en œuvre et à modifier qui va permettre de vérifier rapidement certaines fonctionnalités
▪ Il n’est pas construit avec les mêmes contraintes de qualité que le logiciel final.
▪ Technique souvent utilisée pour la validation des spécifications
37
14/09/201719
CHAPITRE 2: Processus Logiciels
Modèle du prototypage: Bilan
Modèles de processus
Avantages
▪ Pour le client: Une approche où domine l’écoute total du client.
▪ Le client reçoit des résultats tangibles rapidement ;
▪ Le client peut exprimer ses besoins plus facilement;
▪ Le client peut changer d’avis sans conséquences dramatiques.
▪ Pour l’utilisateur:
▪ Expérimentation rapide par les utilisateurs et feedback immédiat.
▪ Former les utilisateurs avant la livraison du système final.
▪ Pour l’équipe de développement:
▪ Meilleure clarification des spécifications
▪ Amélioration l’analyste, d’autre de la part COMMUNICATION l’analyste et le concepteur entre d’une part le client et Inconvénients
▪ Impatience du client qui croît avoir un logiciel final.
▪ Problème coûts, etc.)
relatif à la gestion de projet (planification, estimation des 39
CHAPITRE 2: Processus Logiciels
Prototype évolutif
Modèles de processus
▪ Vise à pallier à la linéarité dans le modèle en cascade et au caractère « jetable » dans le prototypage;
▪ Le prototype est complété et amélioré jusqu’à la livraison finale du logiciel
▪ Principe (démarche méthodologique)
▪ Développer une première spécification
▪ Conception et réalisation du prototype
▪ Utiliser le prototype
▪ Evaluation,
▪ Corrections et amélioration
▪ Itérations 2, 3,…
▪ Livrer le logiciel
40
14/09/201720
CHAPITRE 2: Processus Logiciels
Prototype évolutif: Bilan
Modèles de processus
Avantages
▪ Modèle adapté aux systèmes non spécifiables (certains systèmes d’IA)
▪ Caractère itératif
Inconvénients
▪ Difficultés liées à la gestion du projet (le temps et le coût ne sont pas maîtrisés)
▪ Mal adapté aux systèmes complexes.
41
14/09/201721
14/09/201721
CHAPITRE 2: Processus Logiciels
Modèle incrémental
Modèles de processus
▪ A été proposé dans les années 80
▪ Incrément= version
▪ Propose un développement du logiciel par morceaux, lesquels sont livrés successivement au client, en venant se greffer à un noyau logiciel.
42
14/09/201721
14/09/201721
CHAPITRE 2: Processus Logiciels
Modèle incrémental
Modèles de processus
▪ Un seul sous-ensemble des composants est développé à la fois
▪ Un logiciel noyau est tout d’abord développé puis,
▪ Des incréments sont successivement développés et intégrés
▪ Permet d’éviter de tout concevoir, de tout coder et de tout tester
▪ Les spécifications du logiciel sont figées et connues, l’étape de conception globale est terminée.
▪ Certains modèles proposent de développer les différents incréments en parallèle:
44
CHAPITRE 2: Processus Logiciels
Modèle incrémental
Analyse et spécification des besoins
Conception architecturale
Conception détaillée d’un incrément
Codage d’un
Validation de incrément
l’incrément
Intégration
Validation du système
Système final
Modèles de processus
43
14/09/201722
CHAPITRE 2: Processus Logiciels
Modèle incrémental: Bilan
Modèles de processus
Avantages
▪ Des intégration livraisons d’incrément et des mises ; en service possible après chaque ▪ Faire accepter progressivement un logiciel par les utilisateurs
▪ Intégration progressifs ; allégée: les intégrations et leurs tests sont ▪ Maintenance allégée (par incrément)
Inconvénients
▪ Remise (définition le début en du cause globale projet). du des noyau incréments ou les incréments et de leurs précédents interactions dès ▪ Pour il nouvelles faut chaque arbitrer fonctionnalités version entre les à développer demandes à développer. après de correction la 1ère version et les livrée, 45
14/09/201723
14/09/201723
CHAPITRE 2: Processus Logiciels
Modèle orienté réutilisation
Modèles de processus
▪ Basée sur une réutilisation systématique de composants existants pour concevoir un nouveau système
▪ Les étapes du processus
▪ Analyse des composants
▪ Spécification des modifications
▪ Conception avec réutilisation
▪ Développement et intégration
▪ De plus en plus utilisé de nos jours
46
14/09/201723
14/09/201723
CHAPITRE 2: Processus Logiciels
Modèle orienté réutilisation: Bilan
Modèles de processus
Avantages
▪ Réduire le coût
▪ Livraison et déploiement du logiciel souvent rapide Inconvénient
▪ Il est souvent nécessaire de faire des compromis vis à vis des spécifications d’où le risque de produire un logiciel qui ne répond pas aux vrais besoins des utilisateurs.
48
14/09/201724
14/09/201724
CHAPITRE 2: Processus Logiciels
Types de composants réutilisables
Modèles de processus
▪ Les Web services
▪ Développés selon des standards
▪ Disponibles par appel sur un serveur
▪ Collections d’objets intégrés dans un framework (tel que .NET ou J2EE)
▪ Logiciels autonomes (COTS: Commercial Off The Shelf ) configurés pour une utilisation dans un environnement particulier
47
14/09/201724
14/09/201724
CHAPITRE 2: Processus Logiciels
Modèle de la transformation formelle
Modèles de processus
▪ Une spécification d’un logiciel est formelle si elle est exprimée avec un langage qui possède:
▪ un vocabulaire et une syntaxe formellement définis;
▪ une sémantique basée sur les mathématiques.
▪ Ce modèle se base sur des notations mathématiques (il permet au spécifieur de décrire rigoureusement, sans ambiguïté ce que le logiciel doit faire)
50
A la prochaine séance!
49
14/09/201725
14/09/201725
CHAPITRE 2: Processus Logiciels
Modèle de la transformation formelle
T:Transformations T1 T2 T3 Tn-1 Tn
Modèles de processus
51
14/09/201726
14/09/201726
Spécification formelle
R1 R2
…. Rn
…. Rn
Programme Exécutable
Programme Exécutable
Programme Exécutable
P P P P P
P: Preuves de la correction (démonstration formelle) des transformations R: raffinement
Si la spécification satisfait les propriétés et l’implémentation traduit la spécification alors l’implémentation satisfait aussi les propriétés
14/09/201726
14/09/201726
14/09/201726
14/09/201726
CHAPITRE 2: Processus Logiciels
Modèle de la transformation formelle
Modèles de processus
Avantages
▪ Améliorer la qualité du logiciel;
▪ Rigueur et précision des spécifications;
▪ Faciliter la validation;
▪ Automatiser la vérification;
▪ Favoriser le développement de programmes corrects et documentés formellement.
Inconvénients
▪ Nécessite une certaine qualification du client, utilisateurs et développeurs;
▪ Ne facilite pas la communication avec les utilisateurs;
▪ Le produit est obtenu à la fin du processus.
52
14/09/201726
14/09/201726
CHAPITRE 2: Processus Logiciels
Modèle agiles
Modèles de processus
▪ Agilité la en environnement. valeur s’adaptant = et la à capacité ravir -à temps- son d’une client, aux organisation changements tout en favorisant à créer de son de et ▪ Les méthodes agiles:
▪sont classiques limites plus humaines). pragmatiques (en adéquation que avec les les méthodes capacités et les ▪impliquent grande réactivité au maximum à ses demandes. le client et permettent une ▪Visent (contrat en de priorité développement). la satisfaction réelle du client 53
14/09/201727
14/09/201727
CHAPITRE 2: Processus Logiciels
Modèle agiles
Modèles de processus
- Une méthode agile est une approche itérative et incrémentale, qui est menée dans un esprit collaboratif
- Elle génère un produit de haute qualité tout en prenant en compte l’évolution des besoins des clients
- Concepts formalisés en 2001 par le Manifeste Agile» (4valeurs fondamentales)
http://agilemanifesto.org/iso/fr/
54
14/09/201727
14/09/201727
CHAPITRE 2: Processus Logiciels
Valeurs de l’agilité
1.Priorité aux personnes et aux interactions par rapport aux procédures et aux outils …
Modèles de processus
▪ Ce sont les individus, leur expertise, l’esprit d’équipe (plutôt que les processus et les outils) qui font la valeur du travail accompli:
▪ Les processus qui définissent ce que doit faire chaque personne brident le potentiel caché derrière chacun.
▪ Faire interagir les gens au maximum permet d’améliorer grandement l’efficacité et la qualité du travail fourni.
56
Modèles de processus CHAPITRE 2: Processus Logiciels
Privilégier
14/09/201728
14/09/201728
Adaptation au changement
Collaboration avec le client
Valeurs de l’agilité
Personnes et interactions
Un produit opérationnel
Plutôt que
Plutôt que
Plutôt que
Plutôt que
Processus et outils
Processus et outils
Négociation d’un contrat
Négociation d’un contrat
Documentation pléthorique
Documentation pléthorique
Suivi d’un plan
Suivi d’un plan
55
14/09/201728
14/09/201728
14/09/201728
14/09/201728
14/09/201728
14/09/201728
14/09/201728
14/09/201728
14/09/201728
14/09/201728
14/09/201728
14/09/201728
CHAPITRE 2: Processus Logiciels
Valeurs de l’agilité
- Priorité à l’acceptation et la réactivité au changement par rapport au suivi d’un plan.
Modèles de processus
▪ Planning flexible :
▪ Le planning est flexible pour accepter les modifications nécessaires.
▪ Lorsqu’un plan est défini, l’équipe essaie de s’y tenir et ne fait pas attention à des évènements extérieurs qui peuvent arriver à tout moment (Risque de conflit).
▪ Pour le client, pouvoir adapter les besoins en cours de projet est un atout concurrentiel.
58
14/09/201729
14/09/201729
CHAPITRE 2: Processus Logiciels
Valeurs de l’agilité
- Priorité à la collaboration avec le client par rapport à la négociation de contrats
Modèles de processus
▪ Sortir de la guerre client/fournisseur et penser en équipe qui veut atteindre un but commun pour réussir le projet.
▪ Le client devient un partenaire qui participe au projet pour donner régulièrement son feedback.
57
14/09/201729
14/09/201729
▪ Le coeur de Scrum est un sprint : un bloc de temps d’un mois ou moins durant lequel un incrément du produit est réalisé.
CHAPITRE 2: Processus Logiciels
Un modèle agile: SCRUM
Modèles de processus
60
14/09/201730
14/09/201730
14/09/201730
CHAPITRE 2: Processus Logiciels
Modèle agiles
Modèles de processus
▪ Parmi ces modèles, on trouve :
▪ SCRUM
▪ XP (eXtreme Programming)
▪ ASD (Adaptative Software Development)
▪ FDD (Feature Driven Development)
▪ DSDM (Dynamic Systems Development Method)
▪ AM (Agile Modeling)
▪ …Ces méthodes sont regroupées par l’Agile Alliance
www.AgileAlliance.org
59
14/09/201730
14/09/201730
CHAPITRE 2: Processus Logiciels
Modèles de processus
Un modèle agile: SCRUM
Daily scrum meeting: Mêlée quotidienne
14/09/201731
14/09/201731
Backlog du produit
24 heures
2 – 4 semaines Backlog du sprint
Produit
CHAPITRE 2: Processus Logiciels
SCRUM
Modèles de processus
62
61
14/09/201731
14/09/201731
14/09/201731
14/09/201731
CHAPITRE 2: PROCESSUS LOGICIELS
As a « type of user » I want « some objectives » so that « benefits value »
Unité de mesure exprimant l’effort demandé pour effectuer une tâche
Evolution de la quantité de travail restante par rapport au temps sur une période donnée.
Sprint backlog
M ODÈLES D E PR OCESS US
64
63
14/09/201732
14/09/201732
14/09/201732
14/09/201732
CHAPITRE 2: Processus Logiciels
CHAPITRE 2: Processus Logiciels
SCRUM
Planification du sprint (PO+SM+E+I)
▪ Analyser et évaluer le backlog de produit (analyse)
▪ Définir le but du sprint
▪ Décider comment s’y prendre (conception)
▪ Créer la liste des tâches à partir des éléments du backlog de produit
▪ Estimer les tâches en heures
65
14/09/201733
14/09/201733
CHAPITRE 2: Processus Logiciels
SCRUM
Modèles de processus
Mêlée quotidienne (E)
▪ Destinée à permettre à l’équipe de développement de synchroniser ses activités et planifier les prochaines 24 heures.
▪ Tous les jours, 15 minutes, même heure, même endroit.
▪ Trois questions pour chacun:
- Qu’avez-vous fait hier ?
- Qu’allez-vous faire aujourd’hui?
- Quels sont vos problèmes?
66
14/09/201733
14/09/201733
CHAPITRE 2: Processus Logiciels
SCRUM
Modèles de processus
Revue de sprint (PO+SM+E+I)
▪ Tous les acteurs échangent sur ce qui a été fait durant le sprint.
▪ Inspecter l’incrément du produit et adapter le carnet de produit si nécessaire. Pour un sprint d’un mois, cette rencontre est limitée à un bloc
de temps de quatre heures.
67
Modèles de processus CHAPITRE 2: Processus Logiciels
SCRUM
Rétrospective du sprint (PO+SM+E+I)
▪ Inspecter la manière dont le dernier sprint s’est déroulé en ce qui concerne les personnes, les relations, les processus et les outils ;
▪ Identifier et ordonner les éléments majeurs qui se sont bien déroulés et les améliorations potentielles ;
▪ Créer un plan pour améliorer les processus de travail de l’équipe Scrum
Pour un sprint d’un mois, cette rencontre est limitée à un bloc de
de trois heures.
14/09/201734
14/09/201734
Modèles de processus CHAPITRE 2: Processus
Logiciels
SCRUM
Remarque: Taille de l’équipe de développement
▪ Une équipe de développement de taille optimale est assez petite pour demeurer agile et assez grande pour effectuer du travail significatif.
▪ Moins de 3 membres :
▪ diminue les interactions et entraîne des pertes productivité
▪ Contrainte de compétences
▪ Plus de 9 membres :
▪ Trop de coordination
▪ Complexité non gérée par un processus empirique
Modèles de processus CHAPITRE 2: Processus Logiciels
SCRUM: Bilan
Avantages
▪ Règles définies clairement
▪ Souplesse : répondre au changement, modifier le projet et les livrables à tout moment
▪ Contrôle quotidien : coût; planning; fonctionnalités; et qualité.
▪ Partage de connaissances : améliorer la productivité
▪ Résultat conforme aux attentes
Inconvénients
▪ Grande disponibilité de tous les acteurs
▪ Non adaptée aux grands projets
14/09/201735
Modèles de processus CHAPITRE 2: Processus Logiciels
Modèles orientées objet
▪Le développement orienté objet conduit à des architectures logicielles fondées sur les objets (plutôt que sur les fonctions)
▪Dans le cadre de développement orienté objet, UML (Unified Modeling Language) est le standard
▪le PU (Processus Unifié) a été proposé afin de compléter UML avec une méthode
▪Méthode générique de développement de logiciels
▪Générique = pouvant être adaptée à une large classe de systèmes logiciels.
14/09/201736
CHAPITRE 2: Processus Logiciels
Les modèles orientés objet
71
Modèles de processus
14/09/201736
14/09/201736
- PU utilise le langage UML;
- PU est piloté par les cas d’utilisation;
- PU est centré sur l’architecture;
- PU est itératif et incrémental.
- PU gère les risques
Modèles de processus CHAPITRE 2: Processus Logiciels
PU: caractéristiques
PU est piloté par les cas d’utilisation
▪ Cas d’utilisation: donne une vision global du comportement fonctionnel du système
▪Le processus de développement est centré sur l’utilisateur.
▪Toutes les activités, de l’analyse des besoins jusqu’aux tests sont guidés par les cas d’utilisation.
▪A partir des cas d’utilisation, les développeurs créent une série de modèles UML.
Modèles de processus CHAPITRE 2: Processus
Logiciels
PU: caractéristiques
14/09/201737
CHAPITRE 2: Processus Logiciels
Modèles de processus
P PU: caractéristiques
▪ Exemple de cas d’utilisation:
75
CHAPITRE 2: Processus Modèles de
14/09/201738
14/09/201738
Logiciels
processus
PU: caractéristiques
PU est piloté par les cas d’utilisation
76
14/09/201738
14/09/201738
Modèles de processus CHAPITRE 2: Processus
Logiciels
PU: caractéristiques
PU est centré sur l’architecture
▪ Tous les intervenants au projet de développement, du chef projet au programmeur doivent s’accorder sur la vision commune du système à produire : l’architecture.
▪ L’architecture regroupe les différentes vues du système à construire.
▪ Elle doit prévoir la réalisation de tous les cas d’utilisation.
▪ Marche à suivre:
- Créer une ébauche grossière de l’architecture. 2. Travailler sur les cas d’utilisation représentant les fonctions essentielles. 3. Adapter l’architecture pour qu’elle prenne en compte ces cas d’utilisation. 4. Sélectionner d’autres cas d’utilisation et refaire de même.
Modèles de processus CHAPITRE 2: Processus Logiciels
PU: caractéristiques
PU est itératif et incrémental
▪ Découpe du projet en “mini-projet” : des ITÉRATIONS qui donne lieu à des INCRÉMENTS.
▪ Les itérations désignent des étapes de l’enchaînement des activités
▪ Une itération reprend les livrables dans l’état où les a laissé l’itération précédente et les enrichit progressivement (incrémental).
▪ Les incréments correspondent à des stades de développement du produit.
14/09/201739
CHAPITRE 2: Processus CHAPITRE 2:
Logiciels
Processus Logiciels
Phases : ensemble d’itérations Activités
PU en bref
Inception Elaboration Construction Transition
Itér.1 Itér.1 Itér.2 Itér.3 Itér.4 Itér.5 Itér.1 Itér.2 Itér.1
Capture des besoins
Analyse
Conception
Implémen- tation
Test
CHAPITRE 2: Processus
Modèles de Logiciels
processus
PU: caractéristiques
PU gère les risques (délais, financement, qualité, besoins,…)
▪ Il propose le maintien d’une liste de risques, tout au long du cycle de vie.
▪ La phase de démarrage (Inception) a pour but d’identifier et de diminuer les risques majeurs (par exemple par rapport à la faisabilité dû au financement) du projet.
▪ L’élaboration gère les risques significatifs, ceux qui impactent sur les planifications par exemple.
▪ Les phases de construction et de transition gèrent les risques spécifiques et probablement imprévisibles.
79
80
14/09/201740
Modèles de processus CHAPITRE 2: Processus
Logiciels
PU: Phases & Activités
▪ Phase de démarrage (Inception) : Identification des principaux cas d’utilisation.
▪ Phase d’élaboration: l’analyse et la conception de la plupart des fonctionnalités du système sont abordés.
▪ Phase de construction : au cours de laquelle la conception et l’implémentation du système sont achevés.
▪ Phase de transition : est dédiée au test des fonctionnalités du système.
▪ A chaque phase, un ensemble d’activités est réalisé:
▪ Capture des besoins
▪ Analyse
▪ Conception
▪ Implémentation
▪ Tests
Modèles de processus CHAPITRE 2: Processus Logiciels
PU: Bilan
Avantages
▪standard
▪aide à gérer la complexité
▪permet de diminuer les risques Inconvénients
▪peut s’avérer lourd à mettre en place
▪peu adapté au projet de petite envergure.
14/09/201741
CHAPITRE 2: Processus Modèles de
Logiciels
processus
Agile Vs UP
Points en commun
Points différents
▪ Incrémental et itératif
▪ Où et comment appliquer le
▪ Division du travail en
processus incrémental tâches
▪ UP est un Framework /Agile est un
▪ Test continu
ensemble de principes (manisfeste)
▪ Se focaliser sur la
▪ Taille des projets qualité
▪ Agile (petits et moyens projets à)
▪ Intégration continue
/ UP (grands projets)
▪ Maîtriser les changements
▪ UP est plus lourd en documents et en artéfacts
▪ Agile plus flexible aux changements
▪ UP est axé sur les risques
84
CHAPITRE 2: Processus Logiciels
Agile Vs PU
Modèles de processus
83
14/09/201742
Modèles de processus CHAPITRE 2: Processus
Logiciels
Quelques Instances du PU
▪ RUP : Rational Unified Process, instanciation par Rational des préceptes UP
▪ EUP : Enterprise Unified Process, instanciation intégrant les phases de post-implantation.
▪ XUP : Extreme Unified Process, instanciation hybride intégrant UP avec Extreme Programming.
▪ AUP : Agile Unified Process, partie des préceptes UP permettant l’agilité du développement.
▪ 2TUP : Two Tracks Unified Process, instanciation de UP proposé par Valtech prenant en compte les aléas et contraintes liées aux changements perpétuels et rapides des SI des entreprises.
▪ EssUP : Essential Unified Process, instanciation de UP proposé par Ivar Jacobson Consulting qui propose une mouture du processus unifié qui intègre certains concepts de l’agilité.
Modèles de processus CHAPITRE 2: Processus
Logiciels
Un modèle OO: 2TUP
▪Pourquoi 2TUP?
▪Réponse aux contraintes de changement continuel imposées aux systèmes d’information de l’entreprise.
Contraintes techniques
Contraintes fonctionnelle
14/09/201743
CHAPITRE 2: Processus Logiciels
Modèles de processus CHAPITRE 2: Processus Logiciels
2TUP
Idée de base 2TUP
Axe fonctionnel
Axe technique
La réalisation du système consiste à fusionner les résultats des deux branches
Modèles de processus
87
14/09/201744
14/09/201744
Modèles CHAPITRE 2: Processus de
Logiciels processus 2TUP: Apport
Capitalisation de la connaissance de l’entreprise
investissement pour le moyen et long terme
Capitalisation d’un savoir- faire technique
investissement pour le court et moyen terme
Conception détaillée
Capture des besoins fonctionnels
Capture des besoins techniques
Modèles de processus CHAPITRE 2: Processus
Logiciels
2TUP et UML
Conception générique
Conception préliminaire
Analyse
- Diagramme des cas d’utilisation,
- Diagrammes de séquence,
- Diagrammes de collaboration
- Diagramme de classes,
- Diagrammes d’états transition
- Diagramme des cas d’utilisation
- Diagramme de déploiement
- Diagramme de composants,
- Diagramme de déploiement
- Diagramme de classes, de séquence,
- Diagramme de collaboration, d’états,
- Diagramme d’activités, de composants
14/09/201745
Modèles de processus CHAPITRE 2: Processus
Logiciels
2TUP: Bilan
Avantages
▪Itératif, incrémental (PU)
▪Cible des projets de toutes tailles
▪Donne une place importante à la technologie et à la gestion des risques (2 axes) Inconvénients
▪Plutôt superficiel sur les phases situées en aval du développement: support, maintenance
FIN CHAPITRE 2
92
14/09/201746
télécharger gratuitement génie logiciel: cours de processus logiciel