Andrea Bulgarelli's Home Page

Home ] [ Profilo ] Analisi&Design ] Programmazione ] Pubblicazioni ]

 

Istruzione

1999 Abilitazione alla Professione di Ingegnere
Università di Modena e Reggio Emilia
Voto: 60/60
1993-1999 Diploma di Laurea in Ingegneria Informatica
Orientamento: Sistemi Informatici e Applicazioni
Università di Modena e Reggio Emilia

Titolo Tesi: "Supporto alle decisioni nello smaltimento e nel recupero di rifiuti C&D"
Relatore: Prof. Flavio Bonfatti
Correlatori: Arch. Ernesto Antonini, Prof. Luigi di Stefano
Controrelatore: Ing. Massimo Pancaldi

Voto: 110/110 Lode

1985-1990 Diploma di Perito Agrario
Istituto Tecnico Agrario Statale "Begozzo", Palidano (MN)
Voto: 60/60

Attività scientifica

Nel 1998-99 inizio la mia attività di ricerca scientifica nel campo dell’elaborazione elettronica delle immagini e visione artificiale in collaborazione con il prof. Luigi di Stefano del DEIS (Dipartimento di Elettronica, Informatica e Sistemistica) dell’Università di Bologna. In particolare, ho studiato possibili alternative ai metodi classici di labeling di regioni connesse in immagini raster binarizzate. Lo scopo del labeling è essenzialmente quello di poter suddividere un’immagine in regioni correlate per poterle studiare con maggiore precisione; il labeling rappresenta quindi la base per un elevatissimo numero di applicazioni sull’elaborazione di immagini. Il risultato principale di questo lavoro è stato quello della realizzazione di un algoritmo ad alte prestazioni per effettuare il labeling, risultato presentato nel corso della conferenza internazionale ICIAP '99, 10th International Conference on Image Analysis and Processing, 27-29 Settembre 1999, Venezia, Italy. Dal punto di vista tecnologico, l’algoritmo e l’applicazione di testing (un’applicazione industriale di visione artificiale per il riconoscimento degli oggetti presenti su un nastro trasportatore monitorato da una telecamera) sono stati realizzati in C++ per piattaforma MS-DOS.

La tesi, svolta nell’ambito del progetto Europeo LIFE98 – VAMP (Valorizzazione di Materiali e Prodotti di Demolizione) dal titolo “Supporto alle decisioni nello smaltimento e nel recupero di rifiuti C&D” ha riguardato lo sviluppo del prototipo di un Decision Support System per la gestione controllata del flusso di materiali C&D (Costruzione & Demolizione edili) sul territorio di interesse del progetto VAMP (province di Modena e Reggio Emilia).

Durante la tesi (da gennaio ad ottobre 1999) svolta presso l’istituto di ricerca ICIE (Istituto cooperativo per l’innovazione) di Bologna ed in collaborazione con QUASCO di Bologna reparto R&S, acquisisco profonde competenze nei seguenti campi, in cui ho prodotto risultati di rilevanza scientifica:

  • Problematiche GIS (Geographical Information System): durante l’ideazione del modello concettuale del DSS è sorta l’esigenza di calcolare un enorme numero di distanze geografiche in brevissimo tempo. Dopo un attento ed approfondito studio di varie soluzioni, sono riuscito a realizzare un modello software che permette di descrivere un qualunque territorio geografico e di calcolare, con un algoritmo molto veloce, la distanza tra un luogo geografico iniziale ed un qualunque numero di destinazioni, individuando anche il percorso minimo. Rispetto ai classici algoritmi della Ricerca Operativa, con il modello software da me realizzato i punti di origine e di destinazione sono distribuiti con continuità sul territorio modellato (al contrario dell'approccio tradizionale che richiede la discretizzazione completa del territorio). Inoltre, anche in assenza di un reticolo stradale completo, il modello è in grado di calcolare le distanze con un errore molto basso. L’interfaccia visuale del prototipo DSS è stata in parte realizzata con i software GIS ESRI MapObject LT ed ESRI ArcView.
  • Modellazione di DSS: per la modellazione del DSS ho utilizzato una tecnica matematica per la risoluzione dei problemi di ottimizzazione con criteri di ricerca tra loro contrastanti (chiamati MCDP, Multicriteria Decision Problem). Gli MCDP rappresentano una generalizzazione dei classici problemi della Ricerca Operativa. 

La tesi ha visto la formalizzazione del problema, la ricerca di una soluzione e la sua realizzazione con un software scritto in parte in C++.La tesi mi ha permesso di sviluppare le capacità di comprensione e soluzione di problemi complessi. Parte di questo lavoro è riportato non solo nella tesi, ma anche nella pubblicazione conclusiva del progetto VAMP (edita da Franco Angeli) "Residui da costruzione e demolizione, una risorsa ambientalmente sostenibile" in cui descrivo la metodologia adottata per la realizzazione del software del progetto e il modello del problema e della soluzione.

La tesi mi ha anche permesso di acquisire profonde competenze nel campo della raccolta delle specifiche (software requirements), nell’analisi e nel design del software. L’attività professionale successiva alla tesi ha riguardato non solo la prosecuzione e la conclusione del progetto VAMP, ma anche la consulenza proprio su tematiche di analisi e design del software. In particolare, mi interesso di progettazione del software utilizzando metodologie di OOA (Object Oriented Analisys) e OOD (Object Oriented Design), utilizzando come linguaggio di modellazione UML (Unified Modelling Language), standard OMG, e WAE (Web Application Extension for UML), estensione di UML che consente di modellare applicazioni Web. Utilizzo anche i modelli E/R e relazionale per la progettazione e la realizzazione di database e mi interesso di problematiche di round-trip e reverse engineering, nonché di refactoring di progetti software. Utilizzo anche i design pattern nella progettazione del software. Tutti questi strumenti metodologici mi hanno consentito di realizzare software di elevata qualità e manutenibilità. Tale capacità è documentata dalle seguenti attività professionali:

  • Pubblicazione dell’articolo "Un esempio di utilizzo dello Unified Process" pubblicato su Computer Programming, Edizioni Infomedia, nel Giugno 2000
  • Docenza per un sulla progettazione di database presso CERFORM di Sassuolo (MO). Settembre 2000
  • Seminario di 8 ore presso l'università di Modena e Reggio Emilia, nell'ambito del corso di Ingegneria del Software per un approfondimento su tematiche Web e progettazione del software multi-tier dal titolo "Tecnologie Web e il nuovo linguaggio di modellazione WAE (Web Application Extension for UML)". Dicembre 2000.
  • Docenza per un corso aziendale di 12 ore presso IACP di Modena sulla progettazione dei sistemi software multi-tier (aziendali e Web) utilizzando i linguaggi di modellazione UML e WAE. Febbraio 2001.
  • Docenza per un corso aziendale su progettazione e sviluppo di database presso Sincretech di Modena. Aprile 2001.
  • Docenza per un corso su “Sistemi informatici aziendali e basi di dati” nell’ambito del master IFOA (Reggio Emilia) “Master in management dell’affidabilità e della qualità”, nell’ambito del quale sono state svolte esercitazioni su Microsoft SQL Server. Giugno 2001
  • Progettazione e sviluppo di applicativi in Visual C++ e applicazioni Web nel corso degli anni 2000-2001.

Oltre alla realizzazione di applicativi in Visual C++, svolgo attività di docenza in un corso di C avanzato e C++ presso DIGITEK di Concordia sul Secchia (MO). Tra i clienti principali di Digitek sono presenti Ferrari Formula 1, Lamborghini, Aprilia corse, Piaggio. DIGITEK ha inoltre realizzato il sistema autostradale Telepass. Tutto il software è stato realizzato in C. Scopo del corso da me tenuto è quello di approfondire le conoscenze del C ed introdurre in azienda l’utilizzo del C++ e del Microsoft Visual C++. Ho inoltre realizzato applicativi in C per ambiente Unix (Sun e Linux) e applicativi C++ e Visual C++ per ambiente Microsoft Windows.

In breve, la mia esperienza scientifica e professionale mi ha portato ad avere ottima conoscenza del C e del C++ (di cui sono anche insegnante), a cui va aggiunta una profonda conoscenza delle tematiche di progettazione e sviluppo di software di qualità con tecnologie ad oggetti (OOAD) utilizzando come linguaggio di modellazione UML ed alcune sue estensioni. Ho sviluppato applicativi di elaborazione dati in C++ (problema MCDP per un DSS), di archiviazione dati con Microsoft Visual C++ ed ho sviluppato applicativi con interfaccia visuale in Microsoft Visual C++ in ambiente Microsoft Windows.Ho inoltre programmato in C in ambiente UNIX ed utilizzato le librerie grafiche Qt e l’ambiente IDE KDevelop per lo sviluppo di interfacce grafiche in Linux. Ho anche alcune conoscenza sistemistiche del sistema operativo Linux (installazione e configurazione di alcuni servizi di sistema).

Conoscenze informatiche

Linguaggi di programmazione: C, C++, Visual C++, FORTRAN, Matlab, SQL, Pascal, Assembler 80x86, Visual Basic, Visual Basic for Application.

Tecnologie Web: Java, Javascript, HTML, ASP, PHP, JSP.

DBMS: Microsoft SQL Server, MSDE, Microsoft Access.

Linguaggi di modellazione: UML, E/R, relazionale, OMT, IEC 1131-3, WAE (Web Application Extension) for UML.

Sistemi operativi: Linux (distribuzioni Mandrake, Red Hat, Suse e Debian), Sun Solaris, Microsoft Windows NT Server, Microsoft Windows 2000.

Ambienti e software di sviluppo

  • Microsoft Visual Studio 6 Enterprise Edition, in particolare Visual C++, Visual Interdev, Visual SourceSafe, Visual Modeler;
  • KDevelop 1.1 per Linux;
  • Sun Fortè for Java;
  • Rational Rose 2000 Enterprise Edition (tool per design software con notazione UML, reverse e round-trip engineering);
  • Rational Requiste Pro (tool per la generazione e la gestione dei requisiti software in base alla raccomandazione IEEE830-98 e al processo di sviluppo Unified Process);
  • Rational SoDa for Word, per la generazione e la gestione della documentazione del software;· Altri tool: Instant Developer, MagicDraw UML.

Attuale attività

Consulenza in campo informatico sia nell'ambito della ricerca scientifica sia nell'ambito commerciale. Le consulenze riguardano in particolare le fasi di definizione e raccolta delle specifiche e le successive fasi di analisi e design dei sistemi software.

Sviluppo di software.

Docenze in corsi di informatica.

Partecipazione al progetto PRIN (progetto MURST, Università di Architettura di Venezia) per la definizione di uno strumento di ausilio alle decisioni (DSS) finalizzato ad integrare nel processo di progettazione del manufatto edilizio anche la progettazione del disassemblaggio, demolizione e riciclaggio degli elementi costruttivi.

Pubblicazioni

2001 Un capitolo del libro edito da Franco Angeli (di prossima pubblicazione), "Residui da costruzione e demolizione, una risorsa ambientalmente sostenibile" in cui descrivo la metodologia adottata per la realizzazione del software del progetto VAMP.
2000 Andrea Bulgarelli, "Un esempio di utilizzo dello Unified Process", Computer Programming, Edizioni Infomedia, Giugno 2000.
1999 Andrea Bulgarelli, Luigi Di Stefano (Università di Bologna), "A Simple And Efficient Connected Component Labeling Algorithm", ICIAP '99, 10th International Conference on Image Analysis and Processing, September 27-29, 1999, Venice, Italy.