$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Het codegeneratieproces van het MAS4SysML-framework wordt samengevat in Supplementair Bestand 1. Het moet worden opgemerkt dat deze studie niet streeft naar het in één keer genereren van een compleet systeemmodel uit natuurlijke taal met strikte cross-view consistentie, inclusief vereisten, structuur, parametriek en gedrag. In plaats daarvan richt het protocol zich op het genereren van verschillende representatieve typen SysML v2 viewcode.
Fase I: Taakanalyse
De workflow begint met taakparsen. Het systeem levert de natuurlijk-taal modelleringsintentie aan de Task Structure Generation Agent, die een task-card set produceert. Om ervoor te zorgen dat volgende generaties uitvoerbaar en reproduceerbaar zijn, moet elke taakkaart minimaal (i) een taakidentificatie, (ii) afhankelijkheidsrelaties en (iii) belangrijke modelleringsinformatie voor validatie bevatten, zoals het modelleerdoel, beperkingen/randvoorwaarden, parameterslots en instantieatiewaarden, en de verwachte output. Deze fase levert task_card_set uit, die dient als de uniforme basis voor de daaropvolgende modelcodegeneratie.
Fase II: Iteratieve codegeneratie
Bij iteratieve generatie initialiseert het systeem de codecontext prev_code naar een lege toestand en genereert code voor elke taakkaart sequentieel volgens een volgorde bepaald door de afhankelijkheidsvelden. Voor elke taakkaart neemt de Code Generatieagent de huidige taakkaart en de contextuele code als invoer om candidate_code te produceren en roept vervolgens onmiddellijk de Syntax Validation Module aan voor controle. De module valideert de code met behulp van de officiële SysML v2 validatieomgeving en geeft diagnostische resultaten terug. Als validatie slaagt, wordt de candidate_code gebruikt om prev_code bij te werken en ondersteunt het de volgende generatie. Als validatie faalt, wordt de Code Repair Agent geactiveerd en voert hij minimale, gerichte bewerkingen uit die worden geleid door de teruggegeven diagnostiek, waarna de herstelde code opnieuw wordt ingediend voor hervalidatie. Deze reparatie-revalidatielus wordt begrensd door het maximale reparatiebudget Kmax. Als validatie binnen het budget slaagt, wordt de passerende versie bijgewerkt prev_code; anders registreert het systeem na Kmax-pogingen de storing en gaat verder met het genereren van de volgende taakkaart, waarbij de laatst gerepareerde versie als prev_code wordt gebruikt om te voorkomen dat de workflow wordt geblokkeerd en de contextuele continuïteit behouden blijft.
Fase III: Semantische validatie
Nadat de code voor alle taakkaarten is gegenereerd, gaat de workflow over naar semantische validatie. De Semantic Validation Agent beoordeelt de consistentie tussen de uiteindelijke code en de modeleringsintentie met behulp van sleutelvelden in task_card_set als referenties en geeft de resultaten van semantische validatie weer terug. Als validatie slaagt, wordt prev_code geaccepteerd als de definitieve SysML v2-modelcode. Anders genereert het systeem een Semantisch Deviatierapport dat onvervulde taakkaartvelden en de vereiste revisiescope identificeert. De Code Repair Agent herziet vervolgens de code en geeft de herziene modelcode als eindresultaat terug.
Modelarchitectuur en methodologie
Modelarchitectuur
Het MAS4SysML-raamwerk, geïllustreerd in Figuur 1, bestaat uit vier samenwerkingsagenten: de taakstructuurgeneratieagent, codegeneratieagent, codereparatieagent en semantische validatieagent. De bijbehorende prompttemplates worden weergegeven in Figuur 2.
De taakstructuurgeneratieagent voert semantische analyses uit van de intentie van de invoermodellering en genereert uitvoerbare, gestructureerde taakkaarten. Eerst past het een hiërarchisch taakontbindingsmechanisme toe (zie hiërarchisch taakontbindingsmechanisme) om het algemene modelleerdoel op te splitsen in taakknopen met goed gedefinieerde semantische grenzen en construeert vervolgens een gestructureerde taakkaart voor elke knoop. Vervolgens worden de taakkaarten geordend volgens hun modelleerafhankelijkheidsvelden om ervoor te zorgen dat de uitvoeringsvolgorde overeenkomt met de uiteindelijke codestructuur, waarmee de basis wordt gelegd voor bottom-up codegeneratie gedreven door het globale modelleringsdoel.
De code generatieagent genereert progressief SysML v2-conforme modelcode volgens de modelafhankelijkheden. Voortbouwend op de code-artefacten die door oudertaken worden geproduceerd, voert de agent de bijbehorende codegeneratiebewerkingen uit op basis van de vereisten die in elke taakkaart zijn gespecificeerd, waardoor een stapsgewijze constructie mogelijk wordt gemaakt—van lokale componenten tot het volledige model.
De code-reparatieagent corrigeert fouten in de gegenereerde code op basis van de resultaten van de syntaxisvalidatiemodule (zie syntaxisvalidatiemodule) en de semantische validatieresultaten. Voor syntactische reparatie maakt het gebruik van het fouttype, de positie en contextuele informatie die door de syntaxisvalidator worden teruggegeven om gerichte reparatiestrategieën te synthetiseren en gecorrigeerde code te genereren. Voor semantische reparatie past het structurele en logische relaties aan volgens de semantische validatieresultaten, waardoor semantische consistentie en structurele volledigheid in het uiteindelijke model worden gegarandeerd.
De semantische validatieagent beoordeelt de semantische consistentie tussen de volledig gegenereerde code en de taakkaarten met behulp van een speciaal semantisch validatiemechanisme (zie semantisch validatiemechanisme). Door kwantitatieve beoordeling wordt ervoor gezorgd dat de gegenereerde code de oorspronkelijke modelleerintentie nauwkeurig weerspiegelt, waardoor een precieze afstemming wordt bereikt tussen de modelcode en de gespecificeerde modelleringsvereisten.
Hiërarchisch taakontledingsmechanisme
Als formele modelleringstaal voor complexe systemen beschikt SysML v2 over strak gekoppelde syntaxis, diep geneste hiërarchische structuren en semantische beperkingen op verschillende niveaus. Een systeemstructuurblok kan bijvoorbeeld meerdere subonderdelen, attributen en poorten bevatten, terwijl tegelijkertijd prestatie- of gedragsvereisten worden uitgesproken via cross-layer beperkingen. Deze structuren en beperkingen creëren top-down structurele afhankelijkheden en bottom-up semantische feedbackrelaties. Met een vlakke, eenmalige generatiebenadering wordt het nauwkeurig in kaart brengen van dergelijke hiërarchische afhankelijkheden uitdagend, wat vaak resulteert in ontbrekende relaties, semantische inconsistenties of verlies van constraint-informatie.
Om deze uitdaging aan te pakken, ontwikkelen we een taakboomgebaseerde methode voor modellering van intentie-parsing die hiërarchisch de vereisten voor natuurlijke taalmodellering opsplitst. Zoals geïllustreerd in Figuur 3, worden complexe modelleerdoelen opgesplitst in gestructureerde en traceerbare taakknooppunten, waardoor het systeem modelleringssemantiek top-down kan interpreteren en afhankelijkheidsrelaties kan identificeren. Specifiek, wanneer de taakstructuurgeneratieagent de gebruikersinvoer ontvangt, maakt hij eerst gebruik van de semantische parsingmogelijkheden van LLM's om kernmodelleringsdoelstellingen, sleutelentiteiten en hun afhankelijkheden te identificeren. Vervolgens ontbindt het het topniveau doel recursief in semantisch onafhankelijke subtaken en verfijnt deze verder tot atomaire taken die direct kunnen worden gekoppeld aan SysML v2-modelleringsoperaties, waardoor uiteindelijk een complete taakstructuurboom ontstaat. Nadat de taakboom is opgebouwd, genereert de agent een gestructureerde taakkaart voor elke taakknoop op basis van een vooraf gedefinieerde template. Het formaat van de taakkaart wordt als volgt gedefinieerd:
TC = {id,O,N,K,P,V,C,D} (1)
Waarbij id de unieke identificatie van de taakknoop is, O het taakdoel, N de natuurtaalbeschrijving van de taak, K de kern SysML v2 semantische elementen aanduidt die bij de taak betrokken kunnen zijn, voornamelijk inclusief vereiste verdediging/vereiste, deel verdediging/deel, port verdediging/port, itemverdediging, attribuut verdediging/attribuut en toestand/transitie. Relaties tussen deze elementen worden voornamelijk uitgedrukt door verbinding (structurele verbindingen), invoer-/uitvoeritems op poorten (informatie-/materiaalstromen), en trigger/guard-condities van toestandsmachineovergangen (bijv. commando's, gezondheidsstatus en drempelbeperkingen), C als de semantische regels of randvoorwaarden, P als de parameteriseerbare slots binnen de taak zoals attribuutnamen, datatypes of samengestelde types, V als de geïnstantieerde waarden voor elke slot en D als de modeleringsafhankelijkheden tussen taken, waarbij depend_on de vereiste uitvoer van andere taken specificeert voordat de huidige taakcode wordt gegenereerd, geeft output aan die na voltooiing van de taak worden geproduceerd en consumes de externe invoer vertegenwoordigt die door de taak nodig zijn.
Syntaxisvalidatiemodule
Een syntaxisvalidatiemodule wordt opgebouwd op basis van de SysML v2 Pilot Implementation. Door zijn parser- en validatorinterfaces aan te roepen, parseert en verifieert de module de syntactische correctheid van de gegenereerde SysML v2-modelcode. De validatiecriteria van de module zijn voornamelijk afgeleid van de SysML v2-taalspecificatie, evenals de grammaticaregels, scope-resolutieregels en gerelateerde constraint-checkingmechanismen die zijn geïmplementeerd in de Pilot-tool. Specifiek onderzoekt de validatie of elementverklaringen goed gevormd zijn, of blokstructuren compleet zijn, of typeannotaties geldig zijn, of namen en referenties succesvol kunnen worden opgelost, en of modelleringsconstructies zoals poorten, verbindingen, toestanden en overgangen voldoen aan de eisen van de taal.
Nadat de codegeneratieagent het codefragment voor de huidige taak heeft geproduceerd, wordt de output doorgestuurd naar de syntaxisvalidatiemodule, waar het validatiescript de code analyseert en de resultaten teruggeeft in de vorm van gestructureerde diagnostische informatie. De validatieresultaten worden als volgt gerapporteerd:
e1 = (typei,pos i,msg i) (2)
Waar ei de lijst van gedetecteerde problemen voor de huidige modelleringstaak aanduidt, waarbij elke vermelding het fouttype type i, foutlocatie posi en het diagnostische bericht msgi bevat.
Als bijvoorbeeld de gegenereerde code een syntaxisfout bevat zoals "een attribuut wordt niet getypeerd door een attribuutdefinitie," geeft de validatiemodule het volgende diagnostische bericht terug:
'type' : 'error'
'message' : 'FOUT: Een attribuut moet worden getypeerd volgens attribuutdefinitie.' (3)
'positie' : 'regel 7 kolom: 3'
Wanneer het validatieresultaat ei 0 ≠ , wordt de verzamelde foutinformatie ei doorgestuurd naar de code-reparatieagent voor verdere correctie. Daarom is het code-reparatieproces geen onbeperkte wijzigingsprocedure, maar een gerichte revisie, geleid door de expliciete diagnostische informatie die door de parser en validator wordt teruggegeven.
Semantisch validatiemechanisme
Het semantische validatiemechanisme gebruikt sleuteltaakkaartvelden die expliciete en traceerbare overeenkomsten met de modelcode hebben als semantische ankers. Het beoordeelt semantische consistentie op modelniveau en biedt daardoor expliciete, bruikbare criteria voor latere modelreparatie. Specifiek worden voor elke taakkaart TCi de volgende velden gebruikt als belangrijke semantische referenties: (i) het modelleerdoel Oi, (ii) semantische beperkingen en randvoorwaarden Ci, (iii) geïnstantieerde parameterslotwaarden Vi, en (iv) verwachte uitvoer na taakvoltooiing Di['lever']. Deze velden leggen complementaire semantische beperkingen op aan het gegenereerde model vanuit meerdere perspectieven: realisatie van modelintentie, voldoening aan beperkingen, consistentie van parameterinstantie en volledigheid van modeluitvoeren—waardoor een principiële beslissing mogelijk is of de modelcode aan de modelvereisten voldoet zonder extra aannames te vereisen.
Op basis van deze sleutelvelden definiëren we een meerveld-semantische consistentiebeslissingsfunctie:
(4)
waarbij I(·) een indicatorfunctie aanduidt die gelijk is aan 1 als alle subbeslissingsfuncties binnen de haakjes gelden, en 0 anders. Deze binaire beslissing maakt expliciet onderscheid tussen de toestanden van het voldoen aan de modeleringsvereisten en het vereisen van verdere reparatie, en biedt een deterministische triggervoorwaarde voor het daaropvolgende semantische reparatieproces. De algehele beslissing wordt gezamenlijk bepaald door de volgende vier subbeslissingsfuncties:
(1) Modellering van objectieve consistentie:
Φ0 (TCi,c f) = I(consist(cf,0 i)) (5)
waarbij Consist(cf,0 i) aangeeft of de modelcode cf semantisch consistent is met het modelleerdoel 0i dat in de taakkaart is gespecificeerd.
(2) Semantische constraint satisfaction:
Φc (TCi,c f) = I(Voldoet aan (cf,C i)) (6)
waarbij Satisfy(cf,C i) aangeeft of de modelcode cf voldoet aan de semantische beperkingen en randvoorwaarden Ci die in de taakkaart zijn gespecificeerd.
(3) Parameterconsistentie:
Φc (TCi,c f) = I(Instant(cf,V i)) (7)
waarbij Instant(cf,V i) aangeeft of de geïnstantieerde parameterwaarden Vi op de taakkaart consistent worden weergegeven in de modelcode.
(4) Outputconsistentie:
(8)
waarbij Artifacts(cj) aangeeft of de door de taakkaart verwachte output aanwezig is in de uiteindelijke modelcode, en dient als maat voor de volledigheid van het gegenereerde resultaat.
Deze consistentieoordelen worden geïmplementeerd door de Semantic Validation Agent door gebruik te maken van de semantische begripscapaciteit van de LLM; Het interne redeneerproces van de agent verandert de formele definitie of het gebruik van de consistentiefunctie niet.
Door deze multi-veld semantische consistentiecontrole kan het gegenereerde model veld voor veld worden gevalideerd om te waarborgen dat elk modeldoel, beperkingsconditie, parameterconfiguratie en verwachte output voldoende wordt vervuld. Dit proces biedt niet alleen een expliciete trigger voor latere semantische reparatie, maar levert ook traceerbaar semantisch bewijs door de hele generatiepijplijn, waardoor de betrouwbaarheid en consistentie van het gegenereerde model verbetert.
Experimentele gegevens en evaluatie
Experimentele gegevens
SysML v2 modelcode is geen gewone softwarecode; de gegenereerde artefacten vertonen kenmerkende kenmerken van formele modellering. Verschillende opvattingen bevatten doorgaans verschillende categorieën van kernmodelleringselementen, zoals eisen, onderdelen, poorten, attributen, toestanden en overgangen, die aanzienlijk verschillen in hun verklaringsstijlen, organisatorische vormen en compositiestructuren. Daarnaast moet de modelcode aan meerdere beperkingen voldoen, waaronder typereferentie, hiërarchische genesing, verbindingsbeperkingen en semantisch hergebruik tussen elementen.
Om de prestaties van de voorgestelde methode onder verschillende modelleringscomplexiteiten volledig te evalueren, wordt een codedataset opgesteld die vijf representatieve modelweergavetypen omvat—eisen, use cases, structuur, parametriek en toestandsmachines. Deze modelweergaven komen respectievelijk overeen met vereistespecificatie, functionele interactie, structurele samenstelling, parametrische constraintrepresentatie en beschrijving van gedragslogica in systeemmodellering. Het afzonderlijk evalueren van het framework op verschillende modelweergavetypes maakt een fijnere analyse mogelijk van de toepasbaarheid onder diverse codestructuurkenmerken en modelbeperkingsvoorwaarden.
Elk modelweergavetype bevat 15 handmatig gemaakte modelinstanties, wat resulteert in een dataset van N = 75 SysML v2-modellen. De dataset beslaat meerdere engineeringdomeinen, waaronder lucht- en ruimtevaart, automotive, medische en slimme huissystemen, en alle modellen hebben met succes de officiële SysML v2-validatieomgeving doorstaan, wat strikte syntactische naleving garandeert.
Vervolgens genereerden we een bijbehorende natuurlijk-taal modelleerintentiebeschrijving voor elk model. Om de bouwefficiëntie te verbeteren, gebruikten we het prompttemplate dat in Supplementary File 2 wordt getoond en gebruikten we GPT-4o om de eerste beschrijvingen te produceren. GPT-4o werd geselecteerd vanwege zijn sterke semantische begrip en informatie-extractiecapaciteiten, waardoor het kernmodelelementen nauwkeurig kan vastleggen zonder hallucinaties en mensachtige modelintentiebeschrijvingen kan genereren9. Om nauwkeurigheid te waarborgen en ambiguïteit te elimineren, werden alle gegenereerde beschrijvingen handmatig beoordeeld en verfijnd door onderzoekers met een achtergrond in systeemengineering. Representatieve voorbeelden voor verschillende modeltypen zijn weergegeven in Tabel 1.
Evaluatiemetrieken
We gebruiken de volgende drie belangrijke metrics om de kwaliteit van de gegenereerde SysML v2-modelcode te evalueren:
Gemiddelde syntactische foutenkans (SER)
Deze metriek kwantificeert het aandeel syntactische fouten dat wordt gedetecteerd wanneer de gegenereerde modelcode wordt gevalideerd aan de hand van de officiële SysML v2-syntaxisregels. Het wordt berekend als:
(9)
waarbij Ei het aantal syntactische fouten aanduidt dat in het i-de gegenereerde model wordt geïdentificeerd. Deze metriek weerspiegelt in hoeverre de gegenereerde modelcode voldoet aan de formele SysML v2-syntaxisspecificatie.
Semantische consistentiescore (SCS)
Deze metriek evalueert hoe nauwkeurig en volledig de gegenereerde modelcode de semantische intentie vastlegt die in de natuurtaalmodelspecificaties wordt uitgedrukt. Specifiek extraheren we semantische eenheden uit de modelintentie—zoals systeementiteiten, deelnemende componenten, kernfuncties of gedragsscenario's, en sleutelvoorwaarden of beperkingen—en vergelijken deze met de semantische eenheden die aanwezig zijn in de gegenereerde modelcode. De semantische consistentie wordt berekend als:
(10)
waarbij U de verzameling semantische eenheden vertegenwoordigt die uit de modelintentie zijn geëxtraheerd, en
de verzameling semantische eenheden die in de gegenereerde code zijn geïdentificeerd.
geeft het aantal eenheden aan dat correct door de gegenereerde modelcode wordt vastgelegd. Een hogere SCS-waarde duidt op een sterkere semantische dekking en uitlijning.
Evaluatie van menselijke kwaliteit
Traditionele geautomatiseerde metrics zoals BLEU en CodeBLEU beoordelen voornamelijk oppervlakkige gelijkenis of code-uitvoerbaarheid, maar ze vangen niet vast of het model de bedoelde modelleringssemantiek echt begrijpt of correct uitdrukt. Deze metrics zijn beperkt in het evalueren van semantische consistentie, volledigheid van sleutelelementen en afstemming met de modelleerintentie10. Daarentegen kan menselijke evaluatie problemen zoals ontbrekende semantische elementen, logische inconsistenties, structurele redundantie of niet-ondersteunde hallucinaties nauwkeuriger identificeren, waardoor een betrouwbaarderebeoordeling wordt opgeleverd. Gemotiveerd door deze beperkingen ontwerpen we een menselijk evaluatiekader voor gegenereerde SysML v2-modellen, bestaande uit drie criteria: (1) Correctheid: het gegenereerde model moet de modelintentie nauwkeurig weerspiegelen, structurele en logische consistentie met de taakdoelstellingen behouden, en geen semantische ambiguïteit, ontbrekende elementen of foutieve uitbreidingen bevatten. (2) Leesbaarheid: de modelcode moet duidelijk en gemakkelijk te begrijpen zijn, met consistente naamgeving, een coherente structuur en een goed georganiseerde hiërarchie die inspectie en daaropvolgend onderhoud ondersteunt. (3) Integriteit: het model moet volledige structurele logica, consistente cross-element referenties en geen ongedefinieerde types of gebroken afhankelijkheidsketens vertonen, zodat het bruikbaar is voor downstream analyse en integratie. We nodigden onderzoekers met ervaring in SysML-modellering uit om elk gegenereerd model te scoren op een schaal van drie punten, waarbij 1 de laagste kwaliteit aanduidt en 3 de hoogste. Tijdens de evaluatie mochten beoordelaars de gegenereerde modelcode vergelijken met het grondwaarheidsmodel om een nauwkeurigere en meer uitgebreide beoordeling te garanderen.
Basislijn
We selecteerden meerdere evaluatiebaselines voor vergelijkend testen met de voorgestelde methode, waaronder:
CodeCoT12: Combineert chain-of-thought redeneren met een zelfcontrolemechanisme, waardoor het model expliciet kan redeneren tijdens het genereren en syntactische fouten zelf kan corrigeren, waardoor de codekwaliteit en semantische consistentie worden verbeterd.
Zelfplanning13: Introduceert een tweefasige codegeneratiepijplijn waarin het model eerst de oplossingsstappen plant en vervolgens code genereert volgens het plan, wat de logische samenhang en interpreteerbaarheid voor complexe taken effectief verbetert.
Zelfbewerking14: Hanteert een iteratief genereer- en bewerkparadigma dat de gegenereerde code uitvoert en automatisch fouten corrigeert op basis van runtime-feedback, waarbij de output continu wordt verfijnd.
CodeChain15: Gebruikt modulaire generatie en iteratieve revisie door complexe taken op te splitsen in onafhankelijke functionele modules en de structurele soliditeit en algehele kwaliteit te verbeteren via meerdere optimalisatierondes.
Zelf-debugging16: Geeft het model autonome debug- en uitlegmogelijkheden. Door een gesloten loopproces van generatie, uitvoering en debugging verbetert het de correctheid van complexe programmeertaken aanzienlijk zonder menselijke tussenkomst.
MapCoder17: Bouwt een meerfasig samenwerkingsraamwerk bestaande uit vier agenten—ophalen, plannen, coderen en debuggen—dat de workflow van menselijke programmering nauwgezet simuleert en gesloten-lus generatie mogelijk maakt van taakbegrip tot resultaatverificatie.
Zelfsamenwerking18: Organiseert het systeem als een virtueel programmeerteam met rollen als analist, programmeur en tester, waarbij de algehele prestaties bij complexe codegeneratie worden verbeterd door rolgebaseerde samenwerking en iteratieve feedback.
Experimentele opstelling
Om eerlijkheid en vergelijkbaarheid tussen experimenten te waarborgen, evalueerden we eerst verschillende gangbare LLM's met een directe codegeneratiebenadering om de basisprestaties vast te stellen. Op basis van deze eerste resultaten werd het best presterende LLM geselecteerd als het uniforme backbone-model voor alle daaropvolgende experimenten. Vervolgens hebben we het voorgestelde MAS4SysML-framework vergeleken met meerdere methoden voor representatieve codegeneratie. Alle LLM-interacties werden uitgevoerd met een vaste temperatuurinstelling (T = 0,2) om willekeur tijdens de generatie te minimaliseren. Voor elke modelleertaak werd het maximale aantal reparatieiteraties in MAS4SysML ingesteld op Kmax = 3. Alle basismethoden werden uitgevoerd onder dezelfde experimentele configuratie als MAS4SysML om resultaatconsistentie en experimentele eerlijkheid te waarborgen. Het Python-script van de MAS4SysML-methode wordt geleverd als Supplementair Bestand 3.