Académique Documents
Professionnel Documents
Culture Documents
BENTACHFINE Ilyas
E-mail : bentachfine.ilyas.profc@emsi-edu.ma
MATÉRIEL ET LOGICIEL
• Systèmes informatiques
- 80 % de logiciel
- 20 % de matériel
2
LA CRISE DU LOGICIEL
• Étude sur 8380 projets (Standish Group, 1995) :
- Succès : 16 %
- Problématique : 53 %
- Dépassement du budget : Difficulté de maîtrise des coûts
(200 millions de dollars pour fabriquer OS-360)
-défaut de fonctionnalités : Perte de la première sonde Mariner
vers Venus suite à une erreur de programmation dans un
programme Fortran
- délais non respectés : 2 ans de retard pour les premiers
compilateurs PL/1, Algol 68, ADA
- Échec : 31 % (abandonné)
-Abandon du projet d’informatisation de la bourse
londonienne après 4 ans de travail et 100 M£ de pertes
3
LA CRISE DU LOGICIEL
• Rapport au congrès Américain sur les logiciels
•Génie Logiciel
(Software Engineering) :
- Comment faire des
logiciels de qualité ?
-Qu'attend-on d'un
logiciel ?
-Quels sont les critères de
qualité ?
5
CRITÈRES DE QUALITÉ D'UN
LOGICIEL
• Utilité :
- Adéquation entre le logiciel et les besoins des utilisateurs
- Emphase sur l'analyse des besoins, Améliorer la
communication (langage commun, démarche
participative) , Travailler avec rigueur
• Utilisabilité :
-Facilité d'apprentissage et d’utilisation : Comprendre ce
que l'on peut faire avec le logiciel, et savoir comment le
faire
- Analyse du mode opératoire des utilisateurs
- Adapter l'ergonomie des logiciels aux utilisateurs
6
CRITÈRES DE QUALITÉ D'UN
LOGICIEL
• Fiabilité :
-Logiciel est conforme à ses spécifications (les résultats
sont ceux attendus) et fonctionne raisonnablement en
toutes circonstances.
-Utiliser des méthodes formelles, des langages et des
méthodes de programmation de haut niveau
- Vérifications, tests
- Progiciels
7
CRITÈRES DE QUALITÉ D'UN
LOGICIEL
• Interopérabilité :
- Interactions en synergie avec d'autres logiciels
- Découplage données/traitements (SGBD),
-Standardisation des formats de fichiers (XML...) et des
protocoles de communication (CORBA...),
• Performance
- Les logiciels doivent satisfaire aux contraintes de temps
d'exécution
- Logiciels plus simples, veiller à la complexité des
algorithmes, machines plus performantes
8
CRITÈRES DE QUALITÉ D'UN
LOGICIEL
• Portabilité
-Un même logiciel doit pouvoir fonctionner sur plusieurs
machines
-Rendre le logiciel indépendant de son environnement
d'exécution
• Réutilisabilité
-On peut espérer des gains considérables car dans la
plupart des logiciels : 80 % du code se retrouve à peu près
partout et 20 % du code est spécifique
-Abstraction, généricité, construire un logiciel à partir
de composants prêts à l'emploi, Design Patterns
9
CRITÈRES DE QUALITÉ D'UN
LOGICIEL
• Facilité de maintenance :
- Un logiciel ne s'use pas
- La maintenance absorbe une très grosse partie des efforts
de développement
10
CRITÈRES DE QUALITÉ D'UN
LOGICIEL
• Maintenance corrective
-Corriger les erreurs : défauts d'utilité, d'utilisabilité, de
fiabilité
- Identifier la défaillance, le fonctionnement
- Localiser la partie du code responsable
- Corriger et estimer l'impact d'une modification
• Maintenance adaptative
- Ajuster le logiciel pour qu'il continue a remplir son rôle
compte tenu du l‘évolution des :
- Environnements d'exécution,
- Fonctions à satisfaire, Conditions d'utilisation,..
- Ex : changement de SGBD, de machine, de TVA, …
11
CRITÈRES DE QUALITÉ D'UN
LOGICIEL
12
CYCLE DE VIE DU LOGICIEL
13
CYCLE DE VIE DU LOGICIEL
14
CYCLE DE VIE DU LOGICIEL
15
CYCLE DE VIE DU LOGICIEL
- 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 :
§ déterminer les algorithmes pour les différentes parties
du système
16
CYCLE DE VIE DU LOGICIEL
17
CYCLE DE VIE DU LOGICIEL
18
CYCLE DE VIE DU LOGICIEL
19
CYCLE DE VIE DU LOGICIEL
20
DOCUMENTS PRODUITS DANS
LE CYCLE DE VIE
• Cahier des charges : Description initiale des
fonctionnalités désirées, généralement écrite par
l'utilisateur
21
DOCUMENTS PRODUITS DANS
LE CYCLE DE VIE
• Plan d'assurance qualité : Décrit les activités mises en
œuvre pour garantir la qualité du logiciel
22
DOCUMENTS PRODUITS DANS
LE CYCLE DE VIE
Document Phase de production
Manuel utilisateur final Implémentation
Conception architecturale Conception
Plan d'assurance qualité Planification
Code source implémentation
Cahier des charges Faisabilité
Manuel utilisateur préliminaire Spécification
Conception détaillée Conception
Estimation des coûts Planification
Calendrier du projet Planification
Rapport des tests Tests
Documentation Implémentation
23
MODÈLES DE CYCLE DE VIE
• Modèles linéaires
- cascade
- modèle en V
- ...
24
MODÈLES DE CYCLE DE VIE
• Modèle Cascade : le développement logiciel est considéré
comme une succession d’étapes réalisées de façon
strictement séquentielle
25
MODÈLES DE CYCLE DE VIE
• Modèle Cascade
26
MODÈLES DE CYCLE DE VIE
• Modèle V
- Force la documentation : une phase ne peut se terminer
avant qu’un document soit validé
- Les tests sont définis à l’issue de chaque phase
27
MODÈLES DE CYCLE DE VIE
• Modèle V
- Simple et facile à comprendre
- Populaire et utilisé dans d’autres disciplines
- Les progrès sont tangibles (pour l’équipe de
développement)
- Conditions d’utilisation : les exigences sont bien connues
et non sujettes à modification
§ Fonctionnalités / Attentes utilisateurs
§ Technologies utilisées
28
MODÈLES DE CYCLE DE VIE
• Prototypage
- Construire un prototype jetable pour mieux comprendre
les points durs (exigences, technologies)
29
MODÈLES DE CYCLE DE VIE
• Prototypage
- Version d'essai du logiciel
- Tester les différents concepts et exigences
- Montrer aux clients les fonctions que l'on veut mettre en œuvre
- Impliquer l’utilisateur et éclaircir les zones troubles
- Les efforts consacrés au développement d'un prototype sont le
plus souvent récompensés par ceux gagnés à ne pas développer
de fonctions inutiles
- Le développement suit souvent un cycle de vie linéaire, lorsque
le client donne son accord
30
MODÈLES DE CYCLE DE VIE
• Modèle incrémental
- Concevoir et livrer au client un
sous-ensemble minimal et
fonctionnel du système
31
MODÈLES DE CYCLE DE VIE
• Modèle incrémental
- Diviser le projet en incréments
-Un incrément = une sous partie fonctionnelle cohérente
du produit final
- Chaque incrément ajoute de nouvelles fonctions
- Chaque incrément est testé comme un produit final
- Les incréments sont définis à priori (classification des
exigences – par le client si possible)
- Meilleure intégration du client dans la boucle, produit
conforme à ses attentes
32
MODÈLES DE CYCLE DE VIE
• Modèle en spirale (Boehm, 1988)
- Le cycle de vie est représenté à l’aide d’une spirale
- Chaque boucle représente une phase du développement
-La boucle la plus interne traite les premières phases
(faisabilité). La plus externe traite de la livraison
33
MODÈLES DE CYCLE DE VIE
34
MODÉLISATION
• un modèle est une abstraction permettant de
mieux comprendre un objet complexe (bâtiment,
économie, atmosphère, cellule, logiciel, …)
35
MODÉLISATION
• Un modèle est une représentation abstraite de la
réalité qui exclut certains détails du monde réel
- Il permet de réduire la complexité d'un phénomène en
éliminant les détails qui n'influencent pas son
comportement de manière significative
36
MODÉLISATION
• Modélisation des processus logiciels
- Les modèles en V, spirale... sont des archétypes de
modèles : On peut les adapter à des projets particuliers
-On peut vouloir représenter le processus de
développement (et ses parties) de manière plus fine :
limiter les risques d'ambiguïté
37
MODÉLISATION
• Modélisation des processus logiciels
- Un modèle de processus logiciels décrit
§ Les tâches
§ Les artefacts (fichiers, documents, données, ...)
§ Les auteurs
§ Les décisions (facultatif)
- Règles à observer
§ Deux tâches doivent être séparées par un artefact
§ Une tâche ne peut être exécutée tant que ses artefacts d'entrée
n'existent pas
§ Il doit y avoir au moins une tâche de début et une de fin
§ Il doit y avoir un trajet depuis chaque tâche jusqu‘à la tâche de
fin
38
MODÉLISATION
• Modélisation des processus logiciels
Exemple 1 : Modèle pour la consommation de tartines
39
MODÉLISATION
• Modélisation en informatique
- la construction d'un système d'information, d'un réseau,
d'un logiciel complexe, de taille importante et par de
nombreuses personnes oblige à modéliser
40
MODÉLISATION
• Modélisation en ingénierie logicielle
41
MODÉLISATION
• Modélisation par décomposition fonctionnelle
42
MODÉLISATION
• Modélisation orientée objets
43