IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

UML Discussion :

De l'UML à la programmation.


Sujet :

UML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 7
    Par défaut De l'UML à la programmation.
    Bonjour,
    En premier lieu désolé pour la redite si il y a

    Je réalise un projet pour ma formation où je dois partir de la modélisation UML ( packages, UC, diagrammes en tous genres) pour finir à la programmation même de l'application en JAVA.

    Ayant fini la partie analyse (revue et corrigée), je me tourne vers la programmation, et je bute sur la mise en place de l'application et de la BDD, tout s'embrouille affreusement, surtout au niveau des méthodes.

    Pour la suite, corrigez moi où j'ai faux !

    Prenons la classe employé sur mon diagramme de classes qui à les méthodes créer(), modifier(), supprimer().

    En travaillant avec une BDD,

    Je stocke donc mes données dans une table employé. Ainsi à chaque lancement, je fais en sorte que l'application lise cette table, et instancie autant de classes Employé qu'il y a de lignes dans la table ?
    Je me retrouve avec un série d'objet Employé, qui ont tous leur méthodes créer(), modifier(), supprimer().
    Et là par exemple je me tourne vers un diagramme de collaboration, qui envoit un message creer() vers la classe Employé, donc théoriquement signifie la création d'un employé.
    Hors quel objet prendre parmi tous ceux que l'application a instancié ?
    Sachant qu'ils ont tous leur méthode créer().



    J'ai conscience de n'être vraiment pas clair du tout, en espérant tout de même qu'on éclaire ma lanterne

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    L'analyse est terminée... bienvenue dans la phase de conception !

    Je vais essayer d'expliquer la methode dite en Y, car je trouve que c'est la plus simple.
    Le but de la phase de conception est de créer des objets de conception (!), à partir des objets d'analyse et de l'architecture candidate.

    Kesako tout ca ?

    - les objets d'analyse sont les objets de la phase d'analyse

    - l'architecture candidate est le découpage fonctionnel "technique" envisagé (ex: 3 tiers = IHM <-> Fonctions <-> Stockage en BdD)

    - les objets de conception sont les objets qui répondent a la fois aux besoins fonctionnels "metier" (=objets d'analyse) et aux besoins fonctionnels "techniques" (architecture)

    Comment on fait ?

    - On prend un objet d'analyse, disons ta classe "employé". On recherche ses fonctionnalités "techniques" tels qu'elle sont décritent dans l'architecture candidate. Dans ton cas, ta classe "employé" doit répondre a 2 besoins techniques: "Fonctions" (créer,modifier,rechercher,supprimer) et "Stockage en BdD" (persistence).

    - on créé les objets de conception qui représentent l'objet d'analyse. Par exmple dans ton cas:

    Coté "Fonctions":
    * une classe EmployeObject = classe avec les attributs + getter/setter
    * une classe EmployeControler = classe singleton avec les methodes
    void new(EmployeObject e)
    void update(EmployeObject e)
    void delete(EmployeObject e)
    EmployeObject find(String criteria)

    Coté "Stockage en BdD":
    * une table employe_table = Table avec un attribut par colonne, et une instance par ligne
    * un index employe_index = Index pour accelerer les recherches

    - On recommence pour tous les objets d'analyse.

    - On "refactor" un peu les les objets de conception (classes abstraites, heritage, patterns, ...).
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 7
    Par défaut
    Merci beaucoup pour cette réponse très claire.
    J'y vois déjà plus clair

    Je me demande du coup l'utilité du controler, cela évite les redondances des méthodes new(), etc.. ?
    Est-ce vivement conseillé d'en utiliser un ?

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par mephhh
    Merci beaucoup pour cette réponse très claire.
    J'y vois déjà plus clair

    Je me demande du coup l'utilité du controler, cela évite les redondances des méthodes new(), etc.. ?
    Est-ce vivement conseillé d'en utiliser un ?
    Non c'est pas obligatoire...

    Dans mon architecture j'ai séparé (sans le dire ) le tiers "Fonctions" en deux sous-parties: "Manipulation des données" et "Représentation des données". D'ou les deux classes Controler et Object.

    Mais on peut aussi laisser le tiers "Fonctions" en une seule partie et créér une clasee "Employee" avec les methodes CRUD dedans:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class Employee {
        public static EmployeObject create();
        public void update();
        pulic static EmployeObject retrieve(String criteria);
        public void delete();
    }
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 21
    Par défaut 2éme question
    Supposons que ton emplopyé ait une fonction.
    Cette fonction se trouve dans une table de reference.
    Lors de la creation d'un objet Employe, je suppose que l'on va chercher sa fonction.
    Pour gerer la table fonction, dois t on creer un objet fonction, un controleur fonction ( sur le modele employe ) ? sachant que fonction n'est pas une classe metier.

    Plus generalement comment gerer les tables de references
    j'espere avoir ete clair
    Merci de vos reponses.

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par Heaven
    Plus generalement comment gerer les tables de references
    Il n'y a pas d'obligation d'avoir 1 Classe = 1 Table. Dans le cas que tu decrits, tu peux avoir une classe Employé avec un attribut "fonction" de type String.

    Le tout c'est que tes methodes CRUD gerent correctement le passage de l'objet "Employé" aux 2 tables "employe_table" et "function_table".
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. UML et programmation par asper ou intercepteur
    Par geforce dans le forum UML
    Réponses: 0
    Dernier message: 15/05/2013, 20h35
  2. De la modélisation UML à la programmation en Java
    Par wilkom2009 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 22/10/2009, 11h23
  3. conception uml mais programmation procédurale
    Par sarah_insat dans le forum UML
    Réponses: 6
    Dernier message: 09/07/2008, 14h49
  4. Analyse UML d'un programme "systeme" en Java
    Par WcflyBruges dans le forum UML
    Réponses: 5
    Dernier message: 16/05/2006, 14h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo