Concetto: Sviluppo di soluzioni e-business
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.
Descrizione principale
Attività del ciclo di vita:
Concetti: 
White paper:

Introduzione

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.

Attività della fase di inizio

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.

Attività della fase di elaborazione

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 testTest 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.

Attività della fase di costruzione

Alla fase di costruzione viene applicato il flusso di lavoro di base, con le seguenti estensioni e variazioni.

Attività della fase di transizione

  • 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. Collegamento Logo Context