Soluzioni della seconda prova di Informatica - Maturità 2017, Prove svolte di Maturità di Informatica
docsity
docsity

Soluzioni della seconda prova di Informatica - Maturità 2017, Prove svolte di Maturità di Informatica

PDF (1 MB)
15 pagine
7Numero di download
86Numero di visite
Descrizione
Traccia e soluzione della seconda prova di maturità anno 2016 - 2017 di Informatica per gli Istituti Tecnici Indirizzo ITIA – Informatica e Telecomunicazioni Articolazione Informatica.
0 punti
Punti download necessari per scaricare
questo documento
Scarica il documento
Anteprima3 pagine / 15
Questa è solo un'anteprima
3 pagine mostrate su 15 totali
Scarica il documento
Questa è solo un'anteprima
3 pagine mostrate su 15 totali
Scarica il documento
Questa è solo un'anteprima
3 pagine mostrate su 15 totali
Scarica il documento
Questa è solo un'anteprima
3 pagine mostrate su 15 totali
Scarica il documento

Come preparare le prove scritte e l'orale? Scoprilo con il nostro ebook gratuito sull'esame di

Maturità!

#SalvaMaturità

Soluzione della Seconda

Prova di Maturità di

Informatica

Anno 2016-2017

Istituto Tecnico

Indirizzi:

ITIA – INFORMATICA E TELECOMUNICAZIONI ARTICOLAZIONE INFORMATICA

Questa prova di Maturità è stata risolta dai Tutor di Docsity.com

Come preparare le prove scritte e l'orale? Scoprilo con il nostro ebook gratuito sull'esame di

Maturità!

Tema di: INFORMATICA - Tipologia C

PRIMA PARTE

Un’azienda start-up vuole costruire una piattaforma Web che consenta il car pooling

tra viaggiatori sul territorio nazionale, con l’obiettivo di diffondere l’uso di una mobilità

flessibile e personalizzata in termini di percorsi e costi.

Gli utenti della piattaforma possono essere di due tipi: utenti-autisti (coloro che

offrono un passaggio con la propria macchina) e utenti-passeggeri (coloro che

usufruiscono del passaggio).

Gli autisti devono registrarsi sul sito ed inserire i propri dati: generalità, numero e

scadenza patente di guida, dati dell’automobile utilizzata, recapito telefonico, email,

fotografia.

Per ogni viaggio che intendono condividere, gli autisti devono indicare città di

partenza, città di destinazione, data ed ora di partenza, contributo economico richiesto

ad ogni passeggero, tempi di percorrenza stimati. È responsabilità dell’autista, mano a

mano che accetterà passeggeri per un certo viaggio, dichiarare chiuse le prenotazioni

per quel viaggio, utilizzando un’apposita funzione sul portale.

L’utente-passeggero si deve registrare sulla piattaforma, indicando cognome e nome,

documento di identità, recapito telefonico ed email. La piattaforma fornisce ai

passeggeri la possibilità di indicare città di partenza e di destinazione e data

desiderata; presenta quindi un elenco di viaggi (per cui non siano ancora chiuse le

prenotazioni), ciascuno con le caratteristiche dell’autista e le modalità del viaggio

stesso inserite dall’autista (orario, eventuali soste previste alle stazioni di servizio,

possibilità di caricare bagaglio o animali, …).

Il passeggero sceglie quindi il viaggio desiderato con il corrispondente autista, anche

esaminando il voto medio e i giudizi dei feedback assegnati tramite la piattaforma dai

precedenti passeggeri all’autista stesso, e si prenota. Le informazioni sul passeggero

vengono inviate per email dalla piattaforma all’autista scelto, il quale può consultare

sul portale il voto medio e i giudizi dei feedback ricevuti dal passeggero da parte di

precedenti autisti e decidere se accettarlo o meno. Il passeggero di conseguenza

riceverà una email di accettazione o di rifiuto della prenotazione effettuata,

contenente, in caso di accettazione, un promemoria con città di partenza e

destinazione, data e orario del viaggio, dati dell’autista e della sua automobile.

A viaggio effettuato, il passeggero può inserire un feedback sull’autista, espresso sia

in forma di voto numerico che di giudizio discorsivo. A sua volta, l’autista può inserire

un feedback sul passeggero, espresso sia in forma di voto numerico che di giudizio

discorsivo. Sia i voti medi che i singoli giudizi dei feedback ricevuti da ciascun autista

sono disponibili ai passeggeri; analogamente, sia i voti medi che i singoli giudizi dei

feedback ricevuti da ciascun passeggero sono disponibili agli autisti.

Il candidato, fatte le opportune ipotesi aggiuntive, sviluppi:

Come preparare le prove scritte e l'orale? Scoprilo con il nostro ebook gratuito sull'esame di

Maturità!

1. un'analisi della realtà di riferimento, giungendo alla definizione di uno schema

concettuale della base di dati che, a suo motivato giudizio, sia idoneo a gestire

la realtà presentata;

2. il relativo schema logico;

3. le seguenti interrogazioni espresse in linguaggio SQL:

a) data una città di partenza, una di arrivo e una data, elencare gli autisti

che propongono un viaggio corrispondente con prenotazioni non

ancora chiuse, in ordine crescente di orario, riportando i dati dell’auto e

il contributo economico richiesto;

b) dato il codice di una prenotazione accettata, estrarre i dati necessari per

predisporre l’email di promemoria da inviare all’utente passeggero;

c) dato un certo viaggio, consentire all’autista di valutare le caratteristiche

dei passeggeri visualizzando l’elenco di coloro che lo hanno prenotato,

con il voto medio dei feedback ricevuti da ciascun passeggero,

presentando solo i passeggeri che hanno voto medio superiore ad un

valore indicato dall’autista;

4. il progetto di massima della struttura funzionale dell’applicazione Web,

realizzando, con appropriati linguaggi a scelta sia lato client che lato server, un

segmento significativo dell'applicazione che consente l'interazione con la base

di dati.

Come preparare le prove scritte e l'orale? Scoprilo con il nostro ebook gratuito sull'esame di

Maturità!

Soluzione Prima Parte

Domanda 1

Per poter offrire un servizio simile, la start-up deve realizzare una web application che

permetta agli utenti-autisti (d’ora in poi autisti) di condividere passaggi, e agli utenti-

passeggeri (d’ora in poi passeggeri), di visionare i passaggi esistenti e, eventualmente,

prenotarli. Tale applicazione per avere successo deve essere multi-piattaforma,

essendo così accessibile da diversi dispositivi. I più importanti sono senza dubbio

Browser web, applicazioni per sistemi operativi Andorid e iOS. Questi ultimi sono di

vitale importanza, dato che i passaggi molto probabilmente verranno prenotati in

momenti dove non ci sono computer a portata di mano.

Dal punto di vista software, si posso usare:

 HTML, CSS e Javascript per la programmazione del client su browser

 Javascript per la programmazione delle applicazioni mobili

 Apache per la realizzazione del web server

 PHP o NodeJs per la realizzazione della logica back-end

 Un qualsiasi database relazionale, come MySQL

Per la realizzazione dello schema concettuale della base di dati, rileggo il testo ed

evidenzio di giallo gli elementi che richiederanno la creazione di un’entità, di verde gli

attributi e azzurro le relazioni tra entità

Un’azienda start-up vuole costruire una piattaforma Web che consenta il car pooling

tra viaggiatori sul territorio nazionale, con l’obiettivo di diffondere l’uso di una mobilità

flessibile e personalizzata in termini di percorsi e costi.

Gli utenti della piattaforma possono essere di due tipi: utenti-autisti (coloro che

offrono un passaggio con la propria macchina) e utenti-passeggeri (coloro che

usufruiscono del passaggio).

Gli autisti devono registrarsi sul sito ed inserire i propri dati: generalità, numero e

scadenza patente di guida, dati dell’automobile utilizzata, recapito telefonico, email,

fotografia.

Per ogni viaggio che intendono condividere, gli autisti devono indicare città di

partenza, città di destinazione, data ed ora di partenza, contributo economico richiesto

ad ogni passeggero, tempi di percorrenza stimati. È responsabilità dell’autista, mano a

mano che accetterà passeggeri per un certo viaggio, dichiarare chiuse le prenotazioni

per quel viaggio, utilizzando un’apposita funzione sul portale.

L’utente-passeggero si deve registrare sulla piattaforma, indicando cognome e nome,

documento di identità, recapito telefonico ed email. La piattaforma fornisce ai

passeggeri la possibilità di indicare città di partenza e di destinazione e data

desiderata; presenta quindi un elenco di viaggi (per cui non siano ancora chiuse le

prenotazioni), ciascuno con le caratteristiche dell’autista e le modalità del viaggio

Come preparare le prove scritte e l'orale? Scoprilo con il nostro ebook gratuito sull'esame di

Maturità!

stesso inserite dall’autista (orario, eventuali soste previste alle stazioni di servizio,

possibilità di caricare bagaglio o animali, …).

Il passeggero sceglie quindi il viaggio desiderato con il corrispondente autista, anche

esaminando il voto medio e i giudizi dei feedback assegnati tramite la piattaforma dai

precedenti passeggeri all’autista stesso, e si prenota. Le informazioni sul passeggero

vengono inviate per email dalla piattaforma all’autista scelto, il quale può consultare

sul portale il voto medio e i giudizi dei feedback ricevuti dal passeggero da parte di

precedenti autisti e decidere se accettarlo o meno. Il passeggero di conseguenza

riceverà una email di accettazione o di rifiuto della prenotazione effettuata,

contenente, in caso di accettazione, un promemoria con città di partenza e

destinazione, data e orario del viaggio, dati dell’autista e della sua automobile.

A viaggio effettuato, il passeggero può inserire un feedback sull’autista, espresso sia

in forma di voto numerico che di giudizio discorsivo. A sua volta, l’autista può inserire

un feedback sul passeggero, espresso sia in forma di voto numerico che di giudizio

discorsivo. Sia i voti medi che i singoli giudizi dei feedback ricevuti da ciascun autista

sono disponibili ai passeggeri; analogamente, sia i voti medi che i singoli giudizi dei

feedback ricevuti da ciascun passeggero sono disponibili agli autisti.

Da questa analisi ne scaturisce il seguente schema concettuale:

Domanda 2

Da questo schema logico ne scaturisce naturalmente il seguente schema concettuale:

Come preparare le prove scritte e l'orale? Scoprilo con il nostro ebook gratuito sull'esame di

Maturità!

Entità:

UTENTE(email, nome, cognome, telefono)

AUTISTA(email, numeroPatente, scadenzaPatente, modelloAuto, targaAuto, foto)

PASSEGGERO(email, numeroCartaIdentita)

VIAGGIO(idViaggio, prezzo, tempoStimato, prenotabile, data, ora, cittaPartenza,

cittaDestinazione, numeroPatenteAutista)

CITTA(nome, provincia)

Relazioni:

FEEDBACK_AUTISTA(numeroPatente, numeroCartaIdentita, voto, giudizio)

FEEDBACK_PASSEGGERO(numeroPatente, numeroCartaIdentita, voto, giudizio)

PRENOTA(idViaggio, numeroCartaIdentita, numeroPersone, accettato)

PARTE_DA(idViaggio, nome, provincia)

ARRIVA_A(idViaggio, nome, provincia)

Domanda 3

SELECT viaggio.prezzo, autista.*

FROM Autista, Viaggio

WHERE Viaggio.cittaPartenza = A

AND Viaggio.cittaArrivo = B

AND Viaggio.data= GG/MM/AAAA

AND Viaggio.prenotabile = True

AND Viaggio.numeroPatenteAutista= Autista.numeroPatente

ORDER BY Viaggio.ora

SELECT viaggio.*, passeggero.*

FROM prenota, viaggio, passeggero

WHERE passeggero.numeroCartaIdentita = prenota.numeroCartaIdentita

AND viaggio.idViaggio = prenota.idViaggio

AND viaggio.data = GG/MM/AAAA

SELECT Passeggero.*, avg(fp.voto)

FROM Passeggero, Feedback_passeggero fp, prenota, viaggio

WHERE passeggero.numeroCartaIdentita =fp.numeroCartaIdentita

AND prenota.idViaggio = viaggio.idViaggio

Come preparare le prove scritte e l'orale? Scoprilo con il nostro ebook gratuito sull'esame di

Maturità!

AND Viaggio.cittaPartenza = A

AND Viaggio.cittaArrivo = B

AND avg(fp.voto)>N

GROUP BY passeggero.numeroCartaIdentita

Domanda 4

<!DOCTYPE html>

<html lang="it">

<head>

<meta charset="utf-8">

<title>Registrazione Utenti</title>

</head>

<script type="text/javascript">

function controlloClienti(){

nome = document.form_registrazione.nome.value;

cognome = document.form_registrazione.cognome.value;

telefono = document.form_registrazione.tel.value;

email = document.form_registrazione.email.value;

tipo_account = document.form_registrazione.tipo.value;

if(nome ===''| cognome==='' | telefono===''| email==='' |

tipo_account==0){

alert("Prima di continuare Inserisci i dati correttamente!");

return false

}

return true;

}

</script>

<body>

<h1>Viaggia con me!</h1>

<h2>Registrati!</h2>

<form class="form_registrazione" action="registrazione_nuovo_utente.html"

onsubmit="controlloClienti()" method="post">

<div class="field">

<p>Nome</p>

<input type="text" name="nome" value="">

</div>

<div class="field">

<p>Cognome</p>

<input type="text" name="cognome" value="">

Come preparare le prove scritte e l'orale? Scoprilo con il nostro ebook gratuito sull'esame di

Maturità!

</div>

<div class="field">

<p>Telefono</p>

<input type="text" name="telefono" value="">

</div>

<div class="field">

<p>Email</p>

<input type="text" name="email" value="">

</div>

<div class="field">

<p>Sei un autista o un passeggero?</p>

<select class="tipo" name="tipo">

<option value="0">Scegli</option>

<option value="1">Passeggero</option>

<option value="2">Autista</option>

</select>

<input type="submit" name="submit" value="conferma">

</div>

</form>

</body>

</html>

<?php

$nomeserver = "address";

$username = "user"

$nome_database = "database_1"

$password = "password" //andrebbe tenuta su file separato

$conn = new mysqli($nomeserver, $username, $password, $nome_database)

$email = $_POST["email"];

$nome = $_POST["nome"];

$cognome= $_POST["cognome"];

$telefono = $_POST["telefono"];

$tipo_utente = $_POST["tipo"];

if($tipo_utente==1) //Chiedi dati Autista

else //chiedi dati passeggero

$query= "INSERT INTO Utente (email, nome, cognome, telefono)

VALUES ($email, $nome, $cognome, $telefono)";

$esito = $conn -> query($sql);

Come preparare le prove scritte e l'orale? Scoprilo con il nostro ebook gratuito sull'esame di

Maturità!

if($result === TRUE){

//carica pagina successo registrazione

} else {

//carica pagina errore

}

$conn->close();

?>

Come preparare le prove scritte e l'orale? Scoprilo con il nostro ebook gratuito sull'esame di Maturità!

PROVA GRATIS

docsity.com/tutoring

Come preparare le prove scritte e l'orale? Scoprilo con il nostro ebook gratuito sull'esame di

Maturità!

SECONDA PARTE

Quesito 1

In relazione al tema proposto nella prima parte, il candidato integri il modello già

realizzato al fine di gestire in automatico il numero di posti disponibili nei vari viaggi,

evitando che sia responsabilità dell’autista dichiarare chiuse le prenotazioni sul portale.

Nel momento in cui inserisce un viaggio, l’autista dichiara il numero massimo di posti

disponibili. Mano a mano che gli autisti accettano le prenotazioni, il sistema

visualizzerà solo i viaggi con posti ancora disponibili: a tal fine, una prenotazione non

ancora accettata dall’autista non comporta alcun impegno del posto, che resta così

ancora disponibile per prenotazioni di altri passeggeri. Per ciascun viaggio, la

piattaforma mostrerà il numero dei posti disponibili e il numero delle prenotazioni non

ancora accettate. Il candidato sviluppi poi la pagina web, sia lato client che lato server,

per fornire ai passeggeri tali informazioni.

Soluzione Quesito 1

Per la gestione automatica del numero di posti disponibile basta aggiungere un campo

POSTI_DISPONIBILI alla tabella VIAGGIO. La sua gestione è molto intuitiva. Ogni volta

che un passeggero viene accettato da un autista, verrà eseguita una query del tipo

UPDATE … SET … WHERE …, decrementando POSTI_DISPONIBILI del numero di posti

prenotati dal passeggero. Una volta arrivato a 0 l’attributo prenotabile verrá messo a

False. Dal lato client, non vengono fatte modifiche alla pagine visualizzate dal

passeggero.

Quesito 2

In relazione al tema proposto nella prima parte, il candidato immagini di volere

documentare al committente l’operatività della piattaforma proposta. A tal fine,

imposti una relazione tecnica che presenti le principali caratteristiche dell’applicazione

Web in termini di organizzazione e funzionalità. In particolare, imposti la struttura di

tale relazione, motivando le scelte e scrivendo un esempio significativo dei relativi

contenuti

Come preparare le prove scritte e l'orale? Scoprilo con il nostro ebook gratuito sull'esame di

Maturità!

Soluzione Quesito 2

Una possibile relazione tecnica contiene i seguenti paragrafi:

1. Introduzione

1.1. Descrizione del progetto

1.2. Obiettivi del progetto

2. Casi d’uso e analisi dei requisiti

2.1. Descrizione del target di utenti

2.2. Scenari dei casi d’uso

2.3. Mock-up dell’interfaccia grafica

2.4. Requisiti

2.4.1. Requisiti funzionali

2.4.2. Requisiti non funzionali

3. Analisi

3.1. Analisi del dominio di applicazione

3.2. Definizione dello schema concettuale dei componenti principali e delle loro

funzionalità

4. Progetto

4.1. Definizione dell’architettura client-server

4.2. Definizione degli ambienti di sviluppo e selezione linguaggi di

programmazione

4.3. Analisi delle componenti del programma e dettaglio di parti di codice di

particolare rilevanza

5. Integrazione e Verifica

5.1. Pianificazione degli step di integrazione

5.2. Descrizione test di integrazione

5.3. Descrizione test di corretto funzionamento

5.4. Esito test di corretto funzionamento

6. Manutenzione

6.1. Descrizione degli interventi di manutenzione

7. Project Planning

7.1. Stesura calendario realizzazione del progetto

7.1.1. Stesura calendario interventi di manutenzione

7.2. Preventivo dei costi di realizzazione del progetto

Come preparare le prove scritte e l'orale? Scoprilo con il nostro ebook gratuito sull'esame di

Maturità!

Quesito 3

Dato il seguente schema relazionale:

film (id, titolo, durata, anno di produzione, genere);

attore (id, nome, cognome, data_nascita, fotografia);

recita (id_film, id_attore, ruolo);

il candidato:

 determini la modalità di gestione del campo ‘fotografia’ che prevede la

memorizzazione di una immagine dell’attore in un formato grafico (es. JPG);

 formalizzi in linguaggio SQL lo schema fisico corrispondente allo schema

relazionale, sapendo che:

1. il campo ‘genere’ ammette solo i seguenti valori: fantasy, giallo, commedia,

horror, drammatico, fantascienza, azione;

2. per la relazione ‘recita’, i campi ‘id_film’ e ‘id_attore’ referenziano

rispettivamente la chiave primaria delle relazioni ‘film’ e ‘attore’;

 discuta l’uso degli indici nel modello fisico di una base di dati e suggerisca con

motivato giudizio indici appropriati per questo schema relazionale, definendoli

in linguaggio SQL.

Soluzione Quesito 3

È possibile immagazzinare immagini direttamente all’interno del database, ma di solito

è fortemente sconsigliato. Quello che viene fatto è dedicare una directory del file

system del server al salvataggio delle immagini, e salvare all’interno del database un

riferimento ad esse.

I comandi SQL per definire la struttura sopra descritta sono i seguanti:

CREATE TABLE IF NOT EXIST Film (

id int(20) primary key not null

titolo varchar(64)

durata int(4)

anno_di_produzione int(4)

genere varchar(16) check(genere in (“fantasy”, “giallo”, “commedia”, “horror”,

“drammatico”, “fantascienza”, “azione”))

);

CREATE TABLE IF NOT EXIST Attore (

id int(20) primary key not null

Come preparare le prove scritte e l'orale? Scoprilo con il nostro ebook gratuito sull'esame di

Maturità!

nome varchar(64)

cognome varchar(64)

data_di_nascita date

anno_di_produzione int(4)

fotografia varchar(128)

);

CREATE TABLE IF NOT EXIST Recita (

id int(20) primary key not null

id_film int(20)

id_attore int(20)

ruolo varchar(64)

foreign key(id_film) references Film(id)

foreign key(id_attore) references Attore(id)

);

Un indice (nel campo dei database) è una struttura dati realizzata per migliorare i tempi

di ricerca (query) dei dati.Se una tabella non ha indici, ogni ricerca obbliga il sistema a

leggere tutti i dati presenti in essa. L'indice consente invece di ridurre l'insieme dei dati

da leggere per completare la ricerca. Ad esempio, se si ha un insieme di dati

disordinato, è possibile crearne un "indice" in ordine alfabetico, e sfruttare le proprietà

dell'ordine alfabetico per arrivare prima al dato o ai dati cercati. Si potrebbe pensare,

ad esempio, di applicare una ricerca binaria all'indice ordinato per reperire in tempi

più brevi le informazioni richieste. Gli indici hanno anche degli effetti negativi in quanto

rendono più lente le operazioni di inserimenti e modifica (update), ed aumentano l'uso

della memoria di massa.

Nell’esempio mostrato, ritengo utile creare un’indicizzazione per i titoli dei film e per i

nomi degli attori, poiché reputo essere i campi che verranno usati più spesso nelle

query di ricerca.

create index indiceNomeAttore on Attore(nome, cognome)

create index indiceTitolo on Film(titolo)

Come preparare le prove scritte e l'orale? Scoprilo con il nostro ebook gratuito sull'esame di

Maturità!

Quesito 4

Un’azienda desidera sviluppare un’applicazione Web per la prenotazione on-line di

eventi culturali, fruibile sia da computer desktop che da dispositivi mobili come tablet

e smartphone. Il candidato esponga i punti critici da affrontare relativamente alle

differenti proprietà di visualizzazione delle varie tipologie di dispositivi e alla rispettiva

fruizione dei contenuti. Illustri possibili misure risolutive, con esempi relativi

all’applicazione in questione.

Soluzione Quesito 4

La maggiore criticità proviene dal fatto che si usano schermi di dimensione e

risoluzione differente, creando risultati grafici molto diversi a seconda del dispositivo

che si sta usando e, conseguentemente, rischiando di stravolgere l’esperienza

dell’utente che vuole visitare la pagina. Per ovviare a questo problema occorre

utilizzare un’interfaccia responsiva, in grado di ottimizzare la visualizzazione degli

elementi in base alle dimensioni e alla risoluzione dello schermo. Ci sono due modi

piuttosto semplici per ottenere ciò: si possono creare delle regole di css diverse a

seconda del dispositivo, oppure si può reindirizzare l’utente a un’altra versione del sito

se vi accede da un dispositivo mobile. In ogni caso è consigliato adottare certi

accorgimenti, come le dimensioni degli elementi della pagina in percentuale rispetto

e non in pixel.

non sono stati rilasciati commenti
Questa è solo un'anteprima
3 pagine mostrate su 15 totali
Scarica il documento