SystemMage is een raamwerk voor gecomponentiseerde systemen voor analyse & transformatie van broncode.

Centraal is een software bus waaraan componenten gekoppeld zijn en waardoor deze componenten bestuurd worden en onderling communiceren.

SystemMage bestaat uit zeven aspecten:

Aspect A: de basis

In dit Aspect wordt de basisstructuur van de bus ontwikkeld. Hoe koppelen componenten zich aan het systeem. En maken ze zich kenbaar. Hoe worden incidenten eenduidig en veilig afgehandeld. Hoe worden componenten aangestuurd.

Aspect B: het typesysteem

Om op een onderhoudbare, niet-monolitische manier samen te werken moeten de componentren een geintegreerd typesysteem kennen waarbij de data representatieonafhankelijk gecommuniceerd moet kunnen worden.

Aspect C: generatoren

Aan de hand van specificaties op basis van het overkoepelende typesysteem worden bibliotheken gegenereerd waarmee componenten precies die data kunnen manipuleren waarvoor ze toegang hebben, maar zijn afgeschermd van data die voor hun niet toegankelijk is.

Aspect D: datalaag

Een belangrijke component is de repository: een database waarin code (in de breedste zin van het woord) opgeslagen kan worden. Speciale aandacht bestaat voor eigenschappen die typisch zijn voor code: versies, afhankelijkheden, wel/niet gegenereerd, generatiescripts, etcetera.

Aspect E: analyse en transformatie

Het belangrijkste doel van SystemMage is het analyseren en transformeren van code. In dit Aspect worden talen en tools ontwikkeld om dergelijke analyse en transformatie onderehoudbaar te kunnen automatiseren.

Aspect F: parsing

Een front-end is een component die source-code files kan scannen en parsen en aan de hand daarvan graaf-structuren kan bouwen. Modulaire GLR technieken zijn nog niet voor handen en moeten ontwikkeld worden.

Aspect G: documentatie

Documentatie van systemen is vaak achterhaald: Wordt de documentaie apart bijgehouden dan loopt ze achter; wordt ze per component (per functie) bijgehouden dan wordt ze versnipperd. Daarbij moet naar verschillende soorten documentatie gekeken worden: gebruikers documentatie, technische documentatie, on-line hulp, etcetera.

Next Post