Vous êtes sur la page 1sur 34

I.

Introduction au GL
Objectifs

 Déchiffrer les fondements de génie logiciel :


 Présenter les causes et les symptômes de la crise
du logiciel
 Définir « Logiciel » et « Génie Logiciel »
 Connaitre la nature, les intervenants, les
principes et l’intérêt de génie logiciel
 Énumérer les facteurs de qualité de logiciel

2
Plan

1. Le Logiciel

2. La crise du logiciel

3. Le Génie Logiciel

4. Facteurs de qualité de logiciel

3
1. Le Logiciel – Définition

 Un logiciel est un ensemble de programmes


permettant à un système informatique d’assurer
une fonction en particulier
 C’est un produit sous forme :
 Exécutable : Séquence d’instructions exécutables par une
machine
 Non exécutable : Documentation (développement,
installation,…)
 Des données
 Catégories des logiciels :
 Logiciels génériques : systèmes autonomes vendus au grand
public
 Logiciels sur mesure : systèmes autonomes issues d’un
développement spécifiques pour satisfaire les besoins d’un
client
4
1. Le Logiciel – Classification

 La classification du logiciel dépend :


 du type de l’information traitée : Image, son, texte ….
 de la disponibilité des informations et leur traitement dans
le temps

 Exemple de classification:
 Logiciels systèmes
 Logiciels temps réels
 Logiciels de gestion
 Logiciels scientifiques et logiciels d’ingénierie
 Logiciels embarqués (aéronautique, train, auto ...)
 Logiciels d’applications Web
 Logiciels d’intelligence artificielle
 … etc.
5
1. Le Logiciel – Contraintes

 Interfaces conversationnelles
 Documentation
 Installation automatique
 Gestion des versions
 Compatibilité ascendante
 « Robustesse »
 Multilinguisme
 Gestion des « clients »
 … etc.

6
1. Le Logiciel – Développement

Caractéristiques souhaitées :

 Adéquation avec les besoins


 Maintenance aisée
 Bon marché
 Rapidement développé

Comment ?

 Usage d’outils et de méthodes


7
2. La crise du logiciel

Problèmes de développement de logiciels :


 Logiciels non fiables
 Difficulté de réaliser, dans les délais prévus
avec les coûts estimés, des logiciels respectant
leurs cahiers des charges

8
2. La crise du logiciel

 On maîtrise mal le développement des logiciels


 90% des projets informatiques sortent en retard
[Aberdeen]
 30% des projets informatiques sont annulés
avant la mise en production [Aberdeen]
 50% des projets informatiques ne répondent pas
au cahier des charges business [Gartner]
 50% des projets informatiques dépassent le
budget prévu [Gartner]
 Seulement 16% des projets informatiques
aboutissent [The Standish Group International
2002] 9
2. La crise du logiciel

 De nombreux projets informatiques


 n'ont jamais abouti : Système de réservation de
places de United Airlines ; Système d'exploitation
Rhapsody ; Avis Europe abandonne le
déploiement de l'ERP Peoplesoft mené par Atos :
45M€ (LMI octobre 2004)
 n'ont pas réalisé les fonctionnalités attendues :
Windows 3 ; Windows ME grand public
 ont été des catastrophes économiques : Socrate ;
Informatisation des caisses de sécurité sociale,
carte Vitale ; Milieu 1999, le système
d'information de la Bibliothèque Nationale de
France avait pris 22 mois de retard, le budget
10
initial (280MF) était dépassé de 40%
2. La crise du logiciel

 Le matériel informatique n’a cessé de faire, depuis


toujours, des progrès très rapides
 Le logiciel a traversé une véritable crise, décelée en
1969 et qui dure encore
 De 1965 à 1995 (30 ans), le volume de chaque
logiciel a été multiplié par 100, alors que la
productivité des développeurs n'augmentait que
d'un facteur 3
 En 1995, le développement de Microsoft Exchange
Server a coûté 1000 années x hommes pour 7
millions de lignes. La productivité a été de 30 lignes
par homme par jour
11
2. La crise du logiciel

 En 1999, le développement de Windows 2000 a rassemblé


5000 ingénieurs pendant 3 ans pour réécrire 70% des 35 M ISL
de NT. Productivité = 4,8 lignes par homme jour. Cependant
un hacker seul, avec des bons outils, sans se préoccuper du
cahier des charges ou de la relation client, peut écrire 3000
lignes dans la même journée
 La crise du logiciel peut se percevoir à travers ses
symptômes :
 Inadéquation : Produit ne satisfait pas les besoins
exprimés
 Délais : Délais de livraison rarement respectés
 Coûts : Dépassement du budget prévu
 Fiabilité : Logiciels souvent en panne
 Maintenance : Complexe et coûteuse
 Sciences et technologies immatures 12
3. Le génie logiciel – Apparition

 Anglais : software engineering


 Né en Europe à Garmish-Partenkirchen
(Allemagne)
 Conférence en Octobre 1968 sous le parrainage
de l’OTAN
 Application des sciences et mathématiques pour
rendre utile à l’Homme, un système
informatique doté de procédures, de règles et
de la documentation associée

13
3. Le génie logiciel – Définition

 Domaine qui s’intéresse à la création et à la


maintenance des logiciels, en appliquant les
techniques et les pratiques de l’informatique, du
génie, de la gestion de projet …

14
3. Le génie logiciel – Définition

 « L’application au développement, à la mise en


oeuvre et à la maintenance du logiciel d’une
approche systématique, disciplinée et mesurable ;
en fait l’application des méthodes de l’ingénieur au
logiciel» [IEEE] (Institute of Electrical and
Electronical Engineers),

 Ensemble des activités de conception et de mise en


œuvre des produits et des procédures tendant à
rationaliser la production du logiciel et son suivi.
[Jacques BUFFE]
15
3. Le génie logiciel – Définition

 « Application de méthodes scientifiques au


développement de théories, méthodes, techniques,
langages et outils favorisant la production de
logiciels de qualité. » [Brès94]
 Science de l'ingénieur-informaticien spécialiste du
logiciel.
 « L'art » de produire de bons logiciels, au meilleur
rapport qualité/prix.

16
3. Le génie logiciel – Définition

Grady Booch « créer un logiciel, c’est être un


scientifique et un artiste »

Edgar Morin « le tout est plus que la somme des


parties »

17
3. Le génie logiciel – Nature

 Mathématiques

 Science

 Discipline de génie

 Produit manufacturé

 Gestion de projet

 Art 18
3. Le génie logiciel – 4P

 Les 4 P du GL :

 Personnel : Qui produit le logiciel ?

 Processus : Comment le logiciel est-il produit ?

 Projet : La production réelle du projet

 Produit : Tous les objets fabriqués pendant la


production (Code source, exécutables,
documentation, …etc.)
19
3. Le génie logiciel – Intervenants

 Les parties prenantes dans le GL :

 Utilisateurs : Ceux qui se servent du logiciel

 Clients : Ceux qui paient le logiciel

 Développeurs : Ceux qui conçoivent et réalisent


le logiciel

 Gestionnaires : Ceux qui supervisent la


production du logiciel
20
3. Le génie logiciel – Principes

 Rigueur même si la production de logiciel est une activité


créative
 Séparation des problèmes, considérer séparément différents
aspects d’un problème afin d’en maîtriser la complexité « Diviser
pour régner » [Descartes]
 Modularité : Forte cohésion et faible couplage
 Abstraction : Considérer les aspects importants
 Anticipation du changement : prévoir, faciliter et gérer les
évolutions inévitables
 Généricité : Adopter des solutions génériques (paramétrables)
 Construction incrémentale : Réaliser un noyau des fonctions
essentielles ensuite procéder par ajout progressif des aspects
secondaires
21
3. Le génie logiciel – Intérêt

 Optimiser le coût de production du logiciel.


 Une enquête effectuée aux USA en 1986 auprès de
55 entreprises révèle que 53% du budget total d'un
logiciel est affecté à la maintenance. Ce coût est
réparti comme suit :
 34% maintenance évolutive : modification des
spécifications initiales ;
 10% maintenance adaptative : nouvel environnement,
nouveaux utilisateurs ;
 17% maintenance corrective : correction des bogues ;
 16% maintenance perfective : améliorer les performances
sans changer les spécifications ;
 19% assistance des utilisateurs, contrôle qualité, organisation
/suivi
 4% divers.
22
3. Le génie logiciel – Intérêt

 L'importance d'une approche méthodologique s'est


montrée par la crise de l'industrie du logiciel à la fin
des années 60.

 Exemples montrant l'ampleur de l'impact


d’utilisation de logiciels défaillants …

23
4. Qualité du logiciel

 En GL, divers travaux ont mené à la définition de la


qualité du logiciel en termes de facteurs, qui
dépendent du domaine de l'application et des outils
utilisés.

 Ces facteurs peuvent être classés en 2 catégories :


 Internes : visibles aux développeurs
 Externes : visibles aux utilisateurs

24
4. Qualité du logiciel

25
4. Facteurs de Qualité du logiciel

 Validité,
 Fiabilité,
 Extensibilité,
 Réutilisabilité,
 Compatibilité,
 Efficacité,
 Portabilité,
 Vérifiabilité,
 Intégrité,
 Facilité d’utilisation.
[Meyer86]
26
4. Facteurs de Qualité du logiciel

 Économie,  Validité,
 Intégrité,  Généralité,
 Documentation,  Testabilité,
 Compréhensibilité,  Réutilisabilité,
 Flexibilité,  Elasticité,
 Interopérabilité,  Facilité d’utilisation,
 Modularité,  Clarté,
 Justesse,  Maintenabilité,
 Fiabilité,  Portabilité,
 Modifiabilité,  Efficacité. [Boehm&all78]
27
4. Facteurs de Qualité du logiciel

Point de vue utilisateur

 Fiabilité : pas de « plantage »


 Sécurité : pas de mise en danger de vies
humaines/de machines
 Intégrité : protection des données contre les
intrusions
 Ergonomie : utilisation aisée du logiciel
 Efficacité : minimisation des ressources
(temps, mémoire, etc.)
28
4. Facteurs de Qualité du logiciel

Point de vue développeur

 Testabilité : facilité de vérification du code


 Maintenabilité : détection et correction aisée
des erreurs
 Flexibilité : évolution facile

29
4. Facteurs de Qualité du logiciel

Point de vue communication

 Réutilisabilité : utiliser les modules développés


dans de futurs projets
 Portabilité : possibilité de faire tourner le
logiciel sur d’autres architectures
 Compatibilité : échange de données avec
d’autres logiciels

30
4. Critères de Qualité du logiciel

 Traçage des accès,


 Traçabilité,
 Contrôle des accès,
 Complétude,  Souplesse des interfaces,
 Précision,  Facilité d’exploitation,
 Cohérence,  Facilité d’apprentissage,
 Robustesse,  Indépendance machine,
 Simplicité,  Indépendance système,
 Modularité,  Normalisation des
 Généralité, communications,
 Extensibilité,  Standardisation des
structures de données,
 Efficacité de stockage,
 Concision,
 Efficacité d’exécution,
 Conformité. 31
4. Relation Facteur / Critères

 Fiabilité : cohérence, robustesse, conformité,


précision
 Sécurité : complétude, précision, cohérence,
robustesse
 Intégrité : traçage et contrôle des accès
 Ergonomie : souplesse des interfaces, facilité
d’apprentissage et d’exploitation
 Efficacité : efficacité de stockage et
d’exécution, concision
32
4. Relation Facteur / Critères

 Testabilité : traçabilité, simplicité, modularité


 Maintenabilité : traçabilité, modularité,
traçage des accès, simplicité
 Flexibilité : généralité, extensibilité, modularité
 Réutilisabilité : généralité, normalisation des
communications et structures de données
 Portabilité : indépendance machine et système
 Compatibilité : normalisation des
communications et structures de données
33
Conclusion …

34

Vous aimerez peut-être aussi