Professional Documents
Culture Documents
Dfinition du logiciel
Un logiciel (software) est lensemble des programmes, des procdures et des documentations ncessaires au fonctionnement dun systme informatique
Caractristiques du logiciel
le logiciel est facile reproduire
tout le cot se trouve dans le dveloppement
-1
Caractristiques du logiciel
le logiciel ne suse pas, mais il vieillit
Dtrioration suite aux changements :
duplication de code introduction derreurs
-2
Evolution du matriel
10
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
11
12
13
14
identifier et comprendre le problme rsoudre solution utile rsolvant un problme concret la solution peut tre de ne rien dvelopper !
15
techniques matrises, organisation, rigueur bonnes pratiques standardises (IEEE, ISO) la plupart des projets consistent en une volution
16
travail en quipe(s) bonne coordination essentielle principal dfi : subdiviser et recomposer harmonieusement produit final : critres de qualits bien tablis
17
les ressources sont limites (temps, argent, ) le bnfice doit tre suprieur aux cots la productivit doit rester concurrentielle mauvaise estimation chec
18
Transition
Risques majeurs du dveloppement de logiciels :
ne pas remplir les exigences du client
produire un logiciel non fiable
19
Mthodologies de dveloppement
20
Introduction
Comme pour tout produit manufactur complexe : on dcompose la production en phases lensemble des phases constitue un cycle de vie
21
conception
programmation intgration vrification et validation
22
Caractristiques :
parler mtier et non info entretiens, questionnaires observation de lexistant, tude de situations similaires
Spcification
But :
tablir une 1re description du futur systme consigner dans un document qui fait rfrence
Donnes :
rsultats de lanalyse des besoins + faisabilit informatique
Remarques :
pas de choix dimplmentation (parfois) un manuel de rfrence prliminaire
24
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
25
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
26
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
27
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)
28
Intgration :
assembler les composants
29
Vrification
But : vrifier par rapport aux spcifications
vrifier que les descriptions successives (et in fine le logiciel) satisfont la STB
4 types de tests :
test test test test unitaire : composants isols dintgration : composants assembls systme : systme install sur site dacceptation : test par lutilisateur
30
Validation
But : vrifier par rapport aux utilisateurs
31
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)
32
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
33
40 %
20 %
40 %
34
Rsum
analyse des besoins spcification descriptions de plus en plus prcises = raffinements Excutable + Doc.
35
(maquettage)
conception
architecturale dtaille
Introduction
Modle de dveloppement ?
enchanements et interactions entre les activits
modle en cascade (fin des annes 1960) modle en V (annes 1980) modle en spirale (Boehm, 1988)
37
Modle en cascade
38
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
commentaire :
modle sduisant car simple moyennement raliste (trop squentiel)
39
Modle en V
40
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
41
Modle en spirale
42
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
43
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
44
5 niveaux de maturit :
Initial Reproductible Dfini Gr Optimis
45
Niveaux de maturit
46
47
QUALIT INTERNE
48
Facteurs de qualit
Qualit externe :
compltude fonctionnelle
ralise toutes les tches attendues
-1
ergonomie / convivialit
facile dutilisation
apprentissage ais
fiabilit / robustesse
tches effectues sans problme
fonctionne mme dans des cas atypiques
49
Facteurs de qualit
Qualit interne :
adaptabilit
facile modifier, faire voluer
-2
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
modularit
gnralit / abstraction incrmentalit anticipation des changements
51
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)
52
-1
53
-2
vues spares sur le logiciel : modlisation en UML cas dutilisation, structure statique comportement dynamique, architecture sparation de responsabilits : org. en quipes projet
54
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
55
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
56
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
57
Rsum
la qualit du logiciel est fondamentale
elle est perue diffremment selon les points de vue :
qualit externe : client, utilisateurs qualit interne : dveloppeurs, gestionnaires
59
Rsum gnral
logiciel programme
problmes :
pas fiable
dpassements (dlais, cots) non conforme au cahier des charges
mthodes :
principes : pour atteindre des objectifs de qualit outils : Ateliers de Gnie Logiciel (AGL)
60
Conclusion
situation en progrs :
logiciel plus fiable plus facilement modifiable satisfait mieux les utilisateurs
plus complexes,
de plus en plus de fonctionnalits systmes distribus mutations technologiques rapides