Nei diagrammi delle classi di solito vedo qualcosa come la ClasseA estende ClassB dove la punta della freccia indica ClassA. Esempio, qui, http://bit.ly/GFakDu. Questo mi ha sempre confuso. Perché la punta della freccia non punta su ClassB?Capire perché la freccia estende la punta nella direzione opposta
risposta
UML viene utilizzato semplicemente sbagliato in quei diagrammi. La testa della freccia deve essere un triangolo (non uno aperto) che deve puntare nell'altra direzione e si chiama realizza non implementa. Quindi, se non avessi interpretato erroneamente i diagrammi, l'autore (del diagramma o del software che li ha creati) semplicemente non sapeva come usare UML correttamente.
In this diagram (appena trovato googling) si può vedere una corretta visualizzazione di una classe "SearchService" realizzando (applicazione) l'interfaccia "SiteSearch".
In the next diagram diverse classi sono generalizzate da (specializzati, allungare) la classe di "Account".
Su this site è possibile ottenere una visione d'insieme (guarda corretto al primo colpo d'occhio). Se vuoi essere sicuro, dovresti cercare su the specification (trova il download del pdf lì).
Penso che la confusione qui emerga dalle variazioni nel modo in cui le persone si collegano alle sottigliezze della grammatica inglese.
Alcune persone possono essere inclini a completare lo "scomodo", ma i token standard UML "estendono" come "estendono", mentre altri lo completano come "esteso" durante la visualizzazione o la progettazione di un diagramma. Da qui le differenze nell'interpretazione.
Perché si chiama realizzazione e generalizzazione? –
Gli autori di UML hanno cercato di usare termini più generali. E gli "attrezzi" potrebbero essere confusi con l'implementazione di un modello UML in un linguaggio di programmazione. Mentre "estendere" non è sempre vero per UML. Una classe più generale può anche essere limitata da una sottoclasse. – Christian
Nello stesso diagramma qual è il termine corretto per descrivere la relazione che il cliente ha con gli oggetti Visitor ed Element? – emeraldjava