Attività del ciclo di vita:
Creare delle applicazioni e-business significa creare delle soluzioni Internet per implementare dei processi di
business. E' incluso l'e-commerce ma si estende a tutti i processi di business di un'organizzazione.
I sistemi e-business possono essere suddivisi in:
-
sistemi di prima generazione, che utilizzano il web semplicemente per pubblicare delle informazioni
-
sistemi di seconda generazione, che implementano l'e-commerce e dei semplici modelli di transazioni
-
sistemi di terza generazione, che rielaborano completamente un processo per fornire delle soluzioni altamente
personalizzate (business-to-consumer o business-to-business) che sono adattabili e automatizzano l'intero processo
di business, spesso integrandolo con sistemi esistenti e dispositivi internet
Più i sistemi sono di recente generazione, maggiore è la loro complessità di sviluppo.
Alla face di inizio viene applicato il flusso di lavoro di base, con le seguenti
estensioni o variazioni.
Ambiente
L'importanza del Compito: Preparazione delle linee guida per il progetto viene
amplificata e si focalizza su quelle che gli sviluppatori Web chiamano le 'indicazioni sulla progettazione
creativa', un insieme di linee guida che descrivono (ad alto livello):
-
Il tono del sito; ad esempio, trasmette autorità, gioco o un servizio? E' conservatore o
provocatorio?
-
Il metodo di accesso al sito che gli utenti utilizzano; ad esempio, la velocità di connessione.
Nella progettazione è specificata una velocità minima o se ne presuppone una?
-
Il grado di interazione utente; ad esempio, l'utente deve essere solo informato o si deve tentare di
comunicare con l'attore (comunicazione a due vie)? La progettazione dell'applicazione deve essere diversa a
seconda dell'utente che accede all'applicazione?
-
I browser utilizzati dagli utenti, incluso le differenze fra i sistemi operativi
-
Se il sito utilizzerà dei frame
-
Eventuali limitazioni di colore del sito
-
Se applicabile, una guida agli standard grafici (incluso gli standard sui logo e su tutti i colori
aziendali)
-
L'utilizzo di tecniche web specifiche; ad esempio mouseover, animazione, notizie, supporti
multimediali, e così via
Le 'indicazioni sulla progettazione creativa' evolvono nelle linee guida dell'interfaccia utente documentate nel Prodotto di lavoro: Linee guida specifiche per progetto; si
tratta fondamentalmente di una versione iniziale delle linee guida dell'interfaccia utente.
Requisiti
Si presuppone che alcune delle seguenti attività utilizzano i risultati di un esercizio di modellazione di business che
è esterno all'ambito di questa linea guida.
Quest'attività ha meno enfasi. La maggior parte dei problemi dovrebbero essere stati già rilevati durante la
modellazione del business.
Questa attività richiede meno enfasi. La maggior parte delle esigenze degli stakeholder dovrebbero essere state già
individuate durante la modellazione del business. Tuttavia è necessario effettuare qualche esercitazione sulla
ricerca di requisiti non funzionali nel sistema.
Questa attività richiede meno enfasi. I confini del sistema vengono definiti da quelli del business, poiché
il sistema rispecchia il business più da vicino di quanto non accade con le applicazioni tradizionali (per alcuni
aspetti il sistema è il business).
Analisi e progettazione
Il Compito: Progettazione dell'interfaccia utente produce una Mappa di esplorazione. Una mappa di esplorazione è una vista
della soluzione Web che mostra le modalità di esplorazione degli utenti del sito, possibilmente rappresentata in un
diagramma gerarchico "ad albero". Ogni livello del diagramma mostra il numero di clic necessari per arrivare a
quella schermata o pagina. In genere, si preferisce disporre delle aree più importanti del sito web ad un solo clic
di distanza dalla prima pagina (comunemente detta pagina "home"). La mappa di esplorazione di fatto è un riepilogo
degli storyboard, che inizia con l'identificare le principali finestre
o pagine Web di ciascun caso d'uso, e tiene in considerazione il metodo di esplorazione dell'utente fra questi
elementi.
Alla fase di elaborazione viene applicato il flusso di lavoro di base, con le seguenti
estensioni o variazioni.
-
Attività: Definizione di un'architettura candidata
Il Compito: Analisi strutturale sfrutta il vantaggio che
un'applicazione Web dispone di un'architettura abbastanza definita, inclusa una serie di meccanismi ben
definiti (browser Web, applet e servlet Java, ASP e JSP, ecc.). Di solito una semplice struttura a livelli come
descritto in Concetto: Livelli è sufficiente, a meno che il framework di sviluppo
dell'applicazione Web non sia più specifico. In molti casi esistono delle architetture predefinite già pronte,
che possono essere acquistate o, se provenienti da precedenti progetti di sviluppo Web, essere riutilizzate. I
framework di applicazioni Web, come WebSphere dell'IBM o Windows DNA della Microsoft, forniscono proprio questo
genere di maschere strutturali.
Le applicazioni Web di solito non dispongono di tempi di inattività pianificati. L'architettura potrebbe dover
fornire l'aggiornamento del sistema mentre è in esecuzione ed il passaggio a dei server di standby in caso di
malfunzionamento del server primario o quando si verifica la manutenzione o l'aggiornamento del server. Alcuni
framework di applicazioni Web forniscono dei tool di supporto alla produzione. A prescindere da questo, se
l'applicazione ha dei requisiti di alta disponibilità, è necessario acquistare o creare l'infrastruttura
necessaria a supportare questo requisito ed integrare il supporto per questa funzionalità nell'architettura.
-
Attività: Analisi del comportamento
Il Compito: Progettazione dell'interfaccia utente viene eseguito
iterativamente nelle iterazioni dell'elaborazione. Le iniziali esecuzioni di questa attività sono incentrate
sulla produzione di 'schizzi preliminari creativi della progettazione', rappresentazioni fittizie della
progettazione delle pagine Web chiave nel sito. Questi 'schizzi preliminari' di solito sono delle immagini
"piatte" con la grafica di una finestra del browser, con lo scopo di fornire l'aspetto di una finestra di
browser. Il vantaggio principale degli 'schizzi preliminari' è di rinviare l'impiego di prototipi HTML più
elaborati e più costosi a quando esiste il consenso su una specifica direzione grafica del sito.
Gli 'schizzi preliminari creativi della progettazione' vengono creati osservando i requisiti di interfaccia dei
casi d'uso più importanti e sviluppando diverse progettazioni alternative (forse 10 o anche di più), per
valutarne l'aspetto. Da questa serie, le tre opzioni più promettenti vengono scelte per essere presentate agli
stakeholder. Questo viene effettuato ripetutamente finché non si giunge ad un accordo sulla progettazione Web
finale, che si concretizza in una serie di Storyboard ed una Mappa
di esplorazione.
Quando è presente un accordo ed un'approvazione definitiva (sign-off), gli schizzi preliminari creative della
progettazione evolvono in un prototipo di interfaccia utente funzionale tramite la
ripetizione del Compito: Prototipo dell'interfaccia utente. Il prototipo UI
Web iniziale in genere supporta solo parti del sistema (i casi d'uso più importanti e più significativi da un
punto di vista strutturale). E' importante disporre di una buona struttura nel flusso di eventi del caso d'uso
prima di sviluppare i prototipi, per essere sicuri che la funzionalità guidi il layout dell'interfaccia utente
e non il contrario.
Nelle iterazioni successive il prototipo Web viene espanso, aggiungendo gradualmente una copertura più vasta
dei casi d'uso ed una maggiore esercitazione dell'architettura.
Il Compito: Analisi del caso d'uso resta relativamente immutato,
con la differenza che è importante concentrare l'attenzione non sono sul comportamento della GUI ma anche sulla
sottostante logica di business (la parte che in genere viene eseguita sul server Web o sul server
dell'applicazione). Se questo non viene tenuto in considerazione, viene trascurata la parte più significativa
del comportamento del sistema. Le stesse pagine Web vengono rappresentate come classi di 'confine', gli
elementi di dati come classi di 'entità' ed il comportamento del server (ad esempio, le pagine del server
attivo, i servlet, ecc.) viene rappresentato tramite gli oggetti 'controllo'.
Subito dopo l'analisi del caso d'uso, il Compito: Identificazione degli elementi della progettazione
perfeziona il Prodotto di lavoro: Classi di analisi, associandole ai
meccanismi esistenti nel framework di sviluppo Web, riutilizzando gli elementi di progettazione esistenti di
progetti precedenti o di un'iterazione precedente, dove possibile. Questo spesso richiede il riadattamento
dell'ambito e della definizione delle classi di analisi identificate, per poter ottenere il grado desiderato di
riutilizzo.
Una descrizione più dettagliata sull'utilizzo del linguaggio UML per descrivere le applicazioni Web è
illustrata nella White paper: Modellazione di architetture di applicazioni Web con UML.
-
Attività: Preparazione
dell'ambiente.
In aggiunta allo sviluppo di linee guida per l'interfaccia utente, vengono creati gli elementi di
progettazione Web (immagini grafiche discrete che vengono assemblate per creare le pagine Web di un sito).
La congruenza dell'interfaccia utente in un sito Web è essenziale per l'utilizzabilità; il sito Web deve
fornire una pratica congruente per l'utente. Per ottenere ciò, il progetto deve utilizzare con coerenza un
insieme di elementi grafici standard in tutto il sito.
Lo sviluppo di questi elementi è un'estensione del Compito: Preparazione delle linee guida per il progetto ed
include la creazione di linee guida per il relativo utilizzo. Verificare che tutti i membri del team siano a
conoscenza di quando e come utilizzare questi elementi. Esempi di elementi di progettazione Web includono
elementi grafici, come dispositivi di esplorazione e sfondi delle pagine. Il riutilizzo di elementi grafici
standard di alta qualità nell'intero sito garantisce la coerenza, riduce i tempi di commercializzazione ed il
costo di sviluppo, oltre ad aumentare la qualità distribuendo un insieme più piccolo di elementi di qualità
superiore.
La preparazione di linee guida viene effettuata insieme allo sviluppo del prototipo interfaccia utente iniziale Web, per generare la
guida allo stile del sito. Questo stile, fra le altre cose, specificherà come e quando utilizzare gli elementi
della progettazione Web (schemi di colori, caratteri, fogli di stile CSS) ed i dettagli su come devono
funzionare e come devono essere posizionati gli elementi di esplorazione.
-
Attività: Perfezionamento dell'architettura
Il Compito: Identificazione dei meccanismi di progettazione si
focalizza maggiormente sull'associazione dei requisiti non funzionali del sistema con i meccanismi forniti dal
framework di sviluppo Web; i meccanismi non forniti dal framework (se esiste) dovranno essere identificati e
dovranno essere individuate delle soluzioni alternative.
Il Compito: Descrizione dell'architettura runtime si focalizza
principalmente sui livelli del server Web e del server dell'applicazione (consultare Concetto: Pattern di distribuzione), e sui processi e thread utilizzati per
gestire la simultaneità nell'applicazione. In genere non si dispone di alcun controllo (o minimo)
sull'elaborazione nelle macchine client.
Il Compito: Descrizione della distribuzione sposta l'attenzione
da decidere 'quali tipi di nodi server avere' a 'quanti nodi server di ciascun tipo avere'. Di solito il
framework di sviluppo Web fornisce un numero fisso di tipi di server (ad esempio, server web, server di
applicazioni, server di posta, server gateway di comunicazione) con dei confini funzionali relativamente ben
definiti. Come risultato gli skill dell'architetto di software si focalizzano sullo stabilire come gestire i
requisiti di scalabilità e di tolleranza degli errori utilizzando i tipi di server disponibili, in genere
individuando quanti server di ciascun tipo sono necessari. In aggiunta devono essere creati dei piani di
misurazione per stabilire in che modo sapere quando sono necessari ulteriori server.
-
Attività: Definizione della missione di valutazione
La pianificazione si incentra, in buona misura, sulla verifica delle prestazioni, per garantire che
l'applicazione Web possa supportare un aumento significativo del numero di utenti in contemporanea. Come
risultato, anche le attività di test Verifica dell'approccio di test, Test e valutazione, Ottenimento di una missione accettabile, Miglioramento delle risorse di test si focalizzeranno
maggiormente sulla verifica delle prestazioni, per garantire che l'architettura sia scalabile.
Altri importanti Tipi di
test sono la Verifica dell'utilizzabilità e la Verifica
della struttura. E' necessario testare l'interazione utente per verificare che la struttura
dell'applicazione Web sia appropriata per i relativi utenti. In alcuni casi si è costretti a disporre
dell'applicazione in Internet, in modo da poter monitore in che modo gli utenti utilizzano l'applicazione.
Un altro tipo di test che richiede molto tempo è il test dei browser, poiché spesso la compatibilità fra i
browser e le relative versioni limita le opzioni di progettazione nell'interfaccia utente.
-
Attività: Implementazione dei componenti, Integrazione di ogni sottosistema e Integrazione del sistema
Per poter convalidare le decisioni strutturali fatte fino a questo momento nel progetto, vengono sviluppati e
testati uno o più prototipi di architettura, implicando la successiva esecuzione di Attività: Implementazione dei componenti, Attività: Integrazione di ogni sottosistema e Attività: Integrazione del sistema. La verifica, come
menzionato in precedenza, si deve incentrare specialmente sulla scalabilità dell'applicazione e sui picchi
imprevisti nel carico del sistema.
Alla fase di costruzione viene applicato il flusso di lavoro di base, con le seguenti
estensioni e variazioni.
-
Attività: Pianificazione dell'integrazione
Il Compito: Pianificazione dell'integrazione del sottosistema e
il Compito: Pianificazione dell'integrazione del sistema devono
occuparsi dei diversi tipi di elementi di implementazione creati durante la fase di costruzione.
-
Attività: Implementazione dei componenti
Il Compito: Implementazione degli elementi di progettazione si
incentra su diversi tipi differenti di elementi:
-
Pagine Web, applet, script, grafici ed altri elementi che si "eseguono" nell'ambiente del browser
-
Pagine del server, script, servlet ed altri elementi che si "eseguono" nell'ambiente del server Web
-
Miglioramenti del codice eseguibile ad applicazioni precedenti
-
Tabelle di database, trigger, procedure archiviate ed altri elementi che si eseguono nel sistema di
gestione del database
Le differenze nei tool e nelle tecnologie di distribuzione fra i diversi tipi di elementi comportano un certo
numero di variazioni simili nel Compito: Implementazione degli elementi di progettazione.
Simili adattamenti saranno presenti nelle Attività: Integrazione di ogni sottosistema e Attività: Integrazione del sistema.
-
Attività: Definizione della missione di valutazione
La pianificazione del test continua a concentrare l'attenzione sulla verifica delle prestazioni ma maggiormente
sulla verifica funzionale. Per ognuno dei diversi tipi di elementi che compongono un'applicazione Web è
richiesto un approccio di verifica leggermente diverso. Simili adattamenti saranno presenti nelle
attività di test Verifica dell'approccio di test, Test e valutazione, Ottenimento di una missione accettabile, Miglioramento delle risorse di test, in cui l'attenzione si
sposta sempre più dalla verifica strutturale delle prestazioni alla verifica funzionale, verificando che i
dettagli del comportamento del sistema siano corretti.
-
Rilascio del prodotto, in ambiente Web tende ad essere incrementale e continuo e meno incentrato sulla
tradizionale distribuzione dei supporti. La pianificazione dei rilasci deve essere effettuata di conseguenza.
-
Formazione dell'utente, in ambiente Web tende ad essere integrata nella progettazione del sito Web stesso,
in modo che l'utilizzo del sito sia intuitivo. La creazione della formazione tradizionale e dei manuali per
l'utente o della documentazione è stata ridotta, con una maggiore enfasi sulla progettazione grafica e di contenuti
all'inizio del processo.
-
Supporto all'applicazione di produzione, in ambiente Web deve incentrarsi sul mantenimento di una alta
disponibilità in caso di un carico imprevisto. Potrebbe anche dover essere necessario fornire la possibilità di
continuare l'esecuzione in caso di malfunzionamento dei server primari e di consentire aggiornamenti ai server
quando il sistema è in esecuzione.
-
Trasferimento di conoscenze dal team di sviluppo al team di supporto produzione, in modo che il personale
del supporto di produzione sia in grado di eseguire il sistema e la manutenzione di routine.
-
Seguire le modalità di utilizzo dell'applicazione da parte degli utenti. Queste informazioni sono utili per
apprendere che genere di utenti utilizza l'applicazione e in che modo. Queste osservazioni possono essere utili
nello sviluppo di ulteriori rilasci per migliorare l'interazione con l'utente.
Parti di questa pagina sono state sviluppate in collaborazione con Context Integration.
|
|
|