L'obiettivo di un diagramma di classe è di documentare le relazioni tra le classi e il modo in cui gli oggetti di tali classi possono cambiare:
In software engineering, a class diagram in the Unified Modeling
Language (UML) is a type of static structure diagram that describes
the structure of a system by showing the system's classes, their
attributes, operations (or methods), and the relationships among
objects.
Fonte: Wikipedia
Gli elementi chiave qui sono:
-
Relazioni tra classi: data una classe, quali altre classi usa?
-
Operazioni che possono essere eseguite su una classe: quali metodi / funzioni appartengono a una classe?
-
Stato appartenente a una classe: quali dati incapsula una classe?
Una costante non si adatta a nessuno di questi elementi. Non è una relazione, e certamente non un'operazione. L'elemento più vicino è lo stato, ma una costante è praticamente l'opposto: è statica e non legata a un oggetto. Mentre un diagramma classe documenta le classi, si focalizza sugli elementi delle classi usate dagli oggetti di quei tipi di classe.
Nel tuo esempio specifico, farei quanto segue:
-
Il enum
sarebbe una classe nel diagramma, ma sarebbe probabilmente vuota. L'unico stato è il numero intero che rappresenta ciascun valore enum, ma che è essenzialmente una chiave surrogata e non referenziato nel codice. Tieni presente che se invece utilizzi un% di C ++% co_de, potresti avere uno stato che vale la pena documentare.
-
Il enum class
dovrebbe essere una classe senza comportamento, ma lo stato è documentato come pubblico.
-
Queste costanti non dovrebbero essere documentate in un diagramma classe di UML. Per uno, non appartengono a una classe, rendendoli completamente irrilevanti. Due, le costanti non appartengono comunque a un diagramma di classe per i motivi che ho descritto sopra.
-
Vorrei creare un diagramma del pacchetto UML separato per struct
(come parte, ti consiglio di scegliere un nome più descrittivo per questo spazio dei nomi) che mostra che namespace helper
e enum
sono nello spazio dei nomi. Questo tipo di diagramma consente anche di documentare in modo specifico i membri statici e le costanti.