User Tools

Site Tools


2015_2016:s3:concprogobjet:td:td4

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
2015_2016:s3:concprogobjet:td:td4 [2015/10/27 03:05]
blay [Réutilisation par composition et héritage]
2015_2016:s3:concprogobjet:td:td4 [2015/10/27 10:00] (current)
blay [Ressources]
Line 20: Line 20:
 {{:​2015_2016:​s3:​concprogobjet:​td:​pourlestests.zip|Archive contenant la classe de test et les interfaces à implémenter pour faire passer les tests. {{:​2015_2016:​s3:​concprogobjet:​td:​pourlestests.zip|Archive contenant la classe de test et les interfaces à implémenter pour faire passer les tests.
  
 +Vous n'avez que deux interfaces à implémenter : ''​ReseauSocialInterface''​ et ''​MembreInterface''​. ​
 Ce qui suit est là pour vous aider. }} Ce qui suit est là pour vous aider. }}
 </​box>​ </​box>​
 +
 +La figure suivante visualise les interfaces et classes fournies pour les tests.
 +
 +{{ :​2015_2016:​s3:​concprogobjet:​td:​reseausocialcore.jpg?​direct&​300 |}}
  
 ===== Réutilisation par composition et héritage ===== ===== Réutilisation par composition et héritage =====
Line 41: Line 46:
 Rechercher des relations entre ses membres, revient à parcourir le graphe. Rechercher des relations entre ses membres, revient à parcourir le graphe.
  
-Pour vous aider (et c'est aussi obligatoire ;-) ) vous utiliserez les classes suivantes.{{:​2015_2016:​s3:​concprogobjet:​td:​pourlesgraphes.zip| classes pour traiter des graphes.}}+Pour vous aider (et c'est aussi obligatoire ;-) ) vous utiliserez les classes suivantes,{{:​2015_2016:​s3:​concprogobjet:​td:​pourlesgraphes.zip| classes pour traiter des graphes.}}, en particulier la classe ''​GrapheSimple''​ et la classe ''​ParcoursSimple''​ pour calculer des chemins ((Ces codes sont basés sur le package GrapheX fournis par l'"​X"​ dans ses cours, pour en savoir plus (page évolutive):​ https://​www.enseignement.polytechnique.fr/​informatique/​INF431/​X06-2007-2008/​TD/​INF431-td_6-1.php )).  
 + 
 +La figure suivante visualise une part de ces codes.  
 +{{ :​2015_2016:​s3:​concprogobjet:​td:​graphessimple.jpg?​direct&​300 |}} 
  
-{{ :​2015_2016:​s3:​concprogobjet:​td:​graphex.jpg?​link&​300 |}} 
 </​note>​ </​note>​
  
 +{{ :​2015_2016:​s3:​concprogobjet:​td:​graphex.jpg?​link&​300 |}}
 ===== Réutilisation par adaptation ===== ===== Réutilisation par adaptation =====
  
-  - On veut intégrer dans notre réseau social, des membres du reseau ​facebookGhost. On nous donne les classes suivantes que nous ne pouvons pas modifier+  - On veut intégrer dans notre réseau social, des membres du réseau ''​facebookGhost''​ dont vous avez déjà récupéré un "​bouchon/​proxy"​ en récupérant ​les tests
-        * on veut ajouter dans notre reseau ​des membres qui correspondent à des "​users"​ du reseau ​ facebookGhost;​ le nom du user dans le reseau facebookGhost (name) devient le nom du membre dans notre réseau (nom) et on garde la référence sur le "​User"​ pour avoir toujours une description à jour qui correspond au profil; +        * on veut ajouter dans notre réseau ​des membres qui correspondent à des "​users"​ du reseau ​ facebookGhost ​(FG); le nom du "user" ​dans le reseau facebookGhost (name) devient le nom du membre dans notre réseau (nom) et on garde la référence sur le "​User"​ pour avoir toujours une description à jour qui correspond au profil; 
-        * on veut ajouter des relations qui correspondent soit à des relations familiales, soit à des relations d'​amitiés dans le réseau ​facebook. Par défaut, une relation de famille correspond à une relation de force 2 et d'​amitié 3.  +        * on veut "​récupérer"​ dans notre réseau, les relations qui correspondent soit à des relations familiales, soit à des relations d'​amitiés dans le réseau ​FG lorsque les Users ciblés sont connus de notre réseau, c'est à dire que nous avons déjà un membre de même nom. Par défaut, une relation de famille correspond à une relation de force 2 dans notre réseau ​et celle d'​amitié ​ont une force 3.  
-        * quand on ajoute un membre correspondant au reseau ​facebookGhost, on recherche parmi ses relations directes dans facebookGhost ​s'il existe des users connus de notre propre réseau et on lui ajoute les relations si elles n'​existaient pas :  +        * quand on ajoute ​dans notre réseau ​un membre correspondant au reseau ​FG, on recherche parmi ses relations directes dans FG s'il existe des users connus de notre propre réseau et on lui ajoute les relations si elles n'​existaient pas, exemples ​:  
-             * Hercule est connu du réseau FG et se déclare comme membre de notre réseau+             * Hercule est connu du réseau FG et se déclare comme membre de notre réseau ​(''​addMembre("​Hercule",​ true)''​)
                   * On récupère du réseau FG son nom.                   * On récupère du réseau FG son nom.
                   * On récupère sa famille (Zeus, Alcmène) et ses amis (Admète)                   * On récupère sa famille (Zeus, Alcmène) et ses amis (Admète)
-                  * Seuls Zeus et Admete sont connus de notre réseau; la relation de Hercule vers Zeus est ajoutée avec une force de 2, celle entre Hercule et Admete est ajoutée avec une force de 3; Nous mettons également à jour les relations inverses.+                  * Seuls Zeus et Admete sont connus de notre réseau; la relation de Hercule vers Zeus est ajoutée avec une force de 2, celle entre Hercule et Admete est ajoutée avec une force de 3; nous mettons également à jour les relations inverses.
  
-Prevoir de leur donner un programme principal avec ce réseau... 
- 
- 
-Au début du reseau FG 
-new user ("​Zeus","​le dieu ...",​Integer.max) 
-new user ("​Alcmène",​ .., ) 
-new user ("​Hercule",​ .., ) 
-new user ("​Admète",​ .., ) 
-new user ("​Hera",​ .., ) 
-new friend("​Hercule","​Admète"​) 
-new Family("​Hercule","​Zeus"​) 
-new Family("​Hercule","​Alcmène"​) 
-new Family("​Zeus","​Hera"​) 
 ===== Réutilisation par observation ===== ===== Réutilisation par observation =====
  
-Chaque fois qu'une nouvelle relation est ajoutée dans FG, on veut vérifier ​si les "​users"​ mis en relation existent dans notre réseau et si c'est le cas créer ​les relations correspondantes dans notre réseau. ​ +Chaque fois qu'une nouvelle relation est ajoutée dans FG, on vérifie ​si les "​users"​ mis en relation existent dans notre réseau et si c'est le cas on crée les relations correspondantes dans notre réseau. ​
- +
-Plus complexe : Chaque fois qu'un nouveau user est ajouter dans FG, on veut vérifier s'il existe déjà dans notre réseau et si c'est le cas le "​connecter"​ à notre réseau...  +
- +
- +
- +
- +
- +
-===== Ressources ===== +
- +
- +
-Pour cela on vous donne les classes suivantes : +
-     - Le package {{ :​2014_2015:​s3:​concprogobjet:​td:​graphex.zip?​direct&​300 |grapheX}} duquel ont été extraits les classes utiles à notre problème; ce package a été récupéré sur le web à l'"​X"​ +
-     - Le package {{:​2014_2015:​s3:​concprogobjet:​td:​parcours.zip|parcours}} a été créé pour vous simplifier la tâche et vous permettre de gérer des graphes comportant des sommets reliés par plusieurs arcs. +
- +
-Les 2 diagrammes suivants ont été obtenus par reverse Engineering:​ +
- +
- +
- +
  
 +Pour cela nous utilisons le fait qu'un réseau FG est observable. Il suffit donc de déclarer notre réseau comme Observer du réseau FG et à chaque notification d'​ajout d'une relation, de mettre à jour notre propre réseau.
  
-Reprendre le TD de 'lan dernier, il est bon mais l'appliquer sur des reseaux sociaux... a priori je l'​avais posé en controle donc je dois l'​avoir en version très simple.+<​html>​ 
 +<!-- Plus complexe : Chaque fois qu'un nouveau user est ajouter dans FGon veut vérifier s'il existe déjà dans notre réseau et si c'est le cas le "​connecter"​ à notre réseau...  ​--!>​ 
 +</​html>​
  
  
-demande pour des graphes valués... 
  
-peut etre voir à refaire l'​évaluation des couts vue en cours pour avoir différentes manières de calculer un cout ou mieux garder cette idée pour un DP visiteur.... 
  
  
  
-https://​mbf-iut.i3s.unice.fr/​doku.php?​id=2014_2015:​s3:​concprogobjet:​td:​td5 
2015_2016/s3/concprogobjet/td/td4.1445911549.txt.gz · Last modified: 2015/10/27 03:05 by blay