BESSER

Piattaforma open source in Python di tipo “low-code” che trasforma i modelli B-UML in codice funzionante

Altro · Varie

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

Ancora nessuna recensione — scrivi la prima.

A colpo d'occhio

Sito web
https://besser.readthedocs.io/en/latest/
Categoria
Altro · Varie
Aggiornato

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.

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.

Inizia ora

Pronto a lanciare la tua prossima build?

Unisciti gratis a LowCodeDevs — inserisci i tuoi strumenti low-code, la tua agenzia o il tuo profilo da sviluppatore, e fatti trovare da chi ha bisogno di te.

Crea il tuo account