cours de génie logiciel david janiszek le projet … · cours de génie logiciel david janiszek le...
TRANSCRIPT
Cours deGénie Logiciel
DavidJaniszek
Le projet
En résumé Troisième partie III
Eléments de gestion de projet
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Le projet
DéfinitionUn projet informatique est l’ensemble des activités et desactions à entreprendre pour répondre au besoind’informatisation d’un ensemble de tâches dans un contextedéfini
Un projet doit concilier :Les objectifs fonctionnelsLes spécifications (Aspects techniques)Les contraintes temporellesLes contraintes budgétairesLes contraintes matérielles (Ressources allouées)
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Le cycle de vie d’un logiciel
DéfinitionLe cycle de vie d’un logiciel est l’ensemble des étapes dudéveloppement d’une application ; du projet initial à sa find’exploitation.
Le cycle de vie permet de prendre en compte lesaspects techniques du développement mais aussi sesaspects humains et organisationnelsLa présence ou l’absence ainsi que la séquence desdifférentes phases définissent le cycle de vie del’application
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Les différentes phases des cycles de vied’un logiciel (1)
DéfinitionLa définition des objectifs est une étape qui consiste àdéfinir la finalité du projet et à le positionner dans unestratégie globale.
DéfinitionL’analyse des besoins est une étape qui consiste àexprimer, recueillir et formaliser les besoins et lescontraintes du client
DéfinitionL’étude de faisabilité est une étape qui consiste à estimerl’ensemble des éléments réalisables et éventuellement lescontraintes liées à ces derniers.
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Les différentes phases des cycles de vied’un logiciel (2)
DéfinitionLa spécification est une étape qui consiste à élaborerl’architecture générale de l’application.
DéfinitionLa conception est une étape qui consiste à définirprécisément chaque sous-ensemble de l’application.
DéfinitionL’implémentation est une étape qui consiste à traduire dansun langage de programmation des fonctionnalités définieslors de la phase de conception.
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Les différentes phases des cycles de vied’un logiciel (3)
DéfinitionLes tests unitaires forment une étape qui consiste à vérifierindividuellement l’adéquation entre les spécifications et lesrésultats de l’implémentation de chaque sous-ensemble del’application.
DéfinitionL’intégration est une étape qui consiste à vérifier quechaque sous-ensemble de l’application s’interfacecorrectement avec les autres.
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Les différentes phases des cycles de vied’un logiciel (4)
DéfinitionLa qualification est une étape qui consiste à vérifier quel’application obtenue est en adéquation avec lesspécifications initiales (et éventuellement avec les besoinsexprimés par le client).
DéfinitionLa documentation est une étape qui consiste à produire lesinformations nécessaires à la correction, à l’évolution et àl’utilisation de l’application.
DéfinitionLa mise en production est une étape qui consiste àpermettre au client l’utilisation de l’application.
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Les différentes phases des cycles de vied’un logiciel (5)
DéfinitionLa maintenance est une étape qui consiste à modifierl’application afin de la corriger ou de la faire évoluer.
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Le cycle de vie en cascade (1)
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Le cycle de vie en cascade (2)
Eléments clés :
Mis au point en 1966 (Formalisé en 1970)
Chaque phase se termine à une date précise par laproduction de documents ou de logiciels
Chaque phase doit être validée avant de passer à lasuivante
Extension : retour arrière sur la phase précédente (enpratique les corrections possibles sont insuffisantes)
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Le cycle de vie en V (1)
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Le cycle de vie en V (2)
Eléments clés :
Le cycle de vie le plus utilisé
La décomposition de l’application est décriteconcomitemment à sa recomposition
La description d’un composant est accompagnée destests permettant de le vérifier et de le valider
Limite le risque de spécifier une propriété impossible àvalider
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Le cycle de vie en spirale (1)
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Le cycle de vie en spirale (2)
Formalisé en 1988 (B. Boehm)
Modèle plus général que le cycle de vie en V
Axé sur l’analyse des risques
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Le cycle de vie par incréments (1)
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Le cycle de vie par incréments (2)
Permet la construction d’une application étape parétape (fonctionnalité par fonctionnalité)Pour chaque incrément :
1 Conception détaillée2 Implémentation3 Tests unitaires4 Intégration5 Livraison
Permet la prise en compte de l’analyse des risquesPermet une acceptation progressive de l’application parles utilisateursIl ne s’agit pas d’une méthode essai/erreur
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Analyse des risques (1)
Risques humainsDéfaillance du personnel, surestimation descompétencesTravailleur solitaire, héroisme, manque de motivation
Risques processusPas de gestion de projetCalendrier et budget irréalistesCalendrier abandonné sous la pression des clientsComposants externes manquantsTâches externes défaillantesInsuffisance de donnéesValidité des besoinsDéveloppement de fonctions inappropriéesDéveloppement d’interfaces utilisateurs inappropriées
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Analyse des risques (2)
Risques technologiquesProduit miracleChangement de technologie en cours de routeProblèmes de performanceExigences démesurées par rapport à la technologieIncompréhension des fondements de la technologie
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Les principaux acteurs du projet (1)
Rôles et responsabilités des principaux acteurs impliquésdans le développement d’un projet
DéfinitionLa maîtrise d’ouvrage ou le maître d’ouvrage est le donneurd’ordre au profit duquel l’application est conçue.
DéfinitionLa maîtrise d’oeuvre ou le maître d’oeuvre répond auprogramme fonctionnel déterminé par la maîtrise d’ouvrageen proposant une solution qui permette la réalisation de ceprogramme tout en respectant les contraintes préétablies(moyens, budget, planning, ...)
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Les principaux acteurs du projet (2)
Rôle du maître d’ouvrage
Décrire les besoins et définir le cahier des chargesEtablir le financement et le planning général des projetsFournir les spécifications fonctionnelles générales etvalider la recette fonctionnelleCoordonner les instances projets entre les utilisateursmétiers et la maîtrise d’oeuvreAssurer la responsabilité de pilotage du projet dans sesgrandes lignesAdapter le périmètre fonctionnel en cas de retard afinde respecter la date de la livraison
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Les principaux acteurs du projet (3)
Rôle du maître d’oeuvreConseiller la maîtrise d’ouvrageParticiper à la conception de l’applicationGarantir la bonne réalisation technique de la solutionproposéeVérifier la qualité de la réalisation (recette)
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Expression des besoins (1)
Les différentes formes de réticencesLe manque ou l’absence d’adhésion au projetLe scepticismeLa résistance au changementLe refus ou la peur de s’engager pour les autresLes considérations techniques prenant le dessus surles enjeux fonctionnelsLe manque de temps réel ou supposé
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Expression des besoins (2)
Les différentes approches pour recueillir les besoinsSe baser sur l’existantSe baser sur des études de cas ou sur les meilleurespratiquesCommencer par une feuille blanche
RecommandationsSavoir écouterFaire preuve de psychologieFédérer toutes les personnes concernées par le projetRéaliser un compte rendu (illustré) après chaqueréunionEtudier les projets similaires
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Déterminer le niveau de satisfaction
IdentificationType d’interaction avec l’applicationFonction au sein de l’entitéPouvoir décisionnaire
Exemples d’évaluationQuestionnaire de satisfactionEtudier l’utilisation réelle de l’applicationEvaluer la fidélité du client
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Planification (1)
Exemple de diagramme de Gantt :
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Planification (2)
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Planification (3)
Exemple de réseau PERT :
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Quelques outils
Gestion de projetMicrosoft Project, ...OpenProjGanttProject, Open Workbench, Taskjuggler, ...
Logiciel de diagrammesMicrosoft Visio, ...Dia, kivio, xfig, ...
Cours deGénie Logiciel
DavidJaniszek
Le projetLe cycle de vie d’unlogiciel
Les acteurs du projet
Expression desbesoins
La satisfaction
Planification
L’équipe dedéveloppement
En résumé
Equipe de développement(la taille ne fait pas tout ...)
Le facteur limitant est le nombre d’interactions.
Cours deGénie Logiciel
DavidJaniszek
Le projet
En résumé
En résumé
Un projet regroupe de nombreuses activitésLe cycle de vie permet de prendre en compte lesaspects techniques du développement mais aussi sesaspects humains et organisationnelsLa spécification des besoins est une étape cléOn identifie 3 types de risques :
HumainsTechnologiquesOrganisationnels
L’efficacité d’une équipe dépend de la qualité de sesinteractions