Gruppo 4: Gelmi Martina, Morelato Francesca, Parisi Elisa La mia scuola ha un sito Web Presentazione del corso Contenuti e obiettivi del corso Imparare a lavorare Ingegneria del Web con le metodologie dell’ingegneria del Web per lo sviluppo di applicazioni con l’obiettivo della qualità. Qualità Qualità Presentazione del Corso Orari e contatti venerdì 23 settembre, ore 8.45-9.35, aula 201 venerdì 30 settembre, ore 8.45-9.35, aula 104 (PC) venerdì 7 ottobre, ore 8.45-9.35, aula 201 venerdì 14 ottobre, ore 8.45-9.35, aula 201 venerdì 21 ottobre, ore 8.45-9.35, aula 104 (PC) [email protected] [email protected] [email protected] Presentazione del Corso Materiale didattico e modalità di valutazione Tutto il materiale didattico è disponibile sul sito www.g4discs.wikispaces.com Esame scritto con - domande a risposta multipla, - vero o falso, - domande aperte. Sul sito del corso ci sono alcuni esempi di possibili domande nella sezione Test di verifica sui contenuti. Contenuti della 1°Lezione 1. Internet, il www e i siti Web Reti di calcolatori e Internet World Wide Web Siti Web 2. Ingegneria del software Definizione Modelli di sviluppo del software 3. Ingegneria del Web Definizione Qualità dei siti Web Modello di sviluppo di un'applicazione Web Internet, il www e i siti web Rete di calcolatori: struttura di telecomunicazione in cui più calcolatori sono collegati tra di loro per condividere e scambiare informazioni; la comunicazione avviene mediante lo stesso schema di comunicazione (protocollo). Le reti si possono classificare in differenti modi: • per dimesione (LAN, MAN, WAN); • per supporto di telecomunicazione (cavo ethernet, doppino telefonico, fibra ottica, wireless); • per topologia della rete (a stella, ad anello, a bus); • per stabilità della connessione (sempre attiva, mobile). Internet, il www e i siti web Si possono collegare tra loro reti diverse, mediante specifici protocolli, per formare una rete di reti. Internet: rete planetaria di tutte le reti collegate tra loro, che comunicano mediante l’Internet Protocol (IP). WWW (World Wide Web = Grande Ragnatela Mondiale): principale servizio di Internet che permette di accedere ai contenuti multimediali (organizzati in maniera ipertestuale) e ad altri servizi. Sito Web: insieme di pagine Web collegate in maniera ipertestuale - le pagine risiedono in un Web server; - l’utente vi accede mediante un Web browser. Internet, il www e i siti web Possiamo distinguere due tipologie principali di siti Web: • • • Siti Web statici: presentano contenuti di sola lettura per l’utente; i contenuti variano con bassa frequenza e solo mediante modifica del codice HTML della pagina; i primi siti Web erano così. • • • Siti Web dinamici: caratterizzati dall’interazione dell’utente con il sito; i contenuti variano dinamicamente; vengono scritti con linguaggi di scripting. I siti Web vengono poi divisi in categorie per inquadrarne il settore di operatività o i servizi offerti: Ingegneria del software → disciplina che si occupa dei processi produttivi e delle metodologie di sviluppo finalizzate alla realizzazione di sistemi software. OBIETTIVI: legati all'evoluzione dello sviluppo del software da 2 punti di vista: punto di vista tecnologico: attraverso la definizione di nuovi linguaggi di programmazione. punto di vista metodologico: definizione di un software modelli di realizzazione del come un prodotto industriale software (scomposizione dell’attività in sottoattività) (esami di qualità) Ingegneria del software Anni ’60: necessità di sviluppare prodotti sempre più complessi ed evoluti per rispondere alle esigenze → disciplina che si occupa della realizzazione del software. Da uso in ambito scientifico e militare si passa ad un uso industriale → cambiando il bacino di utenti, cambiano alcune esigenze (grafica) . Si cerca di definire formalmente cosa possa descrivere un buon prodotto software. Problema ancora aperto: produrre con tempi e costi prestabiliti dei sistemi software di formidabili dimensioni. Ciclo di vita del software: modo in cui un modello scompone l'attività di realizzazione dei prodotti in sottoattività fra loro coordinate, il cui risultato finale è il prodotto stesso e tutta la documentazione a esso associata. Modelli di sviluppo del software Modello a cascata • Primo modello in ordine storico: inventato negli anni ’60, si diffonde negli anni ’70. • Limiti: rigidità e linearità dei processi che provocavano una lievitazione dei costi soprattutto di manutenzione. A questo metodo si deve la definizione delle fasi chiave (ogni fase produce un output che diventa input della fase successiva): 1. studio di fattibilità, 4. collaudo, 2. analisi dei requisiti, 5. integrazione, 3. progetto, 6. manutenzione. Nonostante le critiche rimane il modello “canonico” sul quale si sono sviluppate diverse variazioni. Modelli di sviluppo del software Modello evolutivo • Si basa sulla realizzazione di prototipi la cui verifica può portare a una modifica dei requisiti e una eventuale revisione del progetto. • È un modello costituito da poche fasi che si ripetono: • 1. costruisci qualcosa; 2. consegnalo all’utente; 3. ottieni delle valutazioni; 4. modifica il progetto in funzione delle valutazioni Miglioramenti: elimina gli errori nei requisiti. • Limiti: non riduce i tempi per il completamento del ciclo di sviluppo. • Ce n’è un’evoluzione teorica che passa sotto il nome di modello trasformazionale. Modelli di sviluppo del software Modello a spirale • Metamodello: consente di rappresentare i diversi cicli di vita. • Si concentra sull’identificazione e l’eliminazione dei problemi ad alto rischio. • È un modello ciclico, non lineare che si sviluppa su 4 fasi: 1. • • identificazione degli obiettivi e delle alternative, 2. individuazione delle potenziali aree di rischio, 3. sviluppo e verifica del prodotto finale, 4. revisione dei risultati. Mescola: natura iterativa dei prototipi e aspetti controllati e sistematici dei modelli lineari. Permette di strutturare l’attività di manutenzione che molti altri modelli trascurano. Modelli di sviluppo del software Modello a fontana • Modello altamente iterativo (adatto per la programmazione orientata ad oggetti e per grandi progetti sviluppati da più persone). • Riconosce che, nonostante alcune attività non possano iniziare prima di altre, c’è una considerevole sovrapposizione tra le attività durante il ciclo di sviluppo. • Nel disegno sono presenti però degli zampilli, anche a livelli inferiori, indice che in alcuni casi è necessario fare una certa attività di ripianificazione. • Permette uno sviluppo di componenti software maggiormente autonomo, all’interno di un’infrastruttura unificante (adatto per lo sviluppo di software modulare). Modelli di sviluppo del software Metodologia agile • Coinvolge il più possibile il committente, tenendo conto delle sue richieste. • Si sviluppa come una serie di piccoli progetti che contengono quanto necessario per un piccolo incremento nelle funzionalità. • Le fasi sono: • • 1. pianificazione; 2. analisi dei requisiti; 3. progetto; 4. implementazione; 5. test. Il risultato di ogni singola iterazione non è completo, la sequenza di iterazioni si avvicina sempre di più alle richieste del cliente. Alla fine di ogni iterazione il team deve rivalutare le priorità di progetto. Ingegneria del Web → processo per la creazione di applicazioni Web di alta qualità • Gli ingegneri del Web sono richiesti dalle aziende per creare siti che abbiano un alto livello di qualità dal punto di vista tecnologico ma allo stesso tempo che siano semplici da utilizzare. • Ingegneria del Web e del software non si occupano dello stesso problema, ma la seconda serve come base di partenza per lo sviluppo della prima. OBIETTIVI delle applicazioni Web (e in generale delle applicazioni software) di qualità: accessibilità e usabilità Ingegneria del Web: qualità → Un prodotto (qualsiasi) sul mercato è detto di qualità se soddisfa ciò che l'acquirente si aspetta da esso. • La grandissima diffusione di Internet e del Web in tempi recenti ha fatto nascere l'esigenza di avere norme tecniche a riguardo. • L'ISO (International Organization for Standardization) insieme alla IEC (Commissione Elettrotecnica Internazionale), ha sviluppato una serie di normative che definiscono la qualità di un prodotto software (e quindi in particolare di un sito Web): la qualità nell'uso di un prodotto software è "la capacità di un prodotto di aiutare determinati utenti a raggiungere determinati obiettivi con efficacia, efficienza, sicurezza e soddisfazione, in determinati contesti d’uso". In questa definizione la qualità viene vista da parte dell'utente e dunque da colui che utilizzerà il prodotto → qualità in uso. Ingegneria del Web: qualità La qualità di un qualsiasi prodotto software può essere valutata come: • qualità interna: riguarda come è fatto internamente il sito e quindi interessa "solamente" il programmatore o il creatore di quel sito (poco importante per i siti, lo è di più per i prodotti software in generale). • qualità esterna: riguarda come il sito viene visto da fuori, dunque riguarda la grafica e l’architettura. • qualità in uso: riguarda direttamente l'utente e le caratteristiche che rendono il sito adeguato a ciò che l'utente deve o vuole riuscire a fare con esso. Idealmente, la qualità interna determina la qualità esterna e la qualità esterna determina quella in uso. Ingegneria del Web: modello di sviluppo • I modelli di sviluppo per un prodotto software spesso non tengono conto di alcune peculiarità dell'ingegneria del Web, e dunque, risultano meno adatti alla creazione di siti Web di qualità. • Usiamo un modello a spirale con alcune caratteristiche particolari che lo rendono adatto per le applicazioni Web; ogni ciclo è composto da: 1. analisi dei requisiti; 2. progettazione di tutte le componenti; 3. realizzazione dell’applicazione Web; 4. valutazione in funzione degli obiettivi e dei requisiti.