GP Introduction
GP Introduction
GP Introduction
projets informatiques
3 4
Conduite et gestion
de projets informatiques : • Introduction
Pl
une introduction
an
• Modèles et activités de développement
• Avant-Projet
• Suivi du projet
G. Picard • Clôture du projet
SMA/G2I/ENS Mines Saint-Etienne • Activités transverses
[email protected]
Septembre 2009
Introduction Logiciel
• A physician, a civil engineer and a computer scientist were
• Objet immatériel pendant son développement, très facile à modifier,
arguing about what was the oldest profession in the world. • Ses caractéristiques attendues sont difficiles à figer au départ et souvent
– The physician remarked, « Well, in the Bible, it says God created
remises en cause en cours de développement,
Eve from a rib taken out from Adam. This clearly required surgery,
• Les défaillances et erreurs ne proviennent ni de défauts dans les
and so I can rightly claim that mine is the oldest profession in the
world. » matériaux ni de phénomènes d’usure dont on connaît les lois mais
d’erreurs humaines, inhérentes à l’activité de développement,
– The civil engineer interrupted, and said, « But even earlier in the
book of Genesis, it states that God created the order of the heavens • Le logiciel ne s’use pas, il devient obsolète (par rapport aux concurrents,
and the earth from out chaos. This was the first and certainly the par rapport au contexte technique, par rapport aux autres logiciels, ...),
most spectacular application of civil engineering. Therefore, fair • Le développement par assemblage de composants, des services,
doctor, you are wrong: Mine is the oldest profession in the world. » d’applications n’est pas encore généralisé dans le domaine logiciel
– The computer scientist leaned back in her chair, and then said (beans, EJB, composants, ... Web services, … EAI, …).
confidently, « Ah, but who do you think created the chaos? »
3 4
Motivations
• Ingénierie du logiciel � Génie logiciel
Software Engineering
• Ensemble de théories, de méthodes, de techniques et
• Répondre à la ‘crise du logiciel apparue dans les années 70
(prise de conscience que le coût du logiciel dépassait le
d’outils pour la production et la maintenance de systèmes coût du matériel)
logiciels de qualité • Répondre à la croissance de la taille et de la complexité des
• Domaine des ‘sciences de l’ingénieur’ dont la finalité est la systèmes
conception, la fabrication et la maintenance de systèmes – besoins et fonctionnalités augmentent, évoluent
logiciels complexes, sûrs et de qualité (‘Software – technologies en perpétuelle évolution
Engineering’) – diversification des architectures
• Art de la fabrication collective d’un système complexe, • Faire face aux délais de plus en plus courts,
concrétisée par un ensemble de documents de conception, • Gérer des équipes de plus en plus grosses, avec des
de programmes et de jeux de tests avec souvent de compétences multiples
multiples versions.
5 6
7 8
Etat des lieux
Qualité du logiciel : facteurs internes
• Ré-utilisabilité : Aptitude d ’un logiciel à être réutilisé, en tout
ou en partie, pour d ’autres applications
• Vérifiabilité : aptitude d ’un logiciel à être testé (optimisation
de la préparation et de la vérification des jeux d ’essai)
• Portabilité : aptitude d ’un logiciel à être transféré dans des
environnements logiciels et matériels différents
• Lisibilité,
• Modularité.
http://www.standishgroup.com/sample_research/chaos_1994_1.php
9 10
11 12
Les mythes Les mythes du logiciel
du logiciel
Mythes du Mythes du gestionnaire
développe
Mythe Réalité Mythe
• Une fois que le programme est • 50%-70% de l’effort consacré à Réalité
ur
écrit, et marche, le travail du un programme se produit après • L’entreprise possède des • Une configuration de logiciel
développeur est terminé sa livraison à l’usager normes, le logiciel développé inclue de la documentation, des
devrait être satisfaisant fichiers de régénération, des
données d’entrée pour des tests,
• Tant qu’un programme ne • Les revues de logiciel peuvent
et les résultats des tests sur ces
fonctionne pas, il n’y a aucun être plus efficaces pour détecter
données
moyen d’en mesurer la qualité les erreurs que les jeux d’essais
pour certaines classes d’erreurs
• .... • Les ordinateurs et les outils • ....
• Pour le succès d’un projet, le
bien livrable le plus important est logiciels que l’entreprise possède
un programme fonctionnel sont suffisants
15 16
Acteurs d’un projet (1)
Projet informatique
• Ensemble d’actions mises en œuvre, afin de produire les
résultats et fournitures définies en réponse aux objectifs
• Maîtrise d’ouvrage : personne physique ou morale
propriétaire de l’ouvrage. Il détermine les objectifs, le budget
clairement définis et les délais de réalisation.
• dans des délais fixés (date début et date de fin) • Maîtrise d’œuvre : personne physique ou morale qui reçoit
• mobilisant des ressources humaines et matérielles mission de la maîtrise d’ouvrage pour assurer la conception
• possédant un coût prévisionnel et des gains espérés et la réalisation de l’ouvrage.
qualité
Espace
projet
coûts délais
17 18
21 22
23 24
Conduite et
Gestion de Conduite et gestion de projet
Projet Référentiels
Référentiels
• La fabrication d’un logiciel de qualité respectant les
contraintes de budget et de délais nécessite :
– le choix d’une architecture A E
R Cycles de vie V
– la mise en œuvre de méthodes, de techniques, de C A
standards, des normes et des outils en vigueur au sein H
Méthodes de développement L
de l’organisation I
T U
• Ces méthodes, techniques, standards, normes, E A
outils concernent aussi bien : C Outils T
T I
– la production de composants logiciels (définition des U
besoins, conception, réalisation, tests,...) Communication O
R
– le contrôle (planification, évaluation,...) du processus de E N
production
25 26
temps Prelim ... Arch ... Cons Cons ... Trans ...
Iteration Iteration Iteration Iteration Iteration
développem
Enchaînement des Phases Gestionnaire du Projet
Activités d’Ingénierie Pré-étude Elaboration Construction Transition
Modélisation Métier
Montage Clôture
Recueil des besoins
Gestion du projet
du projet
ent
du projet
Analyse & Conception
Implémentation
Test
temps
Déploiement
33 34
Maintenance
35 36
Modèle en V
• Amélioration du modèle en cascade Modèle en V
• Met en évidence la symétrie et la relation qu’il y a entre les Expression
phases du début du cycle de vie et celles de fin. Validation
des besoins des
• Les phases du début doivent être accompagnées d’une besoins
planification des phases de fin
• Lors de la planification, on développe et documente les Analyse et Validation
spécification fonctionnelle
plans de test.
Conception Tests du
du système système
38
Implémentation
37
Implémentation Validation
Tests
39 40
Processus unifié
• Piloté par les cas d’utilisation (bien comprendre les désirs et les besoins
de ses futurs utilisateurs)
– Un cas d'utilisation est une fonctionnalité du système produisant un résultat
satisfaisant pour l'utilisateur. Les cas d'utilisation saisissent les besoins
fonctionnels et leur ensemble forme le modèle des cas d'utilisation qui décrit
les fonctionnalités complètes du système.
• Centré sur l’architecture (les différentes vues du système qui doit être
construit)
• Itératif et incrémental
– Itératif : croissance et l’affinement successifs d’un système par le biais
d’itérations multiples, retours en arrière et adaptation cycliques
– Incrémental : découpage du travail en plusieurs parties qui sont autant de
mini-projets. Chaque mini-projet représente une itération ou étape de courte
durée (1 mois) qui donne lieu à un incrément. Le résultat de chaque itération
est un système testé, intégré et exécutable.
41 42
43 44
Analyse
• Objectifs : Spécification des besoins
– définition de ce que doit faire le logiciel
• Objectifs :
– Analyse détaillées de toutes les fonctions et autres caractéristiques
• Activités : que le logiciel devra réaliser pour l’usager, telles que vues par l’usager.
– Description du problème à traiter afin d’identifier les besoins de • Activités :
l'utilisateur, de spécifier ce que doit faire le logiciel : informations – Répondre au « Que fait le système ? », Modélisation du domaine
manipulées, services rendus, interfaces, contraintes d’application
– Mise en œuvre des principes : abstraction, séparation des – Analyse de l ’existant et des contraintes de réalisation
problèmes, séparation des besoins fonctionnels – Abstraction et séparation des problèmes, séparation en unités
• Résultats : cahier des charges et plan qualité cohérentes
• un dossier d'analyse comprenant les spécifications fonctionnelles et non • Résultats : Dossier d’analyse et plan de validation
fonctionnelles du produit – Modèle du domaine
• une ébauche du manuel utilisateur pour les non informaticiens
– Modèle de l’existant (éventuellement)
• une première version du glossaire contenant les termes propres au
projet. – Définition du modèle conceptuel.
• un plan de test du futur système (cahier de validation) – Plan de validation, dossier de tests d ’intégration
45 46
Conception Implémentation
• Objectifs : • Objectifs :
– Définition de l’architecture générale du logiciel. Spécification de la manière – Réalisation des programmes dans un (des) langage(s) de
dont chacun des composants du logiciel sera réalisé et comment ils
programmation
interagiront.
– Tests selon les plans définis lors de la conception
• Activités :
– Répondre au « Comment réaliser le système » • Activités :
– Décomposition modulaire, définition de chaque constituant du logiciel : – traduction dans un langage de programmation,
informations traitées, traitements effectués, résultats fournis, contraintes à – Mise au point (déboguage)
respecter
• Résultats : dossier de conception + plan de test global et par module
• Résultats : dossiers de programmation et codes
– proposition de solution au problème spécifié dans l’analyse sources.
– organisation de l’application en modules et interface des modules (architecture – Collection de modules implémentés, non testés
du logiciel), – Documentation de programmation qui explique le code
– description détaillée des modules avec les algorithmes essentiels (modèle
logique)
– structuration des données.
47 48
Intégration et test du système
• Objectifs : Tests unitaires
– test séparé de chacun des composants du logiciel en vue de leur
• Objectifs :
– Intégration des modules et test de tout le système
intégration • Activités :
• Activités : – Assemblage de composants testés séparément
– réalisation des tests prévus pour chaque module – Démarche d’intégration (ascendante, descendante ou les deux)
– les tests sont à faire par un membre de l'équipe n'ayant pas participé – Conception des données de tests
à la fabrication du module – Tests Alpha : l'application est mise dans des conditions réelles
• Résultats : d'utilisation, au sein de l'équipe de développement (simulation de
– résultats des tests avec les jeux d’essais par module selon le plan l'utilisateur final)
de test. – Documentation des éléments logiciels
• Résultats :
– Rapports de test
– Manuel d’utilisation
49 50
51 52
Planification
Planification • Outil incontournable pour la gestion du projet
• Il permet de :
– définir les travaux à réaliser
– fixer des objectifs
– coordonner les actions
– maîtriser les moyens
– diminuer les risques
– suivre les actions en cours
– rendre compte de l'état d'avancement du projet
53 54
Planification structurelle
Planification structurelle
Etapes
• Rôle : • Planification structurelle sommaire
– Identifier les travaux à compléter – Subdiviser le projet en lots de travail
– Traduire la définition du projet en une liste de tâches à accomplir – Un lot = un bien livrable du projet
– préparer une liste exhaustive, documentée et structurée des travaux – Toujours prévoir les lots de support pour tâches ponctuelles
dont l’accomplissement est nécessaire à la production des biens • Planification structurelle détaillée
livrables du projet
– Subdiviser les lots de travail principaux
! Constitution d’une base de données des travaux – Jusqu’à l’identification de tâches élémentaires
– Sert de base aux autres étapes de planification – Représentation à l’aide d’un organigramme de tâche (Work
– Principal instrument de communication entre les intervenants Breakdown Structure)
• Identification et description des lots de travail principaux • Conformité et complétude
• Identification et description des tâches élémentaires – On doit avoir suffisamment confiance dans le caractère exhaustif de
la liste des tâches pour être assuré que, une fois complétée de
façon suffisante chacune des tâches élémentaires y apparaissant, le
produit visé est effectivement réalisé et conforme aux exigences
initiales
55 56
Planification
structurelle Planification structurelle
Breakdown
Définition
Ensemble 21
Structure
Définition
S-système 2 Réalisation
Est-composé Ensemble 21
Fait partie Définition
Intégration
de … Système de … système
Réalisation Ensemble 21
Réalisation Ensemble 21
S-système 1 Définition
Ensemble 22
Réalisation Réalisation
Sous-système 1 Sous-système 2 Sous-système 3 Projet
S-système 2 Ensemble 22 Réalisation
Ensemble 22
Réalisation
S-système 3 Réalisation Intégration
Ensemble 23 Ensemble 22
Intégration
système Définition
Intégration Ensemble 23
Ensemble 1 Ensemble 2 Ensemble 3 S-système 2 Réalisation
Ensemble 23
Intégration
Ensemble 23
Découpage du système en unités physiques hiérarchisées
Description structurée de toutes les tâches du projet,
Rapportées au découpage du produit
57 58
Réal. S-syst. 3
compte de la situation réelle, des nouvelles
Intégration syst. informations acquises
t
61 62
Estimation Estimation
Démarche et conseils Méthodes
• Démarche • Par analogie
– Exploration des expériences passées, catalogue des projets et estimations passées. Ce qui est
– Entrées : objectifs techniques, objectifs de délais, environnement, période, analysé concerne : taille, durée, effort, complexité, coût
historique, références • Modèle paramétrique
– Sorties : estimation – Les estimations sont basées sur des modèles mathématiques reposant sur divers paramètres :
– Itérations : augmenter l’information et comparer avec le résultat COCOMO, SLIM, PRICE-S, SoftCost, …
• Oracle
• Conseils – Equipe d’experts, atteinte d’un consensus par négociation
– Toute information est bonne à prendre et à classer • PERT
– Les projets déjà réalisés sont la meilleure source ( tableau de bord) – Estimations reposant sur l’hypothèse d’une répartition normale des estimations
– – Réaliser plusieurs estimations avec une méthode “par analogie” ou “oracle” la pire (l), la
Exploiter les offres de ses fournisseurs
moyenne (m), la meilleure (h)
– Adhérer aux associations professionnelles – Effort = (l+4m+h)/6
– Lire les revues spécialisées de sa profession • Bottom-up
– Être organisé, être créatif, affûter ses outils – Les estimations par analogie, PERT, paramétrique, oracle sont faites par activité ou composant
élémentaire
– Constituer une check-list – Puis consolidées jusqu’au sommet du projet
– Vérifier ses estimations • Aucune technique n’est meilleure ou pire que les autres.
– Remettre à jour ses données – Utiliser plusieurs techniques en parallèle et comparer les résultats : si trop de différence,
augmenter la quantité d’informations prises en compte.
67 68
Estimati
on Estimation
du
• Point fonction mesure du montant de fonctionnalité en • Input (entrée utilisateur)
s’appuyant sur : – Entrée de donnée ou de contrôle qui requiert un traitement
logiciel
– Écrans, transactions, fichier de données, etc.
– 5 type de fonctionnalités :
• Input, Output, Inquiry, Internal Logical File, External Interface • Output (sortie utilisateur)
File – Sortie de donnée ou de contrôle après un traitement du système
• FC = nombre de fonctions – Écrans, transactions, fichier de données, etc.
• Internal files (fichiers internes)
• Ajuster selon leur complexité ci à partir de 14 facteurs notés – Regroupement logique de données ou de contrôle interne au système
de 0 (pas d’influence) à 5 (fondamental) – Bases de données, répertoires, etc.
– Communication par message, distribution de données ou de • External interface files (fichiers externes)
fonctions, haut taux de transaction, calcul complexe, conception – Fichier ou exécutable qui sortent des limites du système
multi-sites, conception facilement maintenable, … – Bibliothèques, bases de données externes, paquetages génériques, etc.
• FP = FC * PCA PCA = 0,65+0,01 Somme(ci) • Inquiry (requêtes)
• KLSL = -5 + 0,2 FP – Entrée ou sortie d'une requête demandant une réponse immédiate du
système
– Interruptions, appels, etc.
69 70
Estimation
Effort ? Durée ? Taille ?
Facteurs d’influence
• Interconnections • Mise à jour en ligne • Effort ou charge : quantité de travail nécessaire,
• Distribution des indépendamment du nombre de personnes qui vont réaliser
• Traitements complexes
fonctions ce travail
• Réutilisation du code – Permet d’obtenir un coût prévisionnel
• Performance – S’exprime en homme/jour, homme/mois ou homme/année
• Facilité d'installation
• Utilisation – Un homme/mois (HM) représente l’équivalent du travail d’une
opérationnelle lourde • Facilité d'opération personne pendant un mois, généralement 20 jours
• – Un homme/mois (HM)=152 heures de travail par mois
• Taux de transaction Sites multiples
• Exemple: Un projet de 60 mois/homme représente
• Entrée de données en • Flexibilité l’équivalent du travail d’une personne pendant 60 mois. Si
ligne on évalue le coût du mois/homme à 50 K ! en moyenne, le
• Facilité d’utilisation projet sera estimé à 3 M !
71 72
Effort ? Durée ? Taille ?
Effort ? Durée ? Taille ?
• On mesure la taille des projets à leur charge
• Si Charge < 6 HM : très petit projet
La durée dépend du nombre de personnes
• 60 HM peut correspondre à
• Si 6 HM< Charge <12 HM : petit projet – 1 personne pendant 5 ans
– 5 personnes pendant un an
• Si 12 HM< Charge <30 HM : projet moyen
– 10 personnes pendant 6 mois
• Si 30 HM < Charge < 100 HM : grand projet
– 60 personnes pendant 1 mois
• Si Charge > 100 HM : très grand projet
73 74
Estimation
Effort ? Durée ? Taille ?
COCOMO
• Homme-mois = unité de mesure de l’effort • Modèle paramétrique http://sunset.usc.edu/research/cocomosuite/index.html
O
• Point de départ : HM et TDEV du modèle simplifié
• HM : Homme-mois = 152 h
1200
1000
800
organique • Introduction de quinze facteurs correctifs, valués de VeryLow à XtraHigh
(simple)
– Organique : HM = 2,4 (KLSL) 1,05
HM
600 semi-détaché
détaché
400
– Pour le projet : – Pour le personnel
– Semi-détaché : HM = 3,0 (KLSL)1,12 200
mois
15 semi-détaché
• Durée de développement
développement 10
détaché
(matériel + logiciel) sur lequel le
5 logiciel est développé
– Organique : TDEV = 2,5 (HM)0,38 0 • Système de développement
0
20
40
60
80
100
– Semi-détaché : TDEV = 2,5 KLSL interactif ou non
(HM)0,35 77 78
79 80
Suivi de projet
Suivi de projet
• Mettre en place un processus de suivi et de revues
régulières entre le chef de projet et les membres de
• Cette fonction consiste à évaluer la situation réelle du projet,
à la comparer à la situation prévue au plan d’exécution et à
prendre les décisions nécessaires pour corriger la situation,
l'équipe
si des écarts sont observés ou prévus
• Un "journal de bord" est tenu à jour. Il permet de • La maîtrise des ressources et la gestion de la qualité du
garder une trace : produit :
– des informations communiquées – sont des fonctions en cours de réalisation du projet quelle que soit
– la phase atteinte dans la progression du projet
des problèmes rencontrés
– impliquent une base de comparaison que constitue le plan de
– des décisions prises réalisation, produit de la planification du projet et de l’utilisation des
– des responsables désignés pour mener à bien les ressources
actions
– la date de réalisation de l'action
81 82
83 84
Suivi de
l’avanceme Suivi de l’avancement
Analyse
• But : vérifier si la situation actuelle est telle que prévue • Performance technique
– Occurrence d ’un problème technique imprévu
• Compilation des informations recueillies
– Difficultés techniques majeures dont la mise en relation de diverses
– Calcul des coûts effectivement engagés et déboursés composantes
– Validation de l ’estimé du % d ’avancement – Problème de fiabilité dans les matériaux, les équipements achetés
– Nature exacte des problèmes rencontrés (recherche des causes – Changement imposé par le client
• Analyse prévisionnelle - valeur acquise – Apparition d ’un nouveau produit sur le marché
– Révision des spécifications techniques
– Comparaison avec la situation prévue
• Coûts
• Sélection de mesures correctives – Difficulté de financement
– Proposition et analyse de l ’effet de mesures correctives – Difficultés techniques imposant l ’utilisation de plus de ressources humaines
– Recommandations ou d ’équipement
– Majoration des coûts des matériaux, de la main-d’œuvre, de l’énergie, etc.
– Monitoring erroné
– Délai dans la mise en œuvre des mesures correctives
– Estimation initiale incorrecte
85 86
87 88
Clôture de projet (1)
•
•
Introduction
Modèles et activités de développement
Plan • Inévitablement, les projets se terminent ; il est dans la définition même d’un
projet qu’il ne dure qu’un temps précis dans la vie d’une organisation. Les
façons dont les projets se terminent peuvent toutefois varier.
• Fin « normale » d’un projet
• Avant-Projet – La plupart des projets se terminent favorablement avec la livraison du produit ou du
• Suivi du projet système au client; ce client peut être à l’interne de l’organisation, projet d’implantation
d’équipement dans une usine, ou à l’externe, projet de construction, projet de sous-
• Clôture du projet traitance industrielle.
• Fin « normale » d’un projet et intégration à l’organisation
• Activités transverses – Dans certains cas de projets, surtout lorsque le client est interne, il arrive très
fréquemment qu’on invite les membres de l’équipe à devenir ou redevenir membres à
part entière à l’organisation. On parle donc d’intégration des résultats et des
ressources du projet.
• Fin d’un projet avorté
– Il peut arriver qu’on doive arrêter un projet pour des questions techniques,
budgétaires ou légales. Des procédures doivent alors être prises pour compenser, s’il
y a lieu, la ou les parties lésées.
89 90
91 92
Plan
Evaluation (2) •
•
Introduction
Modèles et activités de développement
• Avant-Projet
• Suivi du projet
• Clôture du projet
• Activités transverses
– Gestion de configurations
– Documentations
– Les outils
– Les Hommes
93 94
document
– Rapports document)
– Définitions de standards – Qui décrive sommairement son contenu (titre parlant, résumé)
– Documents de travail – Qui le date et donne sa version
– Courriers (méls) – Qui en permette l’archivage (mot clef, type de document)
• Documentation Technique – Qui décrive les standards auquel le document est supposé se
conformer
– Utilisateur : Manuel d’installation, manuel d’administration, manuel
– Qui en décrive le copyright
d’utilisation, manuel de référence
– Système : cahier des charges, analyse et conception du système, – Qui en décrive la circulation souhaitée (nominatif et/ou
architecture du système, archivage des programmes et des listings, classement de confidentialité)
documents de validation, documents de tests, guide de maintenance – Qui donne un contact pour questions ou remarques
– Qui dise s’il s’agit d’une version préliminaire (de travail) ou
définitive
– …
97 98
Documentations Documentations
Style rédactionnel de gestion de projet
• Séparer clairement les paragraphes qui peuvent être perçus comme des réponses aux
questions quoi ?, par qui ?, où ?
• Identifier des niveaux de texte correspondant à des lectures plus ou moins détaillées.
Trois niveaux : titre, corps principal de texte, texte
• Mentionner en notes de bas de page les considérations à caractère anecdotique qui
même si elles éclairent le sujet perturbent la compréhension d’une phrase
• Mettre en évidence la première apparition d’un terme dans le texte, et surtout une mention
qui le définit, par exemple, en utilisant des caractères gras. Une définition ne doit pas
pouvoir échapper à l’attention, même lors d’une lecture rapide
• Écrire des phrases et des paragraphes courts
• Ne pas utiliser de double négation
• Utiliser des formes verbales actives, impératives et le présent
• Avoir une bonne orthographe et une bonne grammaire
• Définir les termes utilisés : un glossaire doit impérativement accompagner tout document
• Se répéter si nécessaire
• Donner des références explicites.
99 100
Documentations qualité
Documentations techniques
101 102
Document d’analyse
Document d’analyse
Vision générale
1. Vision générale 1. Positionnement
2. Spécification préliminaire – This chapter describes the situation of the analysis
3. Définition des cas d’utilisation document (positioning with regard to other analysis
4. Spécification détaillée documents, requirements specifications, indication of
associated software parts)
5. Cas d’utilisation
6. Exemples 2. Objectifs
7. Collaborations – This chapter describes the aim of this specification,
fundamental needs met and the overall specification plan
8. Diagrammes d’état
9. Graphes d’activité 3. Documents de référence
– This chapter provides the list of documents on which the
current document is based, and to what extent
103 104
Document
d’analyse : Document d’analyse :
n
1. Dictionary User packages
– This provides the list of terms used in the document, accompanied
The "Definition of the use cases" chapter contains:
préliminaire
by their definition.
– packages annotated {usecase}.
2. Overview of the application
– This chapter contains:
• summary and description notes of the document package
• class diagrams (with their description notes)
3. Summary
– This chapter contains the list of:
• packages annotated {usecase} (with their summary notes)
• packages not annotated {usecase} (with their summary notes)
• classes (with their summary notes)
• interfaces (with their summary notes)
• referenced elements (with their summary notes)
105 106
Document d’analyse
Structure du document
Spécification détaillée
1 Overview
1. Non-user packages 1. Situation of this specification
2. Objectives of this specification
2. Classes 3. Reference documents
2 Preliminary specification
3. Interfaces 1. Dictionary
2. Overview of the application
4. Referenced packages 3. Summary
3 Definition of the use cases
5. Referenced classes User packages
4 Detailed specification
6. Referenced interfaces 1. Non-user packages
2. Classes
3. Interfaces
4. Referenced packages
5. Referenced classes
6. Referenced interfaces
5 Use cases
6 Examples
7 Collaborations
8...State machines
9...Activity graphs
107 108
Les Hommes (1)
• Outils dédiés à des tâches spécifiques
• Ateliers de génie logiciel (AGL) :
Les outils • Développement logiciel est une tâche humaine et
créative
– Analyse et conception
• Travail en groupe : Travail collaboratif, Productivité
– Programmation, prototypage ou développement rapide (RAD)
– Construction d’interface homme-machine
personnelle, Disponibilité d’outils de travail
– Vérification collaboratif
– Documentation, version, collaboratif • Structure homogène (petits projets) :
• Environnement intégrés pour un support à tout le – structure de l’équipe reflète la structure du produit,
développement chaque membre réalise une partie du projet
– Bonne communication entre les membres, continuité du
projet est facile à assurer
• Structure spécialisée (grands projets) :
– Structuration selon les spécialités
109 110
111 112
Rôles au sein d’un projet
• Programmers (system engineers)
Rôles au sein d’un projet
– Technical lead, architect, programmer, Sr. programmer
• Quality Assurance (QA) engineers (testers)
• Décider lesquels sont nécessaires pour votre projet
• En fonction de ce que vous êtes en train de développer :
• How big is it?
– QA Manager, QA Lead, QA staff
• Is it UI intensive? Data intensive?
• DBAs • Are you installing/managing hardware?
– DB Administrator, DB Programmer, DB Modeler • Do you need to run an operations center?
• CM engineers (build engineers) • Is it in-house, contract, COTS, etc?
• Network engineers, System Administrators • En fonction de votre budget
• Analysts (business analysts)
• UI Designers
• Information Architects
• Documentation writers (editors, documentation specialist)
• Project manager
• Other
– Security specialist, consultants, trainer
113 114
115 116
Modèles d’équipe
• Chief-Programmer Team
• From IBM in 70’s
Modèles d’équipe • Skunkworks Team
– Put a bunch of talented, creative developers away from the mother
– See Brooks and Mythical Man-Month ship
• a.k.a. ‘surgical team’ • Off-site literally or figuratively
• Puts a superstar at the top – Pro: Creates high ownership & buy-in
– Others then specialize around him/her
– Con: Little visibility into team progress
» Backup Programmer
» Co-pilot or alter-ego
– Applicable: exploratory projects needing creativity
» Administrator • Not on well-defined or narrow problem
» Toolsmith
» “Language lawyer”
• Issues
» Difficult to achieve
» Ego issues: superstar and/or team
• Can be appropriate for creative projects or tactical execution
117 118
119 120
Taille d’équipe Références
• What is the optimal team size? •
•
CNRS, DSI (http://www.dsi.cnrs.fr/conduite-projet/Default.htm)
Association Francophone de la gestion de projet (http://www.afitep.fr/Default.htm)
• 4-6 developers • Project Management Institute (PMI) (http://www.pmi.org/)
– Tech lead + developers • Software Engineering Institute (SEI) (http://www.sei.cmu.edu/)
• Small projects inspire stronger identification • IEEE Software Engineering Group (http://standards.ieee.org/software/)
• Guide to the Software Engineering Body of Knowledge (http://www.swebok.org/)
• Increases cohesiveness • Cost estimation tools
• QA, ops, and design on top of this • http://www.retisoft.com/SCEPFeatures.html
• http://www.construx.com/estimate
• FAQ on Function Points
• http://ourworld.compuserve.com/homepages/softcomp/fpfaq.htm
• Choosing a project management tool
• http://www.4pm.com/articles/selpmsw.html
• http://www.infogoal.com/pmc/pmcswr.htm
• Project management tools
• http://www.startwright.com/project1.htm
• http://www.kidasa.com
• http://www.criticaltools.com/pertmain.htm
• http://www.guysoftware.com/planbee.htm
• http://www.minuteman-systems.com
• http://www.microsoft.com/office/project/prodinfo/default.mspx
• http://www.eclipse-plugins.info/eclipse/plugins.jsp?category=Project+management
122
121