Académique Documents
Professionnel Documents
Culture Documents
Deux constatations :
Le logiciel n’était pas fiable
Il était incroyablement difficile de réaliser dans des délais
prévus des logiciels satisfaisant leurs cahiers des charges
2
Crise du logiciel : Constat
Le logiciel n’était pas fiable
5
Crise du logiciel : Constat
Le développement logiciel n’est pas une opération facile
Le taux de succès des projets (Standish Group)
6
Crise du logiciel : Constat
D’autres statistiques:
7
Crise du logiciel : Sources
La taille et la complexité du logiciel :
La complexité fonctionnelle
On demande de plus en plus de fonctionnalités
Les utilisateurs sont de plus en plus exigeants
8
Crise du logiciel : Sources
La taille croissante des équipes :
9
Crise du logiciel : Sources
10
Crise du logiciel : Sources
Des spécifications du logiciel sont peu précises
11
Crise du logiciel : Sources
Des processus peu adaptés
C’est quoi un processus?
Ensemble d'étapes partiellement ordonnées, qui concourent à
l'obtention d'un système logiciel ou à l'évolution d'un système
existant
Pour décrire qui fait quoi à quel moment et de quelle façon pour
atteindre un certain objectif
Objectif : produire des logiciels
▪De qualité (qui répondent aux besoins de leurs utilisateurs)
▪Dans des temps et des coûts prévisibles
Crise du logiciel : Sources
Des processus peu adaptés
14
• Le cycle en cascade
▪Amélioration du cycle linéaire
▪Un retour possible à la phase en amont
15
Cycle en V
▪Variante du modèle linéaire
▪Les tests bien structurés : définition des
plans de tests tôt dans le cycle de
développement
16
Nouvelles Approches
• Les nouvelles approches du génie logiciel doivent remédier aux
problèmes des approches classiques
▪La rigueur
▪La construction itérative
▪La séparation des préoccupations
▪Abstraction
18
La rigueur
Orienté
conception
Upper CAS E
tools
Orienté réalisation
Lower CAS E
tools
Ateliers du génie logiciel (AGL)
🞂 Les ateliers orientés conception : Upper CASE
tools
🞂 Assistent la phase initial du projet de développement
🞂 Proposent des outils d'éditions graphiques et peuvent
proposer un outil de prototypage et éventuellement de
reverse engineering
🞂 Exemples : PowerDesigner de Sybase (Basés sur Merise et
UML) , Rational Rose (Basé sur UML), Eclipse (Plug-in UML :
Papyrus)
🞂
Ateliers du génie logiciel (AGL)
🞂 Les ateliers orientés réalisation: Lower CASE tools
🞂 Assistent la phase finale du projet de développement
🞂 Outils de développement ou Environnements de
DéveloppementIntégré (IDE). Exemple : Code-Blocks
(C++) ou Eclipse
🞂 Autres Exemples : PowerBuilder de Sybase, Oracle
Developer de Oracle Corporation (applications BD), etc.
27
Construction itérative
Un développement logiciel a plus de chances d’aboutir si il suit
un cheminement incrémental
28
Abstraction
Raisonner sur des concepts généraux, puis raffiner ces concepts pour
ajouter plus de détails
Fixer la bonne granularité de détails permet de
▪Raisonner plus efficacement
▪Cerner le problème traité à chaque niveau d’abstraction
▪Trouver des solutions/ résoudre des problèmes progressivement
30
Nouvelles approches
Interpréter
Si les spécifications du logiciel à réaliser changent continuellement, cela ne
pose pas de problème, puisque le logiciel est un produit souple
=> Faux : des changements de spécifications peuvent se révéler coûteux
et prolonger les délais
Si la réalisation du logiciel prend du retard par rapport aux délais prévus, il
suffit d’ajouter plus de programmeurs afin de finir dans les délais.
=> Faux : si l’on ajoute des gens à un projet, il faut compter une période
de familiarisation. Le temps passé à communiquer à l’intérieur du groupe
augmente également, lorsque la taille du groupe augmente.
32
Crise du logiciel (sources de la crise)
Interpréter
Une idée grossière du logiciel à réaliser est suffisante pour commencer à
écrire un programme (il est assez tôt de se préoccuper des détails plus tard).
Une fois que le programme est écrit et fonctionne, le travail est terminé.
33