Spécification des composants

Objectif

Découpage de la solution en composants (ou sous-systèmes), affectation des responsabilités aux composants et spécification des interfaces fournies et requises par ces composants

Moyens

Utilisez des diagrammes d’interaction (séquence, communication) pour décrire l’échange de messages entre les composants pour en déduire leurs interfaces.

1. Vue globale des composants

diagram
Figure 1. Diagramme de composants décrivant la solution proposée

2. Composant SERVEUR

diagram

2.1. Responsabilités du Composant SERVEUR

  • Serveur :

Quelques Responsabilité
  • Gère les connections au serveur et les pseudos

  • Recherche des parties disponible

  • notifie les joueurs lorsque c’est leurs tour de jouer

  • Lancer le dé,

  • Verifie la reponse au question

  • Sauvegarde les historique des parties jouer

  • Communique avec la base de donnée

2.2. Interfaces fournies

2.2.1. Interface Websocket

diagram

2.2.2. Interface manageDB

diagram

3. Composant Serveur

Le composant Serveur assure la creation de partie et la gestion des parties ainsi que la gestion de la base de donnée. il assure egalement la creation des questions et reponses, la verification des reponses et la gestion du dé .

3.1. Interface

diagram
  1. Contraintes sur les operations

context checkIdentificationFromClien::connect(pseudo: String, password: String, ip: String, port: Integer):Boolean
    pre: isNetwork
    post: isConnected
context checkIdentificationFromClien::signIn(userName: String, password: String, email: String, birthdate: Date): String
    pre: isNetwork() & isValide(email) & name.size() => 3 & pwdIsValide(pwd)
    post: pas de poste condition
diagram
Listing 1. Contraintes sur les operations
  context PartieServeur:createPartie(numberOfPlayer:Interger)
       pre: numberOfPlayer >= 2
       Post: StartPartie()
  context PartieServeur:join(PartieId:String):Partie
       pre: IsConnectToServeur()
       Post : StartPartie()
  context PartieServeur:RecherchePartie():Partie[*]
        pre: IsConnectToServeur()
        post: !Partie[].isEmpty()
   context PartieServeur:Jouer()
        pre: IsConnnecToServeur() & PartieIsStart()
        post: aucune

4. Composant CLIENT

diagram

4.1. Responsabilités du Composant CLIENT

5. Client :

Quelques responsabilié
  • Permet la creation de comptes ,la connection et le modification de profile

  • Gere l’inteface graphique du Jeux

  • Communiquez avec le serveur

  • Lancer une Parties

  • Assure le deplacement du Camembert

  • Repondre aux Quesions

  • Recevoire des notifications

5.1. Interfaces fournies

5.1.1. Interface checkIdentificationFromClien

diagram

6. Composant Client

Le composant Client permet a un joueur de se connecter au serveur, d’initialiser le plateau, de rejoindre une partie, et de repondre au questions

6.1. Interface

diagram
Listing 2. Contraintes sur les Operations
 context Identification:: login(email:String,pwd:String)
    pre: isNetwork() & isValide(email) & !pwd.isNull()
    Post: isConnected()

 context Identification:: createUser(name:String,email:String,pwd:String,birt:Date)
     pre: isNetwork() & isValide(email) & name.size() => 3 & pwdIsValide(pwd)
     Post : pas de post conditions
 context Identification:renitialisepwd(email:String,pwd:String)
    pre: isNetwork() & isExiste(email) &  pwdIsValide(pwd)
    Post:
diagram
Listing 3. Contraintes sur les operations
context partieClient::connexionServeur(layerId:String)
    pre: isConnected
    post: isConnectedToServeur
context partieClient::choosePartie(partieId:String)
    pre: isConnectedToServeur
    post: connectToPartie
context partieClient::InitPlateau(p:Plateau): Plateau
    pre: connectToPartie
    post: aucune

7. Interactions

  • Utilisez les diagrammes d’interaction de la notation UML pour valider les interfaces des composants.

  • Basez-vous sur les cas d’utilisation (spécification des exigences) pour illustrer les interactions entre les différents composants

  • En UML, les interactions se passent au niveau des instances.

  • Rappel:

    • Niveau classes: Classes, opérations, types, etc.

    • Niveau instances: Objets, appels d’opération, valeurs, etc.

diagram
Figure 2. Connexion au serveur
diagram
Figure 3. Rejoindre une partie