The forum of the Computer Science students of the University of Pisa

Domande Orale Gervasi

Orali luglio 2016
1. Notazione Lolli-pop nelle viste architetturali
2. Cos'è un porto?
3. Tutti i vari stili architetturali con relativi diagrammi d'esempio, (vuole esempi di interfacce)
4. Differenza tra walkthrough e check-list
5. Come implementeresti il model-checking?
6. Tutti i processi di sviluppo del software (modelli di ciclo di vita)
7. Cos'è un caso d'uso?
8. Metodo Jackson, cos'è un fenomeno condiviso?
9. Come far vedere il ritardo nella spedizione dei messaggi nei Sequence Diagram?
10. Cos'è un Sequence Diagram?
11. Differenze tra relazioni di Aggregazione, Generalizzazione e Composizione?

Altri orali luglio 2016
I lucidi sono incompleti, apprezza molto la lettura del libro, l'approfondimento personale (anche solo su internet) e l'aver preso appunti di ciò che lui diceva. Le domande non sono difficili ma ci arriva in maniera indiretta e spesso non è troppo chiaro ciò che davvero chiede. In generale tende a non bocciare (pur abbassando molto il voto) e a dare voti abbastanza alti. Per intenderci non è mai andato oltre il -5 e comunque non ha mai nessuno, mentre a salire il massimo è stato un +3 su un orale molto buono ma non proprio perfetto.

[scritto 27, voto finale 28]
- notazione Lollipop: assemblaggio e delega
- cos'è un porto: notazione per descrivere un meccanismo di comunicazione
- stili architetturali con diagramma
• publish-subscribe. Esempio: segnale e handler
• client-server
• P2P
• pipe & filter
- test walktrough e check-list

[scritto 30, voto finale 30 e lode]
- implementare un model-checking
- principali modelli di sviluppo software
• code & check
• modelli teorici a cascata: analisi, coding, testing, rilascio (requisiti stabili)
• iterativi: a cascata con iterazione tra la fase di coding e di testing
• a spirale: analisi dei rischi in ogni fase
• unified model
• agile - extreme programming: stand-up meeting, programmazione a coppia

[scritto 24, voto finale 26]
- cosa sono i fenomeni condivisi nel metodo Jackson. Cos'è un fenomeno: esprime una (qualità?) sensibile. Può essere un evento, uno stato, un valore
- in che modo si possono descrivere i messaggi e le comunicazioni nei diagrammi uml (diagrammi sequenza)

[scritto 29, voto finale 30 e lode]
- diagrammi di sequenza: messaggi sincroni e asincroni
- differenza tra generalizzazione e eredità
- differenza tra aggregazione e composizione: se sono l'aggregato di un oggetto non posso esserlo di un altro. Relazione binaria (due macchine possono avere lo stesso colore, ma un'istanza di volante appartiene ad una sola macchina per volta)

[scritto molto alto (30?), orale 25, rifiutato]
- validazione requisiti non funzionali (usabilità, stress test & performance, compatibilità, etc) e come si fanno
- legami architetturali: gli stereotipi che si mettono sui connettori (client-server, pipe (connettore) & filter (componente), P2P, publish-subscribe, etc)
• pipe: unidirezionale (mittente è destinatario), flusso continuo
• data access: tra server e DBMS, viene usato un protocollo che ha almeno le seguenti opzioni: create, retrive, update, delete
• request-response: tipo http, faccio una richiesta è ottengo una (pagina di) risposta
- parallelismo nei diagrammi di sequenza
- automi: grafi dove i nodi sono stati e gli archi transizioni
- parallelismo nei diagrammi attività. Come cambia il numero di token: barra di sincronizzazione (join), fork, chiusure.

[scritto 25, voto orale rifiutato]
- stereotipi
• pipe & filter
• P2P
• Master-slave vs client-server: client invia una richiesta al server e attende la risposta, master manda un comando allo slave e non per forza slave invia una risposta
- architetture a livelli. Esempio di architetture three-tyer: dati, logica (business logic, quella che fa le operazioni) e presentazione (UI)
- Model view controller
- classificatori in UML (è una proprietà sintattica): le classi, gli attori, componenti, interfacce, ecc. Fra classificatori è possibile creare associazioni. Un classificatore è una cosa di cui posso avere più istanze

[scritto 29, voto finale 29]
- OCL Object Constraint language. Le annotazioni con le parentesi graffe (vincoli = constraint)
- (Rational) Unified Process: modello iterativo-incrementale. Le fasi sono: avvio, elaborazione, costruzione, transizione
- scrum
- extreme programming e pair programming
- dove si vedono i porti? In quali viste? Differenza tra porto e interfaccia
- white-box vs black-box

- relazioni in UML:
• composizione
• aggregazione
• generalizzazione
• associazione (generica)

Orale febbraio 2017
- Tipi di viste strutturali
- Cos'è un porto
- Notazione Lollipop
- Vista di tipo logistico (con esempio di un diagramma di dislocazione)

- Publish Subscribe (con disegno del diagramma, delle interfacce e diagramma di sequenza corrispondente)
- Metodo Jackson (formula con macchina, dominio, requisiti.)
- Come si esprimono i requisiti nel metodo jackson
- Modelli di sviluppo software

Orale giugno 2017
[media compitini: 19, voto finale: 23]
- Trattamento requisiti in Unified Process con UML (fase requisiti UP, curva costi requisiti)
- Chi sono gli attori nei casi d'uso UML (sintassi, semantica)
- Pattern Factory
- Concetto di Design Pattern
- Come decidere bontà o meno di una test suite: test mutazionale

Orale luglio 2017
[scritto: 20, finale: 23]
- Pseudo stati nel diagramma della macchina a stati
- Differenza tra psudo stato di giunzione e quello della decisione (Sostanzialmente momento in cui viene valutata la condizione)
- Visto che insistevo col termine token, mi ha chiesto perche in un diagramma di attivita' si usa il token mentre nella macchina a stati no.
- Esecuzione simbolica
- Perche il rilascio frequente in un modello incrementale e' preferibile al modello a cascata?

Orale luglio 2017
-test d'integrazione (quando si fa e in cosa consiste)
-pseudostati (cosa sono, notazione grafica, esempio)
-transazioni e[c]/a (nel caso di entry/exit in che ordine si fanno? prima accade l'evento e e si valuta la condizione e, poi si fa la exit e per ultima l'azione a).
-spiegare entry, exit, do, evento/a (non mi ricordo come si chiamano! Spiegare come lavorano quando/in che ordine si fanno)
-differenza tra avere do/a dentro uno stato (con entry e exit) e avere una freccia che esce e rientra nello stesso stato con a (in un caso la entry e la exit si fanno solo una volta e nell'altro si fanno ogni volta perchè ogni volta esci e rientri nello stato)
-modello a v

Orali luglio 2018
Voto scritto 27, voto orale 30
-Tutto quello che sai sulla macchina a stati (cosa è, per cosa si usa, gli pseudostati cosa sono e quando si usano, differenza fra giunzione e choice, etc, inoltre ha chiesto se conosceva lo pseudostato h*, che non è sul libro ne sulla slides, serviva per la lode, ma non ricordo la risposta)
-Test mutazionale, cosa è e quando si usa
- Required behaviour, e concerns (i concerns erano una domanda extra per la lode)

voto scritto 18, bocciato
-Factory, cosa è, quali abbiamo visto (vuole una definizione di factory usando interfacce o classi astratte, ossia mi serve un oggetto che deve avere delle certe funzionalità/metodi ma non mi interessa sapere come è fatto)
-Diagramma delle attività
-Model checking

voto ??
- Model checking e logica temporale
- C & C e in particolare publish-subscribe anche con dispatcher
- Modello a cascata
25/07/2017
[da 19 a 25]
-test d'integrazione (quando si fa e in cosa consiste)
-pseudostati (cosa sono, notazione grafica, esempio)
-transazioni e[c]/a (nel caso di entry/exit in che ordine si fanno? prima accade l'evento e e si valuta la condizione e, poi si fa la exit e per ultima l'azione a).
-spiegare entry, exit, do, evento/a (non mi ricordo come si chiamano! Spiegare come lavorano quando/in che ordine si fanno)
-differenza tra avere do/a dentro uno stato (con entry e exit) e avere una freccia che esce e rientra nello stesso stato con a (in un caso la entry e la exit si fanno solo una volta e nell'altro si fanno ogni volta perchè ogni volta esci e rientri nello stato)
-modello a v