Compito Scritto di Ingegneria del Software. 11 marzo 2010. Parte teorica, punti 14. Tempo a disposizione: 1 ora

Documenti analoghi
Compito Scritto di Ingegneria del Software. 13 luglio Parte teorica, punti 14

Ingegneria del Software II 22 Dicembre 2011 Parte teoria, punti 14 - Tempo a disposizione: 1h

Compito Scritto di Ingegneria del Software. 9 aprile Parte teorica, punti 14. Tempo a disposizione: 1 ora

Compito Scritto di Ingegneria del Software. 10 gennaio Parte teorica, punti 14. Tempo a disposizione: 1 ora

Compito Scritto di Ingegneria del Software. 12 settembre Parte teorica, punti 14

Compito Scritto di Ingegneria del Software. 15 marzo 2010 punti 32. Tempo a disposizione: 2h30m

Compito Scritto di Ingegneria del Software. 22 luglio Parte teorica, punti 14. Tempo a disposizione: 1 ora

Compito Scritto di Ingegneria del Software. 9 aprile Parte teorica, punti 14. Tempo a disposizione: 1 ora PUNTI 7

Ingegneria del Software II 12 Gennaio 2012 Parte teoria, punti 14 - Tempo a disposizione: 1h

Scritto di Ingegneria del Software II. 22 Giugno 2006 (durata 2 ore Punti 32/30)

Esercizi Esame. Esercizio 1. Soluzione. Esercizio 2

Università degli Studi di Ferrara Facoltà di Ingegneria Corso di Ingegneria del Software (IIa parte) - Prova scritta

Compito Scritto di Ingegneria del Software. 17 settembre Parte teorica, punti 14. Tempo a disposizione: 1 ora

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

Laboratorio di informatica Ingegneria meccanica

Fondamenti di Informatica T-1 Modulo 2

Laboratorio di Sistemi Prototipo autenticazione utente Jsp [Java]

Manualistica 3 Le strutture di controllo

Java SE 7. Strutture di programmazione (2)

Gestire le sessioni con le Servlet

Elementi di Architettura e Sistemi Operativi. problema punti massimi i tuoi punti problema 1 9 problema 2 6 problema 3 5 problema 4 10 totale 30

Presentazione di specifiche Z

FACOLTÀ DI INGEGNERIA

Informatica 1. Prova di recupero 21 Settembre 2001

Ingredienti sintattici di Java

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Ingegneria del software

Esame di Informatica Generale 25 giugno 2010 Professori: Carulli, Fiorino, Mazzei

Manualistica 3 Le strutture di controllo

A. Ferrari Informatica

1 Considerare la seguente descrizione del processo di prestito dei libri di una biblioteca, per il quale si vuole progettare un software:

OOP: L13: Eccezioni e loro trattamento in Java

Esercitazioni di. Arnaud Nguembang Fadja : Alessandro Bertagnon :

Guida Tecnica di compilazione

Esame di Informatica Generale 9 CFU 21 Giugno 2011 Professori: Carulli, Fiorino, Mazzei

Esercitazione 4. Comandi iterativi for, while, do-while

Soluzioni seconda prova intermedia del 30 gennaio 2006 temi 1 e 2. Siano date le seguenti definizioni di costanti e tipi in linguaggio C:

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Primo programma in C

Linguaggio C. Esercizio 1

Fac-simile TVI Informatica Facoltà di Economia Università degli studi di Bergamo

Corso di Laurea in Informatica Applicata Prima Prova di Verifica Intermedia di Programmazione II 1 Dicembre 2010

Sottoprogrammi: astrazione procedurale

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

Guida all'acquisto Shop Online kernschool.it

Procedure e funzioni A. Ferrari

OLIMPIADI DI INFORMATICA SELEZIONE SCOLASTICA - 4 dicembre 2008

Un esempio di if annidati

Laboratorio di Algoritmi e Strutture Dati

CORSO DI LAUREA IN INGEGNERIA ELETTRICA

Esercizio 1: media di numeri reali (uso funzioni e struct)

Algoritmi di Ricerca. Esempi di programmi Java

Le basi del linguaggio Java

Esercitazione di Reti degli elaboratori

Le strutture di controllo in C++

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 17 Febbraio 2009 COGNOME E NOME RIGA COLONNA MATRICOLA

Laboratorio di informatica Ingegneria meccanica

Linguaggio C: strutture di controllo

Variabili e Funzioni. Informatica 1 / 19

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Istruzioni Operative per l iscrizione all Elenco Fornitori del sistema di acquisti telematici di ETRA S.p.A. Powered by BravoSolution

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java

Classe Squadra. #include <iostream> using namespace std;

2. Spiegare brevemente qual è la funzione del compilatore e la sua importanza per il programmatore.

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma

Strutture dati. Operatori di incremento e decremento. Strutture di dati. Strutture di dati. ++ e -- Esempi. Vettori e matrici.

Programmazione C Massimo Callisto De Donato

Informatica! Appunti dal laboratorio 1!

INFORMATICA 1 L. Mezzalira

Istruzioni di controllo

- int nbrani = 0; //numero di brani presenti in archivio. int creaplaylist(tipobrano[] playlist, int n, TipoGenere g, TipoFile t);

ESERCIZI SU IF/WHILE. Esercizio 1) Legge due numeri e controlla se il primo è multiplo del secondo.

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Fondamenti di Informatica anno accademico Esercizi proposti il

Corso di Laurea in Informatica Applicata Prima Prova di Verifica Intermedia di Programmazione II 1 Dicembre 2010

FONDAMENTI di INFORMATICA L. Mezzalira

C: panoramica. Violetta Lonati

ORDINE DEGLI ARCHITETTI, PIANIFICATORI, PAESAGGISTI E CONSERVATORI DELLA PROVINCIA DI MESSINA

C espressioni condizionali

GUIDA ALLA PRENOTAZIONE ONLINE

STRUTTURE DI CONTROLLO DEL C++

Lab 06 Funzioni semplici

Fondamenti di Informatica T-1 Modulo 2

Il C nel C++ Struttura di un linguaggio. regole per la definizione i simboli. regole per la composizione dei simboli

Struttura di un linguaggio

3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso;

Obiettivi di questa esercitazione

Laboratorio di Informatica

Gli array Libro cap. 6 Moreno Marzol a Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

11/19/13. Esercizi su verifica. Esercizio 1. Esercizi su verifica 2

NOTA: I codici proposti sono solo una delle possibile soluzioni, non sono da intendersi come unica soluzione possibile o corretta

Istruzioni Condizionali

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.

Transcript:

Compito Scritto di Ingegneria del Software 11 marzo 2010 Parte teorica, punti 14 Tempo a disposizione: 1 ora Esercizio 1 Si descriva il principio di Astrazione. PUNTI 7 Esercizio 2 Si definiscano e descrivano brevemente i diversi criteri di copertura per il testing "white box". PUNTI 7

Esercizio 3 Compito Scritto di Ingegneria del Software 11 marzo 2010 Parte pratica, punti 18 Tempo a disposizione: 1 ora e mezza Si modelli con una rete di Petri un sistema formato da due semafori collocati su due strade che si incontrano in un incorcio. I semafori possono emettere luce rossa, arancio oppure verde. I semafori emettono inizialmente entrambi luce rossa. Possono poi passare alla luce verde, successivamente a quella arancio, a quella rossa e da questa nuovamente alla luce verde. Un semaforo può passare dal rosso al verde solo se l'altro semaforo emette luce rossa. Quando un semaforo passa dall'arancio al rosso abilita l'altro semaforo a passare al verde. L'emissione di luce verde da parte dei due semafori è quindi in mutua esclusione. PUNTI 5 Esercizio 4 Si dia una specifica in Z di un negozio musicale online. Per poter fare acquisti, gli utenti devono registrarsi specificando il loro indirizzo di posta elettronica e una password. Il sisterma memorizza inoltre per ciascun utente il suo credito. Al momento della registrazione, agli utenti pagano con carta di credto 10 euro che va a costituire il credito iniziale dell'utente. Si supponga che l'insieme del brani nel negozio sia un tipo definito dall'utente Si modellino in Z le seguenti operazioni: 1) Registrazione di un nuovo utente: dato l'indirizzo di posta elettronica, la password e un numero di carta di credito, il sistema aggiunge l'utente al sistema e imposta il credito dell'utente a 10 euro. L'operazione fallisce se l'indirizzo di posta elettronica era già associato ad un utente del sistema 2) Acquisto di un brano: l'utente si collega fornendo username, passwod e il brano da acquistare. Il sistema toglie dal credito dell'utente il costo del brano, 1 euro. L'operazione non va a buon fine se nel sistema non esiste una associazione tra l'utente e la password indicata oppure se il credito e' 0 PUNTI 7

Esercizio 5 Si disegni il flusso di esecuzione e si esegua l analisi di flusso, per mezzo di espressioni regolari, per le variabili del seguente programma. Si individuino inoltre eventuali sequenze non corrette di operazioni e, per ognuna, almeno un caso di test che porti alla sua esecuzione. 1. #include<stdio.h> 2. int main (void) { 3. int a, b = 1, c; 4. scanf("%d", &a); 5. if (a > 0) { 6. a = a - b; 7. b = b + 1; 8. c = a / b; 9. } 10. else { 11. b = a / c; 12. } 13. b = a - 1; 14. printf("%d\n", c ); 15. return 0; 16. } PUNTI 6

Soluzione Esercizio 3 Esercizio 2 Tipi definiti dall'utente: [Brani, IndirizziPostaElettronica, Password, NumeriCartaDiCredito] Brani=insieme dei brani del sito} IndirizziPostaElettronica={insieme degli indirizzi di posta elettronica} Password={insieme delle password} NumeriCartaDiCredito={insieme dei numeri di carta di credito} Variabili che descrivono lo stato del sistema: 1) utenti: è una funzione parziale che associa ad un indirizzo di email di un utente la sua password 2) credito: è una funzione parziale che associa ad un indirizzo di email il credito dell'utente ÈSito utenti: IndirizziPostaElettronica ß Password credito: IndirizziPostaElettronica ß N dom credtio = dom utenti ÈInitSito

DSito utenti'={} credito'={} ÈSuccess rep!: Report rep! = 'Okay' 1) Registrazione ÈRegistrazioneOK DSito password?: Password cartadicredito?: NumeriCartaDiCredito indirizzo? dom utenti utenti'=utenti U {indirizzo? å password?} credito'=credito U {indirizzo? å 10} ÈUtenteGiàPresente XSito indirizzo? e dom utenti rep! = 'Utente gia' presente' Registrazione Í RegistrazioneOK Success v UtenteGiàPresente 2) acquisto di un brano ÈAcquistoOK DSito password?: Password brano?: Brani credito(indirizzo?)>0

(indirizzo? å passwod?) e utenti credito'=credito ± {indirizzo? å (credito(indirizzo?)-1)} utenti'=uteni ÈIndirizzoPasswordSbagliati XSito password?: Password (indirizzo? å Passwod?) e utenti rep! = 'Indirizzo o password sbagliati' ÈCreditoInsufficiente XSito credito(indirizzo?)=0 rep! = 'Credito insufficiente' Acquisto Í AcquistoOK Success v IndirizzoPasswordSbagliati v CreditoInsufficiente

Esercizio 5 riga a b c 3 a ad a 4 d 5 u 6 ud u 7 ud 8 u u d 11 u d u 13 u d 14 u Espressioni regolari: per a: per b: per c: adu (udu+u) u ad (uudu+d) d a (d+u) u Osservazioni: Nel caso else la variabile c viene usata senza essere definita. Tale anomalia può essere evidenziata da qualsiasi test case con a<0. Inoltre, sempre nel caso else abbiamo una sequenza anomala per la variabile b, che viene definita tre volte di seguito, senza mai essere utilizzata.