Nord Est Systems

14 Febbraio 2022

Sviluppare Software: Giocare con mattoncini virtuali

SVILUPPO A BLOCCHI RICICLABILI

Nella nostra quotidianità noi sviluppiamo software. E ci divertiamo anche! Ma cosa significhi sviluppare un software non è sempre comprensibile da chi non conosce il mestiere e allora proviamo a spiegarvelo 😊

Le applicazioni che scriviamo sono composte da piccole parti, pezzi di codice che possono essere paragonati ad un blocco di LEGO®, uno di quei blocchi rettangolari in plastica che si usano per costruire praticamente di tutto. L’unione di vari blocchi di codice ci permette di definire funzioni (come piccole parti di costruzioni) che possono essere isolate e testate separatamente per garantire il loro corretto funzionamento in diversi contesti. Più blocchi si aggiungono, più è possibile generare diverse funzionalità.

In Nord Est Systems l’applicazione che usiamo per scrivere questi blocchi di codice è Instant Developer (anche detta InDe). È un software che premette di scrivere applicazioni Web (accessibili da un Browser come Chrome) e Mobile (quindi solo per dispositivi mobili). InDe incorpora un sistema per lavorare in gruppo in modo semplice e controllato; include una serie di strumenti utili a simulare il risultato e controllare il codice che si sta scrivendo. Ad esempio, quando vogliamo scrivere una funzionalità e, dimenticando come si usa, la si scrive in modo scorretto, InDe ti avvisa dell’errore. Ed è un bell’aiuto, che ci consente di non dover scartare la nostra costruzione quando ci accorgiamo che c’è qualcosa che non va, perché il problema è prevenuto in origine.

I blocchi (componenti) di ogni applicazione sono poi testati e riutilizzati. In ogni mattoncino ci sono funzionalità utili all’applicazione da sviluppare. Se non si usassero dei componenti alla base del codice occorrerebbe ogni volta ripensare, scrivere e testare le funzionalità su cui basare un’applicazione. Nel codice è possibile riutilizzare funzionalità di diverse applicazioni per facilitare la scrittura di nuove, un po’ come se usassimo mattoncini già testati per nuove costruzioni, riusando e riciclando i blocchetti.

LE QAPP

Un esempio di QApp

Nella nostra azienda sviluppiamo anche un tipo di applicazioni che chiamiamo “QApp”.  Sono pensate per estendere alcune funzionalità di Qualibus, il nostro software gestionale, e fornirne altre nuove. Le QApp comunicano principalmente con Qualibus e la sua base dati, però possono anche richiedere informazioni ad altre sorgenti di dati: che siano locali e non locali (ad esempio chiedere lo stato a delle macchine in una fabbrica). Le funzionalità che forniscono si possono limitare ad un solo gruppo di utenti (ad esempio gli amministratori o con specifici privilegi) oppure estendere a tutti gli utenti di Qualibus.

Nell’immagine a destra c’è una stazione fatta in lego che può fornire un’idea più pratica di come funziona una QApp. la stazione dei treni rappresenta la QApp; le persone che si muovono dentro e fuori dalla stazione sono i dati: possono essere immagini, documenti, semplici righe di testo o di tanti altri tipi. Il treno è il mezzo che permette ai dati di muoversi da una stazione ad un’altra e il capolinea è Qualibus.

I binari, invece, sono internet.

Come funziona? In sostanza un utente che usa Qualibus chiama il treno dal capolinea, vengono fatti salire dei dati che si spostano fino alla stazione QApp. Questi scendono, fanno quello che devono e, per esempio, possono ripartire per fermarsi ad un’altra stazione ed eseguire delle procedure per elaborare altre informazioni o, ad esempio, inviare e-mail.

Una delle nostre QApp permette di gestire degli Interventi per i Clienti. In questo caso l’utente che vuole usare la QApp ha a diposizione un pulsante in una toolbar di Qualibus che esegue dei comandi personalizzati una volta premuto. Nella nostra metafora dal capolinea parte il treno con i dati dell’evento su cui è stato premuto il pulsante, una volta arrivato alla QApp i dati scendono, entrano nella stazione e vengono inviati in un’Email ad un Cliente. Alla fine, altri dati salgono sul treno e tornano al capolinea in modo che l’utente sappia che è andato tutto bene e che l’e-mail è stata inviata.

LE QVM

Un Quartiere di QApp: la QVM

Abbiamo molte QApp già implementate possiamo pensare al loro insieme come a degli edifici di un quartiere, fatti di piccoli blocchi di lego messi uno vicino ad un altro.

Ogni quartiere è composto da due livelli. Chiamiamo il primo “Tomcat”, il servizio che permette di utilizzare l’applicazione. Il secondo livello, che si trova poco sotto Tomcat, si chiama “QVM” ed è paragonabile ad un complesso di tubature che fornisce gli edifici costruiti sopra. In questo esempio il treno è il tram, un bus o una macchina. Ogni quartiere può essere diverso da un altro e si può trovare fisicamente molto distante da un altro: come una QVM che si trova a Palermo ed una che si trova a Torino.

Le QVM sono collegate tramite un collegamento protetto via Internet ad una macchina virtuale centrale, la “QVM-PROXY”. Questa macchina permette di gestire ed effettuare del supporto ad ogni QVM. Ad esempio, per aggiornare una QApp (ad esempio QDocs) le QVM ricevono l’aggiornamento da attuare dalla Qvm-Proxy così fornire una versione migliorata dell’applicazione. Da questa prospettiva si vede una città che offre diversi servizi, gestiti in maniera centralizzata e controllata da noi.

LEGO ARCHITECTS

Ed eccoci qui, noi costruttori di strutture in mattoncini virtuali che, dopo un’analisi delle richieste di un cliente, da piccoli blocchi di codice creiamo con uno sviluppo Agile delle applicazioni ad hoc. Per ogni funzionalità che scriviamo prepariamo dei test per verificare, ad ogni prova, che il codice appena scritto sia corretto e che non interferisca negativamente su quello scritto precedentemente.

Quando è ora di installare una QApp ci colleghiamo in modo sicuro alla QVM del Cliente e seguiamo una particolare procedura di Deployment: prepariamo sui nostri computer l’applicazione e la inviamo alla QVM di destinazione passando per la Qvm-Proxy. Alla fine, effettuiamo i test delle funzionalità da remoto e comunichiamo al cliente che l’applicazione è stata rilasciata.

Solitamente consegniamo una parte di città (applicazione) ad intervalli regolari. Ad ogni rilascio si effettua una serie di test scritti ad hoc per essere sicuri che le funzionalità siano corrette e funzionanti. Consegnare un’applicazione “un po’ alla volta” permettere al cliente di osservare gli avanzamenti dello sviluppo, controllare che si sta realizzando l’idea che aveva in mente e testare l’applicazione in modo da effettuare una validazione sul campo.

Proprio come quando si gioca con i LEGO® e si vede passo passo la propria creazione crescere e diventare unica e completa. Ecco perché ci piace il nostro lavoro!

back to top