B I T L S

Loading

L’obiettivo del progetto è quello di mettere a disposizione di sviluppatori e software house un motore per la realizzazione rapida di configuratori, ossia di software che siano in grado di proporre all’utente una sequenza di domande in cascata tra loro correlate, guidandolo nella raccolta di una serie di informazioni in maniera strutturata.

L’idea è quella di astrarre tutte le logiche implementative tipiche di un configuratore (gestione dei diversi tipi di domanda, dei vincoli sulle risposte accettabili e delle correlazioni tra le diverse domande), lasciando allo sviluppatore la possibilità di concentrarsi esclusivamente sulla definizione dell’albero decisionale che modellizza tutte le possibili combinazioni di risposte ammissibili, ossia tutte le possibili strade che l’utente potrà percorrere nel rispondere alle domande.

Caratteristica fondamentale del motore realizzato è l’elevato grado di generalità e configurabilità, che consente allo sviluppatore di soddisfare tutte le più frequenti esigenze applicative caratterizzanti l’ambito dei configuratori. Particolare attenzione è posta anche all’efficienza, grazie al fatto che l’albero decisionale viene trasformato in codice eseguibile, che viene poi compilato e mandato in esecuzione. Il motore permette inoltre di gestire versioni differenti di uno stesso albero decisionale, per garantire l’evoluzione delle informazioni che devono essere richieste all’utente, senza compromettere quanto già raccolto con versioni precedenti della configurazione.


Sempre più spesso si registra l’esigenza di costruire software per la raccolta di informazioni in modo strutturato, molto spesso nell’ambito della configurazione di prodotti o servizi complessi, fornendo all’utente una sequenza di domande ben articolate e correlate tra loro.

Le soluzioni presenti e diffuse sul mercato si concentrano molto spesso sull’interfaccia utente che questi software devono avere (sia essa un’interfaccia Web, un’app o un applicativo desktop), ma sono piuttosto lacunose quando si arriva a dover gestire correlazioni complesse tra le diverse domande da proporre. La logica che si occupa di gestire la visibilità delle domande, la validazione delle risposte e le correlazioni tra le domande viene infatti solitamente sviluppata ad hoc per ogni nuovo configuratore che ci si trova a realizzare.

Tutto ciò comporta alcune importanti problematiche: il tempo di sviluppo è maggiore; la quantità di codice replicato aumenta a discapito della manutenibilità; le probabilità di introdurre dei bug nelle logiche alla base dei configuratori aumentano sensibilmente.

Si è quindi deciso di investire sulla progettazione e realizzazione di un motore generico che incorpori la logica che sta alla base di qualsiasi form di richiesta dati, anche molto complessa. L’obiettivo è quindi quello di fornire uno strumento evoluto che permetta agli sviluppatori di concentrarsi esclusivamente sulla definizione dell’albero di domande da proporre all’utente e sulle correlazioni tra di esse, senza ogni volta dover ripensare alla gestione delle problematiche sopra descritte.