Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Sistemi software di collaborazione in ambito open source Testimonianza di: Davide Dalle Carbonare [email protected] 2.5 Italia License [Sistemi sw di collaborazione] 1 Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Introduzione Collaborare e cooperare: diverse persone operano contemporaneamente allo stesso progetto, per lo stesso obiettivo, condividendo le stesse risorse. [Wikipedia] La collaborazione è lo sforzo congiunto di più individui nell'atto di una o più lavori e/o mansioni. Collaboration is the process by which groups of people accomplish work. It tends to be used to achieve two aims: 1) To force people to conform to a common way of working 2) To enable people to develop and improve their own ways of working La cooperazione è, letteralmente, l'operare insieme per raggiungere uno scopo, un fine comune in una iniziativa, impresa, attività. 2.5 Italia License [Sistemi sw di collaborazione] 2 Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Collaborazione Gestire e coordinare la collaborazione 1) strumenti di comunicazione: - supporto all'organizzazione - chi deve fare cosa e come - supporto alla conoscenza: - documentazione tecnica, del codice - documentazione di supporto, manuali, risoluzione dei problemi - strumenti: - mail, faq, messenger, tracker, wiki, forum, mailinglist 2.5 Italia License [Sistemi sw di collaborazione] 3 Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Collaborazione Gestire e coordinare la collaborazione 2) strumenti di gestione delle risorse - repository, condiviso, per mantenere sorgenti e documenti - versionamento delle risorse - gestione problemi/anomalie - strumenti: SCM source control management, tracker, software per confronto 2.5 Italia License [Sistemi sw di collaborazione] 4 Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Collaborazione Gestire e coordinare la collaborazione 3) strumenti di sviluppo - individuare un set comune di strumenti in modo da soddisfare tutte le esigenze di progetto - strumenti: eclipse (plugins), open office, ... 2.5 Italia License [Sistemi sw di collaborazione] 5 Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Collaborazione Strumenti software di collaborazione - Forum - Wiki - Messenger - Tracker - Versioning - Project Automation - Sviluppo - Forge 2.5 Italia License [Sistemi sw di collaborazione] 6 Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Forum FORUM - interfaccia WEB - utenti profilati (anonimo, utente, moderatore, amministratore) - messaggi raggruppati per argomento (threads) - l'informazione viene aggiunta in maniera incrementale, non modificabile e relativamente a problematiche individuali (anche se spesso di interesse comune) - frequente ridondanza di informazione - jForum (www.jforum.net) 2.5 Italia License [Sistemi sw di collaborazione] 7 Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Wiki WIKI - interfaccia WEB - contribuzione libera - modifiche dirette - utilizzo per documentazione (manuale utente, tecnico, ... ) - xWiki (www.xwiki.org) 2.5 Italia License [Sistemi sw di collaborazione] 8 Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Messenger MESSENGER - dialogo immediato tipicamente tra 2 membri del progetto - indipendente dalla distanza fisica - economicità della connessione - skype (www.skype.it ) - yahoo (http://it.messenger.yahoo.com) - googletalk (www.google.com/talk/intl/it) - ... 2.5 Italia License [Sistemi sw di collaborazione] 9 Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Tracker TRACKER - raccoglie la sequenza delle segnalazioni (ticket, issue) degli utenti - segnalazioni strutturate - tipologia: bug, miglioramento, attività - gravità: bloccante, critico, normale, triviale - assegnazione automatica o manuale ad un membro del progetto - cilo di vita tipico: presa in carico della segnalazione, esecuzione, riassegnazione, chiusura ... - statistiche (per progetti di grosse dimensioni) - integrazione con sistemi per il versionamento (trac-svn) - trac (http://trac.edgewall.org) - jira (www.atlassian.com/software/jira) 2.5 Italia License [Sistemi sw di collaborazione] 10 Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Versioning VERSIONAMENTO (1) - repository per i sorgenti/documenti permette di lavorare in più persone sugli stessi files - possibilità di modifica in modalità concorrente oppure esclusiva (lock) a seconda del tipo di file trattato (testo, binario) - supporto alla gestione dei conflitti - confronto con le versioni precedenti e ripristino - ottimizzazione delle politiche di backup 2.5 Italia License [Sistemi sw di collaborazione] 11 Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Versioning VERSIONAMENTO (2) - trunk / tags / branches durante tutta la durata di un progetto ci sono frequenti rilasci di versioni successive, correzioni di bug, progetti derivati - cvs (www.nongnu.org/cvs) - svn (http://subversion.tigris.org) - tortoisesvn (http://tortoisesvn.tigris.org) - subclipse (http://subclipse.tigris.org) - subversive (www.eclipse.org/subversive) 2.5 Italia License [Sistemi sw di collaborazione] 12 Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Versioning IL CICLO DI LAVORO Submit your changes get content svn commit svn checkout svn update 106 100 Merge your changes Resolve conflicts Make changes svn diff svn resolved Subversion Repository svn add svn move svn delete 105 See what was changed in the repository in the meantime Update your local copy svn update svn status -u 2.5 Italia License [Sistemi sw di collaborazione] 13 Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Project Automation PROJECT AUTOMATION - automazione di tutte le attività definite e ripetibili - riduzione della probabilità di commettere errori - esecuzione da parte di chiunque (documentazione) - aggiornamento dei parametri di configurazione deploy e packaging (ant) - gestione delle librerie (maven) - organizzazione modulare del prodotto (maven) - produzione automatica della documentazione e del sito di progetto (maven) - maven (http://maven.apache.org) - ant (http://ant.apache.org) 2.5 Italia License [Sistemi sw di collaborazione] 14 Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Sviluppo SVILUPPO - lo strumento di sviluppo deve permettere di definire linee guida condivise e da adottare per tutta la durata del progetto - impostazioni comuni di formattazione - struttura delle cartelle prestabilita (es: cartelle dei sorgenti, dei compilati, delle librerie) - replicabilità dell'installazione dell'ambiente di sviluppo (es: condividere il file di configurazione) - varibili, e dipendenze, relative (librerie ...) - eclipse (plugins) (www.eclipse.org) - pspad (www.pspad.com) - emacs (www.gnu.org/software/emacs) - ... 2.5 Italia License [Sistemi sw di collaborazione] 15 Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Forge FORGE - ambiente integrato a supporto dello sviluppo e collaborazione - repository per il codice - repository per i file binari - bug tracker - forum - mailing list - OW2 / GForge (forge.objectweb.org) - SourceForge (sourceforge.net) 2.5 Italia License [Sistemi sw di collaborazione] 16 Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Riferimenti Jforum: www.jforum.net xWiki: www.xwiki.org Skype: www.skype.it GoogleTalk: www.google.com/talk/intl/it Trac: trac.edgewall.org Jira: www.atlassian.com/software/jira CVS: www.nongnu.org/cvs SVN: subversion.tigris.org TortoiseSVN: tortoisesvn.tigris.org Subclipse: subclipse.tigris.org Eclipse: www.eclipse.org Ant: ant.apache.org Maven: maven.apache.org PSPad: www.pspad.com Open Office: www.openoffice.org GForge: gforge.org 2.5 Italia License [Sistemi sw di collaborazione] 17 Laurea Specialistica in Informatica Struttura e Configurazione di Sistemi Liberi A.A. 2007-2008 www.math.unipd.it/~ruffatti/ Sistema collaborativo User SVN REPOSITORY Eclipse TRAC WIKI e-mail - msg Maven Eclipse A.S. TEST Ant e-mail - msg Eclipse A.S. DEMO 2.5 Italia License [Sistemi sw di collaborazione] 18