This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
2016_2017:s3:methodo:td:etudedecas [2016/08/31 13:28] blay [TIPS :] |
2016_2017:s3:methodo:td:etudedecas [2016/08/31 15:03] blay |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ~~ODT~~ | ||
====== IUT GO ! ====== | ====== IUT GO ! ====== | ||
Line 6: | Line 7: | ||
===== Principes ===== | ===== Principes ===== | ||
- | Chaque groupe travaille en équipes de 3 à 4 étudiants dirigées par un chef de projet qui n'appartient à aucune équipe. | + | Chaque groupe travaille en équipes de 3 à 4 étudiants dirigées par un chef de projet transverse aux équipes. |
Le chef de projet a pour rôle d'identifier les points communs entre les équipes, d'aider les équipes à trouver des solutions et de préparer le travail d'intégration. | Le chef de projet a pour rôle d'identifier les points communs entre les équipes, d'aider les équipes à trouver des solutions et de préparer le travail d'intégration. | ||
Line 13: | Line 14: | ||
Des codes vous seront donnés, vous devez les utiliser pour vous aider à vous intégrer au mieux : | Des codes vous seront donnés, vous devez les utiliser pour vous aider à vous intégrer au mieux : | ||
* les codes relatifs à [[https://www.openstreetmap.org/about|OpenStreetMap]] : ce module vous permettra de visualiser les éléments intéressants sur une carte. | * les codes relatifs à [[https://www.openstreetmap.org/about|OpenStreetMap]] : ce module vous permettra de visualiser les éléments intéressants sur une carte. | ||
- | * le module "[[http://sparks-vm26.i3s.unice.fr/repository/iut-public/|Member]]" (correspondant au cas d'étude "Qui est-ce?" ci-dessous) qui vous donne des briques de base pour vous aider à développer vos propres modules intégrant du Json, des tests unitaires, maven ... | + | /* http://wiki.openstreetmap.org/wiki/Main_Page |
+ | */ | ||
+ | * le module "[[http://sparks-vm26.i3s.unice.fr/repository/iut-public/|Member]]" (correspondant au cas d'étude "Qui est-ce?" ci-dessous) qui vous donne des briques de base pour vous aider à développer vos propres modules intégrant du JSON, des tests unitaires, MAVEN. Le code source et les tests associés à ce module sont disponibles [[https://bitbucket.org/cyrilcecchinel/member_service_iut|ici]] ... | ||
Vos codes doivent : | Vos codes doivent : | ||
- | - être réalisés en utilisant une dépôt GIT (Vous serez individuellement évalués sur vos commit); | + | - être réalisés en utilisant un dépôt GIT (Vous serez individuellement évalués sur vos commit); |
- correspondre à des modules Maven; | - correspondre à des modules Maven; | ||
- respecter les règles de séparation de préoccupations et la qualité de vos codes est un critère d'évaluation. | - respecter les règles de séparation de préoccupations et la qualité de vos codes est un critère d'évaluation. | ||
Chaque module est fourni avec : | Chaque module est fourni avec : | ||
- des tests unitaires; | - des tests unitaires; | ||
- | - une classe de test dédiée que l'on appelle //voir// et qui prend une forme différente en fonction des modules. | + | - une classe de test dédiée et qui prend une forme différente en fonction des modules. |
Les fonctionnalités attendues présentent à la fois de la **valeur** par rapport à notre application cible et une **complexité** de développement. Pour vous aider, des indices vous sont données à titre indicatif, ils peuvent être modifiés lors de l'avancement du projet. | Les fonctionnalités attendues présentent à la fois de la **valeur** par rapport à notre application cible et une **complexité** de développement. Pour vous aider, des indices vous sont données à titre indicatif, ils peuvent être modifiés lors de l'avancement du projet. | ||
Line 28: | Line 31: | ||
**Valeurs :** | **Valeurs :** | ||
- | * ++ signifie très forte valeur : ne pas l'avoir fait perdre 4pts | + | * ++ signifie très forte valeur : ne pas l'avoir fait **perdre 4pts** |
- | * + signifie utile : ne pas l'avoir fait perdre 2 pts | + | * + signifie utile : ne pas l'avoir fait **perdre 2 pts** |
* = signifie tant pis si on ne l'a pas | * = signifie tant pis si on ne l'a pas | ||
**Complexité :** | **Complexité :** | ||
- | * $$ fonctionnalité difficile : + 4 pts | + | * $$ fonctionnalité difficile : **+ 4 pts** |
- | * $ fonctionnalité normale : + 2 pts | + | * $ fonctionnalité normale : **+ 2 pts** |
- | * - fonctionnalité facile : 1 pt | + | * - fonctionnalité facile : **+ 1 pt** |
Au travers des "Histoires utilisateurs (User Stories/US)", vous devrez préciser les fonctionnalités en gérant les cas particuliers (e.g. personne non enregistrée, erreurs de coordonnées). De même les problèmes de propriétés non fonctionnelles comme le nombre d'enregistrements, les temps d'affichage doivent être exprimés sous forme de contraintes et limites. Evidemment une fonctionnalité mal construite ne vous permet d'avoir tous les points et peut vous en faire perdre. | Au travers des "Histoires utilisateurs (User Stories/US)", vous devrez préciser les fonctionnalités en gérant les cas particuliers (e.g. personne non enregistrée, erreurs de coordonnées). De même les problèmes de propriétés non fonctionnelles comme le nombre d'enregistrements, les temps d'affichage doivent être exprimés sous forme de contraintes et limites. Evidemment une fonctionnalité mal construite ne vous permet d'avoir tous les points et peut vous en faire perdre. | ||
Line 43: | Line 46: | ||
+ | /*http://wiki.openstreetmap.org/wiki/JMapViewer | ||
+ | */ | ||
===== Première partie : Briques de base ===== | ===== Première partie : Briques de base ===== | ||
Line 49: | Line 53: | ||
==== Qui est-ce ? ==== | ==== Qui est-ce ? ==== | ||
- | Module qui vous est donné et qui a pour objectif d'identifier de manière unique les membres du réseau. | + | Objectif : identifier de manière unique les membres du réseau. |
- | - Il permet d'enregistrer des membres :Nom de la personne, prénom, (identifiant) | + | - Enregistrer un membre :Nom de la personne, prénom, (identifiant) |
- Récupérer un membre à partir de son identifiant | - Récupérer un membre à partir de son identifiant | ||
- | - Enregistrer les membres dans un fichier ou lire un fichier contenant des membres | + | - Enregistrer les membres dans un fichier |
+ | - Lire un fichier contenant des membres | ||
- | Ce module vous est donné et est modifiable par un seul sous-groupe. Tous les sous-groupes peuvent y faire référence en fonction de leur besoin. | + | Ce module vous est donné: http://sparks-vm26.i3s.unice.fr/repository/iut-public/ |
==== 1 ) Marauder's trace ==== | ==== 1 ) Marauder's trace ==== | ||
- | L'objectif est de permettre de tracer les déplacements des PokeStud. | + | Objectif : tracer les déplacements des PokeStud. |
- (++, $) Enregistrer la position de X : Jour, Heure, positionGPS; | - (++, $) Enregistrer la position de X : Jour, Heure, positionGPS; | ||
Line 82: | Line 87: | ||
Objectif : Prendre en compte l'individualité de chacun | Objectif : Prendre en compte l'individualité de chacun | ||
- | - (++, - ) enregistrer la formation suivie par X : (Info1, Infocom2, ....) | + | - (++, - ) Enregistrer la formation suivie par X : (Info1, Infocom2, ....) |
- (+, - ) Quelle est la formation suivie par X ? | - (+, - ) Quelle est la formation suivie par X ? | ||
- | - (=, - ) qui est inscrit avec telle formation ? | + | - (=, - ) Qui est inscrit avec telle formation ? |
- | - (+, - ) enregistrer l'humeur de X : happy, sad, ... | + | - (+, - ) Enregistrer l'humeur de X : happy, sad, ... |
- | - (=, - ) quelle est l'humeur de X ? | + | - (=, - ) Quelle est l'humeur de X ? |
- | - (+, - ) enregistrer le petit nom de X | + | - (+, - ) Enregistrer le surnom de X |
- | - (=, - ) quel est le petit nom de X ? | + | - (=, - ) Quel est le surnom de X ? |
- | - (++, - ) enregistrer l'adresse (coordonnées GPS) de X | + | - (++, - ) Enregistrer l'adresse (coordonnées GPS) de X. |
- | - (+, - ) quelle est l'adresse de X ? | + | - (+, - ) Quelle est l'adresse de X ? |
- | - (++, $$ ) qui habitent à une distance inférieure à Y de X ? | + | - (++, $$ ) Qui habitent à une distance inférieure à Y km de X ? |
- | - (=, $$ ) qui habite le plus près de X ? | + | - (=, $$ ) Qui habite le plus près de X ? |
- (=, $ ) A quelle distance X habite de Y ? | - (=, $ ) A quelle distance X habite de Y ? | ||
Line 105: | Line 110: | ||
==== 3) Linked In my world ==== | ==== 3) Linked In my world ==== | ||
- | Objectif : Enregistrer et retrouver des liens entre des personnes : ami, collegue, famille, .... | + | Objectif : Enregistrer et retrouver des liens entre des personnes : ami, collègue, famille, .... |
- | - (++, - ) enregistrer un lien entre X et Y en précisant son type | + | - (++, - ) Enregistrer un lien entre X et Y en précisant son type |
- | - (++, $ ) quels sont les liens directs entre X et Y ? | + | - (++, $ ) Quels sont les liens directs entre X et Y ? |
- (+, - ) Existe-il un lien de type Z entre X et Y ? | - (+, - ) Existe-il un lien de type Z entre X et Y ? | ||
- | - (+, $ ) Existe-il une relation entre X et Z (il suffit qu'il existe des relations entre X, W et W , Z) ? | + | - (+, $ ) Existe-il une relation entre X et Z (il suffit qu'il existe des relations entre X et W et entre W et Z) ? |
- | - (-, $$ ) Quelle est la relation entre X et Z (parenté avec W et ami entre W et Z) .... | + | - (-, $$ ) Quelle est la relation entre X et Z (e.g. parenté avec W et ami entre W et Z) |
- | - (-, $ ) Existe-il une relation de parenté entre X et Z (parenté avec W et parenté entre W et Z) | + | - (-, $ ) Existe-il une relation de parenté entre X et Z (e.g. parenté avec W et parenté entre W et Z) |
- | - (+, $$ ) Quel est le chemin le plus court entre X et Z ? (parenté avec W et parenté entre W et Z) | + | - (+, $$ ) Quel est le chemin le plus court entre X et Z ? (e.g. parenté avec W et parenté entre W et Z) |
- (- , $$) Permettre d'ajouter un type de relation par exemple //conflit// | - (- , $$) Permettre d'ajouter un type de relation par exemple //conflit// | ||
Line 124: | Line 129: | ||
==== 4) Tchatche'Car ==== | ==== 4) Tchatche'Car ==== | ||
+ | Objectif : Faciliter le co-voiturage. | ||
- (++, $ ) Enregistrer un voyage : conducteur X, Depart (GPS), Arrivee (GPS), NombreDePassagers possibles, Jour et heure de départ | - (++, $ ) Enregistrer un voyage : conducteur X, Depart (GPS), Arrivee (GPS), NombreDePassagers possibles, Jour et heure de départ | ||
- (+, $ ) Obtenir des informations sur un voyage : conducteur X, Depart (GPS), Arrivee (GPS), NombreDePassagers possibles, Date de départ, nombre de passagers enregistrés | - (+, $ ) Obtenir des informations sur un voyage : conducteur X, Depart (GPS), Arrivee (GPS), NombreDePassagers possibles, Date de départ, nombre de passagers enregistrés | ||
Line 129: | Line 135: | ||
- (++, - ) Quels voyages sont prévus au départ de D ? | - (++, - ) Quels voyages sont prévus au départ de D ? | ||
- (+, - ) Quels voyages sont prévus avec une arrivée en A ? | - (+, - ) Quels voyages sont prévus avec une arrivée en A ? | ||
- | - (+, $ ) Enregistrer un passager sur un voyage donné | + | - (+, $ ) Enregistrer un passager sur un voyage donné. |
- (+, $ ) Quels sont les passagers sur un voyage donné ? | - (+, $ ) Quels sont les passagers sur un voyage donné ? | ||
- (=, - ) Quels sont les voyages faits par X ? | - (=, - ) Quels sont les voyages faits par X ? | ||
- (=, - ) Quels sont les voyages faits par X en tant que conducteur ? | - (=, - ) Quels sont les voyages faits par X en tant que conducteur ? | ||
- (=, $ ) Quels sont les voyages faits par X en tant que passager ? | - (=, $ ) Quels sont les voyages faits par X en tant que passager ? | ||
- | - (=, $) Enregistrer les voyages | + | - (=, $) Enregistrer les voyages dans un fichier. |
- | - (=, -) Charger les voyages non encore réalisés | + | - (=, -) Charger les voyages non encore réalisés qui se trouvent dans un fichier. |
(++,-) voir : Console | (++,-) voir : Console | ||
Line 144: | Line 150: | ||
* vous avez un potentiel de 6*1 + 7*2 = 20 points; | * vous avez un potentiel de 6*1 + 7*2 = 20 points; | ||
==== 5) Place Advisor ==== | ==== 5) Place Advisor ==== | ||
- | + | Objectif : Favoriser l'organisation de voyages | |
- | - (++, -) Enregistrer un point d'intérêt : nom, description, coordonnées | + | - (++, -) Enregistrer un point d'intérêt : nom, description, coordonnées GPS |
- | - (++, -/$) incrémenter ou décrémenter un coefficient d'intérêt associé à un point d'intérêt (j'aime, je n'aime pas) | + | - (++, -/$) Incrémenter ou décrémenter un coefficient d'intérêt associé à un point d'intérêt (j'aime, je n'aime pas) |
- (=, -) Obtenir le coefficient d'intérêt associé à un point d'intérêt | - (=, -) Obtenir le coefficient d'intérêt associé à un point d'intérêt | ||
- | - (+, -) associer un coût de nuité à un point d'intérêt | + | - (+, -) Associer un coût de nuité à un point d'intérêt |
- | - (+, $) calculer le coût d'un itinéraire (somme des coûts des points d'intérêts qui composent l'itinéraire) | + | - (+, $) Calculer le coût d'un "itinéraire"((itinéraire = une liste de points d'intérêts pour l'instant)) (somme des coûts des points d'intérêts qui composent l'itinéraire) |
- | - (=, $) calculer des itinéraires en fonction d'un budget((On prendra en compte le cout des trajets et des distances lors de l'intégration)) | + | - (=, $) Calculer des itinéraires en fonction d'un budget((On prendra en compte le cout des trajets et des distances lors de l'intégration)) |
- (=, $$) En maximisant l'intérêt | - (=, $$) En maximisant l'intérêt | ||
- | - (=, $$) En forçant la présence d'un point d'intérêt | + | - (=, $$) En forçant la présence d'un point d'intérêt donné |
- | - (=, $) En évitant la présence d'un point d'intérêt | + | - (=, $) En évitant la présence d'un point d'intérêt donné |
- | - (++, -) Mémoriser les points d'intérêts | + | - (++, -) Mémoriser les points d'intérêts dans un fichier |
- | - (=, -) Charger les points d'intérêts | + | - (=, -) Charger les points d'intérêts qui se trouvent dans un fichier |
| | ||
(++,-) voir : Console | (++,-) voir : Console | ||
Line 178: | Line 184: | ||
*/ | */ | ||
==== 6) Alice's MAP ==== | ==== 6) Alice's MAP ==== | ||
- | Objectif : Visualiser sur une carte des points donnés. Ce sous-projet est central. Sa réussite va impliquer toute la suite du projet. Contrairement aux autres sous-proets, il repose sur l'utilisation du module fourni. | + | Objectif : Visualiser sur une carte des points donnés. Ce sous-projet est central. Sa réussite va impliquer toute la suite du projet. Contrairement aux autres sous-projets, il repose sur l'utilisation du module fourni. |
Voici les fonctionnalités que vous devez ajouter : | Voici les fonctionnalités que vous devez ajouter : | ||
- | * (++,-) Positionner un point à partir de coordonnées GPS et d'un libellé | + | * (++,-) Positionner un point (Marker) à partir de coordonnées GPS et d'un libellé |
* (=, $) Saisir le point dynamiquement | * (=, $) Saisir le point dynamiquement | ||
* (++, -) Visualiser un chemin (ligne) entre deux markers donnés | * (++, -) Visualiser un chemin (ligne) entre deux markers donnés | ||
Line 196: | Line 202: | ||
Bilan : | Bilan : | ||
* vous pouvez perdre 4*4pts + 2*2points = 20 points; | * vous pouvez perdre 4*4pts + 2*2points = 20 points; | ||
- | * vous avez un potentiel d(au moins 2*1 + 7*2 = 16 points; ((difficile à déterminer. L'évaluation de la complexité des fonctionnalités additionnelles sera réalisée en direct). | + | * vous avez un potentiel d'au moins 2*1 + 7*2 = 16 points; ((difficile à déterminer. L'évaluation de la complexité des fonctionnalités additionnelles sera réalisée en direct). |
/* | /* | ||
Line 253: | Line 259: | ||
- Rechercher qq qui a telles caractéristiques autour de moi : formation, humeur, ... | - Rechercher qq qui a telles caractéristiques autour de moi : formation, humeur, ... | ||
- Rechercher qq avec qui je suis ami/parent/... autour de moi | - Rechercher qq avec qui je suis ami/parent/... autour de moi | ||
- | - Alimenter les reseau avec les covoitureurs en ajoutant un lien co-voiture qui a le nombre de covoiturage | + | - Alimenter les reseau avec les covoitureurs en ajoutant un lien "co-voyageur" |
- A la demande : en passant un co-voiturage | - A la demande : en passant un co-voiturage | ||
- | - Automatiquement à chaque déclaration d'un co-voiturage | + | - Automatiquement à chaque déclaration d'un co-voiturage |
- Visualiser la position de tous ses amis etc | - Visualiser la position de tous ses amis etc | ||
- A chaque saisie de l'humeur on enregistre la position | - A chaque saisie de l'humeur on enregistre la position | ||
- | - Placer un capteur sur une carte | ||
- | - Associer un capteur à une personne | ||
- Visualiser la maison des membres | - Visualiser la maison des membres | ||
+ | - Visualiser les points d'intérêts sur la carte | ||
- | Notation de l'intégration : | + | /* Notation de l'intégration : |
la note du groupe = moyenne des notes des individus (y compris els 0) | la note du groupe = moyenne des notes des individus (y compris els 0) | ||
la note d'un individu : sa note + 0,5*note du groupe / 1,5 | la note d'un individu : sa note + 0,5*note du groupe / 1,5 | ||
+ | */ | ||
+ | |||
Line 280: | Line 287: | ||
+ | ==== TIPS : ==== | ||
+ | - Les coordonnées doivent être exprimées en coordonnées GPS, aller voir au moins l'interface ICoordinate qui vous est donnée dans le module OpenStreetView. | ||
+ | - Le calcul de la distance entre deux données GPS : http://www.movable-type.co.uk/scripts/latlong.html | ||