[go: up one dir, main page]

WO2026000006A1 - Method for functional analysis of a source system - Google Patents

Method for functional analysis of a source system

Info

Publication number
WO2026000006A1
WO2026000006A1 PCT/AT2025/060255 AT2025060255W WO2026000006A1 WO 2026000006 A1 WO2026000006 A1 WO 2026000006A1 AT 2025060255 W AT2025060255 W AT 2025060255W WO 2026000006 A1 WO2026000006 A1 WO 2026000006A1
Authority
WO
WIPO (PCT)
Prior art keywords
language
syntax
embedding
embeddings
query
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/AT2025/060255
Other languages
German (de)
French (fr)
Inventor
Florian SCHNITZHOFER
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sysparency GmbH
Original Assignee
Sysparency GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sysparency GmbH filed Critical Sysparency GmbH
Publication of WO2026000006A1 publication Critical patent/WO2026000006A1/en
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/74Reverse engineering; Extracting design information from source code

Definitions

  • the invention relates to a method for functional analysis of a source system, wherein a syntax tree model is generated from the program code data of the source system.
  • US20240020116A1 discloses a method for generating natural language elements based on program code data of a system.
  • a machine learning model is trained using program code data with known functionality and natural language elements associated with this program code data, after which natural language elements are generated from unknown program code data. Based on these result elements Summaries, code documentation, and translations can be created using a large language model. Additionally, program code data can be generated from a natural language query.
  • a disadvantage of this method is that only language elements with a known function can be recognized.
  • the invention is therefore based on the objective of proposing a method for the functional analysis of a source system of the type described above, in particular with extensive program code data, which makes it possible to better identify related functional units and to improve further processing by a large language model while maintaining high result quality and simultaneously requiring low resources.
  • the invention solves the stated problem by using a syntax analysis unit to generate a syntax embedding model by decomposing the syntax tree model into individual syntax element embeddings, each representing a syntax element, and storing them in a syntax embedding model memory; and by using a language analysis unit to generate a language embedding model by decomposing the program code data into individual language element embeddings, each representing a language element, and storing them in a language embedding model memory; after which a query unit retrieves a functional element from the source system.
  • At least one query embedding is created, and those syntax element embeddings and language element embeddings that lie within a predefined similarity range to the query embedding are retrieved from the syntax element embedding model memory and the language element embedding model memory.
  • the syntax elements and language elements represented by these retrieved embeddings are then passed as result elements to an output unit, which generates and outputs a function description record.
  • the query unit can preferably generate two query embeddings from the query, one for the language embedding model and one for the syntax embedding model. This is particularly necessary when the dimensions of the embedding models differ.
  • Key-value mappings which assign syntax and language elements to individual keys, can be used as the simplest embedding models.
  • Vector space models can also be used as embedding models, so that the language and syntax element embeddings are accordingly implemented as language and syntax element vectors.
  • the query embeddings can be implemented as query vectors, where the dimension of a first query vector corresponds to the dimension of the language vector space and the dimension of a second query vector corresponds to the dimension of the syntax vector space.
  • graph embedding models can also be used as embedding models, which define individual syntax and language elements via their relationships to other syntax and language elements.
  • the similarity range in particular the distance between the language and syntax element embeddings on the one hand and the respective query embeddings on the other, can be determined, especially in the embodiment of vector space models, for example, by their cosine similarity.
  • other similarity measures such as the Jaro-Winkler distance, the Levenshtein distance, or the Jaccard index, can be used to determine those language and syntax element embeddings that lie within a predefined similarity range to the query embeddings.
  • the similarity range can also be determined, for example, by specifying a number of syntax or language element embeddings ranked in ascending order according to their distance to the respective query embedding.
  • the program code data can include both functional commands in a programming language and documentation in natural language.
  • the program code data can be retrieved from the source system.
  • the documentation data of the source system be decomposed by the language analysis unit into individual language element embeddings, each representing a language element. These embeddings are then added to the language embedding model and stored in the language embedding model memory. This enriches the language element embeddings already present in the language embedding model memory and assignable to individual program code sections with additional information. This additional information is not derived from the program code data itself, but from other documentation data, such as specifications, project documentation, case management system data, or manuals.
  • the output unit can generate an inference dataset for a large language model from the result elements and pass it to an inference platform, after which the inference response is output as a function description dataset.
  • This has the advantage that a relatively small, yet highly specific inference dataset can be generated from the result elements, preventing potential hallucinations arising from the large language model.
  • This allows the respective inference platform to be used more reliably to reduce the level of abstraction of the result elements and to resolve potential contradictions or fill gaps using generally available information.
  • the inference dataset allows the inference response to be adapted as a function description dataset to a target system that may differ in its architecture from the source system.
  • Generative pretrained transformers (GPTs) for example, can be used as large language models.
  • the syntax tree model be programming language-independent, in particular a Generic Abstract Syntax Tree Metamodel (GASTM).
  • GASTM Generic Abstract Syntax Tree Metamodel
  • a syntax element can comprise one or more nodes of the syntax tree model, which preferably form functional relationships or a functional unit.
  • a complete mapping of functions relevant to the source system can be achieved if a generator unit selects function elements of the source system from the syntax tree model based on predefined rules and generates a query for each function element to be passed to the query unit.
  • the individual function elements of the source system are systematically selected from the syntax tree based on their syntax elements.
  • a syntax tree model is selected, whereby the predefined rules can be based, for example, on specific flow patterns in call and stack tracing or on other syntactic relationships. The use of such rules makes it possible to analyze different source systems according to a common system with regard to their function and to generate function description data records for the individual function elements.
  • the inventive method can improve simple porting between different system architectures if the function description data sets include program code data for a target system whose architecture differs from that of the source system. Due to these features, the output unit provides a function description data set in a machine-readable language, which is preferably directly executable on the target system and stored in a program code memory of the target system. For this purpose, the program code data contained in the function description data set can be transferred to the target system.
  • the invention is illustrated in the drawing, for example, in a schematic block diagram.
  • a method according to the invention comprises a source system 1, from whose program code data a syntax tree model 3 is generated using a syntax tree generator 2.
  • a syntax tree model 3 By decomposing the syntax tree model 3, several syntax element embeddings 5, each representing a syntax element, can be generated by a syntax analysis unit 4, which are then stored in a Syntax embedding models are stored in a syntax embedding model memory 6.
  • language element embeddings 9 can be generated in a language analysis unit 8 from both the program code data of the source system 1 and from documentation data 7 of the source system 1 that is available in natural language, and these are stored in a language embedding model in a language embedding model memory 10.
  • query embeddings 13 can be generated in a query unit 12, the dimension of which in a preferred embodiment corresponds to the dimension of the language or
  • syntax embedding model This corresponds to the syntax embedding model. From the syntax embedding model memory 6 and the language embedding model memory 10, those syntax element embeddings 5 and language element embeddings 9 that lie within a predefined similarity range, in particular at a predefined distance, to the query embeddings 13 are then retrieved and passed as result elements 14 to an output unit 15. In the output unit 15, a function description data record 16 is then generated from the result elements 14.
  • the output unit 15 can first generate an inference data set 17 for a large language model from the received result elements 14 and transfer it to an inference platform 18.
  • the inference response 19 can then be used in the output unit 15 to create the function description data set 16, in particular to form the function description data set 16.
  • the query 11 can be created in a generator unit 20 based on the functional elements of the syntax tree model 3.
  • the functional description data set 16 resulting from the procedure can include program code data for a target system 21 whose architecture differs from that of the source system 1. ⁇

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

The invention relates to a method for functional analysis of a source system (1), wherein a syntax tree model (3) is generated from the program code data of the source system (1). In order to propose a method for functional analysis of a source system (1), in particular with extensive program code data, which method makes it possible to better identify interrelated functional units and, with high result quality and at the same time low resource requirements, to improve further processing by means of a large language model, the invention provides that a syntax analysis unit (4) generates a syntax embedding model by decomposing the syntax tree model (3) into individual syntax element embeddings (5), each representing a syntax element, and stores said syntax embedding model in a syntax embedding model memory (6), and that a language analysis unit (8) generates a language embedding model by decomposing the program code data into individual language element embeddings (9), each representing a language element, and stores said language embedding model in a language embedding model memory (10), whereupon, by means of a query unit (12), at least one query embedding (13) is generated from a query (11) representing a functional element of the source system (1) and those syntax element embeddings (5) and language element embeddings (9) which lie within a predefined range of similarity to the query embedding (13) are retrieved from the syntax embedding model memory (6) and the language embedding model memory (10), whereupon the syntax elements represented by the retrieved syntax element embeddings (5) and the language elements represented by the retrieved language element embeddings (9) are transferred as result elements (14) to an output unit (15), which generates therefrom a functional description dataset (16) and outputs the latter.

Description

Verfahren zur eines Procedures for one

Technisches Gebiet Technical field

Die Erfindung bezieht sich auf ein Verfahren zur Funktionsanalyse eines Quellsystems, wobei aus den Programmcodedaten des Quellsystems ein Syntaxbaummodell erzeugt wird. The invention relates to a method for functional analysis of a source system, wherein a syntax tree model is generated from the program code data of the source system.

Stand der Technik State of the art

Zur automatischen Funktionsanalyse von computerimplementierten Systemen ist es beispielsweise aus der US20220261241A1 bekannt, aus den Programmcodedaten eines Systems einen Syntaxbaum zu erstellen und mithilfe eines neuronalen Netzwerkes einen Funktionsbeschreibungstext in natürlicher Sprache zu erzeugen. Das neuronale Netzwerk wird dabei sowohl anhand bekannter Spezifikationen der eingesetzten Programmiersprache als auch anhand eines Trainingssets von open-source Programmcodedatenbanken trainiert. Nachteilig an einem derartigen Verfahren ist, dass die aus dem Syntaxbaum ableitbaren Informationen bestehende Dokumentation nicht berücksichtigen, inhaltlich zusammenhängende Funktionselemente nur unzureichend erkannt und der Funktionsbeschreibungstext in natürlicher Sprache nur einen geringen Abstraktionsgrad erreicht, sodass eine manuelle Analyse des Programmcodes vielfach erforderlich ist. For the automated functional analysis of computer-implemented systems, it is known, for example, from US20220261241A1, to create a syntax tree from the system's program code data and to generate a function description text in natural language using a neural network. The neural network is trained using both known specifications of the programming language employed and a training set of open-source program code databases. A disadvantage of such a method is that it does not consider the documentation derived from the syntax tree, recognizes related functional elements only inadequately, and the function description text in natural language achieves only a low level of abstraction, so that manual analysis of the program code is often necessary.

Die US20240020116A1 zeigt ein Verfahren zur Erzeugung natürlicher Sprachelemente basierend auf Programmcodedaten eines Systems. Ein Modell für maschinelles Lernen wird dabei mithilfe von Programmcodedaten mit bekannter Funktion und diesen Programmcodedaten zugeordneten natürlichen Sprachelementen trainiert, wonach natürliche Sprachelemente aus unbekannten Programmcodedaten generiert werden. Auf Basis dieser Ergebniselemente können mithilfe eines großen Sprachmodells Zusammenfassungen, Code Dokumentation oder Übersetzungen erstellt werden. Zusätzlich können aus einer Abfrage in natürlicher Sprache Programmcodedaten generiert werden. Nachteilig an diesem Verfahren ist, dass ausschließlich Sprachelemente mit vorbekannter Funktion erkannt werden können. US20240020116A1 discloses a method for generating natural language elements based on program code data of a system. A machine learning model is trained using program code data with known functionality and natural language elements associated with this program code data, after which natural language elements are generated from unknown program code data. Based on these result elements Summaries, code documentation, and translations can be created using a large language model. Additionally, program code data can be generated from a natural language query. A disadvantage of this method is that only language elements with a known function can be recognized.

Darüber hinaus wurde bereits vorgeschlagen, eine Funktionsanalyse von Programmcodedaten direkt durch Inferenz mit einem großen Sprachmodell zu erzeugen. Nachteilig daran sind allerdings einerseits die limitierte Größe des Inferenzdatensatzes und andererseits die für große Sprachmodelle typischen Halluzinationen sowie Ungenauigkeiten in der Funktionsbeschreibung, die die Funktionsanalyse von Quellsystemen mit umfangreichen Programmcodedaten unmöglich machen. Furthermore, it has already been proposed to generate a functional analysis of program code data directly through inference with a large language model. However, disadvantages of this approach include, on the one hand, the limited size of the inference dataset and, on the other hand, the hallucinations and inaccuracies in the functional description typical of large language models, which make the functional analysis of source systems with extensive program code data impossible.

Darstellung der Erfindung Description of the invention

Der Erfindung liegt somit die Aufgabe zugrunde, ein Verfahren zur Funktionsanalyse eines Quellsystems der eingangs beschriebenen Art, insbesondere mit umfangreichen Programmcodedaten, vorzuschlagen, welches es ermöglicht, zusammenhängende Funktionseinheiten besser zu erkennen und bei hoher Ergebnisqualität und gleichzeitig geringen Ressourcenanforderungen die Weiterverarbeitung durch ein großes Sprachmodell zu verbessern. The invention is therefore based on the objective of proposing a method for the functional analysis of a source system of the type described above, in particular with extensive program code data, which makes it possible to better identify related functional units and to improve further processing by a large language model while maintaining high result quality and simultaneously requiring low resources.

Die Erfindung löst die gestellte Aufgabe dadurch, dass durch eine Syntaxanalyseeinheit ein Syntaxeinbettungsmodell durch Zerlegen des Syntaxbaummodells in einzelne, je ein Syntaxelement repräsentierende Syntaxelementeinbettungen erzeugt und in einem Syntaxeinbettungsmodellspeicher abgelegt wird und dass durch eine Sprachanalyseeinheit ein Spracheinbettungsmodell durch Zerlegen der Programmcodedaten in einzelne, je ein Sprachelement repräsentierende Sprachelementeinbettungen erzeugt und in einem Spracheinbettungsmodellspeicher abgelegt wird, wonach durch eine Abfrageeinheit aus einer, ein Funktionselement des Quellsystems repräsentierenden Abfrage wenigstens eine Abfrageeinbettung erzeugt und aus dem Syntaxeinbettungsmodellspeicher und dem Spracheinbettungsmodellspeicher jene Syntaxelementeinbettungen und Sprachelementeinbettungen abgerufen werden, die innerhalb eines vorgegebenen Ähnlichkeitsbereiches zur Abfrageeinbettung liegen, wonach die durch die abgerufenen Syntaxelementeinbettungen repräsentierten Syntaxelemente und die durch die abgerufenen Sprachelementeinbettungen repräsentierten Sprachelemente als Ergebniselemente einer Ausgabeeinheit übergeben werden, die daraus einen Funktionsbeschreibungsdatensatz erzeugt und ausgibt. Zufolge dieser Maßnahmen können auch sehr umfangreiche Programmcodedaten sowohl hinsichtlich der Programmlogik als auch hinsichtlich etwaiger im Programmcode enthaltener Kommentare und Dokumentationen in natürlicher Sprache in kleinere Funktionselemente zerlegt werden, wobei die Ergebniselemente die Aspekte des jeweiligen Funktionselementes selbst bei verteilten Programmcodeteilen so umfangreich charakterisieren, dass trotz reduziertem Ressourcenverbrauch ein vollständiger Funktionsbeschreibungsdatensatz erzeugt werden kann. Die Abfrageeinheit kann aus der Abfrage vorzugsweise zwei Abfrageeinbettungen erzeugen, wobei je eine Abfrageeinbettung für das Spracheinbettungsmodell und eine Abfrageeinbettung für das Syntaxeinbettungsmodell vorgesehen sein kann. Dies ist insbesondere dann erforderlich, wenn die Dimensionen der Einbettungsmodelle voneinander abweichen. Als Einbettungsmodelle können in einfachster Weise Schlüssel-Wert Zuordnungen vorgesehen sein, die Syntax- und Sprachelemente einzelnen Schlüsseln zuweisen. Als Einbettungsmodelle können auch Vektorraummodelle eingesetzt werden, sodass die Sprach- und Syntaxelementeinbettungen dementsprechend als Sprach- und Syntaxelementvektoren erfolgen. Im Fall von Vektorraummodellen als Einbettungsmodelle können die Abfrageeinbettungen als Abfragevektoren vorgesehen sein, wobei die Dimension eines ersten Abfragevektors der Dimension des Sprachvektorraumes entspricht und die Dimension eines zweiten Abfragevektors der Dimension des Syntaxvektorraumes entspricht. Schließlich können als Einbettungsmodelle auch Grapheinbettungsmodelle eingesetzt werden, die einzelne Syntax- und Sprachelemente über ihre Beziehungen zu anderen Syntax- und Sprachelementen abbilden. Der Ähnlichkeitsbereich, insbesondere der Abstand zwischen den Sprach- und Syntaxelementeinbettungen auf der einen und den jeweiligen Abfrageeinbettungen auf der anderen Seite, kann insbesondere in der Ausführungsform von Vektorraummodellen beispielsweise durch deren Kosinus- Ähnlichkeit bestimmt werden. Alternativ können andere Ähnlichkeitsmaße wie beispielsweise die Jaro-Winkler Distanz, die Levenshtein Distanz oder der Jaccard Index zur Bestimmung derjenigen Sprach- und Syntaxelementeinbettungen, die innerhalb eines vorgegebenen Ähnlichkeitsbereichs zu den Abfrageeinbettungen liegen, herangezogen werden. Der Ähnlichkeitsbereich kann beispielsweise auch dadurch bestimmt werden, dass eine Anzahl von nach Ihrer Distanz zur jeweiligen Abfrageeinbettung aufsteigend gereihter Syntax- bzw. Sprachelementeinbettungen vorgeben wird. Die Programmcodedaten können sowohl funktionale Befehle in einer Programmiersprache als auch Dokumentation in natürlicher Sprache umfassen. Die Programmcodedaten können vom Quellsystem abgerufen werden. The invention solves the stated problem by using a syntax analysis unit to generate a syntax embedding model by decomposing the syntax tree model into individual syntax element embeddings, each representing a syntax element, and storing them in a syntax embedding model memory; and by using a language analysis unit to generate a language embedding model by decomposing the program code data into individual language element embeddings, each representing a language element, and storing them in a language embedding model memory; after which a query unit retrieves a functional element from the source system. For each query representing the query, at least one query embedding is created, and those syntax element embeddings and language element embeddings that lie within a predefined similarity range to the query embedding are retrieved from the syntax element embedding model memory and the language element embedding model memory. The syntax elements and language elements represented by these retrieved embeddings are then passed as result elements to an output unit, which generates and outputs a function description record. As a result of these measures, even very large program code data, with regard to both program logic and any comments and documentation in natural language contained within the program code, can be decomposed into smaller function elements. The result elements characterize the aspects of the respective function element so comprehensively, even in distributed program code segments, that a complete function description record can be generated despite reduced resource consumption. The query unit can preferably generate two query embeddings from the query, one for the language embedding model and one for the syntax embedding model. This is particularly necessary when the dimensions of the embedding models differ. Key-value mappings, which assign syntax and language elements to individual keys, can be used as the simplest embedding models. Vector space models can also be used as embedding models, so that the language and syntax element embeddings are accordingly implemented as language and syntax element vectors. In the case of vector space models as embedding models, the query embeddings can be implemented as query vectors, where the dimension of a first query vector corresponds to the dimension of the language vector space and the dimension of a second query vector corresponds to the dimension of the syntax vector space. Finally, graph embedding models can also be used as embedding models, which define individual syntax and language elements via their relationships to other syntax and language elements. The similarity range, in particular the distance between the language and syntax element embeddings on the one hand and the respective query embeddings on the other, can be determined, especially in the embodiment of vector space models, for example, by their cosine similarity. Alternatively, other similarity measures, such as the Jaro-Winkler distance, the Levenshtein distance, or the Jaccard index, can be used to determine those language and syntax element embeddings that lie within a predefined similarity range to the query embeddings. The similarity range can also be determined, for example, by specifying a number of syntax or language element embeddings ranked in ascending order according to their distance to the respective query embedding. The program code data can include both functional commands in a programming language and documentation in natural language. The program code data can be retrieved from the source system.

Um trotz unvollständig dokumentierter Programmcodedaten und über die reinen Programmcodedaten hinausgehender Architekturkonzepte einen vollständigen Funktionsbeschreibungsdatensatz erzeugen zu können, wird vorgeschlagen, dass zumindest abschnittsweise in natürlicher Sprache vorliegende Dokumentationsdaten des Quellsystems durch die Sprachanalyseeinheit in einzelne, je ein Sprachelement repräsentierende Sprachelementeinbettungen zerlegt werden, die dem Spracheinbettungsmodell hinzugefügt und im Spracheinbettungsmodellspeicher abgelegt werden. Dadurch werden die bereits im Spracheinbettungsmodellspeicher vorhandenen und einzelnen Programmcodestellen zuordenbare Sprachelementeinbettungen um zusätzliche Informationen angereichert, die sich zwar nicht aus den Programmcodedaten selbst, aber durch andere Dokumentationsdaten, wie beispielsweise Lasten- oder Pflichtenheften, Projektdokumentation, Fallbearbeitungssystemdaten oder Handbüchern ergeben. To generate a complete functional description dataset despite incompletely documented program code data and architectural concepts extending beyond the pure program code data, it is proposed that the documentation data of the source system, at least partially available in natural language, be decomposed by the language analysis unit into individual language element embeddings, each representing a language element. These embeddings are then added to the language embedding model and stored in the language embedding model memory. This enriches the language element embeddings already present in the language embedding model memory and assignable to individual program code sections with additional information. This additional information is not derived from the program code data itself, but from other documentation data, such as specifications, project documentation, case management system data, or manuals.

Um einerseits mögliche Lücken in den Syntax- und Sprachelementen, welche alsTo address potential gaps in the syntax and language elements, which are considered

Ergebniselemente an die Ausgabeeinheit übergeben werden, zu füllen und andererseits zu exakte oder widersprüchliche Informationen aufzulösen, kann die Ausgabeeinheit aus den Ergebniselementen einen Inferenzdatensatz für ein großes Sprachmodell erzeugen und einer Inferenzplattform übergeben, wonach die Inferenzantwort als Funktionsbeschreibungsdatensatz ausgegeben wird. Dies bringt den Vorteil mit sich, dass anhand der Ergebniselemente ein zwar verhältnismäßig kleiner, aber doch sehr spezifischer Inferenzdatensatz erzeugt werden kann, der möglichen, sich aus dem großen Sprachmodell ergebenden Halluzinationen vorbeugt. Dadurch kann die jeweilige Inferenzplattform auf zuverlässigere Weise dazu eingesetzt werden, den Abstraktionsgrad der Ergebniselemente zu verringern sowie mögliche Widersprüche anhand allgemein verfügbarer Informationen aufzulösen oder Lücken hierdurch zu füllen. Weiters kann durch den Inferenzdatensatz die Inferenzantwort als Funktionsbeschreibungsdatensatz an ein mögliches vom Quellsystem in seiner Architektur abweichendes Zielsystem angepasst werden. Als große Sprachmodelle können beispielsweise generative vortrainierte Transformer (GPT) eingesetzt werden. Result elements are passed to the output unit, to be filled and On the other hand, to resolve overly precise or contradictory information, the output unit can generate an inference dataset for a large language model from the result elements and pass it to an inference platform, after which the inference response is output as a function description dataset. This has the advantage that a relatively small, yet highly specific inference dataset can be generated from the result elements, preventing potential hallucinations arising from the large language model. This allows the respective inference platform to be used more reliably to reduce the level of abstraction of the result elements and to resolve potential contradictions or fill gaps using generally available information. Furthermore, the inference dataset allows the inference response to be adapted as a function description dataset to a target system that may differ in its architecture from the source system. Generative pretrained transformers (GPTs), for example, can be used as large language models.

Um die Anwendbarkeit des erfindungsgemäßen Verfahrens auf unterschiedliche Quellsysteme zu ermöglichen, wird vorgeschlagen, dass das Syntaxbaummodell programmierspracheunabhängig, insbesondere ein Generisches Abstraktes Syntaxbaum-Metamodell (GASTM) ist. Dies hat den Vorteil, dass das Syntaxbaummodell und damit auch der Syntaxeinbettungsmodellspeicher unabhängig von der verwendeten Programmiersprache aufgebaut und weiterverwendet werden kann. Ein Syntaxelement kann ein oder mehrere Knoten des Syntaxbaummodells umfassen, die vorzugsweise funktionell Zusammenhängen bzw. eine funktionale Einheit bilden. To enable the applicability of the method according to the invention to different source systems, it is proposed that the syntax tree model be programming language-independent, in particular a Generic Abstract Syntax Tree Metamodel (GASTM). This has the advantage that the syntax tree model, and thus also the syntax embedding model memory, can be constructed and reused independently of the programming language used. A syntax element can comprise one or more nodes of the syntax tree model, which preferably form functional relationships or a functional unit.

Eine vollständige Abbildung für das Quellsystem relevanter Funktionen kann erreicht werden, wenn eine Generatoreinheit aus dem Syntaxbaummodell Funktionselemente des Quellsystems anhand vorgegebener Regeln auswählt und je Funktionselement eine Abfrage zur Übergabe an die Abfrageeinheit erzeugt. Zufolge dieser Maßnahmen werden die einzelnen Funktionselemente des Quellsystems aufgrund ihrer Syntaxelemente systematisch aus dem Syntaxbaummodell ausgewählt, wobei die vorgebbaren Regeln beispielsweise auf bestimmten Ablaufmustern in der Aufruf- und Stapelverfolgung oder auf anderen syntaktischen Zusammenhängen beruhen können. Der Einsatz solcher Regeln ermöglicht es, unterschiedliche Quellsysteme einer gemeinsamen Systematik folgend hinsichtlich ihrer Funktion zu analysieren und für die einzelnen Funktionselemente Funktionsbeschreibungsdatensätze zu erzeugen. A complete mapping of functions relevant to the source system can be achieved if a generator unit selects function elements of the source system from the syntax tree model based on predefined rules and generates a query for each function element to be passed to the query unit. As a result of these measures, the individual function elements of the source system are systematically selected from the syntax tree based on their syntax elements. A syntax tree model is selected, whereby the predefined rules can be based, for example, on specific flow patterns in call and stack tracing or on other syntactic relationships. The use of such rules makes it possible to analyze different source systems according to a common system with regard to their function and to generate function description data records for the individual function elements.

Obwohl es grundsätzlich ausreichend sein kann, in einer bevorzugten Ausführungsform im Funktionsbeschreibungsdatensatz maschinenlesbare Informationen in einer Auszeichnungssprache vorzusehen, kann eine einfache Portierung zwischen verschiedenen Systemarchitekturen mithilfe des erfindungsgemäßen Verfahrens verbessert werden, wenn die Funktionsbeschreibungsdatensätze Programmcodedaten für ein vom Quellsystem in seiner Architektur abweichendes Zielsystem umfassen. Zufolge dieser Merkmale wird durch die Ausgabeeinheit ein Funktionsbeschreibungsdatensatz in einer maschinenlesbaren Sprache zur Verfügung gestellt, welcher vorzugsweise direkt auf dem Zielsystem ausführbar ist und in einem Programmcodespeicher des Zielsystems abgelegt wird. Zu diesem Zweck können die im Funktionsbeschreibungsdatensatz enthaltenen Programmcodedaten an das Zielsystem übertragen werden. Although it may generally be sufficient in a preferred embodiment to provide machine-readable information in a markup language within the function description data set, the inventive method can improve simple porting between different system architectures if the function description data sets include program code data for a target system whose architecture differs from that of the source system. Due to these features, the output unit provides a function description data set in a machine-readable language, which is preferably directly executable on the target system and stored in a program code memory of the target system. For this purpose, the program code data contained in the function description data set can be transferred to the target system.

Kurze Beschreibung der Erfindung Brief description of the invention

In der Zeichnung ist der Erfindungsgegenstand beispielsweise dargestellt, und zwar in einem schematischen Blockdiagramm. The invention is illustrated in the drawing, for example, in a schematic block diagram.

Wege zur Ausführung der Erfindung Ways to implement the invention

Ein erfindungsgemäßes Verfahren umfasst ein Quellsystem 1 , aus dessen Programmcodedaten mithilfe eines Syntaxbaumgenerators 2 ein Syntaxbaummodell 3 erzeugt wird. Durch Zerlegung des Syntaxbaummodells 3 können durch eine Syntaxanalyseeinheit 4 mehrere, je ein Syntaxelement repräsentierende Syntaxelementeinbettungen 5 erzeugt werden, welche in einem Syntaxeinbettungsmodell in einem Syntaxeinbettungsmodellspeicher 6 abgelegt werden. Parallel können sowohl aus den Programmcodedaten des Quellsystems 1 als auch aus in natürlicher Sprache vorliegenden Dokumentationsdaten 7 des Quellsystems 1 in einer Sprachanalyseeinheit 8 Sprachelementeinbettungen 9 generiert werden, welche in einem Spracheinbettungsmodell in einem Spracheinbettungsmodellspeicher 10 abgelegt werden. A method according to the invention comprises a source system 1, from whose program code data a syntax tree model 3 is generated using a syntax tree generator 2. By decomposing the syntax tree model 3, several syntax element embeddings 5, each representing a syntax element, can be generated by a syntax analysis unit 4, which are then stored in a Syntax embedding models are stored in a syntax embedding model memory 6. In parallel, language element embeddings 9 can be generated in a language analysis unit 8 from both the program code data of the source system 1 and from documentation data 7 of the source system 1 that is available in natural language, and these are stored in a language embedding model in a language embedding model memory 10.

Basierend auf einer Abfrage 11 können in einer Abfrageeinheit 12 mehrere Abfrageeinbettungen 13 erzeugt werden, deren Dimension in einer bevorzugten Ausführungsform jeweils der Dimension des Sprach- bzw. Based on a query 11, several query embeddings 13 can be generated in a query unit 12, the dimension of which in a preferred embodiment corresponds to the dimension of the language or

Syntaxeinbettungsmodells entspricht. Aus dem Syntaxeinbettungsmodellspeicher 6 und dem Spracheinbettungsmodellspeicher 10 werden anschließend diejenigen Syntaxelementeinbettungen 5 und Sprachelementeinbettungen 9, welche innerhalb eines vorgegebenen Ähnlichkeitsbereichs, insbesondere in einem vorgegebenen Abstand, zu den Abfrageeinbettungen 13 liegen, abgerufen und als Ergebniselemente 14 an eine Ausgabeeinheit 15 übergeben. In der Ausgabeeinheit 15 wird daraufhin aus den Ergebniselementen 14 ein Funktionsbeschreibungsdatensatz 16 erzeugt. This corresponds to the syntax embedding model. From the syntax embedding model memory 6 and the language embedding model memory 10, those syntax element embeddings 5 and language element embeddings 9 that lie within a predefined similarity range, in particular at a predefined distance, to the query embeddings 13 are then retrieved and passed as result elements 14 to an output unit 15. In the output unit 15, a function description data record 16 is then generated from the result elements 14.

Vorzugsweise kann die Ausgabeeinheit 15 aus den erhaltenen Ergebniselementen 14 vorerst einen Inferenzdatensatz 17 für ein großes Sprachmodell generieren und einer Inferenzplattform 18 übergeben. Die Inferenzantwort 19 kann schließlich in der Ausgabeeinheit 15 zur Erstellung des Funktionsbeschreibungsdatensatzes 16 dienen, insbesondere den Funktionsbeschreibungsdatensatz 16 bilden. Preferably, the output unit 15 can first generate an inference data set 17 for a large language model from the received result elements 14 and transfer it to an inference platform 18. The inference response 19 can then be used in the output unit 15 to create the function description data set 16, in particular to form the function description data set 16.

In der gezeigten Ausführungsform kann die Abfrage 11 in einer Generatoreinheit 20 auf Basis der Funktionselemente des Syntaxbaummodells 3 erstellt werden. In the embodiment shown, the query 11 can be created in a generator unit 20 based on the functional elements of the syntax tree model 3.

Der aus dem Verfahren resultierende Funktionsbeschreibungsdatensatz 16 kann Programmcodedaten für ein vom Quellsystem 1 in seiner Architektur abweichendes Zielsystem 21 umfassen. The functional description data set 16 resulting from the procedure can include program code data for a target system 21 whose architecture differs from that of the source system 1. ```

Claims

Patentansprüche Patent claims 1. Verfahren zur Funktionsanalyse eines Quellsystems (1), wobei aus den Programmcodedaten des Quellsystems (1) ein Syntaxbaummodell (3) erzeugt wird, dadurch gekennzeichnet, dass durch eine Syntaxanalyseeinheit (4) ein Syntaxeinbettungsmodell durch Zerlegen des Syntaxbaummodells (3) in einzelne, je ein Syntaxelement repräsentierende Syntaxelementeinbettungen (5) erzeugt und in einem Syntaxeinbettungsmodellspeicher (6) abgelegt wird und dass durch eine Sprachanalyseeinheit (8) ein Spracheinbettungsmodell durch Zerlegen der Programmcodedaten in einzelne, je ein Sprachelement repräsentierende Sprachelementeinbettungen (9) erzeugt und in einem Spracheinbettungsmodellspeicher (10) abgelegt wird, wonach durch eine Abfrageeinheit (12) aus einer, ein Funktionselement des Quellsystems (1) repräsentierenden Abfrage (11) wenigstens eine Abfrageeinbettung (13) erzeugt und aus dem Syntaxeinbettungsmodellspeicher (6) und dem Spracheinbettungsmodellspeicher (10) jene Syntaxelementeinbettungen (5) und Sprachelementeinbettungen (9) abgerufen werden, die innerhalb eines vorgegebenen Ähnlichkeitsbereichs zur Abfrageeinbettung (13) liegen, wonach die durch die abgerufenen Syntaxelementeinbettungen (5) repräsentierten Syntaxelemente und die durch die abgerufenen Sprachelementeinbettungen (9) repräsentierten Sprachelemente als Ergebniselemente (14) einer Ausgabeeinheit (15) übergeben werden, die daraus einen Funktionsbeschreibungsdatensatz (16) erzeugt und ausgibt. 1. A method for functional analysis of a source system (1), wherein a syntax tree model (3) is generated from the program code data of the source system (1), characterized in that a syntax embedding model is generated by a syntax analysis unit (4) by decomposing the syntax tree model (3) into individual syntax element embeddings (5), each representing a syntax element, and stored in a syntax embedding model memory (6), and that a language analysis unit (8) generates a language embedding model by decomposing the program code data into individual language element embeddings (9), each representing a language element, and stores in a language embedding model memory (10), after which a query unit (12) generates at least one query embedding (13) from a query (11) representing a functional element of the source system (1), and those syntax element embeddings (5) and language element embeddings (9) are retrieved from the syntax embedding model memory (6) and the language embedding model memory (10). are retrieved which lie within a predefined similarity range to the query embedding (13), after which the syntax elements represented by the retrieved syntax element embeddings (5) and the language elements represented by the retrieved language element embeddings (9) are passed as result elements (14) to an output unit (15), which generates and outputs a function description data record (16). 2. Verfahren nach Anspruch 1 , dadurch gekennzeichnet, dass zumindest abschnittsweise in natürlicher Sprache vorliegende Dokumentationsdaten (7) des Quellsystems (1) durch die Sprachanalyseeinheit (8) in einzelne, je ein Sprachelement repräsentierende Sprachelementeinbettungen (9) zerlegt werden, die dem Spracheinbettungsmodell hinzugefügt und im Spracheinbettungsmodellspeicher (10) abgelegt werden. 2. Method according to claim 1, characterized in that documentation data (7) of the source system (1), which is at least partially in natural language, is decomposed by the language analysis unit (8) into individual language element embeddings (9), each representing a language element, which are added to the language embedding model and stored in the language embedding model memory (10). 3. Verfahren nach einem der Ansprüche 1 oder 2, dadurch gekennzeichnet, dass die Ausgabeeinheit (15) aus den Ergebniselementen (14) einen Inferenzdatensatz (17) für ein großes Sprachmodell erzeugt und einer Inferenzplattform (18) übergibt, wonach die Inferenzantwort (19) als Funktionsbeschreibungsdatensatz (16) ausgegeben wird. 3. Method according to one of claims 1 or 2, characterized in that the output unit (15) generates an inference data set (17) for a large language model from the result elements (14) and passes it to an inference platform (18), after which the inference response (19) is output as a function description data set (16). 4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass das Syntaxbaummodell ein Generisches Abstraktes Syntaxbaum- Metamodell ist. 4. Method according to one of claims 1 to 3, characterized in that the syntax tree model is a generic abstract syntax tree metamodel. 5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass eine Generatoreinheit (20) aus dem Syntaxbaummodell Funktionselemente des Quellsystems (1) anhand vorgegebener Regeln auswählt und je Funktionselement eine Abfrage (11) zur Übergabe an die Abfrageeinheit (12) erzeugt. 5. Method according to one of claims 1 to 4, characterized in that a generator unit (20) selects functional elements of the source system (1) from the syntax tree model according to predefined rules and generates a query (11) for each functional element for transfer to the query unit (12). 6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass der Funktionsbeschreibungsdatensatz (16) Programmcodedaten für ein vom Quellsystem (1) in seiner Architektur abweichendes Zielsystem (21) umfassen. 6. A method according to any one of claims 1 to 5, characterized in that the function description data set (16) comprises program code data for a target system (21) whose architecture differs from that of the source system (1).
PCT/AT2025/060255 2024-06-25 2025-06-24 Method for functional analysis of a source system Pending WO2026000006A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
ATA50520/2024 2024-06-25
AT505202024 2024-06-25

Publications (1)

Publication Number Publication Date
WO2026000006A1 true WO2026000006A1 (en) 2026-01-02

Family

ID=96346087

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/AT2025/060255 Pending WO2026000006A1 (en) 2024-06-25 2025-06-24 Method for functional analysis of a source system

Country Status (1)

Country Link
WO (1) WO2026000006A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220261241A1 (en) 2021-02-17 2022-08-18 Open Weaver Inc. Methods and systems for automated software natural language documentation
US20240020116A1 (en) 2022-07-14 2024-01-18 OpenAI Opco, LLC Systems and methods for generating natural language using language models trained on computer code

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220261241A1 (en) 2021-02-17 2022-08-18 Open Weaver Inc. Methods and systems for automated software natural language documentation
US20240020116A1 (en) 2022-07-14 2024-01-18 OpenAI Opco, LLC Systems and methods for generating natural language using language models trained on computer code

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NEAMTIU IULIAN ET AL: "Understanding source code evolution using abstract syntax tree matching", SOFTWARE ENGINEERING NOTES, ACM, NEW YORK, NY, US, vol. 30, no. 4, 17 May 2005 (2005-05-17), pages 1 - 5, XP058494788, ISSN: 0163-5948, DOI: 10.1145/1082983.1083143 *

Similar Documents

Publication Publication Date Title
WO2000011581A1 (en) Method for advanced quantity-based cost allocation using different information sources
DE69532307T2 (en) Expression propagation for hierarchical net lists
DE10149693A1 (en) Objects in a computer system
EP2439691A1 (en) Method and device for mechanical production of a process diagram
DE10026478A1 (en) Generating method for application specific input files, involves preparing application specific files by canon-like transformation from generated object descriptions in XML representation
EP3568757A1 (en) Method for generating source code
EP2601594A1 (en) Method and apparatus for automatically processing data in a cell format
WO2026000006A1 (en) Method for functional analysis of a source system
DE102022209618A1 (en) Method for simulating a forming tool for producing a component for a motor vehicle, computer program product and electronic computing device
DE10103845A1 (en) computer system
DE19831651C1 (en) Method for generating a controllable and adaptable network of models of behavior patterns, including software systems
DE102016214666A1 (en) Method and device for designing a technical system
EP3432139B1 (en) A computer implemented method for generating computer program code
DE102004023634B4 (en) Method for checking the completeness and consistency of an information library
WO2015172814A1 (en) Method and engineering tool for automating an industrial system
DE10131438B4 (en) Process for developing a technical component
WO1999060497A1 (en) Method for carrying out the computer-aided simulation of a technical system
WO2024132912A1 (en) Method and system for handling product-specific information for a product system
DE102024103861A1 (en) Method for generating software components
DE10109876B4 (en) Method and device for data management
DE102024002463A1 (en) AI-supported business intelligence
WO2025078229A1 (en) Method for providing a work schedule for manufacturing a component, computer program and data storage medium
DE60121445T2 (en) Memory management for speech dialogue system
DE102017207999A1 (en) Method for the computer-aided processing of digital production data for the production of one or more products
WO2025168430A1 (en) Computer-implemented method for providing artifacts for a simulation of a real device