![Page 2: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/2.jpg)
2
Logiciel
Ensemble d'entités nécessaires au fonctionnement d'un
processus de traitement automatique de l'information.
• Programmes, données, documentation...
Ensemble de programmes qui permet à un système
informatique d’assurer une tâche ou une fonction en
particulier
Logiciel = programme + utilisation
![Page 3: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/3.jpg)
3
Logiciel
Aspects importants du logiciel
• Environnement :
- utilisateurs : traitement de texte, distributeur de
billets
- autres logiciels : librairie, composant
- matériel : ABS, système d'alarme
• Spécification : ce que doit faire le logiciel, ensemble de
critères que doivent satisfaire son fonctionnement
interne et ses interactions avec son environnement
![Page 4: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/4.jpg)
4
Crise du logiciel
Constat du développement logiciel fin années 60 :
• Délais de livraison non respectés
• Budget non respecté
• Ne répond pas aux besoins de l'utilisateur ou du client
• Difficile à utiliser, maintenir, et faire évolue
![Page 5: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/5.jpg)
5
Étude du DoD années 80
![Page 6: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/6.jpg)
6
Étude du Standish group
Enquête sur 8380 projets de toutes tailles et de tous secteurs
Projets réussis : achevés dans les délais et pour le budget impartis, avec
toutes les fonctionnalités demandées
Projets mitigés : achevés et opérationnels, mais livrés hors délais, hors
budget ou sans toutes les fonctionnalités demandées
Projets ratés : abandonnés avant la fin
![Page 7: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/7.jpg)
7
Utilisation des fonctionnalités implantées
![Page 8: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/8.jpg)
8
Bugs célèbres
Sonde Mariner 1, 1962
• Détruite 5 minutes après son lancement
• Coût : 18,5 millions de dollars
• Défaillance des commandes de guidage due à
une erreur de spécification
• Erreur de transcription manuelle d'un symbole
mathématique dans la spécification
![Page 9: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/9.jpg)
9
Bugs célèbres
Ariane V vol 501, 1996
● Explosion après 40 secondes
de vol
● Coût : 370 millions de dollars
● Panne du système de
navigation due à un
dépassement de capacité
(arithmetic over flow)
● Réutilisation d'un composant
d'Ariane IV non re-testé
Une recherche sur 3 autres bugs célèbres des systèmes informatiques.
![Page 10: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/10.jpg)
10
Pourquoi ?
Raisons principales des bugs
● Erreurs humaines
● Taille et complexité des logiciels
● Taille des équipes de conception/développement
● Manque de méthodes de conception
● Négligence de la phase d'analyse des besoins du client
● Négligence et manque de méthodes et d'outils des
phases de validation/vérification
![Page 11: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/11.jpg)
11
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 »
![Page 12: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/12.jpg)
12
Génie Logiciel
S02
![Page 13: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/13.jpg)
13
Génie logiciel
Idée : appliquer les méthodes classiques d'ingénierie au
domaine du logiciel
Ingénierie (ou génie) : Ensemble des fonctions allant de la
conception et des études à la responsabilité de la
construction et au contrôle des équipements d'une
installation technique ou industrielle
Génie civil, naval, aéronautique, mécanique, chimique...
![Page 14: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/14.jpg)
14
Génie logiciel
Définition : Ensemble des méthodes, des techniques et
des outils dédiés à la conception, au développement et à
la maintenance des systèmes informatiques.
Objectif : Avoir des procédures systématiques pour des
logiciels de grande taille a fin que:
• La spécification corresponde aux besoins réels du
client
• Le logiciel respecte sa spécification
• Les délais et les coûts alloués à la réalisation soient
respectés
![Page 15: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/15.jpg)
15
Génie logiciel
Méthode: est considérée comme une série de démarches précisées par
des outils que nous utilisons afin d’arriver à un but précis
Méthodologie: est une démarche méthodique adoptée par des
chercheurs, des didacticiens, des linguistes, des éditeurs et desenseignants afin de réaliser une méthode pour obtenir le meilleurrésultat. Elle se doit de fournir un ensemble de procéduresd’apprentissage aux concepteurs de méthodes afin de déterminer leurslignes de réalisations.
Technique: est une ou un ensemble de méthode issues de
connaissances scientifiques ou simplement des méthodes dictées par la pratique de certains métiers.
Outils: est un logiciel pour appliquer une technique spécifique
![Page 16: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/16.jpg)
16
Génie logiciel
Particularités du logiciel :• produit invisible et immatériel
• Difficile de mesurer la qualité
• Conséquences critiques causées par modifications infimes
• Mises à jour et maintenance dues à l'évolution rapide de la
technologie
• Difficile de raisonner sur des programmes
• Défaillances logicielles principalement humaines
![Page 17: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/17.jpg)
17
Qualité du logiciel
Critères de qualité
• Validité : réponse aux besoins des utilisateurs
• Facilité d'utilisation : prise en main et robustesse
• Performance : temps de réponse, débit, fluidité...
• Fiabilité : tolérance aux pannes
• Sécurité : intégrité des données et protection des
accès
• Maintenabilité : facilité à corriger ou transformer le
logiciel
• Portabilité : changement d'environnement matériel ou
logiciel
![Page 18: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/18.jpg)
18
Principes d'ingénierie
pour le logiciel
![Page 19: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/19.jpg)
19
Principes d'ingénierie pour le logiciel
• Rigueur
• Abstraction
• Décomposition en sous-problèmes
• Modularité
• Construction incrémentale
• Généricité
• Anticipation des évolutions
• Documentation
• Standardisation/normalisation
![Page 20: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/20.jpg)
20
Principes d'ingénierie pour le logiciel
• Rigueur : principale source d'erreurs humaine,
s'assurer par tous les moyens que ce qu'on écrit est
bien ce qu'on veut dire et que ça correspond à ce qu'on
a promis (outils, revue de code...)
• Abstraction
• Décomposition en sous-problèmes
• Modularité
• Construction incrémentale
• Généricité
• Anticipation des évolutions
• Documentation
• Standardisation/normalisation
![Page 21: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/21.jpg)
21
Principes d'ingénierie pour le logiciel
• Rigueur
• Abstraction : extraire des concepts généraux sur
lesquels raisonner,
puis instancier les solutions sur les cas particuliers
• Décomposition en sous-problèmes
• Modularité
• Construction incrémentale
• Généricité
• Anticipation des évolutions
• Documentation
• Standardisation/normalisation
![Page 22: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/22.jpg)
22
Principes d'ingénierie pour le logiciel
• Rigueur
• Abstraction
• Décomposition en sous-problèmes : traiter chaque
aspect séparément, chaque sous-problème plus
simple que problème global
• Modularité
• Construction incrémentale
• Généricité
• Anticipation des évolutions
• Documentation
• Standardisation/normalisation
![Page 23: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/23.jpg)
23
Principes d'ingénierie pour le logiciel
• Rigueur
• Abstraction
• Décomposition en sous-problèmes
• Modularité : partition du logiciel en modules
interagissant, remplissant une fonction et ayant une
interface cachant l'implantation aux autres modules
• Construction incrémentale
• Généricité
• Anticipation des évolutions
• Documentation
• Standardisation/normalisation
![Page 24: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/24.jpg)
24
Principes d'ingénierie pour le logiciel
• Rigueur
• Abstraction
• Décomposition en sous-problèmes
• Modularité
• Construction incrémentale : construction pas à pas,
intégration progressive
• Généricité
• Anticipation des évolutions
• Documentation
• Standardisation/normalisation
![Page 25: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/25.jpg)
25
Principes d'ingénierie pour le logiciel
• Rigueur
• Abstraction
• Décomposition en sous-problèmes
• Modularité
• Construction incrémentale
• Généricité : proposer des solutions plus générales
que le problème pour pouvoir les réutiliser et les
adapter à d'autres cas.
• Anticipation des évolutions
• Documentation
• Standardisation/normalisation
![Page 26: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/26.jpg)
26
Principes d'ingénierie pour le logiciel
• Rigueur
• Abstraction
• Décomposition en sous-problèmes
• Modularité
• Construction incrémentale
• Généricité
• Anticipation des évolutions : liée à la généricité et à la
modularité, prévoir les ajouts/modifications possibles
de fonctionnalités
• Documentation
• Standardisation/normalisation
![Page 27: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/27.jpg)
27
Principes d'ingénierie pour le logiciel
• Rigueur
• Abstraction
• Décomposition en sous-problèmes
• Modularité
• Construction incrémentale
• Généricité
• Anticipation des évolutions
• Documentation : essentielle pour le suivi de projet et la
communication au sein de l'équipe de projet
• Standardisation/normalisation : aide à la
communication pour le développement, la maintenance
et la réutilisation
![Page 28: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/28.jpg)
28
Processus de
développement logiciel
S03
![Page 29: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/29.jpg)
29
Processus de développement logiciel
Activités du développement logiciel
1. Analyse des besoins et Spécification
2. Conception
3. Programmation
4. Validation et vérification
5. Livraison
6. Maintenance
Pour chaque activité : Utilisation et production de
documents
![Page 30: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/30.jpg)
30
1- Analyse des besoins
Objectif : Comprendre les besoins du client
Objectifs généraux, environnement du futur système,
ressources disponibles, contraintes de performance...
Entrée : Fournies par le client
Expert du domaine d'application, futur utilisateur
Document produit : Cahier des charges (+ manuel
d'utilisation préliminaire)
![Page 31: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/31.jpg)
31
2- Conception et spécification
Objectif : Élaborer une solution concrète réalisant la
spécification
• Description architecturale en composants (avec
interface et fonctionnalités)
• Réalisation des fonctionnalités par les composants
(algorithmes, organisation des données)
• Réalisation des exigences non-fonctionnelles
(performance, sécurité...)
Entrée : Cahier des charges fonctionnel
Document produit : Dossier de conception
![Page 32: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/32.jpg)
32
3- Programmation
Objectif : Implantation de la solution conçue
• Choix de l'environnement de développement, du/des
langage(s) de programmation, de normes de
développement...
Entrée : Dossier de conception
Document produit : Code documenté + manuel d'utilisation
![Page 33: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/33.jpg)
33
4- Validation et vérification
Objectifs :
• Validation : assurer que les besoins du client sont
satisfaits (au niveau de la spécification, du produit fini...)
• Vérification : assurer que le logiciel satisfait sa
spécification
• Document : recette de la validation et vérification
![Page 34: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/34.jpg)
34
5- Livraison
Livraison du produit (Logiciel).
Mise en œuvre et installation
Paramétrage et formation
Document: Manuel d’utilisation + support de formation
Remarque: La phase de validation et livraison nous
pouvons la faire dans une seule phase: Intégration et test
![Page 35: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/35.jpg)
35
6- Maintenance
Types de maintenance :
• Correction : identifier et corriger des erreurs trouvées
après la livraison
• Adaptation : adapter le logiciel aux changements dans
l'environnement (format des données, environnement
d'exécution...)
• Perfection : améliorer la performance, ajouter des
fonctionnalités, améliorer la maintenabilité du logiciel
• Document: Fiche d’intervention
![Page 36: Cours XML n°6 - fahmi-benrejab.e-monsite.comfahmi-benrejab.e-monsite.com/medias/files/s010203-ch-01-intro... · Panne du système de navigation due à un ... • Fiabilité : tolérance](https://reader031.vdocuments.pub/reader031/viewer/2022022610/5b956dde09d3f272648c9e92/html5/thumbnails/36.jpg)
36
Répartition de l’éffort