Nella modellazione object-oriented utilizzando Unified Modeling Language ( UML ) , generalizzazione si riferisce l'estrazione di elementi comuni tra più classi , conosciuti come sottoclassi , e le loro associazioni condivise in una classe generale o superclasse . Secondo Hoffer , George e Valacich in " Sistemi di design moderno e di analisi , " di modellazione UML , generalizzazione è rappresentato " come una linea continua dalla sottoclasse alla superclasse , con un triangolo vuoto a fine , e verso , la superclasse . "Utilizzo di generalizzazione nella modellazione UML è vantaggiosa perché promuove l'eredità, la riusabilità , estendibilità e semplicità. Ereditarietà
generalizzazione , una sottoclasse eredita gli attributi da una superclasse . Questo è utile perché fornisce un modo per distinguere gli attributi comuni di caratteristiche uniche . Tuttavia, dal momento che una sottoclasse è più specifico e di una superclasse è più generale , un bambino o sottoclasse può ereditare gli attributi e il comportamento di un genitore o superclasse - ma non viceversa . Per esempio, se l'animale non è una superclasse e cane è una sottoclasse della superclasse animale , si può indicare che ogni cane è un animale , ma non ogni animale è un cane .
Riusabilità
< br >
consentendo classi di condividere gli attributi e comportamenti , la pratica della generalizzazione nella modellazione UML comuni consente riutilizzabilità , perché il risultato e minimo duplicazione . Dal momento che le sottoclassi ereditano attributi generali da una superclasse , è possibile riutilizzare gli attributi ei comportamenti della superclasse per produrre più sottoclassi . Inoltre, avere classi di oggetti con attributi e comportamenti generici può essere utile in fase di sviluppo del sistema , perché la riusabilità è possibile attraverso più sforzi per lo sviluppo del sistema senza dover reinventare la ruota ogni volta .
Espandibilità
generalizzazione supporta estendibilità perché una volta che è stata definita una superclasse , è possibile continuare a creare attributi e comportamenti che sono distinti da attributi e comportamenti che superclasse ' in una sottoclasse . Per illustrare , utilizzando l'esempio superclasse animale , è possibile aggiungere sottoclassi supplementari, come una sottoclasse gatto alla superclasse animale senza dover ridefinire le caratteristiche che fanno di un gatto un animale. Inoltre , l'animale superclasse può diventare una sottoclasse dei viventi cose superclasse e una nuova sottoclasse impianto può essere creato sotto gli esseri viventi superclasse .
Simplicity
generalizzazione , classi di oggetti sono più facili da gestire , perché si sta semplificando il processo di classificazione degli oggetti predefinendo comunanze per sottoclassi di una volta attraverso una superclasse . Allora , avete solo bisogno di definire gli attributi distinti quando si aggiungono sottoclassi alla superclasse . Come risultato di questo più alto livello di astrazione , che si sta utilizzando un minor numero di oggetti , che riduce le complessità associate alla strutturazione di una gerarchia di classi di modellazione UML .