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 :

Cherche UML du langage JAVA


Sujet :

UML

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut Cherche meta modele UML de JAVA
    Je cherche à produire un diagramme UML de la structure des classes méthodes etc...

    Donc une classe contient des méthodes, lesquels contiennent des variables etc...

    Ca existe déjà ?

  2. #2
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Reverse engineering ?

    oui ca doit exister, non ca ne fait pas de miracle.
    Eclipse aussi, ca répond a ta question....

    Mais ne t'attend pas à avoir un UML digne d'un concepteur : ce sera une "bête" vue de ton code !

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut
    Merci pour ta réponse mais je vais reformuler:

    je cherche à avoir un diagramme UML générique du langage JAVA, non de mon code.

    Quand je parle du langage JAVA je ne parle pas non plus de l'API java.

  4. #4
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Tu veux le méta modèle de java ?

    Genre un diagramme sur lequel tu as une classe "Classe" associée à une classe "Attribut" et une classe "Méthodes" ?

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut
    voilà c'est ca.

  6. #6
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 534
    Points : 6 723
    Points
    6 723
    Par défaut
    Citation Envoyé par Alec6 Voir le message
    je cherche à avoir un diagramme UML générique du langage JAVA, non de mon code.
    il suffit de reverser la version Java de Java

    La chose est possible avec http://bouml.fr, je m'en sers pour les benchmarks

    Cependant un diagramme UML générique ne sera pas assez, le reverse de Java version 6 (update 1) produit 9425 classes, 48506 attributs / relations, et 85939 opérations, il faudrait un très gros diagramme pour tout placer

    bon reverse

  7. #7
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut


    A mon avis, il veut plus simple que cela car il précise : 'je ne veux pas le diagramme de l'api Java'

    A mon avis, le mieux est que tu le fasse et que tu nous le présente pour le soumettre à notre avis.

  8. #8
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 534
    Points : 6 723
    Points
    6 723
    Par défaut
    alors il suffit de reverser java/lang où on trouve Class, Enum, Method ...

    cela prend 10 secondes avec Bouml et produit 203 classes , 441 attributes, 393 relations et 2079 operations

  9. #9
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Dis donc, j'hésitais à utiliser ton outil (parceque au boulot ca va être dur de l'instaurer comme standard...) mais la, je sens qu'il me plait de plus en plus

  10. #10
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 534
    Points : 6 723
    Points
    6 723
    Par défaut
    si je fais un rapide diagramme avec les éléments de base, cela donne :



    Note : arg, j'ai introduit un bug dans le reverse, il crée des réalisations stéréotypées bind au lieu de simple héritages (j'ai corrigé dans le diagramme)

  11. #11
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut
    Mon modèle commence comme cela.

    A l'arrivé je devrais pouvoir avoir une sorte d'interpréteur sur lequel travaillé.

    C'est à dire que je voudrais dans mon programme crée l'objet classe avec des méthodes et du code dedans et lui dire vas y execute, le code.

    Ou par exemple demander à une méthode d'analyser sa propre complexité.
    Images attachées Images attachées  

  12. #12
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 534
    Points : 6 723
    Points
    6 723
    Par défaut
    il y a plusieurs choses bizarres dans ton diagramme :
    • classe hérite de section
    • section possède des attributs (se serait plutôt des variables d'après ce que je peux comprendre)
    • condition hérite de section
    • la remonteée des conditions au niveau section
    • etc...

  13. #13
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    A mon avis, tu n devrais pas te centrer sur "Section".

    Tu devrais avoir une interface comme point central, avec une/des méthodes (comme "execute()" notamment)

    Et tu applique le pattern stratégie pour différentier l'execution du code.

    Si c'est une sorte d'interpréteur que tu veux faire, tu as le patron "Chaine de responsabilité" qui peut t'aider (attention : difficile de détecter certaines erreurs et présenter de beaux messages au user)

  14. #14
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 534
    Points : 6 723
    Points
    6 723
    Par défaut
    Citation Envoyé par hed62 Voir le message
    A mon avis, tu n devrais pas te centrer sur "Section".
    j'irai même plus loin : ce n'est pas une 'bonne' classe

    Tu devrais avoir une interface comme point central, avec une/des méthodes (comme "execute()" notamment)
    oui, il te faut une interface Instruction ayant, entre, autre une opération eval

    Et tu applique le pattern stratégie pour différentier l'execution du code.
    il suffit de redefinir eval sur chacunes des sous classes, chaque structure de controle (while, if ... affectation ...) étant une de ces sous classes, de même que les déclarations de variables locales, par exemple :



    tout cela me rappelle ma principale contribution dans Xcoral, c'est à dire smac, un mini interpréteur C. La chose était écrite en C mais avec l'équivalent manuel des héritages et opérations virtuelles. Je ne l'avais pas fait en C++ car à cette époque C++ n'existait pas encore vraiment, c'était juste un pré-processeur produisant du C ... c'était il y a longtemps

  15. #15
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut
    En faite je sais pas trop ou je vais au final.

    Quand on regarde du code en Java on voit nettement des blocs qui sont encadrés par des singletons (j'appel ces blocs des sections, mais un nom plus appropriés est nécessaire je pense).

    Le roles des singletons est avant tout de délimité la portée des variables.
    Dans une méthode par exemple on peut mettre des singletons (ca m'arrive lorsque je fais des constructions d'IHM compliquées et que l'utilisation de méthode n'apporte rien sur un plan sémantique).

    Ces blocs peuvent avoir un nom (le nom de la méthode, de la classe ou encore un nom du genre monNom:{} .

    Les classes, et méthodes, les conditions et les boucles (do while, for) sont des sections également puisqu'ils contiennent du code entre singleton.
    Mais je pense que ce sont des sections particulières qui différent par:
    - des conditions d'entrée dans le bloc (c'est particulièrement vrai pour les condition: si blabla alor faire { }, mais aussi pour les boucles
    - des conditions de sortie du bloc=problème de l'itération pour les boucles

    Je ne sais pas encore comment envisager les arguments des méthodes et les retour des fonctions.

    Donc je commence à élucider un pattern qui est composé du trio: la section (un process serait peut etre plus approprié) avec son droit d'entrée, et son droit de sortie (ou règle d'itération). J'ai des problèmes avec le glossaire donc rectifiez moi si possible.

    Ce pattern je pense le dérivé donc pour la condition je me retrouve avec un condition qui étend section et comporte une régle d'entree qui étend entrance condition (si besoin) et une règle de sortie qui laisse toujours sortir.
    Images attachées Images attachées  

  16. #16
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    En effet, Stratégie n'est pas nécessaire, puisque la focntion ne changera pas à l'execution.

    A mon avis :
    transforme Section en IInstruction (il y a bien 2 I : Interface Instruction )
    Met y une fonction eval/execute
    Method devient une IInstruction composée de IInstruction et délègue le travail pour la fonction eval.


    Ajoute un "référenciel" : sorte de repository d'information pour tes variables, globles ou locales (en fait c'est ta classe Variables je pense... Mais le lien me parait étrange)

    Place des cardinalités , j'ai du mal à suivre/savoir si tu agrège/compose vraiment ou juste hérite en te trompant de flèche (notamment la relation Section<*>-->Affectation )

  17. #17
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 534
    Points : 6 723
    Points
    6 723
    Par défaut
    Citation Envoyé par Alec6 Voir le message
    En faite je sais pas trop ou je vais au final.
    cela se voit ...

    Quand on regarde du code en Java on voit nettement des blocs qui sont encadrés par des singletons (j'appel ces blocs des sections, mais un nom plus appropriés est nécessaire je pense)
    ce n'est pas ce que vois, moi je vois des classes, des attribut/relation et des operations

    puis dans une operation il y a une liste d'instructions, dont certaines sont des declarations de var, mais on est deja tres bas

    Le roles des singletons est avant tout de délimité la portée des variables
    encore une fois une decla de var n'est pas un cas a ce point spécial qu'il conditionne tout le reste

    Ces blocs peuvent avoir un nom (le nom de la méthode, de la classe ou encore un nom du genre monNom:{} .
    oh lala, quel mélange, une classe est une chose, une opération une autre et une suite d'instruction encore une autre, rien de commun entre eux, et certainement pas l'utilisation d'une classe commune 'fourre tout'

    Les classes, et méthodes, les conditions et les boucles (do while, for) sont des sections également puisqu'ils contiennent du code entre singleton. ...
    penses sémantique et non syntaxe, cela ira nettement mieux

    Mais je pense que ce sont des sections particulières qui différent par:
    - des conditions d'entrée dans le bloc (c'est particulièrement vrai pour les condition: si blabla alor faire { }, mais aussi pour les boucles
    - des conditions de sortie du bloc=problème de l'itération pour les boucles
    tu as vu ma proposition pour while ?

    Donc je commence à élucider un pattern qui est composé du trio: la section (un process serait peut etre plus approprié) avec son droit d'entrée, et son droit de sortie (ou règle d'itération). J'ai des problèmes avec le glossaire donc rectifiez moi si possible.

    Ce pattern je pense le dérivé donc pour la condition je me retrouve avec un condition qui étend section et comporte une régle d'entree qui étend entrance condition (si besoin) et une règle de sortie qui laisse toujours sortir.
    tu n'as rien de plus compliqué a proposer ?

    franchement faire un interpréteur comme ma propal avec While est simple, clair, et en plus très performant (je le sais, c'est comme cela que cela marche dans Xcoral, et l'interpreteur est utilisé pour calculer les indentations, colorisation etc ... et le tout est immédiat, personne ne remarque que cela agite du C interprété)

  18. #18
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut
    Oui mais je fais pas uniquement un interpréteur.

    Je veux parser du code java pour produire en gros un AST.
    L'AST doit me permettre de facilement travailler sur le code, donc je veux avoir des briques intelligentes capables de me renvoyer des informations sur le couplage, la complexité etc...
    Et l'AST doit également etre capable de se réécrire en Java pour finir en comilation et reload à chaud.

    Dans vos approches tout est instruction, tandis que dans la mienne tout est process (j'aimerai aussi expérimenter une approche systémique).

    Je comprends bien l'utilisation d'une interface générique avec un fonction exec.

    Je ne sais pas par contre qu'elles sont les limites des deux approches.

    Je pense que mon approche est logique aussi.

  19. #19
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Apparemment tu ne t'intéresses pas aux aspects "traditionnels" du langage Java. En effet, un exemple bien admis de méta-modèle Java est visible sur le slide n°9 du document ci-après :
    http://dawis2.icb.uni-due.de/events/...SLIDES/Han.pdf

    La modélisation du contenu du corps des méthodes (déclaration, invocations, structure de contrôles, etc) est bien plus bas niveau.

  20. #20
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Ton slide me parait être exactement ce qu'il cherche

    et j'avoue qu'il est bien interressant pour moi! Merci

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

Discussions similaires

  1. [Débutant(e)] cherche client FTP en java
    Par javac*.java dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 02/02/2006, 11h31
  2. Réponses: 4
    Dernier message: 16/10/2005, 18h30
  3. UML et langage C
    Par calogerogigante dans le forum C
    Réponses: 6
    Dernier message: 04/07/2005, 10h49
  4. Commencer la programmation avec le langage Java ?
    Par von_magnus dans le forum Débuter
    Réponses: 14
    Dernier message: 09/03/2004, 22h19
  5. cherche module ou langage pour récupérer des données audio..
    Par Ry_Yo dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 12/05/2003, 17h44

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