Méthodologie de Concep
ption Objet
Page : 1
Chapitre 1 : Introduction
Page : 2
Logiciels et société
Aujourd’hui la société dépennd à tous les niveaux de systèmes
informatiques
Banque: comptes, guichhets auto., bourse, …
Bureau: courriel, Traiteement de texte, Tableur,…
Transport:
p véhicules,, rooutes,, horaires,, ...
Communication: téléphhone, vidéo, web, ...
Recherche:
R h h bioinforma
bi i f atique,
ti nanotechnologie,
t h l i ...
Divertissement: films, jeux,
j musique, ...
Page : 3
Les logiciels ?
Un logiciel est:
Du code exécutable
Les données associées au programme
Des documents: besoinns des usagers, design, guide
d’utilisateur, guide de programmation, etc.
Les logiciels jouent un rôle clé:
Produisent, gèrent et présenttent de l’information
Définition : Un logiciel est un ensemble d’entités
nécessaires au fonctionnemen
nt d’un processus de
traitement automatique de l’in
nformation.
Page : 4
Les logiciels ?
Spécificités du logiciel
Un produit immatériel, doont l’existence est
indépendante du support phyysique
Semblable à une œuvre d’art (roman, partition…)
Un objet technique fortem
ment contraint
Fonctionne ou ne fonctionnne pas
Structure complexe
Relève des modes de travvail du domaine technique
Un cycle de production diifférent
La reproduction pose peuu de problèmes, seule la
première
copie d’un logiciel a un coût
Production à l’unité
Page : 5
Problématique
Comment faire des logiiciels de qualité ? Génie
Logiciel (Software Enggineering)
Page : 6
Le génie logiciels ?
Le génie logiciel est un
u domaine des sciences de
l’ingénieur dont l’objet d’étude est la conception, la
fabrication, et la maintenancce des systèmes informatiques
complexes.
Une discipline qui comprennd:
Le processus de développement de logiciels
La méthodologie pouur l’analyse, la conception, le
développement, la vériffication et la maintenance de
logiciels
Des
D outils
til quii suppportent
t t le
l processus ett la
l
méthodologie
Page : 7
Le génie logiciels ?
Motivations
La « Crise du logiciel »
Mise en évidence au déébut des années 70, la crise se
caractérise par
l'absence de maîtrrise des projets, au niveau des
coûts et des délais,
la mauvaise qualitté des produits: les produits ne
répondent pas aux besoins
b définis et des erreurs
résiduelles persistent dans le produit final
un stock importannt de projets en attente faute
d'une gestion rigoureuuse
Page : 8
Le génie logiciels ?
Motivations
La « Crise du logiciel »
La fausse attaque de missiles (Novembre 1979): la
perception d une men
d'une nace imminente provenant dd'un
un pays
possédant l'arme nuclléaire »
Gigantesque pannee de téléphone au US un bug sur le
réseau ATT
L’explosion d’Ariaane 5 provoquée par une erreur de
conception de logiciell informatique (juin 1996)
1991 : Le Missilee Patriot: le radar l'a repéré une
seconde
d trop
t t d et n’a
tard ’ pas réussi
é i à intercepter
i t t les
l
missiles
Page : 9
Le génie logiciels ?
Motivations
La « Crise du logiciel »
l ’an 2000 (qui a fait dépeenser des millions de $ pour des
logiciels développés pour la plupart en pleine crise du logiciel)
qui a finalement été bien abbsorbée sans provoquer trop de
défaillances.
défaillances
Etude sur 8 380 projets (Staandish Group, 1995)
Succès : 16 %
Problématique : 53 % (budget ou délais non respectés,
défaut de fonctionnalités))
Echec : 31 % (abandonnné)
Le taux de succès décrroît avec la taille des projets et la
taille des entreprises.
Page : 10
Le génie logiciels ?
Motivations
Matériel et logiciel
Systèmes informatiques
80 % dde llogiciel
i i l
20 % de matériel
Depuis
p plusieurs
p années,, laa fabrication du matériel est
assurée par quelques fabricantts seulement
Le matériel est relativeement fiable
Le marche est standarddise
Les problèmes liés à l’informatique sont
essentiellement des probllèmes de Logiciel.
Page : 11
Le génie logiciels ?
Le Génie Logiciel
Conférence de l’OTAN à Garm
mish, Allemagne (1968)
L
L’informatique
informatique ne répond paas aux attentes qu
qu’elle
elle suscite
L’informatique coûte très chher et désorganise les entreprises
Introduction de l’expressioon « Génie Logiciel » (Software
Engineering)
Comment faire des logicielss de qualité ?
Qu’attend-on d’un logiciel ? Quels sont les critères de qualité
pour un logiciel ?
Page : 12
Le génie logiciels ?
Un processus de fabricatioon original
Le logiciel partage des proopriétés contradictoires avec
l’art, les technologies et lee Génie Civil
Les possibilités de réutiliseer les savoir‐faire des autres
technologies sont (très) lim
mitées
Compte tenu du cycle de production, il faut bien faire
tout de suite « La qualité
é du processus de fabrication
est garante de la qualité du produit »
Page : 13
Qualités d’un logiciell
Utilité
Adéquation entre :
Le besoin effectif de l’utilisateur
Les fonctions offertees par le logiciel
Solutions :
Emphase sur l’analyyse des besoins
Améliorer la commuunication (langage commun,
démarche participatiive)
Travailler avec rigueeur.
Page : 14
Qualités d’un logiciell
Utilisabilité
« Effectivité, efficacité ett satisfaction avec laquelle des
utilisateurs spécifiés
p accoomplissent
p des objectifs
j
spécifiés dans un environnnement particulier »
Facilité d’apprentissage : comprendre ce que l’on
peut faire avec le logicieel, et savoir comment le faire
Facilité d’utilisation : im
mportance de l’effort nécessaire
pour utiliser le logiciel à des fins données
Solutions :
Analyse du mode oppératoire des utilisateurs
Adapter l’ergonomiie des logiciels aux utilisateurs.
Page : 15
Qualités d’un logiciell
Fiabilité
Correction, justesse, confformité : le logiciel est conforme
à ses spécifications, less résultats sont ceux attendus
Robustesse, sûreté : le logiciel fonctionne
raisonnablement en touutes circonstances, rien de
catastrophique ne peut suurvenir, même en dehors des
conditions d’utilisation prévues
Disponibilité
Di ibilité (pourcentag
( t ge du
d temps
t pendant
d t lequel
l l le
l
système est utilisable)
Solutions :
Utiliser des méthodees formelles,
formelles des langages et des
méthodes de programm mation de haut niveau
Vérifications, tests
Page : 16
Qualités d’un logiciell
Performance
Les logiciels doivent sattisfaire aux contraintes de temps
d exécution
d’exécution
Solutions :
Logiciels plus simpples
Veiller à la complexxité des algorithmes
Machines plus perfformantes
Page : 17
Le génie logiciels ?
Portabilité
Un même logiciel doit poouvoir fonctionner sur plusieurs
machines et plusieurs platteformes (systèmes d'exploitation)
Solutions :
Rendre le logiciel inddépendant de son environnement
d’exécution
Machines virtuelles
Page : 18
Le génie logiciels ?
Ré tili ti ((ré-utilisabilit
Réutilisation é tili bilitté)
On peut espérer des gains considéraables car dans la plupart des logiciels :
80 % du code est du « tout vennant » qu’on retrouve à peu près partout
20 % du code est spécifique
Solutions :
Abstraction, généricité
Construire un logiciel à paartir de composants prêts à ll’emploi
emploi
(Développement par composantss)
« Design Patterns » (les patronns de conception).
Page : 19
Le génie logiciels ?
Facilité de maintenance
Objectifs
Réduire la quantité de maintenannce corrective (zéro défaut)
Rendre moins coûteuses les autrees maintenances
Enjeux
Les coûts de maintenance se jouent très tôt dans le processus d’élaboration du
logiciel
Au fur et à mesure de la dégradaation de la structure,
structure la maintenance devient de
plus en plus difficile
Solutions :
Ré-utilisabilité, modularité
Vérifier, tester
Structures de données complexes et algorithmes simples
Anticiper les changements à vennir
Page : 20
Le génie logiciels ?
Facilité de maintenancee
Un logiciel ne s’use pas. Pourtant, la maintenance absorbe une très grosse partie
des efforts de développement.
Page : 21
Maintenance d’un loggiciel
Maintenance correctivee
Corriger les erreurs : défauts d’utilité, d’utilisabilité, de fiabilité…
Identifier la défaillance, lee fonctionnement
Localiser la partie du codee responsable
Corriger et estimer l’impaact d’une modification
Attention
La
L plupart
l t des
d corrections
ti s introduisent
i t d i t ded nouvelles
ll erreurs
Les coûts de correction auugmentent exponentiellement avec le délai
de détection
La maintenance corrective donnne lieu à de nouvelles livraisons (release)
Page : 22
Maintenance d’un loggiciel
Maintenance adaptativee
Ajuster le logiciel pour qu’il conntinue à remplir son rôle compte tenu du
l’évolution des
Environnements d’exécutioon
Fonctions à satisfaire
Conditions d’utilisation
Ex : changement de SGBD, de machine,
m de systèmes d'exploitation, de
taux de TVA, an 2000, …
Page : 23
Maintenance d’un loggiciel
Maintenance
M i t perfective,
f ti , d’extension
d’ t i
Accroître/améliorer les possibilittés du logiciel
Ex : les services offerts, l’interfaace utilisateur, les performances…
Donne lieu à de nouvelles versioons.
Page : 24