Op het eerste gezicht niet 2 onderwerpen die bij elkaar passen.
Als docent software architectuur op de Hogeschool Utrecht heb ik een semester het vak software architectuur mogen geven, hierbij was als uitgangspunt de ISO 25010 en dan met name gericht op onderhoudbaarheid, uitwisselbaarheid, security, herbruikbaarheid.
Dit zijn punten waar je bij een low code oplossing niet meteen aan denkt. Hierbij denk je in eerste instantie aan het snel realiseren van bepaalde functionaliteit. Je maakt snel even een (web)app met daarin de UI, je entiteiten, je logica. Dit werkt voor een kleine snelle oplossing. Maar is dit onderhoudbaar, herbruikbaar, etc.?
Binnen de software architectuur zijn er een aantal principes en methoden om dit voor elkaar te krijgen, onder andere:
- Lage afhankelijkheid tussen componenten, packages.
- Grote samenhang binnen een component, package.
- Geen circulaire afhankelijkheid tussen componenten, packages.
- Meer lagen model, met een scheiding tussen UI, business logica, business entiteiten(data) en generieke elementen (UI, niet business gerelateerde entiteiten)
- Geen verbindingen van een lagere laag naar een hogere laag.
Kun je dit vertalen naar een low code omgeving als Outsystems? Ja! Als je modules in Outsystems ziet als componenten, applicaties in Outsystems ziet als packages. En je een 3 lagen model gebruikt voor je modules en voor je applicaties, met in de bovenste laag de UI modules, de middelste laag je business modules, en in de onderste laag generieke/basis modules.
Voorbeeld:
Voor dit lagen model gelden een aantal regels:
- Geen verbindingen van een lagere laag naar een hogere laag (klassieke software architectuur)
- Geen circulaire afhankelijkheden tussen modules (klassieke software architectuur)
- Geen verbindingen tussen UI modules (security)
Dezelfde principes kun je ook toepassen op applicatie niveau.
Dit laat zijn dat het mogelijk is deze principes toe te passen binnen Outsystems, als je hoogwaardige, kwalitatieve en toekomstgerichte oplossingen wil realiseren.
Voor informatie over architectuur in Outsystems:
OutSystems Training: Architecting Sustainable Applications | OutSystems
Marc Wetters
Senior Software Architect at LowQode