CM1.md 5.2 KB


title: "Projets, CM1"

date: 6 juin 2016

Introduction

Motivation du module Projets

  • réaliser un « vrai » logiciel est souvent complexe voire compliqué
  • il existe de nombreuses méthodologies et nombreux outils
  • mais pas de miracle
  • objectif du module : réaliser un logiciel pas complètement trivial en utilisant quelques méthodes et outils classiques

Organisation du module

  • du 6 au 24 juin 2016 à temps plein
  • présence OBLIGATOIRE : 9h-12h + 13h-16h (en salle de cours pour les CM, en salles machines le reste du temps)
  • à réaliser : cahier des charges, livrables, rapport, soutenance
  • informations : https://www-lisic.univ-littoral.fr/~dehos

Objectifs de la gestion de projet

  • faire aboutir le projet
  • respecter les fonctionnalités demandées, les délais et les coûts
  • prévoir les problèmes possibles, détecter les problèmes réels

Étapes d’un projet

  • analyse du besoin
  • conception, développement, validation, documentation
  • livraison, déploiement, maintenance

$\rightarrow$ déroulement unitaire ou itératif

"Fil rouge" : le client et la qualité !

  • répondre au besoin effectif de l'utilisateur (ou du client)
  • adopter des normes de codage
  • utiliser des méthodes et des outils de développement performants
  • construire une organisation efficaces (bilan des compétences, pair-programming, ...)

Premières étapes d'un projet informatique

Analyse du besoin

  • objectif :
    • savoir ce que veut exactement le client
    • voir si c’est faisable
  • outils :
    • discussion avec le client
    • étude de l’existant
    • maquette, prototype, ...

Spécification

  • définition précise du résultat attendu
  • « contrat » entre le client et le prestataire (cahier des charges)

Gestion des risques

  • objectif : prévoir les problèmes possibles et savoir les gérer
  • identifier les risques :
    • type (complexité, incertitude)
    • domaine (cible, projet)
  • prévoir les risques :
    • impact, probabilité d’apparition
    • prévention, correction
  • suivre les risques : les détecter quand ils se produisent
  • choix d’une stratégie de développement :
    • unitaire si le projet est simple et certain
    • itératif si complexe ou incertain

Organisation du projet

  • déterminer comment on va développer le logiciel
  • ( analyse des coûts : établir une estimation du prix du projet )
  • planification : établir un calendrier de développement
  • assurance qualité du logiciel : déterminer les actions qui permettront de s'assurer de la qualité du produit fini
  • répartition des tâches : hiérarchiser les tâches et sous-tâches nécessaires au développement du logiciel

Planification

  • objectif : prévoir le déroulement, le vérifier, adapter si besoin
  • organiser le projet : étapes, durées, dépendances, ressources
  • planifier : affectation réelle des dates et ressources
  • suivre : comparer prévu/réel, détecter les problèmes, actions correctrices

Conception

  • architecture : quelles sont les différentes parties de l'application ?
  • interface : comment les différentes parties interagissent ?
  • premiers choix techniques (librairies, frameworks, ...)

Implémentation

  • produire du code
  • gérer la coordination de la production (versionning, intégration, ...)

Tests

  • essayer le logiciel sur des données d'exemple pour s'assurer qu'il fonctionne correctement
  • tests unitaires : faire tester les parties du logiciel par leurs développeurs
  • tests d'intégration : tester pendant l'intégration
  • tests de validation : pour acceptation par le client
  • tests système : tester dans un environnement proche de l'environnement de production

Modèles de développement - spirale

  • Production du logiciel par itération ; une itération = une version améliorée du logiciel ; centré sur la gestion des risques

Modèles de développement - itératif

  • Production du logiciel par itération ; une itération = un produit (un artéfact)

Cahier des charges

## Motivation

  • formalise la demande, décrit ce que le prestataire doit fournir au client à la fin du projet
  • « contrat » entre le client et le prestataire
  • doit être précis et exhaustif
  • et si possible clair et concis ...

$\rightarrow$ voir l’exemple fourni

Contenu

  • fiche de renseignements
  • description du besoin
  • spécifications
  • annexes

## Fiche de renseignements

  • nom et objet du projet
  • noms du client et du prestataire
  • dates de début et de fin du projet

Description du besoin

  • objectif : présenter la demande
  • contenu : contexte, besoins, priorités
  • forme : texte

Spécifications

  • objectif : formaliser les livrables/fonctionnalités demandés
  • contenu : caractéristiques précises et exhaustives
  • forme : listes

Annexes

  • maquettes
  • formats de fichiers, protocoles de communication
  • diagrammes de cas d’utilisation
  • planning prévisionnel
  • ...

Travail à réaliser

Dans la semaine

  • rédiger un cahier des charges validé par le « client »
  • définir les tâches
  • construire l'architecture globale de l'application