Académique Documents
Professionnel Documents
Culture Documents
1
le logiciel est facile à reproduire
tout le coût se trouve dans le développement
2
le logiciel ne s’use pas, mais il vieillit
Evolution du matériel
3
sur mesure : pour un client spécifique
4
système d’information et d’aide à la décision
logiciel temps-réel
logiciel embarqué
logiciel distribué
5
Le GL est apparu dans les années 70 pour répondre à la
‘crise du logiciel’
Cettecrise est apparue lorsque l’on a pris conscience que le
coût du logiciel dépassait le coût du matériel.
6
Délais et exigences non satisfait
OS 360 d’IBM
en retard, dépassement mémoire et prix, erreurs
1 an de retard
difficultés importantes
7
abandon
bourse de Londres (projet d’informatisation)
8
L'absence d’un cadre méthodologique standard de développement. Les méthodes de
développement de logiciel existantes, si elles sont utilisées, n'étaient pas suffisamment
bonnes et adaptées.
9
L'absence d'outils de gestion du développement. Les méthodes
d'estimation des coûts et des délais sont inexistantes, les
techniques de planification et de suivi de projets n'étaient pas
utilisées.
10
Naissance d’une nouvelle discipline
11
Objectif
12
Le Génie Logiciel est donc l'art de spécifier, de
concevoir, de réaliser et de faire évoluer, avec des
moyens et dans des délais raisonnables, des
programmes, des documentations et des procédures de
qualité en vue d'utiliser un ordinateur pour résoudre certains
problèmes définis.
13
Facteurs de qualité:
Correction:
La correction est la capacité que possède un produit logiciel de
mener à bien sa tâche, telle qu’elle a été définie par sa
spécification
Robustesse:
La robustesse est la capacité qu’offrent des systèmes logiciels à
réagir de manière appropriée à la présence de conditions
anormales.
Extensibilité:
L’extensibilité est la facilité d’adaptation des produits logiciels
aux changements de Spécifications
14
Réutilisabilité:
La réutilisabilité est la capacité des éléments logiciels à servir à
la construction de plusieurs applications différentes
Compatibilité:
La compatibilité est la facilité avec laquelle des éléments
logiciels peuvent être combinés à d’autres.
Efficacité:
L’efficacité est la capacité d’un système logiciel à utiliser le
minimum de ressources matérielles, que ce soit le temps
machine, l’espace occupé en mémoire externe et interne, ou la
bande passante des moyens de communication.
15
Portabilité:
La portabilité est la facilité avec laquelle des produits logiciels
peuvent être transférés d’un environnement logiciel ou
matériel à l’autre.
Facilité d’utilisation:
La facilité d’utilisation est la facilité avec laquelle des personnes
présentant des formations et des compétences différentes peuvent
apprendre à utiliser les produits logiciels et s’en servir pour
résoudre des problèmes. Elle recouvre également la facilité
d’installation, d’opération et de contrôle.
Ponctualité:
La ponctualité est la capacité d’un système logiciel à être livré au
moment désiré par ses utilisateurs, ou avant.
16
17
Qualité externe:
complétude fonctionnelle
ergonomie / convivialité
facile d’utilisation
apprentissage aisé
fiabilité / robustesse
réutilisabilité
traçabilité / compréhension
19
efficacité / performance
portabilité
20
la Rigueur: c'est un principe qui constitue le chemin vers la formalité. Il s’appuie sur des
notations, des modèles, des schémas et des lois mathématiques.
la Séparation : c’est une règle de bons sens qui consiste à considérer séparément
différents aspects d’un problème afin d’en maîtriser la complexité. C’est un aspect de la
stratégie générale du « diviser pour régner ». Elle prend une multitude de formes :
21
Généricité : c'est le principe qui permet de ramener la résolution d'un problème
à celle d'un problème plus général. Il s'agit de regrouper les entités semblables
(structure ou comportement) par des solutions paramétrables ou adaptables. C'est
le cas des applications paramétrables.
22
Ensemble d'activités successives, organisées en vue de la
production d'un logiciel.
En pratique:
23
Activités du développement logiciel
24
Analyse des besoin:
25
Spécifications
Objectifs
26
Conception:
28
Validation et vérification
Objectifs :
•Validation : assurer que les besoins du client sont satisfaits (au niveau de la
spécification, du produit fini...)
29
Maintenance:
Types de maintenance:
30
Faisabilité.
Spécifications.
Organisation du projet:
déterminer la manière dont développer le logiciel.
analyse des couts: établir une estimation du prix du projet.
planification: établir un calendrier pour le développement.
31
Tests alpha: faire tester le logiciel par le client sur le site de
développement.
Tests beta :faire tester le logiciel par le client sur son propre site
Tests d’acceptation : faire tester le produit par l’acheteur pour savoir
s’il le satisfait.
Tests de régression : enregistrer les résultats des tests et les comparer
avec ceux des anciennes versions pour déterminer si la nouvelle n’a pas
apporté de dégradation des performances.
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.
32
Maintenance:
Mettre à jour et améliorer le logiciel pour assurer sa pérennité .
33
Cahier des charges:
Description initiale des fonctionnalités désirées, généralement écrite par
l’utilisateur.
Spécifications:
Décrit précisément les conditions que doit remplir le logiciel.
Modèle objet: indique les classes et objets principaux.
Scénarios des cas d’utilisation : indique les différents enchainements possible du
point de vue de l’utilisateur.
Calendrier du projet:
Décrit l’ordre des différentes taches ainsi que les délais et les ressources qu’elles
demandent.
Plan de test du logiciel:
Décrit les procédures de test appliquées au logiciel pour assurer son bon
fonctionnement.
Test d’acceptation : tests choisis par le client pour déterminer s’il peut accepter le
logiciel.
34
Conception du logiciel:
Décrit la structure du logiciel.
Conception architecturale: décrit la structure de haut niveau .
Conception détaillée : décrit la conception des modules de bas niveau et des objets
Plan d’assurances qualité du logiciel:
Décrit les activités mises en œuvre pour garantir la qualité du logiciel.
Manuel utilisateur:
Mode d’emploi pour le logiciel dans sa version finale.
Code source:
Code complet du produit fini
35
modèle en cascade (fin des années 1960)
36
Modèle en cascade
37
Modèle en cascade:
remarque :
38
Modèle en V
39
Modèle en V
il sert à montrer aux clients les fonctionnements que l’on se propose de mettre
en œuvre.
41
Le modèle incrémental:
42
Modèle en spirale
43
principe : développement itératif (prototypes)
Indiquez la ou les phases du cycle de vie d’un logiciel où est produit chacun des
documents suivants: manuel utilisateur final, conception architecturale, plan d’assurance
qualité,spécifications des modules,code source,cahier de charges,plan de test,manuel
utilisateur préliminaire,conception détaillée,estimation des couts,calendrier du
projet,rapport des tests,documentation.
46