software lifecycle

Obiettivo della consulenza è stato quello di contribuire alla messa in opera del modello operativo per la gestione del ciclo di vita del software (software lifecycle), già in corso di definizione all’interno del Consorzio: in particolare TAI ha provveduto al raffinamento ed alle specifiche del modello per gli ambienti software Java.

Si è in pratica trattato di assicurare la presenza di una soluzione organizzativa e tecnica che consenta a MPS di gestire:

  • in modo tracciato il sw sviluppato, mettendolo a disposizione dei soggetti abilitati alla sua consultazione ed alla sua compilazione e scarico,
  • la documentazione a corredo del sw, certificando che sia rispondente al SW,
  • Il versioning dei prodotti,
  • la compliancy dei nuovi sviluppi con quanto già realizzato, certificando tale processo con una azione di testing,
  • La terzietà delle attività di certificazione e testing.

Come si comprende si tratta di un processo dall’alto valore innovativo, che non aveva precedenti come metodo all’interno della struttura e che si è concretizzato in un approccio “industriale” ed integrato agli sviluppi java, che permette la gestione dei processi: di manutenzione, aggiornamento, versioning, testing e documentazione dei prodotti, utilizzando appieno il processo di certificazione attualmente definito.

Riassumendo quindi gli elementi chiave del progetto si possono riassumere come:

Organizzazione del progetto (Maven):

  • Standardizzazione struttura delle directory
  • Utilizzo repository centrale per le librerie di progetto
  • Gestione dinamica procedura di deploy sui *N.A.L.
  • Controlli qualità su codice e documentazione.

Test:

  • Test unitari
  • Suite di test

*Il N.A.L. (Nodo Applicativo Locale) è un dispositivo, realizzato da T.A.I. Software Solutions, di dimensioni limitate che ospita “on-board” il sistema operativo Linux; può includere gli applicativi base SOHO in ambiente Linux/Solaris (browser internet, posta, strumenti di office), fornisce la connettività ADSL e le funzionalità di routing, permette la configurazione di VPN con la sede centrale per lo scambio dei dati.

Maven

Maven, principalmente, è uno strumento completo per la gestione di progetti software Java, in termini di compilazione del codice, distribuzione, collaborazione del team di sviluppo e documentazione prodotta.

Si è trattato, quindi, di promuovere la comprensione e la produttività del team coinvolto nello sviluppo, fornendo un percorso chiaro all’utilizzo di best practice, per questo motivo Maven è definito, sinteticamente, tool per la gestione e comprensione dei progetti, ma non solo, Maven è un insieme di standard, una struttura di repository e un’applicazione, che serve alla gestione e descrizione di progetti software, defininendo un ciclo di vita standard per il building, il test e il deployment di file di distribuzione Java.