Outils et Méthodes - Réseau social professionnel



Documents pareils
Recherche dans un tableau

Compte-rendu de projet de Système de gestion de base de données

Diagramme de classes

chapitre 4 Nombres de Catalan

Université de Bangui. Modélisons en UML

Conduite et Gestion de Projet - Cahier des charges

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Ecole Polytechnique de Louvain INGI Fichiers et bases de données

Windows Server Chapitre 3 : Le service d annuaire Active Directory: Concepts de base

SweetyPix, mode d'emploi

A. Définition et formalisme

Propagation sur réseau statique et dynamique

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Éléments d'architecture des ordinateurs

Programmation Orientée Objet en C#

(VM(t i ),Q(t i+j ),VM(t i+j ))

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Documentation de produit SAP Cloud for Customer (novembre 2013) Nouveautés de SAP Cloud for Customer pour les administrateurs

Raja Bases de données distribuées A Lire - Tutoriel

Télécom Nancy Année

Table des matières. 10 Gimp et le Web. Option de traitement d'images Mémento pour la séance N o Création d'animation

MODE D'EMPLOI DE LA CALCULATRICE POUR LES COURTS SÉJOURS DANS L'ESPACE SCHENGEN

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

La réplication sous SQL Server 2005

INFORMATION GÉNÉTIQUE et REPRODUCTION SEXUÉE

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Mathématiques et petites voitures

Créer et Utiliser un Forum en Ligne

Cahier des charges (CDC)

GOL502 Industries de services

Généralités sur le Langage Java et éléments syntaxiques.

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

MEGA Database Builder. Guide d utilisation

Deuxième partie. Approche globale d'implémentation d'un projet PLM

Dans la série. présentés par le site FRAMASOFT

Processus de Développement Logiciel

Couples de variables aléatoires discrètes

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, Cachan Cedex. Resume

I3, Probabilités 2014 Travaux Dirigés F BM F BM F BM F BM F B M F B M F B M F B M

RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

CHAPITRE VIII : Les circuits avec résistances ohmiques

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)

LISTES DE DISTRIBUTION GÉRÉ PAR SYMPA DOCUMENT EXPLICATIF DE ÉCOLE POLYTECHNIQUE

Générer du code à partir d une description de haut niveau

Date : Tangram en carré page

Contrôler un ordinateur à distance avec Google Chrome

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Stratégie optimale de stockage de déchets à vie longue

Installation personnalisée d'oracle 10g

2 Grad Info Soir Langage C++ Juin Projet BANQUE

Chapitre 6 Expérimentations

Guide de l'utilisateur de l'application mobile

Procédure d'authentification sur Extradoc

Le stockage local de données en HTML5

Application web de gestion de comptes en banques

BACCALAUREAT GENERAL MATHÉMATIQUES

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Espaces probabilisés

LISTES DE DISTRIBUTION GÉRÉES PAR SYMPA DOCUMENT EXPLICATIF DE L'INTERFACE WEB À L'INTENTION DES ABONNÉS

ESXi: Occupation RAM avec VM_Windows et VM_Linux. R. Babel, A. Ouadahi April 10, 2011

Business Intelligence avec SQL Server 2012

Le niveau conceptuel : la modélisation des bases de données

Processus de Développement Logiciel

Politique de Certication. Certigna ID PRIS Pro

Exercices INF5171 : série #3 (Automne 2012)

Chapitre 07 Le modèle relationnel des données

Année : Team-War Jaafar AMRANI-MESBAHI Fabien GARCIA Abdelali NAIT BELKACEM Rahma NAKARA Philippe NGUYEN

Configuration d'un annuaire LDAP

Guide pas à pas pour l'utilisation de la Console de gestion des stratégies de groupe

FileSender par RENATER - Guide utilisateur

LA RÉGULARISATION DES CHARGES EN FIN D EXERCICE

FAQ. NERIM VoIP QUESTIONS TECHNIQUES GENERALES

UML et les Bases de Données

Compiere. Installation et adaptation avec Hibernate. Travail de Bachelor. Thibaut Schorderet Septembre 2005

Guide d utilisation de «Partages Privés»

Une introduction au nouveau guide de la SCHL sur les réserves de remplacement

Programmation des Applications Réparties. Parsers XML DOM et SAX

J'en prote aussi pour remercier Jean-Louis Pazat qui, dans ces conditions peu communes, a accepté de prendre le relais de Françoise.

Chapitre VI- La validation de la composition.

MEGA ITSM Accelerator. Guide de Démarrage


TP1 : Initiation à Java et Eclipse

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

ENQUETE SUR LES AIDES TECHNIQUES CHEZ LES SOURDS ET MALENTENDANTS

Petit guide à l'usage des profs pour la rédaction de pages pour le site Drupal du département

Colorations identiantes de graphes

JE MONTE UN SITE INTERNET

Glossaire. Acces Denied

Conception de circuits numériques et architecture des ordinateurs

Connexion à une base de données. Connexion à une base de données. Connexion à une base de données Développement d'une application

Conception des bases de données : Modèle Entité-Association

modifiant la loi sur la gestion administrative et financière de l Etat (LGAF) (D 1 05)

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

TP3 : Creation de tables 1 seance

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Les Utilisateurs dans SharePoint

INTRODUCTION GENERALE...1 LA CONNEXION ODBC :...1. CONNEXION AU TRAVERS D EXCEL(tm)...6. LOGICIEL QUANTUM GIS (Qgis)... 10

Transcription:

Outils et Méthodes - Réseau social professionnel Franck Sajous - CLLE-ERSS Ce document est disponible à l'adresse : http://w3.erss.univ-tlse2.fr/membre/fsajous/sdl/sl02358x/5/ 1 Diagramme de classes 1.1 Membres et connexions Premier point délicat : dénir ce qu'est une connexion! Si le membre M 1 est connecté au membre M 2, on dit que M 2 est une connexion de M 1. On pourrait dire que (donc) une connexion est un membre. Par ailleurs, on veut identier 3 types de connexions diérents. On peut alors : soit créer 3 classes dérivées de la classe Connexion (g. 1(a)), soit ajouter un attribut à 3 valeurs possibles dans la classe Connexion (g. 1(b)). Les deux modélisations sont équivalentes. Membre -nom: String Membre -nom: String Connexion ConnexAmi ConnexCollègue ConnexPromo (a) Typage des relations par dérivation Connexion -type = {ami,collègue,promo} (b) Typage des relations par attribut Figure 1 Modélisation de Connexion comme une spécialisation de Membre Enn, on peut modéliser le fait qu' un membre peut avoir des connexions par une relation d'agrégation (g. 2). Figure 2 Relation entre un membre et ses connexions

Or cette modélisation pose un problème (on s'en rend compte dès que l'on tente de créer un diagramme d'objets). Si l'on s'intéresse à un membre, John Doe, et que l'on veut modéliser qu'il a une connexion (amie) Jane Doe, on crée une instance de ConnexionAmi (dans le cas de la modélisation 1(a)) ou une instance de Connexion, avec ami comme valeur du paramètre type dans le cas de la modélisation 1(b). Dans ce cas, comment modéliser le fait que Jane Doo est également une connexion, de type collègue, d'un autre membre M x? C'est impossible... et c'est tant mieux! En eet, ami de John Doe n'est pas une propriété intrinsèque de qui que ce soit. D'ailleurs, lorsqu'un membre crée son prol, il ne gure encore encore parmi les connexions d'aucun autre membre et n'en est pas moins un membre lui-même. Il faut repenser la notion de connexion comme lien entre deux membres. Dire qu'un membre M 1 est une connexion d' un membre M 2 signigie alors qu'il existe un lien entre ces deux membres. Mais ici est-une est un indicateur non pertinent (et trompeur) d'une relation d'héritage. En renvanche, existe un lien entre pourrait être un indicateur de relation. Membre -nom: String * * connecté à Figure 3 Modélisation des connexions par une relation réexive sur Membre Le modélisation présentée en gure 3 est bonne, si ce n'est qu'elle ne permet pas de préciser le type de relation. Dans ce cas, optez pour une classe. Les deux modélisations présentées en gure 4 reprennent celles vues en gure 1 en changeant la nature de la relation entre Connexion et Membre et en spéci- ant les multiplicités. Une connexion n'est plus un membre (changement de la relation d'héritage en relation classique), mais un objet relié à deux instances de Membre (revoir la relation sépare entre les classes Frontière et Pays dans l'exercice Voyageur de Commerce). (a) (b) Figure 4 Modélisation de Connexion par une classe dont chaque instance relie 2 instances de la classe Membre 1.2 Compétences et approbations La gure 5 illustre deux manières de modéliser qu'un membre possède ou déclare des (aucune à plusieurs) compétences. On ajoute le fait qu'un 2

membre donné puisse approuver une compétence déclarée par un autre membre (g. 6). (a) (b) Figure 5 Compétences déclarées par un membre (a) (b) Figure 6 Approbation des compétences Notez dans les gures 5 et 6 que seule une multiplicité (*) de la relation déclare/possède a été renseignée : elle signie qu'une instance de Membre donnée (un membre, donc) peut déclare 0 ou plusieurs compétences. Mais à une instance donnée de Compétence, combien d'instances de Membre peut-on associer par cette relation? C'est-à-dire combien de membres peuvent déclarer une relation donnée?. Cela dépend de ce que l'on modélise à travers la classe Compétence. En eet, si John Doe et Jane Doe déclarent posséder la compétence Java, combien d'instances de la classe Compétence sont censées apparaître dans le diagramme d'objets correspondant? Si l'on ne considérait pas la notion d'approbation, on pourrait concevoir qu'une seule instance est susante : si 100 personnes déclarent avoir une compétence en Java (ou plutôt la compétence Java), on peut relier 100 instances de la classe Membre à une seule instance de la classe Compétence (dont l'attribut nomcompétence vaut Java ). Si l'on considère la notion d'approbation, comment modéliser dans ce cas le fait que John Doe conrme que Jane Doe possède bien la compétence Java? Il faut considérer qu'une instance de Compétence donnée est liée à une instance de Membre donnée, par exemple la compétence Java de Jane Doe, qui n'est pas la même que la compétence Java de MisterX. La mulitplicité de la relation déclare est donc, côté Membre, 1. Une illustration est donnée dans le diagramme d'objets représenté gure 10. L'élément de spécication que l'on ne retrouve pas dans ce diagramme est le fait que pour qu'un membre m 1 approuve une compétence déclarée par un membre m 2, m 1 et m 2 doivent être connectés. Cela relève plutôt d'un contrôle eectué dans l'implémentation. 1.3 Premier diagramme En assemblant les diérentes parties étudiées plus haut, on obtient un premier diagramme intermédiaire, comme présenté en gure 7. 3

Figure 7 Premier diagramme de classes réseau social professionnel 1.4 Groupe de discussion/messages/modérateurs Cette partie n'est pas commentée en détail. La modélisation se rapproche de celle de l'ent. Deux variantes sont données en gures 8 et 9. Dans le premier (gure 8), on retrouve le fait qu'un membre puisse déclarer une/des compétence(s) et qu'un membre puisse approuver une/des compétence(s). Si l'on imagine que l'on veuille faire apparaître, dans le prol d'un membre, la date à laquelle tel autre membre a approuvée une compétence donnée, la simple relation approuve ne sut plus. On peut alors créer une classe Approbation (diagramme de la gure 9) comportant un attribut date et qui relie (à travers deux relations, réalise et concerne), les classes Membre et Compétence. 2 Diagramme d'objets Le diagramme représenté gure 10 est un diagramme d'objets 1 illustrant diérents cas de gure, et notamment le fait que : un membre peut être connecté à d'autre membres via diérents types de connexion ; un même membre peut approuver plusieurs compétences d'un autre membre (Matthieu T approuve les compétences Java et NLP et Machin) ; une compétence donnée peut être approuvée par plusieurs membres diérents (compétence Java de Machin approuvée par Matthieu T et Aurélie) ; qu'une compétence peut ne pas être approuvée (e.g. compétence Corpus Linguistics de Machin) ; qu'une compétence donnée est bien la compétence d'un membre donné : on fait pour cela gurer deux instances de compétence portant le même nom (la compétence Java de Matthieu T et la compétence Java de Machin) ; 1. Ce diagramme correspond aux choix de modélisation présenté dans le diagramme de classes de la gure 8. 4

Figure 8 Diagramme de classes réseau social prodessionnel Figure 9 Diagramme d'objets réseau social prodessionnel, variante 5

qu'un membre peut être inscrit à un groupe de discussion, y compris lorsqu'il est modérateur ; qu'un groupe de discussion peut contenir plusieurs messages. Figure 10 Diagramme d'objets réseau social professionnel 6