Académique Documents
Professionnel Documents
Culture Documents
&
CONCEPTION ORIENTEE OBJET
Processus logiciel
2020-2021
Objectifs du cours
2
Nidal LAMGHARI
Plan
3
1. Introduction
2. Motivations
3. Cycle de vie d’un logiciel
4. Composantes du cycle de vie d’un logiciel
5. Documents courants
6. Modèles de cycles de vie
◼ Méthodes classiques
◼ Méthodes agiles
Nidal LAMGHARI
1.Introduction
4
Logiciel: définition
Le Logiciel se trouve quasiment « partout »
Plusieurs choses de notre quotidien sont inconcevables
sans la notion du logiciel
Bureautique, voyages aériens, scolarité, recherche
scientifique, loisirs,…
On dépend très fortement de la qualité des logiciels
qui gèrent notre vie
Nidal LAMGHARI
1.Introduction
5
Logiciel: définition
Un logiciel un ensemble d’entités nécessaires au
fonctionnement d’un processus de traitement automatique
de l’information.
Exemple d’entités:
◼ programmes (en format code source ou exécutables) ;
◼ documentations d’utilisation ;
◼ informations de configuration.
Nidal LAMGHARI
1.Introduction
6
Logiciel: définition
Un logiciel un sous-système d’un système englobant.
Il peut interagir avec des clients, qui peuvent être :
◼ des opérateurs humains (utilisateurs, administrateurs, . . . ) ;
◼ d’autres logiciels ;
◼ des contrôleurs matériels.
Nidal LAMGHARI
1.Introduction
7
Logiciel: définition
Le « software » et le « hardware » sont indissociables :
◼ Le « hardware » a besoin du « software » pour être piloté
◼ Le « software » a besoin du hardware pour être exécuté
L’évolution phénoménale des capacités des logiciels est
intimement liée à l’évolution du hardware et aussi d’autres
facteurs
◼ Amélioration de la puissance du processeur
◼ Amélioration des capacités de stockages
◼ Changement des dispositifs d’entrée ou de sortie (Ecran tactile, stylo
optique, …etc.)
◼ Augmentation de la mobilité et des unités mobiles (Smartphones,
tablettes, notebooks,…etc.)
Nidal LAMGHARI
1.Introduction
8
Nidal LAMGHARI
1.Introduction
9
Nidal LAMGHARI
1.Introduction
10
Outils
Nidal LAMGHARI
1.Introduction
11
Nidal LAMGHARI
1.Introduction
12
Nidal LAMGHARI
1.Introduction
13
Nidal LAMGHARI
1.Introduction
14
Nidal LAMGHARI
1.Introduction
15
Maintenance Conception
Déploiement Implantation
Tâches du
génie logiciel
Validation
Intégration
Vérification Documentation
Nidal LAMGHARI
2.Motivations
16
Nidal LAMGHARI
2.Motivations
17
Nidal LAMGHARI
2.Motivations
18
Nidal LAMGHARI
2.Motivations
19
Nidal LAMGHARI
2.Motivations
20
Nidal LAMGHARI
2.Motivations
21
Nidal LAMGHARI
2.Motivations
22
Nidal LAMGHARI
2.Motivations
23
Nidal LAMGHARI
2.Motivations
24
Nidal LAMGHARI
2.Motivations
25
Nidal LAMGHARI
2.Motivations
26
Nidal LAMGHARI
2.Motivations
27
Nidal LAMGHARI
2.Motivations
28
Nidal LAMGHARI
2.Motivations
29
Nidal LAMGHARI
2.Motivations
30
Nidal LAMGHARI
2.Motivations
31
Nidal LAMGHARI
2.Motivations
32
Nidal LAMGHARI
2.Motivations
33
Nidal LAMGHARI
2.Motivations
34
Nidal LAMGHARI
2.Motivations
35
Nidal LAMGHARI
2.Motivations
36
Nidal LAMGHARI
2.Motivations
37
Nidal LAMGHARI
2.Motivations
38
Nidal LAMGHARI
2.Motivations
39
Nidal LAMGHARI
3.Cycle de vie d’un logiciel
40
Nidal LAMGHARI
3.Cycle de vie d’un logiciel
41
Nidal LAMGHARI
3.Cycle de vie d’un logiciel
42
Nidal LAMGHARI
4.Composantes du cycle de vie
43
Étude de faisabilité
Spécification
Organisation du projet
Conception
Implémentation
Tests
Maintenance
Nidal LAMGHARI
4.Composantes du cycle de vie
44
Étude de faisabilité
Déterminer si le développement proposé vaut la peine
d’être mis en œuvre, tenant compte des attentes et de
la difficulté de développement
Etude de marché : existe-t-il un marché potentiel pour
le produit?
Nidal LAMGHARI
4.Composantes du cycle de vie
45
Spécification
Déterminer les fonctionnalités que doit posséder le
logiciel
◼ Collecte des exigences de l'utilisateur pour le logiciel
◼ Analyse du domaine : déterminer les tâches et les structures
qui se répètent dans le problème
Nidal LAMGHARI
4.Composantes du cycle de vie
46
Organisation du projet
Déterminer comment on va développer le logiciel
◼ Analyse des coûts : estimer le 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
◼ Répartition des tâches : hiérarchiser les tâches et sous-tâches
nécessaires au développement du logiciel
Nidal LAMGHARI
4.Composantes du cycle de vie
47
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 différentes
parties du système agissent entre elles
Conception détaillée :
◼ Les algorithmes pour les différentes parties du système
Implémentation (construction, réalisation, codage..):
Écriture du logiciel
Traduction de la conception détaillée dans un langage de
programmation
Nidal LAMGHARI
4.Composantes du cycle de vie
48
Tests
Essayer le logiciel sur des données d'exemple pour
s'assurer qu'il fonctionne correctement
◼ Tests unitaires : tester les parties du logiciel par leurs développeurs
◼ Tests d'intégration : tester pendant l'intégration
◼ Tests de validation : tester 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 à ceux
des anciennes versions pour vérifier si la nouvelle version n’a pas dégradé
d'autres
Nidal LAMGHARI
4.Composantes du cycle de vie
49
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 à se servir du logiciel
◼ Assistance : répondre aux questions des utilisateurs
Nidal LAMGHARI
4.Composantes du cycle de vie
50
Maintenance
Mettre à 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
Nidal LAMGHARI
4.Composantes du cycle de vie
51
Nidal LAMGHARI
4.Composantes du cycle de vie
52
Nidal LAMGHARI
5. Documents courants
53
Cahier de charge:
Décritinitialement les fonctionnalités désirées
Généralement écrit par l'utilisateur
Nidal LAMGHARI
5. Documents courants
55
Dossier de spécification:
Décrit précisément les conditions que doit remplir le
logiciel et non comment il est fait
Scenarios des cas d'utilisation qui indiquent les
différents enchaînements possibles du point de vue de
l'utilisateur
Plan de test
Nidal LAMGHARI
5. Documents courants
56
Dossier de spécification:
Plan de test:
◼ Livré lors de la spécification
◼ Décrit l’étendue, l’approche, les ressources et le planning des
activités de test prévues.
◼ Identifie entre autres les éléments et caractéristiques à
tester,
◼ Précise les testeurs, leur degré d’indépendance
◼ Décrit l’environnement de test, les techniques de conception
des tests et les techniques de mesure des tests à utiliser, et
tout risque nécessitant des plans de contingence.
◼ Reprend les processus de planification des tests [IEEE 829].
Nidal LAMGHARI
5. Documents courants
57
Dossier de planification:
Plan d’assurance qualité:
◼ Décrit les activités mises en œuvre pour garantir la qualité
du logiciel
Estimationdes coûts
Calendrier du projet :
◼ Ordre des différentes tâches
◼ Détails et ressources qu'elles demandent
Nidal LAMGHARI
5. Documents courants
58
Dossier de conception:
Conception générale: description fonctionnelle complète du futur
système
◼ Décrire l’architecture de la solution, c’est-à-dire son organisation
en entités, les interfaces de ces entités et les interactions entre ces
entités
◼ Processus de structuration poursuivi jusqu’à ce que tous les éléments
du document de spécification soient pris en compte
◼ Document de conception générale
Conception détaillée: description complète du futur système dans
l’environnement cible
◼ Affine la conception générale
◼ Décomposer les entités découvertes lors de la conception générale en
entités plus élémentaires
◼ Dossier de conception détaillée
Nidal LAMGHARI
5. Documents courants
59
Dossier d’implémentation:
Documentation
Nidal LAMGHARI
5. Documents courants
60
Nidal LAMGHARI
6. Modèles de cycle de vie
61
Agiles
Nidal LAMGHARI
6. Modèles de cycle de vie
62
Modèles classiques
Aspect séquentiel
Relation « client/fournisseur » entre la maîtrise
d’ouvrage (MOA) et la maîtrise d’œuvre (MOE).
Rigidité dans la conduite du projet.
Nidal LAMGHARI
6. Modèles de cycle de vie
63
Modèles classiques
Effet « tunnel »:
◼ Le paramétrage peut durer plusieurs mois
◼ MOA ne peur vérifier son adéquation qu’à la fin du projet
◼ Entre le début et la fin du projet, on ne peut pas détecter si
les exigences fonctionnelles ont été mal comprises.
Risque d’échec
◼ Généralement, le périmètre et les besoins fonctionnels ne
sont pas stables pendant toute la durée d’un projet SI.
Nidal LAMGHARI
6. Modèles de cycle de vie
64
Modèles agiles
Les personnes et les interactions plus que les processus
et les outils
Les logiciels opérationnels, plus qu’une documentation
complète
La collaboration avec le client
Nidal LAMGHARI
6. Modèles de cycle de vie
65
Modèles agiles
Développement itératif
Privilégient les besoins des utilisateurs pouvant évoluer
en cours du projet.
Consistent à diviser le projet en plusieurs mini projets
(itérations) définis avec les utilisateurs
MOA et MOE deviennent des partenaires de travail
avec des objectifs communs.
Nidal LAMGHARI
6. Modèles de cycle de vie
66
Nidal LAMGHARI
6. Modèles de cycle de vie
67
Nidal LAMGHARI
6. Modèles de cycle de vie
68
Nidal LAMGHARI
6. Modèles de cycle de vie
69
Nidal LAMGHARI
6. Modèles de cycle de vie
70
Nidal LAMGHARI
6. Modèles de cycle de vie
71
Nidal LAMGHARI
6. Modèles de cycle de vie
72
Avantages Inconvénients
➢Facile à utiliser et à comprendre ➢Sensibilité aux nouveaux besoins :
➢Un procédé structuré pour une refaire tout le procédé
équipe inexpérimentée ➢Une phase ne peut démarrer que si
➢Bien adapté pour des petits systèmes l’étape précédente est finie
➢Idéal pour la gestion et le suivi de ➢Mal adapté aux systèmes complexes
projets ➢Le produit n’est visible qu’à la fin
➢Approprié aux projets dont la ➢Les risques se décalent vers la fin
qualité est plus importante que les ➢Très faible implication du client…..
coûts et les délais
Nidal LAMGHARI
6. Modèles de cycle de vie
73
Nidal LAMGHARI
6. Modèles de cycle de vie
74
Nidal LAMGHARI
6. Modèles de cycle de vie
75
Nidal LAMGHARI
6. Modèles de cycle de vie
76
Avantages Inconvénients
➢Met l’accent sur les tests et la ➢Ne gère pas les activités parallèles
validation ce qui accroît la qualité du ➢Ne gère pas explicitement les
logiciel changements des spécifications
➢Facile à planifier dans une gestion ➢Ne contient pas des activités
de projets d’analyse de risque
➢Facile à utiliser ➢Difficile de l’appliquer à des projets
➢Bien adapté au partage des tâches complexes ou trop techniques ou
entre clients et prestataires évolutifs
➢définit parfaitement les rôles du
partenariat
Nidal LAMGHARI
6. Modèles de cycle de vie
77
Nidal LAMGHARI
6. Modèles de cycle de vie
78
Nidal LAMGHARI
6. Modèles de cycle de vie
79
Nidal LAMGHARI
6. Modèles de cycle de vie
80
Avantages Inconvénients
➢Implication active du client ➢Le prototypage implique un code
➢Le développeur apprend faiblement structuré
directement du client ➢Degré très faible de maintenabilité
➢S’adapte rapidement aux ➢Le processus peut ne jamais s’arrêter
changements des besoins ➢Très difficile d’établir un planning
➢Progrès constant et visible
➢Une grande interaction avec le
produit
Nidal LAMGHARI
6. Modèles de cycle de vie
81
Nidal LAMGHARI
6. Modèles de cycle de vie
82
Nidal LAMGHARI
6. Modèles de cycle de vie
83
Nidal LAMGHARI
6. Modèles de cycle de vie
84
Nidal LAMGHARI
6. Modèles de cycle de vie
85
Avantages Inconvénients
➢Développement de fonctionnalités à ➢Exige une bonne planification et une
risque en premier bonne conception
➢Chaque incrément donne un produit ➢Exige une vision sur le produit fini
fonctionnel pour pouvoir le diviser en incréments
➢Le client intervient à la fin de chaque ➢Le coût total du système peut être
incrément cher
➢Le client entre en relation avec le
produit très tôt
Nidal LAMGHARI
6. Modèles de cycle de vie
86
Nidal LAMGHARI
6. Modèles de cycle de vie
87
Nidal LAMGHARI
6. Modèles de cycle de vie
88
Nidal LAMGHARI
6. Modèles de cycle de vie
89
Nidal LAMGHARI
6. Modèles de cycle de vie
90
Nidal LAMGHARI
6. Modèles de cycle de vie
92
Nidal LAMGHARI
6. Modèles de cycle de vie
93
Nidal LAMGHARI
6. Modèles de cycle de vie
94
Nidal LAMGHARI
6. Modèles de cycle de vie
95
Nidal LAMGHARI
6. Modèles de cycle de vie
96
Nidal LAMGHARI
6. Modèles de cycle de vie
97
Fournir le minimum de
documentation requis
en amont pour réaliser
les développements.
Nidal LAMGHARI
6. Modèles de cycle de vie
98
Nidal LAMGHARI
6. Modèles de cycle de vie
99
Nidal LAMGHARI
6. Modèles de cycle de vie
100
Scrum,
Crystal
Nidal LAMGHARI
6. Modèles de cycle de vie
101
Nidal LAMGHARI
6. Modèles de cycle de vie
102
Nidal LAMGHARI
6. Modèles de cycle de vie
103
Nidal LAMGHARI
6. Modèles de cycle de vie
104
Détermine les
scénarios « client »
qui seront fournis Le client exprime ses
pendant tte besoins sous forme de
itération user stories ≈ uses
cases + DS
Nidal LAMGHARI
6. Modèles de cycle de vie
105
Nidal LAMGHARI
6. Modèles de cycle de vie
106
Planning de la
première release: Durée du planning=1
que les ou 2 jours
fonctionnalités La première version= 2
essentielles à 6 mois
Nidal LAMGHARI
6. Modèles de cycle de vie
107
Itérations très
courtes et des tests
constants en
parallèle du
développement
Nidal LAMGHARI
6. Modèles de cycle de vie
109
Plus de nouveaux
besoins Tous les besoins
possibles sont
remplis
Nidal LAMGHARI
6. Modèles de cycle de vie
110
Nidal LAMGHARI
6. Modèles de cycle de vie
111
Nidal LAMGHARI
6. Modèles de cycle de vie
112
Nidal LAMGHARI
6. Modèles de cycle de vie
113
Nidal LAMGHARI
6. Modèles de cycle de vie
114
Nidal LAMGHARI
6. Modèles de cycle de vie
115
Nidal LAMGHARI
6. Modèles de cycle de vie
116
Nidal LAMGHARI
6. Modèles de cycle de vie
117
Nidal LAMGHARI
6. Modèles de cycle de vie
118
Nidal LAMGHARI
6. Modèles de cycle de vie
119
Nidal LAMGHARI
6. Modèles de cycle de vie
120
Nidal LAMGHARI
6. Modèles de cycle de vie
121
Nidal LAMGHARI
6. Modèles de cycle de vie
122
Nidal LAMGHARI
6. Modèles de cycle de vie
123
Nidal LAMGHARI
6. Modèles de cycle de vie
124
Avantages Inconvénients
Implication active du client Demande une certaine maturité des
développeurs
Forte réactivité des développeurs La programmation par paires n’est
toujours pas applicable
Responsabilisation et solidarité de Difficulté de planifier et de budgétiser
l’équipe un projet
Appel aux meilleurs pratiques de Stress dû aux devoir de l’intégration
développement continue et des livraisons fréquentes
Souplesse extrême La faible documentation peut nuire en
cas de départ des développeurs
Nidal LAMGHARI
6. Modèles de cycle de vie
125
Nidal LAMGHARI
6. Modèles de cycle de vie
126
Nidal LAMGHARI
6. Modèles de cycle de vie
127
Simple Empirique
•Peut être combinée avec d’autres méthodes •Itérations courtes (sprints)
•Compatible avec les best practices •Feedback continu
Techniques simples
•Sprints de 2 à 4 semaines
•Besoins capturés en tant que user stories
Optimisation
Equipes
•Détection rapide des anomalies
•Auto-organisation
•Organisation simple
•Multi-compétences
•Requiert l’ouverture et la visibilité
Nidal LAMGHARI
6. Modèles de cycle de vie
128
Nidal LAMGHARI
6. Modèles de cycle de vie
129
Nidal LAMGHARI
6. Modèles de cycle de vie
130
Nidal LAMGHARI
6. Modèles de cycle de vie
131
Nidal LAMGHARI
6. Modèles de cycle de vie
132
Nidal LAMGHARI
6. Modèles de cycle de vie
133
Nidal LAMGHARI
6. Modèles de cycle de vie
134
Nidal LAMGHARI
6. Modèles de cycle de vie
135
◼ Le Scrum Master
◼ L’équipe de développement
Nidal LAMGHARI
6. Modèles de cycle de vie
136
Nidal LAMGHARI
6. Modèles de cycle de vie
137
Nidal LAMGHARI
6. Modèles de cycle de vie
138
Nidal LAMGHARI
6. Modèles de cycle de vie
139
◼ Planification du sprint
◼ Revue d'itération
◼ Rétrospective
Nidal LAMGHARI
6. Modèles de cycle de vie
140
Nidal LAMGHARI
6. Modèles de cycle de vie
141
Nidal LAMGHARI
6. Modèles de cycle de vie
142
Nidal LAMGHARI
6. Modèles de cycle de vie
143
◼ Durée : 60 min.
Nidal LAMGHARI
6. Modèles de cycle de vie
144
◼ Durée : 60 min.
Nidal LAMGHARI
Synthèse
145
Nidal LAMGHARI
Synthèse
146
Nidal LAMGHARI
Synthèse
147