Java e solidarietà: il progetto Jug4Tenda



Documenti analoghi
PROGETTAZIONE E SVILUPPO DI UN. Relatore: Studente: Paolo Merialdo Valerio Barbagallo

Strumenti per lo sviluppo software in comunità

DESY è un prodotto ideato e sviluppato da

INFORMATIVA SUL DIRITTO ALLA PRIVACY PER LA CONSULTAZIONE DEL SITO WEB

Un Blog chiuso come strumento di comunicazione interna in un gruppo di lavoro

REAL ESTATE. Il software per la gestione della presenza online per le agenzie immobiliari

Corso sul pacchetto R

STUDIUM.UniCT Tutorial per gli studenti

Vivere meglio ed aiutare il proprio territorio

Generazione Automatica di Asserzioni da Modelli di Specifica

L o. Walter Ambu japs: una soluzione agile (

Ti consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata.

Iniziamo la panoramica sul funzionamento dell'svn sulla suite S.A.

Organizzazione degli archivi

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

OpenPsy: OpenSource nella Psicologia. Presentazione del progetto in occasione dell edizione 2004 del Webbit (Padova)

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova

In che modo e per quale scopo verranno trattati i miei dati personali?

Implementazione di MVC. Gabriele Pellegrinetti

Turismo Virtual Turismo Virtual Turismo Virtual

DRUPAL CONTINUOUS INTEGRATION. Parte I - Introduzione

Relazione illustrativa degli Obiettivi di accessibilità

Il web server Apache Lezione n. 3. Introduzione

Formazione in rete e apprendimento collaborativo

Setup e installazione

Comitato territoriale costituzione

REGOLE PER L ESAME (agg.te settembre 2015)

FONDAZIONE ZANETTI ONLUS

International School of Siena. Procedura di ammissione. Le procedure

Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4)

Hai domande sul nuovo concorso Lines Arcobaleno?

La progettazione centrata sull utente nei bandi di gara

Apprendere la matematica: dal problema al modello e dal modello all astrazione

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

Introduzione alla teoria dei database relazionali. Come progettare un database

In questa pagina si descrivono le modalità di gestione del sito in riferimento al trattamento dei dati personali degli utenti che lo consultano.

Informatica per la comunicazione" - lezione 13 -

Google Apps for Education F.A.Q. a cura di Luigi Parisi Servizio Marconi T.S.I. - USR Emilia-Romagna. aggiornata al 18 maggio 2015.

Mercoledì degli Associati. Opportunità di business per le Aziende UCIF. Milano, 20 novembre Federata

Piano Nazionale Scuola Digitale Liceo A. Moro

Un nuovo modo per fare analisi e generare documenti dinamici

CitySoftware PROTOCOLLO. Info-Mark srl

Comune di Bracciano. Regolamento per la pubblicazione di atti e documenti amministrativi sul sito Internet Istituzionale

Marketing Vincente

Esempio Cookie Policy

Trasforma il tuo locale nell ambiente ideale per i tuoi clienti, in cui potranno incontrarsi e socializzare.

Faber System è certificata WAM School

Manuale LiveBox APPLICAZIONE ANDROID.

Installazione di Moodle. Preparato per: Gruppo A, Piattaforma di E - Learning Preparato da: Cinzia Compagnone, Vittorio Saettone

Scenario di Progettazione

Premessa Le indicazioni seguenti sono parzialmente tratte da Wikipedia ( e da un tutorial di Pierlauro Sciarelli su comefare.

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

GESTIRE UN LIONS CLUB

I cookie sono classificati in base alla durata e al sito che li ha impostati.

Le effettive esigenze della Direzione del Personale nella gestione delle risorse umane in azienda. Andamento dal 2005 ad oggi

Mac Application Manager 1.3 (SOLO PER TIGER)

SVILUPPO SOFTWARE. dai una nuova energia ai tuoi piani di sviluppo software SVILUPPO SOFTWARE

Antivirus. Lezione 07. A cosa serve un antivirus

Database. Si ringrazia Marco Bertini per le slides

STUDIO MESSANO UFFICIO SVILUPPO NUOVE TECNOLOGIE

Specifiche dello sviluppo di un progetto software e indicazioni sulla documentazione e sulle modalità di esercizio delle prestazioni

Architetture Applicative

ISTRUZIONI PER L INVIO TRAMITE PEC (POSTA ELETTRONICA CERTIFICATA) DI ISTANZE, COMUNICAZIONI E DOCUMENTI

INVIO SMS

Chat. Connettersi a un server di chat. Modificare le impostazioni di chat. Ricevere impostazioni chat. Chat

ascoltare ispirare e motivare miglioramento problem solving Flex360 pianificare comunicare la vision organizzare

Le licenze d uso. Le principali tipologie di licenze

Istruzioni per l utilizzo di file KML (Google Earth) con Software dei navigatori satellitari TELE System

Apprendimento 2.0: fare e-learning con Moodle

PROXYMA Contrà San Silvestro, Vicenza Tel Fax

Brochure Internet. Versione The Keyrules Company s.r.l. Pagina 2 di 8

Al termine del lavoro ad uno dei componenti del gruppo verrà affidato l incarico di relazionare a nome di tutto il gruppo.

INFORMATIVA SULLA PRIVACY

Le principali novità di PowerPoint XP

Piattaforma software mfp

Application Server per sviluppare applicazioni Java Enterprise

Visual basic base Lezione 01. L'ambiente di sviluppo

Sapere cosa piace al cliente. Cosa dicono alcuni dei più recenti studi sull effetto della comunicazione fisica.

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

DEPLOY YOUR BUSINESS

Esercizio data base "Biblioteca"

SWIM v2 Design Document

PROGETTO INCREASING EUROPEAN CITIZENSHIP ICE (MIGLIORARE LA CITTADINANZA EUROPEA)

Condividi in linea 3.1. Edizione 1

I blog. Andrea Marin. a.a. 2013/2014. Università Ca Foscari Venezia SVILUPPO INTERCULTURALE DEI SISTEMI TURISTICI SISTEMI INFORMATIVI PER IL TURISMO

Il modello veneto di Bilancio Sociale Avis

Manuale LiveBox APPLICAZIONE ANDROID.

SOMMARIO... 3 INTRODUZIONE...

Aziende di Successo PROGETTO SVILUPPO EXPORT

Transcript:

Java e solidarietà: il progetto Jug4Tenda www.jugancona.it Jug Marche Relatore: Andrea Del Bene

Java e solidarietà: il progetto Jug4Tenda Agenda Storia del progetto Architettura Processo di sviluppo Riferimenti e contatti

Storia del progetto: il Jug Marche Nell'estate del 2006 Francesco Paladino (Falconara, AN) decide di avviare la fondazione di un Jug (Java User Group) regionale come punto di riferimento per gli appassionati di Java delle Marche (ma non solo... :-) ) Francesco è anche volontario di una casa di accoglienza per persone senza fissa dimora chiamata La Tenda di Abramo (d'ora in poi solo Tenda per brevità)

Storia del progetto: La tenda di Abramo (1) L'attività quotidiana della Tenda è composta da vari compiti: registrare l'arrivo/partenza degli ospiti, comunicare le nuove accoglienze alla questura, organizzare i turni dei volontari, ecc... La Tenda offre anche un servizio di supporto agli ospiti per la ricerca di una soluzione abitativa e/o un lavoro. Tale servizio è realizzato mediante un gruppo di ascolto composto da alcuni volontari.

Storia del progetto: La tenda di Abramo (2) Tutte queste attività venivano organizzate e mantenute manualmente su formato cartaceo, con tutti i problemi del caso. Francesco propone di impegnare il Jug nella realizzazione di un software per la gestione e l'automazione delle attività della Tenda. Il progetto è anche un'occasione per tutto il Jug di esplorare lo stato dell'arte delle tecnologie JEE e per espandere le proprie competenze professionali.

Finalità pratica del progetto Aiutare la Tenda: ogni software che si rispetti deve far felice il suo committente:-)... La tenda tramite il progetto deve rendere più efficien -te le sue attività, risparmiare tempo, migliorare il suo servizio, ecc... In futuro altri enti benefici simili alla tenda potrebbero adottare il software per la loro attività.

Finalità tecnica del progetto Essere un libero laboratorio tecnico: il progetto è un continuo laboratorio di idee a cui tutti possono partecipare. E' un'occasione per provare ed imparare ad usare i framework e le applicazioni più popolari nel mondo JEE (Hibernate, Spring, Tomcat, ecc...) Alla base del progetto c'è la convinzione che usando gli strumenti open source offerti oggi da Java si possano ottenere prodotto di alta qualità, per molti aspetti persino migliori di soluzioni commerciali chiuse.

Startup del progetto L'avvivo del progetto è stato stabilito in un primo meeting (Ottobre 2006) tra membri del Jug e rappresentanti della Tenda Il meeting è importante per: 1)Formulare un documento dei requisiti, concordato tra sviluppatori e committenti 2)Creare un dizionario di dominio comune (es:cos'è un Ospite? Ed un' Accoglienza?) 3)Stabilire quali tecnologie userà il gruppo di sviluppo

Scelta della piattaforma tecnica Il team decide di affidarsi a framework e strumenti che siano: 1)Open Source: occorre che siano gratuiti e liberi. 2)Largamente usati: è importante che siano strumenti ben documentati e con dei casi d'uso già esistenti. 3) Interessanti :-) :il fine del Jug è di approfondire e condividere la conoscenza di tecnologie che portino un valore aggiunto alla comunità. 4)Orientati alla buona programmazione!!

Prima regola aurea La prima regola che si apprende in questa fase è: Non reinventare la ruota!! Su Internet quasi sicuramente c'è un framework che fa quello che desideri meglio di quanto pensi!!

Piattaforma tecnica Dopo un'attenta analisi (e qualche birra) sono state scelti i seguenti strumenti di partenza

Piattaforma tecnica attuale

Storia del progetto: timeline Estate 2007: inizio trasferimento registro cartaceo nel sistema. Gennaio 2008: aggiunta funzione di ricerca ospiti e restyling grafico. Dicembre 2008: aggiunta funzione di ricerca ospiti full-text e servizio di reportistica.

Ricerca full-text http://www.jugancona.it/vqwiki/jsp/wikitutorialricercaospite

Generazione report http://www.jugancona.it/vqwiki/jsp/wiki?tutorialreportaccoglienzeodierne

Internazionalizzazione i18n Gli elementi dell'interfaccia e gli elementi di localizzazione (es: formato data dd/mm/yyyy) sono letti da un file messages.properties. Anche i report fatti con Jasper leggono etichette e testo fisso da questo file!

Sul piano funzionale Future implementazioni Gestione dei turni dei volontari (200 volontari, 7 sempre presenti in tenda) Gestione dei turni del centro di ascolto... Sul piano tecnico Miglioramento della reportistica Invio report via mail Integrazione con linguaggi di script......

Il processo di sviluppo: 1 fase Raccolta e pubblicazione dei requisiti

Raccolta dei requisiti I meeting sono lo strumento principale per raccogliere requisiti con il committente ( faccia a faccia ) Moti feedback vengono raccolti tramite mailing list e forum La user experience è sempre fondamentale per raccogliere nuove idee su migliorie o feature aggiuntive...

Pubblicazione dei requisiti Alla fine del meeting si traccia una roadmap per il lavoro da fare. Questo documento viene distribuito tramite mailing list degli sviluppatori. I task che compongono la road map vengono inseriti nell'issue tracker sul sito del progetto (https://jugancona.dev.java.net). Gli avanzamenti dei singoli task vengono notificati al team dall'issue tracker.

Il processo di sviluppo: 2 fase Sviluppo del codice

Il repository cvs Lo sviluppo si avvale di un repository cvs (sempre sul sito Sun) tramite il quale vengono condivisi i vari artefatti prodotti dagli sviluppatori (file java, pagine jsp, file sql, ecc...). Gli sviluppatori sono tenuti ad aggiornarsi regolarmente dal branch principale del repository in modo da lavorare sempre su una copia aggiornata del sorgente.

Sviluppo TDD Gli sviluppatori sono anche tenuti a scrivere test unitari per il codice prodotto I test unitari devono garantire un comportamento del codice logicamente corretto e che soddisfi i requisiti Il codice scritto prima di essere salvato su repository deve passare tutti i test unitari scritti. Non si deve essere pubblicato codice non consistente, ossia codice che non supera tutti i test unitari

Seconda regola aurea Una regola, o meglio un effetto che deriva da una buona TDD è: Il debugger deve essere usato il meno possibile, quasi MAI!

Le classi di dominio Lo sviluppo ruota attorno alle classi di dominio che sono puri POJO Dalle classi di dominio si ottengono gli altri artefatti di supporto (DAO, controller web, pagine jsp, ecc...) La struttura risultante ha la tipica organizzazione a layer

Terza regola aurea Nessuno strato deve dipendere da uno strato superiore,ossia più vicino alla GUI

Indipendenza tra layer La regola appena espressa consente di evitare i seguenti problemi architetturali: Non creare delle dipendenze tra oggetti a forte astrazione (classi di dominio...) e oggetti legati ad una particolare tecnologia implementativa (Spring MVC, JSP, ecc...) Non creare dipendenze circolari tra classi o package. Questo tipo di legame renderebbe due entità indivisibili. Cit. Juergen Hoeller http://www.infoq.com/presentations/codeorganization-large-projects

Il processo di sviluppo: 3 fase Deploy e branching

Deploy e branching Una volta implementate le funzionalità volute si procede a fare il deploy del contenuto del repository Contestualmente si effettua il branching (ossia un fotografia ) del repository Il branching è indispensabile se si vuole recuperare in un qualsiasi momento il sorgente della versione rilasciata (per fare bugfixing, manutenzione, ecc )

Fasi di sviluppo Raccolta requisiti Prima fase Sviluppo Sviluppo Seconda fase Commit Commit Deploy & branching Terza fase

Riferimenti e approfondimenti

Riferimenti:forum e mailing list Il wiki del nostro Jug www.jugancona.it (sito www.jugmarche.it in allestimento...) Il sito Sun https://jugancona.dev.java.net/ che ospita il progetto, il suo repository cvs e il forum. http://www.jugancona.it/mailman/listinfo/juganconanew s:la mailing list per poter usare il forum e ricevere le news dello Jug http://groups.google.com/group/jug4tendadev: la mailing list Google dedicata agli sviluppatori del progetto Jug4Tenda

Riferimenti:pagina del progetto http://www.jugancona.it/vqwiki/jsp/wiki?jug4tenda

Riferimenti:pagina del progetto Storia della Tenda Requisiti del progetto Documentazione per l'installazione e architettura Demo flash del programma in azione Costantemente aggiornata ed arricchita di contenuti...

Riferimenti: tutorial Spring Per chi fosse a digiuno di Spring c'è un ottimo tutorial (:-)) sul nostro sito: http://www.jugancona.it/vqwiki/jsp/wiki?tutorial

Contatti https://jugancona.dev.java.net/servlets/projectforum View forum del progetto (previa iscrizione) jug4tendadev@googlegroups.com mailing list di sviluppo. andrea.on.web@libero.it Mail del relatore (Andrea Del Bene) che è presente anche su Facebook per coloro che vogliano interagire usando questo network.