Metodologie di Programmazione: Lezione 18
Vogliamo realizzare un'applicazione chiamata Web Site Analyser, in breve WSA, che permette di analizzare siti web e può essere d'aiuto per la loro manutenzione. L'applicazione deve avere un'interfaccia utente grafica che renda facile effettuare le seguenti operazioni.
L'operazione fondamentale è l'esplorazione di un sito web e la raccolta di informazioni su di esso. Il sito web è definito da un dominio, cioè un URL che consiste generalmente di un host ed eventualmente un path. Alcuni esempi,
http://docs.oracle.com/javase/specs/jls/se8
http://twiki.di.uniroma1.it/pub/Metod_prog
Inoltre l'utente deve anche specificare uno o più URL di pagine web appartenenti al dominio da cui iniziare l'esplorazione. Ad esempio per il primo dei due domini sopra menzionati, un URL d'inizio potrebbe essere
http://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html
L'esplorazione del sito cerca di scaricare tutte le pagine a partire da quelle iniziali e per ognuna di quelle appartenenti al dominio estrae i link e scarica le pagine relative e continua l'esplorazione fino a che non ci sono più link da scaricare.
Prima d'iniziare l'esplorazione di un sito l'utente può scegliere una locazione nel file system in cui archiviare i risultati anche parziali dell'esplorazione.
Durante l'esplorazione di un sito l'applicazione deve mostrare gli URL delle pagine scaricate, gli eventuali errori incontrati. Inoltre per ogni pagina appartenente al dominio deve mostrare i link estratti e per ognuno se è già stato seguito o se ha incontrato un errore. L'utente deve poter navigare facilmente questi dati che sono continuamente aggiornati.
Per ogni pagina del dominio scaricata deve mostrare il numero di link in essa contenuti e per ogni pagina considerata (anche quelle esterne al dominio) il numero di link finora trovati che puntano ad essa.
In ogni momento l'utente può cliccare su uno dei link è ottenere la visualizzazione della pagina. Inoltre può sospendere l'esplorazione e può riprenderla a piacere oppure può annullarla in modo definitivo.
L'utente può aggiungere nuovi URL per l'esplorazione anche mentre l'esplorazione è in esecuzione.
Se per l'esplorazione di un sito l'utente ha deciso una locazione di archiviazione, allora periodicamente (almeno ogni pochi minuti) durante l'esplorazione l'archivio deve essere aggiornato in modo tale che se per qualsiasi motivo l'applicazione si interrompe, l'esplorazione può essere ripresa senza perdere troppo lavoro.
L'utente può aprire in ogni momento l'archivio di un sito web ed eventualmente riprenderne l'esplorazione se non era terminata. Ma anche se era terminata l'utente può aggiungere qualche altro URL e riprendere l'esplorazione se questi sono diversi da quelli già visitati.
Quando un archivio è aperto la WSA permette di navigare facilmente tutti i suoi dati: gli URL delle pagine e dei link classificandoli come interni al dominio, esterni al dominio, scaricati con successo o con errori. Per ogni URL dà la possibilità di visualizzare la pagina e mostra la lista dei link che puntano alla pagina (tra quelli esplorati) e per quelli appartenenti al dominio mostra anche la lista dei link contenuti nella pagina. Inoltre per ogni URL scaricato appartenente al dominio mostra anche il numero di immagini, il numero di nodi e l'altezza dell'albero di parsing.
Per un sito web aperto la WSA permette anche di ottenere dati statistici generali come: numero totale di URL visitati, numero di URL interni al dominio, numero URL che hanno prodotto errori, massimo numero di link in una pagina, numero massimo di link che puntano ad una pagina. Inoltre, la WSA dovrebbe mostrare anche dati di un sito anche sotto forma di grafici. Ad esempio istogrammi relativi ai link uscenti e a quelli entranti.
Per un sito aperto la cui esplorazione sia terminata l'utente può chiedere di calcolare la distanza tra due URL interni al dominio e anche la massima distanza tra tutte le coppie di URL sempre appartenenti al dominio.
Relativamente a due o più siti aperti la WSA deve permettere di calcolare il numero di link da uno dei siti verso un altro.
Questa lezione è dedicata all'analisi di questi desiderata con lo scopo di arrivare a una descrizione più precisa dell'applicazione WSA e ad una specifica di alto livello dell'architettura software del progetto.
Le specifiche del progetto sono in progetto.
11 Mag 2015