Vous êtes sur la page 1sur 27

Génie Logiciel

GL/S4 & SMI/S6


Génie Logiciel
Prof. : M. BENADDY
Contenu


Génie logiciel

Cycle de vie d’un logiciel

Gestion de projet logiciel

Planification de projets

Spécifications

Conception

Implémentation

Tests logiciels
Prof. M. BENADDY Génie Logiciel I 2
Déroulement


20 heures de cours.

20 heures de TD/TP.

Prof. M. BENADDY Génie Logiciel I 3


Evaluation


Note des TPs

Note de l'examen final

Prof. M. BENADDY Génie Logiciel I 4


Logiciels et société

Aujourd’hui la société dépend à tous les niveaux
de systèmes informatiques

Banque: comptes, guichets auto., bourse, …

Bureau: courriel, Traitement de texte, Tableur,


Transport: véhicules, routes, horaires, ...

Communication: téléphone, vidéo, web, ...

Recherche: bioinformatique,
nanotechnologie, ...

Divertissement: films, jeux, musique, ...
Prof. M. BENADDY Génie Logiciel I 5
Les logiciels ?

Un logiciel est:

Du code exécutable

Les données associées au programme

Des documents: besoins des usagers, design,
guide d’utilisateur, guide de programmation, etc.

Les logiciels jouent un rôle clé:

Produisent, gèrent et présentent de l’information

Définition : Un logiciel est un ensemble d’entités
nécessaires au fonctionnement d’un processus de
traitement automatique de l’information.
Prof. M. BENADDY Génie Logiciel I 6
Les logiciels ?

Spécificités du logiciel

Un produit immatériel, dont l’existence est indépendante du
support physique

Semblable à une œuvre d’art (roman, partition…)

Un objet technique fortement contraint

Fonctionne ou ne fonctionne pas

Structure complexe

Relève des modes de travail du domaine technique

Un cycle de production différent

La reproduction pose peu de problèmes, seule la première
copie d’un logiciel a un coût

Production à l’unité

Semblable au Génie Civil (ponts, routes…).
Prof. M. BENADDY Génie Logiciel I 7
Le génie logiciels ?

Le génie logiciel est un domaine des sciences de
l’ingénieur dont l’objet d’étude est la conception,
la fabrication, et la maintenance des systèmes
informatiques complexes.

Une discipline qui comprend:

Le processus de développement de logiciels

La méthodologie pour l’analyse, la conception,
le développement, la vérification et la
maintenance de logiciels

Des outils qui supportent le processus et la
méthodologie
Prof. M. BENADDY Génie Logiciel I 8
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îtrise des projets, au niveau des coûts et
des délais,

la mauvaise qualité des produits: les produits ne répondent
pas aux besoins définis et des erreurs résiduelles
persistent dans le produit final

un stock important de projets en attente faute d'une
gestion rigoureuse

Quelques exemples de logiciels défaillants :

La facture de 0DH...(pas juste)
Prof. M. BENADDY Génie Logiciel I 9
Le génie logiciels ?

Motivations 
Mars Pathfinder (1997)

La « Crise du logiciel » 
Concurrence

Mars Spirit Rover (2003)

La fausse attaque de 
Manque de mémoire
missiles (Novembre 1979) 
Inversion dans le système de bord
du F16

La panne AT&T (1990) 
L’avion se serait retourné à

L’échec d’Ariane 5 (1996) chaque fois qu’il traversait

La poste (1998) l’équateur

Panne de courant en Amérique du

Les anti-missiles Patriotes nord (2003)
(Guerre du Golfe 1991) 
Problème de concurrence

Samy / MySpace XSS (2005)

Les sondes perdues 
Debian / OpenSSL (2008)

vers Vénus( années 60)

vers Mars (99)
Prof. M. BENADDY Génie Logiciel I 10
Plus d'info : http://www5.in.tum.de/~huckle/bugse.html
Le génie logiciels ?


Motivations

La « Crise du logiciel »

Et les erreurs que l'on ignore : logiciels de surveillance médicale
défaillants

....et l ’an 2000 (qui a fait dépenser des millions de $ pour des
logiciels développés pour la plupart en pleine crise du logiciel) qui
a finalement été bien absorbée sans provoquer trop de
défaillances.

Etude sur 8 380 projets (Standish Group, 1995)

Succès : 16 %

Problématique : 53 % (budget ou délais non respectés, défaut
de fonctionnalités)

Echec : 31 % (abandonné)

Le taux de succès décroît avec la taille des projets et la taille
des entreprises.
Prof. M. BENADDY Génie Logiciel I 11
Le génie logiciels ?


Motivations

Matériel et logiciel

Systèmes informatiques

80 % de logiciel

20 % de matériel

Depuis plusieurs années, la fabrication du matériel
est assurée par quelques fabricants seulement

Le matériel est relativement fiable

Le marche est standardise

Les problèmes liés à l’informatique sont
essentiellement des problèmes de Logiciel.
Prof. M. BENADDY Génie Logiciel I 12
Le génie logiciels ?


Le Génie Logiciel

Conférence de l’OTAN à Garmish, Allemagne (1968)

L’informatique ne répond pas aux attentes qu’elle
suscite

L’informatique coûte très cher et désorganise les
entreprises ou organisations

Introduction de l’expression « Génie Logiciel »
(Software Engineering)

Comment faire des logiciels de qualité ?

Qu’attend-on d’un logiciel ? Quels sont les critères
de qualité pour un logiciel ?
Prof. M. BENADDY Génie Logiciel I 13
Le génie logiciels ?


Un processus de fabrication original

Le logiciel partage des propriétés
contradictoires avec l’art, les technologies et
le Génie Civil

Les possibilités de réutiliser les savoir-faire
des autres technologies sont (très) limité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 »
Prof. M. BENADDY Génie Logiciel I 14
Qualités d’un logiciel


Utilité

Adéquation entre :

Le besoin effectif de l’utilisateur

Les fonctions offertes par le logiciel

Solutions :

Emphase sur l’analyse des besoins

Améliorer la communication (langage commun,
démarche participative)

Travailler avec rigueur.
Prof. M. BENADDY Génie Logiciel I 15
Qualités d’un logiciel


Utilisabilité

« Effectivité, efficacité et satisfaction avec laquelle des
utilisateurs spécifiés accomplissent des objectifs
spécifiés dans un environnement particulier »

Facilité d’apprentissage : comprendre ce que l’on
peut faire avec le logiciel, et savoir comment le faire

Facilité d’utilisation : importance de l’effort nécessaire
pour utiliser le logiciel à des fins données

Solutions :

Analyse du mode opératoire des utilisateurs

Adapter l’ergonomie des logiciels aux utilisateurs.
Prof. M. BENADDY Génie Logiciel I 16
Qualités d’un logiciel


Fiabilité

Correction, justesse, conformité : le logiciel est conforme à ses spécifications,
les résultats sont ceux attendus

Robustesse, sûreté : le logiciel fonctionne raisonnablement en toutes
circonstances, rien de catastrophique ne peut survenir, même en dehors des
conditions d’utilisation prévues

Mesures :

MTBF : Mean Time Between Failures

Disponibilité (pourcentage du temps pendant lequel le système est utilisable)
et Taux d’erreur (nombre d’erreurs par KLOC)

Solutions :

Utiliser des méthodes formelles, des langages et des méthodes de
programmation de haut niveau

Vérifications, tests

Progiciels.
Prof. M. BENADDY Génie Logiciel I 17
Qualités d’un logiciel


Interopérabilité, couplabilité

Un logiciel doit pouvoir interagir en synergie avec
d’autres logiciels

Solutions :

Bases de données (découplage données/traitements)

« Externaliser » certaines fonctions en utilisant des «
Middleware » avec une API (Application Program
Interface) bien définie.

Standardisation des formats de fichiers (XML...) et
des protocoles de communication (CORBA…)

Les ERP (Entreprise Resources Planning).
Prof. M. BENADDY Génie Logiciel I 18
Qualités d’un logiciel


Performance

Les logiciels doivent satisfaire aux contraintes
de temps d’exécution

Solutions :

Logiciels plus simples

Veiller à la complexité des algorithmes

Machines plus performantes

Prof. M. BENADDY Génie Logiciel I 19


Qualités d’un logiciel


Portabilité

Un même logiciel doit pouvoir fonctionner sur
plusieurs machines et plusieurs plateformes
(systèmes d'exploitation)

Solutions :

Rendre le logiciel indépendant de son
environnement d’exécution

Machines virtuelles

Prof. M. BENADDY Génie Logiciel I 20


Qualités d’un logiciel


Réutilisation (ré-utilisabilité)

On peut espérer des gains considérables car dans la
plupart des logiciels :

80 % du code est du « tout venant » qu’on retrouve à
peu près partout

20 % du code est spécifique

Solutions :

Abstraction, généricité

Construire un logiciel à partir de composants prêts à
l’emploi (Développement par composants)

« Design Patterns » (les patrons de conception).
Prof. M. BENADDY Génie Logiciel I 21
Qualités d’un logiciel


Facilité de maintenance

Objectifs

Réduire la quantité de maintenance corrective (zéro défaut)

Rendre moins coûteuses les autres 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égradation de la 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 à venir
Prof. M. BENADDY Génie Logiciel I 22
Qualités d’un logiciel


Facilité de maintenance

Un logiciel ne s’use pas

Pourtant, la maintenance absorbe une très
grosse partie des efforts de développement.

Prof. M. BENADDY Génie Logiciel I 23


Maintenance 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

Attention

La plupart des corrections introduisent de nouvelles erreurs

Les coûts de correction augmentent exponentiellement
avec le délai de détection

La maintenance corrective donne lieu à de nouvelles
livraisons (release)
Prof. M. BENADDY Génie Logiciel I 24
Maintenance d’un logiciel


Maintenance adaptative

Ajuster le logiciel pour qu’il continue à 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
systèmes d'exploitation, de taux de TVA, an
2000, euro…

Prof. M. BENADDY Génie Logiciel I 25


Maintenance d’un logiciel


Maintenance perfective, d’extension

Accroître/améliorer les possibilités du logiciel

Ex : les services offerts, l’interface utilisateur,
les performances…

Donne lieu à de nouvelles versions.

Prof. M. BENADDY Génie Logiciel I 26


Principes utilisés dans le Génie Logiciel


Généralisation : regroupement d’un ensemble de fonctionnalités
semblables en une fonctionnalité paramétrable (généricité, héritage)

Structuration : façon de décomposer un logiciel (utilisation d’une
méthode bottom-up ou top-down)

Abstraction : mécanisme qui permet de présenter un contexte en
exprimant les éléments pertinents et en omettant ceux qui ne le
sont pas

Modularité : décomposition d’un logiciel en composants (modules)
discrets

Documentation : gestion des documents incluant leur identification,
acquisition, production, stockage et distribution

Vérification : détermination du respect des spécifications établies
sur la base des besoins identifiés dans la phase précédente du
cycle de vie.
Prof. M. BENADDY Génie Logiciel I 27

Vous aimerez peut-être aussi