Come posso descrivere un puntatore alla classe in un diagramma delle classi in UML?

Se ho un class A che contiene un puntatore a un class B e un metodo che prende in input un puntatore a class B

class A {
private:
    B* attribute;
public:
    void method(B* par);
}

come posso descrivere in un diagramma delle classi in UML? Devo usare * ? Che tipo di composizione è?

Che tipo di diagrammi UML stai usando? Diagramma delle classi (più popolare)? creately.com/blog/diagrams/uml-diagram-types-examples
Ho scritto diagramma di classe.
Capisco il tuo problema, ma è difficile rispondere senza pittura diagramma UML stesso 🙂
Voglio solo sapere se devo scrivere il simbolo * e che tipo di composizione che devo usare. Io sto usando un programma per fare lo schema, ma non mi permette di usare * simbolo =(
ti stai chiedendo tra composizione e di aggregazione? Quando Un proprietario di B, vale a dire. è il nuovo ed eliminare il B puntatore dovrebbe essere la composizione, se B è realizzato da qualche altra parte e diventa un riferimento ad esso, quindi di solito è considerato di aggregazione, per quanto ne so

InformationsquelleAutor Maghio | 2014-02-16

3 Replies
  1. 17

    In UML non è importante per dimostrare se si tratta di un puntatore o non. Perché? Perché, si potrebbe essere utilizzando UML descrizione di un’INONDAZIONE, di un linguaggio senza puntatori.

    Risposta rapida: dal codice, aggregati B (vuoto diamante, Una classe, collegamento B con una linea continua). Che è perché non c’è distruttore che elimina ciò che A. attributo puntatore riferimenti.

    Ciò che è veramente importante è dire che cosa è il ciclo di vita dell’oggetto di riferimento. Così, per un oggetto di riferimento (rapporto), che muore quando il proprietario è distrutta, è necessario utilizzare un solido (pieno) diamante. Questo è chiamato composizione. In modo che il proprietario ha il compito di gestire il tempo di vita di un oggetto di proprietà. Un esempio è umano, ha le mani. Le mani non sopravvivere quando l’uomo oggetto viene distrutto.

    Quando il diamante non è “piena” (aggregazione), quindi il proprietario non è responsabile per gestire la vita degli oggetti di proprietà. Per esempio, non si aspettano di vedere che l’oggetto di proprietà, di essere eliminato nel distruttore. Il datore di lavoro ha un TeamLeadRole, ma quando il datore di lavoro “distrutto” (cioè la società quindi la TeamLeadRole è ancora disponibile.

    Ora, tradizionalmente, quando si vede un pieno di diamanti, di solito (non tutto il tempo) avrà un oggetto di valore. Dove e quando si vede un vuoto di diamante si può usare riferimento o puntatore.

    Se la classe utilizza un’altra classe, ma non osserva le istanze (o riferimenti/puntatori) a quella classe, quindi è possibile indicare la dipendenza da una semplice linea (continua) tra gli oggetti. Questo significa che c’è una relazione, è chiamato associazione.

    Io sto usando il C++ che è pieno di puntatori, quindi mi limito a scrivere il nome della classe, senza *?
    Sì, non scrivi *. UML è uno strumento per comunicare idee, non esattamente mostra una specifica implementazione in un linguaggio specifico. Si vuole illustrare/comunicare l’abstract della relazione (ha un riferimento) tra gli oggetti/classi. Di nuovo, non è quello di mostrare come implementare uno specifico linguaggio (c++ utilizzando i puntatori nel tuo caso).
    Perfetto, grazie a tutti!
    tradizionalmente, quando si vede un pieno di diamanti, di solito (non tutto il tempo) avrà un oggetto di valore. Dove e quando si vede un vuoto di diamante si può usare riferimento o puntatore.”: che non è sempre vero. Per quanto ne so, si potrebbe anche dire che si dispone di un pieno di diamanti quando entrambe le estremità scompare insieme, e non occupate, per l’altro caso.

    InformationsquelleAutor Trimtab

  2. 3

    Un normale C++ puntatore direttamente corrisponde ad una struttura di riferimento in un diagramma delle classi in UML, come illustrato nel diagramma seguente:

    Come posso descrivere un puntatore alla classe in un diagramma delle classi in UML?

    Ad un riferimento di proprietà esprime un uni-direzionale (binario) di associazione, come illustrato nel diagramma seguente:

    Come posso descrivere un puntatore alla classe in un diagramma delle classi in UML?

    Notare il “dot” il lato B della linea di associazione. Significa che l’associazione end con il nome di “attributo” è di proprietà di Una classe, il che significa che coincide con il riferimento immobile indicato in figura (l’associazione può essere sostituito con il riferimento alla proprietà). Per ulteriori informazioni, vedere il Capitolo 5 di questo tutorial.

    Non è possibile utilizzare il C++ simbolo “*” nel diagramma delle classi in UML perché

    1. è il Cpp-specifico, mentre il diagramma, probabilmente, dovrebbe essere indipendente dalla piattaforma;
    2. non c’è bisogno di utilizzare un simbolo in UML, perché è chiaro che l’attributo di riferimenti a oggetti B;
    3. questo simbolo ha un significato diverso in UML (la molteplicità unbounded).

    In ogni caso, la relazione tra le classi A e B è un’associazione. Potrebbe essere una composizione, se si dispone di ulteriori semantica di un aggregato relazione di componente. Si noti che la tua domanda dovrebbe essere formulata: “Che tipo di associazione è?” invece di “Che tipo di composizione è?”, perché la composizione e aggregazione sono particolari tipi di associazioni.

    Come faccio a scrivere I vettori, i tipi senza segno o file?
    Se si intende il caso in cui un attributo/proprietà ha un C++ vettore di riferimento per il suo valore, questo corrisponde a un multi-valori di riferimento di proprietà o a un’associazione di fine con molteplicità *. Per unsigend e tipi di file è meglio scrivere un altro (completare) domanda.
    No, voglio dire, il caso di una funzione che prende in input un vettore
    Credo che per la rappresentazione del C++ funzione membro di una classe con un vettore in-parametro in UML si dovrebbe definire una classe datatype “Vettoriale” e un’operazione con un parametro di tipo “Vettoriale”.

    InformationsquelleAutor Gerd Wagner

  3. 2

    C’È la possibilità di differenza tra *, & e [] campi di UML, diagrammi di classe. Esso è denominato “Tipo di Modificatore”. Il problema è quello di mostrare il diagramma per il vostro strumento. Se si dispone di uno strumento per la creazione di diagrammi, semplicemente il disegno alla fine come lo stereotipo della fine. Ma attenzione a non mescolare con la molteplicità! Se si dispone di uno strumento di modellizzazione, dovrai pensare a come farlo.

    Ma avviso che il puntatore/campo di riferimento dovrebbe essere uno di default, quindi non c’è bisogno davvero di specificare nel tuo caso, il diagramma di classe.

    Se si desidera visualizzare queste informazioni in modo corretto, utilizzare un più dettagliato Diagramma di Struttura Composita. Ci si può mostrare questi &,*,[] si desidera.

    Come posso descrivere un puntatore alla classe in un diagramma delle classi in UML?

    Per diverse varianti di associazione in classe diagramma look di questa mia risposta per la domanda simile:
    https://stackoverflow.com/a/21478862/715269

    InformationsquelleAutor Gangnus

Lascia un commento