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 :

[PlantUML] positionning problem


Sujet :

UML

  1. #1
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut [PlantUML] positionning problem
    Bonjour je n'arrive pas à positionner correctement les éléments dans plantUML

    un exemple sur un diagramme de déploiement j'ai des zones qui contiennent des machines qui contienennent des composants etc.
    la zone DMZ ne peut communiquer qu'avec la zone de transit qui ne voit que la zone interne

    dmz transit interne
    le positionnement de ces zones n'a pas réellement de sens mais pour une facilité de lecteur mieux vaut qu'elles soient ordonnées (peut importe l'ordre)

    si j'ai un composant A dans la VM a dans la DMZ qui communique avec un storage S sur la machine t dans la zonne de transit et un composant B sur la VM b dans la zone interne
    il semble logique d'avoir
    A S et B

    j'ai donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    rectangle dmz <<zone>> #corrail{
        node a {
            component A
       }
    }
    rectangle transit<<zone>> {
        node t{
            storage S <<NAS>>
       }
    }
    rectangle internal <<zone>> #technology {
        node b{
            component B
       }
    }
    
    A -r-> S
    S <-r- B
    'c'est bien B qui se branche sur le NAS et il est à droite
    et cela affiche bien
    A -> S <- B
    dans les zone et node respectif

    cela se gate lorsque j'ajoute des composants sur la machine b ou dans la zone interne sur de nouveaux nodes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    A -r-> S
    S <-r- B
    S <-r- C
    S <-r- D
    S <-r- E
    là quelque soit l'orientation que je définisse le diagrame est inversé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    +---------------------------------+
    |                                 |
    |                                 v
    A             B------------------>S
                                      ^
                                      |
                  C-------------------+
                                      |
                  D-------------------+
                                      |
                  E-------------------+
    Alors qu'il serait bien plus lisible de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    A----------->S<-----------B
                 ^
                 |
                 +------------C
                 |
                 +------------D
                 |
                 +------------E
    ça reste jouable sur un digrame réduit comme celui-là
    mais avec plusieurs dizaine de machines et composants et de multiple type de liens
    cela devient totalement illisible

    Je n'arrive pas à comprendre quelle est la façon de faire de plantUML
    pourquoi dans il n'y a que quelques éléments qu'on lui dit qui est à droite qui est à gauche il le fait et quand il y en a beaucoup il ne le fait plus
    pourquoi quand je met que BCDEFGH sont à droite en haut ou en bas il les mets systématiquement à gauche. si je n'en garde qu'un alors il le mets où je l'ai spécifé

    j'ai fais de nombreux essais en me disant qu'il positionnait peut être d'autres éléments à l'endroit où je voulais qu'il place le mien alors que je n'avait rien spécifé pour ceux là
    j'ai donc systématiquement positionné tous les élément entre eux A à gauche de S A à gauche de B A à gauge de ...
    bref j'ai généré plusieurs matrice de positionnement où tous les éléments on un position relative par rapport à tous les autres j'ai vérifié que ces positions étaient cohérente
    A et à gauche de S qui et à gauche de B donc A et à gauche de B (j'ai mis des lien hidden pour forcer les positions et ne pas avoir des milliers de flèche

    rien à faire mon composant S se retrouve tout à droite et tous les liens traverssent tout le diagramme
    et comme j'ai environ 10 élément de ce type et qu'il les mets n'importe ou c'est la foire

    si vous avez une idée....

    meri

  2. #2
    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
    Bonjour,

    Si je dessine via www.plantuml.com je n'ai pas exactement votre comportement

    Déjà corrail n'est pas une couleur connu et je dois par exemple utiliser coral

    Si je mets les composants B C D et E dans le même node à votre manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    @startuml
    rectangle dmz <<zone>> #coral {
        node a {
            component A
       }
    }
    rectangle transit<<zone>> {
        node t{
            storage S <<NAS>>
       }
    }
    rectangle internal <<zone>> #technology {
        node b{
            component B
       }
        node c{
            component C
       }
        node d{
            component D
       }
        node e{
            component E
       }
    }
    
    A -r-> S
    S <-r- B
    S <-r- C
    S <-r- D
    S <-r- E
    @enduml
    j'obtiens :
    Nom : 1.png
Affichages : 94
Taille : 28,0 Ko
    ils sont donc à l'horizontal et non vertical comme vous le dites

    Pour forcer B C D E à être vertical dans cet ordre il est possible d'utiliser des relations cachées, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    @startuml
    rectangle dmz <<zone>> #coral {
        node a {
            component A
       }
    }
    rectangle transit<<zone>> {
        node t{
            storage S <<NAS>>
       }
    }
    rectangle internal <<zone>> #technology {
        node b{
            component B
       }
        node c{
            component C
       }
        node d{
            component D
       }
        node e{
            component E
       }
    }
    
    A -r-> S
    S <-r- B
    S <-r- C
    S <-r- D
    S <-r- E
    B -down[hidden]-> C
    C -down[hidden]-> D
    D -down[hidden]-> E
    @enduml
    et cette fois j'ai un peu votre résultât ou S n'est pas au milieu :
    Nom : 2.png
Affichages : 91
Taille : 32,0 Ko
    bizarrement si je retire certains 'r' j'obtiens le résultât escompté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    @startuml
    rectangle dmz <<zone>> #coral {
        node a {
            component A
       }
    }
    rectangle transit<<zone>> {
        node t{
            storage S <<NAS>>
       }
    }
    rectangle internal <<zone>> #technology {
        node b{
            component B
       }
        node c{
            component C
       }
        node d{
            component D
       }
        node e{
            component E
       }
    }
    
    A -r-> S
    S <-r- B
    S <-- C
    S <-- D
    S <-r- E
    B -down[hidden]-> C
    C -down[hidden]-> D
    D -down[hidden]-> E
    @enduml
    Nom : 2b.png
Affichages : 93
Taille : 27,2 Ko

    En dehors de cela, si vous voulez dessiner comme vous le souhaitez je ne peux que vous conseiller d'utiliser un modeleur UML

  3. #3
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    bonjour
    merci de cette réponse c'est bien le comportement que je constate sur le deuxième digramme
    et je n'ai pas trouvé de façon de le résoudre
    tout comme sur votre diagrame le store n'est pas placé entre les deux blocs cela n'est pas très génant lorsqu'on a un digramme simple comme celui-là mais beaucoup plus pénalisant lorsqu'on a des dizaines de block et des centaines de composants

  4. #4
    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
    Encore une fois je ne peux que vous conseiller d'utiliser un modeleur UML à la place de PlantUML qui a ses limites / bugs.

    Je ne distribue plus BoUML et ne peux donc plus vous proposer de l'utiliser, mais il y en a d'autres. Si possible prenez en un permettant le placement automatique des éléments (comme le fait PlantUML) pour vous aider, mais là au moins si le résultât ne vous convient pas vous ne serez pas bloqué et vous pourrez le modifier à votre guise.

    ... pénalisant lorsqu'on a des dizaines de block et des centaines de composants
    Faire un diagramme avec des centaines d'éléments n'a absolument aucun sens
    Pour être utile un diagramme doit être lisible et donc pas trop complexe

Discussions similaires

  1. [C#]chagement de position == probleme
    Par Rafsky dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/10/2006, 20h10
  2. probleme de deplacement de la position d'une form
    Par lassmust dans le forum Langage
    Réponses: 1
    Dernier message: 21/03/2006, 21h37
  3. Probleme CSS position absolue et autre
    Par alexmorel dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 03/03/2006, 12h42
  4. Probleme avec la position d'un simple quad 2d.
    Par Happy dans le forum OpenGL
    Réponses: 4
    Dernier message: 06/11/2005, 00h32
  5. [xml-xsl] Probleme avec position()
    Par seb30 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 21/04/2005, 11h10

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