Cerco di rappresentare in un diagramma di classe UML il seguente oggetto e caratteristiche:
- L'oggetto: un sistema (ad esempio un dispositivo elettronico) che può essere di tipo A, B o C
- Se il sistema è di tipo A, ha un attributo extra specifico (diciamo "sotto-tipo", quali valori possono essere A1 o A2)
Ho creato una classe denominata "Sistema" e:
- Creata una classe "System_TypeA" che contiene un attributo extra denominato "subSystem" che può assumere qualsiasi valore all'interno di A1 e A2.
- Creata una relazione di generalizzazione tra le due classi ("System_TypeA" è un "Sistema")
Finora, tutto bene.
Ora, ogni sistema può essere il sistema di backup di altri sistemi. Se questo è il caso, il sistema dovrebbe contenere una raccolta di riferimenti dei sistemi di cui sta eseguendo il backup
Quindi, per questa funzione, ho anche creato una classe denominata "Backup_System" e ho creato la generalizzazione tra le due classi, poiché un "Backup_System" è un "Sistema".
Quindi, come rappresentare nel diagramma di classe il fatto che ci possono essere sistemi di tipo A che sono sistemi di backup (cioè il problema dell'ereditarietà multipla) ??
(Per informazioni, l'implementazione dovrebbe essere eseguita in java, quindi lo stesso problema di multi-eredità sarà affrontato durante l'implementazione.)