La visibilità della classe è una parte importante del design dell'oggetto. Non ho visto nessun diagramma di esempio che mostri classi non pubbliche in diversi libri UML, né ho visto un modo per mostrare la visibilità della classe in Enterprise Architect, tra gli altri strumenti. Enterprise Architect e altri strumenti ti consentono di impostare la visibilità della classe nel metamodello, ma devo ancora vedere un modo per mostrarlo nei diagrammi.È possibile visualizzare la visibilità della classe nei diagrammi delle classi UML?
risposta
In Eclipse si ha la visibilità nell'icona. Voglio dire che hai un'icona di classe verde e se privato allora un p è messo in primo piano. Questa icona è visibile anche nel diagramma delle classi se si seleziona l'opzione. Spero che questo aiuto.
UML supporta la visibilità in un linguaggio di programmazione in modo neutro, sia nel metamodello che nella rappresentazione.
Esiste un'enumerazione denominata VisbilityKind utilizzata in vari punti (vedere la sezione UML 2.3 superstructure spec 7.3.5.5 p142).
Sui diagrammi delle classi ci sono vari modi per illustrare la visibilità. Il più comune è usare '-' per rappresentare le funzioni private e '+' per rappresentare il pubblico. Per esempio:
----------------------------
| Class |
|--------------------------|
| +publicAttribute: Type |
| -privateAttribute: Type |
|--------------------------|
| +publicMethod() |
| -privateMethod() |
----------------------------
Vedere la figura 7.28/7.29 su p52 di the spec per ulteriori esempi.
hth.
La tua risposta riguarda la visibilità dei membri della classe, non la visibilità della classe stessa. –
@ BjörnPollex La visibilità è correlata a un determinato ambito, senza che la visibilità dell'ambito non abbia alcun significato. L'istanza della classe può essere membro di un'altra istanza di classe e in questo caso la sua visibilità può essere vista come mostrato in questa risposta. – SomeWittyUsername
Credo che hai bisogno di avere uno sguardo a Uni-directional and Bi-directional association
ho appena guardato in su in UML 2.4.1 Infrastruttura. Nella figura 10.3 p. 95 vedi la classe definita come un tipo che è un oggetto denominato, che è un elemento. Con il pacchetto visibilità un oggetto NamedElement ha una visibilità come definita in 9.21.1 a pag. 88, se appartiene a un namespace. Quindi Class ha una visibilità se hai visibilità. Puoi usare le solite notazioni con + - # e ~ (pagina 89).
VisualParadigm può farlo.
Secondo l'UML spec v2.5 beta 2 non solo la NamedElement ma anche la PackageableElement ha la visibilità attributo di tipo VisibilityKind
da P48:
PackageableElement [Abstract Classe]
.. [omissis] ..
Attributi
- visibilità: VisibilityKind [0..1] = public A PackageableElement deve avere una visibilità specificata se è di proprietà di un Namespace. La visibilità predefinita è pubblica.
Vincoli
- namespace_needs_visibility Un PackageableElement di proprietà di uno spazio dei nomi devono avere una visibilità. inv: visibilità = null implica namespace = null
non ho trovato alcun linee guida di notazione per questa visibilità tuttavia
Se si definisce la classe con uno stereotipo (diciamo < <classe> >) è quindi possibile assegnare uno script di forma allo stereotipo. Se solo specificare una decorazione, questo dovrebbe utilizzare il disegno di default per una classe, e aggiungere la vostra decorazione, che può essere condizionale basata sulla proprietà campo di applicazione della classe:
decoration X
{
if(hasproperty("scope","public"))
print("P");
}
Questo stampa un P nella top- angolo sinistro di una classe pubblica. Tuttavia, potresti anche avere un'icona.
Purtroppo, non riesco a trovare un modo di assegnare uno script di forma a una classe predefinita non stereotipata. Qualcuno sa come farlo?
- 1. L'aggregazione dell'interfaccia nei diagrammi di classe UML
- 2. Direzione della freccia di associazione nei diagrammi di classe UML
- 3. Che cosa significa un segno di diamante nei diagrammi delle classi UML?
- 4. UML - Come gestire diagrammi di grandi classi?
- 5. Visualizzazione della visibilità in Argo UML
- 6. Classi private e uml
- 7. Come allineare i blocchi nei diagrammi delle classi PlantUML?
- 8. Javadoc Inserimento di diagrammi UML
- 9. PhpStorm, diagrammi UML e file xmi
- 10. Esiste una convenzione per mostrare i metodi sottoposti a override nei diagrammi di classi statiche UML?
- 11. Come ottenere diagrammi di classe UML grafici in Eclipse PDT?
- 12. Creazione di diagrammi di classi UML in NetBeans 7.1.1
- 13. UML composizione diagramma delle classi con classe gerarchie
- 14. Come posso evitare che i nomi delle proprietà nei diagrammi delle classi vengano ordinati?
- 15. Spiegazione delle frecce UML
- 16. Disegno diagrammi di stato UML
- 17. Rappresentazione di protocolli Objective C su diagrammi di classe UML
- 18. È possibile visualizzare i diagrammi a barre orizzontalmente in Flot?
- 19. Diagrammi di classe UML per Xcode (programmazione rapida)
- 20. Strumento per generare diagrammi di classe UML da annotazioni Doctrine
- 21. Generazione di diagrammi UML da sorgenti Scala
- 22. Qual è il significato della freccia tratteggiata nel diagramma delle classi UML?
- 23. Come disegnare diagrammi UML utilizzando Eclipse
- 24. diagrammi UML Generazione utilizzando NetBeans 7.2
- 25. Generazione di diagrammi UML in Android Studio
- 26. Generazione di diagrammi UML da rappresentazione testuale
- 27. È possibile utilizzare i nomi delle classi CamelCase nei modelli Magento?
- 28. Come usare doxygen per creare diagrammi di classe UML dal sorgente C++
- 29. Enterprise Architect: esportazione di diagrammi UML in alta qualità
- 30. visibilità predefinita dei membri della classe/struct C++
Non penso che lo standard UML fornisca una notazione specifica per la visibilità, perché è una funzione dipendente dalla lingua. – Heisenbug
Grazie a @Heisenbug. Sono stato in grado di vedere la visibilità della classe sui diagrammi dei pacchetti di Enterprise Architect. Questo potrebbe essere l'unico modo per vederlo in questo particolare strumento. Il mio prossimo passo è rivedere la parte rilevante delle specifiche UML. –
Sono ragionevolmente certo che un diagramma dei pacchetti sia davvero l'unico modo per vedere la visibilità degli elementi (ovvero Scope) in Enterprise Architect. Non lo invierò come risposta dal momento che hai già svolto il lavoro investigativo, ma ti preghiamo di prendere in considerazione te stesso (e contrassegnando la risposta alla domanda) per i futuri utenti. – Uffe