Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

Post on 02-May-2015

217 views 1 download

Transcript of Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

Architettura di applicazioni enterprise

Michele Aponte - DotNetCampania Team

CHI SONO

Aponte Michele:

• Presidente DotNetCampania• Docente Overnet Education• Speaker Basta!Italia• Componente del Team Sviluppo Crionet Srl• Resp. Area Sviluppo e Risorse Umane in

BC Soft SNC• Microsoft Student Partner per la Federico II

di Napoli

http://dotnetcampania.org/blogs/michele michele.aponte@dotnetcampania.org

AGENDA

• Dai Requisiti all’architettura del sistema– Analisi dei requisiti– Scelta dell’architettura– Design del sistema

• Un esempio reale: GEM– Richieste del cliente– Visual Studio 2010 per la definizione

dell’architettura e del design del sistema• Prototipizzazione– Sketchflow per la definizione dell’UI

Dai Requisiti all’architettura del sistema

Uno dei principi cardine dell’ingegneria del software è la SoC (Separation of Concerns) :

• Analista • Architetto• Project Manager• Developer• Devigner• Cliente (che ci paga)

Analisi dei requisiti

Tutto comincia dalla raccolta dei requisiti:• Individuazione degli stackholder• Interviste• Risolvere i requisiti in contrasto• Documento di Vision• Approvazione della Vision• Documento dei requisiti (anche UML)

Scelta dell’architettura

L’architetto recepisce i requisiti e:

• Divide il sistema in isole funzionali• Ipotizza le varie soluzioni architetturali possibili• Sceglie l’architettura che meglio risponde ai requisiti

funzionali e non funzionali• Prende la difficile decisione di non fare necessariamente

tutto da zero…• Respinge in tutti i modi possibili la sua indole da

programmatore• Redige le specifiche per i programmatori usando, se pensa

che sia necessario, anche UML

Design del sistema

Definita l’architettura il design emerge:• Architecture is hard to change • Separation of Concerns• Design Patterns• Soluzioni n-layer / n-tier

Layer <> Tier• Ricordiamoci che I requisiti sono già stati

definiti…non serve aggiungerne altri per soddisfare il nostro ego: giochiamo a casa, qui siamo pagati per fare business!

Un esempio reale: GEM

Il GEM (Gestione Eventi di Massa) è un Sistema Informativo complesso e distribuito finalizzato a gestire eventi che coinvolgono una grande partecipazione di pubblico, quali concerti, cinema, teatri, conferenze, etc..

Il sistema distribuito presenta una parte di Back-Office per la gestione degli eventi da parte degli amministratori, un Front-End per l’acquisto di un biglietto di un evento da parte di un utente finale, ed un client su dispositivo mobile, utilizzato dai Controllori per verificare la validità degli accessi.

Un esempio reale: GEM

I principali servizi offerti dal sistema sono 5:• Visualizzazione, su un sito web, degli eventi disponibili.• Acquisto Biglietto per un evento.• Controllo Accesso all’evento da parte di un addetto alla

Security.• Gestione degli Eventi

– Inserimento nuovo Evento– Modifica Evento esistente– Cancellazione Evento– Visualizzazione dati relativi ad un Evento

• Gestione dei Clienti– Visualizzazione dati relativi ad un Cliente– Cancellazione di un Cliente

Un esempio reale: GEM

• Il sistema offre un sito web in cui sono elencati tutti i prossimi eventi per cui è possibile acquistare un biglietto.

• Un Cliente, al fine di procedere con l’acquisto, deve preventivamente registrarsi presso il sistema, per ottenere un account. In fase di registrazione l’utente specifica i propri dati anagrafici, una login ed una password.

• Dopo la fase di autenticazione, l’utente ha la possibilità di selezionare un evento per cui sono disponibili posti, specificando il numero di biglietti desiderati. Dopo aver inserito i dati della carta di credito, il sistema ne controlla la validità, appoggiandosi ad un servizio esterno offerto da una banca. Qualora il pagamento vada a buon fine, il sistema restituisce al cliente un codice alfanumerico univoco che ne permetterà il riconoscimento all’ingresso dell’evento.

Un esempio reale: GEM

• Gli addetti al controllo dei biglietti dispongono di terminali mobili per validare un accesso. Tali dispositivi, collegati in wi-fi con un server centrale, permettono l’inserimento del codice alfanumerico di un avventore, e qualora questo risulti corretto, mostreranno il numero di accessi associati.

• Lato Back-Office, un gestore del sistema ha possibilità di specificare un nuovo evento, indicando data, luogo, prezzo e numero massimo di spettatori. Inoltre ha facoltà di visionare tutti gli eventi già inseriti, con la possibilità di visualizzare informazioni statistiche (biglietti venduti, incasso, etc…), modificarne i dati salienti, o di cancellare l’evento, qualora non vi siano già biglietti venduti.

• Infine, l’amministratore ha possibilità di visionare i dati dei clienti, ancora a fini statistici (numero biglietti acquistati, spesa totale effettuata, etc…), o di cancellarlo.

DEMODefinizione dell’architettura e design del sistema

con Visual Studio 2010

Prototipizzazione

Per definire con precisione i requisiti e interfacciarci con il cliente possiamo definire dei mockup:

• Statici• Mostrano come sarà fatto il sistema• E’ un riferimento per gli altri diagrammi

dell’analisi• Può essere un punto di partenza per creare un

prototipo…

Prototipizzazione

Un esempio:

Sketchflow per la definizione dell’UI

Un mockup statico è utile…ma uno dinamico è meglio! Sketchflow ci permette di:

• Definire con un tool grafico la UI• Definire il flusso dell’applicazione• Farla provare al cliente• Farci fornire dei feedback• Farci approvare le cose che gli daremo• Fornire il layout da realizzare agli sviluppatori• Aiutarci nella definizione del sistema

DEMOPrototipizzazione con SketchFlow

Un grazie di cuore a tutti gli sponsor

Senza di loro oggi non saremmo qui!

Compilate il modulo di feedback!

La vostra opinione per noi è fondamentale! Grazie!