DE102006033143A1 - Verfahren zum Herstellen eines konsistenten Zustands einer Programmkomponentenmenge eines Computerprogramms - Google Patents

Verfahren zum Herstellen eines konsistenten Zustands einer Programmkomponentenmenge eines Computerprogramms Download PDF

Info

Publication number
DE102006033143A1
DE102006033143A1 DE200610033143 DE102006033143A DE102006033143A1 DE 102006033143 A1 DE102006033143 A1 DE 102006033143A1 DE 200610033143 DE200610033143 DE 200610033143 DE 102006033143 A DE102006033143 A DE 102006033143A DE 102006033143 A1 DE102006033143 A1 DE 102006033143A1
Authority
DE
Germany
Prior art keywords
new
source code
model information
program component
structure description
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.)
Withdrawn
Application number
DE200610033143
Other languages
English (en)
Inventor
Christian Schaefer
Sadi Yigit
Ulf Dreyer
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch 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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE200610033143 priority Critical patent/DE102006033143A1/de
Priority to PCT/EP2007/057227 priority patent/WO2008009629A2/de
Publication of DE102006033143A1 publication Critical patent/DE102006033143A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

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

Ein Verfahren zum Herstellen eines konsistenten Zustands einer Programmkomponentenmenge (2, 2-1, 2-2, 2-3, 2-4) eines Computerprogramms verwendet eine Programmkomponentenmenge (2, 2-1, 2-2, 2-3, 2-4), die Modellinformationen (4, 4-1, 4-2) des dem Computerprogramm zugrunde liegenden Modells, einen Quellcode (6, 6-1, 6-2) und eine Strukturbeschreibung (8, 8-1, 8-2) enthält. In einem konsistenten Zustand der Programmkomponentenmenge (2, 2-1, 2-4) ist 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. Das Verfahren enthält die folgenden Schritte: 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 (4-1, 8-1) 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 des Vergleichs so, dass der neue Quellcode (6-2) aus den neuen Modellinformationen (4-2) gemäß der neuen Strukturbeschreibung (8-2) automatisch erzeugbar ist.

Description

  • 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 A1 betrifft eine Vorrichtung zum Erstellen ausführbarer Programme. Die Vorrichtung enthält eine Benutzeroberfläche zur Eingabe eines einem Programm 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 zustandsbasierten Programms für eine Komponente eines aus mehreren miteinander kommunizierenden 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, dh 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 Modellinformationen 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 Modellinformationen und die Strukturbeschreibung zurückzuführen. Insbesondere stellt das erfindungsgemäß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:
  • 1 schematisch Zustandsänderungen einer Programmkomponentenmenge bei der Durchführung einer Ausführungsform eines Verfahrens nach der Erfindung;
  • 2 eine Ausführungsform einer Programmkomponentenmenge gemäß der Erfindung, und
  • 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, zB 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 Programm 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 verwendeten 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 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 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 Ausgangs-Modellinformationen 4-1 gemäß der Ausgangs-Strukturbeschreibung 8-1 erzeugbar. Die Pfeile 9 in 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, dh 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 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, dh 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 4-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 1 exemplarisch 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, dh 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 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 Ausgangs-Programmkomponentenmenge 2-1 und dem neuen Quellcode 6-2 umfasst. Dies ist in 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 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 Zustand 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 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 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 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 (2) oder auf einem verteilten Speichermedium, wie beispielsweise einem Netzwerk (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 Beschreibung, der Zeichnungen und der Patentansprüche.

Claims (7)

  1. Verfahren zum Herstellen eines konsistenten Zustands einer Programmkomponentenmenge (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 Computerprogramm 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 neuen 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 Komponenten 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 Benutzerinteraktion 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 Modellinformationen (4-2) gemäß der neuen Strukturbeschreibung (8-2) automatisch erzeugt wird.
DE200610033143 2006-07-18 2006-07-18 Verfahren zum Herstellen eines konsistenten Zustands einer Programmkomponentenmenge eines Computerprogramms Withdrawn DE102006033143A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE200610033143 DE102006033143A1 (de) 2006-07-18 2006-07-18 Verfahren zum Herstellen eines konsistenten Zustands einer Programmkomponentenmenge eines Computerprogramms
PCT/EP2007/057227 WO2008009629A2 (de) 2006-07-18 2007-07-13 Verfahren zum herstellen eines konsistenten zustands einer programmkomponentenmenge eines computerprogramms

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200610033143 DE102006033143A1 (de) 2006-07-18 2006-07-18 Verfahren zum Herstellen eines konsistenten Zustands einer Programmkomponentenmenge eines Computerprogramms

Publications (1)

Publication Number Publication Date
DE102006033143A1 true DE102006033143A1 (de) 2008-01-24

Family

ID=38792350

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200610033143 Withdrawn DE102006033143A1 (de) 2006-07-18 2006-07-18 Verfahren zum Herstellen eines konsistenten Zustands einer Programmkomponentenmenge eines Computerprogramms

Country Status (2)

Country Link
DE (1) DE102006033143A1 (de)
WO (1) WO2008009629A2 (de)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001082067A1 (en) * 2000-04-21 2001-11-01 Togethersoft Corporation Methods and systems for relating data structures and object-oriented elements for distributed computing
AU2001253712A1 (en) * 2000-04-21 2001-11-07 Togethersoft Corporation Methods and systems for identifying dependencies between object-oriented elements
AU2001259108A1 (en) * 2000-04-21 2001-11-07 Togethersoft Corporation Methods and systems for generating source code for object-oriented elements
US20030083900A1 (en) * 2001-10-26 2003-05-01 Ismail Khriss Template-based method and system for reverse engineering
CA2406333A1 (en) * 2002-10-01 2004-04-01 Klocwork Solutions Corporation System and method for tracking software development

Also Published As

Publication number Publication date
WO2008009629A3 (de) 2008-03-20
WO2008009629A2 (de) 2008-01-24

Similar Documents

Publication Publication Date Title
EP1723513B1 (de) Verfahren zur konfiguration eines computerprogramms
EP1215589A2 (de) Bereitstellung von Projektdaten in einem durch eine standardisierte Meta-Sprache definiertem Format
DE10308725A1 (de) System und Verfahren zum Verwalten und zum Austausch von Daten eines technischen Projektes, einer technischen Anlage sowie einzelner Anlagenkomponenten
EP2330469B1 (de) Verfahren und Entwicklungsumgebung zur Erzeugung eines ausführbaren Gesamtsteuerungsprogramms
DE102009033967A1 (de) Verfahren zum Programmieren einer speicherprogrammierbaren Steuerung mit resistenter Abspeicherung von Daten
EP1862901A1 (de) Eingabe von Programm-Anweisungen bei imperativen Programmiersprachen
DE102006033143A1 (de) Verfahren zum Herstellen eines konsistenten Zustands einer Programmkomponentenmenge eines Computerprogramms
EP1387260A1 (de) Verfahren und Vorrichtung zur Erzeugung von Software
EP2329374A1 (de) Testmodul und verfahren zum testen einer o/r-abbildungs-middleware
DE102019131613A1 (de) Verfahren zum Betreiben einer elektronischen Recheneinrichtung für einen Produktentwicklungsprozess mittels maschinellen Lernens, sowie elektronische Recheneinrichtung
DE10138533A1 (de) Bereitstellung von Projekt- und/oder Projektierungsdaten eines Automatisierungsprojekts in einem durch eine standardisierte Meta-Sprache, insbesondere XML, definiertem Format
DE10328237A1 (de) Verfahren zum Erzeugen von Testdaten zum Austesten der Funktionsfähigkeit einer datenverarbeitenden Schaltung
DE10233971A1 (de) Verfahren und Vorrichtung zur Erzeugung von Software
EP1343078B1 (de) System zur Modellierung und Generierung von Softwaregenerierungssystemen
EP3355186A1 (de) Erzeugung und ausführung von software-modulen
DE102004039884A1 (de) Verfahren und System zur Beschreibung und Ausführung automatischer Tests
DE102010019142A1 (de) Makromanagementsystem für ein Engineeringsystem zur Parametrierung von Schaltgeräten
DE102004023634B4 (de) Verfahren zur Vollständigkeits- und Konsistenzprüfung einer Informationsbibliothek
DE102006033144A1 (de) Programmkomponentenmenge, Verfahren und Speichermedium
WO2023208578A1 (de) Verfahren und computerprogramm zur automatisierten erzeugung von kommunikationsschnittstellen in algorithmen aus dem bereich der künstlichen intelligenz
EP1241568A2 (de) Verfahren und Vorrichtung zur Einfügung von Variablen in den Programmablauf einer Datenverarbeitungsanlage
EP2757466A1 (de) Computerimplementiertes Verfahren zum Generieren von Computerprogrammcode
WO2018206346A1 (de) Verfahren zum rechnergestützten verarbeiten von digitalen produktionsdaten zur herstellung eines oder mehrerer produkte
EP1691309A1 (de) Kontextsensitive Benutzerhilfe in einer softwarebasierten Entwicklungsumgebung
DE102015210498A1 (de) Verfahren zum rechnergestützten Erzeugen einer graphischen Modellierungssprache

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee