diagramma delle classi il diagramma delle classi descrive le informazioni del processo; esplicita le...
TRANSCRIPT
![Page 1: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/1.jpg)
![Page 2: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/2.jpg)
Diagramma delle Classi
•Il diagramma delle classi descrive le informazioni del processo;
•Esplicita le informazioni del processo, le loro proprietà e le relazioni tra loro intercorrenti;
•Ha una corrispondenza naturale con lo schema concettuale del database che darà supporto all’automazione del processo;
![Page 3: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/3.jpg)
Diagramma delle Classi
Servono per definire/rappresentare le classi che compongono il sistema che si intende progettare
Un diagramma delle classi specifica la struttura statica dell’applicazione
le classi
le associazioni tra classi, cioè le collaborazioni ed interazioni necessarie per realizzare i requisiti funzionali specificati nei diagrammi dei casi d’uso
La specifica dell’aspetto dinamico della collaborazione (sequenza di invio di messaggi tra classi) viene espressa con i diagrammi di collaborazione e di sequenza
![Page 4: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/4.jpg)
Diagramma delle Classi
I diagrammi delle classi mostrano la struttura delle classi (attributi, operazioni, associazioni) del sistema o di sottosistemi e vengono utilizzati principalmente per:
documentare il sistema
descrivere le associazioni, generalizzazioni, aggregazioni tra le classi
descrivere gli attributi e le operazioni delle classi
specificare il modello implementativo delle classi e generare parte del codice del sistema
rappresentare sotto-sistemi esterni (ad esempio, librerie) e le loro relazioni con il sistema che si intende progettare
rappresentare istanze di oggetti
descrivere le interfacce esposte delle classi
![Page 5: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/5.jpg)
Classe
E’ la descrizione di un insieme di oggetti che condividono gli stessi attributi, metodi e relazioni
ed è definita da:nomelista degli attributilista delle operazioni
![Page 6: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/6.jpg)
Attributi e operazioni
Attributo : proprietà che caratterizza una classe, con un nome e un tipo (opzionale); una classe ha zero o più attributi;
Operazione : servizio che può essere richiesto ad un oggetto della classe;
![Page 7: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/7.jpg)
Esempio
![Page 8: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/8.jpg)
Attributi
•Nomi che non sono diventati classi durante la definizione delle classi stesse
•Conoscenza del dominio applicativo- Persona (ambito bancario)
nome, cognome, codiceFiscale, numeroConto
- Persona (ambito medico)nome, cognome, allergie, peso, altezza
![Page 9: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/9.jpg)
Attributi e Metodi: Visibilità
La visibilità determina disponibilità verso le altre classi:
private (simbolo “-” o altri): visibile solamente all'interno della stessa classe
protected (simbolo “#” o altri): visibile nella classe e nelle sue sottoclassi
public (simbolo “+” o altri): visibile a tutte le classi associate Package (simbolo “~” o altri): visibile a tutte le classi presenti nello
stesso package per convenzione gli attributi sono private e le operazioni public
l’insieme delle operazioni visibili (esposte) di una classe è detto interfaccia delle classe
![Page 10: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/10.jpg)
Modificabilità di un'associazione
Modificabilità
la modificabilità di un’associazione è un vincolo che indica se l’istanza di una classe può aggiungere o cancellare istanze di una classe in relazione dal lato dell’associazione su cui il vincolo è indicato, dopo la creazione o l’inizializzazione dell’associazione stessa.
può assumere tre valori:
changeable (è il valore di default) Frozen addOnly
![Page 11: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/11.jpg)
Ordinamento Associazione
Ordinamento:
è un vincolo che specifica se le istanze destinazione di un’associazione con molteplicità maggiore di 1 debbano avere un determinato ordinamento
il criterio di ordinamento può essere definito con una nota
![Page 12: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/12.jpg)
Percorrenza Associazione
Percorrenza
indica il verso di percorrenza di un’associazione, cioè il verso di percorrenza dei messaggi che realizzano la collaborazione tra le classi che partecipano all’associazione
la percorrenza viene indicata con la freccia
un’associazione senza frecce indica una percorrenza bidirezionale: devono essere realizzati i messaggi in entrambi i versi
![Page 13: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/13.jpg)
Package di una classe
Il nome del package può comparire
prima del nome della classe (separato da “::”) nel caso di una gerarchia di package (più package) ogni singolo
nome di package deve essere separato da “::” il package è lo spazio dei nomi di una classe
il nome di una classe deve essere univoco all’interno del suo spazio del nomi (cioè all’interno del package che la contiene)
i nomi di package innestati diventano quindi dei path
il path è utile quando si specificano classi di librerie esterne
![Page 14: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/14.jpg)
Informazioni aggiuntive classe
danno ulteriore informazione descrittiva della classe
informazioni sull’autore, sulla data di creazione ed ultima modifica
informazioni sullo stato della specifica (draft, finale, obsoleta, ecc.)
informazioni booleane che vincolano l’uso della classe (per default tali proprietà sono tutte false):
isAbstract (classe che non può essere istanziata)
isLeaf (classe che non può essere specializzata, cioè sottotipizzata)
isRoot (classe che non può essere una specializzazione di un’altra)
vengono visualizzate tra parentesi graffe sotto il nome della classe {autore=“Paolino Paperino”, dataCreazione=“21/10/2007”, isLeaf}
![Page 15: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/15.jpg)
Relazioni tra Classi
Tre sono i tipi principali di relazioni tra classi
•Associazione
•Generalizzazione
•Aggregazione/Composizione
![Page 16: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/16.jpg)
Associazioni tra Classi
•Ogni associazione ha due estremità collegate alle classi dell’associazione
•Le estremità sono etichettate con molteplicità (indicano la cardinalità ma in modo opposto alla notazione di Entity-Relationship!)
•Una estremità può essere etichettata con il ruolo (opzionale) che la classe assume nella associazione
![Page 17: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/17.jpg)
Molteplicità (1)
La molteplicità dice:
•Se l’associazione è obbligatoria oppure no?
•Il numero minimo e massimo di oggetti che possono essere relazionati ad un altro oggetto
![Page 18: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/18.jpg)
Molteplicità (2)
Esattamente uno: 1
Zero o uno:0..1
Molti: 0..*
Uno o più: 1..*
Un numero specifico: 7
Un intervallo: 4..15
Lista:0..1, 3..4, 6..*Tutti i numeri eccetto 2 e 5
![Page 19: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/19.jpg)
Ruolo
Definisce il ruolo svolto nell’associazione
![Page 20: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/20.jpg)
Associazioni tra Classi
Le associazioni rappresentano collegamenti concettuali tra classi
![Page 21: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/21.jpg)
Classi associazione
Alcune proprietà potrebbero appartenere all’associazione e non alle parti coinvolte
![Page 22: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/22.jpg)
Associazioni n-arie
Nella maggior parte dei casi vengono definite associazioni binarie
In UML è comunque possibile specificare associazioni n-arie
La notazione fa uso del simbolo del rombo come centro di associazione
![Page 23: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/23.jpg)
Generalizzazioni di Classi
![Page 24: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/24.jpg)
Aggregazioni
Le aggregazioni sono una forma particolare di associazione.
Una parte è in relazione con un oggetto (part-of)
![Page 25: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/25.jpg)
Composizioni
•Una relazione di composizione è un’aggregazione forte
- Le parti componenti non esistono senza il contenitore
![Page 26: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/26.jpg)
Interfaccia
Un’interfaccia è una classe che
non ha attributi né istanze dirette (è astratta)
ha solamente operazioni non implementate (non ha metodi)
Un’interfaccia deve essere realizzata (implementata) da una classe
La notazione dell’interfaccia è il cerchio con etichetta
![Page 27: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/27.jpg)
Linee guida per l’individuazione di Classi Candidate
Per determinare se un concetto descritto nei requisiti è una classe candidata lo si può verificare rispetto a queste domande:
•il concetto è un “contenitore” di dati?
•possiede attributi che possono assumere valori distinti?
•potrebbe comprendere molti oggetti sue istanze?
•appartiene al contesto del processo in esame?
![Page 28: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/28.jpg)
Esempi
Identificazione delle classi candidate per il processo di acquisto on-line di un computer
![Page 29: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/29.jpg)
Esempio
Diagramma delle Classi per il processo di acquisto on-line di un computer
![Page 30: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/30.jpg)
Esercizio 1 (Società indagini statistiche)
![Page 31: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/31.jpg)
Class Diagram Azienda
![Page 32: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/32.jpg)
Class Diagram Libreria
![Page 33: Diagramma delle Classi Il diagramma delle classi descrive le informazioni del processo; Esplicita le informazioni del processo, le loro proprietà e le](https://reader035.vdocuments.pub/reader035/viewer/2022081516/5542eb75497959361e8df123/html5/thumbnails/33.jpg)
Riepilogo
•Rappresentazione EsternaDiagrammi dei casi d’uso: come il sistema si
“mostra” all’utente (interno o esterno)
•Rappresentazione Interna Diagrammi delle classi: specifica della caratteristiche e delle corrispondenti relazioni tra gli insiemi informativi gestiti dal sistema. Diagrammi di sequenza e di collaborazione: mostra
esplicitamente la sequenza di messaggi che vengono scambiati tra gli attori del sistema e gli oggetti. Diagrammi delle attività: specifica dei flussi di lavoro. Diagrammi di stato: specifica degli stati in cui un oggetto (istanza di una classe) può venirsi a trovare durante il suo ciclo di vita