logo

Diagramma delle classi UML

Il diagramma delle classi rappresenta una vista statica di un'applicazione. Rappresenta i tipi di oggetti che risiedono nel sistema e le relazioni tra loro. Una classe è costituita dai suoi oggetti e può anche ereditare da altre classi. Un diagramma di classi viene utilizzato per visualizzare, descrivere, documentare vari aspetti diversi del sistema e anche costruire codice software eseguibile.

Mostra gli attributi, le classi, le funzioni e le relazioni per fornire una panoramica del sistema software. Costituisce nomi di classi, attributi e funzioni in un compartimento separato che aiuta nello sviluppo del software. Poiché si tratta di una raccolta di classi, interfacce, associazioni, collaborazioni e vincoli, viene definito diagramma strutturale.

Scopo dei diagrammi di classe

Lo scopo principale dei diagrammi di classi è creare una vista statica di un'applicazione. È l'unico diagramma ampiamente utilizzato per la costruzione e può essere mappato con linguaggi orientati agli oggetti. È uno dei diagrammi UML più popolari. Di seguito sono riportati gli scopi dei diagrammi di classe indicati di seguito:

  1. Analizza e progetta una vista statica di un'applicazione.
  2. Descrive le principali responsabilità di un sistema.
  3. È una base per i diagrammi dei componenti e della distribuzione.
  4. Incorpora il forward engineering e il reverse engineering.

Vantaggi dei diagrammi di classe

  1. Può rappresentare il modello a oggetti per sistemi complessi.
  2. Riduce i tempi di manutenzione fornendo una panoramica di come è strutturata un'applicazione prima della codifica.
  3. Fornisce uno schema generale di un'applicazione per una migliore comprensione.
  4. Rappresenta una tabella dettagliata evidenziando il codice desiderato da programmare.
  5. È utile per le parti interessate e gli sviluppatori.

Componenti vitali di un diagramma di classi

Il diagramma delle classi è composto da tre sezioni:

    Sezione superiore:La sezione superiore racchiude il nome della classe. Una classe è una rappresentazione di oggetti simili che condividono le stesse relazioni, attributi, operazioni e semantica. Di seguito sono riportate alcune delle seguenti regole che dovrebbero essere prese in considerazione durante la rappresentazione di una classe:
    1. Scrivi in ​​maiuscolo la lettera iniziale del nome della classe.
    2. Posiziona il nome della classe al centro della sezione superiore.
    3. Il nome di una classe deve essere scritto in grassetto.
    4. Il nome della classe astratta deve essere scritto in corsivo.
    Sezione centrale:La sezione centrale costituisce gli attributi, che descrivono la qualità della classe. Gli attributi hanno le seguenti caratteristiche:
    1. Gli attributi vengono scritti insieme ai relativi fattori di visibilità, che sono pubblico (+), privato (-), protetto (#) e pacchetto (~).
    2. L'accessibilità di una classe di attributi è illustrata dai fattori di visibilità.
    3. All'attributo dovrebbe essere assegnato un nome significativo, che ne spiegherà l'utilizzo all'interno della classe.
    Sezione inferiore:La sezione inferiore contiene metodi o operazioni. I metodi sono rappresentati sotto forma di elenco, dove ogni metodo è scritto su un'unica riga. Dimostra come una classe interagisce con i dati.
Diagramma delle classi UML

Relazioni

In UML le relazioni sono di tre tipi:

    Dipendenza:Una dipendenza è una relazione semantica tra due o più classi in cui una modifica in una classe provoca modifiche in un'altra classe. Forma una relazione più debole.
    Nell'esempio seguente, Student_Name dipende da Student_Id.
Diagramma delle classi UML
    Generalizzazione:Una generalizzazione è una relazione tra una classe genitore (superclasse) e una classe figlia (sottoclasse). In questo, la classe figlia viene ereditata dalla classe genitore.
    Ad esempio, il conto corrente, il conto di risparmio e il conto di credito sono la forma generalizzata di conto bancario.
Diagramma delle classi UML
    Associazione:Descrive una connessione statica o fisica tra due o più oggetti. Descrive quanti oggetti ci sono nella relazione.
    Ad esempio, un dipartimento è associato al college.
Diagramma delle classi UML

Molteplicità: Definisce un intervallo specifico di istanze consentite di attributi. Nel caso in cui non venga specificato un intervallo, uno viene considerato come molteplicità predefinita.

sincronizzazione dei thread

Ad esempio, più pazienti vengono ricoverati in un ospedale.

Diagramma delle classi UML

Aggregazione: Un'aggregazione è un sottoinsieme di associazioni, che rappresenta una relazione. È più specifico dell'associazione. Definisce una relazione parte-tutto o parte. In questo tipo di relazione, la classe figlia può esistere indipendentemente dalla classe genitore.

L’azienda comprende diversi dipendenti e, anche se un dipendente si dimette, l’azienda esiste ancora.

Diagramma delle classi UML

Composizione: La composizione è un sottoinsieme dell'aggregazione. Rappresenta la dipendenza tra il genitore e il figlio, il che significa che se una parte viene eliminata, anche l'altra parte viene scartata. Rappresenta una relazione di parte intera.

Una rubrica è composta da più contatti e se elimini la rubrica, tutti i contatti andranno persi.

Diagramma delle classi UML

Classi astratte

Nella classe astratta nessun oggetto può essere un'entità diretta della classe astratta. La classe astratta non può essere né dichiarata né istanziata. Viene utilizzato per trovare le funzionalità tra le classi. La notazione della classe astratta è simile a quella di classe; l'unica differenza è che il nome della classe è scritto in corsivo. Poiché non comporta alcuna implementazione per una determinata funzione, è meglio utilizzare la classe astratta con più oggetti.

Supponiamo di avere una classe astratta denominata Dislocamento con un metodo dichiarato al suo interno e quel metodo verrà chiamato come a guidare () . Ora, questo metodo di classe astratto può essere implementato da qualsiasi oggetto, ad esempio auto, bicicletta, scooter, bicicletta, ecc.

Diagramma delle classi UML

Come disegnare un diagramma di classi?

Il diagramma delle classi viene utilizzato più ampiamente per costruire applicazioni software. Non rappresenta solo una visione statica del sistema ma anche tutti gli aspetti principali di un'applicazione. Una raccolta di diagrammi di classe nel suo insieme rappresenta un sistema.

Di seguito sono riportati alcuni punti chiave da tenere a mente durante il disegno di un diagramma classi:

  1. Per descrivere un aspetto completo del sistema si suggerisce di dare un nome significativo al diagramma delle classi.
  2. Gli oggetti e le loro relazioni dovrebbero essere riconosciuti in anticipo.
  3. Gli attributi e i metodi (responsabilità) di ciascuna classe devono essere conosciuti.
  4. È necessario specificare un numero minimo di proprietà desiderate poiché un numero maggiore di proprietà indesiderate porterà a un diagramma complesso.
  5. Le note possono essere utilizzate come e quando richiesto dallo sviluppatore per descrivere gli aspetti di un diagramma.
  6. I diagrammi dovrebbero essere ridisegnati e rielaborati tante volte per renderlo corretto prima di produrre la sua versione finale.

Esempio di diagramma di classi

Di seguito è riportato un diagramma delle classi che descrive il sistema degli ordini di vendita.

Diagramma delle classi UML

Utilizzo dei diagrammi di classe

Il diagramma delle classi viene utilizzato per rappresentare una vista statica del sistema. Svolge un ruolo essenziale nella creazione dei diagrammi dei componenti e di distribuzione. Aiuta a costruire un codice eseguibile per eseguire l'ingegneria in avanti e all'indietro per qualsiasi sistema, o possiamo dire che viene utilizzato principalmente per la costruzione. Rappresenta la mappatura con linguaggi orientati agli oggetti che sono C++, Java, ecc. I diagrammi di classe possono essere utilizzati per i seguenti scopi:

  1. Descrivere la visione statica di un sistema.
  2. Per mostrare la collaborazione tra ogni istanza nella vista statica.
  3. Descrivere le funzionalità eseguite dal sistema.
  4. Costruire l'applicazione software utilizzando linguaggi orientati agli oggetti.