BESSER
Een open-source Python-low-codeplatform dat B-UML-modellen omzet in werkende code
BESSER is een open-source low-code-platform voor ontwikkelaars dat op basis van B-UML-modellen code genereert voor Django, React, Flutter en andere platforms.
Overzicht
BESSER review
In deze BESSER-recensie wordt besproken waarvoor het BESSER low-code-platform wordt gebruikt, wat de belangrijkste functies zijn, wat het kost, wat de B-UML-modellerings taal inhoudt, waarin het uitblinkt en waar het tekortschiet, en hoe het zich verhoudt tot andere low-code-tools. BESSER (Building bEtter Smart Software fastER) is een „low-modeling, low-code“-platform: je beschrijft je applicatie als een model, waarna codegeneratoren het model omzetten in een backend, een databaseschema, een web- of mobiele frontend, of een AI-agent. Het is geschreven in Python, vrijgegeven onder de MIT-licentie en ontwikkeld door het Luxembourg Institute of Science and Technology (LIST) in samenwerking met de Universiteit van Luxemburg, gefinancierd door een FNR Pearl-subsidie. Het project ontwikkelt zich snel: versie 7.18.0 werd in september 2026 op GitHub vrijgegeven.
Waarvoor wordt BESSER gebruikt?
BESSER wordt gebruikt om een softwaresysteem eenmalig te modelleren en de bijbehorende code te genereren. Een typisch project begint met een structureel B-UML-model (klassen, attributen, associaties) en genereert een Django-webapplicatie, een REST-API met een SQL-database, SQLAlchemy- of Pydantic-klassen, of een volledige webapp met een React-frontend en een Python-backend. Hetzelfde model kan een mobiele Flutter-applicatie, een Java- of Spring Boot-backend, een JSON-schema of een RDF-vocabulaire aansturen.
Het platform richt zich op „slimme“ software: applicaties met AI-componenten. Je kunt een chatbot of agent modelleren en genereren voor het BESSER Agentic Framework, een neuraal netwerk modelleren en PyTorch- of TensorFlow-code genereren, of een kwantumcircuit modelleren en Qiskit-code genereren. Onderzoekers gebruiken BESSER voor modelgedreven engineering en AI-ondersteunde modellering; ontwikkelteams gebruiken het om de repetitieve onderdelen van een applicatiestack te genereren en het model te behouden als de enige beschrijving van het systeem.
Belangrijkste kenmerken
- B-UML: BESSER’s op Python gebaseerde versie van een ‘Universal Modeling Language’, geïnspireerd door UML maar niet strikt conform, zodat je alleen de subtaal activeert die een project nodig heeft.
- Veel modeltypen: structureel, object, GUI, toestandsmachine, agent, BPMN, feature, implementatiearchitectuur, neurale netwerken en kwantummodellen, plus OCL-beperkingen en gebruikersmodellen (B-UML-documentatie).
- Codegeneratoren: Volledige webapp, Django, backend, Spring Boot, REST API, Python-, Pydantic- en Java-klassen, testcases, Flutter, React, SQL-schema, SQLAlchemy, JSON-schema, RDF, Terraform, PyTorch, TensorFlow, Qiskit, het BESSER Agentic Framework en BPMN.
- BESSER Web Modeling Editor: een browsergebaseerde diagram-editor op editor.besser-pearl.org waar je B-UML-modellen kunt tekenen met slepen en neerzetten en de generatoren kunt uitvoeren zonder iets te installeren.
- Verschillende manieren om een model te maken: schrijf het met de Python-API, gebruik een tekstuele grammatica (PlantUML-compatibel voor klasse- en objectmodellen), teken het in de web-editor, of zet een afbeelding, handgetekende schets of UI-mock-up om in een model met behulp van AI.
- Agentmodellering: ontwerp een conversatieagent en chat er vervolgens mee in de live agentsimulatie van de editor, toegevoegd in v7.18.0 (release notes).
- Open en uitbreidbaar: Python-code onder MIT-licentie, pip install besser, je eigen generators en sjablonen, integratie met AI-codeeragenten via agentvaardigheden, en een Docker-installatie om de editor lokaal te draaien.
Prijzen van BESSER
BESSER is gratis. Het platform, de Python-bibliotheek en de generators zijn open source onder de MIT-licentie, en de online BESSER Web Modeling Editor is gratis te gebruiken. Er zijn geen abonnementen, licenties of gebruiksstatistieken, en er staat per september 2026 geen betaald abonnement vermeld in de BESSER-documentatie.
De kosten die je moet controleren, hebben alles te maken met de code. Je host en draait de gegenereerde applicatie zelf, dus servers, databases en de implementatie zijn jouw kosten. AI-ondersteunde functies, zoals de transformatie van afbeeldingen naar modellen, maken gebruik van externe grote taalmodellen, dus controleer welke provider en API-sleutel daarvoor nodig zijn. Er is geen commercieel ondersteuningscontract: hulp wordt geboden via de GitHub-issues en het onderzoeksteam, dus houd rekening met ontwikkeltijd voor het oplossen van problemen en voor het schrijven van je eigen generatorsjablonen wanneer een standaardsjabloon niet past.
B-UML-modellen en de BESSER Web Modeling Editor
B-UML vormt het hart van het platform. Een B-UML-model is een verzameling Python-objecten die UML-concepten weerspiegelen: klassen met attributen en bewerkingen, associaties met multipliciteiten, generalisaties, opsommingen en beperkingen geschreven in OCL. Elk attribuut heeft een type en kan een standaardwaarde bevatten; elke bewerking heeft getypeerde parameters en een retourtype. Omdat het model uit gewone Python bestaat, kun je het net als elke andere Python-code inspecteren, valideren en opslaan, en aan elk element een beschrijving toevoegen om het ontwerp te documenteren. Je kunt het model in code bouwen, het parseren vanuit PlantUML-achtige tekst, of het tekenen in de BESSER Web Modeling Editor (BESSER WME). De editor slaat projecten op die een klassendiagram, objectdiagrammen, een GUI-model, toestandsmachines en agenten samen kunnen bevatten, zodat je elk B-UML-model van een systeem op één plek kunt bewerken en vervolgens het project kunt exporteren en opnieuw importeren.
Omdat elke generator hetzelfde B-UML-model leest, wordt een wijziging in het model bij de volgende generatie-run doorgevoerd in de Django-app, het SQL-schema en de React-frontend. Het onderzoeksteam heeft ook een B-UML-dataset gepubliceerd met 5.410 modellen in 220 categorieën, die elk in de web-editor kunnen worden bewerkt en voorzien zijn van een tekstuele beschrijving en Python-code, voor teams die op zoek zijn naar voorbeelden of gegevens voor AI-ondersteunde modellering (Modeling Languages).
Van een B-UML-model naar Python-code: een voorbeeld
Neem een klein bibliotheeksysteem, het voorbeeld dat ook in de BESSER-documentatie wordt gebruikt. In het B-UML-model maak je drie klassen aan: Book, Author en Library. Book krijgt de attributen title, pages en release date, elk met een type; Author krijgt een naam en een e-mailadres. Associaties definiëren de relaties tussen klassen: een Library heeft vele Books, een Book heeft één of meer Authors, en elk eindpunt van een associatie heeft een naam en een multipliciteit. Operaties bevatten een beschrijving en getypeerde parameters, bijvoorbeeld een operatie op Library die de boeken van één auteur retourneert. OCL-beperkingen voegen bedrijfsregels toe, zoals „het aantal pagina’s moet groter zijn dan nul”, die je kunt toetsen aan objectmodellen van echte gegevens.
Vanuit dit ene B-UML-model schrijft de SQL-schemagenerator een tabel per klasse, een kolom per attribuut en de externe sleutels of koppelingstabellen voor elke associatie; de SQLAlchemy- en Pydantic-generatoren schrijven de Python-code voor de gegevenslaag, en de Django- of Full Web App-generator voegt de pagina’s, formulieren en REST-eindpunten toe om records aan te maken, te bewerken en weer te geven. Een GUI-model daarboven bepaalt welke pagina welke tabel of welk formulier toont, welke links de pagina’s met elkaar verbinden en tot welke gegevens elke gebruiker toegang heeft. Wanneer het model verandert, genereer je het opnieuw: de implementatie volgt het model in plaats van ervan af te wijken. Het gegenereerde project bestaat uit gewone code die je in Git kunt opslaan, handmatig kunt uitbreiden en kunt implementeren zoals elke andere Django-, React- of Spring Boot-applicatie.
Wordt UML nog steeds gebruikt, en waarom bouwt het BESSER low-code-platform hierop voort?
UML, de Unified Modeling Language, is een standaardnotatie voor het beschrijven van software met diagrammen zoals klasse-, toestandsmachine- en sequentiediagrammen. UML-klassediagrammen zijn nog steeds de meest gangbare manier om gegevens en hun relaties te beschrijven, en UML wordt nog steeds gebruikt voor ontwerp, documentatie en modelgestuurde ontwikkeling, maar veel teams vinden volledige UML te omslachtig. BESSER kiest voor een pragmatische aanpak: het behoudt de onderdelen van UML die nuttige code genereren, voegt toe wat UML mist voor moderne systemen (GUI, agents, neurale netwerken, implementatie) en laat je de rest overslaan. Door Python te gebruiken in plaats van de op Java gebaseerde Eclipse-modelleringsstack, is het eenvoudig om modellen te combineren met machine learning-bibliotheken.
Waar BESSER uitblinkt — en waar het tekortschiet
Sterke punten:
- Gratis, open source en onder MIT-licentie, zonder vendor lock-in op de gegenereerde code.
- Eén model genereert vele doelen: web-, mobiele, database-, API- en AI-componenten.
- Ongebruikelijk breed modelleringsbereik, van klassendiagrammen tot agents, neurale netwerken en kwantumcircuits.
- Een Python-API die geschikt is voor data science- en AI-teams.
Nadelen:
- Een door onderzoek gedreven project: snelle releases, maar geen commerciële ondersteuning of SLA.
- Je hebt modelleervaardigheden nodig; het is een low-code-platform voor ontwikkelaars, geen no-code-app-bouwer.
- De gegenereerde applicaties hebben nog steeds een ontwikkelaar nodig om ze te hosten, uit te breiden en te onderhouden.
- Een kleinere community en minder sjablonen dan bij commerciële low-code-platforms.
Hoe BESSER zich verhoudt
- BESSER Bot Framework: het zusterproject voor chatbots en agents, waarvoor de agentmodellen van BESSER code genereren.
- Mendix en OutSystems: commerciële, modelgestuurde low-code-platforms met hosting, governance en ondersteuning, tegen zakelijke prijzen.
- Oracle APEX: low-code-apps op een Oracle-database, inbegrepen bij Oracle Database.
- WaveMaker: low-code met gegenereerde Angular- en Java-code die je kunt exporteren.
- Microsoft Power Apps: bedrijfsapps binnen Microsoft 365, bedoeld voor 'citizen developers' in plaats van modelleerders.
- FlutterFlow: visuele Flutter-app-builder met code-export, gericht op de gebruikersinterface.
- Supabase: een open-source Postgres-backend voor als je alleen de gegevenslaag nodig hebt.
Is BESSER de moeite waard?
BESSER is de moeite waard voor ontwikkelaars, architecten en onderzoekers die graag met modellen werken en vanuit één beschrijving een Python-, Java- of JavaScript-stack willen genereren, zonder te betalen voor een commercieel platform. Het is zeer geschikt voor prototypes, onderzoeksprojecten, het onderwijzen van modelgedreven engineering en applicaties met AI-componenten. Het is minder geschikt voor zakelijke gebruikers die een no-code app-bouwer willen, of voor bedrijven die een ondersteund product met hosting en een SLA nodig hebben; Mendix, OutSystems of Power Apps voldoen beter aan die behoeften. Als je hulp nodig hebt bij het modelleren van je systeem in BESSER of bij het omzetten van gegenereerde code naar een productieapplicatie, kunnen de ontwikkelaars en bureaus op LowCodeDevs dit voor je doen.
Bronnen
- BESSER-documentatie: het platform, installatie, licentie en financiering.
- B-UML-taal: subtaalvormen, manieren om modellen te maken en de lijst met generatoren.
- BESSER-releases op GitHub: versiegeschiedenis, inclusief v7.18.0 en live agent-simulatie.
- BESSER Web Modeling Editor: de browsergebaseerde editor.
- BESSER, een gloednieuw open-source low-code-platform, modelleertalen: de ontwerpdoelen, door de projectleider.
- De B-UML-dataset is beschikbaar, modelleertalen: de dataset met 5.410 modellen.
Nog geen reviews — schrijf de eerste.
In één oogopslag
- Website
- https://besser.readthedocs.io/en/latest/
- Categorie
- Overig · Overig
- Bijgewerkt
BESSER-alternatieven
Vragen
BESSER FAQ
Is BESSER gratis?
Ja. BESSER is open source onder de MIT-licentie en de online webmodelleringseditor is gratis. Je betaalt alleen voor de hosting van de applicaties die je zelf maakt.
Waarvoor wordt BESSER gebruikt?
BESSER wordt gebruikt om een softwaresysteem in B-UML te modelleren en daaruit code te genereren, zoals Django- of React-webapps, REST-API’s, SQL-schema’s, Flutter-apps, chatbots en neurale netwerken.
Wat is B-UML?
B-UML is de op Python gebaseerde modelleertaal van BESSER, geïnspireerd door UML. De taal omvat modellen voor klassen, objecten, GUI’s, toestandsmachines, agenten, BPMN, implementatie, neurale netwerken en kwantummodellen.
Wat betekent UML?
UML staat voor Unified Modeling Language, een standaardnotatie voor het ontwerpen van software met behulp van diagrammen. BESSER’s B-UML bouwt hierop voort met een meer pragmatische, uitbreidbare aanpak.
Wie ontwikkelt BESSER?
BESSER is ontwikkeld door het Luxembourg Institute of Science and Technology in samenwerking met de Universiteit van Luxemburg, gefinancierd door een FNR Pearl-subsidie, en staat open voor bijdragen van buitenaf op GitHub.
Is BESSER een no-code-platform?
Nee. BESSER is een low-code-platform voor ontwikkelaars en modelleurs. Je ontwerpt modellen in plaats van alles met de hand te schrijven, maar je moet nog steeds verstand hebben van modelleren en de gegenereerde code kunnen uitvoeren.
Wat is een voorbeeld van een low-code-platform?
Mendix, OutSystems en Microsoft Power Apps zijn commerciële voorbeelden. BESSER is een open-sourcevoorbeeld dat code genereert op basis van modellen, in plaats van apps op een eigen platform uit te voeren.
Elders op LowCodeDevs
Recente projecten op LowCodeDevs
Er is nog geen BESSER-casestudy gepubliceerd.
Elders op LowCodeDevs
Bureaus op LowCodeDevs
Nog geen bureau heeft BESSER in de lijst gezet.
Elders op LowCodeDevs
Developers op LowCodeDevs
Nog geen developer heeft BESSER als skill opgegeven.
Jouw expertise
Word de eerste BESSER-expert op LowCodeDevs
Teams die voor BESSER kiezen komen op deze pagina terecht, op zoek naar iemand die ermee kan bouwen. Die plek is nog vrij — zet je bureau of je eigen profiel in de lijst met BESSER bij je tools, en deze pagina toont jouw werk.