Attendee James Ivers: This brings back memories…Software Through Pictures, Rational Rose. There's always been a challenge with modeling languages around how well they fit what you're actually trying to model. UML has been an awkward fit for a lot of architectural solutions; it fits well for object-oriented design but has struggled elsewhere. AADL is a good example of a domain-specific language aimed at safety-critical systems. It has the right vocabulary and concepts for that kind of work, and that specificity has been a real point of leverage.
There is work at the SEI right now connecting AADL with SysML v2, which moves us toward a more well-sustained tool base using languages people are more familiar with. There is also work on using generative AI to generate SysML models from textual descriptions.
But this isn't magic; there are significant gaps. It's relatively easy, with some MCP servers and integration work, to get AI to produce syntactically well-formed SysML descriptions. But that doesn't mean those models are semantically capturing your intent, or that the intent you're describing actually matches what's in the code. Those abstraction gaps are still hard to close. Generating architectural models from existing source code has been a thorny problem for thirty years, and AI is a new tool that helps with some aspects of it more quickly; but it remains highly interactive.
We've been working with an Army system where we, as engineers, had to first understand the key architectural concepts like shared memory, sockets, and how they're used differently in that particular system. Once we had that understanding, we were able to write scripts that quickly distilled the relevant information. Now we have the beginnings of a knowledge graph that brings different sources of information together and gives us a more reliable, higher-level understanding than AI alone could provide from textual descriptions.
One more caution on legacy code and AI: be wary of names. Older systems - legacy COBOL, for example - often have obfuscated variable and function names. A program with meaningful names gives AI far more to work with than one with cryptic identifiers, because inferring semantics from names is a significant part of what a language model does. Keep that in mind when evaluating the results, and use them with care.