Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

18
Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team

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

Page 1: Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

Architettura di applicazioni enterprise

Michele Aponte - DotNetCampania Team

Page 2: 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 [email protected]

Page 3: Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

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

Page 4: Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

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)

Page 5: Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

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)

Page 6: Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

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

Page 7: Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

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!

Page 8: Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

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.

Page 9: Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

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

Page 10: Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

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.

Page 11: Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

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.

Page 12: Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

DEMODefinizione dell’architettura e design del sistema

con Visual Studio 2010

Page 13: Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

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…

Page 14: Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

Prototipizzazione

Un esempio:

Page 15: Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

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

Page 16: Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

DEMOPrototipizzazione con SketchFlow

Page 17: Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

Un grazie di cuore a tutti gli sponsor

Senza di loro oggi non saremmo qui!

Page 18: Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.

Compilate il modulo di feedback!

La vostra opinione per noi è fondamentale! Grazie!