Vous êtes sur la page 1sur 59

Projet Informatique

Introduction
https://wiki.unice.fr/display/~renevier/Projet+Informatique+2017-
2018,+3e+année+de+Licence+Informatique,+Semestre+5

Philippe Renevier Gonin


Audrey Occello

À partir de cours de Philippe Collet Projet Informatique (L3)


Philippe Renevier Gonin
d’après un cours de Philippe Collet
Un développement…
• Plus qu’un TP, un produit…
• … de taille conséquente
• Exemple :
https://www.openhub.net/p/firefox

2
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Un développement…
• Plus qu’un TP, un produit…
• … de taille conséquente
• Exemple :
https://www.openhub.net/p/firefox

3
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Un développement…
• Plus qu’un TP, un produit…
• … de taille conséquente
• Exemple :
https://www.openhub.net/p/firefox

4
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Un développement…
• Plus qu’un TP, un produit…
• … de taille conséquente
• Exemple :
https://www.openhub.net/p/firefox

5
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Objectif
• Réalisation, en équipe,
• d'un développement de taille conséquente
• à partir d'un cahier des charges
• en Java
• Donc : du développement !
• Dettes techniques maitrisables : Sans (gros) problème de conception
• Avec des problèmes de
• Communication (a priori équipe de 4)
• Techniques de programmation (POO, COO)
• Fiabilité (tests unitaires indispensables)
• En quasi-autonomie
• Avec professionnalisme
• Bonne réponse au cahier des charges
• Méthodologie (Efficacité, rapidité, qualité) 6
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Exemple de 2016-17 : Takenoko
• https://fr.boardgamearena.com/archive/replay/170825-
1140/?table=33767268&player=83901621&comments
• Implémenter les règles du jeu
• Pas d’interface graphique
• Des sorties textuelles
• Des « bots » qui utilisent les règles pour gagner
• Lancer plusieurs (500 x2) parties
• Avec méthodologie !
• Itération, découpage verticale
• Du code avec de la valeur « prouvée » : tests unitaires 7
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Exemple (imparfait) d’organisation
d’un groupe

8
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Exemple (imparfait) d’organisation d’un
autre groupe

9
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Production de code du 1 er groupe

10
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Production de code du 2 e groupe

11
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Exemple d’évolution d’une classe
er
(du 1 groupe)
• Classe « Parcelle »
• Centrale
• Différentes périodes de modifications
• Tous les membres du groupe l’ont modifiée
• De 64 lignes à sa création (25/09)
• 130 le 09/10
• 155 le 31/10
• 200 le 10/11
• 200 le 22/11
• 276 le 28/11
• 280 le 10/12 12
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Exemple d’évolution d’une classe
er
(du 1 groupe)
• Classe « Parcelle »
• Centrale
• Différentes périodes de modifications
• Tous les membres du groupe l’ont modifiée
• De 64 lignes à sa création (25/09)
• 130 le 09/10
• 155 le 31/10 Au début : une position, des voisins
• 200 le 10/11 Puis ajout :
• 200 le 22/11 • Bambou
• 276 le 28/11 • Irrigations
• 280 le 10/12 • Aménagements 13
• Etc.
Projet Informatique (L3)
Et aussi : réorganisation de code… Philippe Renevier Gonin
d’après un cours de Philippe Collet
Les pièges du projet (1/3)
dettes techniques
• Java : POO et COO
• Outils : IDE (structure des fichiers), GIT, …
• Tests unitaires

• Maitrisable au S5

14
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Les pièges du projet (1/3)
dettes techniques
• Java : POO et COO
• Outils : IDE (structure des fichiers), GIT, …
• Tests unitaires

• Maitrisable au S5
It’s a
(little) trap !

15
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Les pièges du projet (2/3)
travail en équipe (> 2)
• Décider ensemble
• Découpage en tâches
• Gérer les différences de niveaux
• Répartir le travail
• Respecter les
décisions
(temps et heures)
It’s a
• Communiquer trap !

16
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Les pièges du projet (3/3)
méthodologie !
• Découpage en tâches
• Progressif, Intégration au fur et à mesure
• (approfondissement au semestre 6)
• Aspect qualité
• Essayer ≠ Tester
• Tester « avec valeur »
• Maîtrise It’s a
• Exécution « ailleurs » trap !
• Pilotage vs Codage (again)
17
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
À propos du découpage…

18
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
À propos du découpage…

19
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
À propos du découpage…

20
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
À propos du découpage…

21
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
À propos du découpage…

22
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
À propos du découpage…

http://www.akalie.fr/2013/03
/piece-montee-de-choux-
pour-un-bapteme.html

23
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
À propos du découpage…

http://www.akalie.fr/2013/03
/piece-montee-de-choux-
pour-un-bapteme.html

24
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
À propos du découpage…

http://www.akalie.fr/2013/03
/piece-montee-de-choux-
pour-un-bapteme.html

25
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
On vous en demande beaucoup
• Travail demandé
• Beaucoup, beaucoup (beaucoup !) de travail personnel
• Surtout par rapport au faible volume des TD
• Pour fournir du code et de la gestion de projet (expliciter ce que vous faites et ce que
vous allez faire)
• Problématique
• Comment vous organiser en équipe ? Développer en équipe ? Coder/tester ? Etre
efficace ? Communiquer ?
• Passer du cahier des charges à une définition et en suivi :
• Des objectifs généraux et du livrable principal (l’application finale)
• Des jalons pour y arriver, de comment évaluer qu’on arrive bien à ces jalons
• Des contraintes 26
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Calendrier
• 4 cours de 3h
• Du 28/09 au 19/10
• 6 séances de suivi
• 26/10
• 09/11
• 16/11
• 30/11
• 07/12
• 14/12
• Soutenance le 21/12 27
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Calendrier
• 4 cours de 3h
• Du 28/09 au 19/10
• 6 séances de suivi Questions sur les fonctionnalités à réaliser
Propositions / validation sur le découpage du travail
• 26/10 Validation sur la conception de l’application
• 09/11
• 16/11
Surveillance de l’avancement du projet
• 30/11
Suivi et évaluation individuel de chaque membre
• 07/12 Aide technique sur le langage utilisé
• 14/12
• Soutenance le 21/12 28
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Et en dehors des horaires :
• continuer d’avancer sur les points durs
Calendrier • Bien valider la répartition du travail,
la charge de chacun
• Mettre en place des tests
• Finaliser un test d’intégration avec toute l’équipe
• 4 cours de 3h
• Du 28/09 au 19/10
• 6 séances de suivi Questions sur les fonctionnalités à réaliser
Propositions / validation sur le découpage du travail
• 26/10 Validation sur la conception de l’application
• 09/11
• 16/11
Surveillance de l’avancement du projet
• 30/11
Suivi et évaluation individuel de chaque membre
• 07/12 Aide technique sur le langage utilisé
• 14/12
• Soutenance le 21/12 29
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Evaluation
• une note de contrôle d'avancement en TD (25%),
• une note de soutenance (20%),
• une note relative au code livré (architecture, qualité et test) (25%)
• une note d'utilisation des outils de "forge" (ticket, gestionnaire de
versions, documentation) (30%)

30
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Fonctionnement du suivi
• Audrey à distance • 3 « rôles »
• Échange via Jalon • Client
• Reçoit les livrables (exécuter le projet)
• Philippe en présentiel
• Perçoit la qualité (tests unitaires)
• Et via Jalon • Exprime les besoins
• Les avis du client « priment » • Gestionnaire de projet
• Vérifie le déroulement du projet
• Consultant technique
• Aide sur le développement
• Conseille sur le code
• Perçoit la qualité (tests unitaires)
31
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Travail et Suivi
• Jeudi après-midi • Livraison : Jeudi Soir
• Montrer l’avancement • GIT et Jira
• Poser des questions • message explicatif sur Jalon
• Finaliser la « démo » (faite à • Retours : mercredi qui suit au plus
distance)
tard
• En dehors des séances • Parfois en premier
• Avancer… • Parfois un peu plus tard
• Via Jalon

32
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
La soutenance
• 15 minutes de présentation + 10 minutes de questions
• dont 2 minutes maximum dédiées à une démo
• Chaque membre du projet peut être intérogés sur n’importe quelle partie du projet
• Chaque présentation doit faire intervenir tous les membres de l'équipe de façon équivalente.
• Format imposé de 6 transparents + démo
1. Titre, membre de l'équipe, etc
2. Fonctionnalités réalisées : bilan à gros grain de ce qui a été fait
3. Grands choix de conception, organisation du code
4. Organisation des tests : comment sont testés les éléments de représentation du jeu, les
éléments qui servent aux décision des robots, l'intelligence des robots.
5. Points forts et points faibles de votre implémentation (parties bien conçues et bien testées
vs parties moins stables ou qui ont besoin d'amélioration)
6. Gestion du projet, problèmes rencontrés, différence entre jalons prévus et jalons effectifs
7. Démo
33
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Organisation de l’UE
• Notion de projet, V&V
• Tests unitaires, Junit, Test-driven development

• méthodologie

• Versioning (GIT)
• Système de tickets (Jira)
• Environnement de développement
• Construction automatique (Maven)
• Documentation
34
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Notion de projet

Projet Informatique (L3)


Philippe Renevier Gonin
d’après un cours de Philippe Collet
Un projet

• Un effort temporaire
• qui est progressivement planifié,
contrôlé et exécuté
• par des personnes travaillant avec
des contraintes de ressources
• pour créer un produit, service ou
résultat unique

36
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Un projet • Début et fin sont définies
• Pas forcément court, mais fini

• Un effort temporaire
• qui est progressivement planifié,
contrôlé et exécuté
• par des personnes travaillant avec
des contraintes de ressources
• pour créer un produit, service ou
résultat unique

37
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Un projet • Début et fin sont définies
• Pas forcément court, mais fini

• Un effort temporaire
• qui est progressivement planifié,
contrôlé et exécuté
• par des personnes travaillant avec
des contraintes de ressources
• pour créer un produit, service ou
résultat unique
• Nécessité d’une planification initiale et d’un suivi
• Le travail s’organise pour accomplir des objectifs (exécution)
38
• Le travail nécessite des vérifications pour être correctement exécuté Projet Informatique (L3)

• Et tout cela, progressivement, en étapes, en affinant au fur et à mesure Philippe Renevier Gonin
d’après un cours de Philippe Collet
Un projet • La dimension humaine est
primordiale

• Un effort temporaire
• qui est progressivement planifié,
contrôlé et exécuté
• par des personnes travaillant avec
des contraintes de ressources
• pour créer un produit, service ou
résultat unique

39
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Un projet • La dimension humaine est
primordiale

• Un effort temporaire
• qui est progressivement planifié,
contrôlé et exécuté
• par des personnes travaillant avec
des contraintes de ressources
• pour créer un produit, service ou
résultat unique

• Contraintes de temps, de coût


40
• Tout limitation ou frontière du projet est une contrainte Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Gérer un projet portée

• essentiellement gérer
continuellement ces (ou ses)
contraintes
• pour atteindre des critères de
qualité prédéfinis Qualité

coûts temps

41
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Un projet

• Un effort temporaire
• qui est progressivement planifié,
contrôlé et exécuté
• par des personnes travaillant avec
des contraintes de ressources
• pour créer un produit, service ou
résultat unique

• Le projet crée quelque chose de nouveau


42
• Quelque chose de tangible (produit) ou non (service, résultat) Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Définir l’objectif du projet
• L’objectif du projet est quelque chose que l’organisation ne peut obtenir
par son fonctionnement normal

• Produire les fiches de paie mensuelles  fonctionnement normal


• Produire le système d’information qui permettra d’éditer les feuilles de
paie  projet

• Question :
Pour un acheteur, le chantier de sa maison est-il un projet ?
Pour un constructeur de maisons, chaque chantier est-il un projet ?
Mêmes questions avec un site web ? 43
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Caractéristiques d’un projet
• Livrables
• La partie la plus importante d’un projet, souvent multiples
• On parle parfois d’artefact, comme quelque chose qu’il est nécessaire de produire,
sans que ce soit un livrable
• Portée du produit
• Caractéristiques et fonctionnalités du produit
• Portée du projet
• Comment les objectifs vont être atteints
• Donc, le travail, et uniquement le travail, pour réaliser les… livrables
• Donc, directement impacté par le temps et le coût
• Impossible de définir la portée du projet sans la portée du produit
44
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Génie logiciel
• Définition (software engineering)
• ensemble de méthodes, techniques et outils pour la production et la maintenance de composants logiciels de qualité
• Principes
• rigueur et formalisation, séparation des préoccupations, modularité, abstraction, prévision du changement, approche
générique, approche incrémentale

• Besoins
• Langages pour décrire
• Outils pour manipuler
• Méthodes pour décider
• Théories pour démontrer
• Professionnels pour réaliser
• Logistique pour supporter

45
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Qualité du logiciel
• Les qualités utiles à l’utilisateur, donc a priori souhaitées par le
client
• Phases d’exploitation

Versus
• Les qualités utiles au développeur
• Phases de construction et de maintenance
46
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Qualités pour l’utilisateur
(phases d’exploitation)
• Fiabilité = Validité + Robustesse
• Validité  correction, exactitude
• Assurer exactement les fonctions attendues, définies dans le cahier des charges et la spécification, en
supposant son environnement fiable
• Adéquation aux besoins
• Robustesse: faire tout ce qu’il est utile et possible de faire en cas de défaillance: pannes
matérielles, erreurs humaines ou logicielles, malveillances…
• Convivialité
• Réaliser tout ce qui est utile à l’utilisateur, de manière simple, ergonomique, agréable…
• Performance (parfois appelée efficacité)
• Utiliser de manière optimale les ressources matérielles : temps d’utilisation des processeurs,
place en mémoire, précision…
• Extensibilité, Compatibilité, Intégrité (sécurité)… 47
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Qualités pour le développeur
(phases de développement)
• Documentation
• Tout ce qu’il faut, rien que ce qu’il faut, là où il faut, quand il faut, correcte et adaptée au lecteur

• Modularité = Fonctionnalité + Interchangeabilité + Évolutivité + Réutilisabilité


• Fonctionnalité : Localiser un phénomène unique, facile à comprendre et à spécifier
• Interchangeabilité : Pouvoir substituer une variante d’implémentation sans conséquence fonctionnelle (et souvent
non-fonctionnelle) sur les autres parties
• Évolutivité : Facilité avec laquelle un logiciel peut être adapté à un changement ou une
• extension de sa spécification
• Réutilisabilité : Aptitude à être réutilisé, en tout ou en partie, tel que ou par adaptation, dans un autre contexte :
autre application, machine, système…
• Vérifiabilité
• Aptitude d’un logiciel à être testé
• Portabilité
• Aptitude d’un logiciel à être transféré dans des environnements logiciels et matériels différents 48
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Génie logiciel : le défi
• Contradictions apparentes
• Qualités vs coût du logiciel
• Qualités pour l’utilisateur vs qualités pour le développeur
• Contrôler vs produire
• Conséquences
 Chercher sans cesse le meilleur compromis
 Amortir les coûts
• Premier exemplaire de composant coûteux à produire ou à acheter, puis amortissement…
 Gérer un projet informatique de manière spécifique (avec des méthodes
spécifiques) 49
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Notion de cycle de vie du logiciel
• Description d’un processus pour :
• la création d ’un produit
• sa distribution sur un marché
• son retrait
• Cycle de vie et assurance qualité
• Validation : le bon produit ?
• Vérification : le produit correct ?
• L’organisation des tâches peut être différente, suivant différents
modèles
• On en verra plus au plus tard (surtout au semestre 6)
50
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
cycle de vie: organiser des phases
Retrait ou
Objectifs
remplacement

Définition Maintenance
des besoins
Mise en
Analyse exploitation
des besoins

Qualification
Planification
Validation et
Implémentation Intégration
Conception 51
et tests unitaires
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Validation et Vérification

Projet Informatique (L3)


Philippe Renevier Gonin
d’après un cours de Philippe Collet
Deux aspects de la notion de qualité :
Principes de V&V
• Conformité avec la définition : VALIDATION
• Réponse à la question : faisons-nous le bon produit ?
• Contrôle en cours de réalisation, le plus souvent avec le client
• Défauts par rapport aux besoins que le produit doit satisfaire
• Correction d’une phase ou de l’ensemble : VERIFICATION
• Réponse à la question : faisons-nous le produit correctement ?
• Tests
• Erreurs par rapport aux définitions précises établies lors des phases antérieures de
développement
53
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
V&V et cycle de vie
• Les spécifications fonctionnelles définissent les intentions
• lors de la phase d’analyse des besoins
• La vérification du produit = vérifier la conformité vis-à-vis de ces
spécifications fonctionnelles
• Revues, inspections, analyses, tests fonctionnels et structurels en boîte blanche
• La validation du produit = vérifier par le donneur d’ordre la conformité vis-
à-vis des besoins
• Le plus souvent, tests fonctionnels en boîte noire
• Théoriquement, la validation devrait être plutôt faite par les utilisateurs, sans tenir
compte du cahier des charges
• En pratique, la validation s’appuie sur le cahier des charges pour créer des tests
d’acceptation… 54
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Tests fonctionnels en boîte noire

• S’appuient sur des spécifications externes


• Partitionnent les données à tester par classes d’équivalence
• Une valeur attendue dans 1..10 donne [1..10], < 1 et > 10
• Ajoutent des valeurs « pertinentes », liées à l’expérience du testeur
• Tests aux bornes : sur les bornes pour l’acceptation, juste au delà des bornes pour des
refus

55
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Validation(s)

Analyse des besoins Tests utilisateur


Validations
logicielles déploiement
Conception

Tests d’intégration
Conception logicielle

Tests unitaires
Validations
ergonomiques
Codage 56
Projet Informatique (L3)
Philippe Renevier Gonin
Note : le cycle de vie d’une interface est ici représenté en V de manière analytique…d’après un cours de Philippe Collet
Vérification(s)
Vérifications
ergonomiques
Analyse des besoins Tests utilisateur

déploiement
Conception

Tests d’intégration
Conception logicielle

Tests unitaires

Vérifications
Codage logicielles 57
Projet Informatique (L3)
Philippe Renevier Gonin
Note : le cycle de vie d’une interface est ici représenté en V de manière analytique…d’après un cours de Philippe Collet
Techniques statiques

• Portent sur des documents (plutôt des programmes), sans exécuter


le logiciel
• contrôle systématique valable pour • Ne portent pas forcément sur le
+ toute exécution, applicables à tout code réel -
document • Ne sont pas en situation réelle
(interaction, environnement)
• Vérifications sommaires, sauf pour
les preuves
• Ces preuves nécessitent des
spécifications formelles et 58
complètes, donc difficiles
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet
Techniques dynamiques
• Nécessitent une exécution du logiciel, une parmi des multitudes
d’autres possibles
• Vérification avec des conditions • Il faut provoquer des expériences,
+ proches de la réalité donc écrire du code et construire -
• Plus à la portée du commun des des données d’essais
programmeurs • Un test qui réussit ne démontre pas
qu’il n’y a pas d’erreurs

• Les techniques statiques et dynamiques sont donc complémentaires


59
Projet Informatique (L3)
Philippe Renevier Gonin
d’après un cours de Philippe Collet