1. Dopo aver riportato sinteticamente le caratteristiche dello standard "10-gigabit Ethernet", elencare e descrivere le relative tecniche di trasmissione su fibra e su rame. 2. Dopo aver definito sinteticamente il significato di algoritmo di routing, descrivere f1ooding. 3. la tecnica di Nell'ambito dei protocolli di controllo utilizzati nel livello di rete, descrivere l'internet control message protocol (ICMP) ed i relativi principali messaggi. 4. In cosa consiste un attacco "DNS spoofing"? Descrivere inoltre le caratteristiche del protocollo Domain Name System Security Extensions (DNSsec). 5. Che cos'è una "stored procedure" in SQL? 6. Fornire una descrizione delle tre fasi principali della progettazione di basi di dati. 7. Nell'ambito della progettazione concettuale delle basi di dati, descrivere la strategia "inside-out". 8. Nell'ambito della normalizzazione di una base dati, descrivere quali sono le proprietà che dovrebbero essere sempre soddisfatte da una decomposizione. 9. Dopo aver definito il significato di "kernel", spiegare a cosa serve il metodo stratificato. 10. Nell'ambito della gestione della memoria centrale, definire ed eventualmente rappresentare il procedimento di awicendamento o scambio (swapping) dei processi in memoria. 11. Che cos'è un sistema RAID? Descriverne le strutture e i vantaggi derivanti dalla sua implementazione. 12. Cosa si intende per Cloud Computing? Descrivere inoltre la seguente tipologia di servizio: "Platform-asa-Service" (PaaS). 13. Nell'ambito dell'analisi dei dati, quali sono le funzioni di base deIl'OLAP? 14. Cos'è un "data mart"? Quali sono le fasi della progettazione di un data mart? 15. Che cosa sono gli "indici di proiezione" nell'ambito del data warehouse? 16. Nell'ambito della Business Intelligence, cosa si intende per "Business Performance Management" (BPM)? 17. Cosa sono i Web Services? Darne una descrizione delle caratteristiche e del funzionamento. 18. Spiegare il concetto di "ontologia" nell'ambito del Web Semantico. 19. Spiegare il significato dell'acronimo "XML", dandone le caratteristiche principali. 20. Descrivere brevemente il significato di "Protocol far Web Description Resources" (POWDER). 21. Descrivere brevemente il processo "unificato" di sviluppo software. 22. Nell'ambito della modellazione analitica dare una descrizione della modellazione "Class-ResponsibilityCollaborator" (CRC). 23. Cosa sono i Function Point (FP)? Come vengono calcolati? 24. Dopo aver fornito una definizione di "System Testing", presentarne i tipi conosciuti ed applicabili ai sistemi software. 25. Come awiene il controllo della versione di un software? Descrivere brevemente il sistema CVS. 26. Esporre la tecnica" Adaptive Software Development" (ASD) come metodologia agile per lo sviluppo del software. 27. Nell'ambito della gestione di progetti, quali sono gli elementi chiave di un progetto secondo il principio "W5HH"? 28. Definire la scheduling nello sviluppo di un software ed indicarne i metodi conosciuti. 29. Introdurre brevemente le best practices "ITIL". Quante e quali sono le fasi del ciclo di vita di un servizio. 30. Dare una breve descrizione della "Business Process Management" (BPM). In cosa differisce dal "Business Process Re-engeneering" (BPR)? \\ --. 1. Dopo aver riportato sinteticamente le caratteristiche dello standard "Gigabit Ethernet", descrivere le due funzionalità "carrier extension" e "frame bursting". 2. Dopo aver definito una "rete a circuito virtuale", descriverne il funzionamento. 3. Nell'ambito del protocollo IPv6, descrivere i tipi di "intestazioni estese". 4. Descrivere, nella maniera più esauriente possibile, come vengono distribuite le chiavi pubbliche in modo sicuro. Cosa è e quale è la principale funzione dello standard X.509? 5. Nell'ambito delle basi di dati esporre il concetto di "transazione", descrivendo inoltre le quattro proprietà "AClD" delle transazioni. 6. Nell'ambito dell'ambiente Java descrivere le caratteristiche del modulo Java Database Connectivity (JDBC). 7. Nell'ambito della progettazione concettuale delle basi di dati, descrivere la strategia "top-down". 8. Dopo aver introdotto il concetto di normalizzazione di una base di dati, descrivere la terza forma normale. 9. Cos'è il debugging nell'ambito dei sistemi operativi? Definire sinteticamente la funzione dell'utilità DTrace. 10. Nell'ambito della sincronizzazione dei processi dare una definizione della "sezione critica". Quali soluzioni software o hardware esistono per rispondere al problema della sezione critica? 11. Dopo aver definito sinteticamente il "file system", descrivere le caratteristiche del protocollo NFS. 12. Dopo aver descritto la differenza tra cloud privato e cloud pubblico, descrivere la seguente tipologia di servizio: "Infrastructure-as-a-Service" (laaS). 13. Cosa si intende con l'acronimo OLAP? Descrivere inoltre le tipologie di sistemi OLAP. 14. Descrivere il ciclo di vita di sistemi di data warehouse denominato "Rapid Warehousing Methodology". 15. Che cosa sono gli "indici Join" nell'ambito del data warehouse? 16. Nell'ambito della Business Intelligence, descrivere cosa si intende per "data mining". 17. Definire brevemente i linguaggi HTML e XHTML. 18. Nell'ambito del Web Semantico cosa sono i " metadati"? Descriverne le caratteristiche principali. 19. Facendo riferimento al diagramma piramidale del web semantico, descrivere brevemente il significato di "URI". 20. Descrivere brevemente il significato di "Web Ontology Language" (OWL). 21. Nell'ambito dello sviluppo software, cosa si intende per "modelli a processo evolutivo"? Descrivere, in particolare, il modello a spirale. 22. In che modo la tecnica "Quality Function Deployment" (QFD) traduce i bisogni del cliente in requiSiti tecnici per il software? 23. Nell'ambito del processo di sviluppo software fornire una breve presentazione del modello di design e riportare gli elementi previsti nella progettàzione. 24. Nell'ambito delle strategie di testing del software descrivere il "validation testing". 25. Nell'ambito della gestione della qualità come possono essere misurate l'affidabilità e la disponibilità di un software? 26. Descrivere, nell'ambito dei modelli di processo agili per lo sviluppo del software, cosa si intende per "Extreme Programming" (XP). 27. Nell'ambito della gestione di progetti di sviluppo software, come viene definito lo "scope" del software e cosa deve riportare l'enunciato dello scope? 28. In base a quali parametri avviene la scelta fra acquisto e sviluppo di un software? 29. Nell'ambito della gestione dei rischi di un progetto, cosa è un "piano RMMM"? 30. Cosa si intende per "Service Oriented Architecture" (SOA)? Su quali elementi o standard si fonda? 1. Dopo aver riportato sinteticamente le caratteristiche dello standard "Fast Ethernet", descrivere le principali differenze tra le tecniche di trasmissione 100-Base-T4, 100Base-TX e 100Base-FX. 2. Dopo aver definito una "rete datagram", descriverne il funzionamento. 3. Dopo aver descritto i motivi che hanno portato all'introduzione del protocollo IPv6, definirne brevemente le caratteristiche e le differenze con il protocollo IPv4. 4. 5. 6. 7. 8. Dopo aver indicato l'ambito di utilizzo e le principali caratteristiche del protocollo "SIP", descrivere le somiglianze e le differenze con il protocollo H.323. Definire e descrivere le attività di cui si compone il ciclo di vita di un sistema informativo. Cosa sono i trigger? Descrivere la loro importanza funzionale nei sistemi relazionali. NeWambito della progettazione dei database esporre il modello Entità-Relazione, soffermandosi sull'analisi dei suoi costrutti principali. Dopo aver introdotto il concetto di normalizzazione di una base di dati, descrivere la forma normale di Boyce e Codd. 9. Definire brevemente il concetto generale di macchina virtuale, illustrandone i vantaggi. Descrivere inoltre il funzionamento della macchina virtuale Java. 10. Quali sono i criteri per confrontare gli algoritmi di scheduling della CPU? Descrivere inoltre l'algoritmo di scheduling "in ordine d'arrivo" (FCFS). 11. Cosa si intende per tecnica della memoria virtuale? Descrivere inoltre il caso di "paginazione degenere" (thrashing). 12. Dopo aver introdotto sinteticamente il concetto di Cloud Computing, descrivere la seguente tipologia di servizio: "Software-as-a-Service" (SaaS). 13. Dopo aver dato la definizione di "data warehousing", descriverne le architetture tipiche. 14. Descrivere il ciclo di vita di sistemi di data warehouse denominato "Business Dimensionai Lifecycle". 15. Che cosa sono gli "indici bitmap" nell'ambito del data warehouse? 16. Nell'ambito della Business Intelligence, descrivere le tecniche di analisi "what-if'. 17. Definire brevemente i protocolli HTTP e HTTPS. 18. Una delle prime implementazioni web "dinamiche" è stata la "Common Gateway Interface" (CGI). Descriverne le caratteristiche principali. 19. Facendo riferimento al diagramma piramidale del web semantico, descrivere brevemente lo standard "Unicode". 20. Che cosa è il"Resource Description Framework" (RDF) proposto dal W3C? 21. Nell'ambito dello sviluppo software, cosa si intende per "modelli a processo incrementale"? Descrivere, in particolare, il modello RAD. 22. In cosa consiste il deployment di un software? Quali sono i principi chiave da seguire quando lo si esegue? 23. Elencare e descrivere brevemente i principi o concetti fondamentali della progettazione del software. 24. Nell'ambito delle strategie di testing del software fornire una breve descrizione dell' "integration testing". 25. Dopo aver presentato i fondamenti del testing del software, fornire una breve descrizione del testing "black-box" e "white box". 26. Cosa si intende con processo di sviluppo software "agile"? Quali sono gli elementi chiave? 27. Esplicitare e dare una breve descrizione delle "quattro P" su cui si fonda la gestione di un progetto. 28. Quale è la differenza tra metrica di processo e metrica di progetto? 29. Dare una breve descrizione della "Earned Value Analysis" (EVA)? 30. Introdurre brevemente il metodo di project management "PRINCE2". Il Sistema Informativo per l'Amministrazione del Personale (SIAP) è un sistema integrato rivolto alla gestione giuridico-amministrativa del personale, realizzato dal Ministero dell'Economia e delle Finanze con lo scopo di automatizzare i processi interni di gestione del personale e di fornire uno strumento di supporto a tutte le strutture dell'Amministrazione coinvolte nella gestione del personale. L'implementazione della funzione RilevamentoPresenze consente di rilevare la presenza dei dipendenti del MEF in tutte le sedi distribuite sul territorio regionale, consentendo loro di registrare l'entrata e l'uscita mediante uno qualsiasi degli appositi sensori del sistema. TI sensore dovrà rilevare la data e l'ora dell 'evento e il nome del dipendente interessato. Le informazioni relative agli eventi generati dai dipendenti saranno raccolte dal sistema e raggruppate in un rapporto periodico (mese, anno). TI sistema prevede la visualizzazione degli eventi più recenti su richiesta esplicita del dipendente. Gli eventi eccezionali (malattia, ferie, permessi) segnalati dai dipendenti sono registrati da un dipendente della sede centrale, responsabile del rilevamento presenze, mediante un 'apposita interfaccia utente. Prima di inviare i rapporti periodici al sistema stipendi, il responsabile del rilevamento presenze li normalizza, rimuovendo eventuali incongruenze (doppie entrate, doppie uscite) anche sulla base delle dichiarazioni presentate dai dipendenti. Può accadere, infatti, che un dipendente registri erroneamente un evento (un'entrata al posto di un'uscita, ad esempio) o che si dimentichi di registrarlo. Tutte le informazioni relative ai dipendenti, al loro profilo (orari di entrata e di uscita, intervalli per il pranzo, compensazioni e autorizzazione allo svolgimento delle ore straordinarie) sono gestite dal sistema stipendi e inviate al sistema per il rilevamento delle presenze che le utilizza in sola lettura. 1-4 Quesito 1 Dare un diagramma delle classi, considerando come classi o attributi tutti e soli i termini che nell'enunciato compaiono in grassetto. Quesito 2 E' stato individuato il caso d'uso Registrazione con la seguente breve descrizione: Il dipendente segnala la propria entrata o uscita al sistema. Domanda Dare la narrativa del caso d'uso Registrazione Quesito 3 Si sono individuati i seguenti caso d'uso: ReglSet.razIoneE ventiEcceZlonalOI Breve descrizione Attori principali Attori secondari Il responsabile immette nel sistema le informazioni relative a eventi eccezionali (malattia, ferie, permessi, ecc.) per ciascun dipendente interessato Responsabile Nessuno Normalizzazione Breve descrizione Attori principali Attori secondari Il responsabile, basandosi sulle dichiarazioni dei dipendenti, modifica le informazioni contenute nel rapporto, per nrnuovere eventuali incongruenze (doppie entrate o doppie uscite) Responsabile Nessuno In particolare, il caso d'uso Normalizzazione ha la seguente sequenza principale degli eventi: Normalizzazione Sequenza principale degli eventi 1. Per ogni dipendente: 1.1. per ogni doppia entrata o uscita: 1.1.1. il sistema la presenta al responsabile 1.12. se il responsabile ha informazioni al riguardo comunica l'azione correttiva al sistema 1.1.3. altrimenti il responsabile segnala al sistema di salvare l'incongruenza in una lista ~ ~ L\7 ~ 2-4 1 'daRisolvere ' 1.2. se la lista 'daRisolvere ' non è vuota il sistema genera una lettera di richiesta di chiarimenti al dipendente. Domanda Dare un diagramma di sequenza che realizzi il caso Normalizzazione. Quesito 4 La vista comportamentale, a componenti e connettori (C&C), dell'architettura del sistema è dato dal seguente diagramma, dove mancano i tipi dei connettori. «component~~ D8Eventi [) «component»» [I RegistratorePresenze «component~~ «component»> GesioreSensore ~ ~ LoglcaPresenze «componen!» GestoreGUI I componenti hanno le seguenti responsabilità: GestoreSensore ReJlistratorePresenze DBEventi LogicaPresenze GestoreGui Gestisce un sensore, invia gli eventi rilevati al Ref!istratorePresenze. Interfaccia il GestoreSensore ed il DBEventi. Mantiene gli eventi rilevati dai sensori. Genera il rapporto periodico e lo invia al SistemaStipendi. Per generare il rapporto interroga il DBEventi e interagisce con GestoreGUl Riceve dal SistemaStipendi le informazioni relative ai dipendenti. Permette di visualizzare gli eventi più recenti, di registrare gli eventi eccezionali e di normalizzare i rapporti. Domanda 4.a. Completare il diagramma C&C indicando il tipo dei connettori, ove siano individuabili degli stili architettonici. 3-4 A 4.b Per la realizzazione del sistema sono state proposte due soluzioni diverse. Entrambe prevedono l'uso di un server centrale e di un PC per il responsabile, presso la sede centrale, connessi in rete locale. Le soluzioni differiscono per il tipo di connessione dei sensori. La prima soluzione prevede un concentratore per ogni filiale ed una connessione punto a punto tra ogni sensore e il concentratore, a sua volta connesso in rete geografica con iI server centrale. La seconda prevede invece un collegamento in rete geografica tra ogni sensore e il server centrale, senza concentratori. Dare i diagrammi di dislocazione (deployment diagram) dei componenti descritti alla domanda precedente, per ciascuna delle strutture hardware. Si assuma che gli artefatti abbiano lo stesso nome dei componenti che manifestano, e che siano tutti di tipo jar. Quesito 5 Si consideri la seguente classe J ava: public class PuntoNelTempo private int m; Il minuto private int h; Il ora public PuntoNelTempo(int ora, int minuto) h = Math.abs(ora) % 24; % 60; m = Math.abs(minuto) public int intervallo (PuntoNelTempo p) PuntoNelTempo pl, p2; if (this.h > p.h) { pl = p; p2 = this; else if (this.h < p.h) pl = this; p2 = p; else if (this.m >= p.m) pl p; p2 = this; else pl this; p2 = p; { int int_h = p2.h - pl.h; int int_m = p2.m - pl.m; if (int_m >= O) return int h * 60 + int_m; else { return (int_h - 1) * 60 + (60 + int_m); Domanda Si disegni il grafo di flusso del metodo intervallo. Si fornisca un insieme minimo di valori di input per i casi di prova che garantiscano la copertura dei cammini del metodo intervallo. 4-4 2 Per far fronte alla agguerrita concorrenza delle compagnie low cost, l' ALITALIA vuole rendere più aggressiva la sua campagna di fidelizzazione (Mille Miglia), proponendo ai suoi clienti l'iscrizione al programma di fedeltà che consente di ricevere in omaggio biglietti aerei o soggiorni in varie località. Iscrivendosi al programma da semplice cliente si può diventare un associato della compagnia aerea, guadagnando immediatamente un bonus di 5.000 miglia utili. Ogni volta che un associato vola con la compagnia aerea, le .miglia accumulabili del volo sono sommate alle miglia utili, permettendo così di raggiungere le miglia necessarie per richiedere uno dei premi. La richiesta premi deve essere effettuata mediante il portale dedicato agli associati; dal portale è sufficiente scegliere il premio e stampare la ricevuta1 • Gli associati che accumulano almeno 15.000 miglia (miglia accumulate) sono promossi dal livello standard al livello argento, usufruendo di particolari agevolazioni al momento dell 'imbarco. Se invece accumulano almeno 100.000 miglia entrano a far parte degli associati del livello oro2• note Soggetto a disponibilità di miglia utili nella situazione dell 'associato e di disponibilità del premio scelto. I premi riscossi danno luogo a una diminuzione immediata delle miglia utili. La situazione è aggiornata il 31 dicembre, mantenendo solo le miglia dei voli effettuati negli ultimi 5 anni. 1 Tutte le condizioni si riferiscono esclusivamente alle miglia accumulate in un anno. Il passaggio da un livello alraltro è effettuato il 31 dicembre. La permanenza nel livello da un anno all'altro è soggetta al rispetto degli stessi requisiti per entrare nel livello. Il bonus iniziale non concorre al raggiungimento delle miglia richieste per cambiare o mantenere un livello. 2 ~ 1-3 Quesito 1 1.a Dare un diagramma delle classi che descriva il dominio, considerando come classi o attributi tutti e soli i termini che, nell'enunciato e nelle note, compaiono in grassetto. l.b Dare un diagramma di attività che descriva il processo di assegnazione di un premio. Quesito 2 L'analisi dei requisiti ha portato al seguente diagramma dei casi d'uso: GestioneAssociati T * Cliente <<System» Imbarco ,, ,, , ,«Include» ,, - Tempo «Include» Il caso AccumuloPunti ha la seguente breve descrizione: Il sistema riceve la lista dei passeggeri di un volo e la esamina, aggiornando di conseguenza la situazione degli associati della compagnia aerea. Domanda Dare la narrativa del caso d'uso AccumulaPunti. Quesito 3 Disegnare un diagramma di sequenza che realizzi il caso d'uso AccumulaPunti, mostrando le interazioni tra il sistema e l'attore coinvolto. 2-3 Ouesito4 L'analisi architettonica ha portato a individuare le seguenti componenti: Componente Responsabilità GestoreClientiLatoServer Realizza la parte server dei casi d'uso iniziati dai Clienti e il passaggio dall'uno all'altro GestoreClientiLatoClient Realizza la parte client dei casi d'uso iniziati dai Clienti DBAssociati Gestisce i dati degli associati del Club GestionePunti Realizza i casi d'uso AccumuloPunti e AggiomamentoAnnuale ed il seguente connettore «custom» Connettore Responsabilità gestioneClienti Permette gli scambi d'informazione tra i gestoriClienti. Domanda Dare una vista comportamentale, a componenti e connettori (C&C), sull'architettura del sistema GestioneAssociati, utilizzando le componenti suddette, il connettore dato ed eventuali connettori standard. Ouesito 5 Si consideri il metodo stimaLivelli, con la seguente specifica: dato un vettore di associati della compagnia aerea, restituisce una tripla formata, rispettivamente, dal numero degli associati che, in base alla loro situazione: migliorano il proprio livello, non lo modificano, lo peggiorano. Si noti che i livelli standard, argento e oro sono codificati rispettivamente con 1, 2 e 3. public Tripla stimaLivelli(Vector <Associato> associati) int inAumento = O; int stabili = O; int inCalo = O; for (Associato m : associati) { Il itera su associati int livello = m.getLivello{) int miglia = m.getMiglia{) ; int differenza; if (miglia > 100000) differenza = 3 - livello; else if (miglia > 15000) differenza = 2 - livello; else differenza = 1 - livello; if (differenza> O) inAumento++; else if (differenza==O) stabili++; else inCalo++; return new Tripla (inAumento, stabili, inCalo) Domanda Definire un insieme di coppie di attributi (livello, miglia) da attribuire agli elementi del vettore associati che permetta di raggiungere una copertura del 100% del codice del metodo stimaLivelli, ~ SA: Cri~ il dei CO~~ 3 _3 ,. La Corte dei Conti ha deciso di avviare per i suoi dipendenti una serie di tirocini formativi al fine di aumentare e potenziare le competenze interne sia in ambito economicollegisiativo sia in ambito informatico. I tirocini prevedono la frequenza di un corso della durata di alcuni mesi, a seconda della complessità degli argomenti trattati, ed un esame finale per la verifica sia della partecipazione dei dipendenti sia dell'utilità dell' offerta formativa. Inoltre i corsi sono tenuti da docenti universitari scelti in base alla competenza in materia. Visto che ogni dipendente è tenuto a seguire un certo numero di corsi nel corso dell' anno solare e a superarne i relativi esami conclusivi, si è deciso di effettuare la registrazione dell'esame. Infine per incentivare i dipendenti alla partecipazione attiva ai tirocini, verrà assegnato dal docente un voto come esito dell' esame finale. Il processo di dematerializzazione dei documenti cartacei e di innovazione delle procedure amministrative della Corte dei Conti prevede l'adozione di un sistema di registrazione degli esami basato sull utilizzo dei telefoni cellulari da parte dei docenti. Per ogni corso, caratterizzato da un codice, è nominata una commissione, formata dai docenti che possono svolgere il ruolo di esaminatore. Tra di essi, è designato il presidente di commissione. Il sistema, denominato CdcEx, prevede che i docenti abilitati all'uso di CdcEx facenti parte della commissione, utilizzino il cellulare per verbalizzare gli esami, mediante l'invio di un SMS al numero telefonico del servizio. Come misura di sicurezza e autenticazione, i docenti si abilitano al servizio registrando (una volta sola) su CdcEx il numero del loro telefono cellulare. Ogni docente ha un indirizzo mail. Giornalmente, CdcEx registra gli esami della giornata nel sistema D2 e invia agli esaminatori di ogni corso una mail contenente un'indicazione degli esami del loro corso registrati in giornata. In seguito alla ricezione della mail, il presidente della commissione provvede a rispondere per confermare. CdcEx attende 60 giorni l'invio della mail di conferma. Gli esami confermati sono definitivamente archiviati nel sistema D2, quelli non confermati sono cancellati dal sistema D2 e devono essere registrati manualmente dal presidente della commissione, secondo una procedura cartacea. Utilizzando l'elenco dei dipendenti iscritti, organizzato in sottoelenchi per ogni giornata di esami, il docente procede a effettuare l'esame che può avere un esito positivo (voto maggiore o uguale a 6 decimi) o negativo. Solo gli esami con esito positivo sono registrati mediante l'invio di un SMS. 1-4 3 Quesito 1 Dare un diagramma delle classi, considerando come classi o attributi tutti e soli nell'enunciato compaiono in grassetto. termini che Quesito 2 L'analisi dei requisiti ha portato al seguente diagramma dei casi d'uso: CdcEx Tempo Sistemista «sistema» MailServer «sistema» D2 DocenteAbilitato con le seguenti narrative incomplete: Configurazione: Configurazione iniziale del servizio. Abilitazione: Un docente richiede l'abilitazione all'uso del servizio. Verbalizzazione: Permette di verbalizzare un esame usando il telefono cellulare. ChiusuraSerale: La sera vengono registrati nel sistema D2 gli esami verbalizzati in giornata e viene mandata una e-mail ai docenti. Archiviazione: La sera si archiviano nel sistema D2 gli esami verbalizzati 60 giorni prima e confermati; si cancellano dal sistema D2 quelli non confermati. Domanda Dare la narrativa di Verbalizzazione, ChiusuraSerale e Archiviazione. ~ ~ 0' 2-4 Quesito 3 Si supponga di disporre di almeno tre tipi di nodi hardware: 1. ServerCdcEx che funge da server per l'applicazione CdcEx (un solo nodo di questo tipo); 2. ServerMai/ dove è dislocato il Mai/Server (un solo nodo di questo tipo); 3. PC usato dai docenti quando vogliono abilitarsi o leggere/scrivere messaggi di posta elettronica (un numero imprecisato di nodi di questo tipo). Il canale tra il nodo ServerCdcEx e i nodi PC supporta HTTP. I canali con il Server Mail supportano SMTP. La progettazione architettonica ha individuato le seguenti componenti, alcune da realizzare, altre che già esistono. Si noti che il MailServer, anche se di fatto esterno al sistema CdcEx - al pari del sistema D2 e del sistema di ricezione SMS dell'operatore telefonico utilizzato - viene esplicitamente descritto nell'architettura per completezza. Si noti anche che l'utente interagisce con la componente Abilitazione attraverso un browser. Componente Disponibile Responsabilità DBdocentiAbilitati Mantiene i nomi e i numeri di telefono dei docenti abilitati al servizio. DBesami Mantiene i dati degli esami verbalizzati e di quelli registrati. Abilitazione MailServer X Permette ai docenti di abilitarsi. Realizza i casi d'uso Verbalizzazione, ChiusuraSerale e Archiviazione. Server di posta. MailClientAPI X Client di posta con interfaccia verso altra componente. Mail ClientInterattivo X CHent di posta con interfaccia utente. GestioneEsami Si assuma che ogni componente si manifesti in un artefatto omonimo, di tipo jar. Domanda 3.a Fornire una vista comportamentale, a componenti e connettori (C&C) 3.b Fornire una vista logica di dislocazione (deployment diagram) 3-4 3 Quesito 4 Fornire un diagramma di sequenza che illustri come le componenti, individuate nell'ambito del precedente quesito, interagiscono per realizzare il caso d'uso ChiusuraSerale. Si assuma che le informazioni sulle commissioni d'esame e sugli indirizzi mail dei docenti siano mantenute nel D2, cui GestioneEsami accede direttamente. Quesito 5 Una delle funzioni ausiliarie del sistema CdcEx è di fornire informazioni statistiche sull' andamento degli esami. In particolare, il sistema deve fornire infonnazioni sul numero d'esami mediamente sostenuti ogni giorno, per ogni corso. A tale scopo, si prevede l'utilizzo di una funzione numeroMedioEsami che, dato un vettore di numeri d'esame, ne restituisce la media, arrotondata all'intero superiore. Per verificare la funzione si prevede un test a scatola nera. Domanda Fornire cinque casi di prova per la funzione numeroMedioEsami. 4-4