Estimation des projets de l'entreprise numérique
Approche systématique, coûts, qualité et délais
Jacques Printz
Bernard Mesdon
Nicolas Trèves
hermes science
Lavoisier
Préface
Daniel Krob11
Avant-propos
Philippe Menjoulou15
Introduction21
Chapitre 1. Une logique d'identification du coût complet41
1.1. Brève histoire des modèles d'estimation41
1.1.1. Un monde nouveau : l'informatique distribuée45
1.1.2. L'évolution du métier de programmeur49
1.2. Un nouveau métier : l'architecte intégrateur56
1.2.1. Le triangle d'or de l'IS58
1.2.1.1. La dimension « objectif »58
1.2.1.2. La dimension « processus »59
1.2.1.3. Les processus généraux de l'IS61
1.2.1.4. Les processus d'ingénierie62
1.2.1.5. La dimension « homme et organisation »64
1.2.1.6. La dimension « logicielle »67
1.2.1.7. La dimension « temporelle » et l'évolution du système71
1.3. Notion d'usine système/usine logicielle78
1.4. La nature des coûts d'intégration système - Complexité de l'intégration86
1.4.1. Analyse des exigences et architecture système86
1.4.1.1. Cas simple d'une architecture 3-tiers86
1.4.1.2. Rappel sur les couplages en ingénierie87
1.4.1.3. Cas général, architecture multi-tiers93
1.4.2. Complexité de l'intégration - Couplages et interopérabilité94
1.4.2.1. Cas de l'interopérabilité98
1.4.3. Complexité et délai de réalisation103
1.4.4. Complexité des IHM106
1.4.5. Logique d'estimation des coûts d'intégration111
1.4.5.1. Valider les couplages113
1.4.5.2. Analyse qualitative de l'effort de validation des couplages117
1.4.5.3. Influence de la maturité sur les coûts122
1.4.5.4. Analyse quantitative de l'effort d'intégration124
1.4.5.5. Comment estimer ce pourcentage ?127
1.5. Synthèse des coûts induits par le niveau système et applications128
1.5.1. Application au cas des progiciels131
1.5.2. Application à la maintenance et aux évolutions mineures135
Chapitre 2. Les fondamentaux de l'estimation : aspects statiques et dynamiques141
2.1. Les grandeurs fondamentales CQFD et leurs unités de mesure141
2.1.1. Première difficulté : la démarcation et les critères de mesurage142
2.1.2. Seconde difficulté : le rôle de l'observateur humain143
2.1.3. Troisième difficulté : les grandeurs caractéristiques sont discrètes145
2.2. La vision dynamique du processus de développement151
2.2.1. Modèle de référence du cycle projet152
2.2.2. Modèle des tâches des processus projets156
2.2.3. Quelques lois d'échelle simples163
2.2.4. Modèle de découverte des défauts166
2.2.5. Les modes dégradés du modèle de référence166
2.2.6. Le cycle système itératif168
2.3. Les bases de l'estimation172
2.3.1. L'approche fonctionnelle172
2.3.2. L'approche programme : données, instructions et contrôles177
2.4. La machine à produire le logiciel - Usines logicielles de développement182
2.4.1. Les différents rôles dans l'équipe de développement182
2.4.2. Usine développement dans le contexte système183
2.4.3. Situations d'équilibre et de déséquilibre au sein d'un cycle système184
2.5. Impact du multiplexage des ressources sur la productivité188
2.6. Impact de la compression des délais sur la productivité des programmeurs190
2.6.1. Influence de la durée, de l'effectif et des réunions sur la productivité191
2.6.1.1. La durée et les effectifs191
2.6.1.2. La dynamique des réunions et l'effort associé à la communication194
2.7. Le modèle analytique du programmeur isolé parfait (PIP)199
2.7.1. Facteurs matériels et vitesse limite de transcription202
2.7.2. Facteurs combinatoires liés aux nombres de symboles manipulés203
2.7.3. Récapitulatif des paramètres du modèle du programmeur isolé parfait (PIP)221
2.8. Les limites des modèles d'estimation225
2.8.1. Règle de sagesse des directeurs et/ou des chefs de projets228
Chapitre 3. Le modèle COCOMO229
3.1. Introduction229
3.2. Contexte d'utilisation du modèle231
3.2.1. Typologie des programmes informatiques231
3.2.1.1. Programmes S233
3.2.1.2. Programme P233
3.2.1.3. Programme E234
3.3.2. Cycle de développement de référence et phases du modèle COCOMO236
3.3. Le modèle COCOMO 81238
3.3.1. Equations de base du modèle238
3.3.2. Ventilation de l'effort par phase du projet240
3.3.2.1. Stratégie de recouvrement des activités par phase : approche générale240
3.3.2.2. Approche phase/activités du modèle COCOMO240
3.3.2.3. Recouvrement et conduite de projet243
3.3.3. Répartition de l'effort et de la durée par phase245
3.3.4. Répartition par activités de l'effort248
3.4. Cas des applications composites250
3.4.1. Combinaison de S, P, E programmes250
3.4.2. La réutilisation de composants logiciels252
3.4.3. Les progiciels et les COTS254
3.5. Approfondissement de la notion de KISL256
3.5.1. Les facteurs de coût256
3.5.2. Influence des langages de programmation objet260
3.5.3. Prise en compte de l'architecture et de l'intégration262
3.6. Les modèles COCOMO intermédiaire et COCOMO détaillé264
3.6.1. Le modèle intermédiaire264
3.6.2. Le modèle détaillé266
3.7. Le modèle COCOMO II270
3.7.1. Motivations270
3.7.2. Les hypothèses de base du modèle COCOMO II273
3.7.3. Les points d'objet276
3.7.4. Le modèle nominal COCOMO II278
3.7.5. Remarques des auteurs à propos de COCOMO II281
3.8. Compléments COCOMO282
3.8.1. COCOMO 81282
3.8.2. COCOMO II291
Chapitre 4. Estimation par la méthode des points de fonctions299
4.1. Préambule299
4.2. Fondement de la méthode des points de fonctions300
4.2.1. Le poids des données dans les systèmes d'information302
4.2.1.1. Le périmètre304
4.2.1.2. Distinction entrant/sortant304
4.2.1.3. Distinction données internes/données externes305
4.2.1.4. Les interrogations305
4.2.1.5. Les traitements305
4.2.2. Calibrage du modèle309
4.2.3. Logique de la transformation des données en lignes de code313
4.2.4. Les abaques de comptage du modèle IFPUG316
4.2.4.1. Complexité des GDI/GDE316
4.2.4.2. Complexité des ENT317
4.2.4.3. Complexité des SOR et INT317
4.2.4.4. Poids numériques des complexités317
4.2.4.5. Logique de comptage318
4.3. Intérêt et limites d'emploi du modèle PF319
4.3.1. Comment chiffrer le patrimoine applicatif d'une entreprise320
4.3.2. Quelques pathologies fréquentes323
4.3.2.1. Le calcul des points de fonctions à partir des lignes de code source323
4.3.2.2. Les points de tests324
Chapitre 5. Etude du cas des systèmes de la famille C4ISTAR327
5.1. Caractéristiques générales des systèmes C4ISTAR327
5.2. Ingénierie des coûts/délais de projets complexes329
5.2.1. Taille des systèmes331
5.2.1.1. Mutualisation333
5.2.2. Décrire une situation de crise - Le problème de l'IHM334
5.3. Prendre de recul par rapport aux informations patrimoniales disponibles336
5.3.1. Vade-mecum et COCOMO simple336
5.3.2. Conséquence d'un défaut d'analyse de la complexité337
5.3.3. Estimation des lignes de code par le modèle PF338
5.3.4. Influence de l'arbre d'intégration sur le coût341
5.3.5. Cas du système transverse socle technique mutualisé343
5.3.6. Pathologie des lignes de code345
5.3.6. Pathologie des lignes de code345
5.4. Information statistique - Agilité346
5.4.1. Decouverte des défauts sur l'ensemble du cycle346
5.4.2. Coût de correction des défauts348
5.4.3. Agilité348
Conclusion. Loi du bon usage des méthodes351
Annexes353
Bibliographie381
Sigles et acronymes d'usage courant383
Index389