Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR PRODUCING A CONSISTENT STATE OF A PROGRAM COMPONENT QUANTITY OF A COMPUTER PROGRAM
Document Type and Number:
WIPO Patent Application WO/2008/009629
Kind Code:
A2
Abstract:
The invention relates to a method for producing a consistent state of a program component quantity (2, 2-1, 2-2, 2-3, 2-4) of a computer program, said method using a program component quantity (2, 2-1, 2-2, 2-3, 2-4) containing information (4, 4-1, 4-2) about the model forming the basis of the computer program, a source code (6, 6-1, 6-2), and a structure description (8, 8-1, 8-2). In a consistent state of the program component quantity (2, 2-1, 2-4), the source code (6, 6-1, 6-2) can be automatically generated from the model information (4, 4-1, 4-2) according to the structure description (8, 8-1, 8-2). Said method contains the following steps: a new source code (6-2) which contains variations in relation to an initial output source code (6-1) of a consistent initial program component quantity (2-1) is provided; at least some of the components (4-1, 8-1) of the initial program component quantity (2-1) are compared with the new source code (6-2); and a new structure description (8-2) and new model information (4-2) are produced on the basis of the comparison such that the new source code (6-2) can be automatically generated from the new model information (4-2) according to the new structure description (8-2).

Inventors:
SCHAEFER, Christian (Gluckstr. 12, Sindelfingen, 71065, DE)
YIGIT, Sadi (Austrasse 1, Vaihingen, 71665, DE)
DREYER, Ulf (Rasmussenweg 30, Stuttgart, 70439, DE)
Application Number:
EP2007/057227
Publication Date:
January 24, 2008
Filing Date:
July 13, 2007
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ROBERT BOSCH GMBH (Postfach 30 02 20, Stuttgart, 70442, DE)
SCHAEFER, Christian (Gluckstr. 12, Sindelfingen, 71065, DE)
YIGIT, Sadi (Austrasse 1, Vaihingen, 71665, DE)
DREYER, Ulf (Rasmussenweg 30, Stuttgart, 70439, DE)
International Classes:
G06F9/44
Attorney, Agent or Firm:
ROBERT BOSCH GMBH (Postfach 30 02 20, Stuttgart, 70442, DE)
Download PDF:
Claims:

Patentansprüche

1. Verfahren zum Herstellen eines konsistenten Zustands einer Programmkomponen- tenmenge (2, 2-1, 2-2, 2-3, 2-4) eines Computerprogramms, wobei die Programmkomponentenmenge (2, 2-1, 2-2) Modellinformationen (4, 4-1, 4-2) des dem Compu- terprogramm zugrunde liegenden Modells, einen Quellcode (6, 6-1, 6-2) und eine

Strukturbeschreibung (8, 8-1, 8-2) enthält und in einem konsistenten Zustand der Programmkomponentenmenge (2, 2-1, 2-4) der Quellcode (6, 6-1, 6-2) aus den Modellinformationen (4, 4-1, 4-2) gemäß der Strukturbeschreibung (8, 8-1, 8-2) automatisch erzeugbar ist, und wobei das Verfahren die folgenden Schritte enthält:

Bereitstellen eines neuen Quellcodes (6-2), der gegenüber einem Ausgangs- Quellcode (6-1) einer konsistenten Ausgangs-Programmkomponentenmenge (2-1) änderungen aufweist;

Durchführen eines Vergleichs von mindestens einem Teil der Komponenten der

Ausgangs-Programmkomponentenmenge (2-1) mit dem neuen Quellcode (6-2), und

Erzeugen einer neuen Strukturbeschreibung (8-2) und neuer Modellinformationen (4-2) auf Grundlage dieses Vergleichs so, dass der neue Quellcode (6-2) aus den neuen Modellinformationen (4-2) gemäß der neuen Strukturbeschreibung (8-2) automatisch erzeugbar ist.

2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Vergleich des neuen Quellcodes (6-2) mit dem betreffenden mindestens einen Teil der Ausgangs- Programmkomponentenmenge (2-1) ein Vergleich des neuen Quellcodes (6-2) mit der Ausgangs- Modellinformationen (4-1) und der Ausgangs-Strukturbeschreibung (8-1) ist.

3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass zum Vergleich des neu- en Quellcodes (6-2) mit den Ausgangs- Modellinformationen (4-1) und der Ausgangs-Strukturbeschreibung (8-1) aus dem neuen Quellcode (6-2) eine erste Baumstruktur aufgebaut wird und diese erste Baumstruktur auf eine den Ausgangs-

Modellinformationen (4-1) und der Ausgangs-Strukturbeschreibung (8-1) entsprechenden zweiten Baumstruktur abgebildet wird.

4. Verfahren nach Anspruch 2 oder 3, dadurch gekennzeichnet, dass der Schritt des Erzeugens der neuen Strukturbeschreibung (8-2) und der neuen Modellinformationen (4-2) die folgenden Schritte umfasst:

Erzeugen der neuen Strukturbeschreibung (8-2) auf Grundlage eines ersten Vergleichs von dem betreffenden mindestens einen, ersten Teil (4-1, 8-1) der Kompo- nenten der Ausgangs-Programmkomponentenmenge (2-1) mit dem neuen Quellcode (6-2), und

Erzeugen der neuen Modellinformationen (4-2) auf Grundlage eines zweiten Vergleichs von einem zweiten Teil (4-1) der Ausgangs-Programmkomponentenmenge (2-1) mit dem neuen Quellcode (6-2) und der neuen Strukturbeschreibung (8-2), wobei die neuen Modellinformationen (4-2) die strukturell nicht darstellbaren Unterschiede zwischen der Ausgangs-Programmkomponentenmenge (2-1) und dem neuen Quellcode (6-2) umfasst.

5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Erzeugen der neuen Strukturbeschreibung (8-2) und der neuen Modellinformationen (4-2) unter Verwendung der Ausgangs-Modellinformationen (4-1), der Ausgangs-Strukturbeschreibung (8-1) und des neuen Quellcodes (6-2) automatisch erfolgt.

6. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass das Erzeugen der neuen Strukturbeschreibung (8-2) und der neuen Modellinformationen (4-2) unter Verwendung der Ausgangs-Modellinformationen (4-1), der Ausgangs- Strukturbeschreibung (8-1), des neuen Quellcodes (6-2) und einer Benutzerinterak- tion erfolgt.

7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass nach dem Erzeugen einer der neuen Strukturbeschreibung (8-2) und der neuen Modellinformationen (4-2) der neue Quellcode (6-2) aus den neuen Modellinfor- mationen (4-2) gemäß der neuen Strukturbeschreibung (8-2) automatisch erzeugt wird.

Description:

Beschreibung

Titel

Verfahren zum Herstellen eines konsistenten Zustande einer Programmkomponentenmenge eines Computerprogramms

Die Erfindung betrifft allgemein das Gebiet des automatischen Erzeugens von Quellcodes von Computerprogrammen. Die Erfindung betrifft insbesondere ein Verfahren zum Herstellen eines konsistenten Zustands einer Programmkomponentenmenge eines Computerprogramms.

Stand der Technik

Die DE 10 2004 043 788 Al betrifft eine Vorrichtung zum Erstellen ausführbarer Programme. Die Vorrichtung enthält eine Benutzeroberfläche zur Eingabe eines einem Pro- gramm zugrunde liegenden Modells und einen Generator zur Erzeugung von individuellem Programmcode aus dem Modell.

Die DE 198 37 871 C2 betrifft ein Verfahren zum automatischen Erzeugen eines zu- standsbasierten Programms für eine Komponente eines aus mehreren miteinander kom- munizierenden Komponenten bestehenden Systems. Die Spezifikation des Systems dient als Eingabe für einen Rechner, der als Ausgabe jeweils ein zustandsbasiertes Programm für jede der Komponenten erzeugt.

Gemäß dem Stand der Technik ist es üblich, dass der Generator bzw. der Rechner, der den Programmcode bzw. das Programm automatisch erzeugt, nach einer fest vorgegebenen Strukturbeschreibung arbeitet, d. h. die Art und Weise, wie aus dem Modell bzw. der Spezifikation der Programmcode erzeugt wird, ist in dem Generator fest implementiert. Als Programmkomponenten gespeichert werden hier lediglich die Modellinformationen und der Code. Ein weiteres Beispiel ist die Software Matlab-Simulink, bei welcher aus Domänendaten Code generiert wird und keine kombinierte Verarbeitung dieser beiden Darstellungen stattfindet.

Aus der Praxis ist es ferner bekannt, änderungen, die direkt an genau spezifizierten Stellen im Quellcode gemacht wurde, zu konservieren und bei einer erneuten automatischen Programmerzeugung wieder an die spezifizierte Stelle einzusetzen.

Neben Verfahren zur Vorwärtsgenerierung von Programmcode sind auch Refactoring- Werkzeuge (Refactoring = Umstrukturierung des Programmcodes), wie sie die Eclipse Entwicklungsumgebung (www.eclipse.org) bietet, bekannt, die allerdings nur den Programmcode verwenden, um syntaktische Veränderungen darin vorzunehmen.

Offenbarung der Erfindung

Es ist Aufgabe der vorliegenden Erfindung, sicherzustellen, dass beliebige änderungen, die direkt in einem aus Modellinformationen und einer Strukturbeschreibung automatisch erzeugten Quellcode durchgeführt wurden, auch bei einer nachfolgenden änderung der Modellin- formationen und der daran anschließenden erneuten automatischen Erzeugung des Quellcodes bewahrt werden.

Diese Aufgabe wird durch ein Verfahren nach Anspruch 1 gelöst.

Ein wesentlicher Punkt der Erfindung besteht dabei darin, dass neben den Modellinformationen und dem Quellcode auch die Strukturbeschreibung gespeichert und/oder verarbeitet wird, gemäß welcher sich der Quellcode aus den Modellinformationen automatisch erzeugen lässt. In diesem Sinne werden die Modellinformationen, die Strukturbeschreibung und der Quellcode gemeinsam verarbeitet und/oder gespeichert.

Ein wesentlicher Punkt des erfindungsgemäßen Verfahrens ist, dass unter Verwendung von Modellinformationen und Strukturbeschreibung händische Veränderungen am Programm, die durch einen Anwender/Programmierer durchgeführt werden, erkannt, klassifiziert und in Modell und Strukturbeschreibung zurückgeführt.

Eine Programmkomponentenmenge im Sinne der Erfindung besteht aus oder umfasst den Quellcode sowie eine Menge von zu speichernden Komponenten, die für die automatische Erzeugung des Quellcodes erforderlich sind. Das heißt, die Programmkomponentenmenge enthält mindestens die Modellinformationen, die Strukturbeschreibung und den Quellcode.

Durch die Integration der Strukturbeschreibung in die Programmkomponentenmenge ist es möglich, unter Verwendung von Modellinformationen und der Strukturbeschreibung

änderungen in dem Quellcode zu erkennen, zu klassifizieren und in die Modellinformatio- nen und die Strukturbeschreibung zurückzuführen. Insbesondere stellt das erfindungsge- mäße Verfahren eine Methodik zur Detektion und Klassifikation von änderungen bei der automatischen Erstellung von Programmen zur Verfügung.

Vorteilhafte Weiterbildungen des erfindungsgemäßen Verfahrens sind in den Unteransprüchen 2 bis 7 angegeben.

Durch die zusätzliche Speicherung und Verwendung der Strukturbeschreibung können der Quellcode und die Modellinformationen, beispielsweise Domänendaten, besser zueinander in Beziehung gesetzt werden. Dies ermöglicht beispielsweise konsistente Veränderungen an den Modellen.

Durch die Rückführung von änderungen am Quellcode in die Modellinformationen und die Strukturbeschreibung wird sichergestellt, dass die am Quellcode durchgeführten änderungen, auch bei einer nachfolgenden änderung der Modellinformationen und der daran anschließenden erneuten automatischen Erzeugung des Quellcodes bewahrt werden.

Im Gegensatz zu bekannten Techniken kann die Anreicherung der Modellinformationen und Strukturbeschreibung nicht nur durch eigene dezidierte Werkzeuge erfolgen. Der Anwender/Programmierer kann die Modellebenen durch normales Programmieren (Quellcodemanipulation) anreichern. Außerdem gehen auch Veränderungen, die das Modell (noch) nicht vorsieht, bei einem erneuten Generierungsschritt nicht verloren und werden immer an der korrekten Stelle eingefügt.

Die vorstehenden Ausführungen und Definitionen gelten auch für die nachfolgende Beschreibung der Zeichnungen und umgekehrt.

Kurze Beschreibung der Zeichnungen

Die Erfindung wird im folgenden anhand eines Ausführungsbeispiels näher erläutert. Es zeigt:

Figur 1 schematisch Zustandsänderungen einer Programmkomponentenmenge bei der Durchführung einer Ausführungsform eines Verfahrens nach der Erfindung;

Figur 2 eine Ausführungsform einer Programmkomponentenmenge gemäß der

Erfindung, und

Figur 3 eine weitere Ausführungsform einer Programmkomponentenmenge gemäß der Erfindung.

Ausführungsformen der Erfindung

Eine erfindungsgemäße Programmkomponentenmenge 2 eines Computerprogramms enthält Modellinformationen 4 des dem Computerprogramm zugrunde liegenden Modells.

Die Modellinformationen 4 können beispielsweise Domänendaten sein. Eine Domäne bezeichnet hier ein konkretes Anwendungsgebiet, z. B. eine speicherprogrammierbare Steuerung (SPS). Domänendaten sind dabei variable Daten, über die sich in Verbindung mit der Kenntnis der Domäne ein Projekt besonders einfach definieren lässt.

Ein Computerprogramm kann beispielsweise ein Programm für eine speicherprogrammierbare Steuerung (SPS), eine Bedienoberfläche (HMI) oder eine Software für Antriebe (NC), oder ein beliebiges anderes Computerprogramm sein.

Die Programmkomponentenmenge 2 enthält ferner einen Quellcode 6, welcher gemäß einer Strukturbeschreibung 8 aus den Modellinformationen 4 automatisch erzeugbar ist. Gemäß einer Ausführungsform der Erfindung ist der Quellcode 6 direkt ausführbar. Gemäß einer weiteren Ausführungsform kann der Quellcode 6 in ein ausführbares Pro- gramm kompilierbar sein. Gemäß einer nochmals weiteren Ausführungsform kann der

Quellcode 6 von einem Interpreter interpretierbar sein.

Erfindungsgemäß enthält die Programmkomponentenmenge 2 ferner die Strukturbeschreibung 8 gemäß welcher der Quellcode 6 aus den Modellinformationen 4 automatisch erzeugbar ist. Das heißt, die Strukturbeschreibung 8 gibt an, wie aus den Modellinformationen 4 der Quellcode 6 zu erzeugen ist. In diesem Sinne ist die Strukturbeschreibung 8 mit den Modellinformationen 4 verknüpft. Gemäß der Erfindung kann die Strukturbeschreibung 8 ebenso wie die Modellinformationen 4 veränderbar sein; insbesondere kann die Strukturbeschreibung 8 variable Daten enthalten.

Die Strukturbeschreibung 8 kann im einfachsten Fall ähnlich einem Lückentext aufgebaut sein, wobei die Lücken mit den Modellinformationen 4 gefüllt werden. Ferner kann die

Strukturbeschreibung 8 beispielsweise angeben, mit welchen Methoden die Modellinformationen 4 verarbeitet werden.

Während beim Stand der Technik die Modellinformationen 4 starren Vorgaben des ver- wendeten Code-Generators entsprechen müssen, stellen gemäß der Erfindung die drei Komponenten 'Modellinformationen 4', 'Strukturbeschreibung 8' und 'Quellcode 6' vorzugsweise gleichwertige Komponenten der Programmkomponentenmenge 2 dar, die gemeinsam das betreffende Computerprogramm repräsentieren. Insbesondere werden die drei Komponenten vorzugsweise gemeinsam gespeichert bzw. gemeinsam verarbeitet.

Die drei Komponenten 'Modellinformationen 4', 'Strukturbeschreibung 8' und 'Quellcode 6' der Programmkomponentenmenge 2 sind vorzugsweise so ausgebildet, dass aus jeweils zwei der Komponenten die dritte Komponente ableitbar ist.

Das erfindungsgemäße Verfahren betrifft das Herstellen eines konsistenten Zustands der Programmkomponentenmenge 2 eines Computerprogramms bei manuellen änderungen im Quellcode 6.

Beim Stand der Technik gehen manuelle änderungen im Quellcode 6 verloren, da diese nicht in die Modellinformationen 4 zurückgeführt werden.

Die Figur 1 zeigt die zeitliche Abfolge der Zustände der Programmkomponentenmenge 2 bei der Durchführung einer Ausführungsform des erfindungsgemäßen Verfahrens.

Ausgangspunkt für das erfindungsgemäße Verfahren bildet eine konsistente Ausgangs-

Programmkomponentenmenge 2-1 enthaltend Ausgangs-Modellinformationen 4-1, eine Ausgangs-Strukturbeschreibung 8-1 und einen Ausgangs-Quellcode 6-1, wie sie in Figur 1 mit 'A' bezeichnet ist. Da die Ausgangs-Programmkomponentenmenge 2-1 sich in einem konsistenten Zustand befindet, ist der Ausgangs-Quellcode 6-1 ist aus den Aus- gangs-Modellinformationen 4-1 gemäß der Ausgangs-Strukturbeschreibung 8-1 erzeugbar. Die Pfeile 9 in Figur 1 geben die Richtung der Abfolge der Zustände an.

Werden nun änderungen in dem Ausgangs-Quellcode 6-1 durchgeführt und somit eine neuer Quellcode 6-2 erzeugt, so befindet sich die resultierende Ausgangs- Programmkomponentenmenge 2-2 in einem inkonsistenten Zustand, d. h. der neue Quellcode 6 lässt sich nicht aus den Ausgangs-Modellinformationen 6-1 und der Ausgangs- Strukturbeschreibung 8-1 erzeugen. Dieser Zustand ist in Figur 1 mit 'B' bezeichnet.

Um die Programmkomponentenmenge 2-2 wieder in einen konsistenten Zustand zu überführen enthält das erfindungsgemäße Verfahren die folgenden Schritte:

Vergleichen von mindestens einem Teil der Ausgangs-Programmkomponentenmenge 2-1 mit dem neuen Quellcode 6;

und Erzeugen einer neuen Strukturbeschreibung 8-2 und neuen Modellinformationen 4-2 auf Grundlage des Vergleichs von mindestens einem Teil der Ausgangs- Programmkomponentenmenge 2-1 mit dem neuen Quellcode 6-2, wobei der neue Quellcode 6-2 aus den neuen Modellinformationen 4-2 gemäß der neuen Strukturbeschreibung 8-2 automatisch erzeugbar ist.

Die auf diese Weise erzeugte (neue) Programmkomponentenmenge 2-4 mit den neuen Modellinformationen 4-2, der neuen Strukturbeschreibung 8-2 und dem neuen Quellcode 6-2 befindet sich wieder in einem konsistenten Zustand. Das heißt, nachfolgende änderungen in den neuen Modellinformationen 4-2 berücksichtigen automatisch die vorangegangenen änderungen im Ausgangs-Quellcode 6-1. Sehr vorteilhaft ist hierbei, dass nach der Herstellung des konsistenten Zustands der Programmkomponentenmenge 2 keine Quellcodeteile berücksichtigt werden müssen, wenn änderungen im Modell, d. h. in den Modellinformationen 4 vorgenommen werden.

Gemäß einer bevorzugten Ausführungsform der Erfindung ist der Vergleich des neuen Quellcodes 6-2 mit mindestens einem Teil der Ausgangs-Programmkomponentenmenge 2-1 ein Vergleich des neuen Quellcodes 6-2 mit der Ausgangs- Modellinformationen 4-1 und der Ausgangsstrukturbeschreibung 8-1.

Zum Vergleich des neuen Quellcodes 6-2 mit den Ausgangs-Modellinformationen 4-1 und der Ausgangs-Strukturbeschreibung 8-1 kann aus dem neuen Quellcode 6-2 eine erste Baumstruktur aufgebaut werden, wobei diese erste Baumstruktur auf eine den Ausgangs-

Modellinformationen 4-1 und der Ausgangs-Strukturbeschreibung 8-1 entsprechende zweite Baumstruktur abgebildet wird. Der Aufbau der ersten Baumstruktur aus dem neuen Quellcode 6-2 kann mit den üblichen Compilerbautechniken erfolgen.

Vorzugsweise erfolgt das Erzeugen der neuen Strukturbeschreibung 8-2 und der neuen Modellinformationen 4-2 unter Verwendung der Ausgangs-Modellinformationen 4-1, der Ausgangs-Strukturbeschreibung 8-1 und des neuen Quellcodes 6-2 automatisch.

Bei Konstellationen, in welchen der neue Quellcode 6-2 nicht eindeutig auf die neuen Modellinformationen 4-2 und die neue Strukturbeschreibung 8-2 zurückgeführt werden kann, ist vorgesehen, dass eine Benutzerabfrage erfolgt, und somit das Erzeugen der neuen Strukturbeschreibung 8-2 und der neuen Modellinformationen 4-2 unter Verwendung der Ausgangs-Modellinformationen 4-1, der Ausgangs-Strukturbeschreibung 8-1, des neuen Quellcodes 6-2 und einer Benutzerinteraktion erfolgt.

Das Erzeugen der neuen Strukturbeschreibung 8-2 und der neuen Modellinformationen A- 1 kann in zwei Schritten erfolgen:

Erstens, Erzeugen der neuen Strukturbeschreibung 8-2 auf Grundlage eines ersten Vergleichs von dem mindestens einen Teil der Komponenten der Ausgangs- Programmkomponentenmenge 2-1 mit dem neuen Quellcode 6-2. Dies ist in Figur 1 ex- emplarisch im Zustand 'C dargestellt. Der Vergleich erfolgt hier durch Vergleich der Ausgangs-Modellinformationen 4-1 und der Ausgangs-Strukturbeschreibung 8-1 mit dem neuen Quellcode 6-2, d. h. der mindestens eine Teil der Komponenten der Ausgangs- Programmkomponentenmenge 2-1 besteht in der dargestellten Ausführungsform aus der Ausgangs-Modellinformationen 4-1 und der Ausgangs-Strukturbeschreibung 8-1. In der in Figur 1 dargestellten Ausführungsform wird an neuen Komponenten nur der neue Quellcode 6-2 zur Bestimmung der neuen Strukturbeschreibung 8-2 herangezogen (Pfeil 13).

Zweitens, Erzeugen der neuen Modellinformationen 4-2 auf Grundlage eines zweiten Vergleichs von einem zweiten Teil der Ausgangs- Programmkomponentenmenge 2-1 mit dem neuen Quellcode 6-2 und der neuen Strukturbeschreibung 8-2, wobei die neuen Modellinformationen 4-2 die strukturell nicht darstellbaren Unterschiede zwischen der Aus- gangs-Programmkomponentenmenge 2-1 und dem neuen Quellcode 6-2 umfasst. Dies ist in Figur 1 im Zustand 'D' dargestellt. In der dargestellten Ausführungsform besteht der zweite Teil der Ausgangs-Programmkomponentenmenge 2-1 aus den Ausgangs- Modellinformationen 4-1. In der in Figur 1 dargestellten Ausführungsform wird an neuen

Komponenten der neue Quellcode 6-2 (Pfeil 15) und die neue Strukturbeschreibung 8-2 (Pfeil 17) zur Bestimmung der neuen Modellinformationen 4-2 herangezogen.

Im Ergebnis führt das erfindungsgemäße Verfahren wieder zu einem konsistenten Zu- stand der neuen Programmkomponentenmenge 2-4, welche die neuen Modellinformationen 4-2, die neue Strukturbeschreibung 8-2 und den neuen Quellcode 6-2 umfasst. Der zeitliche Ablauf gemäß der dargestellten Ausführungsform des Verfahrens ist 'A' -> 'B' ->

'C -> 'D'. Die neue Programmkomponentenmenge 2-4 kann selbst wieder Ausgangs- Programmkomponentenmenge für eine erneute Durchführung des erfindungsgemäßen Verfahrens sein, was in Fig. 1 durch den Pfeil 11 zwischen Zustand 'D' und Zustand 'A' symbolisiert ist. Ferner kann die neue Programmkomponentenmenge 2-4 Ausgangspunkt für eine änderung in den neuen Modellinformationen 4-2 und/oder in der Strukturbeschreibung 8-2 sein, wobei die vorher im Quellcode 6-1 durchgeführten änderungen (die zum neuen Quellcode 6-2 geführt haben) bewahrt werden, da diese änderungen im Quellcode erfindungsgemäß auf die Modellebene 4 und die Strukturebene 8 angehoben wurden.

Nach dem Erzeugen einer der neuen Strukturbeschreibung 8-2 und der neuen Modellinformationen 4-2 kann der neue Quellcode 6-2 aus den neuen Modellinformationen 4-2 gemäß der neuen Strukturbeschreibung 8-2 automatisch erzeugt werden.

Die Modellinformationen 4, die Strukturbeschreibung 8 und der Quellcode 6 können in einer einzigen Datei gespeichert sein.

Insbesondere können die Modellinformationen 4, die Strukturbeschreibung 8 und der Quellcode 6 in jeweils verschiedenen Teilbäumen 10 einer einzigen XML-Datei 12 gespeichert sein, wie in Figur 2 dargestellt.

Alternativ können die Modellinformationen 4, die Strukturbeschreibung 8 und der Quellcode 6 in jeweils einer eigenen Datei 14 gespeichert sein, wie in Figur 3 dargestellt.

Die Datei 12 bzw. die Dateien 14 können in üblicher Weise auf einem Speichermedium 16, beispielsweise einem zusammenhängenden Speichermedium, wie beispielsweise einer CD (Figur 2) oder auf einem verteilten Speichermedium, wie beispielsweise einem Netzwerk (Figur 3) gespeichert sein. Insbesondere umfasst die Erfindung ein Speichermedium 16 mit mindestens einer darauf gespeicherten Programmkomponentenmenge 2. Die Darstellung in den Zeichnungen ist hier lediglich beispielhaft. Beliebige andere Arten der Speicherung auf Speichermedien sind möglich.

Ein Verfahren zum Speichern einer erfindungsgemäßen Programmkomponentenmenge 2 kann den Schritt des Speicherns der Strukturbeschreibung 8 umfassen und kann ferner den Schritt des Speicherns der Modellinformationen enthalten und/oder den Schritt des Speicherns des Quellcodes enthalten.

Die Verarbeitung einer erfindungsgemäßen Programmkomponentenmenge 2 kann gemäß einem Verfahren erfolgen, welches den Schritt des Aufnehmens der Strukturbeschreibung 8 als variable Eingabegröße umfasst. Das Programm kann ferner das Aufnehmen von mindestens einer weiteren der übrigen Komponenten der Programmkomponentenmenge 2, insbesondere 'Modellinformationen 4' und 'Quellcode 6' umfassen.

Ein Verfahren zum Verarbeiten einer erfindungsgemäßen Programmkomponentenmenge 2 eines Computerprogramms kann beispielsweise ein Verfahren zum automatischen Erzeugen eines Quellcodes des Computerprogramms sein, wobei das Verfahren in diesem Fall die folgenden Schritte umfasst:

Aufnehmen von Modellinformationen 4 des dem Computerprogramm zugrunde liegenden Modells als variable Eingabegröße;

Aufnehmen der Strukturbeschreibung 8 als variable Eingabegröße; und

automatisches Erzeugen des Quellcodes 6 aus den Modellinformationen 4 gemäß der Strukturbeschreibung 8 mittels eines Codegenerators.

'Aufnehmen' in diesem Sinne kann beispielsweise ein 'Einlesen von einem Speichermedium' sein.

Die Erfindung ist nicht auf die in den Zeichnungen dargestellten Ausführungsformen beschränkt. Sie ergibt sich vielmehr aus einer fachmännischen Gesamtbetrachtung der Be- Schreibung, der Zeichnungen und der Patentansprüche.