User Tools

Site Tools


2016_2017: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
2016_2017:s3:concprogobjet:td:td4 [2016/10/16 22:47]
blay [TD Réutilisation]
2016_2017:s3:concprogobjet:td:td4 [2016/11/16 11:25] (current)
blay [Rendu]
Line 16: Line 16:
 <box round rgb(135,​206,​250) rgb(0,​191,​255) 75%|**Votre défi** >  <box round rgb(135,​206,​250) rgb(0,​191,​255) 75%|**Votre défi** > 
  
-Faire passer le test avec un code propre et sans le modifier si ce n'est la référence à la classe "//ReseauSocial//" qui implémente //ReseauSocialInterface//.+Faire passer le test avec un code propre et sans le modifier si ce n'est la référence à la classe "//SocialNetwork//" qui implémente //SocialNetworkInterface//.
  
-{{:2015_2016:​s3:​concprogobjet:​td:​pourlestests.zip|Archive ​contenant la classe de test et les interfaces à implémenter pour faire passer les tests. +Voici les archives :  
- +    - {{:2016_2017:​s3:​concprogobjet:​td:​reseausocialtests.zip|contenant la classe de test}} 
-Vous n'avez que deux interfaces à implémenter : ''​ReseauSocialInterface''​ et ''​MembreInterface''​. ​+    - {{:​2016_2017:​s3:​concprogobjet:​td:​reseausocial.zip|les interfaces à implémenter pour faire passer les tests, }} 
 +    - {{:​2016_2017:​s3:​concprogobjet:​td:​facebookghost.zip|les classes définissant le réseau Facebookghost,​}} 
 +    - {{:​2016_2017:​s3:​concprogobjet:​td:​graphesimple.zip| les classes de gestion des graphes simples }}, les {{:​2016_2017:​s3:​concprogobjet:​td:​graphex.zip|classes de base de gestion des graphes}}  
 +    - et une {{:​2016_2017:​s3:​concprogobjet:​td:​graphesimpletest.zip|classe de tests sur les graphes.}} 
 +  
 +Vous n'avez que deux interfaces à implémenter : ''​SocialNetworkInterface''​ et ''​MemberInterface''​. ​
 Ce qui suit est là pour vous aider. }} Ce qui suit est là pour vous aider. }}
 </​box>​ </​box>​
Line 31: Line 36:
  
 ===== Réutilisation par composition et héritage ===== ===== Réutilisation par composition et héritage =====
- 
- 
- 
  
   - Construire un réseau social :    - Construire un réseau social : 
-       * un membre a un nom et un age et une description;​+       * un membre a un nomun age et une description;​
        * Un membre a est en relation avec membre b avec une force entre 1 et 5 : 5 faible, 1 très forte. a peut se considérer en relation avec b à la force 1 et b ne pas se considérer en relation avec a!        * Un membre a est en relation avec membre b avec une force entre 1 et 5 : 5 faible, 1 très forte. a peut se considérer en relation avec b à la force 1 et b ne pas se considérer en relation avec a!
-       * On veut pouvoir savoir quels sont les membres en relation avec un membre au rang X : exemple : a -> b -> c -> a : a est en relation avec b au rang 1; a est en relation avec c au rang 2; c est relation avec a au rang 1; etc. (Méthode : ''​membresEnRelationAuRang(MembreInterface de, int rang)''​) ​+       * On veut pouvoir savoir quels sont les membres en relation avec un membre au rang X : exemple : a -> b -> c -> a : a est en relation avec b au rang 1; a est en relation avec c au rang 2; c est relation avec a au rang 1; etc. (Méthode : ''​relateToRank(MemberInterface member, int rank)''​) ​
        * On veut pouvoir calculer la distance entre 2 personnes, en choisissant la plus courte distance :         * On veut pouvoir calculer la distance entre 2 personnes, en choisissant la plus courte distance : 
-             * a --1-> b --5-> c et a --2-> d --5-> c : la distance est de 6 entre a et c;(Méthode : ''​distance(MembreInterface ​de, MembreInterface ​a)''​) ​+             * a --1-> b --5-> c et a --2-> d --5-> c : la distance est de 6 entre a et c;(Méthode : ''​distance(MemberInterface ​de, MemberInterface ​a)''​) ​
  
-D'​autres méthodes doivent être définies, il suffit de lire l'​interface "Reseau Social".+D'​autres méthodes doivent être définies, il suffit de lire l'​interface "SocialNetworkInterface".
  
  
Line 63: Line 65:
         * 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.          * 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 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 :          * 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 (''​addMembre("​Hercule",​ true)''​)+             * Hercule est connu du réseau FG et se déclare comme membre de notre réseau (''​addMember("​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)
Line 77: Line 79:
 <!-- 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... ​ --!> <!-- 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... ​ --!>
 </​html>​ </​html>​
 +
 +===== Rendu =====
 +
 +    - un diagramme UML qui visualise uniquement les classes/​interfaces dont votre code dépend directement.
 +          * le diagramme vise à visualiser l'​architecture de votre solution ​
 +                    * les attributs faisant référence à des classes/​interfaces sont uniquement représentés sous la forme d'​associations (rôle, cardinalité,​ orientée)
 +                    * pas de getter et setter
 +                    * pas de classes non directement utilisées par exemple, GrapheX etc.
 +                    * les différents patterns apparaissent sous forme d'​annotations
 +          * le diagramme peut être obtenu par reverse-engineering mais doit être adapté pour répondre aux points précédents. ​
 +    - les codes sources des classes que vous avez créées ou modifiées exclusivement.
 +
 +La date du rendu au plus tard : 28/11 à 23h45
  
  
 +Sur [[http://​jalon.unice.fr/​cours/​blay/​Cours-blay-20150930110548/​BoiteDepot-blay-20161116105407498020|Jalon]] avec comme nom pour l'​archive :  Gr <​numeroGroupe>​ + Nom des étudiants dans le groupe
  
  
  
  
2016_2017/s3/concprogobjet/td/td4.1476650843.txt.gz · Last modified: 2016/10/16 22:47 by blay