Red Yard

Red Yard Systems

PROGETTAZIONE E SVILUPPO

La modalità di sviluppo del software adottata è formalizzata nel ciclo di vita del prodotto standard, procedura che fa parte del sistema qualità aziendale certificato ISO 9001 ed è conforme alle normative vigenti, produzione software generale (IEEE 730.1) e specifica di settore (CEI EN 50128). Questo approccio è sia formale che flessibile. È formale e si ispira alla metodologia RUP, che crea documentazione di base per la relazione tra i team di progettazione e sviluppo e altri team di progetto, mentre si ispira a metodologie agili (principalmente SCRUM) per la progettazione interna, la codifica e il test delle unità software.

Il software è costruito secondo cicli di vita iterativi e incrementali, con cicli successivi di progettazione, sviluppo e unit test, test di sistema e rilascio.

L’analisi dei requisiti del software viene formalizzata e la progettazione del software avviene mediante lo stesso linguaggio, utilizzando appositi strumenti per la generazione e il reverse engineering del codice.

Gli ambienti di sviluppo utilizzati sono del tipo IDE (Integrated Development Environment), utili al mantenimento dell’allineamento tra gli elaborati di progettazione e quelli di implementazione. Il software sviluppato da Project Automation è prevalentemente Orientato agli Oggetti, a tutti i livelli logici (dal Livello Presentation al Livello Business), utilizzando linguaggi di programmazione standard quali Java, C++ e .net. Le architetture di riferimento sono diverse a seconda degli obiettivi funzionali dei sistemi sviluppati, dell’ambito di esercizio e della tipologia di utilizzo che il sistema dovrà supportare: dalle  architetture Client/Server per i sistemi di monitoraggio real time, recentemente affiancate in ambito Web da tecnologie quali Rich Internet Application (RIA) e Event Driven Architecture (EDA), alle architetture Service Oriented Architecture (SOA) per l’integrazione di sistemi, sviluppando librerie di servizi orchestrate da strumenti Business Process Management (BPM) e Business Rules Management System (BRMS), integrate attraverso i più comuni Enterprise Service Bus (ESB).

La logica di sviluppo fa riferimento a best practices ben note nel campo: modularità, estensibilità, apertura, disaccoppiamento, riutilizzo e portabilità. Gli strumenti utilizzati dagli sviluppatori supportano le fasi di codifica e unit test e altri strumenti consentono di proteggere l’integrità del codice di produzione, anche in progetti di sviluppo complessi con molti team distribuiti.

Il test del sistema è gestito dal team di test, indipendente dal team di sviluppo, ma come parte del progetto, a partire dalle prime fasi del ciclo di vita del software. Test funzionali, di sistema, di durata, prestazioni e regressione di tutti i sistemi creati e, ove possibile, su installazioni pilota. Un sistema di tracciamento dei bug consente di tracciare e registrare ogni non conformità rilevata, consentendo un’eccellente sinergia tra i team di sviluppo e test.

Le fasi di gestione della configurazione concludono il Ciclo di Vita, garantendo, attraverso strumenti di versioning, la formalizzazione delle richieste di variazione, della gestione delle non conformità e in generale della manutenzione del software. Attraverso la partecipazione ad associazioni quali Agile Movement e IFPUG-GUFPI/ISMA, il reparto esercita la funzione di osservatore tecnologico al fine di garantire l’innovazione dei processi di sviluppo di Project Automation, sia dal punto di vista tecnologico che metodologico.