Sviluppatore software avionico

Pao*** ***** (XX Anni)
Software Developer NAVAIDS a Thales Italia
Politecnico di Milano
Misinto,
Lombardia
|
Esperienza
Software Developer NAVAIDS
Thales Italia
set 2018 - Attualmente
Sviluppo di software deputato alla gestione e monitoraggio degli apparati di radio navigazione di terra (DME, VOR, ILS).
Tale software, scritto in C++ in ambiente Linux espone diverse interfacce basate su protocollo SNMP o protocolli LAN proprietari, che consentono alle console di monitoraggio di collegarsi in remoto all'apparato per monitorarne i parametri di funzionamento e per attuare comandi di configurazione.
L'ambiente di sviluppo è costituito dal tool Eclipse con l'uso del compilatore GCC di Linux con l'utilizzo di Makefile per la compilazione dei vari progetti.
Attualmente sono coinvolto nella realizzazione di un software di interfacciamento per un nuovo NavAids in fase di progettazione, deputato a creare un software in grado di interrogare l'apparato nel suo specifico ICD (attraverso comunicazione seriale), aggregare le informazioni ed esportarle in un protocollo di alto livello comune a tutti i NavAids realizzati da Thales.
Più in dettaglio il software va ad interrogare lo stato dei vari componenti hardware inviando specifici messaggi e ricevendone la relativa risposta, gli stati dei vari componenti vengono aggregati per andare a costituire un “Main Status” che deve poi essere reso disponibile all'interfaccia di alto livello che espone un'interfaccia UDP su LAN, secondo un protocollo basato sullo scambio di pacchetti UDP. L'interfaccia deve esporre inoltre funzionalità di comando/controllo dell'apparato, relativamente l'accensione spegnimento dei vari apparati e impostazione di settaggio specifici.
Software developer aeronautico
Leonardo Elicotteri (Consulente Alten)
apr 2017 - set 2018
Sviluppo procedura di porting del SW CDS (Cockpit Display System) di un elicottero
Attività svolta presso la divisione elicotteri del gruppo Leonardo.
Il software CDS gestisce l’HMI dei componenti della cabina di pilotaggio del velivolo Agusta 169.
Tale software è costituito da una componente che realizza la logica applicativa sviluppata in MatLab, denominata User Application (Matlab viene utilizzato per generare il codice C++ compilabile dei modelli), mentre la componente di HMI e realizzata mediante un Graphic Server implementato con Presagis VAPS. La comunicazione tra i due componenti viene realizzata da un software che viene generato automaticamente da un tool realizzato dal produttore RockwellCollins, secondo lo standard Arinc 661. 
Tale tool genera inoltre il componente deputato allo scambio dati con il computer di bordo del velivolo.
L’attività prevede lo sviluppo di un nuovo componente, alternativo a quello Rockwell, che realizzi la comunicazione tra User Application e Graphic Server, utilizzando un tool sviluppato dal produttore Presagis.
Il mio compito consiste nell’identificare una metodologia e sviluppare dei tool software che consentano di realizzare il porting in maniera automatica da una piattaforma all’altra, con l’obbiettivo di riutilizzare a costo ridotto gli sviluppi realizzati sulla piattaforma AW169 per lo sviluppo di un nuovo velivolo ancora in fase di ideazione.
Nella fase iniziale il software dovrà essere sviluppato in ambiente Windows, in maniera da poter essere testato in ambiente simulazione, successivamente verrà portato nell’ambiente target (ancora da definire).
I tool utilizzati sono Matlab 2015, VAPS 4.2 e UAAccellerator di Presagis.
Lo sviluppo dei tool di automazione è realizato in C#  con Microsoft Visual Studio 2013.
La comunicazione del software User Application con il computer di bordo del velivolo, non più realizzata dal tool Rockwell Collins,  dovrà essere implementata, almeno nella fase iniziale, manualmente, utilizzando linguaggio C++  .
L'attività si è conclusa con la realizzazione di un porting funzionante, in grado di interfacciarsi con il simulatore della piattaforma del AW169 e con la definizione delle linee guida da seguirsi durante l'attività di porting del software CDS, dalla Toolchain Rockwell Collins a quella Presagis
Software developer aeronautico UAV
Leonardo (Consulente Alten) Caselle Torinese
mar 2015 - apr 2017
Sviluppo del SW AMS (Airborne Mission System) di un velivolo teleguidato
Attività svolta presso la sezione UAS (Unmanned Air System) di un’importante azienda aeronautica del gruppo Leonardo.
Tale progetto prevede lo sviluppo del software di missione del velivolo teleguidato Piaggio HammerHead.
Mi sono occupato dello sviluppo del software di bordo deputato al controllo/movimentazione del payload elettro-ottico che viene installato a bordo del velivolo.
Tale software veicola i comandi ricevuti dalla GMS (ground mission system), che costituisce l’interfaccia uomo macchina di controllo dei payload installati, verso la torretta ottica convertendo i comandi ricevuti (manouver, zoom, target ecc.) nel protocollo seriale RS-422 specifico del dispositivo. Infine viene ritornato lo stato di ritorno del dispositivo, sempre per via seriale, e ritornato al software GMS per mostrarne lo stato all’operatore.
Mi sono occupato inoltre di integrare il controllo di tale payload mediante HOTAS per consentire il brandeggio e l'utilizzo dell'elettro-ottico in alternativa all'uso della VCU (visual contro unit) principale.
Successivamente mi sono occupato dell'integrazione di un sensore di radionavigazione AIS (Automated identification System), deputato a recepire le informazioni delle imbarcazioni e velivoli presenti nell'intorno del velivolo. Per questa attività mi sono inoltre occupato della progettazione e dello sviluppo di un'architettura software che fosse in grado di recepire e veicolare a terra il gran numero di tracce che tale sensore è in grado di generare (frequenza tracce oltre 30 al secondo, con un requisito che prevede la capacità di gestire e visualizzare migliaia di  tracce contemporaneamente.) .
Per tale sensore ho progettato e sviluppato un componente software deputato a gestire l'asservimento della torretta elettro-ottica ad una delle tracce attive, in maniera completamente automatizzata e gestita a bordo, a seguito di un comando specifico inviato dalla GCS .

Mi sono occupato nella progettazione e sviluppo di un componente deputato alla gestione centralizzata delle tracce provenienti dai diversi sensori (AIS, EO, RADAR), che consente di fondere insieme dati eterogenei prendendo in considerazione i i valori migliori per ciascun sensore.
I software sono sviluppati in C++ preservando la cross compatibilità tra ambiente Windows, utilizzato per lo sviluppo in Visual Studio 2010 e l’ambiente target Linux.
Alcuni componenti sono sviluppati utilizzando le librerie BOOST.
Sono stato referente nello sviluppo  e manutenzione di parte dei componenti di HMI di terra GMS deputata alla rappresentazione dello stato dei principali apparati avionici di terra e di bordo all’operatore. Tale interfaccia mostra lo stato degli apparati di terra e bordo GMS ed AMS (airborne mission system), dei link di comunicazione e dei payload installati a bordo (elettro ottico, radar ecc..).
Tale software è sviluppato in C++ in ambiente Windows e utilizza le librerie QT per la renderizzazione grafica.
Il colloquio tra componenti di terra e di bordo si basa su implementazioni proprietarie del protocollo UDP per i comandi di Uplink (da GMS a AMS) e un’implementazione proprietaria del protocollo DDS (data distribution service) per il downlink, che consente di distribuire ai dispositivi di terra i dati telemetrici in tempo reale.
Software developer aeronautico UAV
Leonardo (Consulente Alten) Ronchi dei Legionari
mar 2013 - feb 2015
Sviluppo GCS (Ground control station) e preparazione RIG per un nuovo velivolo teleguidato:

Attività svolta presso la sezione UAS (Unmanned Air System) di un’importante azienda aeronautica nell’ambito del progetto di sviluppo di un prototipo di un velivolo teleguidato. Lo scopo prevedeva l'implementazione di una nuova GCS (Ground Control Station)
derivata dalle piattaforme già esistenti e sviluppato con C++ (Visual Studio). 
In particolare si è provveduto a sviluppare una nuovo software GCS (ground control station) , atto alla visualizzazione telemetrie ed al controllo del velivolo, derivato dal software GCS di controllo di un teleguidato esistente (con nuovi pannelli di controllo e visualizzazioni). L'interfaccia bordo terra è stata modificata ed adattata alla nuovo protocollo di comunicazione previsto.
In seguito a tale attività mi sono occupato di modificare un simulatore di un velivolo target esistente adattandolo al nuovo protocollo di comunicazione e alle nuove funzionalità previste. Tale adattamento ha permesso la verifica e la validazione della nuova GCS con il simulatore FCS adattato.
Tale progetto è sviluppato secondo la normativa MIL-STD-498 e ho avuto modo di produrre documentazione di SRS (software specification requirements) a partire dal documento SSS (system subsystem specification), per i software di mia comnpetenza. 
A fronte dei requisiti forniti ho avuto completa autonomia nelle scelte implementative relativamente al software CCT. Ho avuto modo inoltre di partecipare alle attività di integrazione e test con l'FCS del velivolo.
Ho realizzato inoltre un software di test di trasmissione comandi al nuovo FCS del velivolo, che va ad inviare comandi ciclici mediante porta seriale RS-232 e legge il ritorno del dispositivo, confrontandolo con quello atteso. Tale software è stato utilizzato per scopi di stress test dell'FCS (camera climatica). Il software della GCS è realizzato con Visual Studio 2005. 
La componente grafica e realizzata con MFC e con controlli ActiveX proprietari National Instruments. Per la visualizzazione cartografica della navigazione vengono utilizzate le librerie proprietarie TENET Maplink.Mi sono occupato dello sviluppo del software di un Datalogger utilizzato per registrare le telemetrie del sensore di navigazione (NSU) candidato durante un volo captive.Tale datalogger è costituito da una board dotata di microcontrollore STM32 ARM e ho sviluppato utilizzando lo strumento Keil uVision il software in C per la configurazione del sensore in fase di prevolo e registrazione delle telemetrie tramite driver di seriale RS422.
L'attività di sviluppo si è conclusa con il Critical Design Review, per il quale ho redatto documentazione delle implementazioni svolte, relativamente a documento ICD (interfaccia bordo terra), SVD (Software Version Description) e Technical Note secondo lo standard MIL –STD-498.
Mi sono occupato inoltre delle fasi di allestimento RIG avionico e preparazione/validazione del dispositivo NSU (Navigation Sensor Unit), con relativa produzione del documento STD (software test description) in vista del TRR (Test Readiness Review)
Sempre in tale contesto mi sono occupato anche della realizzazione di un simulatore INPUT/OUTPUT e funzionale del sensore di navigazione candidato, utilizzando un framework di sviluppo ,sviluppato internamente all’azienda, utilizzando Microsoft Visual Studio 2008.
Il progetto si è concluso con la validazione del software di mia competenza mediante STD, mentre è in corso la qualifica del sistema mediante campagna voli in poligono.
Sono stati completati con successo una serie di voli di test, nei quali i CSCI di mia competenza hanno funzionato come previsto.


Progetto di upgrade di un velivolo teleguidato esistente 
Attività svolta presso la sezione UAS (Unmanned Air System) di un’importante azienda aeronautica del gruppo Finmeccanica.
Tale progetto prevede l'integrazione di nuove funzionalità in un velivolo teleguidato esistente (Mirach 100/5), di seguito le funzionalità di cui mi sono occupato:
•Funzione di datazione delle telemetrie: il software di bordo assegna ad ogni pacchetto trasmesso a terra un timestamp che la GCS (Ground Control Station) deve essere in grado di visualizzare e registrare a scopo di analisi
•Integrazione correzioni differenziali: nella GCS è stata  integrata una base station DGPS, in grado di erogare trame di correzione differenziali nel formato RTCM104. Tali trame vengono acquisite dal software del ROUTER della GCS, che deve miscelarle con i comandi di uplink, compatibilmente con la banda di trasmissione residua. Tale attività ha richiesto la modifica del software del ROUTER (scritto in C++ su sistema embedded basato su QNX 6.2), con l'integrazione di un nuovo processo deputato all'acquisizione via seriale RS-232 da un dispositivo DGPS (che ho provveduto ad installare ed a configurare a scopo di test. 
Lo sviluppo del ROUTER è avvenuto utilizzando l'editor  QNX Momentics IDE 6.3, con il successivo porting all'ambiente QNX versione 6.2 . A scopo di test sono state utilizzate delle reti di macchine virtuali, con VMWare, che ho provveduto a configurare.
•Modifica dell'interfaccia bordo-terra per uniformarlo allo standard previsto dalle nuove funzionalità.  
•Implementazione di un simulatore del velivolo a scopo addestrativo. Tale software è stato ottenuto modificando il simulatore di un velivolo esistente ed è sviluppato in C++ con Visual Studio 2005. 
Dopo aver completato lo sviluppo software, ho seguito la preparazione e l’integrazione con il RIG avionico per i CSCI software e i componenti della GCS di mia competenza (stazione di guida, router, dispositivo DGPS e LAN di poligono), per consentire il processo di verifica e validazione. Mi sono inoltre occupato della stesura di documenti di specifica di prova SVD e di requisiti SSR secondo lo standard MIL-STD-498 e ho collaborato alla stesura del documento ATP necessario all’accettazione del software da parte del cliente.
Il progetto si è concluso, relativamente ai CSCI di mia competenza, con l’accettazione del software della stazione di terra, del router e del simulatore, da parte del cliente, a fronte della verifica funzionale mediante documento ATP (Acceptance Test Procedure).

Software Developer J2EE servizi Banking
CSC Italia
nov 2011 - mar 2013
Attività svolta per una società di consulenza informatica presso una banca cliente situata a Milano che eroga servizi finanziari ad aziende terze. 
Il mio compito consisteva nella presa in carico del sistema di SSO (Single Sign On) che centralizza e controlla gli accessi ai vari applicativi che vengono gestiti dalla divisione del cliente, gestendo in maniera centralizzata gli accessi e le autenticazioni dispositive effettuati dagli utenti. 
Ho realizzato la progettazione e la stima di un nuovo sistema di SSON, basato sulla medesima architettura e che verrà esteso agli applicativi erogati da tutte le divisioni del cliente.
Infine ho seguito lo sviluppo ex-novo di un nuovo applicativo finanziario, per il quale sono responsabile dello sviluppo nei confronti del cliente e, oltre a sviluppare, ne controllo lo stato di avanzamento e definisco i task da realizzare. All'interno del gruppo di lavoro viene utilizzata la metodologia di sviluppo Agile, basata su Scrum.
Questo metodo prevede di dividere il progetto in blocchi rapidi di lavoro chiamati Sprint, alla fine dei quali è prevista la consegna al cliente in modo che possa farsi fin da subito un'idea dell'andamento degli sviluppi e possa dare nuove indicazioni.
L'architettura di riferimento in uso in tutti gli applicativi, compreso il sistema di SSON è basato sullo standard J2EE. 
In particolare per la parte di front-end viene utilizzato il Framework Google Web Toolkit 2.0, mentre la componente di business è realizzata mediante Spring Framework 3.
La parte di persistenza dati viene gestita lato applicativo mediante Hibernate 3, utilizzando una base dati Microsoft SQL Server 2005, la cui gestione e creazione dei database, tabelle e viste viene, nell’ambito dei progetti seguiti, da me curata.
Software Developer J2EE servizi Banking
Banca Popolare di Sondrio
mag 2007 - ott 2011
Ero referente tecnico dello strato sicurezza che realizza il controllo degli accessi in fase di login e l'autenticazione dispositiva mediante gli strumenti di autenticazione presenti, di cui ho realizzato l'integrazione e del “canale mobile”, un front-end pensato per i telefoni cellulari .
Ho seguito la realizzazione dei servizi erogati sulla piattaforma di Internet Banking, sia nella componente di business, che nella componente web di front end (basato su JSP). Ho avuto modo anche di vedere marginalmente la componente di persistenza dei dati (basata su Oracle PL-SQL).
Ho realizzato web service (basati su Axis, JAXWS e Apache CXF) che erogano servizi per componenti applicativi interni, oppure consentono lo scambio di flussi di informazioni, via http oppure  tramite client di code IBM MQ.
Attività di maggior rilievo sono state:
•Implementazione del canale Mobile (pensato per telefoni cellulare) integrando un front end dedicato all'interno dell'home banking, e del canale SMS (che consente di effettuare operazioni informative mediante l'invio di SMS). 
•Refactoring sicurezza dell'home banking, in cui tutta la parte di sicurezza (Login, autorizzazione delle disposizioni) è stata reimplementata completamente in modo da supportare più strumenti di autenticazione (di cui ho curato anche la parte di integrazione). 
•Integrazione di nuovi strumenti di autenticazione come l'autenticazione mediante chiamata da cellulare a numero verde, con inserimento di un codice PIN, oppure autenticazione mediante codice OTP inviato per SMS. 
In queste attività ho svolto il ruolo di “Senior Programmer ” interfacciandomi con “Project manager” che mi fornivano i requisiti richiesti agli applicativi. 
Ho avuto completa autonomia nella scelta delle implementazioni architetturali e delle tecnologie.
Attualmente sono referente tecnico della componente “sicurezza dell'home banking” e del “canale mobile”.
Formazione
Laurea Specialistica in Ingegneria Informatica
Politecnico di Milano
set 2001 - apr 2007

          
        
Lingue
Inglese - Ottimo