http://deptinfo.unice.fr/twiki/bin/view/Linfo/ABGP
P. Collet 1 P. Collet 2
Evaluation Programme
Projet réalisé lors des TD : Cahier des charges et plan de Principes et méthodes pour l'analyse des besoins, la conduite
tests d'un très grand projet, par équipe de 4 à 5 d'un projet de développement logiciel de grande taille
Evaluation intermédiaire : 20 % Principes d'assurance qualité, de validation et de vérification
Evaluation finale sur le rendu du projet : 40 % associés
Réalisation d’une analyse complète des besoins pour un grand
système informatique
étude de faisabilité
Interrogation de 2h (40 %) à la fin du cours / support de analyse des besoins clients
cours autorisé définition des fonctionnalités
définition des contraintes non fonctionnelles
organisation du projet
Présence obligatoire et primordiale au premier Planification
TD pour la formation des équipes plan des tests
P. Collet 3 P. Collet 4
1
Plan du cours
Introduction : mythes et réalités
Analyse des besoins, cahier des charges Introduction
Cycle de vie du logiciel
Gestion de projets Pourquoi ?
Assurance Qualité : modèles et normes Génie logiciel : définition(s)
Pourquoi c’est difficile ?
Validation et Vérification
P. Collet 5
P. Collet 6
2
Pourquoi ne construit-on pas les logiciels
La crise du logiciel comme on construit des ponts ?
Grosses erreurs : Les projets logiciels Génie logiciel
Génie civil
Les sondes perdues (Vénus ne livrent pas le
Échecs moins nombreux Échecs très nombreux
dans les années 60, Mars produit dans les temps
L ’écroulement est grave et Crash système pas considéré
en 99) coûtent beaucoup plus met en danger l ’utilisateur comme inhabituel
La fausse attaque de chers que prévu.
On ne répare pas un pont Cause du bug pas directement
missiles (1979) délivrent un produit de « buggé », on reconstruit un identifiable
Les missiles Patriotes qualité très faible pont qui s’écroule.
Dommages mineurs
(1991) échouent dans la On inspecte tous les ponts
A part dans les systèmes
majorité des cas !!!
1er vol d’Ariane 5 (1996) construits sur le même modèle critiques, on considère que le
Étude américaine de Les ponts résistent à toutes les logiciel ne peut anticiper
L’aéroport de Denver 1995 : 81 milliard $ /
3
Les mythes de gestion de projet Les mythes du client
Les outils actuels sont la solution Une idée générale des objectifs est suffisante
un nul avec un outil est toujours un nul pour commencer le codage – on ajoutera les
Si on est en retard, on ajoutera du personnel détails plus tard
Une forte communication entre clients et développeurs
est toujours nécessaire
Les changements peuvent être facilement
répercutés parce que le logiciel est flexible
Les changements ne peuvent être évités, c’est la vie...
Les changements tardifs coûtent très chers
P. Collet 13 P. Collet 14
P. Collet 15 P. Collet 16
4
Pourquoi c’est difficile ? Pourquoi c’est difficile ? (suite)
programme intégré dans un système (interfaces) * 3 évolutive : se méfier de l’effet 2ème version...
L’optimisme !
) produit logiciel intégré dans un système : *9
Ajouter du personnel à un projet en retard ne fait que
) The mythical man-month de Frédéric Brooks (1975)
le retarder plus Loi de Brooks
P. Collet 17 P. Collet 18
5
Le logiciel, fin 2011 Liste (non-exhaustive) des problèmes
Fiabilité meilleure mais… Productivité
Coûts et délais
partout, sous toutes les formes
Simplicité
gros, très très gros, cher, très très cher ! Uniformité, orthogonalité, unicité, normalisation
Types : Communication H/M
Sur mesure (à partir de composants, de services) Ergonomie, interactivité, multimédia, simplicité,
Générique (les progiciels) rapidité, documentation (contextuelle)
P. Collet 21 P. Collet 22
6
Génie logiciel : les besoins Qualités du logiciel
Langages pour décrire Il faut bien distinguer
Outils pour manipuler
Les qualités utiles à l’utilisateur, donc a priori
Méthodes pour décider souhaitées par le client
Phases d’exploitation
Théories pour démontrer
Professionnels pour réaliser Les qualités utiles au développeur
Phases de construction et de maintenance
Logistique pour supporter
P. Collet 25 P. Collet 26
Fiabilité = Validité + Robustesse Robustesse: faire tout ce qu’il est utile et possible de
faire en cas de défaillance: pannes matérielles, erreurs
Validité (Efficacité) ≡ correction, exactitude humaines ou logicielles, malveillances…
Efficacité : qualité d’une chose ou d’une personne Performance (parfois appelée efficacité)
qui donne le résultat escompté Utiliser de manière optimale les ressources matérielles :
)Assurer exactement les fonctions attendues, définies temps d’utilisation des processeurs, place en mémoire,
dans le cahier des charges et la spécification, en précision…
supposant son environnement fiable Convivialité
)Adéquation aux besoins Réaliser tout ce qui est utile à l’utilisateur, de manière
simple, ergonomique, agréable (documentation,
aide contextuelle…
P. Collet 27 P. Collet 28
7
Qualités pour le développeur Qualités pour le développeur (suite)
Documentation Interchangeabilité
Tout ce qu’il faut, rien que ce qu’il faut, là où il Pouvoir substituer une variante d’implémentation sans
conséquence fonctionnelle (et souvent non-
faut, quand il faut, correcte et adaptée au fonctionnelle) sur les autres parties
lecteur : crucial !
Évolutivité
Modularité = Fonctionnalité + Interchangeabilité Facilité avec laquelle un logiciel peut être adapté à un
+ Évolutivité + Réutilisabilité changement ou une extension de sa spécification
Fonctionnalité Réutilisabilité
Aptitude à être réutilisé, en tout ou en partie, tel que ou
Localiser un phénomène unique, facile à comprendre
par adaptation, dans un autre contexte : autre
et à spécifier application, machine, système…
P. Collet 29 P. Collet 30
P. Collet 31 P. Collet 32
8
Objectifs de qualité Les 3 P
formation
compétences
communication
Réduire le nombre Adéquation aux besoins
Personnes
Système informatique
Analyse des besoins “Un ensemble d’éléments qui sont organisés pour
accomplir un but prédéfini par un traitement de
et cahier des charges l’information”
utilise des :
Logiciels
Matériels (informatiques)
Terminologie
Personnes
La faisabilité Bases de données (ensemble organisée de données)
Documentation
L ’analyse des besoins
Procédures (étapes qui définissent comment utiliser
Le cahier des charges les éléments du système)
P. Collet 35 P. Collet 36
9
Développement d’un système Différence dans les maîtrises
La maîtrise d’ouvrage
Entité responsable de l’expression du besoin
Souvent non informaticien
Besoin réel / budget
) Possibilité de maîtrise d’ouvrage déléguée
La maîtrise d’œuvre
Entité responsable de la concrétisation de l’idée en outil
informatique
Pas de connaissance fonctionnelle
Bons choix techniques, adéquation avec les besoins,
performances…
P. Collet 37 P. Collet 38
P. Collet 39 P. Collet 40
10
Étude de faisabilité :
aspects économiques Analyse des besoins
Analyse du rapport Coût/Bénéfice : Définition des besoins à différents niveaux d’abstraction :
Besoins de l’utilisateur
Coût du système
P. Collet 41 P. Collet 42
P. Collet 43 P. Collet 44
11
Initier la communication Une bonne analyse
La première réunion peut être bizarre Objectif premier : Maximiser la satisfaction des
Pas de connaissance des intervenants
Attentes différentes utilisateurs et des clients
Mais : chacun veut que cela réussisse
12
Contrer les problèmes du
Difficultés à établir le cahier langage naturel
Expression de la faisabilité Imprécisions et ambiguïtés qui devront être
utiliser une maquette pour simuler levées lors de la phase d’analyse
)Scinder le texte en paragraphes pour une meilleure
Précision et non ambiguïté traçabilité
utiliser un formalisme différent du langage naturel ? )Ne pas inclure plusieurs concepts dans un même
paragraphe
Le cahier des charges est un document technique,
)Ne pas mélanger :
sans considération économique
Besoins : ce qui doit être fourni
sauf si on lui adjoint un plan de projet Buts : souhait, vœu pieu, mais impossible à tester
Recherche de précision, cohérence, complétude, Contraintes : qui doivent être décrites séparément
testabilité, traçabilité, maintenabilité, flexibilité...
P. Collet 49 P. Collet 50
13
Un plan type
Couverture : norme AFNOR X50-151
1. Présentation générale du problème
Nom du projet / du produit 1.1 Projet
1.1.1 Finalités
1.1.2 Espérance de retour sur investissement
Date 1.2 Contexte
1.2.1 Situation du projet par rapport aux autres projets d e l’entreprise
Numéro de version 1.2.2 Etudes déjà effectuées
1.2.3 Etudes menées sur des sujets voisins
P. Collet 53 P. Collet 54
2.1.2 Fonctions de service complémentaires (qui améliorent, facilitent ou 3.1.2 Niveau atteint pour chaque critère d ’appréciation de cette fonction et
modalités de contrôle
complètent le service rendu)
3.1.3 Part du prix attribué à chaque fonction
2.1.3 Contraintes (limitations à la liberté du concepteur-réalisateur)
3.2 Pour l ’ensemble du produit
2.2 Critères d ’appréciation (en soulignant ceux qui sont déterminants pour l ’évaluation
3.2.1 Prix de la réalisation de la version de base
des réponses)
3.2.2 Options et variantes proposées non retenues au cahier des charges
2.3 Niveaux des critères d ’appréciation et ce qui les caractérise
3.2.3 Mesures prises pour respecter les contraintes et leurs conséquences
2.3.1 Niveaux dont l ’obtention est imposée économiques
2.3.2 Niveaux souhaités mais révisables 3.2.4 Outils d ’installation, de maintenance … à prévoir
3.2.5 Décomposition en modules, sous-ensembles
3.2.6 Prévisions de fiabilité
3.2.7 Perspectives d’évolution technologique
P. Collet 55 P. Collet 56
14
Cahier des charges / Plan projet : Cahier des charges / Plan projet :
Détails d’une réponse Détails...
Limites et interfaces
1. Introduction
Tout ce que le système pourrait faire implicitement, mais qu’il ne fera
Résumé (ou Objectifs) pas
une demi page pour aller à l ’essentiel avec vue d ’ensemble Toutes les interactions avec du matériel ou du logiciel extérieur, déjà
présent ou apporté par un autre fournisseur
Fournitures
liste de ce qui est livré au client (logiciel, matériel…) 3. Gestion
Définitions et acronymes Objectifs et priorités
explication de tous les termes spécifiques au projet ou Objectifs ? La qualité au meilleur prix et dans les délais !!!
techniques au sens informatique Priorités : Si on est en retard ou que cela doit coûter plus cher,
2. Organisation du projet explication des propositions
Processus Hypothèses, dépendances, contraintes
Hypothèses : Tous les décisions prises arbitrairement par rapport à
décomposition du projet dans le temps, justification du modèle
l ’appel d ’offres
de développement utilisé
Dépendances : Identification des liens avec d ’autres systèmes
Organisation structurelle informatiques (Cf. limites et interfaces) ou des actions à entreprendre
les rôles de chaque acteur du développement Contraintes : Identification de certaines contraintes posées par
l ’existant ou par les besoins utilisateurs
P. Collet 57 P. Collet 58
P. Collet 59 P. Collet 60
15
Cahier des charges / Plan projet :
Détails... Revue de spécification : questions
6. Fonctions du produit Interfaces importantes décrites ?
Une grande fonctionnalité
sous fonctionnalité Diagrammes clairs ? Texte supplémentaire nécessaire ?
opération…
P. Collet 63 P. Collet 64
16
Les phases du cycle de vie Objectifs
Retrait ou Fixés par les donneurs d’ordre
Objectifs
remplacement
le management
Définition
des besoins Maintenance ou une (bonne) idée...
Analyse Mise en
des besoins exploitation Quelques définitions
Clients : ceux qui veulent le produit
Qualification
Planification
Utilisateurs : ceux qui vont l ’utiliser
Validation et
Conception Implémentation Développeurs : ceux qui vont le fabriquer
Intégration
et tests unitaires
P. Collet 65 P. Collet 66
17
Planification Conception
Découpage du projet en tâches avec enchaînement Définition de l’architecture du logiciel
Affectation à chacune d’une durée et d’un effort Interfaces entre les différents modules
Définition des normes qualité à appliquer Rendre les composants du produits indépendants
Choix de la méthode de conception, de test... pour faciliter le développement
Dépendances extérieures (matériels, experts…)
) Dossier de conception
) Plan qualité + Plan projet (pour les développeurs) ) Plan d ’intégration
) Estimation des coûts réels ) Plans de test
) Devis destiné au client (prix, délais, fournitures) ) Mise à jour du planning
P. Collet 69 P. Collet 70
P. Collet 71 P. Collet 72
18
Qualification Mise en exploitation
Tests en vraie grandeur, dans des conditions Livraison finale du produit (packaging)
normales d’utilisation Installation chez le client
Tests non-fonctionnels : Est-ce la fin des problèmes ?
Tests de charge
Tests de tolérance aux pannes
Parfois Bêta-test )AU CONTRAIRE
)Rapports d’anomalie )Ce n’est rien en comparaison de la...
Déterminant dans la relation client-fournisseur
P. Collet 73 P. Collet 74
19
Modèle en cascade (1970)
Les approches de développement
Analyse des besoins
Approche cartésienne, déterministe vérification
Specif. fonctionnelles vérification Changement
vérification dans l’expression
structurée descendante : cascade ou V Planification des besoins
vérification
Approche heuristique, par prototypage Conception
vérification
ascendante : incrémental ou prototypage Implémentation
tests unitaires
Intégration
Approche objets : tests
Qualification
aucune organisation spécifique n’est vraiment tests
Retrait
P. Collet 77 P. Collet 78
est difficile
Conception Tests
détaillée unitaires
Le produit apparaît tard
Seulement applicable pour les projets qui sont Programmation
20
Comparaison Prototypage
Le cycle en V construire /
Écoute du améliorer
permet une meilleure anticipation client la maquette
évite les retours en arrière
Mais
le cadre de développement est rigide Le client
essaie
la durée est souvent trop longue la maquette
le produit apparaît très tard
P. Collet 81 P. Collet 82
21
Modèle incrémental Le développement incrémental
Analyse des besoins combine des éléments des modèles linéaires et du
vérification prototypage
Spécif. & Planification
vérification produit des incréments livrables
Concept. globale
vérification
se concentre sur un produit opérationnel (pas de
prototype jetable)
Incrément N
peut être utilisé quand il n’y a pas assez de
conception détaillée, ressources disponibles pour une livraison à temps
codage, tests uni.,
intégration, livraison
)Le premier incrément est souvent le noyau
Exploitation
)Les incréments aident à gérer les risques
Retrait techniques (matériel non disponible)
P. Collet 85 P. Collet 86
P. Collet 87 P. Collet 88
22
RUP : Rational Unified Process
Modèle en spirale (suite) Phases
Analyse
Élaboration Construction Transition
cascade
Analyse & Conception
Implémentation
Tests
Les premières itérations peuvent être des modèles Déploiement
)Les augmentent considérablement si le contrôle Le RUP est à la fois une méthodologie et un outil prêt à
l’emploi (documents types partagés dans un référentiel
faiblit Web)
plutôt pour des projets de plus de 10 personnes
P. Collet 89 P. Collet 90
P. Collet 91 P. Collet 92
23
XP => Développement Agile Manifeste Agile : 12 principes
Collaboration étroite entre équipe(s) de 1. Our highest priority is to satisfy the costumer through early and
continuous delivery of valuable software.
programmation et experts métier 2. Welcome changing requirements, even late in development. Agile
process harness change for the customer´s competitive advantage.
Communication orale, pas écrite 3. Deliver working software frequently, from a couple of weeks to a
Livraison fréquente de fonctionnalités couple of months, with a preference to the shorter timescale.
déployables et utilisables (= qui apportent une 4. Business people and developers must work together daily throughout
the project.
valeur ajoutée) 5. Build projects around motivated individuals. Give them the
Equipe auto-organisée et soudée environment and support they need, and trust them to get the job
done.
Test-Driven Development 6. The most efficient and effective method of conveying information to
and within a development team is face to face conversation.
Ecrire les tests avant le code…
P. Collet 93 94
95 96
24
Comparaison des 3 processus dans le vent
Scrum : rôles et pratiques Points forts Points faibles
Itératif Coûteux à personnaliser
Scrum Master Product Backlog
Spécifie le dialogue entre les différents
expert de l’application de Scrum état courant des tâches à accomplir
intervenants du projet : les livrables, les Très axé processus, au détriment du
Product owner Effort Estimation RUP plannings, les prototypes… développement : peu de place pour le code et
responsable officiel du projet permanente, sur les entrées du backlog Propose des modèles de documents, la technologie
Scrum Team Sprint et des canevas pour des projets types
équipe projet. itération de 30 jours
Itératif Ne couvre pas les phases en amont et en
Customer Sprint Planning Meeting Simple à mettre en œuvre aval au développement : capture des besoins,
participe aux réunions liées aux réunion de décision des objectifs du support, maintenance, tests d'intégration…
Fait une large place aux aspects
fonctionnalités prochain sprint et de la manière de les
implémenter XP techniques : prototypes, règles de Élude la phase d'analyse, si bien qu'on peut
Management développement, tests… dépenser son énergie à faire et défaire
prend les décisions Sprint Backlog
Innovant: programmation en duo… Assez flou dans sa mise en œuvre: quels
Conduite de Projet
an K€ Vie limitée
Plusieurs phases (dont conception)
Env. 1 < 300 à Planning, réunions d’avancement
1à5 Contrôle qualité interne et gestion de versions
an 500 K€
Prototypage Gestion d’un projet
Etudes préliminaires et cycle en spirale
1à2
6 à 15 < 5 M€
Documents de suivi et d’anomalie, inspections
Gestion de configurations
Ce qu’il ne faut pas faire
ans
Plans de validation et d’intégration
Procédures de communication
Planification : PERT et Gantt
2 ans
Recettes intermédiaires
Contrôle qualité permanent Estimation des coûts, métriques
16 et plus > 5 M€
Organisation du travail
et plus Gestion des sous-projets et de la sous-traitance
Tests de non-régression
Effort de synthèse et base historique
P. Collet 99
P. Collet 100
25
Les 3 P
formation
compétences
Génie logiciel gestion de projet
communication
Beaucoup de problèmes de développement
Personnes logiciel sont des problèmes de gestion
cahier des
planification charges (management)
coordination conception
gestion Estimation des coûts
code source
mesures exécutable Estimation des durées, des délais
analyse documentation
Ordonnancement des tâches
conception utilisateur
implémentation cas de test Gestion des changements
résultats des
Processus Produits
tests
Contrôle des versions et gestion des configurations
demande de
changement
P. Collet 101 P. Collet 102
26
Planification des tâches Suivi de la planification
Définir les activités constituant le projet Réaliser des réunions d’avancement du projet de
Détecter les jalons (milestones) du projet façon périodique
événements significatifs dans le projet
Évaluer les résultats de toutes les revues
Évaluer les dépendances entre activités
Déterminer si les jalons du projet ont été atteints
Ordonnancer les activités en conséquence
Évaluer l’effort nécessaire pour chaque activité Comparer les dates de fin réelles et prévues
durée minimum et maximum Discuter avec les gens (!)
Affecter les ressources nécessaires aux tâches
S’assurer de la bonne répartition des ressources
P. Collet 105 P. Collet 106
27
Gestion de
Gestion des changements configurations
Demande de changement Projets, packages,
classes
Identifier l’objet du changement
Propriétaire,
Estimer le coût du changement
membres d’un
Déterminer si, et quand le changement doit être appliqué groupe
Mettre en place un plan d’implémentation du changement
Version &
Publication
Mettre en œuvre le plan (release)
P. Collet 109 P. Collet 110
28
Que peut-on faire contre les
limites irréalistes ? Les plus mauvaises approches
Vous ne pouvez pas les modifier Rassemblement de vantards
Vous ne pouvez pas refuser de faire le travail Décisions technologiques influencées par d’éminentes
)Réaliser des estimations détaillées personnes, des magazines, etc.
)Essayer d’utiliser des modèles incrémentaux Mort par planification intensive
)Définir les fonctionnalités critiques Une planification excessive entraîne des plannings
)Reporter les autres fonctionnalités à des phases complexes qui vont causer des problèmes en aval
ultérieures
“On ne peut pas commencer tant qu’on n’a pas un plan
)Expliquer au client pourquoi vous ne pouvez pas
d’implémentation complet”
respecter la date limite (en utilisant les estimations
basées sur les performances de projets passés)
P. Collet 113 P. Collet 114
29
Les plus mauvaises approches Problèmes de gestion
Gestion irritante Mauvaise gestion
Indécision permanente Pas de direction à cause d’une minimisation ou
d’un oubli des activités clés et des risques
“Bon, et qu’est qu’on fait maintenant ?” “Que s’est-il passé ? Tout allait bien et puis
“Il faudrait régler ça avec les gens du tout d’un coup… BOOM !”
management avant de commencer.” Un petit peu de Freud
Power to salesmen ! Conflits de personnalité au sein de la direction,
entre les chefs de projet, etc.
L’équipe de direction s’engage sur des délais
Les e-mails sont dangereux
au delà des capacités de l’organisation
Ils ne remplacent jamais les réunions
P. Collet 117 P. Collet 118
30
Caractéristiques de la WBS Graphe PERT
Elle permet au chef de projet d’établir le graphe PERT: Program Evaluation and Review Technique
PERT et de faire un suivi budgétaire
doit être complète, pour élaborer un graphe PERT correct Graphe de dépendances, pour l’ordonnancement
doit être non ambiguë, pour budgéter correctement le Pour chaque tâche, on indique une date de début et de
projet et contrôler les coûts par la suite fin, au plus tôt et au plus tard
les résultats des activités doivent être mesurables pour Le diagramme permet de déterminer le chemin critique
évaluer l’avancement général qui conditionne la durée minimale du projet
(0,0) 4 (0,0) 4
DTA FTA (0,2) (9,13)
A2 A5 A2 A5
2 4 2 4
Estimation de la durée des tâches : ni optimiste, ni pessimiste Partant du début, calcul « aller » de la gauche vers la droite :
) DTO : date de début au plus tôt pour une tâche, la durée de début au plus tôt est égale à la plus grande
) FTO : date de fin au plus tôt des dates de fin au plus tôt des tâches qui la précèdent
) DTA : date de début au plus tard FTO = DTO + durée
) FTA : date de fin au plus tard ) Délai de réalisation du projet
P. Collet 123 P. Collet 124
31
PERT : calcul des dates au plus
tard PERT : marges et chemin critique
(2,5) (9,15) (2,5) (9,15)
A1 A4 A1 A4
(0,0) 3 6 (0,0) 3 6
(2,5) (9,15) (15,15) (15,15)
(5,9) (2,5) (5,9) (9,15)
Début Début
A3 Fin A3 Fin
(0,0) 4 (0,0) 4
(0,2) (9,13) (15,15) (0,2) (9,13)
(5,9) (5,9) (15,15)
A2 A5 A2 A5
2 4 2 4
(0,2) (11,15) (0,2) (11,15)
Partant de la fin début, calcul « retour » en sens inverse : Durée maximum d’une tâche = FTA -DTO
) pour une tâche, la durée de fin au plus tard est égale à la plus petite Marge totale d’une tâche = FTA - FTO
des dates de début au plus tard des tâches qui lui succèdent ) Une tâche est critique si sa durée est égale à sa durée maximum
) DTA = FTA - durée ) Le chemin critique est le plus long, où toutes les tâches sont critiques
P. Collet 125 P. Collet 126
32
Gantt : exemple Évaluation des coûts et durées
Analogie avec des projets déjà achevés
Expertises et retours sur expérience
Décomposition du projet pour estimation
)Modélisation du processus (Cf. CMM plus loin)
33
Métrique de taille des applications
Métrique de taille : Points de fonction orientées objets
IBM (1979) Table de correspondance Lorenz, Kidd: Object-oriented software metrics, Prentice Hall,
pour plus de 500 langages 1994
Valeurs connues tôt dans le
Nombre de cas d’utilisation
cycle de vie, indépendante
Nombre de classes
des langages
Nombre de classes clé
Paramètres + coefficients ) Marge d ’erreur : 200 % Un client considérerait-il cette classe comme importante ?
(nb d ’entrées, sorties…) (contre 800% pour LOC) Découvert tôt dans le projet
Ne pas prendre en compte : IHM, communication, exception
Facteur de complexité ) Projets orientés gestion Nombre de classes support
Degré d ’influence ) Feature points pour les Indicateur du volume de travail
version 3 en 1990, projets industriels Nombre moyen de classes support par classes clé
Intensif IHM : 2-3 x le nombre de classes clé
version 4 en fin d’évaluation
P. Collet 133 P. Collet 134
34
COCOMO : modèle de base COCOMO : des formules
Estimation de l ’effort (MM) en fonction des LOC
et d ’un facteur d ’échelle qui dépend du projet Projet MM TDEV
3 types de projet sont identifiés :
organique : innovation minimale, organisation simple et Organique 2.4(KDSI)1.05 2.5(MM)0.38
petites équipes expérimentées (ex : petite gestion…)
médian (semi-detached) : degré d ’innovation
raisonnable (ex: banque, compilateurs…) Médian 3.0(KDSI)1.12 2.5(MM)0.35
imbriqué (embedded) : innovation importante,
organisation complexe, couplage fort et nombreuses
Imbriqué 3.6(KDSI)1.20 2.5(MM)0.32
interactions (ex : gros systèmes, avioniques...)
35
Les hypothèses La distribution par phases
Le KDSI «livré» exclut en général les environnements Prise en compte de la distribution de l’effort
de tests, les supports de développement... et du temps par phase (en %)
Une instruction source exclut les commentaires, mais RPD: Requirements and Preliminary Design
inclut le shell DD: Detailed Design
Hommes*mois (MM) correspond à 152 heures CUT: Code and Unit Test
(normes américaines !) et tient compte des
IT: Integration and Test
vacances, arrêts maladie...
En fait, c’est même trop avec les 35 heures, mais…
TDEV correspond au temps entre spécifications ) des tableaux, encore des tableaux...
fonctionnelles et intégration
P. Collet 141 P. Collet 142
36
COCOMO : modèle médian COCOMO 2
Introduit 13 facteurs de coût (cost drivers) sur le COCOMO 2 (1998)
logiciel, le matériel, le personnel et le projet : pour les projets basés sur la réutilisation de
composants
Fiabilité requise
possibilité de recalibrage sur les données de
Volumes des données
l’entreprise
...
3 modèles :
Contraintes de temps d ’exécution
modèle de composition d ’application (GUI builder)
… modèle avant projet pour obtenir une estimation à
Contraintes de délais base de facteurs de coûts et des LOC
modèle post-architecture, à utiliser après le
développement de l ’architecture générale
P. Collet 145 P. Collet 146
37
Nécessité de la structuration Comment s’organiser
Les équipes doivent être structurées pour Petit groupe de Structuration forte
diminuer le temps passé à communiquer travail sans par le chef
La communication un chef de projet dirige
autorité définie
de 2 à 5 ingénieurs
améliore la compréhension du sujet travail par consensus un adjoint peut le
permet une plus grande mobilité dans le projet le travail de chacun est remplacer
celui de tous un contrôleur gère
mais
programmes,
fait perdre du temps Le travail enrichit toute configurations et
l ’équipe documentation
peut nuire à la documentation, car les besoins de
communication externe sont plus faibles
)Le consensus est-il )Structure lourde
facile à trouver ?
P. Collet 149 P. Collet 150
38
Assurance Qualité : définition
Mise en œuvre d ’un ensemble approprié de
dispositions préétablies et systématiques destinées
Assurance Qualité à donner confiance en l’obtention de la qualité
requise
AFNOR
Définition Les moteurs de la qualité logicielle
Business : retour sur investissement, analyse
Les normes ISO-9xxx coûts/bénéfices, aspects politiques
Technologie + outils logiciels + mesures
Les modèles CMM et CMMI
Organisation du processus
Ressources humaines
l’emploi
Contrôle de la qualité = Ensemble de
inspections
Pourquoi une normalisation internationale ?
revues
tests
V&V
Pour éviter les obstacles techniques au commerce
ISO : (International Standards Organisation) : fédération
internationale des organismes nationaux de normalisation
pour assurer la qualité
Exemples : ISO 9000, DOD 2167A, IEEE, AFNOR
P. Collet 155 P. Collet 156
39
ISO 9000 (1987, 1994) Le référentiel ISO 9000
Ensemble de référentiels de bonnes pratiques de management en Responsabilité de la direction Maîtrise des équipements de
matière de qualité Système qualité contrôle, de mesure et d’essais
Revue de contrat État des contrôles et essais
La certification atteste que le système qualité de l’entreprise est
40
ISO 9000 : Mise en œuvre (suite) ISO 9000 : Intérêts pour l’entreprise
Déterminer tous les processus inhérents aux En interne :
métiers de l’entreprise
Amélioration de la compétitivité (rationalisation)
depuis la prise de commande
jusqu’à la livraison du produit et la maintenance Diminution des coûts (réduction des défauts)
41
Un CMM, des CMMs CMM : principes
Un CMM est un modèle de référence de Comprendre l’état actuel (courant) du processus
bonnes pratiques dans un domaine de développement :
spécifique, afin de permettre d’améliorer le Développer la vision souhaitée du processus
fonctionnement des équipes de travail Établir une liste des actions nécessaires pour
Chaque CMM peut différer selon améliorer le processus
La discipline Produire un plan pour accomplir les actions
La structure nécessaires
L’étape de maturité Attribuer des ressources pour exécuter le plan
¡ GOTO Étape 1
P. Collet 165 P. Collet 166
42
Processus reproductible (niveau 2) Processus reproductible : actions clé
Fournit des contrôles sur l’établissement des plans et Établir un processus de groupe
les engagements Objectif constant : améliorer le processus
Est en accord avec les estimations Missions à plein temps pour le personnel
Établir une architecture du processus de
Problème : basé sur des expériences passées dans la
réalisation du même travail développement
description des activités techniques et de gestion
pour une bonne exécution du processus
Risques :
décomposition des tâches
nouveaux outils et méthodes
nouvelles sortes de produit Introduire des méthodes et
nouvelles personnes des technologies de
génie logiciel
P. Collet 169 P. Collet 170
Actions clé :
Mettre en place un ensemble minimum
Actions clé :
de mesures Mettre en place une récupération
Établir une base de données du automatique
processus et fournir des Analyser les données et
ressources pour la maintenir modifier le processus
P. Collet 171 P. Collet 172
43
Optimisation du processus (niveau 5) De CMM à CMMI
De nouveau : analyser les données pour Le succès du CMM « logiciel » a entraîné la
déterminer les améliorations possibles création d’autres CMMs :
People, System Engr, System Security…
Leurs différences de structure et de niveaux de
Mais maintenant, les données sont maturité rendent complexes leur utilisation
disponibles pour justifier l’application de combinée
CMMI : CMM Integrated
technologies appropriées à diverses
Principes du CMMI
Vue structurée de l’amélioration du processus à
l’intérieur d’une organisation
Quelques outils du CMMI Vérification et Validation
Des Modèles sur 4 disciplines (System Engineering,
Software Engineering, Integrated Product and Process Principes
Development, Supplier Sourcing)
Des méthodes d’évaluation
Approches statiques
Des méthodes de formation Approches dynamiques
Bénéfices ? Intégration
De l’amélioration de processus partout !
P. Collet 175
P. Collet 176
44
Contrôler la qualité Principes de V&V
Contrôle de la qualité = Ensemble d’inspections, de revues Deux aspects de la notion de qualité :
et de tests pour trouver des erreurs, des défauts…
Conformité avec la définition : VALIDATION
Idées préconçues :
Réponse à la question : faisons-nous le bon produit ?
La qualité ne peut être évaluée que lorsque le code est disponible
Contrôle en cours de réalisation, le plus souvent avec le client
La qualité ne peut être uniquement améliorée par la suppression
d’erreurs dans le code Défauts par rapport aux besoins que le produit doit satisfaire
Mais les produits intermédiaires sont contrôlables Correction d’une phase ou de l’ensemble : VERIFICATION
Prototypes / maquettes Réponse à la question : faisons-nous le produit correctement ?
Documents de spécification, de conception Tests
Code
Erreurs par rapport aux définitions précises établies lors des
Jeux de tests
phases antérieures de développement
P. Collet 177 P. Collet 178
45
Problèmes Amplification des défauts (1)
Plus de 50 % des erreurs sont découvertes en
phase d’exploitation
Le coût de réparation croit exponentiellement avec Erreurs passées à travers
Pourcentage
l’avancée dans le cycle de vie d’efficacité
)Contrôles tout au long du cycle de vie + Qualification Erreurs amplifiées 1:x de la
Erreurs de détection Erreurs passées
l’étape précédente d’erreurs à l’étape suivante
Problèmes lors des contrôles : Nouvelles erreurs générées
prééminence du planning sur la qualité
sous-estimation des ressources
par les développeurs (activité inutile ?)
par les dirigeants (budgets séparés pour développement et
maintenance !)
P. Collet 181 P. Collet 182
Nouvelle approche /
Amplification des défauts (2) amplification des défauts
Hypothèse : amplification 1:0.5 Hypothèse : amplification 1:0.5
Conception préliminaire Conception préliminaire
0 Conception détaillée 0 Conception détaillée
0 0% 10 10 Codage 0 50 5 5 Codage
10 5 0% 40 10 % 3 50 16
40 16
25 85 25 % 25
20 0% 8 50
25 25 %
46
V & V : les moyens Examen critique de documents
Statiques : Minimisation des Validation
problèmes d’interprétation Mauvaises interprétations des
Examen critique des documents : Inspections, revues
documents de référence
Analyse statique du code Point de vue indépendant du Critères de qualité mal
rédacteur appliqués
Évaluation symbolique Hypothèses erronées
Preuve Vérification
Quelle méthode pour
Dynamiques : Forme : respect des normes, examiner les documents ?
Exécution du code : Tests précision, non ambiguïté Pouvoir de détection
Fond : cohérence et Coût
Comment les choisir ?
5 à 10p/h Cahier des
complétude
47
Parcours et inspection Ça marche, les inspections ?
Parcours systématique [Fagan 1976] Inspections de la conception et du code
67%-82% de toutes les fautes sont trouvées par des inspections
le plus souvent du code
48
Tests : définition... Tests exhaustifs ?
Une expérience d’exécution, pour mettre en évidence un Il y a 520 chemins
défaut ou une erreur If then else
Diagnostic : quel est le problème
possibles
Besoin d’un oracle, qui indique si le résultat de l’expérience est En exécutant 1 test
conforme aux intentions
Localisation (si possible) : où est la cause du problème ?
par milliseconde,
) Les tests doivent mettre en évidence des erreurs ! cela prendrait
) On ne doit pas vouloir démontrer qu’un programme 3024 ans pour
marche à l’aide de tests ! tester ce
Souvent négligé car :
les chefs de projet n’investissent pas pour un résultat négatif
programme !
Boucle < 20x
les développeurs ne considèrent pas les tests comme un
processus destructeur
49
Les stratégies de test Test unitaire
Testeur interface
50
Intégration ascendante Intégration en Sandwich
Les modules racines
Les modules A A sont testés avec des
feuilles sont
simulateurs (stubs)
regroupés et
intégrés
B F G B F G
package
package Les testeurs (drivers) sont
C remplacés, un par un, en C
profondeur d’abord
Les modules feuilles sont
) Pas de simulateur regroupés et intégrés
D E ) Mais l’interface apparaît tard D E
51
Organiser l’activité de tests Organiser l’activité de tests (suite)
Qui teste le logiciel ? Les jeux de test sont des produits :
Développeur : comprend bien le système mais, testera Spécification et développement des tests
« gentiment » et est motivé par la livraison Contraintes de reproduction des tests
Testeur indépendant : doit apprendre le système mais, Taille et coût minimum pour une probabilité de détection
essaiera de le casser et est motivé par la qualité
maximum
Mettre en place les différents types de tests : Les tâches associées aux tests
tests unitaires Planification
tests d’intégration
Spécification et réalisation des jeux de tests
tests de validation
tests de qualification Passage des tests et évaluation des résultats
tests de suivi d’exploitation )Commencer le plus tôt possible
P. Collet 205 P. Collet 206
52
Le jeu de test « adéquat »? Test en boîte noire
Teste l’interface des composants
Toutes les méthodes publiques besoins
événements
53
Test : recherche binaire Test : recherche binaire
Deuxième regroupement plus pertinent Classes d’équivalence
Table ordonnée, avec élément recherché présent 1 seul élément, clé présente
Table ordonnée, avec élément recherché absent 1 seul élément, clé absente
Table non ordonnée, avec élément recherché présent Nb pair d’éléments, clé absente
Nb pair d’éléments, clé en première position
Table non ordonnée, avec élément recherché absent
…
Ajout de cas limites et intuitifs Tests en boîte noire résultants
Table à un seul élément Nb pair d’éléments, clé ni en première, ni en dernière
Table à un nombre impair d’éléments (boite grise) position
Nb impair d’éléments, clé absente
Table à un nombre pair d’éléments (boite grise)
Nb impair d’éléments, clé en première position
Table où l’élément recherché est le premier de la table
…
Table où l’élément recherché est le dernier de la table
P. Collet 213 P. Collet 214
l’environnement de tests
)Écriture ou utilisation de système de tests (driver) Pour piloter le lancement des tests, check
Peut être appelé directement, mais surtout
qui peuvent effectuer les tests automatiquement
54
Pourquoi faire des tests
en boîte blanche ? Test en boîte blanche
Les données de test sont produites à partir d’une analyse
Tests en boîte noire:
du code source
Les besoins sont satisfaits
Les interfaces sont appropriées et fonctionnent Critères de test
Tous les chemins
Pourquoi s’occuper de ce qui se passe à l’intérieur ? Toutes les branches
Les erreurs de logique et les suppositions incorrectes Toutes les instructions
sont inversement proportionnelles à la probabilité
d’exécution du chemin !
On croît souvent qu’un chemin ne va pas être exécuté ; Boucle < = 20x
en fait, la réalité va souvent à l’encontre des intuitions
) Analyse du graphe de flot de contrôle
Les erreurs de saisie sont aléatoires; il est vraisemblable
que certains chemins non testés en contiennent ) Analyse du flux de données
P. Collet 217 P. Collet 218
Conclusion
Ne jamais être trop ambitieux…
55