Pizzeria SGS online - UNIVERSITA' DEGLI STUDI DI CATANIA CORSO DI LAUREA IN INFORMATICA APPLICATA ANNO ACCADEMICO 2008/09 INGEGNERIA DEL SOFTWARE ...
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
UNIVERSITA’ DEGLI STUDI DI CATANIA CORSO DI LAUREA IN INFORMATICA APPLICATA ANNO ACCADEMICO 2008/09 INGEGNERIA DEL SOFTWARE – Prof. G. Scollo Simone Agosta Graziano Di Raimondo Simone Susino Pizzeria SGS online Progetto di ingegneria del software 1
INDICE Introduzione 5 1. La metodologia di progettazione 7 1.1 Rassegna dei modelli di architettura del processo produttivo 7 1.2 Dalla qualità alla scelta dell'architettura di processo 9 2. Studio di fattibilità 13 2.1 Definizione degli obiettivi 13 2.2 Strategie e politiche di gestione 14 2.3 Identificazione di risorse e vincoli operativi 15 2.4 Stima di costi e tempi 16 2.4.1.Tempi di realizzazione 16 2.4.2.Costi di produzione 17 3. Piano operativo 19 3.1 Norme comuni di lavoro 19 3.2 Scelte operative 20 3.3 Pianificazione delle attività 20 3.4 Allocazione di risorse 23 3.5 Pianificazione di costi e tempi di produzione 23 3.6 Pianificazione dell'organizzazione del gruppo di lavoro 27 3.6.1. Struttura organizzativa 27 3.6.2. Definizione dei ruoli 27 2
4. Analisi dei rischi 28 4.1 Valutazione dei rischi 28 4.1.1.Analisi e gestione dei rischi 28 5. Analisi e specifica dei requisiti 33 5.1 Determinazione dei requisiti 33 5.2 Analisi dei requisiti 36 5.3 Negoziazione e validazione 38 6. Studio dell'usabilità 39 6.1 Progettazione dell'usabilità 39 6.2 Valutazione dell'usabilità 42 7. Unified Modeling Language – UML 45 7.1 Perché UML 45 7.2 Notazioni generali 48 7.3 UML 2.0 48 7.4 Diagrammi UML (versioni 1.x) 50 7.5 Diagrammi UML (versioni 2.x) 50 7.6 Aspetti della modellazione 51 7.7 Struttura di un modello UML 52 7.8 Qualità di un modello 53 7.9 MDA – model driven architecture 53 7.10 Notazioni e meta-modelli 55 7.11 Relazioni tra i diagrammi 56 7.12 Integrare UML nel processo 57 3
8. Diagrammi UML 59 8.1 Diagrammi strutturali 59 8.1.1 Diagramma delle classi 59 8.2 Diagrammi di comportamento 61 8.2.1 Diagramma delle attività 61 8.3 Diagrammi d’ interazione 65 8.3.1 Diagramma di sequenza 66 8.3.2 Diagramma di collaborazione 70 8.4 Diagrammi d’implementazione 71 8.4.1 Diagramma dei componenti 71 9 Riferimenti 73 4
INTRODUZIONE Nome progetto Pizzeria SGS online Idea di progetto Si intende progettare un sito web di una pizzeria (brick and click) nel quale un utente potrà consultare il menu, prenotare per asporto a domicilio, prenotare tavoli, prenotare la sala per eventi speciali oltre alle classiche informazioni del tipo: chi siamo, dove siamo, personale, contatti, etc... Il sito web prevede la registrazio ne dell'utente, necessaria per effettuare qualunque tipo di prenotazione e per poter postare messaggi sul forum. L'idea avrà per l'azienda i seguenti vantaggi: segmentazione della clientela in base ai dati forniti in fase di registrazione e agli acquisti effettuati. tenere traccia del passato per effettuare stime sul futuro. utilizzare le conversazioni, i consigli, e i feedback dei messaggi degli utenti postati sul forum per migliorarsi nel futuro. Obiettivi formativi Fornire un analisi dei seguenti punti: metodologia di progettazione studio di fattibilità e piano operativo analisi dei rischi analisi e specifica dei requisiti studio dell'usabilità Diagrammi UML 5
Componenti del gruppo: Simone Agosta (153), Simone Susino (138), Graziano Di Raimondo (168) 6
1.LA METODOLOGIA DI PROGETTAZIONE DEL SOFTWARE (Graziano Di Raimondo) 1.1 RASSEGNA DEI MODELLI DI ARCHITETTURA DEL PROCESSO PRODUTTIVO L’ obiettivo di questa fase è di progettare l’architettura del processo produttivo per un prodotto per il quale sono stati determinati gli aspetti di qualità indicati nella Introduzione. Data l’eterogeneità dei prodotti software e delle aziende che li realizzano non esiste un unico modello di sviluppo del software adeguato a tutte le situazioni pertanto sorge la necessità di progettare un processo di sviluppo che sia consono alle caratteristiche di qualità desiderate del prodotto e dell’utente nonché alle caratteristiche dell’azienda di produzione. La qualità del prodotto può essere raggiunta solo attraverso determinate qualità corrispondenti del processo: non si può aggiungere qualità ad un prodotto finito se non progettando la qualità fin dalle prime fasi del processo. Ciò può essere ottenuto valutando i vantaggi e gli svantaggi delle principali metodologie di processo detto anche ciclo di vita del software. Qualsiasi ciclo di vita di un prodotto serio conterrà sicuramente almeno tutte le fasi previste nel Modello a cascata. Ovviamente le fasi non hanno tutte la stessa complessità e importanza nei vari prodotti ed ambiti e non sono in relazione tra loro sempre negli stessi modi, tuttavia presentando obiettivi presenti in tutti i prodotti. Le fasi sono: lo studio di fattibilità: dato un problema Utente, avanza ipotesi di realizzabilità o di soluzioni alternative (es.outsorcing); l’analisi dei requisiti: produce la specifica dei requisiti, la descrizione univoca e definita delle esigenze dell’Utente; la modellazione: valuta e definisce l’architettura del sistema; la progettazione: realizza lo schema del progetto; 7
lo sviluppo e collaudo delle unità: produce e testa i singoli moduli; l’integrazione e collaudo del sistema: genera il prodotto completo e lo testa; l’installazione: consegna il prodotto all’Utente e mette in funzione; la manutenzione: corregge gli errori e adatta il prodotto alle mutate esigenze. L’installazione prevede la convalida W3C, l’acquisto del dominio e caricamento del sito nel dominio. Il Modello a cascata presenta due svantaggi: ogni fase è terminata completamente prima di passare a quella successiva; l’utente viene coinvolto solo all’inizio e alla fine del processo. Altri modelli che superano i limiti del modello a cascata sono: il modello incrementale, usato particolarmente per prodotti complessi con molte funzionalità indipendenti tra loro, prevede la produzione e consegna di sottosistemi parziali del prodotto per anticipare il feedback dell'Utente e le eventuali modifiche; i sottosistemi successivi incrementano così le funzionalità del sistema; può essere anche usato in caso di presenza di requisiti vaghi iniziando lo sviluppo da quelli più definiti e precisi; 2) il modello a prototipazione rapida, usato nei casi in cui l'incertezza dei requisiti è rilevante per cui si consegna un prototipo con o senza funzionalità contenente solo l'interfaccia utente;si inizia lo sviluppo dopo la validazione utente eventualmente tenendo il prototipo se questo è stato prodotto con lo stesso linguaggio usato per l'implementazione; 3) modelli evolutivi, usati nei casi di: a) alta velocità di cambiamento (evoluzione) nell'uso del prodotto; b) progettazione partecipativa; c) sviluppo incrementale con prototipazione rapida; d) alta velocità di cambiamento (evoluzione) delle tecnologie usate nel prodotto che pertanto viene sviluppato per componenti, ovvero tramite interfacce, modularità e architettura a strati (produzione per componenti); 4) modelli trasformazionali, nei quali la definizione ed il raffinamento avviene con metodi formali che ad ogni livello di astrazione raggiunto applicano un processo (anche automatico) di verifica di correttezza matematico-logica; garantiscono la pressoché totale assenza di errori a 8
partire dalla specifica dei requisiti ma non garantiscono la completezza lasciando aspetti del sistema indefiniti; 5) il Modello a spirale, proposto da Boehm nel 1988, che prevede la ripetizione continua di quattro fasi: a) la validazione Utente, funge da cerniera con l'iterazione successiva; b) la pianificazione del processo e delle risorse; c) il controllo del processo – analisi dei rischi; d) lo sviluppo e collaudo che contiene quasi tutte le fasi del modello a cascata e che a seguito di aggiornamenti nella pianificazione e/o nell'analisi dei rischi può adottare un modello diverso. 1.2 DALLA QUALITA' ALLA SCELTA DELL'ARCHITETTURA DI PROCESSO Per qualità del software si intende la misura in cui un prodotto software soddisfa un certo numero di aspettative rispetto sia al suo funzionamento sia alla sua struttura interna. Gran parte della ricerca nel campo dell'ingegneria del software è dedicata, direttamente o indirettamente, al tema della qualità. Il requisito della qualità è di portata talmente generale che la sua formalizzazione non è possibile né desiderabile. Il che cosa della qualità meglio si presta a essere mostrato piuttosto che definito. Requisiti generali di qualità sono simili a principi estetici, suscettibili di valutazione, giudizio e gusto personale, anche quando ci si limiti ad uno specifico campo di interesse; ne è un esempio la caratterizzazione di principi di qualità in architettura dei calcolatori proposta da (Blaauw et al.1997). Appare dunque molto inverosimile che si possa mai raggiungere un consenso universale sulla definizione di principi generali di qualità. La qualità di processi produttivi e prodotti è naturalmente oggetto di normativa tecnica internazionale. L'ISO ( International Organization for Standardization ), ha da tempo pubblicato una serie di standard sulla qualità, la serie ISO 9000 (Peach 1997), su cui si basano procedure di certificazione di qualità di processi produttivi e servizi. 9
Il documento ISO 9126 (ISO 1991), invece, concerne specificamente la qualità di prodotti software, ed il suo contributo più rilevante in questa sede consiste nella definizione di alcune caratteristiche generali di qualità di tali prodotti, raggruppandole in sei categorie riguardanti i requisiti di Funzionalità, Affidabilità, Usabilità, Efficienza, Manutenibilità e Portabilità. Gli obiettivi di qualità del prodotto ci danno le principali indicazioni riguardo le caratteristiche del Modello di sviluppo. L'Appropriatezza, l'Accuratezza, la Sicurezza, l'Usabilità e l'Efficienza sono proprietà la cui verifica chiama spesso in causa l'Utente per cui è più adeguato il modello a spirale. L'Affidabilità e la Manutenibilità incidono nella Struttura produttiva in quanto una efficiente risoluzione nella gestio ne di tali obiettivi può semplificare notevolmente la futura evoluzione adattativa e perfettiva del prodotto. A tale scopo uno sviluppo per componenti garantisce i migliori risultati a scapito di un maggiore lavoro iniziale. Data la forte evolutività dei tipici sistemi software e siti Web e considerate le valutazioni sui modelli di cui sopra, si propende per l’adozione del Modello a spirale in cui la Validazione utente pone l'Utente al centro del processo e la Pianificazione delle risorse si occupa di ottimizzare le risorse e di minimizzare i rischi. Solo nella prima iterazione del ciclo la Validazione va intesa come definizione delle esigenze degli utenti mentre nelle successive iterazioni l'utente effettua il controllo e la convalida del prodotto rispetto alle proprie esigenze. Questo Modello può essere adeguato successivamente alla particolare situazione operativa. Il Modello a Spirale prevede inoltre una fase di Analisi dei rischi, susseguente alla Pianificazione, che realizza il controllo del processo con l'obiettivo di ridurre la probabilità di insuccesso e di ottimizzare risorse umane e costi, attraverso una articolata attività di identificazione, pianificazione, rilevamento e gestione dei rischi. L'articolazione delle informazioni e delle decisioni prese nelle prime 3 fasi consentono di scegliere per la 4a fase il modello di sviluppo e collaudo più adeguato alle condizioni ambientali ed ai vincoli dell'Utente e dell'Azienda produttrice. 10
Il modello a spirale è un modello del ciclo di vita del software che consente di rappresentare i diversi cicli di vita per cui può essere visto come un metamodello. Esso si concentra sull’identificazione e l’eliminazione dei problemi ad alto rischio tralasciando quelli banali. La caratteristica principale del modello è quella di essere ciclico e non lineare, ogni ciclo di spirale si compone di quattro fasi, il raggio rappresenta il costo accumulato e la dimensione angolare il progresso nel processo. La prima fase identifica gli obiettivi e le alternative, poi le alternative si valutano nella seconda fase in cui vengono evidenziate le potenziali aree di rischio. La terza fase consiste nello sviluppo e nella verifica del prodotto, infine la quarta fase consiste nella revisione dei risultati delle tre fasi precedenti. Le varie fasi del modello sono cosi caratterizzate: • iterazione una visione iterativa, senza fine, del ciclo di vita, dove ogni iterazione attraversa una sequenza di fasi che si ripete all'iterazione successiva; • contrazione delle fasi di sviluppo la contrazione di quasi tutte le fasi tipiche del ciclo di vita a cascata, per ciascuna iterazione, in un'unica fase (la IV) di questo modello; • interazione con gli utenti l'interazione con gli utenti, nella fase I, o di validazione, ad ogni iterazione: questa fase funge da cerniera fra iterazioni successive; • metamodello 11
la possibilità di fungere da meta-modello del processo di sviluppo, in quanto la fase II, o di pianificazione, che ha per oggetto la determinazione di alternative, obiettivi e vincoli per l'iterazione, può includere fra le alternative più modelli di processo per la fase IV, e la fase III scegliere fra questi il modello che risulta più conveniente, a seguito di una analisi dei rischi. Il modello di sviluppo può dunque cambiare da una iterazione all'altra. 12
2. STUDIO DI FATTIBILITA' (Simone Agosta) Per studio di fattibilità si intende lo svolgimento di un'analisi atta a valutare le scelta aziendali da prendere. In particolare, questa fase ha come scopo quello di determinare la convenienza o meno di sviluppare l'idea di progetto scaturita dalle esigenze degli utenti in un prodotto realizzabile. Le decisioni vengono prese dopo un'analisi di costi e benefici e degli strumenti posseduti dall'azienda. In questa fase, poiché si hanno a disposizione informazioni scarne e superficiali, non si possono effettuare valutazioni sicure di successo. Infatti, molte volte le decisioni prese durante l'analisi di fattibilità e i risultati previsti si discostano di gran lunga da quello che si verifica durante lo sviluppo del progetto. Bisogna tenere presente che la fattibilità può essere studiata sotto diversi punti di vista: Fattibilità Tecnica: vengono verificate se le caratteristiche tecniche dell'idea di progetto sono realizzabili; Fattibilità Economica: si determinano i costi da sostenere e le possibilità finanziarie di copertura possedute dall'azienda; Fattibilità Temporale: vengono valutati i tempi necessari allo sviluppo dell'idea di progetto e se questi rientrano nelle esigenze indicate dagli utenti e dal mercato; Fattibilità Organizzativa: viene valutata l'organizzazione aziendale esistente e le eventuali misure da prendere. 2.1 DEFINIZIONE DEGLI OBIETTIVI Gli obiettivi che si intendono raggiungere dallo sviluppo di questo progetto sono: 13
– realizzazione di un sito web per una pizzeria (che con semplici modifiche può essere applicato a qualunque azienda di ristorazione di tipo brick and click) nel quale un utente potrà consultare il menu, prenotare per asporto a domicilio, prenotare tavoli, prenotare la sala per eventi speciali oltre alle classiche informazioni del tipo: chi siamo, dove siamo, personale, contatti, etc...All’interno del sito sarà presente anche un forum. – il software deve rispondere ai requisiti richiesti dagli standard internazionali (w3c); – il prodotto deve soddisfare le esigenze del mercato, quindi essere adattabile ad ogni richiesta o tecnologia innovativa; – il software deve risultare affidabile e deve garantire livelli di performance prefissati, in date condizioni e per un dato periodo di tempo; – rendere il processo di produzione più efficace minimizzando i costi e i tempi; – aumentare e valorizzare le capacità dell'impresa usufruente al fine di determinare una crescita sia in termini finanziari che di prestigio aziendale. 2.2 STRATEGIE E POLITICHE DI GESTIONE Per lo sviluppo di questo progetto si prevede la classificazione del personale in tre aree: 1. Area di sviluppo: ha il compito di progettare, programmare e analizzare il software; 2. Area di management: il personale che occupa quest'area ha il ruolo di coordinare i processi aziendali in relazione agli obiettivi posti; 3. Area di marketing: necessaria al fine di promuovere il sito web. 14
L'area di sviluppo presenterà un'ulteriore suddivisione in relazione alla modularità del progetto e alla specializzazione dei singoli dipendenti. Durante la produzione del software sono previsti incontri tra sviluppatori e destinatario del sito in modo tale da valutare lo stato del prodotto e la sua compatibilità con i requisiti indicati. La centralità e il ruolo attivo svolto dall'utente sono dei fattori che fanno cadere sul modello a spirale la scelta dell'Architettura del processo produttivo da adottare. 2.3 IDENTIFICAZIONE DI RISORSE E VINCOLI OPERATIVI In questa fase è possibile effettuare soltanto una valutazione preliminare ma utile delle risorse che l'azienda ha bisogno per lo svolgimento del progetto secondo i termini stabiliti. Le principali risorse umane richieste sono: 1 programmatore con ottima conoscenza ed esperienza in gestione di basi dati e programmazione web che svolge anche il ruolo di coordinatore dei processi di produzione. 1 web e graphic designer con buone conoscenze di programmazione web. 1 esperto in comunicazione e marketing con buone conoscenze di programmazione web. 1 rappresentante dell’azienda interessata ad usufruire del software. Le funzionalità non sono esclusive, in quanto un dipendente può assumere diversi ruoli, purché non si vada in contrasto con i principi di buona produzione. Oltre alle risorse umane sono necessari beni materiali come: un locale in cui svolgere l'attività, postazioni hardware, software e ambienti di sviluppo per la realizzazione del progetto. Per quanto riguarda i costi concernenti la sede di lavoro,le componenti hardware e software necessari per lo sviluppo del sito web sono a carico dall'azienda produttrice. 15
I vincoli operativi che sono presenti nell'organizzazione sono di natura temporale (il prodotto deve essere sviluppato nel più breve tempo possibile) ed economica (l'azienda deve cercare di contenere i costi per poter offrire un buon prezzo all’azienda destinataria); quelli esterni all'organizzazione sono rappresentati, invece, dalla necessità di aggiornamento manutenzione del prodotto. 2.4 STIMA DI COSTI E TEMPI La stima di costi e tempi ha come scopo quello di dare un'idea di massima sull’ammontare dei costi in termini monetari e temporali per la realizzazione del progetto. Poiché, come detto prima, le informazioni a disposizione dell'azienda sono limitate non è possibile dare una valutazione precisa dei costi di produzione e dei tempi di realizzazione. Effettuare una stima di questi due fattori aiuta però a capire quale sarà lo sforzo complessivo che dovrà sostenere l'organizzazione aziendale. 2.4.1 Tempi di realizzazione Per la realizzazione del prodotto nella forma standard è previsto un tempo di circa tre mesi, comprensivo di analisi e collaudo. Tale stima, però, può subire variazioni in relazione alle personalizzazioni richieste dagli utenti. Il calcolo del tempo di realizzazione previsto è stato effettuato utilizzando un noto modello di stima dei costi del software, il COCOMO (COnstructive COst MOdel). Questo strumento mette a disposizione tre livelli di dettaglio, e poiché in questa fase di studio di fattibilità non sono disponibili informazioni sulle caratteristiche operative e su altri fattori di costo (cost drivers) è stato operata un'analisi con il modello basilare riferito ai progetti Organici (Organic Mode). Tali progetti hanno dimensioni ridotte in cui piccoli team con buone esperienze lavorano ad un insieme di rigidi requisiti. Il modello basilare ha come scopo quello di dare una stima dello sforzo totale (in mesi persona) e del tempo di sviluppo, utilizzando come unico parametro la previsione delle dimensioni del prodotto finale. Le stime 16
prodotte hanno una percentuale di scostamento inferiore al 20% nel 25% dei casi. Le due formule utilizzate da questo modello sono le seguenti: Sforzo E = a ∗ (N)b Tempo di sviluppo D = c ∗ (E)d dove, E (effort) indica la quantità di lavoro (espressa in Mesi/Persona), D (duration) rappresenta il tempo di sviluppo (espresso in Mesi) e N rappresenta il numero di linee di codice previste (espresse in migliaia). Per il calcolo di questi indici sono stati adoperati i coefficienti standard del modello Basic COCOMO che hanno i seguenti valori: a=2,4 b=1,05 c=2,5 d=0,38 Considerando una stima approssimativa di 3000 righe di codice sono stati registrati i seguenti risultati: E = 2,4 ∗ 31,05 = 7,6 mesi/persona D = 2,5 * 7,60,38 = 5,4 mesi Dai precedenti valori è possibile determinare il numero minimo di persone richieste per sviluppare il progetto: P = E/D = 7,6/5,4 = 1,4 persone Il che vuol dire che con tre persone il progetto potrà essere portato a termine in meno di tre mesi. 2.4.2 Costi di produzione La stima dei costi di produzione tiene conto delle spese che l'azienda dovrà sostenere durante il periodo di realizzazione del progetto. I valori sono 17
calcolati tenendo conto del fatto che l’azienda effettua altri lavori nel periodo di riferimento e che quindi i costi vengono ripartiti tra tutti i lavori. Inoltre c’è da considerare il fatto che molti beni (come ad esempio un personal computer) possono essere utilizzati per tanti anni e che quindi potranno essere utilizzati per tanti altri lavori futuri. L’ azienda produttrice offre un servizio di hosting del sito nel proprio server, ed essa si occupa dell’acquisto del dominio e dell’avviamento del sito internet. È stato ipotizzato una quota di affitto locale di € 100,00 mensili, una quota per l’utilizzo di tre pc di 90 euro mensili, una quota per l’utilizzo del server di 60 euro annui, una quota per l’utilizzo di software di 20 euro mensili, canone annuale dominio di 40 euro, costi di connessione internet di € 10,00 al mese, spese per energia elettrica pari a € 15,00 al mese e stipendi valutati 200 euro al mese per ognuno dei tre lavoratori. Calcolando l'ammontare delle spese totali per un periodo di 3 mesi si ottiene una stima dei costi durante il periodo di produzione pari a € 2.485. In tal caso si può pensare di vendere il prodotto finito a 3000 € . Dal secondo anno in poi il cliente dovrà pagare 150 euro annui per l’affitto del server e il pagamento del canone riguardante il dominio. 18
3. PIANO OPERATIVO (Simone Agosta) Il piano operativo è un documento stilato dall'azienda al fine di definire le attività da svolgere e determinare in modo sicuro le scadenze temporali, i costi e le risorse necessarie. 3.1 NORME COMUNI DI LAVORO Le norme di lavoro adottate dall'azienda per questo progetto sono differenti rispetto a quelle fissate dagli standard dell'organizzazione stessa. Per questo progetto si è scelto di dare una particolare rilevanza all'interazione tra l'azienda e gli utenti in modo tale da produrre un software che rispecchi le esigenze del mercato. In questo caso l’utente che testerà il software è il destinatario del software stesso ovvero il proprietario dell’azienda usufruitrice. L'organizzazione interna è formata da tre e unici dipendenti. I tre dipendenti sono programmatori e si occupano dell'implementazione del software. I tre hanno capacità distinte l’uno dall’altro e ognuno è esperto in un determinato ambito. Il programmatore A è esperto di programmazione Web e gestione di Database e dovrà supportare e coordinare gli altri due programmatori, i quali possiedono competenze medie in materia. Il programmatore B è esperto in Web e graphic design e sarà principalmente lui ad occuparsi della parte grafica del sito Web. Il programmatore C è un esperto in marketing ed è suo compito dettare regole di buona comunicazione al fine di dare una adeguata visibilità al sito Web. Ogni settimana è prevista una riunione tra i collaboratori del progetto per valutare lo stato di avanzamento del prodotto, allargando la partecipazione all’utente che testerà il sito Web e comunicherà il suo parere sul lavoro svolto. 19
Ogni giorno ciascun componente dovrà compilare un modulo con la descrizione dell'attività svolta ed annotare eventuali problematiche sorte. A lavoro terminato l’azienda acquisterà un dominio riservato al sito web, il quale verrà archiviato nella memoria del server. 3.2 SCELTE OPERATIVE L'azienda ha deciso di sviluppare il progetto su sistema operativo Windows poiché garantisce maggiore affidabilità, robustezza,i nnovatività; la fase di testing verrà effettuata su diversi browser (IE,Firefox,Safari,Chrome) per determinare la portabilità del prodotto. Per la programmazione Web in statico e dinamico, e per la gestione del database viene utilizzato Microsoft expression Web 2. Tra gli altri strumenti operativi scelti sono presenti anche: – Microsoft Office per la stesura di documentazione e guide utente; – COCOMO per la stima dei costi e dei tempi di produzione; – ARGOUML, un software open-source che consente la modellazione del software con i diagrammi UML e con il linguaggio OCL che produce codice in Java, C++, PHP; lo strumento è prodotto dalla comunità www.tigris.org la cui missione è proprio lo sviluppo di strumenti per l'ingegneria del software. 3.3 PIANIFICAZIONE DELLE ATTIVITA' Con la fase di pianificazione delle attività l'azienda determina i vincoli di priorità nello svolgimento del progetto e gli eventuali legami temporali per l'uso di risorse. I principali tipi di legame di precedenza che esistono sono i seguenti: f-to-s (finish to start) s-to-s (start to start) f-to-f (finish to finish) 20
Le attività svolte dall'organizzazione (con la partecipazione del proprietario dell’azienda destinataria) per lo sviluppo del software sono: – Determinazione della Business Idea; – Studio di fattibilità; – Scelta della Metodologia del processo di sviluppo e determinazione degli obiettivi di qualità; – Decisione di inizio produzione; – Studio del Piano Operativo; – Analisi dei rischi; – Raccolta e analisi dei requisiti; – Progettazione dell'architettura software; – Implementazione del software; – Collaudo e testing del prodotto. La propedeuticità delle attività da svolgere è stata rappresentata utilizzando una tecnica di controllo dello stato di avanzamento di progetti chiamata diagramma PERT (Program Evaluation and Review Technique). In questi diagrammi le attività vengono rappresentate da nodi che sono legati da archi orientati che costituiscono i legami di precedenza. Per visualizzare il diagramma procedere alla pagina successiva. 21
Diagramma PERT per Pizzeria SGS online 22
3.4 ALLOCAZIONE DI RISORSE Lo svolgimento del processo di produzione richiede una serie di risorse che possono essere classificate in: – Risorse a disponibilità limitata; – Risorse a disponibilità illimitata; – Risorse finanziarie. Tra le risorse a disponibilità limitata abbiamo il lavoro svolto dai programmatori, le componenti hardware e i software. Il lavoro può essere quantificato in percentuale in relazione alle ore standard di lavoro (8 ore). Il programmatore A dedicherà 7 ore giornaliere alla programmazione Web e alla gestione del Database e 1 ora giornaliera alla coordinazione e supervisione del gruppo. Il programmatore B dedicherà 6 ore giornaliere alla programmazione e 2 ore giornaliere al Design del sito. Il programmatore C dedicherà 7 ore giornaliere alla programmazione e 1 ora giornaliera all’aspetto riguardante il marketing. Le risorse a disponibilità illimitata sono costituite da cancelleria e materiale di consumo. Le risorse finanziarie riguardano una quota di affitto del locale, una quota per l’utilizzo di tre pc e del server, una quota per l’utilizzo di software, costi di connessione internet, costi di avviamento del sito, spese per energia elettrica e infine gli stipendi dei tre lavoratori. Le stime dei costi sono uguali a quelle viste nello studio della fattibilità. La pianificazione delle attività è stata effettuata in modo tale che non si verifichino conflitti di allocazione di risorse, soprattutto del personale. 3.5 PIANIFICAZIONE DI COSTI E TEMPI DI PRODUZIONE 23
I più diffusi modelli di stima dei costi, come il COCOMO, sono strumenti adatti a prevedere le risorse finanziarie e temporali necessarie allo svolgimento del processo produttivo. Nella fase di pianificazione poiché l'azienda possiede maggiori informazioni rispetto alla fase di studio di fattibilità si è scelto di effettuare l'analisi dei costi e tempi utilizzando il modello COCOMO intermedio riferito a progetti organici (Organic mode). Questo modello rispetto a quello Base introduce 15 parametri (coefficienti correttivi) che tengono conto delle peculiarità del progetto e del prodotto considerato, e produce stime con scostamenti inferiori al 20% nel 68% dei casi. Di seguito viene riportata una tabella contenente i valori per ogni coefficiente correttivo: 24
Il modello COCOMO intermedio introduce una nuova formula per il calcolo dello sforzo E (effort). Prima di tutto bisogna calcolare lo sforzo nominale ENom secondo questa formula: ENom = a ∗ (N)b dove N indica il numero di linee di codice (espresso in migliaia) ed i valori a e b per il modo organico assumono valori, a = 3,2 e b = 1,05. Il numero di linee di codice è stato stimato per un valore pari a 3.000 linee. Si ottiene uno sforzo nominale pari a: ENom = 3,2 (3)1,05 = 10,14 Successivamente si calcola lo sforzo complessivo E, moltiplicando lo sforzo nominale ENom per la produttoria dei coefficienti correttivi che chiameremo ej : 15 E = ENom ∗ ej j=1 ottenendo, E = 10,14 * 0,7595 = 7,7 Per il calcolo della stima del tempo di sviluppo si utilizza la formula adottata nel modello COCOMO Base: D = c * (E)d 25
dove, c= 2,5 e d= 0,38. Il tempo necessario allo sviluppo del software sarà quindi pari a: D = 2,5* (7,7)0,38 = 5 mesi e mezzo e il numero di personale richiesto sarà uguale a: P = E/D = 7,7/5,5 ≈ 1,4 persone. Considerando che abbiamo a disposizione tre impiegati, il tempo D risulta essere dimezzato, ovvero pari a tre mesi circa. I risultati dello studio di fattibilità sono molto vicini a quelli appena ottenuti, quindi le scelte operative fin ora adottate si possono considerare coerenti alle previsioni. Per quanto riguarda la pianificazione temporale delle attività si è tracciata una carta di Gantt, in cui è specificata la durata (in settimane) di ogni attività. 26
3.6 PIANIFICAZIONE DELL'ORGANIZZAZIONE DEL GRUPPO DI LAVORO 3.6.1 Struttura organizzativa La struttura organizzativa aziendale presenta una forma centralizzata, in cui il potere decisionale e le responsabilità sono attribuite al programmatore più esperto dei tre. Tale scelta dipende sia dall'esperienza lavorativa e sia dal suo ruolo di fondatore della società. 3.6.2 Definizione dei ruoli L'organizzazione del gruppo di lavoro è stabilita attribuendo a ciascun soggetto coinvolto un determinato ruolo. In particolare, il personale aziendale è così suddiviso: 1 programmatore con ottima conoscenza ed esperienza in gestione di basi dati e programmazione web che svolge anche il ruolo di coordinatore dei processi di produzione. 1 web e graphic designer con buone conoscenze di programmazione web. 1 esperto in comunicazione e marketing con buone conoscenze di programmazione web. 1 rappresentante dell’azienda interessata ad usufruire del software che avrà il principale scopo di tester del programma. Il lavoro è stato diviso seguendo le competenze di ogni componente del gruppo. Si alterneranno momenti di lavoro singolo (per lo sviluppo del software) a momenti di lavoro cooperativo (per il controllo di avanzamento del lavoro, testing e collaudo). 27
4. ANALISI DEI RISCHI (Graziano Di Raimondo) Dopo avere effettuato la Pianificazione delle risorse e redatto il Piano operativo, il modello a spirale prevede una apposita fase di controllo del processo. La gestione dei rischi, ha l'obiettivo di minimizzare i fattori di insuccesso introducendo specifiche attività di controllo e gestione del processo e consiste nella valutazione dei rischi e nel controllo dei rischi. 4.1 VALUTAZIONE DEI RISCHI Il successo nello sviluppo del software poggia sia sulla adeguatezza delle scelte delle tecnologie e dell’interfaccia utente. 4.1.1 Analisi e gestione dei rischi L'analisi dei rischi gioca un ruolo importante in modelli evolutivi del processo produttivo del software quali il ciclo di vita a spirale, dove occupa una fase distinta in ciascuna iterazione del processo. D'altra parte la pianificazione del controllo del processo produttivo può prevedere meccanismi di controllo basati sull'analisi dei rischi. Valutare le possibili fonti di rischi e sottoporle ad un controllo costante e pianificato risulta conveniente nella produzione di siti Web per la rapidità dell'evoluzione del contesto in cui operano. Si riscontrano dunque gli stessi vantaggi associati ad una attenta gestione dei rischi nella produzione di software secondo modelli evolutivi. I vantaggi essenziali, rivelati da molti studi su quest'ultima, sono: riduzione della probabilità di fallimento del progetto, riduzione dei ricicli nello sviluppo del prodotto, ottimizzazione dei costi e nell'uso delle risorse, soprattutto di quelle umane. 28
Nella progettazione web lo studio dei rischi è spesso sottovalutato a causa delle normali problematiche derivate dai malfunzionamenti che nella maggior parte dei casi sono dovuti alla mancata erogazione dei servizi da parte dei gestori di telecomunicazione. Per una giusta analisi dobbiamo identificare le tipologie di rischi possibili nell'utilizzo di un portale basato sulla diffusione di informazioni e di streaming multimediale. Possiamo dividere i possibili rischi nelle seguenti tipologie: Errori di implementazione Guasti nell'erogazione del servizio di networking Saturazione dei servizi di networking Dobbiamo identificare per ogni macro tipologia di rischio la possibile perdita nell'eventualità dell'avvenuto guasto o problema. Il rischio più comune nella fase iniziale in una progettazione secondo il modello a spirale è l'errore di implementazione che viene scoperto grazie al test effettivo sui committenti. Come anticipato in questo tipo di progettazione la percentuale di errori di tipo implementativo è elevata, ma per avere un dato esatto del rischio oltre a calcolare l'indice di es posizione al rischio va calcolato anche il peso della singola funzionalità all'interno del sito e la possibilità che il problema si presenti a tutti gli utenti. La possibilità di un guasto nell'erogazione dei servizi commissionati a terzi, quale il networking che permetterà di accedere al portale e usufruire di servizi real-time, è da valutare attentamente perchè porterebbe all'immediata interruzione di tutti i servizi con i relativi danni economici. In caso di errata progettazione dell'architettura del software o di valutazione e pianificazione del business, è molto frequente incorrere a problemi di saturazione delle risorse utilizzate per erogare i servizi con il conseguente blocco o rallentamento degli stessi. In questo caso il problema è direttamente derivato da un nostro errore ed i rischi sono elevati nonostante l'attuale corsa sfrenata della tecnologia applicata al web. Mentre per quest'ultimo caso è possibile risolvere il problema dopo che si è presentato (in caso di evidenti rallentamenti prima della saturazione completa), in una progettazione di tipo web che deve garantire dei servizi l'unico modo per non incorrere in tali problematiche è una buona prevenzione, con l'utilizzo di servizi di watchdog per il controllo unito a strutture di emergenza che entrano in funzione in caso di mal funzionamento della risorsa principale. 29
Non ho volutamente considerato l'errore umano durante l'utilizzo della piattaforma visto che l'utilizzo è riservato direttamente al committente che in caso di errore personale non può ovviamente richiedere un rimborso. Una delle cause per cui un sito web non ha successo o non raggiunge l'obiettivo prefissato è il mancato collaudo del sito stesso durante e dopo la sua realizzazione. Il collaudo può essere un compito lungo ed a volte noioso, ma è sicuramente uno dei passi più importanti nella realizzazione di un sito web. I test da fare non sono pochi, dal controllo dei contenuti al comportamento al variare dei browser, e nessuno di questi dovrebbe essere trascurato. Un attenta fase di collaudo è importante per un sito web e riguarda: • Contenuti (target, comunicazione, accessibilità, usabilità) • Aspetti Tecnici (funzionalità, prestazioni) Viene preparato un piano di collaudo che tenga conto di tutti gli aspetti del progetto, sia per quanto riguarda i contenuti che le funzionalità e le prestazioni. Nel collaudo dovrebbero partecipare anche persone esterne al gruppo di lavoro, possibilmente esponenti significativi dell´utenza del sito. Questa fase quasi sempre ripropone attività di sviluppo per raffinare le soluzioni. È necessario effettuare un collaudo dal punto di vista visuale. Bisogna mettersi nei panni di un'utente che visita il sito per la prima volta, per capire se quello che appare nella finestra del browser rispecchia in modo chiaro e istantaneo i contenuti che si vogliono trasmettere attraverso il sito web. È bene valutare l'uniformità del sito controllando che non ci siano bruschi cambiamenti di interfaccia grafica tra una pagina e l'altra perché la mancanza di uniformità ha come conseguenza il disorientamento dei visitatori. Infine esaminiamo tutte le pagine del sito variando la risoluzione dello schermo e la profondità di colore per controllare che in ogni caso tutto sia ben visibile. 30
Il collaudo riguarda poi la funzionalità e il controllo dei contenuti per verificare errori di chiusura tag, molto frequenti quando si scrive codice HTML, che possono generare problemi soprattutto ai link interni ed esterni alle pagine, ed eventuali errori di grammatica o di forma. Bisogna testare il sito web utilizzando diversi browser; sappiamo inoltre che i browser si comportano in maniera diversa anche a seconda della loro versione, quindi affinché ogni utente veda le nostre pagine in maniera corretta dobbiamo eseguire il collaudo con diversi browser e diverse versioni, anche quelle meno recenti. Il sito web andrebbe testato utilizzando diversi siste mi operativi. Quindi non solo Windows, ma anche Linux, Unix e Mac OS. Il sistema operativo non influisce sulla visualizzazione di una pagina web quanto influisce il browser, ma se si dispone di sufficienti computer e sistemi operativi per farlo, è bene eseguire questo test. La presenza di browser diversi con funzioni differenti, ha portato alcuni webmaster a realizzare siti web destinati a essere visitati con un browser preferenziale, talvolta impedendo l'accesso a utenti che utilizzassero un browser differente da quello scelto. Questa consuetudine, che va contro la filosofia portante del World Wide Web, che vede l'accessibilità come uno dei pilastri portanti ha quindi suscitato forti critiche e campagne di protesta e sensibilizzazione. Il browser più diffuso a livello mondiale è Internet Explorer, prodotto da Microsoft, che viene fornito gratuitamente e "di serie" con ogni sistema operativo Windows. Il secondo browser in ordine di utilizzo è Mozilla nelle sue varianti (e in particolare Firefox), prodotto e distribuito gratuitamente dalla Mozilla Foundation; il terzo è Safari di Apple, distribuito assieme al sistema operativo Mac OS X. Altri browser molto diffusi sono Opera e Netscape Navigator, il cui sviluppo è ormai sospeso. Per questa vasta gamma di browser a disposizione, uno dei problemi è quello di adattare e rendere visibile il sito su ognuno di essi, incorrendo a rischi di visibilità e usabilità. L’esperienza dei progettisti web deve 31
garantire il superamento di questi rischi, con particolare attenzione alla facilità d’uso del sito anche verso utenti meno esperti. Per lo sviluppo web viene utilizzata la suite Microsoft Expression Web che comprende diversi strumenti per sviluppatori e grafici interessati a sviluppare siti Web e ad implementare in essi applicazioni grafiche ed interattive. Il passaggio dalla versione 1.0 alla 2.0 in fase di progettazione potrebbe generare difficoltà dovute all’inesperienza dei programmatori generando costi relativi alla formazione professionale degli stessi. Se a queste soluzioni sommiamo una pianificazione di manutenzione da parte del nostro personale i rischi vengono limitati notevolmente anche se a discapito dei costi di mantenimento dell'intero sistema. 32
5.ANALISI E SPECIFICA DEI REQUISITI (Simone Susino) L’analisi e la specifica hanno come obiettivo quello di raccogliere le esigenze dell’utente per definire gli obiettivi di qualità che si intende perseguire. Le principali attività sono: 1) determinazione dei requisiti; 2) analisi e specifica dei requisiti funzionali; 3) negoziazione dei requisiti; 5.1.DETERMINAZIONE DEI REQUISITI Raccolta requisiti: 1) Anagrafica utenti Gli utenti devono registrarsi sul sito per poter usufruire di tutti i servizi offerti. Di seguito i campi obbligatori che devono essere compilati dall’utente. Le informazioni personali, insieme agli ordini effettuati, verranno utilizzati dall’azienda per segmentare il mercato di riferimento. Così facendo, l’azienda, potrà adattare al meglio le proprie offerte. Campi: Nome, Cognome, Indirizzo, telefono, data di nascita, email. a. Archiviazione dati b. Modifica dati c. Visualizzazione dati d. Cancellazione dati 33
2) Prenotazione Permette all’utente di poter prenotare la sala per eventi speciali, riservare tavoli, o prenotare vivande destinate all’asporto o alla consegna a domicilio. a. Eventi speciali b. Booking tavoli c. Drink & food i. Asporto ii. Consegna domicilio Campi Eventi speciali: Data e ora evento, numero di persone, tipologia evento, menù. Campi Booking tavoli: Data e ora, zona tavolo (centro, terrazza ecc..), numero di persone, menù (opzionale). Campi Drink & food: Data e ora, Menù, Asporto – Domicilio. 3) Community Permette agli utenti di usufruire di uno spazio forum per scambiarsi informazioni, pareri, consigli, feedback e quant’altro ancora in merito al mondo culinario e non. L’azienda, mediante l’ausilio di tutti questi strumenti, non solo conosce se vi sono insoddisfazioni nei clienti, ma li utilizza al fine della crescita aziendale. Con la FAQ, invece, si vuole dare risposta ad alcune domande di interesse comune. a. Forum ( software di terze parti ) b. FAQ 4) Info azienda e news Pagina riservata alle informazioni riguardante l’azienda (chi siamo, storia, contatti ecc..) e alle news giornaliere (offerte, novità, giorni di chiusura ecc..) 5) Menù 34
Pagina contenente un vasto menù, comprendente le vivande che offre l’azienda e le bevande. La pagina viene sempre aggiornata, per offrire sempre una varietà di prodotti. 6) Caratteristiche del sito a. Deve realizzare in modo preciso e corretto tutte le esigenze sopra descritte; b. Deve dare la possibilità di recuperare i dati in caso di malfunzionamento hardware o software; c. Deve avere un’interfaccia user-friendly; d. Deve poter funzionare con la maggior parte dei browser in circolazione; e. Deve proteggere le informazioni da attacchi esterni; f. Deve potersi adattare facilmente a modifiche future e ai cambiamenti tecnologici (es. nuovi sistemi operativi). Identificazione dei requisiti L'identificazione dei requisiti è stata fatta con un codice alfanumerico a due livelli in cui il primo codice numerico indica il macro-requisito ed il secondo alfabetico indica i micro-requisiti riguardanti quello principale. Vincoli quantitativi su requisiti non funzionali Per le interfacce utente di gestione base delle informazioni come inserimento, modifica e cancellazione si richiede che il tempo di risposta non sia superiore a 3 secondi. Tutte le interfacce utente devono contenere esplicitamente le informazioni necessarie per l'uso delle stesse (autoesplicatività) ed inoltre devono contenere in modo ordinato e strutturato solo le informazioni essenziali allo scopo della interfaccia stessa. 35
5.2.ANALISI DEI REQUISITI L’analisi consiste nell’uso delle varie funzionalita del sito, da parte dell’utente (cliente o amministratore). Con il seguente diagramma di casi d’uso, mostriamo le funzionalità del sito. Distingueremo l’utente generico, l’utente registrato e l’utente amministratore. Mentre il cliente registrato può inserire dati e modificare il proprio profilo, prenotare tavoli e vivande, inserire messaggi sul forum ecc.., l’utente amministratore ha accesso alla modifica delle news, delle info dell’azienda, del menù e dei vari thread del forum. L’ utente generico può solo visualizzare le informazioni e le notizie. Identificatore: Profilo Scenario Principale: 36
1. Autenticazione: L’utente inserisce nome utente e password. 2. L’utente cliente richiede l’accesso all’archivio anagrafico. 3. L’utente cliente può visualizzare il suo profilo completo. 4. L’utente cliente può modificare i dati inseriti sul profilo, o cancellarlo. Identificatore: Prenotazione Scenario Principale: 1. L’utente cliente può effettuare prenotazioni di eventi, tavoli o drink&food (asporto o consegna a domicilio). 2. L’utente cliente può modificare la prenotazione o annullarla a tempo debito. Identificatore: Community Scenario Principale: 1. L’utente cliente può inserire messaggi sul forum, partecipare a sondaggi e indagini e visualizzare il FAQ. 2. L’utente amministratore funge da ―moderatore‖ sul forum e risponde ai messaggi. Può inoltre modificare il FAQ. Identificatore: Info e News Scenario Principale: 1. L’utente cliente può visualizzare le info dell’azienda ( chi siamo, storia, ecc.) e può inoltre controllare le news giornaliere per conoscere eventuali offerte e promozioni. 2. L’utente amministratore può modificare le info, e giornalmente ha il compito di aggiornare le news. Identificatore: Menù Scenario Principale: 37
1. L’utente cliente visualizza il menù per conoscere tutte le pietanze e le bevande che offre l’azienda. 2. L’utente amministratore può aggiornare il menù, aggiungendo nuove pietanze ed eventualmente togliendone altre (magari in relazione alla stagione). 5.3.NEGOZIAZIONE E VALIDAZIONE DEI REQUISITI Una volta completata la stesura e revisione dei casi d'uso con i relativi scenari, questi verranno sottoposti alla verifica con gli Utenti che effettueranno le opportune valutazioni proponendo eventuali modifiche in base alle loro reali esigenze. In tal modo gli Utenti vengono coinvolti attivamente nello sviluppo del Software fin dalle prime fasi del processo e ciò comporta il vantaggio che eventuali correzioni in tale fase producono minori costi rispetto ai cambiamenti effettuati nelle successive fasi di progettazione o di implementazione 38
6.STUDIO DELL’USABILITA’ (Simone Susino) 6.1.PROGETTAZIONE DELL’USABILITA’ La progettazione di interfacce è orientata alla comunicazione con gli utenti finali. A questo scopo, bisogna evitare di considerare solo aspetti funzionali interni, trovare soluzioni che abbiano un fondamento generale, evitando quindi di basarsi solo sull’intuizione del progettista e trovando un giusto equilibrio tra metodo e intuizione. Lo scopo è di selezionare gli elementi attentamente, definire soluzioni chiare, economiche, convincenti che si possano operare immediatamente, che possano essere più facilm ente assimilate, comprese e ricordate, che attirano immediatamente l’utente sugli aspetti importanti e consentono di raggiungere gli obiettivi rapidamente e senza errori. Tante volte le soluzioni semplici sono le più usabili. Grazie all’interfaccia appositamente progettata per gli utenti dell’ufficio del Personale, l’utilizzo del programma risulta estremamente intuitivo e molto semplice. Di seguito sono riportate le principali funzioni dell’home page del sito. Home Page: Il visitatore saltuario può navigare in questa pagina, accedendo solo ad alcune pagine (info sull’azienda, news, menù). Al contrario, il cliente registrato può accedere a tutte le funzionalità offerte dal sito, mediante l’autenticazione con nome utente e password. Lo stesso può fare l’amministratore, che inoltre, ha permessi per ogni tipo di operazione. Tutte le sezioni sono ben visibili e raggiungibili, dato che nell’home page abbiamo creato una barra laterale con i collegamenti alle varie sezioni. 39
Lo spazio delle news è inserito al centro dell’home page, mediante uno script che scorre dal basso verso l’altro con le notizie in ordine di data di pubblicazione. In basso all’home page abbiamo inserito uno spazio destinato ai contatti (email, numero di telefono, indirizzo). Un aspetto importante dell’home page è quello di usare tecniche comunicative che mirano ad ad aiutare l’utente a scorrere l’interfaccia, interpretare gli elementi e trovare quello che cerca. Ad esempio, per rendere più ―amichevole‖ la fase di autenticazione si è introdotto un messaggio di benvenuto e un reindirizzamento automatico nel pagina news per fare conoscere eventuali novità e promozioni giornaliere. Tutto il sito è stato pure scritto sulla base degli standard web del W3C. Il suo scopo è quello di portare il web al suo massimo potenziale mediante il perseguimento dei 7 punti fondamentali. 1. Accesso Universale Il W3C definisce il Web come l'universo delle informazioni accessibili in rete (disponibili attraverso il computer, il telefono, la televisione...). Uno degli scopi principali del W3C è quello di rendere queste opportunità fruibili a tutti, indipendentemente da eventuali limitazioni determinate da hardware, software, supporto di rete a disposizione, lingua madre, cultura, collocazione geografica, capacità fisiche e mentali. 2. Web Semantico La gente oggi condivide la conoscenza sul Web utilizzando un linguaggio umano, comprensibile dalle altre persone. Le persone,quindi, saranno capaci di esprimersi in termini tali che i nostri computer potranno interpretare e scambiare informazioni. In questo modo si darà la possibilità ai computer di risolvere i problemi che troviamo noiosi da affrontare, e di aiutarci a trovare velocemente quello che stiamo cercando: informazioni 40
mediche, una recensione di un film, l'ordine di un libro attraverso un catalogo, etc. Il linguaggi del W3C RDF, XML, XML Schema, e XML signatures sono gli elementi di base su cui poggia il Web Semantico. 3. Fiducia Il Web è un mezzo di collaborazione, non un supporto di sola lettura come una rivista. Per promuovere un ambiente più collaborativo il Consorzio sta progettando un "Web of Trust" capace di offrire riservatezza, che ispiri gradualmente fiducia, e che faccia in modo che ci si prenda la responsabilità di ciò che viene pubblicato su Web. Questi principi motivano molto del lavoro del W3C su XML signature, meccanismi di annotazione, composizione di gruppo (group authoring), gestione delle versioni, etc. 4. Interoperabilità Venti anni fa si comperavano software che funzionavano solamente con altri software dello stesso produttore. Oggi si ha molta più libertà di scelta e giustamente ci si aspetta che i componenti software possano essere interscambiabili. Ci si aspetta anche di essere in grado di vedere il contenuto del Web con l'ausilio del software che si preferisce (browser grafico, sintetizzatore vocale, display braille, telefono a bordo dell'auto...). Il W3C è un'organizzazione neutrale, che incoraggia l'interoperabilità attraverso la progettazione e la promozione di linguaggi informatici e protocolli aperti (non proprietari) che evitino la frammentazione del mercato caratteristica del passato. Tutto questo è realizzato ottenendo il consenso dell'industria e incoraggiando un forum aperto per la discussione. 5. Capacità evolutiva Il W3C mira all'eccellenza tecnica ma è consapevole che quello che oggi conosciamo e di cui abbiamo bisogno potrebbe essere insufficiente per risolvere i problemi di domani. Il Consorzio si adopera perciò per costruire un Web che possa facilmente evolvere in un Web ancora migliore, senza 41
per questo dover distruggere quello che già funziona. I principi di semplicità, modularità, compatibilità ed estensibilità guidano tutti i progetti del Consorzio. 6. Decentralizzazione La decentralizzazione è un principio fondamentale dei moderni sistemi distribuiti, comprese le società umane. In un sistema centralizzato ogni messaggio o azione deve passare attraverso un'autorità centrale, causando ingorghi quando il traffico aumenta. Il progetto del Consorzio è quello di limitare il numero delle risorse Web centralizzate, al fine di ridurre la vulnerabilità del Web nel suo complesso. La flessibiltà è l'indispensabile compagna dei sistemi distribuiti, è la vita e l'anima di Internet, non solo del Web. 7. Multimedia più eccitante! A chi non piacerebbe maggiore interattività e supporti multimediali più ricchi sulla rete, come immagini ridimensionabili, qualità del suono, video, effetti 3D ed animazioni? Il processo di consenso del W3C non limita la creatività dei content provider e non comporta rendere noiosa la navigazione. Grazie ai suoi membri il W3C dà ascolto ai consumatori finali e opera per fornire una solida infrastruttura di sviluppo per un Cooler Web grazie a linguaggi come SVG (Scalable Vector Graphics) e SMIL (Synchronized Multimedia Integration Language). 6.2.VALUTAZIONE DELL’USABILITA’ La Norma ISO 9126 ("Information Tecnology - Software product evaluation - Quality characteristics and guidelines for their use"), pubblicata nella sua prima versione nel 1991, definisce il modello dei requisiti qualitativi del Prodotto Software. 42
Puoi anche leggere