VERIFICA E VALIDAZIONE * Se l’ispezione di un artefatto rileva solo difetti con gravità secondaria, allora si reitera il processo di rilavorazione-ispezione dell’artefatto fino a quando non viene rilevato alcun difetto: - l’artefatto deve essere rilavorato per superare i difetti ma non deve essere reispezionato l’artefatto viene accettato * Quale dei seguenti difetti è scoperto dall’attività di verifica: il sistema non offre tutti i servizi previsti: il tempo di risposta è un ordine di grandezza maggiore di quanto specificato nei requisiti: - il nome di un attributo nel diagramma delle classi è diverso dal nome dell’attributo nella descrizione delle class * Se l’esecuzione di tutti i test di un test di unità ha esito negativo, allora è opportuno rivedere la codifica dell’unità: è opportuno rivedere la progettazione dei casi di test: - l’unità può essere accettata: * In quale dei seguenti casi è bene svolgere il test strutturale di una componente - se la complessità ciclomatica della componente è 7: se la complessità ciclomatica della componente è 2: se non si dispone del codice sorgente della componente: * E’ possibile applicare la tecnica di ispezione per Verificare & Validare il codice di un sistema? - Sì: No: L’ispezione del codice può essere applicata solo per la Verifica: STILI ARCHITETTURALI * Quale fra i seguenti è ininfluente per la definizione di uno stile architetturale l’insieme dei simboli che rappresentano le componenti: - i tipi di dati gestiti dalle componenti: la definizione del comportamento delle componenti: * In uno stile architetturale a oggetti, ogni componente comprende: - un insieme di classi: un insieme di oggetti: entrambe le precedenti: * Se a ogni valore di un dato A corrispondono 0 o 1 valore di un dato B, nel diagramma delle dipendenze è opportuno che Sì, sempre: Sì, purché non siano isolate: - No, mai: * E’ possibile stabilire una dipendenza singola da una bolla A a una bolla B e contemporaneamente una dipendenza da B a A - Sì, sempre: Sì, ma solo se n = 2: No, mai: * L’uso dello stile architetturale a oggetti favorisce - la modularizzazione: la comprensione di una componente indipendentemente dalla comprensione delle altre: l’information hiding: PROGETTAZIONE DATI * Quale fra le seguenti non è una chiave uplink - il campo da cui dipende il campo target: la bolla da cui parte una dipendenza multipla per una chiave primaria: la bolla da cui parte una dipendenza multipla per un’altra chiave uplink: * In un diagramma delle dipendenze è possibile definire dipendenze transitive Sì, sempre: Sì, ma solo se si tratta di dipendenze multiple: - No, mai: * L’uso del diagramma delle dipendenze favorisce: la velocità dell’accesso ai dati: - la comprensione del sistema: la sicurezza del sistema: * Se a ogni valore di un dato A corrispondono 0 o 1 valore di un dato B, nel diagramma delle dipendenze è opportuno che - ci sia una dipendenza singola dalla bolla di B alla bolla di A: ci sia una dipendenza singola barrata dalla bolla di B alla bolla di A: ci sia una dipendenza singola barrata dalla bolla di A alla bolla di B: * E’ possibile stabilire una dipendenza singola da una bolla A a una bolla B e contemporaneamente una dipendenza da B a A Sì, sempre: Sì, ma solo se la dipendenza da B a A è multipla: - No, mai: PROGETTO SOFTWARE * Le interviste agli utenti potrebbero non essere sufficienti per elicitare i requisiti perché l’intervistato potrebbe non conoscere il dominio tecnologico: l’intervistato potrebbe non conoscere il dominio applicativo: - l’intervistato potrebbe omettere la sua conoscenza tacita: * In un sistema in cui il software analizza i dati forniti da sensori e segnala all’operatore eventuali azioni da intraprendere, il diagramma dei casi d’uso fa parte è dei requisiti di sistema: - dei requisiti software: di entrambi: * È sconsigliato validare tutti requisiti mediante prototipi perché potrebbero essere sconosciuti i dettagli logici del sistema: - la realizzazione del prototipo adeguato potrebbe essere troppo onerosa: diminuisce la manutenibilità del sistema: * Il requisito che prevede che un sistema sia descritto formalmente è un requisito che esprime un servizio: è un requisito che esprime una caratteristica tecnica: - è un requisito che esprime un parametro di processo: * Quale fra i seguenti principi deve necessariamente essere applicato per descrivere i requisiti: formalità: - astrazione: information hiding: sPECIFICHE * Realizzare le specifiche per incrementi successivi permette di: - migliorare sempre più la qualità delle specifiche: realizzare un sistema più manutenibile: diminuire la complessità del sistema: * E’ opportuno specificare per prototipi gli aspetti riguardanti l’interazione con l’utente: riguardanti la gestione dei dati: - critici del sistema: * Una specifica descrive rigorosamente: un accordo tra committente e sviluppatore: - i requisiti dell’implementazione di un sistema a un livello di maggiore dettaglio: la codifica di un sistema: * Quale fra i seguenti è un modello delle specifiche modello dei dati: - modello del cambiamento di stato: modello di decisione: * La specifica dei requisiti utente descrive interessi riguardanti l’interfaccia utente: - aspetti funzionali: il profilo dell’utente: REQUISITI SOFTWARE * Quale fra le seguenti pratiche di progettazione NON è un’applicazione del principio dell’astrazione generalità - sufficienza, completezza e ricerca di primitive: incapsulamento: * La pratica della modularità applicata alla progettazione permette di rendere possibile modificare una componente senza conoscere le altre: definire i comportamenti delle componenti per soddisfare i requisiti: - descrivere il sistema come un insieme di componenti che si scambiano servizi: * La pratica dell’information hiding ha lo scopo di favorire le prestazioni del sistema: - l’evoluzione del sistema: la sicurezza del sistema: * Se in un progetto la componente A is-componet-of la componente B e inoltre B mostra un comportamento errato, allora: A mostra sicuramente un comportamento errato: è probabile che A mostri un comportamento errato: - non si può dire nulla riguardo il comportamento di A: * Le componenti che nascondono i segreti relativi al comportamento devono essere modificate se cambia la macchina virtuale: - cambiano le specifiche del sistema: cambiano le decisioni relative alle caratteristiche software richieste: PRINCIPI INGEGNERIA * L’eccessiva modularizzazione può avere effetti negativi sulla comprensione del sistema - perché si perde la visione di insieme del sistema: è più difficile prevedere le prestazioni offerte dai singoli moduli: aumenta la difficoltà di progettazione del test di integrazione: * I principi dell’Ingegneria del Software sono applicati in modo diverso in funzione - degli specifici metodi adottati: degli specifici linguaggi di programmazione adottati: degli specifici problemi del dominio applicativo: * Applicare il principio dell’incrementalità nello sviluppo del software - favorisce la validazione, pur rendendola più onerosa: diminuisce la comprensibilità del sistema a causa degli aumentati rischi di integrazione: aumenta i tempi di manutenzione, ma favorisce il riuso: * È opportuno descrivere formalmente una componente di un artefatto se - sono disponibili strumenti che permettono di realizzarla automaticamente a partire dalla descrizione formale ottenu si vuole migliorare la sensibilità al carico: si prevede che sarà sottoposta a molte manutenzioni: * È opportuno progettare un sistema minimizzando l’accoppiamento tra le componenti per migliorare i tempi di risposta: - favorire la manutenibilità: implementare più velocemente il sistema: CONCETTI GENERALI * In quale dei seguenti casi è opportuno applicare i principi dell’Ingegneria del Software? per correggere i difetti di un programma usato principalmente dal suo autore: - per integrare due sistemi critici per una data organizzazione: per codificare un programma lungo circa 1000 linee di codice: * Lo sviluppo per linee di prodotto favorisce: la manutenzione del sistema: l’integrazione tra componenti: - il riuso: * La diagonalizzazione della matrice Requisiti X Componenti favorisce la validazione perché - permette di controllare che tutti i requisiti sono soddisfatti da (idealmente) una componente: se cambia un requisito è sufficiente modificare (idealmente) una sola componente: nel caso di matrice sparsa l’integrazione tra componenti è più onerosa: * Un’applicazione software di impresa è caratterizzata da: - capacità di gestire rilevanti quantità di dati che coprono uno specifico dominio applicativo: interazione tra programmi diversi: intense attività di controllo del comportamento di altri sistemi hardware: * Lo scopo della fase di analisi è quello di: - descrivere concettuale le capacità che il sistema software deve offrire: stabilire le relazioni logiche tra le componenti software: verificare che i vincoli imposti sul sistema siano soddisfatti: