+ Checkout Linguaggio per la gestione di una cassa Progetto per lesame di Linguaggi e Modelli Computazionali LS Fabio Ferretti Anno Accademico: 2009-2010.

Slides:



Advertisements
Presentazioni simili
1 Le s-espressioni. 2 Un nuovo esempio completo: le s-espressioni Sexpr 4 alberi binari (possibilmente vuoti) che hanno sulle foglie atomi (stringhe)
Advertisements

1 Progettazione gerarchica delle s- espressioni, utilizzando lereditarietà
WSDL (Web Services Description Language) Laurea Magistrale in Informatica Reti 2 (2006/07) dott. Federico Paoloni
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Seam.
E Windows SharePoint Services 2.0 Ivan Renesto Overview how to use Windows SharePoint Services.
EJB Enterprise Java Beans B. Pernici. Approccio Java.
Model – View - Controller
Citrix Metaframe. Metaframe è la soluzione client-server prodotta dalla Citrix in grado di rendere disponibili applicazioni e desktop a qualsiasi dispositivo.
1 Implementazione di Linguaggi 2 PARTE 6 Implementazione di Linguaggi 2 PARTE 6 Massimo Ancona DISI Università di Genova Testo: A.V. Aho, R. Sethi, J.D.Ullman.
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 6: Classi e astrazione dati 1.Introduzione 2.Definizione delle strutture 3.Accedere ai membri.
FONDAMENTI DI INFORMATICA III WfMC-1. FONDAMENTI DI INFORMATICA III WfMC-2 WFMC Cose WfMC Workflow Management Coalition (WfMC), Brussels, è unorganizzazione.
Java base VI: Gestione I/O. Argomenti Introdurre le API per linput e output in Java.
Sequence. CREARE UNA SEQUENCE CREATE SEQUENCE nome [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE]
Componenti dell’architettura Oracle
Progetto per lesame di Linguaggi e Modelli Computazionali LS Chiara Chiara Gualtieri.
Roma, 16 novembre 2010 SPT – Il sistema di accettazione Gestione centralizzata Dott. Paolo Spadetta.
MIC 2008, Roma Antonio Pistoia Università Politecnica delle Marche MOODLELab Uno strumento per MOODLE per la gestione dei telelaboratori durante i corsi.
Calcolo di Modelli Stabili Attraverso la Semplificazione di Programmi Logici Fabrizio Magni Relatore: Prof.ssa Stefania Costantini Corelatore: Dott. Alessandro.
Università degli studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Analisi e valutazione.
Un esempio: Registrazione e lettura di dati in un file
By Inter-Ware Soft. Tech. Introduzione all'uso del PC Massimo Sgambato.
Microsoft Access Maschere.
Il sistema operativo Sistema operativo (in breve) –È costituito dai programmi di gestione delle operazioni più elementari del computer –… gestione di vari.
Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 4 ARGOMENTI: STRINGHE DI CARATTERI.
JavaScript Lezione 5 Tipizzazione ed operazioni tra tipi diversi Istruzioni di input.
Lambiente operativo. 2 Per avviare e poter utilizzare il computer è necessario un particolare programma che si chiama sistema operativo. Windows è un.
Microsoft Access Cosa sono i database, microsoft access, le relazioni e le tabelle.
Linguaggio per la gestione di una videoteca e biblioteca domestica
Telemarketing & Market Research Advanced on Line Business Oriented Research Solutions ALBORS.
DISPOSITIVI ASIC Application Specific Integrated Circuit De Faveri Martina Classe 3 BET.
Dimostrazione delle nuove caratteristiche Presentazione di B2B Del Taglia spa.
Primi passi con Windows: Gestione del Desktop Barra Applicazioni Menu Avvio ISTITUTO COMPRENSIVO N.7 - VIA VIVALDI - IMOLA Via Vivaldi, Imola.
Sito IntergruppoParma.it Nuovo Intergruppo Parma.
Alcune problematiche di replicazione dati in unorganizzazione geograficamente distribuita Collaborazione CASPUR - ENEA Silvia Eccher - CASPUR Franco Iannone.
C OME CREARE I FRAME. Dal pannello File fai doppio clic sul file default.html per aprire la pagina (figura 1.1). Figura 1.1 Il file default.html.
I social commerce [Carpe diem]. I club dacquisto online I social coupon Gli e-tailer tradizionali I facebook shops Esempi di social commerce.
Il Booking Engine Html di HermesHotels è studiato per permettere I-Frame sui siti degli Hotels. Disponibile anche in modalità Pop- Up https, simile.
Struttura Aziendale Arianna Montervino 4° A T.G.A A.S 2009/2010 Stage.
Benvenuti nel marketplace dei macchinari per la deformazione della lamiera.
RE-LAB: START-UP YOUR BUSINESS CALCOLO DEI COSTI
LA GESTIONE DELLE ATTIVITÀ COMMERCIALI
POINT BREAKBREAK EVENTEVENT Prof. Pietro Samarelli.
SOFTWARE PER LA PROGETTAZIONE VISUALE DEGLI SPAZI ESPOSITIVI E LA GENERAZIONE DEL PLANOGRAMMA.
1 Target Cross Intelligence Le decisioni d'impresa, spesso, non sono né giuste né sbagliate. Le decisioni d'impresa, spesso, non sono né giuste né sbagliate.
Gestione semplice ed efficace delle attività tipiche di un rivenditore ceramico. Efficienza nel servizio ai clienti. Precisione nei rapporti coi fornitori.
Tableau de bord Cruscotto di direzione
Sistema Informativo per Associazioni Agricole AgriManager Progetto realizzato da in collaborazione con.
Sviluppo di una Xlet per la TV digitale terrestre Vademecum della regione marche 2006 Ventura Luca.
Architettura delle GPU e
Innovazioni versione 4 Bari, 17 ottobre Innovazioni versione 4 Il menù dinamico secondo logica operativa Il ruolo dei Ruoli Facilitare la scelta.
Moduli o Form I Moduli permettono all'utente di immettere informazioni...
Istituto degli InnocentiRegione Molise C orso di formazione La comunicazione pubblica La redazione web Campobasso 12/13 Aprile 2004.
CD-Easy Sito per la vendita on-line di CD audio. di Annunziato Tonnara Matr A.A. 2003/2004.
Hot Shots Vendita di alcolici
Project Review Località Sciistica 21 Dicembre 2011.
Gruppo 4: Gelmi Martina, Morelato Francesca, Parisi Elisa La mia scuola ha un sito Web: modelli per la qualità dei siti (Ingegneria del Web)
Sistema Informativo Demanio Idrico marzo Per aumentare lefficienza del servizio abbiamo realizzato un sistema in grado di gestire in modo integrato.
GAUDI Carpi 01 aprile Panoramica Visitatori On-line nuovo sito Visite medie quotidiane: 398 Visite medie quotidiane:
LE RETI E IL DDNS.
Voting Sistema di votazione telematica. Che cosè Sito web per gestire votazioni tramite internet La sezione amministratore permette di progettare lo scenario.
Attività Formativa Sviluppo di un WORKFLOW ENGINE di Dott. Riccardo Gasperoni Alessandro Caricato Gabriele Trabucco in collaborazione con Progesi S.p.A.
CineMan Linguaggio per la descrizione della programmazione di cinema
CAT 7 Caratteristiche generali
Realizzazione Grammatica non contestuale –no ricorsioni sinistre –LL(1) produzione individuata dal primo token Ogni non-terminale -> funzione –rappresenta.
Linguaggi e modelli computazionali LS
Progetto di un linguaggio e interprete per giocare a MemoryPlus Progetto di:Docente: Vito La PortaEnrico Denti.
Corso di Web Services A A Domenico Rosaci Patterns di E-Business D. RosaciPatterns per l'e-Business.
1 Basi di dati (Sistemi Informativi) Scuola di Dottorato in Scienze Veterinarie per la Salute Animale e la Sicurezza Alimentare a.a Ing. Mauro.
JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico
Transcript della presentazione:

+ Checkout Linguaggio per la gestione di una cassa Progetto per lesame di Linguaggi e Modelli Computazionali LS Fabio Ferretti Anno Accademico:

+ Obiettivi del progetto Creare un linguaggio per gestire le operazioni della cassa di un negozio Inserimento di prodotti per la vendita Dettagli dei prodotti disponibili Vendita al cliente Creare un interprete che controlli le frasi inserite dallutente Simulare i meccanismi di una normale cassa Gestire la persistenza dei dati e fornirne una rappresentazione tabellare

+ Cerca tra i prodotti presenti una specifica categoriaRimozione dal sistema di una categoria di prodotti Operazione che elimina dal sistema prodotti nella quantità indicata Aggiornamento dei campi opzionali di un prodotto già nel sistema Fornisce al sistema i dettagli dei prodotti inseritiInserisce nel sistema un prodotto da vendere Grammatica – Non Terminali Scopo della grammatica: ::= ::= | | | | | ::= inserisci ::= dettagli prodotti ::= aggiorna ::= vendi ( )+ ::= rimuovi ::= prodotto CODICE_A_BARRE Operazioni principali:

+ Grammatica – Non Terminali Prodotto: :: = prodotto CODICE_A_BARRE PRODUTTORE ( )+ MODELLO ( )+ LOTTO_PRODUZIONE DATA_ACQUISTO PREZZO ( | ) ( euro | ) Campi obbligatori per un nuovo prodotto

+ Grammatica – Non Terminali Caratteristiche opzionali per un prodotto: ::= ( COLORE ( )+ )? ( DESCRIZIONE ( )+ )? ( IMMAGINE )? ( NUMERO_TELEFONO_PRODUTTORE ( )* ( )? ( NUMERO_FAX_PRODUTTORE ( )* ( )? ( _PRODUTTORE ( )* ( )+ )? ( MADE_IN )? Posso avere molteplici colori per uno stesso prodotto Posso inserire più descrizioni dello stesso prodotto

+ Grammatica – Non Terminali Quantità prodotto: ::= QUANTITA ::= Data:

+ ( )* \>DEFINIRE STRINGHE Grammatica - Terminali > DELIMITARE BLOCCHI LOGICI )*> (. |, ) > DEFINIRE NUMERI DEFINIRE DATA, E NUMERI TELEFONICI )+ > > DEFINIRE URL DI UNIMMAGINE

+ Esempi frasi del linguaggio Inserisci Prodotto Cerca Prodotto Vendi Prodotto Rimuovi Prodotto Aggiorna Prodotto inserisci prodotto: { CODICE_A_BARRE --> " "; PRODUTTORE --> "Stabilo"; MODELLO --> "Pen 68"; LOTTO_PRODUZIONE --> "aabb1122"; DATA_ACQUISTO --> ; QUANTITA --> 3; PREZZO --> 0,99 euro; } aggiorna prodotto: { CODICE_A_BARRE --> " "; } { COLORE --> "Verde Limone"; DESCRIZIONE --> "PENNARELLO CON PUNTA DI FIBRA PREGIATA. PUNTA INDEFORMABILE. INCHIOSTRO INODORE A BASE DACQUA. PUNTA MEDIA TRATTO 1MM."; IMMAGINE --> /Users/Faust/Desktop/Checkout/ image/Pen_68.jpg; _PRODUTTORE --> MADE_IN --> "Germania"; } prodotto: { CODICE_A_BARRE --> " "; } vendi prodotto: { CODICE_A_BARRE --> " "; } { QUANTITA --> 2; } rimuovi prodotto: { CODICE_A_BARRE --> " "; }

+ Osservazioni sulla grammatica La grammatica, nella parte sinistra delle di tutte le produzioni, presenta un unico simbolo non terminale. Le produzioni hanno la forma: A α con α (VT VN)*, A VN Secondo la classificazione di Chomsky è una grammatica di Tipo 2 (Context-Free) La grammatica non contiene self-embedding, quindi il linguaggio generato è di Tipo 3 (Regolare)

+ Osservazioni sulla grammatica La grammatica presenta delle parti di linguaggio opzionali, che possono produrre ε -rules. Per dire che la grammatica sia LL(1) non è più sufficiente che gli Starter Symbols relativi alle parti destre delle produzioni alternative siano disgiunti. Per le produzioni come A α in cui α può genare la stringa vuota i Director Symbols sono DS(A α ) = SS( α ) FOLLOW(A) Nel caso in cui α non generi la stringa vuota i Director Symbols coincidono con gli Starter Symbols Essendo i Director Symbols di produzioni alternative disgiunti, questa è una condizione necessaria e sufficiente per dire che la grammatica è LL(1) E possibile quindi applicare lanalisi ricorsiva discendente (Top-Down) Sono introdotti tanti metodi quanti i simboli non terminali, che si occupano di riconoscere il sotto-linguaggio generato dal simbolo non terminale associato E necessario dunque considerare i Director Symbols

+ Architettura del sistema Frase del linguaggio Parser CHKParserTokenManager CHKParser SyntaxTree InserisciProdotto CercaProdotto DettagliProdotti VendiProdotto AggiornaProdotto RimuoviProdotto Quantita Data Prodotto ParametriOpzionaliProdotto Visitor IVoidVisitor DepthFirstVoidVisitor CheckoutDepthFirstVisitor SyntaxTreeDepthFirstVisitor Package Visitor generato da JTB. Contiene linterfaccia del visitor IVoidVisitor e implementazioni con visita DepthFirst Package generato da JavaCC, contiene un lexer per analizzare i singoli token e un parser che effettua lanalisi sintattica Percorre lalbero costruendo una sua rappresentazione Package generato da JTB per la costruzione dellAST Percorre lalbero e svolge le operazioni necessarie effettuando controlli sulla semantica

+ Analisi semantica La classe DepthFirstVoidVisitor è stata estesa da due sottoclassi: CheckoutDepthFirstVisitor: Effettua controlli semantici sulla frase inserita Crea, modifica, rimuove e restituisce righe dalle tabelle del database a seconda delle operazioni richieste SyntaxTreeDepthFirstVisitor: Percorre lalbero e ne crea una sua rappresentazione semplificata omettendo le produzioni non significative Ciascun visitor realizza una visita di tipo depth first avvalendosi del meccanismo del double dispatch

+ Gestione della persistenza Per laccesso ai dati è stato impiegato il Pattern DAO (Data Access Object). Il pattern consente di poter sostituire il dispositivo di persistenza senza che questo abbia impatto sulla logica di business. Il sistema è diviso in tre parti: Logica di accesso ai dati Implementazione JDBC, che astrae dal database sottostante Implementazione in accordo allo specifico database

+ Componenti accessori Il sistema dispone di classi accessorie che svolgono attività secondarie Classi per lhighlighting e la segnalazione di errori nelle frasi del linguaggio inserite nelleditor Classi per la generazione automatica delle frasi del linguaggio Classi per la gestione del flusso di frame proveniente dalla webcam Classi per la lettura di codici a barre, del tipo EAN-13, da immagini

+ Interfaccia grafica ConfermaVendita ConfermaRimozioneCarrello GraphicaluserInterfaceCheckoutAboutBox GraphicaluserInterfaceCheckoutApp GraphicaluserInterfaceCheckoutView Frame che lancia lapplicazione Classe che si occupa della creazione dei vari componenti dellinterfaccia grafica Finestra di dialogo contenente le informazioni sullapplicazione Finestra di dialogo per la rimozione di un prodotto dal carrello e per la conferma della vendita di prodotti WebcamFrame Frame che permette di visualizzare le immagini catturate dalla webcam CarrelloTableModel Classe per la gestione delle tabelle nellinterfaccia grafica Componenti principali:

+ Interfaccia grafica Campi per limmissione dei dati Frame provenienti dalla webcam Selezione operazioni di gestione

+ Interfaccia grafica Dettagli prodotto selezionato Selezione prodotto

+ Interfaccia grafica Prodotti che il cliente vuole acquistare Prodotti presenti in negozio

+ Interfaccia grafica Area di notifica per eventuali messaggi di errore Area per la scrittura delle frasi del linguaggio Albero che rappresenta lesecuzione di un comando Highlighting del codice

+ Test e collaudi Suite di test JUnit per verificare la correttezza delle operazioni di lettura e scrittura verso il database File con opportuni errori sintattici e semantici al fine di collaudare il sistema a fronte di situazioni di errore Predisposti opportuni messaggi per segnalare allutente eventuali errori sintattici e semantici Errori sintattici viene segnalata riga e colonna dellerrore e il carattere inaspettato Errori semantici viene esplicitamente segnalato lerrore

+ Tecnologie Linguaggio di programmazione Java1.6.0_26 Ambienti di sviluppo Eclipse Helios NetBeans Generazione lexer e parser JavaCC (Plug-in Eclipse) Generazione visitor e APT Java Tree Builder (Plug-in Eclipse) Generazione delle documentazione JJDoc Testing JUnit Database Oracle MySQL

+ Limiti e sviluppi futuri Supporto da parte del linguaggio dellaspetto fiscale legato alle transazioni Estensione del linguaggio con nuove operazioni Gestione di più negozi, con eventuali scambi tra di essi Gestione di categorie di prodotti differenziate, ad esempio alimentari, farmaceutici, elettrici… Supporto a webcam non QuickTime compatibili Riconoscimento di codici a barre diversi da quelli in formato EAN-13