Vous êtes sur la page 1sur 65

M1 STIC

CG2
Gestion de
lInnovation et
de la Qualit -

GNIE LOGICIEL
ET APPLICATION A LA
QUALITE LOGICIEL

Cours distribu sous licence Creative Commons,


selon les conditions suivantes :
1

Au commencement, il y avait
Ce que vous connaissez : le programme informatique
Vos comptences :
programmation individuelle sur de petits problmes
algo, langages, structures de donnes
(parfois) un peu de mthodologie : analyse descendante

Votre vision ? La programmation est excitante et ludique

Quest-ce quun logiciel ?


il est fait pour des utilisateurs
dialoguer mtier, produire des documents

il est complexe et de trs grande taille

homme-mois
nb instructions

1/2 M Inst.
exp. physique des particules CERN
1 M Inst.
central tlphonique
50 M Inst.
contrle sol + vol navette spatiale

il fait intervenir plusieurs participants


travail en quipe(s), organisation, planification

il est long et coteux dvelopper


risques nombreux et important : dlais, cot
3

Dfinition du logiciel

Un logiciel (software) est lensemble des programmes,


des procdures et des documentations ncessaires au
fonctionnement dun systme informatique

Caractristiques du logiciel

-1

le logiciel est facile reproduire


tout le cot se trouve dans le dveloppement

le logiciel est immatriel et invisible


on ne peut lobserver quen lutilisant
la qualit nest pas vraiment apparente
difficile destimer leffort de dveloppement

dveloppement difficile automatiser


beaucoup de main-duvre ncessaire

Caractristiques du logiciel

-2

le logiciel ne suse pas, mais il vieillit


Dtrioration suite aux changements :
complexification indue
duplication de code
introduction derreurs

Mal conu au dpart :


inflexibilit
manque de modularit
documentation insuffisante

Evolution du matriel
6

Diffrentes catgories de logiciels

sur mesure : pour un client spcifique

gnrique

: vendu sur un march

Diffrents types de logiciels

systme dinformation et daide la dcision


logiciel temps-rel
logiciel embarqu
logiciel distribu

Problmatique historique du logiciel

Dune part le logiciel nest pas fiable,


dautre part il est incroyablement difficile de
raliser dans les dlais prvus des logiciels
satisfaisant leur cahier des charges

Le logiciel nest pas fiable


Quelques exemples clbres :
1re sonde Mariner vers Vnus
perdue dans lespace (erreur Fortran)

navette spatiale
lancement retard (problme logiciel)

ATT
appels longue distance suspendus (changement de version)

avion F16
retourn lquateur (non prise en compte hmisphre sud)

bug de lan 2000

Tout systme comporte des bugs


10

Dlais et exigences non satisfaits

Quelques exemples clbres :


OS 360 dIBM
en retard, dpassement mmoire et prix, erreurs

aroport de Denver (systme de livraison des bagages)


1 an de retard

SNCF (systme Socrate)


difficults importantes

11

Abandons
Quelques exemples clbres :
EDF (contrle-commande centrales 1400 MWatts)
renonce aprs plusieurs annes defforts

bourse de Londres (projet dinformatisation)


abandon : 4 annes de travail + 100 ML perdus

Etats-Unis (systme de trafic arien)


abandon

La non rencontre des exigences et les dpassements


de dlais sont frquents : 300 400 %
12

Naissance dune nouvelle discipline


Historique
Problmatique apparue ds les annes 1960
Confrence parraine par lOTAN (1968)
Naissance du Gnie Logiciel (software engineering)

P. Naur, B. Randall (Eds)


Software Engineering : A Report on a Conference
Sponsored by the NATO Science Committee
NATO, 1969

13

Naissance dune nouvelle discipline


Objectif
Dmarche de dveloppement ingnierique
Principes, mthodes, outils
Techniques de fabrication assurant :
respect des exigences
respect de la qualit
respect des dlais et des cots

14

Dfinition du Gnie Logiciel


Processus visant :
la rsolution de problmes poss par un client
par le dveloppement systmatique et lvolution
de systmes logiciels de grande taille et de haute qualit
en respectant les contraintes de cots, de temps, et autres

15

Rsolution de problmes poss par un client

identifier et comprendre le problme rsoudre


solution utile rsolvant un problme concret
la solution peut tre de ne rien dvelopper !

16

Dveloppement systmatique et volution

techniques matrises, organisation, rigueur


bonnes pratiques standardises (IEEE, ISO)
la plupart des projets consistent en une volution

17

Systmes de grande taille et haute qualit

travail en quipe(s)
bonne coordination essentielle
principal dfi : subdiviser et recomposer harmonieusement
produit final : critres de qualits bien tablis

18

Respectant les contraintes

les ressources sont limites (temps, argent, )


le bnfice doit tre suprieur aux cots
la productivit doit rester concurrentielle
mauvaise estimation chec

19

Transition
Risques majeurs du dveloppement de logiciels :

ne pas remplir les exigences du client


produire un logiciel non fiable
dpasser les dlais, les cots et autres contraintes

20

Mthodes du Gnie Logiciel

Mthodologies de dveloppement

21

Introduction
Comme pour tout produit manufactur complexe :
on dcompose la production en phases
lensemble des phases constitue un cycle de vie
les phases font apparatre des activits cls

22

Activits du dveloppement de logiciel

analyse des besoins


spcification
conception
programmation
intgration
vrification et validation

23

Analyse des besoins


But :
dterminer ce que doit faire (et ne pas faire) le logiciel
dterminer les ressources, les contraintes

Caractristiques :
parler mtier et non info
entretiens, questionnaires
observation de lexistant, tude de situations similaires

Rsultat : ensemble de documents


rle du systme
future utilisation
aspects de lenvironnement
(parfois) un manuel dutilisation prliminaire
24

Spcification
But :
tablir une 1re description du futur systme
consigner dans un document qui fait rfrence

Donnes :
rsultats de lanalyse des besoins + faisabilit informatique

Rsultat : Spcification Technique de Besoin (STB)


ce que fait le logiciel, mais pas comment

Remarques :
pas de choix dimplmentation
(parfois) un manuel de rfrence prliminaire
25

Conception
But :
dcrire comment le logiciel est construit
dcider comment utiliser la techno. pour rpondre aux besoins

Travail :
enrichir la description de dtails dimplmentation
pour aboutir une description trs proche dun programme

2 tapes :
conception architecturale
conception dtaille

26

Conception architecturale
But : dcomposer le logiciel en composants
mettre au point larchitecture du systme
dfinir les sous-systmes et leurs interactions
concevoir les interfaces entre composants

Rsultat :
description de larchitecture globale du logiciel
spcification des divers composants

27

Conception dtaille
But : laborer les lments internes de chaque sous-syst.

Rsultat :
pour chaque composant, description des
structures de donnes, algorithmes

Remarque :
si la conception est possible, la faisabilit est dmontre
sinon, la spcification est remise en cause

28

Programmation
But :
passer des structures de donnes et algorithmes
un ensemble de programmes

Rsultat :
ensemble de programmes
ensemble de bibliothques / modules
documents (commentaires)

Remarque :
activit la mieux matrise et outille (parfois automatise)

29

Gestion de configurations et Intgration


Gestion de configurations :
grer les composants logiciels (programmes, bibliothques, )
matriser leur volution et leurs mises jour

Intgration :
assembler les composants
pour obtenir un systme excutable

30

Vrification
But : vrifier par rapport aux spcifications
vrifier que les descriptions successives
(et in fine le logiciel) satisfont la STB

Moyens : revues de projet, tests


test = chercher des erreurs dans un programme
excution sur un sous-ensemble fini de donnes

4 types de tests :
test
test
test
test

unitaire : composants isols


dintgration : composants assembls
systme : systme install sur site
dacceptation : test par lutilisateur
31

Validation
But : vrifier par rapport aux utilisateurs

Moyen : revues de projet

32

Maintenance
But :
corriger des dfauts
amliorer certaines caractristiques
suivre les volutions (besoin, environnement)

Remarque :
peut remettre en cause les fonctions du systme
peut impliquer un re-dveloppement (re-ingeneering)

33

Maquettage / Prototypage
But :
prciser les besoins et les souhaits des utilisateurs
dvelopper rapidement une bauche du systme

2 types de maquettes :
maquette exploratoire : spcification
maquette exprimentale : conception

34

Rpartition des activits


Actuellement, dans un projet logiciel bien conduit :

40 %

Analyse, Spcification, Conception

20 %

Programmation

40 %

Intgration, Vrification, Validation

35

Rsum
analyse des besoins
spcification
(maquettage)

descriptions
de plus en plus
prcises

conception
architecturale

dtaille

programmation
config. et intgration
vrif. et validation

raffinements

Excutable + Doc.

maintenance
36

Introduction
Modle de dveloppement ?
enchanements et interactions entre les activits

But pour le projet : ne pas sapercevoir des pbs qu la fin


contrler lavancement des activits en cours
vrifier / valider les rsultats intermdiaires

Objectif gnral : obtenir des processus de dveloppement


rationnels
contrlables
reproductibles
37

Modles de dveloppement logiciel

modle en cascade (fin des annes 1960)


modle en V (annes 1980)
modle en spirale (Boehm, 1988)

38

Modle en cascade

39

Modle en cascade
principe : le dveloppement se divise en tapes
une tape se termine une certaine date
des docs ou prog. sont produits la fin de chaque tape
les rsultats dtapes sont soumis revue
on passe ltape suivante ssi lexamen est satisfaisant
une tape ne remet en cause que la prcdente

commentaire :
modle sduisant car simple
moyennement raliste (trop squentiel)

40

Modle en V

41

Modle en V
principe : les premires tapes prparent les dernires
interprtation : 2 sortes de dpendances entre tapes
en V, enchanement squentiel (modle en cascade)
de gauche droite, les rsultats des tapes de dpart
sont utiliss par les tapes darrive

commentaire :
avec la dcomposition est crite la recomposition
vrification objective des spcifications
modle plus labor et raliste
prouv pour de grands projets, le plus utilis

42

Modle en spirale

43

Modle en spirale
principe : dveloppement itratif (prototypes)
interprtation : chaque mini-cycle se droule en 4 phases
1. Analyse des besoins, Spcification
2. Analyse des risques, Alternatives, Maquettage
3. Conception et Implmentation de la solution retenue
4. Vrification, Validation, Planification du cycle suivant

commentaire :
nouveau : analyse de risques, maquettes, prototypage
modle complet, complexe et gnral
effort important de mise en uvre
utilis pour projets innovants ou risques
44

Rsum
modles : enchanements et interactions entre tapes
passage dune tape la suivante :
documents, tests
vrifis et valids

3 modles : cascade, V, spirale (squentiels et itratif)


cascade : simple mais pas trs raliste
spirale : nouvelles notions, trs complet mais lourd
V : assez raliste, le plus prouv et utilis

45

Maturit du processus de dveloppement


notion dfinie par le SEI (Software Engineering Institute)
Capacity Maturity Model (CMM)
5 niveaux de maturit :
Initial
Reproductible
Dfini
Gr
Optimis

46

Niveaux de maturit

47

Etude amricaine (1991)


Etude SEI
Organisations amricaines

48

Etude amricaine (1999)


Etude SEI
Organisations amricaines

49

Principes du Gnie Logiciel

Vers lAssurance Qualit

50

Diffrentes perceptions de la qualit


QUALIT
EXTERNE

QUALIT
INTERNE
51

Facteurs de qualit

-1

Qualit externe :
compltude fonctionnelle
ralise toutes les tches attendues

ergonomie / convivialit
facile dutilisation
apprentissage ais

fiabilit / robustesse
tches effectues sans problme
fonctionne mme dans des cas atypiques
52

Facteurs de qualit

-2

Qualit interne :
adaptabilit
facile modifier, faire voluer

rutilisabilit
des parties peuvent tre rutilises facilement

traabilit / comprhension
le fonctionnement du logiciel est facile comprendre

efficacit / performance
bonne utilisation des ressources (mmoire, cpu, )

portabilit
capacit marcher dans un autre contexte ou env.
53

Comment agir sur la qualit logicielle ?


La qualit est atteinte ou amliore en appliquant
certains principes :
rigueur et formalisme
sparation des proccupations
modularit
gnralit / abstraction
incrmentalit
anticipation des changements
54

Rigueur et formalisme
rigueur = prcision, exactitude (confiance en la fiabilit)

formalisme = le plus haut degr de rigueur (mathmatiques)


ncessaire pour les parties critiques (haut risque)
peut tre utilis dans chaque phase
spcification formelle
vrification formelle (preuve)
analyse de complexit dalgorithmes

55

Sparation des proccupations

-1

principe : traiter sparment les aspects dun problme


diviser pour rgner

rsultat : rduit la quantit de complexit contrler

56

Sparation des proccupations

-2

diffrentes sortes de sparations :


sparation de domaine
domaine de problme : quoi rsoudre ?
domaine de solution : comment rsoudre ?
sparation de temps : phases du cycle de vie
sparation de qualit
maquettes, prototypes
conception globale, dtaille
vues spares sur le logiciel : modlisation en UML
cas dutilisation, structure statique
comportement dynamique, architecture
sparation de responsabilits : org. en quipes projet
57

Modularit

principe : sparer le systme en composants logiques


modules

avantages :
rduction de complexit
les modules peuvent tre
conus et construits sparment
rutiliss
systme modifi en changeant un nombre limit de modules
58

Gnralit / Abstraction
principe :
gnraliser un problme particulier
le rendre rutilisable dans dautres contextes

exemple :
logiciel gnrique vs logiciel sur mesure
design patterns : des solutions gnralises pour des
problmes typiques de conception

59

Incrmentalit
principe :
dvelopper le logiciel en une srie dincrments
se rapprocher de la solution par raffinements successifs

exemple :
phase de conception
cycle de vie en spirale

60

Anticipation des changements


le logiciel volue constamment pour diffrentes raisons :
rparation des erreurs dtectes
adaptation de nouveaux environnements
traitement de nouvelles exigences
changements dans les exigences
changement des formats de donnes
changement dexigences non-fonctionnelles

avant de dvelopper, poser les questions :


quels changements, o ?
comment les rendre plus faciles appliquer ?
61

Rsum
la qualit du logiciel est fondamentale
elle est perue diffremment selon les points de vue :
qualit externe : client, utilisateurs
qualit interne : dveloppeurs, gestionnaires

pour latteindre, on adopte des principes


participation des activits et modles de dveloppement
lutilisation de lapproche OO participe aussi beaucoup
remplir ces objectifs

62

Rsum gnral
logiciel programme
problmes :

pas fiable
dpassements (dlais, cots)
non conforme au cahier des charges

gnie logiciel :

dmarche ingnierique
mthodes, principes, outils

mthodes :

processus de dveloppement
activits et modles (cascade, V, spirale)

principes : pour atteindre des objectifs de qualit


outils : Ateliers de Gnie Logiciel (AGL)
63

Conclusion
situation en progrs :

logiciel plus fiable


plus facilement modifiable
satisfait mieux les utilisateurs

en contrepartie, les problmes sont plus critiques,


centr. tlph., centrales nuclaires
avions, spatial, ferroviaire
banque, bourse,

plus complexes,
de plus en plus de fonctionnalits
systmes distribus
mutations technologiques rapides

et les exigences plus fortes (fiabilit, permanence du service)


la matrise du logiciel reste un dfi scientifique et
technologique majeur

64

BIBLIOGRAPHIE

Normes ISO 2000 V2000- V2008


Normes ISO 14001
norme IEEE, 2004 SWEBOK: Software Engeneering
Body Of Knowledge,.
L'assurance qualit logicielle : Tome 1, Concepts de
base de Alain April et Claude Laporte
L'assurance qualit logicielle : Tome 2, Processus de
support de Claude Laporte et Alain April
Strohmeier A., Buchs D., Gnie logiciel : principes,
mthodes et techniques, Lausanne, Presses
polytechniques et universitaires romandes, 1996.
Cours EPITA Stphanie CARON
65
Cours Polytech Nice, Michel KOENIG