Génie Logiciel
Chapitre 3 : Gestion de projet logiciel
Projet
Combinaison d’un ensemble de ressources mises
ensemble afin de réaliser un objectif spécifique
dans un délais fixé, à un coût fixé.
Humaines
Matérielles
Techniques
Administratives
Financières
En GL, l’objectif est de livrer un logiciel (nouveau
ou non).
Prof. M. BENADDY Génie Logiciel I 2
Caractéristiques d'un projet
Taille
Personnel
Lignes de code (LOC)
Variable en fonction du temps
Durée
Mois, années, etc
Nature
Prof. M. BENADDY Génie Logiciel I 3
Classification de projets
Type du logiciel développé (Pressman)
Difficulté du développement (Boehm)
Techniques de gestion de projet mises en œuvres
(Wysocki)
Nature du projet
Exigence déterminante du projet (Booch)
Taille du logiciel développé
Prof. M. BENADDY Génie Logiciel I 4
Type d'un projet développé (Pressman)
Systèmes
Temps réel
D’affaires
Scientifiques
Embarqués
Personnels
Sur l’internet
D’intelligence artificielle
Prof. M. BENADDY Génie Logiciel I 5
Difficulté de développement (Boehm)
Organique
Petits projets simples
Petites équipes de développement avec expérience
Besoins non rigides
Processus de développement plutôt informel
Embarqué
Contraintes matérielles et logicielles fortes
Besoins rigides
Mise en œuvre stricte des standards
Beaucoup de documentation
Semi-détaché
Mélange de contraintes rigides et non-rigides
Équipes de taille moyenne
Expérience mixte
Prof. M. BENADDY Génie Logiciel I 6
Taille du logiciel
Taille du logiciel Petit Moyen Grand Méga
<=50 KLOC 50 à 300 KLOC 300 – 1M KLOC ≥ 1M KLOC
Nombre de 1à7 8 à 40 40 à centaines Centaines ou
participants milliers
Structures 1 niveau 2 niveaux > 2 niveaux > > 2 niveaux
d'autorité
Durée ≤ 2 ans 2 à 3 ans 3 à 5 ans > 5 ans
Prof. M. BENADDY Génie Logiciel I 7
Personnel Participants
Cadres supérieurs
Leurs décisions influencent souvent le projet
Chef(s) de projet
Planification, motivation, organisation et contrôle du
personnel technique et professionnel
Personnel technique et professionnel
Compétences techniques
Client(s)
Spécification des besoins des utilisateurs
Utilisateurs
Prof. M. BENADDY Génie Logiciel I 8
Profils du personnel technique
Analyste
Analyse les besoins
Produit les spécifications
Interagit avec le client et/ou les utilisateurs
Architecte (concepteur)
Conçoit l’architecture du système
Définit les composants
Documente les choix de conception
Prof. M. BENADDY Génie Logiciel I 9
Profils du personnel technique
Programmeur
Conception détaillée
Implantation conformément à la conception
Tests unitaires
Testeur
Conçoit les plans de tests
Conçoit les tests
Effectue les tests de système (d’intégration) et
tests spécialisés
Prof. M. BENADDY Génie Logiciel I 10
Développement en équipe
Les logiciels sont trop complexes pour être
développés individuellement
Choix de la structure d’une équipe:
Dépend de l’expertise et de la personnalité des
membres
La communication entre les membres est
primordiale (jusqu’à 50% de temps de
développement!)
But: obtenir une équipe unie et cohérente
Prof. M. BENADDY Génie Logiciel I 11
Communication
Plusieurs facteurs influencent la communication:
Taille de l’équipe
n membres, n(n-1) liens de communication
Structure de l’équipe
Formelle/informelle
Composition de l’équipe
Types de personnalités
Environnement de travail
Prof. M. BENADDY Génie Logiciel I 12
Structure interne d'une équipe
Contrôle centralisé (CC)
Chef résout les problèmes et coordonne les activités
ex. « Chief programmer team »
Contrôle décentralisé (CD)
Chef coordonne des tâches spécifiques
La résolution de problèmes se fait en équipe
Démocratique décentralisée (DD)
Pas de chef permanent
ex. « Egoless programming », le logiciel est une
propriété commune.
Prof. M. BENADDY Génie Logiciel I 13
Choix de la structure interne de l'équipe
Caractéristiques Niveau DD CD CC
Difficulté Elevée X
Faible X X
Taille (LOC) Grande X X
Petite X
Durée Courte X X
Longue X
Modularité Elevée X X
Faible X
Fiabilité Elevée X X
Faible X
Date de livraison Stricte X
Vague X X
Sociabilité (communication) Elevée X
Faible X X
Prof. M. BENADDY Génie Logiciel I 14
Gestion de l'équipe
Le chef doit
Résoudre les problèmes
Prendre des décisions lors de disputes /
manque de consensus
Être en mesure d’influencer les membres
Évaluer le progrès individuel des membre
2 types de chefs
Chef technique
Gestionnaire de projet
Prof. M. BENADDY Génie Logiciel I 15
Pratiques critiques de la gestion de projet
Ensemble de pratiques indispensable au bon
déroulement d'un projet.
16 pratiques du chef de projet formulées par le
Software Project Managers Network (
[Link])
Prof. M. BENADDY Génie Logiciel I 16
Processus logiciel individuel
Enregistrer ses propres performances afin de
pouvoir mesurer sa productivité.
Mesurée en lignes de code produites par jour
(LOC/j).
Permet d'évaluer si les délais proposés sont
raisonnables. Les erreurs commises sont
enregistrées, afin de savoir les conditions dans
lesquelles elles se produisent et leur influence sur
la productivité du programmeur.
Prof. M. BENADDY Génie Logiciel I 17
Processus logiciel individuel
Exemple : Un programmeur X a enregistré les performances
suivantes
Date Début Fin Interruptions Durée Travail
accompli
01/01/12 09:00 15:30 Déjeuner 30' 360 50 LOC écrites
03/01/12 09:00 14:00 Déjeuner 30' 270 60 LOC écrites
04/01/12 09:00 11:30 150 50 LOC écrites
12:00 14:00 120 tests
Quel est le nombre de lignes de code produit en combien de temps
Quel est la productivité de X. combien de temps est nécessaire
pour coder 1000LOC
Prof. M. BENADDY Génie Logiciel I 18
Processus logiciel individuel
X a passé 360 + 270 + 150 + 120 = 900 minutes
pour écrire et tester un programme de 160 LOC.
Cela donne une moyenne de 5 heures (300
minutes) par jour.
Donc X a une productivité de 53 LOC/jour.
Alors que son chef prévoit une semaine pour
coder 1000 LOC, X pourra prévoir que ce projet
lui demandera 4 semaines.
Prof. M. BENADDY Génie Logiciel I 19
Suivi des erreurs
Conserver une trace des
Erreurs qui se sont produites
Durées entre deux erreurs successives
Permet de
Mieux déterminer une date de livraison
Motiver les testeurs et les développeurs
Prof. M. BENADDY Génie Logiciel I 20
Taux d’erreur
TE : Inverse du temps qui sépare deux erreurs successives
Ex : si une erreur se produit tous les deux jours, TE = 0.5
erreurs par jour
Taux d’erreur instantané : estimation du taux d’erreur courant
Taux d’erreur cumulé : bonne estimation des taux d’erreur à venir
Somme de toutes les erreurs divisé par le temps total
Une représentation graphique permet d’estimer les tendances des
taux d’erreur par régression linéaire
y : taux d’erreurs
x : deux possibilités :
nombre d’erreurs : donne une estimation du nombre d’erreurs
restantes
temps écoulé : donne une estimation du temps avant livraison
Prof. M. BENADDY Génie Logiciel I 21
Taux d’erreur
Exemple : Les durées entre une série d’erreurs
sont les suivantes : 4, 3, 5, 6, 4, 6, 7.
Prof. M. BENADDY Génie Logiciel I 22
Taux d’erreur
Si on prolonge cette courbe, on voit qu’elle coupe l’axe des
abscisses pour une valeur de 11 erreurs environ
Le taux d’erreur devrait donc être nul après le 11ème erreur
Comme 7 erreurs ont été trouvées, il ne devrait plus en
rester que 4.
Prof. M. BENADDY Génie Logiciel I 23