BESSER
Piattaforma open source in Python di tipo “low-code” che trasforma i modelli B-UML in codice funzionante
BESSER è una piattaforma open source low-code per sviluppatori che genera codice Django, React, Flutter e altro ancora a partire da modelli B-UML.
Panoramica
Recensione di BESSER
Questa recensione di BESSER illustra a cosa serve la piattaforma low-code BESSER, le sue caratteristiche principali, i costi, il linguaggio di modellazione B-UML, i suoi punti di forza e di debolezza, nonché un confronto con altri strumenti low-code. BESSER (Building bEtter Smart Software fastER) è una piattaforma “low-modeling, low-code”: l’utente descrive la propria applicazione come un modello, dopodiché i generatori di codice trasformano il modello in un backend, uno schema di database, un frontend web o mobile oppure un agente di intelligenza artificiale. È scritta in Python, rilasciata sotto licenza MIT e sviluppata dal Luxembourg Institute of Science and Technology (LIST) in collaborazione con l’Università del Lussemburgo, grazie a un finanziamento FNR Pearl. Il progetto procede rapidamente: la versione 7.18.0 è stata rilasciata su GitHub nel settembre 2026.
A cosa serve BESSER?
BESSER viene utilizzato per modellare una volta un sistema software e generarne il codice. Un progetto tipico parte da un modello strutturale B-UML (classi, attributi, associazioni) e genera un’applicazione web Django, un’API REST con un database SQL, classi SQLAlchemy o Pydantic, oppure un’applicazione web completa con front-end React e back-end Python. Lo stesso modello può generare un’applicazione mobile Flutter, un backend Java o Spring Boot, uno schema JSON o un vocabolario RDF.
La piattaforma punta al software “intelligente”: applicazioni con componenti di intelligenza artificiale. È possibile modellare un chatbot o un agente e generarlo per il BESSER Agentic Framework, modellare una rete neurale e generare codice PyTorch o TensorFlow, oppure modellare un circuito quantistico e generare codice Qiskit. I ricercatori utilizzano BESSER per l’ingegneria basata su modelli e la modellazione assistita dall’IA; i team di sviluppo lo utilizzano per generare le parti ripetitive di uno stack applicativo e mantenere il modello come unica descrizione del sistema.
Caratteristiche principali
- B-UML: la versione di BESSER, basata su Python, di un “Linguaggio di modellazione universale” (Universal Modeling Language), ispirata all’UML ma non strettamente conforme, in modo da attivare solo i sottolinguaggi necessari a un progetto.
- Numerosi tipi di modelli: strutturali, a oggetti, GUI, a macchina a stati, ad agente, BPMN, di funzionalità, di architettura di distribuzione, di reti neurali e modelli quantistici, oltre a vincoli OCL e modelli utente (documentazione B-UML).
- Generatori di codice: Applicazione web completa, Django, backend, Spring Boot, API REST, classi Python, Pydantic e Java, casi di test, Flutter, React, schema SQL, SQLAlchemy, JSON Schema, RDF, Terraform, PyTorch, TensorFlow, Qiskit, il BESSER Agentic Framework e BPMN.
- BESSER Web Modeling Editor: un editor di diagrammi basato su browser disponibile all’indirizzo editor.besser-pearl.org, dove è possibile disegnare modelli B-UML tramite drag and drop ed eseguire i generatori senza installare nulla.
- Diversi modi per creare un modello: scriverlo con l’API Python, utilizzare una grammatica testuale (compatibile con PlantUML per modelli di classi e oggetti), disegnarlo nell’editor web oppure trasformare un’immagine, uno schizzo disegnato a mano o un mock-up dell’interfaccia utente in un modello tramite l’intelligenza artificiale.
- Modellazione di agenti: progetta un agente conversazionale, poi chatta con esso nella simulazione live dell’agente integrata nell’editor, aggiunta nella versione 7.18.0 (note di rilascio).
- Aperto ed estensibile: codice Python con licenza MIT, pip install besser, generatori e modelli personalizzati, integrazione con agenti di programmazione basati sull’intelligenza artificiale tramite le competenze degli agenti e una configurazione Docker per eseguire l’editor in locale.
Prezzi di BESSER
BESSER è gratuito. La piattaforma, la libreria Python e i generatori sono open source con licenza MIT, e l’editor di modellazione web BESSER è utilizzabile gratuitamente. Non sono previsti piani, licenze o metriche di utilizzo, né sono elencati livelli a pagamento nella documentazione di BESSER a settembre 2026.
L’unico costo da tenere in considerazione riguarda tutto ciò che ruota attorno al codice. Siete voi stessi a ospitare ed eseguire l’applicazione generata, quindi i costi relativi a server, database e distribuzione sono a vostro carico. Le funzionalità assistite dall’IA, come la trasformazione da immagine a modello, richiamano grandi modelli linguistici esterni, quindi verificate quale provider e quale chiave API richiedono. Non è previsto alcun contratto di assistenza commerciale: il supporto viene fornito tramite le segnalazioni su GitHub e dal team di ricerca; pertanto, è necessario prevedere nel budget il tempo degli sviluppatori per le correzioni e per la creazione di modelli generatori personalizzati qualora quelli predefiniti non fossero adeguati.
I modelli B-UML e l’editor di modellazione web BESSER
B-UML è il cuore della piattaforma. Un modello B-UML è un insieme di oggetti Python che rispecchiano i concetti UML: classi con attributi e operazioni, associazioni con molteplicità, generalizzazioni, enumerazioni e vincoli scritti in OCL. Ogni attributo ha un tipo e può avere un valore predefinito; ogni operazione ha parametri tipizzati e un tipo di ritorno. Poiché il modello è scritto in Python puro, è possibile esaminarlo, convalidarlo e salvarlo come qualsiasi altro codice Python, oltre ad aggiungere una descrizione a ciascun elemento per documentare il progetto. È possibile costruire il modello tramite codice, analizzarlo da testo in stile PlantUML o disegnarlo nell’editor di modellazione web BESSER (BESSER WME). L’editor memorizza progetti in grado di contenere insieme un diagramma di classe, diagrammi di oggetti, un modello GUI, macchine a stati e agenti, consentendo così di modificare ogni modello B-UML di un sistema in un unico posto, per poi esportare e reimportare il progetto.
Poiché ogni generatore legge lo stesso modello B-UML, una modifica al modello si riflette nell’app Django, nello schema SQL e nel frontend React già nell’esecuzione successiva. Il team di ricerca ha inoltre pubblicato un set di dati B-UML composto da 5.410 modelli suddivisi in 220 categorie, ciascuno modificabile nell’editor web e corredato da una descrizione testuale e dal codice Python, destinato ai team che necessitano di esempi o dati per la modellazione assistita dall’intelligenza artificiale (Linguaggi di modellazione).
Da un modello B-UML al codice Python: un esempio
Prendiamo in esame un piccolo sistema bibliotecario, lo stesso esempio utilizzato anche nella documentazione di BESSER. Nel modello B-UML si creano tre classi: Libro, Autore e Biblioteca. Book ha gli attributi titolo, pagine e data di pubblicazione, ciascuno con un tipo; Author ha un nome e un’e-mail. Le associazioni definiscono le relazioni tra le classi: una Library ha molti Books, un Book ha uno o più Authors, e ciascuna estremità dell’associazione ha un nome e una molteplicità. Le operazioni contengono una descrizione e parametri tipizzati; ad esempio, un'operazione sulla classe Library che restituisce i libri di un autore. I vincoli OCL aggiungono regole di business, come "il numero di pagine deve essere maggiore di zero", che è possibile verificare rispetto ai modelli a oggetti dei dati reali.
Partendo da questo unico modello B-UML, il generatore di schemi SQL scrive una tabella per ogni classe, una colonna per ogni attributo e le chiavi esterne o le tabelle di collegamento per ogni associazione; i generatori SQLAlchemy e Pydantic generano il codice Python per il livello dati, mentre il generatore Django o Full Web App aggiunge le pagine, i moduli e gli endpoint REST per creare, modificare ed elencare i record. Un modello GUI a livello superiore decide quale pagina mostra quale tabella o modulo, quali collegamenti uniscono le pagine e a quali dati può accedere ciascun utente. Quando il modello cambia, è sufficiente rigenerare il codice: l’implementazione segue il modello invece di allontanarsene. Il progetto generato è codice semplice che è possibile archiviare in Git, estendere manualmente e distribuire come qualsiasi altra applicazione Django, React o Spring Boot.
L’UML viene ancora utilizzato e perché la piattaforma low-code BESSER si basa su di esso?
L’UML, ovvero l’Unified Modeling Language, è una notazione standard per descrivere il software tramite diagrammi quali quelli di classe, a macchina a stati e di sequenza. I diagrammi di classe UML rappresentano ancora il modo più comune per descrivere i dati e le loro relazioni, e l’UML è ancora utilizzato per la progettazione, la documentazione e lo sviluppo basato su modelli; tuttavia, molti team ritengono che l’UML completo sia troppo complesso. BESSER adotta un approccio pragmatico: mantiene le parti di UML che generano codice utile, aggiunge ciò che manca all’UML per i sistemi moderni (GUI, agenti, reti neurali, distribuzione) e consente di tralasciare il resto. L’uso di Python al posto dello stack di modellazione Eclipse basato su Java semplifica la combinazione dei modelli con le librerie di machine learning.
I punti di forza e le carenze di BESSER
Punti di forza:
- Gratuito, open source e con licenza MIT, senza vincoli di dipendenza da un unico fornitore sul codice generato.
- Un unico modello genera molteplici destinazioni: componenti web, mobili, database, API e di intelligenza artificiale.
- Ambito di modellazione insolitamente ampio, dai diagrammi di classe agli agenti, alle reti neurali e ai circuiti quantistici.
- Un'API Python adatta ai team di data science e di IA.
Compromessi:
- Un progetto orientato alla ricerca: rilasci rapidi, ma nessun supporto commerciale né SLA.
- Sono necessarie competenze di modellazione; si tratta di una piattaforma low-code per sviluppatori, non di un generatore di app no-code.
- Le applicazioni generate richiedono comunque uno sviluppatore per l’hosting, l’estensione e la manutenzione.
- Una comunità più ristretta e un numero inferiore di modelli rispetto alle piattaforme low-code commerciali.
Confronto con BESSER
- BESSER Bot Framework: il progetto gemello dedicato a chatbot e agenti, per i quali i modelli di agente di BESSER generano il codice.
- Mendix e OutSystems: piattaforme low-code commerciali basate su modelli, con hosting, governance e assistenza, a prezzi aziendali.
- Oracle APEX: applicazioni low-code su un database Oracle, incluse con Oracle Database.
- WaveMaker: soluzione low-code con codice Angular e Java generato che è possibile esportare.
- Microsoft Power Apps: app aziendali all’interno di Microsoft 365, pensate per i “citizen developer” piuttosto che per i modellatori.
- FlutterFlow: generatore visivo di app Flutter con esportazione del codice, incentrato sull’interfaccia utente.
- Supabase: un backend Postgres open source quando serve solo il livello dati.
Vale la pena utilizzare BESSER?
BESSER è utile per sviluppatori, architetti e ricercatori che amano lavorare con i modelli e desiderano generare uno stack Python, Java o JavaScript a partire da un'unica descrizione, senza dover pagare per una piattaforma commerciale. È particolarmente adatto per prototipi, progetti di ricerca, l’insegnamento dell’ingegneria basata su modelli e applicazioni con componenti di intelligenza artificiale. È meno adatto agli utenti aziendali che desiderano un generatore di app no-code, o alle aziende che necessitano di un prodotto supportato con hosting e uno SLA; Mendix, OutSystems o Power Apps soddisfano meglio tali esigenze. Se avete bisogno di aiuto per modellare il vostro sistema in BESSER o per trasformare il codice generato in un’applicazione di produzione, gli sviluppatori e le agenzie presenti su LowCodeDevs possono occuparsene.
Fonti
- Documentazione BESSER: la piattaforma, l’installazione, la licenza e i finanziamenti.
- Linguaggio B-UML: sottolinguaggi, modalità di creazione dei modelli ed elenco dei generatori.
- Versioni di BESSER su GitHub: cronologia delle versioni, inclusa la v7.18.0 e la simulazione in tempo reale degli agenti.
- BESSER Web Modeling Editor: l’editor basato su browser.
- BESSER, una nuovissima piattaforma open source low-code, Linguaggi di modellazione: gli obiettivi di progettazione, a cura del responsabile del progetto.
- È arrivato il dataset B-UML, Linguaggi di modellazione: il dataset di 5.410 modelli.
Ancora nessuna recensione — scrivi la prima.
A colpo d'occhio
- Sito web
- https://besser.readthedocs.io/en/latest/
- Categoria
- Altro · Varie
- Aggiornato
Alternative a BESSER
Domande
Domande frequenti su BESSER
BESSER è gratuito?
Sì. BESSER è un progetto open source distribuito sotto licenza MIT e l'editor di modellazione online è gratuito. Si paga solo per l'hosting delle applicazioni che si generano.
A cosa serve BESSER?
BESSER viene utilizzato per modellare un sistema software in B-UML e generare codice a partire da esso, come applicazioni web Django o React, API REST, schemi SQL, applicazioni Flutter, chatbot e reti neurali.
Che cos’è il B-UML?
B-UML è il linguaggio di modellazione basato su Python sviluppato da BESSER, ispirato all'UML. Copre modelli di classe, oggetto, interfaccia grafica utente (GUI), macchina a stati, agente, BPMN, distribuzione, rete neurale e modelli quantistici.
Cosa significa UML?
UML è l'acronimo di Unified Modeling Language, una notazione standard per la progettazione di software tramite diagrammi. Il B-UML di BESSER si basa su tale standard, adottando un approccio più pragmatico ed estensibile.
Chi sviluppa BESSER?
BESSER è stato sviluppato dall’Istituto lussemburghese di scienza e tecnologia in collaborazione con l’Università del Lussemburgo, grazie a un finanziamento FNR Pearl, ed è aperto ai contributi esterni su GitHub.
BESSER è una piattaforma no-code?
No. BESSER è una piattaforma low-code destinata a sviluppatori e modellisti. Si progettano modelli invece di scrivere tutto a mano, ma è comunque necessario comprendere i principi della modellazione ed eseguire il codice generato.
Qual è un esempio di piattaforma low-code?
Mendix, OutSystems e Microsoft Power Apps sono esempi di soluzioni commerciali. BESSER è un esempio open source che genera codice a partire da modelli, anziché eseguire le app su una piattaforma proprietaria.
Altrove su LowCodeDevs
Progetti recenti su LowCodeDevs
Nessun caso studio con BESSER è stato ancora pubblicato.
Altrove su LowCodeDevs
Agenzie su LowCodeDevs
Nessuna agenzia ha ancora inserito BESSER.
Altrove su LowCodeDevs
Sviluppatori su LowCodeDevs
Nessuno sviluppatore ha ancora inserito BESSER tra le sue competenze.
La tua competenza
Sii il primo esperto di BESSER su LowCodeDevs
I team che scelgono BESSER arrivano su questa pagina cercando qualcuno che sappia costruire con questo strumento. Quel posto è ancora libero: inserisci la tua agenzia o il tuo profilo con BESSER tra i tuoi strumenti e questa pagina mostrerà il tuo lavoro.