Diagramma di classe UML: come annotare la relazione soggetto-osservatore?

3

Come posso annotare in un diagramma di classe UML che un'istanza di ClassA è registrata come osservatore di un'istanza di ClassB? (Entrambi implementano le interfacce appropriate).

Questo non appartiene davvero a un diagramma di classe, perché sono statici, ma se questo è qualcosa che è importante per il design - come puoi annotarlo in questo tipo di diagramma?

Modifica:

Per chiarire: so come annotare il pattern Observer in UML. La mia domanda è più specifica.

ClassA essendo registrato come osservatore in ClassB è importante per la progettazione, tuttavia non sono sicuro che una relazione di associazione tra le due classi sia appropriata, poiché ClassA e ClassB non si conoscono l'un l'altro. Sono totalmente disaccoppiati e collegati solo tramite il pattern Observer .

    
posta Aviv Cohn 28.04.2014 - 19:22
fonte

2 risposte

1

Documentare questo tipo di relazione è adatto per un diagramma di classe. È possibile aggiungere nomi di ruolo ai collegamenti di associazione tra classi, in modo simile a come è dimostrato nella introduzione ai diagrammi di classe UML di Scott Ambler o l'esempio di Wikipedia di associazioni . Indicherei anche il fatto che implementano le interfacce o ereditano dalla classe base, anche se stai usando un linguaggio come Java che fornisce le classi necessarie (anche se vorrei considerare di omettere i dettagli per queste classi fornite dalla lingua).

Puoi anche applicare note nel diagramma UML. La maggior parte degli strumenti che ho usato consentono di allegare note alle classi. Questi potrebbero annotare l'uso di un modello o anche prevedere un'implementazione pseudocodice di alcune funzioni, se non porta a confusione sul diagramma.

    
risposta data 28.04.2014 - 19:29
fonte
1

UML definisce un tipo di diagramma speciale per mostrare in che modo le istanze di classe sono connesse l'una con l'altra: il diagramma Oggetto .

Un diagramma di oggetti usa una notazione simile a un diagramma di classi, ma piuttosto che relazioni strutturali tra tipi, mostra come gli oggetti si relazionano tra loro in un determinato momento.

Nel tuo caso concreto, avresti due diagrammi:

  • Un diagramma di classe che mostra come ClassA è un Observer e ClassB a Subject nel modello di osservatore e
  • un diagramma di oggetti che mostra le istanze rilevanti di ClassA e ClassB con una dipendenza tra di loro (freccia tratteggiata con testa a freccia aperta) con lo stereotipo <<observes>> . Questo diagramma mostra quindi che una particolare istanza di ClassA a un certo punto nel tempo è collegata a una particolare istanza di ClassB attraverso il pattern di osservatore.
risposta data 29.04.2014 - 08:32
fonte

Leggi altre domande sui tag