<!-- Slide number: 1 -->
Cours Génie Logiciel 1Chapitre 1: Introduction au génie Logiciel

Parcours: DSI2Année Universitaire: 2014/2015
Notes:
<!-- Slide number: 2 -->
Objectifs du cours GL
Savoir :
Le rôle du GL dans le quotidien
Le processus de développement logiciel
Le génie logiciel
L’impact de la qualité logiciel
Familiarisation avec le module
S’initier avec le jargon GL
Il n’y a pas de prérequis.
Notes:
<!-- Slide number: 3 -->
Sommaire
Section 1: le logiciel
Section 2: le développement logiciel
Section 3: la crise du logiciel
Section 4: le Génie Logiciel
Notes:
<!-- Slide number: 4 -->
Section 1: Le Logiciel
1.1. Où se trouve le logiciel ?





4
Notes:
<!-- Slide number: 5 -->
Section 1: Le Logiciel
Le logiciel est omniprésent.
Bureautique, voyage, surveillance, loisirs, médecine,
administration, agriculture, esthétique….
Par conséquent, notre vie dépend étroitement par le
logiciel.
Question : Quel impact porte le logiciel sur notre vie quotidienne?
5
Notes:
<!-- Slide number: 6 -->
Section 1: Le Logiciel
1.2. Impacts Positifs du logiciel
Le logiciel a amélioré le quotidien de plusieurs manières:
Accélérer les traitements même les plus compliqués et les plus lourds.
Le logiciel ne se lasse pas.
Grande capacité de stockage et de calcul.
Faciliter les échanges et la communication.

6
Notes:
<!-- Slide number: 7 -->
Section 1: Le Logiciel
1.3. Impacts négatifs du logiciel
Plusieurs désastres ont été causé par des erreurs dans le logiciel.
Le bug du Mariner-1 en 1962 : Une fusée spatiale a dérouté de sa trajectoire à cause d’une formule mathématique qui a été mal transcrite en code source.
1991, pendant la guerre du golfe : Un missile américain tue 22 soldats américains au lieu d’intercepter un missile ennemi. Cause : une erreur de fonction d’arrondi.
2000 Panama, machine médicale traitement de cancer . Le logiciel a permis de dessiner cinq zones protégées alors que la machine ne tolérait que quatre. Résultat : des tissus sains ont été irradiés et huit personnes au moins décédées,
7
Notes:
<!-- Slide number: 8 -->
Section 1: Le Logiciel
Du double dosage pour Multidata Systems: Multidata System International a conçu un logiciel destiné à calculer la quantité de radiation que des patients doivent recevoir. Toutefois, ce logiciel avait certaines limitations et les médecins ont tenté de contourner le problème en jouant quelque peu avec les données. Le logiciel a commencé à doubler la quantité de radiation aux patients. Dédommager les victimes a coûté très cher.
Logiciel comptable défaillant: l'Agence de traitement des pensions alimentaires d'Angleterre a demandé de créer un système de gestion, mais la firme présenta un produit horriblement complexe et truffé d'erreurs d'incompatibilité. Une perte d'un milliard de dollars.

8
Notes:
<!-- Slide number: 9 -->
Section 1: Le Logiciel
1.3. Le logiciel = ?
Un logiciel est un ensemble d'informations relatives à des traitements effectués automatiquement par un outil informatique.
Un logiciel est un « transformateur » d’information
Un logiciel est un produit qui a :
- Une forme exécutable: séquence d'instructions exécutables par une machine
- Une forme non exécutable: documentation (développement, installation, utilisation et maintenance), Des données.
9
Notes:
<!-- Slide number: 10 -->
Section 1: Le Logiciel
Le logiciel = ?



Exécutable


Documentation
10
Notes:
<!-- Slide number: 11 -->
Section 1: Le Logiciel
1.4. classification de logiciels
Deux grandes catégories :
Logiciel générique : systèmes autonomes vendus
au grand public. logiciels système/de base
Logiciel sur mesure : systèmes autonomes développés
pour les besoins d’un client Applications
11
Notes:
<!-- Slide number: 12 -->
Section 1: Le Logiciel

12
Notes:
<!-- Slide number: 13 -->
Publicité
Section 1: Le Logiciel
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 pour ordinateur personnel
Logiciels d’intelligence artificielle
Logiciels d’applications Web
13
Notes:
<!-- Slide number: 14 -->
Section 1: Le Logiciel
1.5. Classification des projets logiciels
projet trivial:
1 programmeur, 1 à 4 semaines, moins de 500 lignes
petit projet:
1 programmeur, 1 à 6 mois, l'000 à 2'000 lignes
projet moyen:
2 à 5 programmeurs, 1 à 2 ans, 5'000 à 50'000 lignes
grand projet:
5 à 20 programmeurs,e 2 à 3 ans, 50'000 à 100'000 lignes
très grand projet:
100 à 1'000 programmeurs, 4 à 5 ans, environ un million de lignes
extrêmement grand projet:
projet impliquant 2'000 à 5'000 programmeurs, 5 à 10 ans, 1 à 10
de lignes
14
<!-- Slide number: 15 -->
Section 1: Le Logiciel
- Différence entre petits et grands logiciels
Logiciels complexes :
plusieurs milliers de lignes de code
plusieurs unités
Développement par plusieurs personnes
de coordination),
(pbs. de communication
et
structure
difficile
Aucune personne ne peut comprendre l'intégralité de la
de
Et
La
conception, et par conséquent la modification
on doit recourir à la documentation
possibilité de repartir à zéro est exclue.
devient
15
<!-- Slide number: 16 -->
Section 1: Le Logiciel
1.6. Spécificité du logiciel
La réalisation d’un objet complexe nécessite des schémas, des plans.
La réalisation d’un logiciel de grande taille ne peut s’envisager sans une spécification de ses caractéristiques.
Un Logiciel : objet impalpable, visibilité très tardive.
Création intellectuelle
Le produit logiciel ne s’use pas mais se détériore.
Changements réguliers.
Mais modifier un logiciel est un phénomène ni continu ni localisé.
Donc un changement mineur peut avoir des implications énormes.
16
Notes:
<!-- Slide number: 17 -->
Section 1: Le Logiciel
1.7. Qualité du logiciel
Deux types :
Externes : Observables par l’utilisateur
Internes : concerne le développeur du logiciel
Facteurs de qualité d’un bon logiciel:
logiciel conforme
répond aux besoins de l’utilisateur
logiciel fiable
ne doit pas tomber en panne, plus qu’il n’est autorisé
logiciel efficace
pas de gaspillage de ressources
logiciel maintenable
doit pouvoir évoluer pour s’adapter aux besoins changeants des utilisateurs
logiciel utilisable
interface conviviale + une bonne documentation
17
<!-- Slide number: 18 -->
Section 1: Le Logiciel
…
L’importance de ces facteurs de qualité variera selon la nature du
projet de développement.
Il est difficile d’optimiser tous ces facteurs car ils s’excluent mutuellement.
Les Facteurs
sont
sujets
à
la
loi
de
la
diminution
des
gains
(compromis)
18
<!-- Slide number: 19 -->
Section 2: Le Développement Logiciel
Le développement d’un logiciel est la transformation d’un besoin exprimée d’une manière explicite en un logiciel fonctionnel.
L’idée est produite par un client (utilisateur) et développée par un fournisseur.
Idée = besoin
Transformation
=
Publicité
Développement
Exploitation
=
Mise en fonction


fournisseur
Client
19
Notes:
<!-- Slide number: 20 -->
Section 2: Le Développement Logiciel
D’un point de vue client
Peu couteux
Livré dans les délais
Un bon logiciel
De qualité
Fais exactement ce qui souhaité
20
Notes:
<!-- Slide number: 21 -->
Section 2: Le Développement Logiciel
D’un point de vue fournisseur
Minimise le coût
Minimise les délais
Un bon logiciel
Répond aux objectifs fixés
Maximise les profits
21
Notes:
<!-- Slide number: 22 -->
Section 2: Le Développement Logiciel
Que faut il pour développer?

Une équipe de développement:
L’équipe n’est pas uniquement composée de programmeurs mais d’autres acteurs : chefs de projets, testeurs, fonctionnels,…
Des outils relatifs au développement :
compilateurs, environnements de tests, éditeurs,…
La communication est essentielle dans un projet de développement.


22
Notes:
<!-- Slide number: 23 -->
Section 2: Le Développement Logiciel
Industrialisation
des
développements
logiciels
Développements de +
en
+
ambitieux
Pression des délais
Qualité …
…
Délocalisation
…
23
<!-- Slide number: 24 -->
Section 2: Le Développement Logiciel

La communication
24
Notes:
<!-- Slide number: 25 -->
Section 3: La Crise du Logiciel
3.1. Les Symptômes
Inadéquation
Logiciels réalisés # besoins utilisateurs
Délais
Logiciels souvent livrés en retard
Coûts
Dépassement du budget prévu
Fiabilité
Logiciels souvent en panne
Maintenance
Complexe et coûteuse

25
<!-- Slide number: 26 -->
Section 3: La Crise du Logiciel
Inadéquation
1979: USA, Government Accounting Office,
certain nombre de projets
enquête
sur
un
[47%] délivré, jamais utilisé
[29%] payé, non fourni
[19%] utilisé puis modifié ou abandonné
[3%] utilisé après quelques retouches
[2%] utilisé tel quel
Cours GL-2006 © / YJ & IBH
26
<!-- Slide number: 27 -->
Section 3: La Crise du Logiciel
Inadéquation
Il faudra des traitements automatiques !
Réalisateur
Client
nous vous fournirons des
traitements auto - matiques
MAIS NON ! je veux des
traitements au-to-ma-tiques !!!
AH ! Bon ...
Je croyais que vous vouliez des traitements automatiques
Publicité
27
<!-- Slide number: 28 -->
Section 3: La Crise du Logiciel
Inadéquation
28
<!-- Slide number: 29 -->
Section 3: La Crise du Logiciel
Délai & Coût
Enquête dans les années 70 sur 100 programmes:
délais dépassés de 52%
budgets logiciels dépassés de 72%
budgets matériels dépassés de 15%
Exemple de projets
L'OS-360 d'IBM fut livré en retard, nécessitait
plus de mémoire
que prévu, son coût dépassait les estimations et il comportait
nombreuses erreurs (années 60 - Fred Brooks)
de
Le développement d'un compilateur PL1 chez Control
aboutit (années 70)
Data n'a
jamais
29
<!-- Slide number: 30 -->
Section 3: La Crise du Logiciel
Délai & Coût
1+1=3
30
<!-- Slide number: 31 -->
Section 3: La Crise du Logiciel
Fiabilité
Enquête dans les années 70 sur 100 programmes:
qualité insuffisante: 30 à 85 erreurs par k instructions
Exemples de projets non fiables
Sonde Mariner I vers Vénus perdue suite à une erreur d'un programme
Fortran (62)
Expérience météorologique en France: 72 ballons contenant des
instruments de mesures furent détruits suite à une erreur de
programmation (71)
Un défaut logiciel retarde le lancement de la navette spatiale américaine
(1981)
Un changement de version logiciel des centraux téléphoniques ATT
empêche les appels longue distance (90)
31
<!-- Slide number: 32 -->
Section 3: La Crise du Logiciel
Maintenabilité
maint. : 40%
-
75% du budget
global
Coût
Coût
de la
d’une
modification
!
60-100 x
1.5-6 x
1 x
définition
développement
Après installation
32
<!-- Slide number: 33 -->
Section 3: La Crise du Logiciel
3.2. Constations: Comparaison entre génie civil et informatique

Le pont de Verrazano Narrow Bridge à New York (1959)
prix estimé à 325 millions de $ pour 1965.
terminé en novembre 1964 et le budget ne fut pas dépassé;
le projet OS/360 d'IBM a eu des années de retard.
Pourquoi
la prévision pour la construction d'un pont est-elle
exacte,
alors qu'il y a de tels problèmes avec le logiciel ?
un ingénieur en génie civil voit plus facilement le surplus de
complexité lié à la réalisation d'un énorme pont, qu'un informaticien
ne voit la complexité d'un énorme programme.
33
<!-- Slide number: 34 -->
Section 3: La Crise du Logiciel
3.3. Les causes de la crise
1) Science, technologie trop jeune
2) Complexité inhérente
Trop de liens de communications
Trop interrelations entre modules
Trop importants pour être appréhendés par une seule personne.
Trop de modification
Extrapolations difficiles
34
<!-- Slide number: 35 -->
Section 4: Le génie Logiciel

Le génie logiciel est née en Europe à
Garmish-Partenkirchen (Allemagne )
Conférence en 1968 sous le patronage de l’OTAN.
46 ans déjà, seulement !
Pour répondre à un certain nombre de problèmes dans le développement de logiciels.
35
Notes:
<!-- Slide number: 36 -->
De quoi est composé le GL ?
Section 4: Le génie Logiciel
Le terme génie logiciel (en anglais software engineering) désigne l'ensemble des méthodes, des techniques et outils concourant à la production d'un logiciel, au-delà de la seule activité de programmation. Wikipédia

36
Publicité
Notes:
<!-- Slide number: 37 -->
Section 4: Le génie Logiciel
4.1. Qu’est ce que le génie logiciel ?
Est une activité qui implique la solution des problèmes.
Est une activité qui implique l’acquisition des connaissances.
Est une activité pilotée par des motivations et des raisons.
Est une activité qui applique les principes de l’ingénierie.

Introduction
23
37
<!-- Slide number: 38 -->
Section 4: Le génie Logiciel
Définitions Génie Logiciel (GL)
Le génie logiciel ? Boehm (1979)
C’est l’application pratique de connaissance scientifiques dans la conception et la construction de programmes ainsi que la documentation associée, requise pour le développement, l’exploitation et la maintenance.
Le génie logiciel ? AFCIQ (Arrêté ministériel du 30-déc-83)
Ensemble des activités de conception et de mise en œuvre des produits et des procédures tendant à rationnaliser la production du logiciel et son suivi.
38
<!-- Slide number: 39 -->
Section 4: Le génie Logiciel
4.2. Rôle et objectifs du GL
Le génie logiciel est l’application des principes de l’ingénierie au développement des logiciels.
C’est l’établissement et l’application des approches méthodiques et quantifiables au développement et à la maintenance es logiciels dans le but d’obtenir des systèmes logiciels économiques, fiables et efficaces dans un contexte de fonctionnement pratique.
Qualité
Coût
délai
39
<!-- Slide number: 40 -->
Section 4: Le génie Logiciel
Le génie Logiciel
Améliorer la
PRODUCTIVITE
Améliorer la
QUALITE
DEVELOPPER ET MAINTENIR
BESOINS
LOGICIEL
Outils
Normes
Méthodes
Techniques
Principes, règles
40
<!-- Slide number: 41 -->
Section 4: Le génie Logiciel
Le génie Logiciel
Principe = loi générale régissant un ensemble de phénomènes et vérifiée par l’exactitude de ses conséquences.
Règle = prescription qui s’impose à qcq dans un cas donné.
Technique = qui a trait à la pratique, au savoir-faire dans une activité
Méthode = ensemble ordonné de manière logique permettant de parvenir à un résultat
Norme = règle fixant le type d’un objet fabriqué, les conditions technique de fabrication
Outils
supportent
Méthodologie
Regroupent et appliquent
Méthodes et techniques
Sont basées sur
Relation entre principes, techniques, Méthodes, Méthodologie et outils.
Principes
41
<!-- Slide number: 42 -->
Section 4: Le génie Logiciel
Normes
AFNOR=Association Française de Normalisation
AFCIQ = Association Française d’Assurance Qualité
ANSI = American National Standard Institute
ISO = International Standard Organisation
42
<!-- Slide number: 43 -->
Section 4: Le génie Logiciel
4.3. Les acteurs du génie logiciel
Eléments clef: la communication
Une personne peut assumer plusieurs
rôles.
Plusieurs personnes peuvent assumer un
même rôle.
besoins
Responsable
développement
besoins
logiciel
Ingénieur
informaticien
client
utilisateur
43
<!-- Slide number: 44 -->
Section 4: Le génie Logiciel
Des équipes de développement diversifiées
Développeur
Architecte
Solution
Architecte
d’Infrastructure
Testeur
Chef de Project
Utilisateur
44
<!-- Slide number: 45 -->

Merci…