2014-11-18 9 views
5

Ho visto diversi modi per disegnare costruttori, ovvero come here con code sotto di loro (chiamata di funzione) ma più spesso come here senza code e senza ritorno di freccia (a volte con l'etichetta <<create>>).Come richiamare le chiamate dai costruttori nei diagrammi di sequenza UML?

Sono consapevole del fatto che esistono differenze tra UML1 e UML2 e non sono sicuro che questo sia uno di questi, tuttavia in entrambi i casi non riesco a trovare alcun riferimento su come sia possibile rappresentare le chiamate di metodo dal costruttore di un oggetto.

MODIFICA: Esempio di codice java di seguito. Diciamo che il nostro punto di ingresso è foo(). La cosa principale di cui sono curioso è come disegnare il costruttore B().

class A { 
    private B b; 
    public foo() { 
     b = new B(this); 
    } 
} 

class B { 
    public B(A a) { 
     foo(); 
     a.bar(); 
    } 
} 
+0

quanto riguarda la parte "_any references_" vedere http://www.uml-diagrams.org/sequence-diagrams.html e in là di ricerca per "creare un messaggio" e vedere anche https://www.websequencediagrams.com/examples.html. Per rispondere alla parte "_calls from constructors_" mostraci un codice che vuoi disegnare in UML. BTW: alcuni strumenti di modellazione UML (non solo strumenti di disegno di immagini) possono fare automaticamente le decisioni sull'aspetto per te – xmojmr

+0

Codice di esempio aggiunto. Grazie per i link. –

risposta

3

Questo websequencediagrams script sembra catturare il codice

User->A: foo 
A-->>+B: <<create>> 
B->B: foo 
B->A: bar 
B-->>A: 
A-->>User: 

enter image description here

È possibile convalidare la notazione contro http://www.uml-diagrams.org/sequence-diagrams-reference.html

MODIFICA: E questa è la stessa sequenza messaggio come disegnato da Enterprise Architect

enter image description here

+1

Interessante. Per qualche motivo ho pensato che la linea tratteggiata dovesse puntare alla scatola dell'oggetto ... Sembra comunque valida. Grazie! –

+1

@GaborMagyar è vero. Vedere la mia risposta modificata per un esempio di come viene disegnata questa sequenza di messaggi da Enterprise Architect (dopo l'input non elaborato). [uml-diagrams.org] (http://www.uml-diagrams.org/sequence-diagrams.html#create) commenta questo come "_ .. Si noti che questa strana convenzione per inviare un messaggio a un oggetto inesistente crea se stesso viene utilizzato sia in UML 1.x che in 2.x. In pratica OOAD, il messaggio dovrebbe essere inviato alla classe, vedere [Messaggio in OOAD] (http://www.uml-diagrams.org/uml-object -orientato-concepts.html # messaggio) discussione per le informazioni di backgound .._ " – xmojmr

2

specifiche UML (2.5 beta) dice a questo proposito

Un oggetto creazione del messaggio (messageSort uguale CreateMessage) ha una linea tratteggiata con una punta di freccia aperta.

Figura 17.14 illustra questo: UML 2.5 Figure 17.14 Ma comunque lo si fa avrei modellare each operation in its own sequence diagram. Quindi mi sento di modellare il vostro esempio codice di cui sopra in quanto tale:

enter image description here

+0

Sfortunatamente questo non mostra come deve essere il corpo di un costruttore. –

+1

@GaborMagyar Ho aggiunto un esempio basato sul codice per illustrare –

Problemi correlati