Università degli Studi di Modena e Reggio Emilia

Slides:



Advertisements
Presentazioni simili
Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.
Advertisements

Università degli Studi di Modena e Reggio Emilia
UNIVERSITA’ DEGLI STUDI DI MODENA E REGGIO EMILIA
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
1 DB unimo CROSS LAB Integrazione framework MOMIS - BCI Parma, 18/09/2007 Sonia Bergamaschi, Maurizio Vincini, Mirko Orsini
POLITECNICO DI MILANO FACOLTA’ DI INGEGNERIA SEDE DI CREMONA TESI DI DIPLOMA IN INGEGNERIA INFORMATICA RELATOREAUTORI Prof. Vittorio TrecordiDemicheli.
Obiettivo  Analisi  Progettazione  Sviluppo 2 App context-aware per la fruizione di servizi.
Dipartimento di Scienze Fisiche, Informatiche e Naturali Corso di Laurea in Informatica Progetto e sviluppo di un applicativo web per la gestione ed archiviazione.
Viki: Smart Home Natural Language Interface Realizzazione di un’interfaccia in linguaggio naturale, senza grammatiche fisse, per l’automazione casalinga.
Basi di dati - Fondamenti
La progettazione concettuale
Visual Analytics Dashboard
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Sviluppo di un database aziendale con Microsoft Access e VBA
Vulnerability Assessment
Piattaforma per industrie stampaggio
Corso di Ingegneria del Web A A
Per informazioni: I PORTALI ELLY: INTRODUZIONE Per informazioni:
Secondo Compito: PROGETTAZIONE DI UN DATABASE Claudia Angione
PROGETTAZIONE DATABASE SECONDO COMPITO CAROLINA CASIELLO
Aggiornamento del Presentation Layer di un Web Application Framework Introduzione del Responsive Web Design nel Framework Quix Davide Setti Dipartimento.
Gestione delle fasi del tirocinio attraverso un’ App Android e interfaccia Web e relativa gestione documentale della tesi Università degli Studi di Napoli.
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Dipartimento di Scienze Fisiche, Informatiche e Matematiche Corso di Laure in Informatica Relatore: Riccardo.
PROGETTAZIONE CONCETTUALE
APPS4SAFETY – Frontiere della sicurezza automobilistica
Commissione Calcolo e Reti
EasyGraph Dynamic web-based dashboard
Microsoft Access E’ un programma utile per lo sviluppo di applicazioni gestionali che si appoggiano a una base dati.
Microsoft Access E’ un programma utile per lo sviluppo di applicazioni gestionali che si appoggiano a una base dati.
Applicazione web basata su web service e web socket
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Studente/i Relatore Correlatore Committente Pagano Pedro Daniel
Commissione Calcolo e Reti
how to use Windows SharePoint Services
Microsoft Office Access
Analysis framework of distributed thread and malware data-sources
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Paradigma MVC Ing. Buttolo Marco.
Università degli Studi di Ferrara
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
I vincoli di integrità Alcuni aspetti della realtà NON possono essere modellati solamente con entità, attributi e relazioni, per esempio i vincoli di integrità.
Corso di Ingegneria del Web e Applicazioni A A
JAPS: una soluzione “Agile”
Corso Di Laurea Magistrale In Ingegneria Informatica - Anno accademico
Qui il titolo del vostro elaborato Qui il vostro Nome e Cognome
Tecniche di Problem-Solving
Programmazione ad Oggetti per la Fisica
Sviluppo di un'applicazione web per l'utilizzo del framework SparkER
Progettazione logica: Il modello relazionale
Access.
Basi di dati - Fondamenti
Introduzione alla materia sistemi
Laureando: Nome COGNOME Matricola
La progettazione del lavoro di tesi
SQL per la modifica di basi di dati
Composizioni di classi
ADO Per gestire i database con tecnologia ASP si utilizzano strumenti ADO (ActiveX Data Objects): un'architettura che fornisce oggetti.
Corso di Laurea Specialistica/Magistrale in Farmacia
© 2007 SEI-Società Editrice Internazionale, Apogeo
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Free .NET Hosting - somee.com
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
OpenLayers Client di mappe “non solo” WMS
Università degli studi di Modena e Reggio Emilia
UNIVERSITÀ DI MODENA E REGGIO EMILIA
Java Costruttore di copia e GetStatus.
UML Diagramma statico di una classe
Corso di Laurea in Farmacia Dipartimento di Scienze del Farmaco
In sin tesi – l19 come si discute una tesi?
Ruolo: Redattore Corsi
Transcript della presentazione:

Università degli Studi di Modena e Reggio Emilia Dipartimento di Ingegneria ‘’Enzo Ferrari’’ Corso di Laurea in Ingegneria Informatica Sviluppo applicazione web ‘’DBGroupThesis’’ Relatore: Sonia Bergamaschi Candidato: Fabio Travaglioli Anno Accademico 2015 - 2016

Il progetto 2 differenti tipologie d’utente Studente Professore DBGroupThesis è una Single Page Web Application (SPA), ovvero una pagina web JavaScript in grado di modificare il proprio contenuto in base alle richieste ed azioni dell’utente utilizzatore. 2 differenti tipologie d’utente Studente Professore Visualizzazione informazioni (elenco studenti, tesi, etc..) Manipolazione d’informazioni (insert, update, delete) Filtraggio dei risultati attraverso form di ricerca

Classi delle tabelle del database Struttura Pattern MVC (Model View Controller): suddivide il codice in blocchi dalle funzionalità ben distinte: View Controller Model View: definisce le modalità di presentazione dei dati e l’interazione con l’utente Pagina JavaScript (lato client) Model: gestisce l’accesso ai dati e si occupa del loro aggiornamento Classi delle tabelle del database Classe Java Controller: determina la logica di controllo, gestendo gli eventi generati dall’utente

Entità e linguaggi Pagina web Server web Database Sintassi simile a C, C++ Object oriented Dichiarativo Interpretato Garbage Collection Standard per DBMS Gestione degli eventi Basato su tabelle

Il database Tabella studente Tabella tesi Tabella relatore Una delle caratteristiche fondamentali di DBGroupThesis è la presenza di un database in grado di raccogliere e gestire l’intera mole di dati del progetto. Tra le tabelle presenti, si evidenziano: Associa ad ogni tesi realizzata il ricercatore/professore che seguirà l’andamento di una tesi Raccoglie le informazioni anagrafiche e accademiche di ogni studente Raccoglie le informazioni principali per ogni elaborato Tabella studente Tabella tesi Tabella relatore Attributi Foreign key Tesi_id: chiave primaria Relatore_id: chiave primaria Studente_id: chiave primaria Matricola (AK), nome, cognome, media, data_prevista_tesi, voto_finale_tesi Attributi canonici per una tesi: anno_accademico, abstract, note, pubblicabile Principale (flag) 2 chiavi esterne 3 chiavi esterne 1 chiave esterna Tipo_studente_id (triennale, magistrale, dottorato) Studente_id, tipologia tesi_id, azienda_id Tesi_id, ricercatore_id

Argomento della tesi Problema n°1: un professore vuole suddividere le tesi in base all’argomento trattato Soluzione: implementazione di una nuova tabella all’interno del database: tabella Tag Tag: parola chiave che identifica al meglio un progetto di tesi Ogni tag è identificato univocamente da un tag_id, ha un nome e una descrizione Problema n°2: un determinato tag non può essere associato a più tesi (e viceversa) con un’associazione «uno a molti» Soluzione: implementazione di una nuova tabella all’interno del database: tabella tesi_tag Relazione «molti a molti»: ora ogni tesi può avere più tags Ogni riga della tabella ha una PK tesi_tag_id, due chiavi esterne (tesi_id e tag_id) e il campo principale

Step 1: creazione codice Grazie all’utilizzo del framework DBGroup, è possibile ricavare in modo automatico il codice sorgente necessario per gestire le principali funzioni della tabella Tag. Creazione classe tag.java Nuova voce nel menù Tag_update Per ogni funzionalità viene creato: Un metodo Java Una funzione JavaScript Tag.java Implementazioni nuove funzioni: Tag_insert Inserimento nuovo tag Visualizzazione dei tag esistenti Tag_list Aggiornamento di un tag Tag_delete Eliminazione di un tag

Step 2: implementazione tesi_tag @Transactional @RequestMapping(value="tag_id/tesi_tag_setprincipale") public void tesi_tag_setprincipale(HttpSession session , HttpServletResponse response , @RequestParam("content") String scontent ) throws Exception { String status = null; JSONObject rv = new JSONObject(); if ((status = appSessionTools.hasPermission(session, "db_tesi_tag_update"))!=null) status = "permissionDenied " + status; appControllerTools.appDoRequestMappingResponse(response, status, rv); return; } JSONObject content = new JSONObject(scontent); int tesi_tag_id = content.getInt("tesi_tag_id"); tesi_tag.setPrincipale(tesi_tag_id); status = "ok"; appControllerTools.appDoRequestMappingResponse(response, status, rv) ; Step 2: implementazione tesi_tag Problema: non è possibile generare il codice in modo automatico (grazie ad un framework) per una relazione «molti a molti». Soluzione: è necessaria la produzione manuale del codice per la gestione della tabella tesi_tag. Vantaggi Vincol i Creazione di un’interfaccia grafica personalizzabile Maggiore complessità Maggiore intuitività per l’utente Creazione nuove classi Implementazione nuove funzionalità Impostazione di un tag come principale

Step 3: interfaccia grafica 2° tipologia: aggiunta di un nuovo tab all’interno della scheda di ciascuna tesi 1° tipologia: aggiunta di un apposito campo all’interno della scheda di ciascuna tesi Dal punto di vista grafico, all’interno di DBGroupThesis sono state implementate due differenti tipologie di visualizzazione dei tags per ogni tesi registrata. Tab 1° tipologia: aggiunta di un apposito campo all’interno della scheda di ciascuna tesi Elenco tags Visualizzazione 2° tipologia: aggiunta di un nuovo tab all’interno della scheda di ciascuna tesi Nuovo campo tag Visualizzazione e manipolazione (CRUD) Form aggiunta tag Elenco tags

Grazie per l’attenzione