Sviluppo dellEnterprise application Lavaza. Prima puntata.

Slides:



Advertisements
Presentazioni simili
“Niente di Nuovo” Mercatino dell’Usato
Advertisements

UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Introduzione ai Casi dUso (c) TECNET DATI (c) TECNET DATI Pag. 2 Dai requisiti ai casi duso obiettividefinire gli obiettivi –gli obiettivi del committente.
Recupero debito quarto anno Primo incontro
Informatica Recupero debito quarto anno Terzo incontro.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
Java Enterprise Edition (JEE)
Sviluppo dellEnterprise application Lavaza. V 1 Scopo dellapplicazione Nel nostro dipartimento abbiamo una macchina per il caffè che utilizza delle cialde.
Sviluppo dellEnterprise application Lavaza. Scopo dellapplicazione Nel nostro dipartimento abbiamo una macchina per il caffè che utilizza delle cialde.
1 I KEYLOGGERS COSA SONO CONTROMISURE UN ESEMPIO.
Java: programmazione concorrente con condivisione di memoria
Sviluppo dellEnterprise application Lavaza. Prima puntata.
LABIS-SD Antonio Cuomo393/121 Clelio Quattrocchi393/127 Emanuele Zuzolo393/136 Fabio Melillo393/141 Stefano Mastrocinque393/135 Valerio Vincenzo Guarino393/155.
Analisi dettagliata e design B. Pernici M.G. Fugini AA
1 IT FOR BUSINESS AND FINANCE ACCESS INTRODUCTION.
La vendita online b2c. PROBLEMATICHE (I) 1.Le caratteristiche del prodotto è adatto alla vendita online? 2.Il mercato in cui si opera come avviene la.
Architettura Three Tier
Struttura dei sistemi operativi (panoramica)
UML: Extension Mechanism Corso IS I /03 Gianna Reggio Versione 0.0.
Basi di dati 2002 EER Vogliamo aumentare lespressività degli Entity Model EER: Entity Model Esteso.
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net Web Part e controlli di login Elaborazione di Franco Grivet Chin.
Architettura Java/J2EE
DBMS ( Database Management System)
23.1 Prototyping 28/5/04 PROTOTYPING Prototyping 28/5/04 Perchè creare prototipi? Per avere un rapido feedback sul design Per sperimentare design.
Archivi Amministrazione Contabile Verticali Import Export Configuratore.
PROMEMO Servizio di invio messaggi via SMS ed (Gestione utenti multipli)
Modulo 1 - Hardware u.d. 3 (syllabus – 1.3.5)
Presenta Progetto Hyper-Club. Hyper-code Via Domenico Mercante 6, Verona (VR) – Tel Cell mail. Agenda.
Architettura di applicazioni enterprise Michele Aponte - DotNetCampania Team.
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
Analisi (Analista) Progettazione (Progettista) Sviluppo o Traduzione (Sviluppatore) Documentazione.
Il modello di riferimento OSI
Sistemi Informativi sul Web
Introduzione alla programmazione web
1Ingegneria Del Software L-A Progetto realizzato da: Luca Iannario, Enrico Baioni, Sara Sabioni. A.A. 2008/2009.
1Ingegneria Del Software L-A Progetto realizzato da: Luca Iannario, Enrico Baioni, Sara Sabioni. A.A. 2008/2009.
1Ingegneria Del Software L-A Progetto realizzato da: Luca Iannario, Enrico Baioni, Sara Sabioni. A.A. 2008/2009.
1Ingegneria Del Software L-A Progetto realizzato da: Luca Iannario, Enrico Baioni, Sara Sabioni. A.A. 2008/2009.
Everywhere Takeaway Progetto di SSCSWeb A.A. 2011/2012.
BIOINFO3 - Lezione 111 CGI-BIN CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. Il server web (httpd) della.
GESTIONE MARKETING 1.
Java Enterprise Edition
27 Marzo 2014 Come utilizzare il portale rma MOTOROLA SOLUTIONS 1.
Progettazione e realizzazione di un’applicazione J2EE Corso TAPS 2001/02 Gianna Reggio.
Il portale di commercio elettronico per le pmi italiane Napoli,
Processo di Registrazione portali: MyCompany
Progetto Traduzioni elaborato di Basi di Dati sviluppato con WebRatio
1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
N4N Platform Architecture PA Inside outlook.
Nemesi Creazione e pubblicazione di una rivista online tramite l’utilizzo di Java Message Service.
Diagramma delle Classi
Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.
Progetto Finale Laboratorio di Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
Analisi dettagliata e design
Analisi dei requisiti Il primo passo di “qualsiasi” processo di sviluppo è la definizione dei requisiti  Definizione del Business Model  Solitamente.
1 Tipi di Dato §descrittori, tipi, controllo e inferenza dei tipi §specifica (semantica) e implementazione di tipi di dato l implementazioni “sequenziali”
Panoramica del nuovo modello di distribuzione dei supporti Open per i clienti Open License Lancio Marzo ‘08: Rest of Emea incl. Italy.
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 4 -Progettazione del software Ernesto Damiani Università degli Studi.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Ingegneria del software Modulo 3 -Tecniche d’implementazione Unità didattica 2 -EJB Ernesto Damiani Università degli Studi di Milano Lezione 2 – Tipi di.
Progettazione e realizzazione di un’applicazione J2EE Parte 2.
Informatica Generale Marzia Buscemi
1Ingegneria Del Software L-A Progetto realizzato da: Luca Iannario, Enrico Baioni, Sara Sabioni. A.A. 2008/2009.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Eprogram informatica V anno.
La progettazione di un sito web
0 Laboratorio Informatica - SAS – Anno Accademico LIUC Alcune indicazioni Dettaglio lezioni: Prima : Michele Gnecchi – Introduzione a SAS Guide.
Economia del lavoro Lezione 3 Offerta di lavoro, parte seconda.
I DONEITÀ DI C ONOSCENZE E C OMPETENZE I NFORMATICHE ( A – D ) Un database è un insieme di record (registrazioni) e di file (archivi) organizzati per uno.
Data warehouse(B.2.8) Nei database ci sono molti dati di tipo diverso e ciascuna tipologia di dato può avere un formato diverso. Alcuni provengono da legacy.
Transcript della presentazione:

Sviluppo dellEnterprise application Lavaza

Prima puntata

Scopo dellapplicazione Nel nostro dipartimento abbiamo una macchina per il caffè che utilizza delle cialde preconfezionate. Tali cialde sono vendute in bustine che ne contengono due al prezzo di ¤ In genere vengono acquistati gruppi di 5 bustine al prezzo di ¤ Daniela, una delle nostre segretarie si occupa della vendita, e di richiedere i rifornimenti quando è il momento. Le bustine sono fornite in scatole da 50. Daniela, per prevedere quando è il momento giusto di fare rifornimento, è interessata a sapere quanti caffè ha ancora disponibili, ed a informazioni statistiche riguardanti quanti caffè si vendono durante i vari periodi. Molte volte noi acquistiamo i caffè a credito, e siamo molto smemorati. Quando Daniela non è presente in Dipartimento altro personale amministrativo si occupa di venderci i caffè.

Client BusinessEnperprise IS Cosa mettere nei tre strati …….. un solo tipo di application client in ogni momento una sola istanza sarà in esecuzione (sulla macchina di Daniela o dellaltra persona che venderà i caffè in sua vece) Un database contenente le seguenti informazioni debiti (crediti ?) dei consumatori numero di bustine vendute in ogni mese il numero delle bustine disponibili i soldi in cassa quando sono stati fatti gli ordini (??)

Application client funzionalita offerte –Registrare una vendita, classificata in a credito o in contanti (facilitazioni per 5 bustine, una scatola) –Mostrare quante bustine sono disponibili –Mostrare le statistiche di vendita (bustine vendute in ogni mese) –Controllare se un consumatore ha dei debiti –Pagare un debito (totalemente o anche parzialmente ?) –Mostrare quanto ci deve essere in cassa –Registrare larrivo di un rifornimento di caffè GUI –schemino grafico –deve offrire mezzi per accedere alle funzionalità di cui sopra descrivere operativamente le funzionalità di cui sopra, dopo aver definito gli altri due strati

Seconda puntata

EIS tier In questa applicazione lo strato EIS contiene giusto un unico database Schema del data base

In questo caso usiamo una notazione UML-like, self-explaining, ma è possibile usarne altre (es. entity relationship) Consumer name: String surname: String login: String {quella che ogni persona del dipartimento usa nel suo indirizzo di } deb: Int {il debito corrente} > Sell month: Int year: Int quantity: Int key: int {= month * 37 * year * 43} > Refill day: int month: Int year: Int quantity: Int key: int {= day * 51 + month * 37 * year * 43} > Situation cash: Euro {money contained in the cash} coffee: Int {number of packages available} quantity: Int key: int { = 1, since there will be always a unique object of this class} > in questo caso non ci sono relazioni tra le varie entità

Business tier schema (software architecture) –mostra quante istanze di enterprise beans ci sono e come interagiscono tra di loro gli enterprise beans, opportunamente classificati, utilizzati per questa applicazione

Entity beans Lo schema del database presentato precedentemente definisce in modo ovvio quali saranno gli entity bean utilizzati nella nostra applicazione: uno per ogni relazione del database Quale tipo di persistenza avranno? –la persistenza gestita dal contenitore sembra ragionevole in questo caso, pertanto scegliamo quella

Session beans (1) quali/quante/di che tipo sono le sessioni interattive dellapplication client (AC da ora in poi) con lo strato business ? –sono possibili varie scelte *minimale ˚ununica sessione che inizia quando lAC parte e finisce quando lAC termina lesecuzione *massimale ˚una sessione differente per gestire ogni funzionalità dellAC *preferita, una sessione per questi gruppi di funzionalità, che ragionevolmente saranno eseguiti assieme ˚effettuare una vendita ˚controllare la situazione (bustine disponibili e soldi in cassa) ˚vedere le statistiche di vendita ˚gestire il debito di un consumatore (controllare quanto deve, e magari pagare) ˚registrare larrivo di un rifornimento di caffè

Session beans (2) H_Sell > H_Debit > Check > Statistic > H_Refill > Vediamo ora grossolanamente che cosa fanno presentando possibili scenari (casi/esempi di esecuzione) delle loro attività per semplicità ora non consideriamo le possibili situazioni di errore aggiungerle per esercizio

H_Sell (gestire una vendita) ACH_Sell Situation Sell {quella del mese corrente} sellMon(nPks) sold(nPks) ACH_Sell Situation Sell {quella del mese corrente} sellCred(lg,nPks) sellCred(nPks) sold(nPks) Cosumer {quella con login = lg} debit(nPks) in contanti a credito

H_Debit (gestire i debiti) ACH_Debit M =debitOf(lg) Consumer {quella con login = lg} d = get_deb() show(lg,b) pay(lg,b) payed(b)

Check (controlla situazione) ACCheck check() Situation (c,pkgs) = how() show(c,pkg)

H_Refill (registra un rifornimento) ACH_Refill arrived(nBox) Situation refill&Pay(nBox)

Static (esamina le statistiche di vendita) ACStatistic statistic(y1,y2) si:Sell i COD(y1,y2) {quello di codice I} qi = HowMany() show(q1 :: … ::qk) COD(y1,y2) = { 1, …, k} = codici dei mesi tra inizio anno y1 e lultimo mese dellanno y2

Message-driven beans Servono per questa applicazione ? –No; infatti, questa applicazione, come pure le sue componenti, non devono ricevere comunicazioni asincrone da parte di altre entità

Completare la definizione dei beans classificarli rispetto alle varie tipologie definire le loro interfacce definire i loro metodi

Entity beans tutti con persistenza gestita dal container, e nessuno sarà remoto Consumer name: String surname: String login: String {quella che ogni persona del dipartimento usa nel suo indirizzo di } deb: Int = 0 {il debito corrente} > getDeb(): Int payed(Int) debits(Int) {la definizione di queste operazioni è piuttosto ovvia} Refill day: int month: Int year: Int quantity: Int key: int {= day * 51 * month * 37 * year * 41} > Sell month: Int year: Int quantity: Int {in bustine} key: int {= month *37 * year * 41} > howmany(): Int sold(Int) Situation cash: Euro {money contained in the cash} coffee: Int {number of packages available} quantity: Int key: int { = 1, since there will be always a unique object of this class} > refil&pay(nBox:Int) {cash = cash - nBox * 31.00; quantity = quantity + nBox * 50} how(): Int x Int {return cash, quantity} sellMon(nPkgs: Int) {quantity = quantity-nPkgs; cash = cash * nPkhgs} sellCred(nPkgs: Int) {quantity = quantity-nPkgs}

Sessions Beans H_Sell remoto, stateless H_Sell > sellMon(nPkgs: Int) {findSituation(1).sellMon(nPkgs); findSell(currentMonth).sold(nPkgs)} sellCred(log: String, nPkgs: Int) {findSituation(1).sellMon(nPkgs); findSell(currentMonth).sold(nPkgs); findConsumer(log).debit(nPkgs)} month: int year: int currentMonth =[derived] month * 31 * year * 37

Sessions Beans H_Debit remoto, statefull H_Debit > ………. …….. finire per esercizio e fare gli altri

Reusable components non abbiamo riusato niente, Ok possiamo pensare qualcuna delel nostre componenti in vista del riuso ? (ovviamente rendendole un poco più generale) Statistic… Situation

Transaction ????

Security quali problemi, al massimo il furto di qualche Euro da parte di un mio collega/personale delle pulizie autenticare lunico utente

Esercizi L0] Preparare uno schema per la GUI dellapplication client di Lavaza. L1] rifare la documentazione sul progetto di Lavaza presentato in questo documento utilizzando altri tipi di notazioni, precisando quale usate (es., UML puro preparato con tools, disegni & testo completamenti liberi) L2] modificare il progetto di Lavaza secondo i vostri gusti, e modificare in modo corrispondente la documentazione presentato in questo documento L3] Correggere un grossolano errore presente in questo progetto

Fine lezione