Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione Corso di Laurea in Ingegneria Informatica ESEMPI DI TEMI D’ESAME 1 TEMA 1 ......................................................................................................................... 2 2 TEMA 2 ......................................................................................................................... 3 3 TEMA 3 ......................................................................................................................... 4 4 TEMA 4 ......................................................................................................................... 5 5 TEMA 5 ......................................................................................................................... 6 6 TEMA 6 ......................................................................................................................... 7 7 TEMA 7 ......................................................................................................................... 8 8 TEMA 8 ......................................................................................................................... 8 9 TEMA 9 ....................................................................................................................... 10 10 TEMA 10 ..................................................................................................................... 11 11 TEMA 11 ..................................................................................................................... 12 12 TEMA 12 ..................................................................................................................... 13 13 TEMA 13 ..................................................................................................................... 14 14 TEMA 14 ..................................................................................................................... 14 15 TEMA 15 ..................................................................................................................... 16 16 TEMA 16 ..................................................................................................................... 17 Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione Corso di Laurea in Ingegneria Informatica 1 Tema 1 PARTE A T1 - Modellazione con le Reti di Petri Modellare con le Reti di Petri interpretate il seguente processo: Il processo di produzione di un prodotto software è costituito dalle seguenti fasi sequenziali: Analisi dei requisiti e specifica, Analisi delle alternative “make or buy”, Progettazione architetturale, Sviluppo e Integrazione, Consegna. La fase di sviluppo e integrazione è costituita da tre fasi concorrenti: acquisizione e adattamento prodotti, Sviluppo di codice ad hoc, adattamento delle applicazioni esistenti. Le tre fasi terminano con un’attività di integrazione complessiva. Ogni fase rilascia uno specifico documento. La disponibilità del documento di analisi dei requisiti e specifica attiva la fase di analisi delle alternative e, concorrentemente, una fase di preparazione del piano di collaudo. La disponibilità del piano di collaudo e del prodotto software permette l’esecuzione del collaudo ed il rilascio del rapporto di collaudo. T2 - Processi di sviluppo Spiegate le problematiche ed il contenuto del processo a spirale. T3 - Analisi dei requisiti Definite un indice tipo di documento di analisi dei requisiti ed illustratene brevemente i contenuti. T4 - Reti di Petri ed automi a stati finiti Illustrate le differenze (dal punto di vista dell’utilizzo come linguaggi di modellazione di prodotti software) tra una Rete di Petri ed un Automa a Stati Finiti. T5 – Studio di fattibilità Spiegate il ruolo ed il contenuto di uno studio di fattibilità. T6 – Validazione di un documento di analisi dei requisiti Cosa significa validare un documento di analisi dei requisiti ?. Quali tecniche si possono utilizzare? PARTE B T1 - Progettazione architetturale Progettare l'architettura di sistema e l'architettura software della seguente applicazione: Sistema di gestione di una rete di punti vendita Scopo dell'applicazione è la raccolta dei consuntivi giornalieri di vendita da una rete di punti vendita. Il sistema deve soddisfare le seguenti specifiche: Ogni punto vendita è dotato di un server connesso alle proprie casse. Il server acquisisce su una banca dati locale ogni transazione di vendita che avviene presso le casse. Giornalmente, dopo la chiusura del punto vendita, il server si connette al sistema centrale di gestione e trasmette il consuntivo di vendita della giornata. Il sistema centrale, installato nel capoluogo di regione, gestisce tutti i punti vendita regionali. Il sistema centrale raccoglie tutti i dati in una banca dati centrale e fornisce le seguenti funzioni: rapporto di vendita generato con periodicità settimanale; elaborazione mensile dei dati ed invio del file risultante al sistema di gestione della contabilità; funzioni di amministrazione e gestione della banca dati. T2 – Requisiti non funzionali e progettazione Relativamente al sistema sopra progettato definite un insieme di possibili chiarimenti che richiedereste al fine di identificare i requisiti di Efficienza e di Affidabilità. T3 – Caso di test Un piano di test è costituito da più casi di test. Spiegate la struttura tipica di un caso di test T4 – Stima di risorse in un progetto software Presentate e discutete alcune tecniche di stima di risorse in un progetto software T5 – Sistema Qualità Illustrate in modo sintetico il contenuto ed il ruolo di un sistema qualità in un’azienda che sviluppa software. T6 – Gestione delle modifiche Descrivete i problemi che devono essere trattati in un processo di gestione delle modifiche di prodotti software 2 Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione Corso di Laurea in Ingegneria Informatica 2 Tema 2 PARTEA T1 - Modellazione con le Reti di Petri Modellare con le Reti di Petri interpretate il seguente processo di gestione delle segnalazioni di malfunzionamento di un prodotto software: Il personale del servizio clienti riceve le segnalazioni da parte dei clienti via posta elettronica o telefono. Il personale analizza e seleziona le segnalazioni. Quelle che non riguardano malfunzionamenti software sono inserite in un data base di assistenza clienti, mentre le segnalazioni relative a tutti i malfunzionamenti software sono classificate per gravità e inserite nel data base di gestione malfunzionamenti software. Inoltre, ogni volta che una segnalazione di malfunzionamento software è classificata come “bloccante”, il personale attiva il responsabile di prodotto. Il responsabile di prodotto contatta il cliente ed interagisce per risolvere il problema. Se necessario avvia il processo di modifica che eseguirà il check out del componente da modificare dal data base del software, eseguirà la modifica e terminerà eseguendo un check in, un aggiornamento del data base di gestione malfunzionamenti software ed un’emissione di una nuova versione per il cliente. Periodicamente il responsabile di prodotto analizza il contenuto del data base di gestione malfunzionamenti software, estrae un lotto di segnalazioni e le assegna ad un gruppo di sviluppo. Il gruppo di sviluppo esegue il processo di modifica (check out dei componenti da modificare, esecuzione della modifica, check in, aggiornamento del data base di gestione malfunzionamenti software). T2 – Modellazione dei processi Spiegate perché è utile modellare i processi di un’organizzazione di sviluppo software T3 - Manutenibilità e scenari Illustrate il requisito non funzionale “Manutenibilità” e spiegate come il concetto di scenario possa essere utilizzato nella specifica della manutenibilità di un prodotto software. T4 - Requisiti non funzionali Data la seguente specifica: Scopo dell'applicazione è l’acquisizione di dati relativi alla qualità dell'aria. Il sistema è costituito da un server e due postazioni di lavoro ed è connesso via rete locale ad un sistema di acquisizione dati che raccoglie dati di inquinamento via radio da un insieme di centraline installate sul territorio. I dati acquisiti periodicamente sono memorizzati in banca dati ed elaborati attraverso un modello matematico che produce, se il caso, le opportune segnalazioni di allarme. Indicate quali requisiti non funzionali relativi all’”efficienza” inserireste nel documento di specifica, chiedendo gli opportuni chiarimenti al cliente. T5 – Modularizzazione e Information Hiding Illustrate i concetti di Modularizzazione e Information Hiding T6 – Viste architetturali di implementazione Presentate almeno due possibili viste architetturali di implementazione PARTE B T1 - Progettazione architetturale Progettare l'architettura di sistema e l'architettura software della seguente applicazione: Sistema di scambio elettronico di documenti tra una azienda cliente ed i suoi fornitori. L’applicazione, da realizzare in ambiente Web, permette all’azienda cliente di raccogliere da ogni fornitore qualificato i “Listini articoli”. Ogni listino articoli è costituito da un elenco di prodotti. Ad ogni prodotto è associato un insieme di caratteristiche tecniche ed un prezzo unitario. Ogni fornitore si può collegare al sito web dell’azienda cliente e utilizzare le seguenti funzioni: creazione di un nuovo listino; cancellazione di un listino esistente; caricamento/modifica di un listino esistente; creazione e caricamento, attraverso l’invio di un foglio excel, di un listino nuovo. Tutti i listini saranno memorizzati in una banca dati. Nell’azienda cliente, ogni responsabile di un insieme di fornitori potrà accedere alla banca dati attraverso la intranet aziendale, leggere i listini di competenza e definirne lo stato di approvazione o non approvazione. Nel caso di non approvazione, l’applicazione invierà un mail di avviso al relativo fornitore. Con periodicità giornaliera, una procedura, sviluppata sul sistema gestionale AS400, raccoglierà dalla banca dati i listini nuovi (o che hanno subito variazioni) e sono stati approvati e aggiornerà la banca dati gestionale preesistente su AS400. T2 – Stili di controllo Spiegate i seguenti stili di controllo basati su eventi: 1) Selective Broadcast, 2) Interrupt-driven T3 – Scenari e test Spiegate l’utilizzo dell’approccio per scenari in un piano di collaudo ed accettazione di prodotto T4 – Piano temporale di progetto Descrivete che cosa è un piano temporale di progetto ed illustrate brevemente le tecniche che si possono utilizzare per definire un piano temporale T5 – Diagrammi di sequenza e diagrammi di stato in UML Spiegate il significato, l’utilizzo e la differenza tra i diagrammi di sequenza e diagrammi di stato in UML T6 – Gestione della conoscenza Illustrate la differenza tra “casi di progettazione” e “pattern di progettazione” in un processo di gestione della conoscenza relativa alla progettazione di software. 3 Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione Corso di Laurea in Ingegneria Informatica 3 Tema 3 PARTE A T1 - Modellazione con le Reti di Petri Modellare con le Reti di Petri interpretate il seguente flusso informativo tra uffici: L’organizzazione XX è composta da un ufficio provinciale e tre uffici periferici. Ogni ufficio periferico gestisce localmente le richieste degli utenti fornendo la relativa risposta. Nel caso una richiesta richieda l’autorizzazione del responsabile provinciale, la richiesta è inoltrata all’ufficio provinciale. Se la richiesta è autorizzata. L’ufficio periferico riceve il documento di richiesta firmato dal responsabile. In caso contrario l’ufficio periferico riceve un mail che spiega le ragioni della non autorizzazione. L’ufficio periferico trasmette di conseguenza l’esito all’utente. Sia gli uffici periferici che l’ufficio provinciale mantengono un archivio delle comunicazioni ricevute e inviate. Periodicamente ogni ufficio periferico trasmette i dati del proprio archivio all’ufficio provinciale, T2 – Processi Spiegate la relazione tra fase di specifica dei requisiti e fase di progettazione, in particolare relativamente allo sviluppo di prodotti software di significative dimensioni. T3 - Efficienza Illustrate il requisito non funzionale “Efficienza” e indicate quali requisiti non funzionali relativi all’”efficienza” inserireste nel documento di specifica, chiedendo gli opportuni chiarimenti al cliente, nel caso di sviluppo di un prodotto software di automazione del processo descritto in T1. T4 – Documento di specifica Presentate i contenuti tipici di un documento di analisi dei requisiti e specifica. T5 – Tipo di dati astratto Illustrate il concetto di tipo di dati astratto T6 – Viste architetturali Presentate il concetto di viste architetturali e spiegatene l’utilità PARTE B T1 - Progettazione architetturale Progettare l'architettura software della seguente applicazione: Gestione della scheda cliente per un sistema di Customer Relationship Management L’applicazione, da realizzare in ambiente Web, ha lo scopo di integrare i dati provenienti da un insieme di banche dati preesistenti in ambienti tecnologici diversi, al fine di fornire alla rete di vendita uno stato aggiornato di ogni cliente (scheda cliente) ed un insieme di applicazioni di supporto. L’architettura progettata deve essere basata sullo stile architetturale a layer. Le funzioni da rendere disponibili sono: Raccolta dati dal sistema gestionale (Anagrafica cliente, ordini emessi, clausole contrattuali, stato dei pagamenti,...) Raccolta dati da una banca dati che contiene i rapporti di visita dei venditori presso il cliente. Raccolta dati da una banca dati che contiene l’analisi di mercato e dei potenziali concorrenti. Integrazione dei dati Applicazione di generazione della “scheda cliente” che contiene l’insieme delle informazioni utili per lo specifico cliente. Applicazione di analisi degli ordini emessi dalla popolazione dei clienti (importo per tipo cliente, area geografica,...). Applicazione di generazione di report sintetici per la presentazione dello stato della popolazione dei clienti. T2 – Stili di controllo Presentate alcuni stili di controllo. T3 –UML Presentate un diagramma UML per ogni vista architetturale. T4 –Test Illustrate gli elementi che compongono un caso di test. T5 – Verifiche di progetto Presentate possibili tecniche di verifica di un progetto software T6 – WBS Scrivete una possibile WBS per il progetto di cui al punto T1 4 Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione Corso di Laurea in Ingegneria Informatica 4 Tema 4 PARTE A T1 - Modellazione con le Reti di Petri Scrivere, mediante Reti di Petri interpretate i seguenti tre modelli di processi di sviluppo: Processo di sviluppo software lineare; Processo di sviluppo software per integrazione; Processo di sviluppo di sistema Discutere brevemente caratteristiche ed applicabilità dei tre processi T2 – Specifiche funzionali e non funzionali. Esempio di specifica Spiegate la differenza tra specifiche funzionali e non funzionali. Dovete specificare un sistema di raccolta dati da una rete di sensori e memorizzazione dei dati in una banca dati. Quali requisiti non funzionali relativi all’efficienza ritenete di dover definire? Quali informazioni vi servono? T3 - Analisi dei requisiti: obiettivi e contesto Spiegate l’utilità della definizione degli obiettivi e dell’analisi del contesto in un documento di analisi dei requisiti per un prodotto software. T4 – Valutazione e miglioramento dei processi Spiegare scopo e caratteristiche delle attività di valutazione e miglioramento dei processi e ruolo dei modelli di maturità. T5 – Viste architetturali Presentare il concetto di vista architetturale e le principali viste utilizzate nella progettazione. T6 – UML e vista dinamica Illustrate una o più tecniche di modellazione utilizzate in UML per la progettazione della vista dinamica di un prodotto software. PARTE B T1 - Progettazione architetturale Progettare l'architettura di sistema e l'architettura software (incluse proposte di scelta delle tecnologie software) della seguente applicazione: Sistema di gestione della conoscenza progettuale Una società di progettazione mantiene un sistema documentale distribuito di gestione dei propri progetti. Inoltre mantiene un data base centrale di casi esemplari di progettazione a disposizione dei progettisti. La società è costituita da cinque sedi di cui una centrale. Ogni ufficio mantiene un proprio data base di progetti (ogni progetto è costituito da un insieme di documenti progettuali) ed ha a disposizione le seguenti funzioni: -Gestione ed amministrazione della base dati -Navigazione della stessa in ambiente Intranet Periodicamente un responsabile di ogni ufficio seleziona i progetti più significativi e li invia ad un server ospitato presso la sede centrale attraverso una funzione che supporta l’utente nella definizione di un insieme di metadati utili per la classificazione dei progetti. I documenti ricevuti sono caricati automaticamente in un data base temporaneo. Il servizio centrale esamina periodicamente i documenti ricevuti, li seleziona, li classifica e li inserisce nella base di conoscenza progettuale. Il servizio centrale ha a disposizione strumenti di gestione ed amministrazione della base dati. Una funzione automatica esplora mensilmente il data base, estrae una descrizione dei nuovi contenuti ed invia l’elenco via email agli uffici di interesse delle sedi. Tutte le sedi hanno a disposizione un’applicazione in ambiente Intranet per la navigazione nella base di conoscenza progettuale T2 – Checklists e verifiche di progetto Illustrare l’utilizzo delle checklists nelle verifiche di progetti software T3 – Modello di qualità ISO 9126 Presentare il modello di qualità ISO 9126 T4 – Strategia, piano e caso di test Presentare significato e tipi di contenuti di una strategia di test, un piano di test ed un caso di test T5 – WBS Scrivete una possibile WBS per il sistema progettato al punto T1 T6 – Gestione delle segnalazioni di errore Descrivete problemi e tipiche soluzioni del processo di gestione delle segnalazioni di errore di prodotti software 5 Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione Corso di Laurea in Ingegneria Informatica 5 Tema 5 PARTE A T1 - Modellazione con le Reti di Petri Modellare con le Reti di Petri interpretate il seguente processo: Il processo di produzione di un sistema ICT è costituito dalle seguenti fasi iniziali: Analisi dei requisiti e specifica di sistema, Progettazione architetturale di sistema, Analisi dei prodotti software di mercato.Successivamente sono attivati i seguenti processi concorrenti: Approvvigionamento dell’hardware, Approvvigionamento dei prodotti software di mercato, Sviluppo di software ad hoc. Lo sviluppo di software ad hoc segue un processo lineare. Al termine dei tre processi concorrenti sono realizzate le fasi di Integrazione, Collaudo e Consegna. T2 – Specifiche non funzionali. Analisi di adeguatezza Commentate l’adeguatezza delle seguenti specifiche non funzionali relative ad un sistema di acquisizione dati: − In numero massimo di sensori da acquisire è 200. − L’applicazione deve supportare un flusso adeguato di dati − L’interfaccia utente deve essere di facile utilizzo Nel caso di specifiche non adeguate identificate possibili richieste di chiarimento da porre al committente. T3 - Prototipi Spiegate l’utilizzo di prototipi nella fase di analisi dei requisiti T4 – Modelli di maturità Spiegate scopo e caratteristiche dei modelli di maturità. T5 - Studio di fattibilità Spiegate le finalità ed il contenuto di uno studio di fattibilità e la relazione con le fasi di sviluppo di un prodotto software. T6 – Utilizzo di scenari / casi d’uso Illustrate le situazioni in cui è conveniente utilizzare la tecnica di analisi dei requisiti basata su scenari / casi d’uso. Discutete anche eventuali controindicazioni. PARTE B T1 - Progettazione architetturale Progettate l'architettura di sistema e l'architettura software della seguente applicazione: Sistema di gestione della sicurezza di strutture di ingegneria civile Scopo dell'applicazione è il monitoraggio e la gestione delle condizioni di sicurezza di una struttura di ingegneria civile (ad esempio una diga o un ponte). La struttura è strumentata con una serie di sensori. Sono richieste le seguenti funzionalità: − Acquisizione periodica dei dati − Interpretazione e generazione di allarmi − Inserimento dei dati acquisiti in una banca dati − Interfaccia persona macchina di presentazione allarmi e navigazione nei dati raccolti − Gestione dati della banca dati − Generazione periodica automatica di rapporti di sintesi − Spedizione periodica di dati di sintesi all’autorità responsabile via Internet T2 – Architettura e viste architetturali Spiegate i concetti di architettura software e di viste architetturali T3 – Tipi di dato astratto Spiegate il concetto di tipo di dato astratto T4 – Strategia, piano e caso di test Spiegate la funzione e la struttura di una strategia di test, un piano di test ed un caso di test. T5 – Oracoli In un caso di test, è necessario che un oracolo restituisca una risposta vero/falso? Se la risposta restituita non è vero/falso come si può operare per decidere la corretta esecuzione del caso di test? T6 – WBS Scrivete una possibile WBS per il sistema progettato al punto T1 6 Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione Corso di Laurea in Ingegneria Informatica 6 Tema 6 PARTE A T1 - Modellazione con le Reti di Petri Modellare con le Reti di Petri interpretate il seguente processo di preparazione ed emissione di un documento: Il documento è preparato ed emesso da tre uffici. L’ufficio A attiva il processo avviando due attività concorrenti: preparazione del documento da parte dell’ufficio B e preparazione degli allegati (da parte dell’ufficio A stesso). L’ufficio B prepara il documento, lo verifica, lo emette per approvazione all’ufficio A L’ufficio A esamina per approvazione il documento; se non è approvato, lo restituisce con commenti all’ufficio B che dovrà modificarlo e risottometterlo per approvazione all’ufficio A; se approvato, lo integra con il documento di allegati che è stato prodotto e lo trasmette per l’emissione all’ufficio C che lo emette. T2 – Tecniche di analisi dei requisiti Presentate brevemente e confrontate le seguenti tecniche di analisi dei requisiti: - Stesure di un elenco strutturato di requisiti funzionali e non funzionali - Scenari (casi d’uso) - Modelli T3 – Esempio di requisiti non funzionali-efficienza Data un’applicazione fondata su una base di dati, presentate i requisiti non funzionali relativi all’efficienza che vorreste trattare nel relativo documento di analisi dei requisiti T4 – Qualità di processo e prodotto Spiegate la differenza tra qualità di processo e prodotto nello sviluppo software T5 – Analisi dei requisiti e progettazione Spiegate le relazione possibili tra le fasi di analisi dei requisiti e progettazione nello sviluppo di un prodotto software T6 – Reti di Petri e UML Confrontate le tecniche di modellazione del comportamento (vista dinamica) di Reti di Petri (interpretate) e UML PARTE B T1 - Progettazione architetturale Progettate l'architettura di sistema e l'architettura software della seguente applicazione: Sistema di acquisizione dati da un processo industriale continuo L’applicazione acquisisce in continuo un insieme di dati da un processo industriale, li elabora e estrae una rappresentazione grafica ed uno stato di corretto funzionamento / allarme che presenta su un monitor. In caso di allarme grave, è attivata una segnalazione visiva e acustica. L’elaborazione dei dati avviene sulla base di un insieme di parametri predefiniti. Il flusso di dati acquisiti dovrà essere quantificato ma è comunque elevato e soggetto a variabilità (in particolari condizioni l’acquisizione dovrà essere più frequente per un periodo di tempo definito). I dati acquisiti sono inoltre memorizzati in una banca dati che dispone delle seguenti funzioni: - Gestione (modifica, cancellazione, visualizzazione…) - Elaborazione dei dati acquisiti tramite un modello matematico che estrae, se il caso, nuovi parametri per l’elaborazione in linea durante l’acquisizione. - Estrazione di report. T2 – Architettura e processi di integrazione Presentate il concetto di architettura software ed illustratene il ruolo in un contesto di processo di sviluppo software che preveda non solo la codifica di nuovi componenti, ma anche l’integrazione di componenti preesistenti e acquisiti dal mercato. T3 – Processo di gestione dei malfunzionamenti Illustrate un tipico processo di gestione delle segnalazioni di malfunzionamenti in una organizzazione di sviluppo software T4 –Definizione di una strategia di test Un prodotto software è costituito da cento funzioni. Dieci di esse sono particolarmente complesse. In particolare una è combinatorialmente complessa e critica per i danni economici che possono derivare da un malfunzionamento. Presentate una bozza di possibile strategia di test di tipo funzionale. T5 – Modelli di qualità di prodotto software Presentate il concetto di modello di qualità software, i suoi possibili utilizzi e lo specifico modello della norma ISO9126 T6 – WBS e piano dei tempi / costi Spiegare il ruolo della WBS nella stesura di un piano di tempi e costi per un progetto software. 7 Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione Corso di Laurea in Ingegneria Informatica 7 Tema 7 PARTE A T1 – Analisi dei requisiti Dati i requisiti utente: Scopo dell'applicazione è la gestione di una rete di distributori da parte di un produttore. Ogni distributore possiede un proprio sistema di gestione su cui può essere installata un’applicazione d’interconnessione con il sistema centrale del produttore. Sulla rete locale del produttore è già presente un server su cui è installato il database aziendale ed il sistema informativo gestionale. Un nuovo server gestirà tutte le funzionalità di integrazione della rete di distributori, comunicando con il sistema informativo gestionale esistente. Il nuovo software applicativo permetterà di gestire l’interconnessione con il sistema del distributore ed accedere alla banca dati locale del distributore per raccogliere lo stato delle vendite e gli ordini. Il server centrale del produttore gestirà la connessione giornaliera con i sistemi dei distributori (via Internet) e l’acquisizione delle vendite e degli ordinativi della giornata, la verifica dei dati, la preelaborazione ed il caricamento in banca dati centrale. La presenza di dati non corretti relativi alle vendite darà origine alla marcatura del lotto di dati nel data base ed a segnalazione su stampante. La presenza di ordini non corretti (es. incompleti) darà origine alla marcatura dell’ordine nel data base ed a segnalazione su stampante. Ordini e vendite corretti sono inoltre inviati automaticamente al sistema gestionale. Deve essere possibile interrogare e modificare interattivamente i dati della banca dati centrale da utente ed inviare ordini al sistema gestionale su richiesta utente. Deve essere prodotto in automatico un report riassuntivo settimanale. Identificare il contesto ed estrarre un elenco di specifiche funzionali. T2 – Specifiche non funzionali Dato il testo precedente di requisiti utente Ipotizzare possibili specifiche non funzionali di efficienza e manutenibilità da discutere con il committente. T3 – Processi di sviluppo software e COTS Presentare un processo di sviluppo adeguato per un sistema che include componenti applicativi di mercato (COTS) T4 – Modelli di qualità di prodotto Presentare il concetto di modello di qualità di prodotto software T5 – Sistema qualità Presentare in sintesi contenuto e ruolo di un sistema qualità per una software house T6 – Reti di Petri e Automi a Stati Finiti Confrontare le tecniche di modellazione basate su di Reti di Petri e Automi a Stati Finiti PARTE B T1 - Progettazione architetturale Progettate l'architettura di sistema e l'architettura software della seguente applicazione: Sistema di sorveglianza di un insieme di server L’applicazione ha lo scopo di monitorare le operazioni di un insieme di server che gestiscono un sistema informativo. L’applicazione acquisisce periodicamente lo stato di funzionamento di ogni server. Inoltre è acquisita, per ogni server una struttura di dati che descrive il funzionamento delle applicazioni critiche che sono eseguite periodicamente sui server. L’applicazione, sulla base delle informazioni raccolte, esegue una procedura decisionale il cui esito può essere la memorizzazione di una situazione considerata interessante per analisi successive e anche l’invio di un allarme al sistemista. Deve essere messa anche a disposizione una funzione di elaborazione, reporting e rappresentazione grafica basata su criteri di selezione interattivi delle situazioni memorizzate e la possibilità di accedere ai dati elaborati e presentazioni grafiche via Internet. T2 – Viste e architetture Presentate brevemente le tipiche viste architetturali di un progetto software T3 – Verifiche di progetto Presentate il significato ed alcune tecniche di verifiche di progetto T4 –Test di non regressione Spiegare cosa è il test di non regressione T5 – Copertura topologica Presentate alcuni criteri di copertura topologica del test T6 – Gestione della documentazione e configurazione di un prodotto software Presentare brevemente i concetti chiave di gestione della documentazione e configurazione di un prodotto software 8 Tema 8 T1 (6 punti)- Progettazione architetturale 8 Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione Corso di Laurea in Ingegneria Informatica Progettare l'architettura di sistema e software della seguente applicazione: Sistema di promozione delle vendite dei prodotti della società XX presso una catena di supermercati distribuita sul territorio nazionale Presso ogni punto vendita di una catena di supermercati è realizzata una postazione con tre punti di accesso al pubblico, ognuno realizzato con un PC. I clienti che hanno acquistato un prodotto della ditta XX, accedono al punto, forniscono un insieme di dati anagrafici ed un codice ricevuto al momento dell’acquisto, e attivano una slot machine sullo schermo. Nel caso di vincita, il sistema stampa un tagliando con il quale il cliente ha diritto ad uno sconto o può ritirare un premio. Ogni postazione è connessa via Internet ad un server che gestisce il gioco. Il server è collocato presso la sede centrale nazionale e può accedere al sistema informativo aziendale. Il sistema mette a disposizione le seguenti funzioni: − Calcolo centralizzato della lista sconti e premi per ogni punto vendita a partire dai dati memorizzati nel data base centrale delle vendite (parte del sistema informativo esistente) − Download della lista in ogni punto vendita − Gestione del gioco presso il punto vendita − Raccolta e centralizzazione periodica dei dati anagrafici e dei dati sugli sconti e premi distribuiti − Caricamento periodico nel data base centrale delle vendite dei risultati della promozione − Produzione di report di analisi dei risultati della promozione e spedizione degli stessi via mail alla società XX − Funzione centrale di monitoraggio del funzionamento delle postazioni e della connessione con le stesse. T2 (4 punti)- Modellazione con le Reti di Petri Modellare con le Reti di Petri interpretate il seguente processo di preparazione ed emissione di un documento di risposta ad una gara (composto da tre parti: elaborato, allegati, documentazione legale). L’ufficio Gare attiva il processo avviando tre attività concorrenti: preparazione dell’elaborato da parte dell’ufficio Tecnico, preparazione degli allegati (da parte dell’ufficio Gare stesso) e preparazione della documentazione legale (da parte dell’ufficio Legale). L’ufficio Tecnico e l’ufficio Legale preparano la propria parte di documento, lo verificano e lo emettono per approvazione all’ufficio Gare. L’ufficio Gare esamina per approvazione ogni parte di documento ricevuta; se non è approvata, la restituisce con commenti all’ufficio emittente che dovrà modificarla e risottometterla per approvazione all’ufficio Gare stesso. Quando tutte le parti sono disponibili e approvate, l’ufficio Gare integra il documento finale e lo trasmette per autorizzazione alla Direzione. T3 - Studio di fattibilità e processo di sviluppo Spiegate gli scopi ed il contenuto di uno studio di fattibilità. Spiegate la differenza tra le attività di realizzazione di uno studio di fattibilità e le fasi del conseguente processo di sviluppo del prodotto software. T4 – Contenuto di un’analisi dei requisiti Presentate un indice di un documento di analisi dei requisiti e descrivete in modo sintetico contenuto e ruolo di ogni capitolo. T5 – Utilizzo degli scenari nella definizione dei requisiti di Manutenibilità Spiegate il requisito non funzionale di “Manutenibilità” e spiegate come il concetto di scenario possa essere utilizzato nella specifica della manutenibilità di un prodotto software. T6 – Processi di progettazione Illustrate i processi di progettazione per decomposizione, composizione e aggiunta e discutetene l’applicabilità. T7 – Stili di controllo Presentate alcuni stili di controllo. T8 –Strategia di test Un prodotto software è costituito da cinquanta funzioni interattive che operano su un data base comune. Alcune di esse sono combinatorialmente complesse e critiche per i danni economici che possono derivare da un malfunzionamento. 1) Presentate una bozza di possibile strategia di test di tipo funzionale (tecniche di test e criteri di copertura). 2) Quale approccio utilizzereste per il test di accettazione presso il cliente? T9 - Test funzionali, strutturali e interazione Spiegate la differenza tra test funzionali e test strutturali e possibili interazioni tra i due tipi di test. T10 – WBS e stima di risorse in un progetto software Discutete la relazione tra la WBS di progetto e la stima delle risorse. Presentate e discutete alcune tecniche di stima di risorse in un progetto software. 9 Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione Corso di Laurea in Ingegneria Informatica 9 Tema 9 T1 (6 punti)- Progettazione architetturale Progettare l'architettura di sistema e software della seguente applicazione: Sistema automatico di gestione dei pedaggi di ingresso in un’area urbana L’applicazione realizza un sistema di pagamento per l’ingresso delle automobili nel centro cittadino. Il sistema è costituito da: − N stazioni di ingresso nel centro ognuna dotata di sufficiente potenza elaborativa; − Uno o più server centrali presso l’ufficio gestione viabilità del comune; − Una rete di comunicazione. Ogni stazione utilizza un sistema telepass per rilevare il passaggio di un veicolo. Un utente acquista e installa un telepass e, via internet, paga un abbonamento per X ingressi. Sempre via internet, l’utente può rinnovare l’abbonamento. Il sistema contabilizza gli ingressi e avvisa via mail l’utente quando l’abbonamento è prossimo alla scadenza. Il sistema inoltre è in grado di identificare gli autoveicoli che entrano senza essere dotati di telepass e di attivare l’invio di una multa. Le funzionalità che devono essere rese disponibili sono: − Acquisizione del passaggio del veicolo − Rilevamento dei dati di un veicolo dotato di telepass − Rilevamento con telecamera del passaggio di un veicolo non dotato di telepass − Contabilizzazione dei passaggi − Acquisto via internet di un telepass e di un abbonamento (la funzione dovrà essere connessa al sistema anagrafico cittadino per le necessarie verifiche) − Rinnovo via internet di un abbonamento − Invio di una mail di avviso di prossima scadenza dell’abbonamento − Connessione con il sistema cittadino di gestione delle multe e trasmissione dei dati per l’emissione di una multa nel caso di passaggio di veicolo non dotato di telepass o di veicolo dotato di telepass con abbonamento scaduto. Saranno inoltre disponibili per il personale dell’ufficio gestione viabilità del comune le seguenti funzioni: − Navigazione, gestione e manutenzione dei dati relativi all’applicazione (telepass venduti, utenti, passaggi di autoveicoli, contabilizzazione,…) − Emissione di report statistici T2 (4 punti)- Modellazione con le Reti di Petri Modellare con le Reti di Petri interpretate il seguente flusso informativo: Il processo di sviluppo di un prodotto è costituito da quattro fasi successive: prima parte sviluppo, seconda parte sviluppo, integrazione, consegna. Al termine della prima e della seconda fase, il responsabile dello sviluppo emette una richiesta di fatturazione per la segreteria. La segreteria, ogni volta che riceve una richiesta di fatturazione, emette una fattura verso il cliente. Quando la segreteria riceve l’informazione di avvenuto pagamento di entrambe le fatture, informa il responsabile dello sviluppo. La consegna del prodotto è vincolata dalla ricezione di entrambi i pagamenti. T3 (2,5 punti)- Processi Presentate un processo di sviluppo per integrazione. Discutetene l’applicabilità T4 (2,5 punti)- Specifiche non funzionali Spiegate la differenza tra specifiche funzionali e non funzionali Identificate quali specifiche non funzionali di Manutenibilità ed Efficienza inserireste nel documento di specifica, chiedendo gli opportuni chiarimenti al cliente, nel caso di sviluppo del sistema descritto in T1 T5 (2,5 punti)- Architettura Presentate i contenuti tipici di un documento di progettazione architetturale di un prodotto software T6 (2,5 punti)- Stili architetturali Presentate il concetto di stile architetturale. Spiegate lo stile architetturale pipes and filters. Illustratene applicabilità e limiti T7 (2,5 punti)- UML e architetture Spiegate la relazione tra diagrammi di deployment in UML e progettazione architetturale T8 (2,5 punti)- Collaudo e scenari di test Scrivete, con riferimento al sistema in T1, tre casi di test del piano di collaudo, utilizzando la tecnica di test basata su scenari. T9 (2,5 punti)- Test Illustrate in modo sintetico i seguenti elementi: − Strategia di test; Piano di test; Caso di test; Criterio di copertura T10 (2,5 punti)- WBS Commentate la adeguatezza della seguente WBS per lo sviluppo di un’applicazione di gestione di biblioteca, basata su DBMS. Componente/Attività Analisi dei requisiti Progettazione Architetturale 10 Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione Corso di Laurea in Ingegneria Informatica Stesura del modello dei Dati e implementazione del DB Codifica delle funzioni di gestione per il bibliotecario Codifica delle funzioni di reporting Codifica delle funzioni di accesso per l’utente 10 Tema 10 T1 (6 punti)- Progettazione architetturale Progettare l'architettura di sistema e software della seguente applicazione: Sistema di previsione e studio delle piene fluviali Il sistema ha lo scopo di monitorare un insieme di parametri idrogeologici relativi ad un bacino fluviale (piogge, portate fluviali) al fine di prevedere la presenza di un evento di piena ed esondazione del fiume ed allertare di conseguenza la protezione civile. Il sistema inoltre permette di simulare specifiche situazioni idrogeologiche e generare mappe di esondazione a fini di studio. Il sistema deve disporre di una rete di sensori di punto installati sul territorio. I sensori sono suddivisi in gruppi e ogni gruppo deve disporre di un proprio acquisitore dati installato localmente che teletrasmette al sistema centrale (installato presso una sede centrale). Il sistema, inoltre, utilizza le immagini del territorio telerivate da un satellite. Le immagini da satellite devono essere caricate periodicamente da un server dedicato preesistente. Il sistema mette a disposizione le seguenti funzioni: − Raccolta dei dati dalla rete di sensori a terra − Acquisizione delle mappe meteo da satellite − Elaborazione in tempo reale di un modello matematico di previsione della piena − Nel caso di evento critico, a seguito dei risultati del modello, visualizzazione della mappa di esondazione (a partire da una cartografia memorizzata del territorio), generazione di allarmi e trasmissione degli stessi e della mappa alla protezione civile − Ambiente di Simulazione off-line. L’ambiente consente di produrre, catalogare e gestire più simulazioni off-line. Una simulazione consiste dei seguenti passi: o caricamento interattivo o batch di un insieme di serie temporali di dati relativi ai sensori di punto e caricamento di un insieme di immagini da satellite da files preesistenti oppure caricamento di un set di dati acquisiti da un caso reale (dati di punto e immagini) durante il monitoraggio in tempo reale o esecuzione di uno o più modelli matematici e generazione delle mappe di alluvione risultanti (a partire dalla cartografia memorizzata del territorio) o catalogazione e memorizzazione dei dati di ingresso e uscita dei modelli Sono inoltre disponibili funzioni di gestione delle simulazioni catalogate − Richiamo delle simulazioni catalogate (dati di ingresso e di uscita) e visualizzazione dei dati. Nota: gli utenti del sistema sono: − La protezione civile che riceve gli allarmi e le mappe per gestire l’emergenza e può anche utilizzare i risultati delle simulazioni a scopo di addestramento − Gli esperti che producono le simulazioni off line T2 (4 punti)- Modellazione con le Reti di Petri interpretate di un processo di progettazione di un edificio Sulla base di un insieme di requisiti utente e di linee guida, l'architetto formula un progetto architettonico di massima. Lo strutturista, seguendo il progetto architettonico, formula un progetto di massima della struttura dell'edificio, tenendo conto anche delle caratteristiche geotecniche del sito. Sulla base dei progetti di massima strutturale e architettonico viene costruito un primo computo metrico estimativo. I progetti architettonico e strutturale ed il computo metrico vengono raccolti in un insieme, che qui chiamiamo “progetto di massima”; tale insieme, congiuntamente con le linee guida, viene utilizzato nelle attività concorrenti di progettazione esecutiva architettonica, progettazione esecutiva strutturale e progettazione esecutiva degli impianti. Al termine della progettazione esecutiva si compilerà un dettagliato computo metrico estimativo. T3 (2,5 punti) - Casi d’uso Presentate il concetto di caso d’uso in UML e come esso possa essere utilizzato nell’analisi dei requisiti T4 (2,5 punti) – Usabilità In riferimento al progetto T1, presentate possibili requisiti di usabilità e discutete possibili soluzioni progettuali. T5 (2,5 punti) – Modello di stabilità In riferimento al progetto T1, discutere se e come è stato utilizzato il modello di stabilità relativo alle proprietà di coesione ed accoppiamento dei moduli. T6 (2,5 punti) – Viste architetturali di implementazione Presentate le possibili viste di implementazione di un’architettura software e discutetene il ruolo nella progettazione architetturale. T7 (2,5 punti) - processi di sviluppo Presentate le differenze tra un processo di sviluppo software lineare ed un processo di sviluppo software per integrazione. T8 (2,5 punti) – Strategia di test per un componente di T1 11 Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione Corso di Laurea in Ingegneria Informatica Il progetto T1 include uno o più componenti costituiti da modelli matematici di fenomeni idrogeologici. Discutete una possibile strategia di test di questi componenti. Considerate in particolare l’aspetto degli oracoli nei casi di test. T9 (2,5 punti) – Errore, Difetto e Malfunzionamento Spiegate i tre termini “Errore, Difetto e Malfunzionamento” nel contesto del testing di un programma software. T10 (2,5 punti) –Struttura di un gruppo di progetto Presentate una tipica struttura di un gruppo di progetto software, definendo il contenuto dei vari ruoli. 11 Tema 11 T1 (6 punti)- Progettazione architetturale Progettare l'architettura di sistema e software della seguente applicazione: Sistema di supporto per la gestione dell’emergenza a seguito di eventi sismici Il sistema nazionale di sorveglianza sismica è costituito da una rete di accelerometri installata sul territorio nazionale e da un centro nazionale di controllo. All’accadere di un evento sismico, gli accelerometri interessati registrano una serie temporale che deve essere teletrasmessa al centro nazionale. Il centro nazionale implementa due classi di funzioni. La prima classe permette l’acquisizione e l’elaborazione in tempo reale dei dati generati a seguito di un evento sismico. Attraverso l’utilizzo di un data base che contiene le caratteristiche sismiche del territorio nazionale e la relativa cartografia e di un modello matematico, è calcolato l’epicentro dell’evento sismico e la mappa di danno dei nuclei urbani coinvolti. Le informazioni generate servono per allertare le autorità ed avviare i soccorsi. La seconda classe di funzioni permette l’accumulo di tutti i dati strumentali acquisiti ad ogni evento sismico in un data base storico ed il loro studio al fine di migliorare i modelli matematici disponibili e la conoscenza del territorio. Il sistema rende disponibili le seguenti funzioni: − Raccolta dei dati dalla rete di sensori accelerometrici (un sensore accelerometrico deve essere dotato di un apparato di acquisizione che, nel caso di evento sismico, attiva l’acquisizione per una durata temporale definita e gestisce la trasmissione della serie temporale al sistema centrale) − Elaborazione in tempo reale dei dati − Generazione dei dati relativi all’evento sismico (es. epicentro) e di una mappa di danno − Presentazione dei dati relativi all’evento sismico e della mappa all’operatore (il centro è presidiato 24 ore su 24). − A seguito dell’approvazione da parte dell’operatore, i dati e la mappa sono trasmessi alle autorità di competenza − Memorizzazione dei dati nel data base storico − Funzioni di gestione del data base storico − Funzioni di elaborazione dei dati del data base storico per lo studio dei modelli Nota: oltre alla progettazione architetturale, specificare gli aspetti fondamentali di progettazione di dettaglio relativi al protocollo di comunicazione tra apparati remoti (accelerometri) e sistema centrale. T2 (4 punti)- Modellazione con le Reti di Petri Modellare con le Reti di Petri interpretate il seguente processo: Il processo di produzione di un sistema di monitoraggio è costituito dalle seguenti fasi iniziali: Analisi dei requisiti di sistema, Progettazione di sistema, Analisi delle alternative “make or buy”. La decisione conseguente è l’acquisizione dei seguenti componenti: rete remota di sensori ed apparati di acquisizione e teletrasmissione, server centrale, un applicativo software sul server centrale. La restante parte del software sul server centrale sarà sviluppata ad hoc. A seguito della decisione sono generati i documenti di specifica necessari per avviare concorrentemente le attività singole di acquisizione e lo sviluppo. Il software ad hoc è sviluppato seguendo un processo lineare. Le fasi finali del progetto prevedono delle fasi concorrenti di installazione della rete (con apparati di acquisizione e teletrasmissione) e del server. Seguirà una fase di installazione del software applicativo acquisito ed alla fine l’installazione del software ad hoc con il collaudo complessivo. T3 (2,5 punti) – Requisiti di affidabilità In riferimento al progetto T1 discutete possibili requisiti di affidabilità T4 (2,5 punti) – Requisiti di efficienza In riferimento al progetto T1 discutete possibili requisiti di efficienza T5 (2,5 punti) – I processi in una software house Presentate il concetto di processo. Classificate i processi relativi ad una software house e presentate degli esempi. T6 (2,5 punti) – Architettura software Spiegate in cosa consiste un’architettura software T7 (2,5 punti) –Strategia di test per il collaudo e accettazione del progetto T1 In riferimento al progetto T1 presentate una possibile strategia di test che possa servire al collaudo ed accettazione del sistema. Tenete in conto sia gli aspetti funzionali che non funzionali. T8 (2,5 punti) – ISO9001-2000 Illustrate brevemente il ruolo della norma ISO9001-2000 e della certificazione di qualità in una software house T9 (2,5 punti) – Modelli UML 12 Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione Corso di Laurea in Ingegneria Informatica Presentate brevemente come i modelli UML possano rappresentare gli aspetti statici, dinamici e di implementazione di un prodotto software T10 (2,5 punti) – Gestione delle versioni e configurazioni Presentate brevemente il problema di gestione delle versioni e configurazioni di un prodotto software. 12 Tema 12 T1 (6 punti)- Progettazione architetturale Progettare l'architettura di sistema e software della seguente applicazione: Sistema di previsione delle valanghe Scopo dell'applicazione è la gestione di dati di innevamento in un’area alpina la generazione di un bollettino di previsione delle valanghe. Il sistema raccoglie dati di innevamento e dati meteorologici da n sistemi di acquisizione remoti collocati sul territorio. Ogni sistema di acquisizione remoto è in grado di raccogliere dati da una centralina meteo e da un sensore che misura l’altezza della neve. I dati acquisiti con periodicità giornaliera sono memorizzati in banca dati. Giornalmente i dati acquisiti sono utilizzati, assieme ad una base di dati cartografici del territorio, per produrre in modo automatico un insieme di mappe di caratteristiche meteorologiche (ad esempio la temperatura dell’aria o della neve o l’altezza della neve). Inoltre, in modo automatico, l’insieme dei dati è elaborato da un modello di previsione che identifica le aree a rischio di valanghe generando una mappa relativa. L’operatore è in grado di svolgere le seguenti funzioni: − Gestione dei dati alfanumerici e cartografici − Catalogazione e conservazione in una base di dati storica di dati acquisiti e mappe di interesse − Stampa di mappe di interesse − Distribuzione via Internet su un apposito servizio web delle mappe di previsione (la mappa delle aree a rischio valanghe non è distribuita automaticamente ma solo su autorizzazione dell’operatore) − Generazione di un rapporto di sintesi sulle aree a rischio valanghe e distribuzione dello stesso via mail. T2 (4 punti)- Modellazione con le Reti di Petri Modellare con le Reti di Petri interpretate il seguente processo: Flusso di dati tra uffici Esistono tre uffici periferici. Ogni ufficio mantiene un proprio archivio di documenti. Ogni volta che un ufficio periferico emette un documento, lo archivia e lo invia alla sede centrale. Presso la sede centrale, l’ufficio protocollo riceve il documento e lo verifica. Se le verifiche portano ad esito negativo, l’ufficio protocollo invia un mail di avviso e spiegazione al relativo ufficio di provenienza. Nel caso di esito positivo l’ufficio protocollo inoltra il documento per approvazione alla direzione. Ogni documento approvato viene restituito al relativo ufficio periferico a cura dell’ ufficio protocollo, il quale conserva in un archivio centrale una copia del documento stesso. Ogni ufficio periferico che riceve un documento approvato lo archivia nell’archivio locale. Ogni documento non approvato viene restituito con una annotazione al relativo ufficio periferico a cura dell’ ufficio protocollo. T3 (2,5 punti) – Requisiti di efficienza Con riferimento al progetto T1 scrivete le domande che potreste presentare al vostro cliente per identificare il requisito funzionale di efficienza T4 (2,5 punti) – COTS e processi di sviluppo software Presentare un processo di sviluppo per un sistema che include componenti applicativi di mercato (COTS) T5 (2,5 punti) – Prototopi Spiegate i possibili ruoli della realizzazione di prototipi in un processo di sviluppo software. T6 (2,5 punti) – Viste architetturali Spiegate il concetto di vista architettturale e presentate tre possibili viste di implementazione di un’architettura software. T7 (2,5 punti) – Piano di test Dato il seguente frammento di specifica …………… Un insieme di valori di misura giornalieri è caricato da terminale in una banca dati. La maschera di caricamento contiene i seguenti dati: temperatura dell’aria (numeri reali compresi tra -40 incluso e +40 incluso); visibilità (normale, ridotta, critica). I dati possono essere modificati e cancellati. Sono disponibili funzioni di estrazione di un report contenente le distribuzioni nel mese dei valori di misura. A richiesta è possibile visualizzare su terminale in modalità grafica la serie dei valori memorizzati. …………… scrivete il piano di test corrispondente alla seguente strategia: − Test funzionale con copertura funzionale esaustiva − Per ogni funzione: Test delle classi di equivalenza del dominio di ingresso (positivi e negativi) e test dei valori limite T8 (2,5 punti) – ISO9001 e certificazione Spiegate il significato della frase : “La software house xx è certificata ISO 9001-2000” T9 (2,5 punti) – WBS Scrivete una possibile WBS per il progetto di cui al punto T1 13 Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione Corso di Laurea in Ingegneria Informatica T10 (2,5 punti) – Studio di fattibilità Illustrate ruolo e contenuto di uno studio di fattibilità. 13 Tema 13 T1 (6 punti)- Progettazione architetturale Progettare l'architettura di sistema e l'architettura software della seguente applicazione: Sistema di inseguimento pezzi in un impianto industriale La linea di produzione di un impianto industriale è composta da più macchine connesse da vie di trasporto. L’impianto è diviso in nove sezioni. Per ogni sezione esiste un sistema locale di controllo e raccolta dati che rende disponibile in tempo reale: − Il conteggio dei pezzi che entrano in lavorazione nella sezione; − Gli eventi di passaggio di stato tra gli stati di attivo e fermo della sezione. Al termine delle sezioni d’impianto è installata una macchina che esegue il controllo di qualità di ogni pezzo prodotto. Il sistema di controllo della macchina rende disponibile, in tempo reale, i dati relativi alle misure di controllo di ogni pezzo. Si richiede la realizzazione di un sistema di supervisione che includa le seguenti funzioni: − Raccolta dei dati provenienti dai nove sistemi locali di controllo e dal sistema connesso alla macchina di controllo qualità − Mantenimento e visualizzazione su video di una mappa dell’impianto, dello stato delle sezioni e del flusso attuale dei pezzi. In particolare: − Lo schermo deve essere aggiornato almeno una volta al minuto. − Eventuali passaggi di stato di sezioni di impianto devono essere presentati sullo schermo in tempo reale (qualche secondo). − Contabilizzazione dei pezzi prodotti e dei periodi di fermo di impianto − Mantenimento in una banca dati dei dati di contabilizzazione giornaliera (pezzi e periodi di fermo di impianto) e di tutti i dati di controllo qualità dei pezzi. La banca dati deve disporre inoltre di un insieme di funzioni di gestione. − Estrazione automatica dalla banca dati di contabilizzazione giornaliera di tre file giornalieri di “avanzamento produzione”, “consuntivo fermate impianto” e “dati controllo qualità” e trasmissione alle tre applicazioni gestionali di avanzamento produzione, gestione manutenzione e controllo qualità. Le tre applicazioni sono installate su un server gestionale preesistente. T2 (4 punti)- Modellazione con le Reti di Petri Modellare con le Reti di Petri interpretate il seguente flusso informativo che coinvolge le entità A, B, C1, C2, C3: A richiede la disponibilità a B B risponde “disponibile” o “non disponibile” Se B è non disponibile, A attende 1 minuto e richiede la disponibilità a B Se B è disponibile, A preleva un pacchetto di dati dal database DB1 e lo invia a B B trasmette una copia del pacchetto dati a C1, C2, C3 C1 aggiorna la banca dati DB2 e restituisce il messaggio OK1 a B C2 aggiorna la banca dati DB3 e restituisce il messaggio OK2 a B C3 aggiorna la banca dati DB4 e restituisce il messaggio OK3 a B Quando B riceve tutti e tre i messaggi di OK, aggiorna la banca dati BD1 ed emette la segnalazione “allineamento terminato” T3 (2,5 punti) - Processi di sviluppo lineare e incrementale Spiegate le differenze tra un processo di sviluppo lineare di un prodotto software ed un processo di sviluppo incrementale T4 (2,5 punti) –Analisi dei requisiti Spiegate contenuto e utilità dell’analisi del contesto e della definizione degli obiettivi in un’analisi dei requisiti T5 (2,5 punti) – Specifiche non funzionali Il sistema di prenotazione di voli a basso costo che dovete progettare è costituito da una banca dati e da un’applicazione web di accesso alla stessa. Identificate esempi di possibili richieste di chiarimento da porre al committente relativamente ai requisiti non funzionali di efficienza e di affidabilità. T6 (2,5 punti) – Architettura e viste Spiegate il concetto di “Architettura Software” e le viste architetturali T7 (2,5 punti) – Piano di test Dato il sistema di cui al punto 1, scrivete tre possibili scenari di collaudo. Spiegate il significato della frase: il piano di collaudo, basato su scenari, deve garantire la copertura funzionale esaustiva. T8 (2,5 punti) – Oracolo Spiegate il significato di un oracolo in un caso di test. Scrivete due esempi di oracoli per due casi di test di una funzione software a piacere. T9 (2,5 punti) – UML diagrammi di package, componenti e deployment Spiegate il significato e l’utilizzo dei diagrammi di package, componenti e deployment in UML T10 (2,5 punti) – WBS per attività e per componenti Spiegate la differenza tra una WBS per attività e una per componenti 14 Tema 14 T1 (6 punti)- Progettazione architetturale 14 Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione Corso di Laurea in Ingegneria Informatica Progettare l'architettura di sistema e l'architettura software della seguente applicazione: Sistema distribuito di raccolta delle presenze Il sistema di raccolta delle presenze del personale gestisce i dati di ingresso / uscita del personale relativamente a cinque sedi distribuite di un’impresa, una delle quali è la sede centrale. Il sistema sarà costituito da tre livelli. Al primo livello saranno presenti i lettori di badge (apparati programmabili e connettibili su rete IP). Al secondo livello sarà presente un server di raccolta dati per ogni sede. Al terzo livello sarà presente un server centrale ospitato presso la sede centrale. L’applicazione software dovrà essere progettata in due passi successivi: Passo 1 Rendere disponibili le seguenti funzioni: − Lettura badge, validazione locale della lettura e gestione di segnalazioni di errore su video del lettore di badge − Raccolta dati di presenza a livello di ogni sede − Raccolta giornaliera dei dati di tutte le sedi a livello centrale − Modifica manuale dei dati raccolti, gestita centralmente da un addetto − Emissione centrale settimanale di report di sintesi − Trasmissione automatica mensile dei dati al sistema gestionale Passo 2 Inserire una funzione distribuita che, nel caso di indisponibilità di un server, alla ripartenza dello stesso, riallinei il sistema recuperando eventuali dati di lettura badge avvenuti durante il periodo di indisponibilità. La funzione deve gestire l’indisponibilità ad entrambi i livelli di server. Si noti che i lettori di badge sono programmabili e dispongono di memoria sufficiente per registrare le letture di una giornata. T2 (4 punti)- Modellazione con le Reti di Petri Modellare con le Reti di Petri interpretate il seguente flusso informativo: l’ufficio A emette un richiesta di approvvigionamento per la segreteria amministrativa. La segreteria trasmette per approvazione alla direzione. In caso di non approvazione, la segreteria informa l’ufficio A. Se invece la direzione restituisce la richiesta approvata, la segreteria informa l’ufficio A e trasmette la richiesta approvata all’ufficio approvvigionamento il quale emette l’ordine per il fornitore. Quando il fornitore consegna al magazzino la merce e la relativa documentazione di accompagnamento, il magazzino trasmette la documentazione di accompagnamento all’ufficio approvvigionamento e informa l’ufficio A che la merce è arrivata. T3 (2,5 punti) – Processo di sviluppo software Spiegate il concetto di processo di sviluppo software T4 (2,5 punti) – Indice di analisi dei requisiti Scrivete un indice di riferimento per un documento di analisi dei requisiti T5 (2,5 punti) – Specifiche non funzionali Relativamente al progetto di cui a T1, discutete possibili requisiti non funzionali di efficienza e di manutenibilità. T6 (2,5 punti) – Stili architetturali Spiegate il concetto di stile architetturale e presentate lo stile “Repository” T7 (2,5 punti) – Test. Grafi causa effetto Presentate la tecnica di test dei grafi causa-effetto e discutetene l’applicabilità T8 (2,5 punti) – Checklist per la verifica di un progetto architetturale Scrivete una possibile Checklist per la verifica di un progetto architetturale software T9 (2,5 punti) – UML diagrammi di sequenza Spiegate il significato e l’utilizzo dei diagrammi di sequenza in UML T10 (2,5 punti) - Studio di fattibilità e pianificazione di progetto Presentate il contenuto di uno studio di fattibilità e spiegate la relazione con l’attività di pianificazione di progetto 15 Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione Corso di Laurea in Ingegneria Informatica 15 Tema 15 T1 (6 punti)- Progettazione architetturale Progettare l'architettura di sistema e l'architettura software della seguente applicazione: Sistema di tracking dei pacchi Il sistema permette di tracciare il percorso dei pacchi consegnati ad uno spedizioniere. L’organizzazione dello spedizioniere è costituita da x centri di spedizione, y punti di passaggio, z agenti di consegna, una sede centrale. Ogni centro di spedizione supporta le seguenti funzioni: − Raccolta dell’ordine di spedizione (il cliente porta il pacco che è etichettato con un codice a barre ed è registrato nel sistema); − Invio dei dati relativi al pacco alla sede centrale. Ogni centro di spedizione opera anche come centro di consegna. I pacchi arrivati sono consegnati da agenti dotati di palmare. Al momento della consegna l’agente registra le informazioni di consegna e, al ritorno al centro di consegna, scarica i dati che sono inviati al sistema centrale. Ogni punto di passaggio registra la movimentazione di un pacco (identificato dal codice a barre) ed invia l’informazione al sistema centrale. Ogni cliente può connettersi al sistema centrale e visualizzare lo stato del proprio pacco. Il cliente ha a disposizione le seguenti classi di funzioni: Classe 1 (per qualunque utente) − Visualizzazione delle caratteristiche del servizio Classe 2 (per utenti registrati) − Registrazione − Identificazione del proprio pacco e visualizzazione dello stato relativo − Accesso alle funzioni di servizio (ad esempio calcolo dei tempi e dei costi, richiesta di assistenza,…) Il sistema centrale mantiene la banca dati che registra tutte le informazioni relative ai pacchi, produce report periodici e periodicamente trasmette dati al sistema gestionale pre-esistente. Si ipotizza che i centri di spedizione e la sede centrale siano connessi da una rete privata, gli agenti si connettano al sistema del proprio centro di spedizione via rete locale wireless, i punti di passaggio ed i clienti si connettano al sistema centrale via internet. T2 (4 punti)- Modellazione con le Reti di Petri Esistono due processi di elaborazione A e B ognuno composto da 5 fasi sequenziali (1A-5A e 1B-5B). Modellare separatamente con le Reti di Petri le due seguenti situazioni: caso1: A e B condividono in modo mutuamente esclusivo una struttura di dati comune che viene acceduta dalle fasi 2A e 2B e rilasciata dalle fasi 4A e 4B caso2: A e B si sincronizzano; la fase 2B inizia solo se la fase 1A è terminata e la fase 5A inizia solo se la fase 4B è terminata. T3 (2,5 punti) – Processi iterativi di sviluppo software Spiegate il concetto di processo di sviluppo software iterativo e discutetene l’applicabilità T4 (2,5 punti) – requisiti di usabilità e di manutenibilità Presentate dei possibili requisiti di usabilità e di manutenibilità del sistema di cui al punto 1 T5 – Casi d’uso e analisi dei requisiti Presentate brevemente cosa è un caso d’uso e come i casi d’uso sono utilizzati nell’analisi dei requisiti T6 – Viste architetturali Spiegate il concetto di vista architetturale e presentate brevemente le principali viste T7 (2,5 punti) – Piano di test Dato il sistema di cui al punto 1, spiegare cosa è un piano di collaudo del sistema basato su scenari e scrivere due possibili scenari di collaudo. T8 (2,5 punti) – Test basato su classi di equivalenza Spiegate la tecnica di test basata sulle classi di equivalenza dei dati in ingresso ad una funzione. T9 (2,5 punti) – UML diagrammi di componenti e deployment Presentate i diagrammi di componenti e deployment in UML T10 (2,5 punti) - WBS Spiegate ruolo e contenuto di una WBS 16 Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione Corso di Laurea in Ingegneria Informatica 16 Tema 16 T1 (6 punti)- Progettazione architetturale Progettare l'architettura di sistema e l'architettura software della seguente applicazione: Raccolta dati da sistemi eterogenei Un sistema centrale raccoglie dati da un insieme eterogeneo di apparati appartenenti a tre classi diverse: Classe 1: sistemi di acquisizione che raccolgono dati da una rete di sensori. Ogni sistema raccoglie i dati di una propria rete con periodicità di 60 minuti. I dati di tutti i sistemi di acquisizione di questa classe devono essere raccolti centralmente una volta al giorno. Classe 2: sistemi di acquisizione che raccolgono ognuno, con periodicità di 10 minuti, i dati da un insieme di sensori, li elaborano e identificano, se il caso, un evento di allarme. Ogni sistema di acquisizione deve inoltre poter generare allarmi sulla base di trend settimanali dei dati acquisiti. L’allarme (ed un pacchetto di dati acquisiti associati) deve essere notificato al sistema centrale. In assenza di allarme non devono essere trasmessi dati. Classe 3: PC dai quali un operatore, attraverso una procedura Web, fornisce dati al sistema centrale. Sul sistema centrale sono inoltre disponibili le seguenti funzioni: − Gestione dei dati raccolti (visualizzazione, cancellazione, modifica, editing grafico) − Controllo automatico periodico della qualità dei dati e presentazione di un report. − Accesso via Web ai dati acquisiti attraverso un meccanismo di login e password per utenti autorizzati. T2 (4 punti)- Modellazione con le Reti di Petri Descrivere con una Rete di Petri il seguente protocollo di comunicazione tra due entità A e B: Fase 1 - A e B si sincronizzano: A chiede a B di ricevere dati. B risponde con stato di disponibilità o non disponibilità. In caso di non disponibilità A attende un tempo t e riprova. In caso di disponibilità A invia a B un messaggio di apertura. B lo riceve e si predispone alla ricezione dati. Fase 2 - A fornisce i dati a B: A scrive nella struttura di dati persistente DB e, al termine informa B che DB è disponibile. B legge i dati e li scrive nella struttura di dati persistente DB1. Fase 3 - A e B chiudono la comunicazione: B comunica ad A la fine delle operazioni. A risponde di aver ricevuto la terminazione e chiude la comunicazione. B riceve la risposta e chiude la comunicazione. T3 (2,5 punti) – Processi di sviluppo software “agili” Presentate i concetti generali relativi ai processi di sviluppo software “agili” T4 (2,5 punti) – Casi d’uso e requisiti di non funzionali Presentate due possibili casi d’uso relativi a requisiti non funzionali che possano essere applicabili al sistema di cui al punto 1. T5 – Pattern e flussi di controllo Presentate due pattern relativi alla gestione dei flussi di controllo tra moduli software. T6 (2,5 punti) – Qualità di prodotto software e qualità di processo software Spiegate la differenza tra valutazione di qualità di prodotto software e qualità di processo software. T7 (2,5 punti) – Malfunzionamento, difetto e errore software Spiegate la differenza tra Malfunzionamento, difetto e errore software T8 (2,5 punti) – Criteri di copertura Presentare dei criteri di copertura relativi a piani di test funzionali e strutturali T9 (2,5 punti) – Analisi di rischio e strategia di test Spiegate il ruolo di un’analisi di rischio nella stesura di una strategia di test. T10 (2,5 punti) – Gruppo di progetto software Presentate i ruoli tipici all’interno di un gruppo di progetto software 17