Génie logiciel 1
plan
Le développement Méthode et
planification
vu du client Méthodologie
Génie logiciel 2
Cycles de vie
• Principes généraux
• Les phases
A. Beugnard 1 1998
Introduction au génie logiciel # 2
Génie logiciel 3
Cycles de vie
• Quelques exemples :
– Waterfall
–V
– Spirale
Génie logiciel 4
requirements
analysis
Requirements
spécification
Software
development
plan
A. Beugnard 2 1998
Introduction au génie logiciel # 2
Génie logiciel 5
Design
specification
Software test plan
Revue préliminaire
Génie logiciel 6
requirements
analysis
preliminary
design
detailed
design
Design
specification
Software test plan
A. Beugnard 3 1998
Introduction au génie logiciel # 2
Génie logiciel 7
Source code
Test
description
Génie logiciel 8
requirements
analysis
preliminary
design
detailed
design
code and
unit test subsystem
test and
integration
Test procedures
User documentation
A. Beugnard 4 1998
Introduction au génie logiciel # 2
Génie logiciel 9
Revue préliminaire
Génie logiciel 10
Le cycle en V
besoins accept.
validation
concept. évaluation
decomp. Integration
vérification
concept. Tests
detail
code &
debug
A. Beugnard 5 1998
Introduction au génie logiciel # 2
Génie logiciel 11
Cycle spirale
vérification analyse
validation
Succession de
prototypes. réalisation
Approche objet. conception
Génie logiciel 12
A. Beugnard 6 1998
Introduction au génie logiciel # 2
Génie logiciel 13
Cycles de vie
• Principes généraux
• Les phases
Génie logiciel 14
• trop rigide
A. Beugnard 7 1998
Introduction au génie logiciel # 2
Génie logiciel 15
Documents
Phase
Qui ? Etapes Décisions
1 : lancement...
n : conclusion
Objectif
Documents
Génie logiciel 16
Rôles
La même personne peut jouer plusieurs rôles
A. Beugnard 8 1998
Introduction au génie logiciel # 2
Génie logiciel 17
Changement de phase
Instabilité forte
Communication forte...
© A. Beugnard ENST Bretagne
Génie logiciel 18
Communication
A. Beugnard 9 1998
Introduction au génie logiciel # 2
Génie logiciel 19
Cycles de vie
• Principes généraux
• Les phases
Génie logiciel 20
Faisabilité
Consultant 1 lancement
requirements
analysis Consultant 2 Etude
Utilisateur (enjeux, risques)
Consultant
Direction 3 Conclusion continuer ?
Décider si
le projet mérite des
investissements
significatifs
Rapport faisabilité
A. Beugnard 10 1998
Introduction au génie logiciel # 2
Génie logiciel 21
Etude préalable
Chef de projet 1 lancement
Chef de projet
requirements Validation
Admin. Données 2 Bilan de
analysis du bilan
Consultant l’existant
Resp. Qualité
Experts Choix de
3 Scénarios
Utilisateurs scénarios
(variantes)
Génie logiciel 22
Comprendre le domaine
• Etudier le contexte dans lequel va s'insérer le
système
• Qu'est-ce qui compose l'environnement du
système ?
– acteurs
– objets
– flux (d'information, de messages, de matériel, etc)
A. Beugnard 11 1998
Introduction au génie logiciel # 2
Génie logiciel 23
Etude détaillée
Chef de projet 1 Lancement
Chef de projet 2 Stabilisation Validation
preliminary Admin. Données 3 Plans générauxdoc.
design Techniciens 4 Etude des Validation
Consultants sous projets doc.
Experts 5 Homologation Homolog.
Utilisateurs de l'architecture
Resp. Qualité 6 Revue des ED
Finalisation de l'étude Chef de projet 7 Conclusion Suite...
fonctionnelle, et début de
l'étude technique
Cahier des charges Dict. de données
Etude détaillée Modèles
Plan Qualité Maquette IHM
Génie logiciel 24
Délimiter le système
A. Beugnard 12 1998
Introduction au génie logiciel # 2
Génie logiciel 25
Découpage
Application
Génie logiciel 26
Découpage
Contrôle
Application Communication
Accès BD
IHM
Calcul
Lot 1 Lot 2 Impression
Lot 3
Sécurité
Périphérique
A. Beugnard 13 1998
Introduction au génie logiciel # 2
Génie logiciel 27
Cahier des charges Dict. de données
Etude détaillée Modèles
Plan Qualité Maquette IHM
Etude technique
1 Lancement
Chef de projet
Chef de projet Contrôle
Admin. Données2 Base de donnéeQualité
Analystes 3 Programmes
detailed
design Experts 4 Spécif des testsContrôle
Programmeurs Qualité
Chef de projet 5 Plan de Contrôle
Consultants développement Qualité
Experts
Chef de projet
6 Conclusion
Finalisation de la
description technique
(DB, communication,…) Cahier des charges Tech. Base de données
Etude technique Structure des programmes
Plan de développement Définition des tests
Génie logiciel 28
A. Beugnard 14 1998
Introduction au génie logiciel # 2
Génie logiciel 29
Cahier des charges Tech. Base de données
Etude technique Structure des programmes
Plan de développement Définition des tests
Réalisation
1 Lancement
code and Chef de projet
unit test 2 Impl. BD
3 Programmation
subsystem Admin. Données Vérification
4 Tests
test and Analystes Acceptation
integration Programmeurs 5 Gestion des
modifications
6 Gestion envir. et
Chef de projet configuration
Utilisateurs 7 Stabilisation Validation
Chef de projet 8 Conclusion
Production du code et de
la documentation
associée Plans de recette Programmes
de mise en œuvre utilisateur Rapports de tests
de migration Documentation et versions
Génie logiciel 30
Lot 1
Lot 2
Lot 3
plus de cohérence et de prudence, mais moins d'anticipation des aléas et plus d'inactivité
A. Beugnard 15 1998
Introduction au génie logiciel # 2
Génie logiciel 31
Lot 1
Lot 2
Lot 3
moins de cohérence, mais moins d'inactivité et détection plus précoce d'éventuels aléas
Génie logiciel 32
Lot 1
Lot 2
Lot 3
A. Beugnard 16 1998
Introduction au génie logiciel # 2
Génie logiciel 33
Plans de recette Programmes
de mise en œuvre utilisateur Rapports de tests
de migration Documentation et versions
Mise en œuvre
1 Lancement
Chef de projet
2 Intégration
Test and Chef de projet
integration Homolo
Analystes 3 Site pilote,
Utilisateurs gation
homologation
Logistique
4 Généralisation
Génie logiciel 34
Documentation
Demande d'amélioration,
du
de correction, d'évolution
Projet
Maintenance
1 Lancement
Chef de projet
2 Gest. des
Maintenance Chef de projet modifications Arbitrage
Analystes
et
Utilisateurs 3 Réalisation planifi-
des modifications cation
A. Beugnard 17 1998
Introduction au génie logiciel # 2
Génie logiciel 35
Bibliographie
Génie logiciel 36
plan
Le développement Méthode et
planification
vu du client Méthodologie
A. Beugnard 18 1998
Introduction au génie logiciel # 2
Génie logiciel 37
Estimation
• Principes généraux
• Quelques techniques
• La méthode Cocomo
Génie logiciel 38
Estimation
Il est difficile de prévoir...surtout l'avenir
B.Shaw
Nécessité de précision pour :
A. Beugnard 19 1998
Introduction au génie logiciel # 2
Génie logiciel 39
Qu’estime-t-on ?
• Le coût
• La taille du système
Génie logiciel 40
Niveau
d’information
volume nécessaire niveau de précision %
Ordre de grandeur
30 30
Avant projet
20 20
Préliminaire
10 10
Courants
5 5
Détaillé
- +
© A. Beugnard ENST Bretagne
A. Beugnard 20 1998
Introduction au génie logiciel # 2
Génie logiciel 41
Génie logiciel 42
Mythe de l’homme-mois
t
Faibles intéractions
#
t
Fortes interactions
Cueillette
A. Beugnard 21 1998
Introduction au génie logiciel # 2
Génie logiciel 43
Pièges à éviter
Génie logiciel 44
Qualités de l'estimation
Best Estimate
A. Beugnard 22 1998
Introduction au génie logiciel # 2
Génie logiciel 45
Qualités de l'estimateur
• Utile au client
• Organisé
• Objectif
• Compétent
• Créatif
• Réaliste
• Manier l'analogie
Génie logiciel 46
Processus d’estimation
• Définir le vocabulaire
• Identifier les composants (WBS) et leurs versions
• Estimer la taille des composants
• Estimer la précision, la porté et la difficulté
• Estimer les ressources nécessaires
• Valider les estimations - Evaluer les risques
(What-if)
• Allouer les ressources
• Suivre et affiner les estimations
A. Beugnard 23 1998
Introduction au génie logiciel # 2
Génie logiciel 47
Estimation
• Principes généraux
• Quelques techniques
• La méthode Cocomo
Génie logiciel 48
Méthodes d'estimations
• Par analogie
• Modèle paramétrique
• Oracle
• PERT
• Bottom-Up
A. Beugnard 24 1998
Introduction au génie logiciel # 2
Génie logiciel 49
Par analogie
Génie logiciel 50
Modèles paramétriques
A. Beugnard 25 1998
Introduction au génie logiciel # 2
Génie logiciel 51
Oracle
• Equipe d'experts
• Atteinte d'un consensus par négociation
Génie logiciel 52
PERT
• Effort = (l+4m+h)/6
* pour être valide, les estimations (l, m, h) doivent être non corrélées (sources différentes)
A. Beugnard 26 1998
Introduction au génie logiciel # 2
Génie logiciel 53
Bottom-Up
– activité ou
– composant élémentaire
Génie logiciel 54
Comparaison
A. Beugnard 27 1998
Introduction au génie logiciel # 2
Génie logiciel 55
• Effort = a (Size)p
Avec :
– Effort en Personnes-Mois
– a impact des paramètres sur l'effort calibré
– Size quantité de travail (SLOC ou FP) estimé
– p exposant (proche de 1) calibré
Taille Estimation
facteurs
Génie logiciel 56
• Effort = a (Size)p
Avec :
– Effort en Personnes-Mois
– a impact des paramètres sur l'effort calibré
– Size quantité de travail (SLOC ou FP) estimé
– p exposant (proche de 1) calibré
facteurs
Taille
© A. Beugnard ENST Bretagne
A. Beugnard 28 1998
Introduction au génie logiciel # 2
Génie logiciel 57
Estimation
• Principes généraux
• Quelques techniques
• La méthode Cocomo
Génie logiciel 58
COCOMO
• Modèle paramétrique
• Facteurs dans le domaine public
• 3 modes de bases
A. Beugnard 29 1998
Introduction au génie logiciel # 2
Génie logiciel 59
COCOMO simple
N = HM / TDEV
HM : Hommes-Mois (152heures)
KLSL : Kilo de Ligne de Source Livrées
Génie logiciel 60
COCOMO intermédiaire
• Quinze facteur correctifs sont introduits, valués
de VeryLow à XtraHigh
• Pour le projet :
– fiabilité requise du logiciel
– taille de la base de donnée
– complexité du produit
A. Beugnard 30 1998
Introduction au génie logiciel # 2
Génie logiciel 61
COCOMO intermédiaire
• Pour le personnel :
– aptitude à l'analyse
– expérience du domaine
– expérience de la machine virtuelle
– aptitude à la programmation
– expérience du langage
Génie logiciel 62
COCOMO détaillé
A. Beugnard 31 1998
Introduction au génie logiciel # 2
Génie logiciel 63
Estimation de la taille
Génie logiciel 64
Estimation
• Principes généraux
• Quelques techniques
• La méthode Cocomo
A. Beugnard 32 1998
Introduction au génie logiciel # 2
Génie logiciel 65
Function Point
Génie logiciel 66
Comparaison de SLOC et de FP
Case A Case B Difference
ASM ADA
(100K) (30K)
requirements 20 20 0
analysis and design 30 30 0
coding 100 30 -70
testing 50 30 -20
documentation 20 20 0
management 30 20 -10
A. Beugnard 33 1998
Introduction au génie logiciel # 2
Génie logiciel 67
Comparaison de SLOC et de FP
8 input X 4= 32
17 output X 5= 85
12 inquiry X 4= 48
5 internal X 10 = 50
5 external X 7= 35
total 250
complexity adjusts 1.2
FP 300
Génie logiciel 68
Comparaison de SLOC et de FP
Case A Case B Difference
ASM ADA
(100K) (30K)
requirements 20 20 0
analysis and design 30 30 0
coding 100 30 -70
testing 50 30 -20
documentation 20 20 0
management 30 20 -10
A. Beugnard 34 1998
Introduction au génie logiciel # 2
Génie logiciel 69
Conseils
Génie logiciel 70
Quelques trucs...
A. Beugnard 35 1998
Introduction au génie logiciel # 2
Génie logiciel 71
Bibliographie
• D.J. Reifer, Cost estimation, Encyclopædia of Software Engineering,
pp209-220, J.J. Marciniak ed, John Wiley & Sons, Inc, New York,
1994
• B.W Boehm, Software Engineering Economics, Prentice Hall, Inc,
Englewood Cliffs, NJ, 1981
• D.V. Ferens, COCOMO, Encyclopædia of Software Engineering,
pp103-110, J.J. Marciniak ed, John Wiley & Sons, Inc, New York,
1994
• J.B Dreger, Function Point Analysis, Prentice Hall, Inc, Englewood
Cliffs, NJ, 1989
• C.S. Fugate, Estimating the cost of Object-Oriented Programming,
Journal of Parametrics, XI(1), Aug 1991
• C. Jones, Productivity, Encyclopædia of Software Engineering,
pp869-872, J.J. Marciniak ed, John Wiley & Sons, Inc, New York,
1994
A. Beugnard 36 1998