Esempi ed esercizi modellazione uml

Domehobb88

Utente Attivo
253
53
CPU
Ryzen 5 5600
Dissipatore
Be-quite dark rock
Scheda Madre
Asus rog strix B550-F
RAM
DDR-4 16GB corsair 3600MHz
GPU
AMD RX6800xt
Ciao a tutti, avrei bisogno di un supporto didattico per quanto riguarda la modellazione orientata agli oggetti tramite UML. Tipo esempi o esercizi svolti partendo da class diagram e use case diagram. Ho acquistato un testo piccolino ma propone pochi esempi e direttamente il codice implementativo ma niente esercizi, online ho trovato qualcosa ma non riesco ad apprendere bene tramite slide poco esaustive. C'è qualche risorsa che faccia al caso mio, anche libro di testo?
 

Domehobb88

Utente Attivo
253
53
CPU
Ryzen 5 5600
Dissipatore
Be-quite dark rock
Scheda Madre
Asus rog strix B550-F
RAM
DDR-4 16GB corsair 3600MHz
GPU
AMD RX6800xt
Non è che mi potresti mandare qualche esempio di diagrammi che sviluppi, con qualche piccolo commento, lavori con uml?
 

bigendian

Utente Attivo
739
424
OS
Linux
Mai utilizzato, sempre programmato con progetto in testa. Cmq, per grafici vari uso yEd, ha anche l'UML
 

Domehobb88

Utente Attivo
253
53
CPU
Ryzen 5 5600
Dissipatore
Be-quite dark rock
Scheda Madre
Asus rog strix B550-F
RAM
DDR-4 16GB corsair 3600MHz
GPU
AMD RX6800xt
Mai utilizzato, sempre programmato con progetto in testa. Cmq, per grafici vari uso yEd, ha anche l'UML
Come nei metodologie agili? Io fondamentalmente devo fare l'esame di ingegneria del software per questo mi servivano degli esempi per capire.
 

Domehobb88

Utente Attivo
253
53
CPU
Ryzen 5 5600
Dissipatore
Be-quite dark rock
Scheda Madre
Asus rog strix B550-F
RAM
DDR-4 16GB corsair 3600MHz
GPU
AMD RX6800xt
Va bene grazie, sto trovando molte difficoltà a capire questi use case e class diagram, i sequence e activity e state machine diagram sono molto più comprensibili.
 

Andretti60

Utente Èlite
6,440
5,091
Non è che mi potresti mandare qualche esempio di diagrammi che sviluppi, con qualche piccolo commento, lavori con uml?
Si, nel team dove lavoro facciamo tutta la progettazione in UML, non scriviamo una riga di codice finché non abbiamo il diagramma di tutto il progetto. Scrivere il codice diventa poi facilissimo. Mi spiace ma non ti posso mandare nessuno dei nostri diagrammi, come puoi bene immaginare.
 
  • Mi piace
Reazioni: Domehobb88

Domehobb88

Utente Attivo
253
53
CPU
Ryzen 5 5600
Dissipatore
Be-quite dark rock
Scheda Madre
Asus rog strix B550-F
RAM
DDR-4 16GB corsair 3600MHz
GPU
AMD RX6800xt
Si, nel team dove lavoro facciamo tutta la progettazione in UML, non scriviamo una riga di codice finché non abbiamo il diagramma di tutto il progetto. Scrivere il codice diventa poi facilissimo. Mi spiace ma non ti posso mandare nessuno dei nostri diagrammi, come puoi bene immaginare.
Si capisco perfettamente. Posso postare un esercizio, stavo provando qualche soluzione ma non mi sembrano molto corrette, è semplicissimo ma non so come impostarlo bene e non so se la soluzione sia giusta. Mi sembra di capire che posso modellare una situazione in molti modi differenti. Le relazioni logiche tra le classi non sono sempre univoche.
 
  • Mi piace
Reazioni: Andretti60

Andretti60

Utente Èlite
6,440
5,091
Si, certo, pubblica un esercizio e mostra la tua soluzione così potremmo parlarne. Vero, non esiste (quasi) mai una soluzione unica, ma in genere esiste sempre una soluzione ottimale. Che in genere soddisfa certi requisiti fondamentali come SOLID e DRY (dovresti conoscere già questi concetti). E comunque ti avviso: usare UML è facile (è solo uno strumento che viene usato), quello che è difficile è proprio la fase della progettazione. Non confondere le due cose.
 

Domehobb88

Utente Attivo
253
53
CPU
Ryzen 5 5600
Dissipatore
Be-quite dark rock
Scheda Madre
Asus rog strix B550-F
RAM
DDR-4 16GB corsair 3600MHz
GPU
AMD RX6800xt
Si, certo, pubblica un esercizio e mostra la tua soluzione così potremmo parlarne. Vero, non esiste (quasi) mai una soluzione unica, ma in genere esiste sempre una soluzione ottimale. Che in genere soddisfa certi requisiti fondamentali come SOLID e DRY (dovresti conoscere già questi concetti). E comunque ti avviso: usare UML è facile (è solo uno strumento che viene usato), quello che è difficile è proprio la fase della progettazione. Non confondere le due cose.
Grazie, ho scaricato un editor per i diagrammi, è semplicissimo, dopo posto uno screen con la mia soluzione. Per quanto riguarda la progettazione, da quello che sto imparando è una fase distinta del processo di sviluppo, la modellazione comprende le diverse viste del progetto giusto? Però nella fase di progettazione vengono utilizzati i diagrammi per definire altri diagrammi più dettagliati ?
 
  • Mi piace
Reazioni: Andretti60

Domehobb88

Utente Attivo
253
53
CPU
Ryzen 5 5600
Dissipatore
Be-quite dark rock
Scheda Madre
Asus rog strix B550-F
RAM
DDR-4 16GB corsair 3600MHz
GPU
AMD RX6800xt
Ho preso un esercizio semplice, uno dei primi
Si vuole modellare un ristorante dove i clienti effettuano delle prenotazioni per un certo giorno e ora e alle quali sono assegnati uno o più tavoli, i camerieri servono i clienti ai tavoli ed il conto è composto dalle singole portate.
Per quanto riguarda le molteplicità ho capito come assegnarle, il problema è l'impostazioni delle relazioni, ad esempio come faccio a descrivere la portata. Qua mi chiede che il conto è composto dalle singole portate e l'ammontare finale del conto è dato dalla somma dei prezzi delle singole portate. Io ho fatto così ma sono sicuro che non è giusta come soluzione.
PS. per il conto ho utilizzato la classe di associazione "conto".

Class1.jpg
 

Andretti60

Utente Èlite
6,440
5,091
La tua e' una "soluzione", ma diciamo e' il punto di partenza, chiamiamola versione 1.0

Uno dei grandi vantaggi di UML e' che da' una visione globale del progetto, dalla quale si vede subito (ok, "subito" magari per persone con esperienza del settore) se ci sono errori concettuali, omissioni, oggetti da migliorare e ampliare.

Quello che hai fatto e' il "class diagram", che spiega le classi che verranno usate per la soluzione. Ci sono linee di collegamento che vanno tolte, non sono utili in questa fase, le interazioni tra le classi verranno poi chiarificate nel "sequence diagram", in genere più' di uno, a seconda della complessità del progetto.
Devi abituarti a scrivere questi classi, il secondo pannello dall'alto specifica gli Attributi della classe, il terzo i metodi, e i simboli + e - vanno usati per descrivere membri pubblici e privati (rispettivamente).
Guardati il video di cui ti lasciato il link in un commento precedente.

La prima cosa che salta all'occhio per esempio e' che ti manca la classe principale, ossia il Ristorante, che descrive come il ristorante e' organizzato, per esempio avrà le sue ore di apertura, il suo numero di telefono, il menu (che e' una lista di classe Portata), i tavoli (una lista di classe Tavolo). Per fare le cose correttamente occorrerebbe anche aggiungere altri classi per descrivere altre funzioni principali del Ristorante, per esempio Ricezione, Direzione, Cucina, Chef, Cuoco (nel tuo diagramma hai solo la classe Cameriere), ma se cogliamo solo focalizzarsi nella prenotazione, non hanno importanza.
 
  • Mi piace
Reazioni: Domehobb88

Domehobb88

Utente Attivo
253
53
CPU
Ryzen 5 5600
Dissipatore
Be-quite dark rock
Scheda Madre
Asus rog strix B550-F
RAM
DDR-4 16GB corsair 3600MHz
GPU
AMD RX6800xt
Ciao scusate se non ho risposto ma ho finalmente fatto l'esame, speriamo bene, ho sostenuto una prova scritta con alcuni esercizi e domande di teoria. Come esercizi ho fatto un semplice class diagram e un activity diagram. Saluti. Grazie mille :)
 
  • Mi piace
Reazioni: Andretti60

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili