266. Esempio – in un caso d’uso “Acquistare un prodotto”, ogni acquisto effettuato da uno specifico cliente in uno specifico momento costituisce uno scenario particolare
300. La collaborazione è costituita da una serie di oggetti che interagiscono tra di loro cioè effettuano delle azioni e si scambiano messaggi per richiedere servizi corrispondenti alle rispettive responsabilità
302. A livello statico, mediante un diagramma delle classi che evidenzi le classi o gli oggetti coinvolti nella collaborazione e le rispettive associazioni e legami
348. Classe Astratta class MiaAvvio { public static void main(String[] args) { ClassAbstract ca = new Classe(); } } Cosa succede invece in questo caso? abstractclassClassAbstract { public ClassAbstract(){ System.out.println("ClassAbstract"); }; } classClasseextendsClassAbstract { public Classe(){ System.out.println("Classe"); }; }
349. Classe Astratta class MiaAvvio { public static void main(String[] args) { ClassAbstract ca = new Classe(); ca.metodo(); } } Ed in questo caso? abstractclassClassAbstract { public void metodo(){ System.out.println("metodo ClassAbstract "); }; } class Classe extendsClassAbstract { public void metodo(){ System.out.println("metodo Classe"); }; }
350. Classe Astratta class MiaAvvio { public static void main(String[] args) { ClassAbstract ca = new Classe(); ca.metodo(); } } Ed in questo caso? abstractclassClassAbstract { public void metodo(){ System.out.println("metodo ClassAbstract "); }; } class Classe extendsClassAbstract { public void metodo(){ super.metodo(); System.out.println("metodo Classe"); }; }
351. Classe Astratta class MiaAvvio { public static void main(String[] args) { ClassAbstract ca = new Classe(); ca.metodo(); } } Ed in questo caso? abstractclassClassAbstract { public abstractvoid metodo() } class Classe extendsClassAbstract { public void metodo(){ System.out.println("metodo Classe"); }; }
395. Si nota come il metodo PlayOn necessita come parametro di un oggetto di tipo Channel
396. Ciò evidenzia una dipendenza tra le classi sebbene non esista un legame di associazione
397.
398. Quando il riferimento ad un oggetto di una specifica classe venga fornito come parametro ad un metodo di un altro oggetto istanza di una classe diversa
404. È spesso indicata con la denominazione Is-kind-of (è di tipo), per specificare che un oggetto specializzato e “del tipo” dell’oggetto più generale
405.
406.
407. Un oggetto della classe Rectangle può essere sempre sostituito ad un oggetto Shape (non vale il contrario)
408. Un oggetto della classe Square può sempre sostituire sia da un’istanza della classe Rectangle sia da una classe Shape
409. Comprensibile se si considera che una classe figlio eredita proprietà e metodi della classe padre
410.
411.
412. Ciò implica che ogni riferimento a tale metodo, eseguito in un oggetto della classe figlio, farà riferimento al metodo ridefinito anziché a quello della classe padre
413.
414. Linea piena con freccia vuota nella direzione della classe padre
415.
416.
417.
418. Definire una nuova associazione R2 tra la classe C2 e la classeC3 (o una classe C4 che è sottoclasse di C3)
423. Modellare le varie entità attraverso classi distinte senza alcun legame
424. Estrapolare dalle entità il comportamento e la struttura comune, al fine di realizzare una classe più generale dalla quale far derivare tutte le altre
425. Può capitare di dover schematizzare determinate relazioni tra classi per mezzo di una relazione di ereditarietà multipla
426. nel caso in cui una classe figlio erediti da più classi padre
427.
428. si può facilmente incorrere in errori qualora la classe figlio voglia ridefinire (override) la struttura e/o il comportamento di una delle classi padre
444. È anche possibile assegnare due nomi con i relativi versi alla stessa associazione
445. Osserviamo ancora che le frecce che simboleggiano il verso non aggiungono nulla al significato della associazione (che è sempre una relazione), ma aiutano ad interpretare il senso dei nomi scelti per l’associazione
456. Se le molteplicità di un attributo B di tipo T di una classe C non vengono indicate, vuol dire che B associa ad ogni istanza di C esattamente un valore di T
457.
458. Un gruppo è formato da persone. Ogni persona può apparire in un gruppo al più una volta (ovviamente ciascuna persona può fare parte di 0, 1, molti gruppi) e non ha importanza indicare l’ordine di appartenenza
459.
460. Una graduatoria ha un certo numero di posizioni ciascuna occupato da una sola persona (non consideriamo pari merito in questo esempio)e una persona può apparire un una graduatoria al più una volta.
461.
462. Perché esistono molti link alla classe Studente in quanto lo stesso corso è seguito da molti studenti
521. Sincrona – chi invia il messaggio deve attendere la risposta
522. Asincrona – chi invia il messaggio non deve attendere la risposta
523.
524. In UML 1.x i messaggi sincrono ed asincroni erano visualizzati con una freccia con punta aperta completa o parziale,
525. In UML 2.x per evitare facili confusioni si è preferito visualizzarli con una freccia chiusa piena ed una aperta completa mantenendo sempre la linea continua
600. Gli InteractionDiagramssono usati per modellare il comportamento di diversi oggetti che cooperano mentre gli StatechartDiagramsvanno usati per modellare il comportamento di un singolo oggetto all’interno del suo ciclo di vita..
611. Lo stato di un oggetto è una condizione o situazione che si verifica durante il ciclo di vita dell'oggetto stesso
612. Rappresenta la situazione nel tempo di un oggetto che esegue una attività o aspetta qualche stimolo esterno
613. E' il risultato di tutte le attività eseguite fino a quel dato istante dall'oggetto
614. Lo stato è costituito dai valori associati ai relativi attributi e dai legami con altri oggetti
615. Uno stato perdura nel tempo finché un evento non fa cambiare stato all’oggetto (es. un versamento fa passare un conto corrente da saldo negativo a saldo positivo)
675. Indica cha un oggetto che si trova nel primo stato (stato sorgente) eseguirà determinate azioni ed entrerà nel secondo stato (stato destinazione) quando avverrà un particolare evento e certe condizioni sono soddisfatte.
680. Evento: lo stimolo esterno la cui ricezione da parte dell’oggetto nello stato sorgente rende la transizione candidata a scattare, in base alla condizione.
681. Condizione: una espressione booleana che viene valutata quando l’evento arriva. Se la condizione è verificata la transizione scatta
682. Azione: è atomica e non interrompibile. L’azione può essere costituita dall’invio di un evento ad un altro oggetto.
683.
684. Verificarsi di un qualcosa degno di nota che può innescare una transizione di stato
743. i componenti sono moduli software (eseguibili o meno), dotati di identità e con un'interfaccia ben specificata
744. Non esiste un metodo unico per l’individuazione dei componenti (Alhir li definisce “una parte del sistema che esiste durante l’esecuzione del sistema”)
751. Tra due componenti esiste una dipendenza quando modificando la definizione di uno (il supplier) può doversi modificare la definizione dell’altro (detto client)
787. Un artifact può essere indicato elencandoli all’interno del nodo come class box all’interno del nodo, indicando però l’icona documento o la parola <<artifact>>