DE10233971A1 - Software generating method for a software-controlled device uses a software model implemented as data in a computer to derive software program code automatically from the model - Google Patents

Software generating method for a software-controlled device uses a software model implemented as data in a computer to derive software program code automatically from the model Download PDF

Info

Publication number
DE10233971A1
DE10233971A1 DE2002133971 DE10233971A DE10233971A1 DE 10233971 A1 DE10233971 A1 DE 10233971A1 DE 2002133971 DE2002133971 DE 2002133971 DE 10233971 A DE10233971 A DE 10233971A DE 10233971 A1 DE10233971 A1 DE 10233971A1
Authority
DE
Germany
Prior art keywords
model
meta
software
code
data
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
DE2002133971
Other languages
German (de)
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.)
RATIONALIZER INTELLIGENT SOFTW
RATIONALIZER INTELLIGENT SOFTWARE AG
Original Assignee
RATIONALIZER INTELLIGENT SOFTW
RATIONALIZER INTELLIGENT SOFTWARE AG
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 RATIONALIZER INTELLIGENT SOFTW, RATIONALIZER INTELLIGENT SOFTWARE AG filed Critical RATIONALIZER INTELLIGENT SOFTW
Priority to DE2002133971 priority Critical patent/DE10233971A1/en
Publication of DE10233971A1 publication Critical patent/DE10233971A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source

Abstract

Using an external computer-aided software engineering (CASE) tool (1) writes software models and meta models and stores them as first (2) and second (3) data files (DF). The first DF contains a model, the second a meta model. A repository (4) has an input interface, by means of which output files for the CASE tool can be read in. Independent claims are also included for the following: (a) A software-controlled device for implementing the method of the present invention; (b) and for software to implement the method of the present invention.

Description

1. Technisches Gebiet1. Technical area

Die Erfindung gehört zum Gebiet der Verfahren und Vorrichtungen zur Softwareerstellung, genauer in das Gebiet der halb- und vollautomatischen Generierung von Software aus Modellen (2). Eine Software, die in Zusammenhang mit einem Computer eine derartige Vorrichtung bildet, wird üblicherweise als CASE-Tool bezeichnet.The invention belongs to the field of methods and devices for software creation, more precisely to the field of the semi-and fully automatic generation of software from models ( 2 ). Software that forms such a device in connection with a computer is usually referred to as a CASE tool.

2. Stand der Technik2. State of the technology

Stand der Technik für die Erzeugung von Software aus Modellen (2) ist ein 2stufiges Verfahren. In einer ersten Stufe werden Modelle (2) manuell erzeugt und modifiziert, in einer zweiten Stufe wird die zu generierende Software unter Verwendung von Code-Schablonen (9) aus den Modellen (2) erzeugt. Die Code-Schablonen (9) liegen dem Stand der Technik gemäß in Form von Dateien vor, die folgende Inhalte haben:

  • 1. Referenzen auf andere Code-Schablonen enthaltende Dateien (import),
  • 2. Aufbau von internen Datenstrukturen durch Modellzugriffe,
  • 3. Anweisungen an der Generator zur Steuerung der Codegenerierung (Kommunikation mit dem Betriebssystem, Gliederung des Generierungscodes in einzelne Prozeduren, bedingte Anweisungen und Schleifen (22)),
  • 4. Referenzen auf Modellelemente und Ausdrücke zur Berechnung von Daten aus dem Modell (2),
  • 5. Code (26, 28), der ungeändert in den zu generierenden Code (11) zu übernehmen ist.
State of the art for the generation of software from models ( 2 ) is a two-stage process. In the first stage, models ( 2 ) generated and modified manually, in a second stage the software to be generated is used using code templates ( 9 ) from the models ( 2 ) generated. The code templates ( 9 ) are available according to the state of the art in the form of files which have the following content:
  • 1. References to other files containing code templates (import),
  • 2. Structure of internal data structures through model access,
  • 3. Instructions on the generator for controlling the code generation (communication with the operating system, structuring the generation code into individual procedures, conditional instructions and loops ( 22 )),
  • 4. References to model elements and expressions for calculating data from the model ( 2 )
  • 5. Code ( 26 . 28 ), unchanged in the code to be generated ( 11 ) is to be taken over.

Ein Generierungslauf besteht darin, dass ein Codegenerator (13) die Code-Schablonen (9) einliest, Verbindung mit dem Modell ausnimmt und die Code-Schablonen (9) auswertet, dabei den Code (11) generierend. In den Code-Schablonen (9) enthaltene Referenzen auf Modellelemente werden über die Verbindung auf das Modell (2) aufgelöst.A generation run consists of a code generator ( 13 ) the code templates ( 9 ) reads in, excludes connection to the model and the code templates ( 9 ) evaluates the code ( 11 ) generating. In the code templates ( 9 ) References to model elements contained are linked to the model ( 2 ) resolved.

Das genannte Verfahren wird realisiert in dem Produkt Software through Pictures (Marke) der Firma Aonix (Marke) und in geringerem Umfang auch in anderen am Markt erhältliche Case-Tools mit Code-Generatoren (13).The mentioned method is implemented in the product Software through Pictures (brand) by Aonix (brand) and to a lesser extent in other case tools available on the market with code generators ( 13 ).

7 zeigt den dargestellten Generierungsablauf gemäß dem Stand der Technik. Ein Code-Generator (13) liest eine Code-Schablone (9) über einen Kanal (10) und führt die Anweisungen der Code-Schablone (9) zur Generierung von Code (11) auf. Der Code-Generator (13) hat dabei Zugriff auf ein Modell (2), wodurch er in der Lage ist, alle in der Code-Schablone (9) enthaltene Referenzen auf das Modell (2) aufzulösen und den Code (11) gemäß dem Inhalt des Modells (2) zu generieren. 7 shows the generation process shown according to the prior art. A code generator ( 13 ) reads a code template ( 9 ) via a channel ( 10 ) and follows the instructions of the code template ( 9 ) to generate code ( 11 ) on. The code generator ( 13 ) has access to a model ( 2 ), which enables him to copy all of them in the code template ( 9 ) included references to the model ( 2 ) and the code ( 11 ) according to the content of the model ( 2 ) to generate.

3. Der Erfindung zugrundeliegendes Problem3. The invention underlying problem

Code-Generatoren (13) gemäß dem Stand der Technik sind geeignet, oft in gleicher Weise oder mit nur geringen Änderungen wiederkehrende Generationsaufgaben abzudecken. Bei der Nutzung derartiger Code-Generatoren (13) ist festzustellen, dass sehr häufigen Änderungen an den Modellen (2) sehr seltene Änderungen an den Code-Schablonen (9) gegenüberstehen. Der Grund dafür ist, dass Änderungen an den Code-Schablonen (9) kompliziert sind, da die Code-Schablonen (9) selbst auf komplizierten Template-Sprachen beruhen.Code generators ( 13 ) according to the state of the art are suitable for often covering recurring generation tasks in the same way or with only minor changes. When using such code generators ( 13 ) it should be noted that very frequent changes to the models ( 2 ) very rare changes to the code templates ( 9 ) face each other. The reason for this is that changes to the code templates ( 9 ) are complicated because the code templates ( 9 ) are based on complicated template languages.

Im Gegensatz dazu erfordern viele Anwendungsfälle eine einfache Anpassbarkeit der Anweisungen an den Code-Generator (13), d.h. der Code-Schablonen (9). Der Grund ist, dass die Modelle (2) möglichst wenig Implementationsdetails enthalten sollten, um

  • 1. auch von Experten des jeweiligen Fachgebietes verstanden und bearbeitet werden zu können, nicht nur von Softwareingenieuren,
  • 2. möglichst verschiedene Implementierungen auf unterschiedlichen Implementierungsplattformen zu ermöglichen,
  • 3. in möglichst einfacher und übersichtlicher Form lediglich die fachlichen Zusammenhänge wiederzugeben.
In contrast, many use cases require the instructions to be easily adaptable to the code generator ( 13 ), ie the code templates ( 9 ). The reason is that the models ( 2 ) should contain as few implementation details as possible in order to
  • 1. to be understood and worked on by experts in the respective field, not only by software engineers,
  • 2. enable different implementations on different implementation platforms,
  • 3. to simply reproduce the technical relationships in the simplest and clearest possible form.

Wenn aber die Implementationsdetails nicht in den Modellen (2) festgelegt werden, dann muss das in den Code-Schablonen (9) geschehen. Da aber die Implementationsdetails für verschiedene Projekte verschieden sind und sich auch innerhalb eines Projekt häufig ändern könnern, ist die leichte Anpassbarkeit der Code-Schablonen (9) Voraussetzung dafür, dass die Modelle (2) möglichst wenig Implementationsdetails enthalten.But if the implementation details are not in the models ( 2 ) must be specified, then this must be done in the code templates ( 9 ) happen. However, since the implementation details for different projects are different and can also change frequently within a project, the easy adaptability of the code templates ( 9 ) Prerequisite for the models ( 2 ) contain as few implementation details as possible.

Der Grund warum Code-Generatoren (13) aus Modellen (2) nach dem Stand der Technik nur schwer anzupassen sind, liegt darin, dass gemäß dem Stand der Technik alle Anweisungen an den Code-Generator (13) programmiert werden müssen. In Code-Generatoren (13) aus Modellen (2) müssen, ähnlich wie in Compilern, Tabellen und andere Datenstrukturen aufgebaut, verwaltet und abgefragt werden, was komplizierte Programmierungen erfordert. Diese Aufgabe ist umso schwieriger, als dass die Ingenieure, die die Code-Schablonen (9) erstellen, gemäß dem Stand der Technik Fachleute in folgenden verschiedenen Gebieten sein müssten:

  • 1. Template-Sprache des jeweiligen Code-Generators (13),
  • 2. Struktur der Modelle (2),
  • 3. Ziel-Sprache und Ziel-Plattform des generierten Codes (11).
The reason why code generators ( 13 ) from models ( 2 ) are difficult to adapt according to the state of the art, is that according to the state of the art all instructions to the code generator ( 13 ) must be programmed. In code generators ( 13 ) from models ( 2 ), similar to compilers, tables and other data structures, have to be built, managed and queried, which requires complicated programming. This task is all the more difficult because the engineers who created the code templates ( 9 ), according to the state of the art, should be experts in the following different areas:
  • 1. Template language of the respective code generator ( 13 )
  • 2. Structure of the models ( 2 )
  • 3. Target language and target platform of the generated code ( 11 ).

Es ist deutlich, dass die Anforderungen an und der Aufwand für die Erstellung aufgabenspezifischer Code-Schablonen (9) bei Anwendung des Stands der Technik sehr hoch sind, weshalb diese zumeist unterbleibt.It is clear that the requirements and the effort for the creation of task-specific code templates ( 9 ) when using the State of the art are very high, which is why this is mostly omitted.

Eine durch den Stand der Technik nahegelegte Alternative zu komplizierten Template-Sprachen sind vereinfachte Template-Sprachen, die dem Nutzer nicht mehr erlauben vollumfänglich festzulegen, welcher Code (11) generiert werden soll, sondern die dem Nutzer nur noch eine mehr oder weniger beschränkte Modifikation einer vorher festgelegten Abbildung des Modells (2) auf den Code (11) erlauben. Dieser Alternativweg vermeidet das Problem komplizierter Template-Sprachen auf Kosten eingeschränkter Nutzbarkeit der Code-Generierung. Der auf diese Weise generierte Code (11) stimmt in der Mehrzahl der Fälle nicht mit dem von Nutzer gewünschten Code überein, weshalb manuelle Nachbearbeitungen in hohem Umfange notwendig sind. Dadurch wird der Aufwand zur Softwareerstellung erhöht, insbesondere aber wird der Aufwand zur Softwarepflege deutlich erhöht, da die Abbildung von Modell (2) nach Code (11) nicht mehr vollautomatisch durch die Code-Schablonen (9) festgelegt ist, was bei Modelländerungen im Rahmen der Softwarepflege umfangreiche manuelle Nacharbeiten nach erfolgter Code-Generation notwendig macht.An alternative to complicated template languages suggested by the prior art is simplified template languages, which no longer allow the user to fully determine which code ( 11 ) is to be generated, but which only gives the user a more or less limited modification of a predefined image of the model ( 2 ) on the code ( 11 ) allow. This alternative way avoids the problem of complicated template languages at the expense of limited usability of the code generation. The code generated in this way ( 11 ) does not match the code requested by the user in the majority of cases, which is why manual postprocessing is necessary to a large extent. This increases the effort for software creation, but in particular the effort for software maintenance is significantly increased, since the model ( 2 ) by code ( 11 ) no longer fully automatic thanks to the code templates ( 9 ) is defined, which makes extensive manual rework after code generation necessary in the case of model changes as part of software maintenance.

Eine weitere Alternative nach dem Stand der Technik, um die manuellen Nacharbeiten in dieser Situation zu vermeiden, besteht im Roundtrip-Engineering: Zuerst werden Modelle (2) erstellt, dann Code (11) aus ihnen mit Standard-Schablonen (9) generiert, dann dieser Code (11) manuell weiterbearbeitet, dann der manuell weiterbearbeitete Code wieder zurück in ein Modell umgewandelt, das nur wieder bearbeitet werden kann. Der grosse Nachteil bei dieser Vorgehensweise ist, dass das aus dem Code regenierte Modell nicht mehr die Einfachheit und Abstraktheit des ursprünglichen fachlichen Modelles (2) hat, sondern sämtliche im Rahmen der Code-Bearbeitung getroffenen Implementierungsentscheidungen wiederspiegeln muss. Es ist also im eigentlichen Sinne kein Modell mehr, sondern nur mehr ein anderer Blick auf den Code. Seine Bearbeitung kann nur mehr durch den Software-Ingenieur, aber nicht mehr durch den Fachmann des jeweiligen Fachgebietes geschehen. Der Aufwand zu seiner Bearbeitung ist vergleichbar dem manuellen Programmieren, wenn auch etwas reduziert, da Modelle, insbesondere bei ihrer graphischen Repräsentation in Form von Diagrammen, etwas übersichtlicher sind als bloßer Code.Another state-of-the-art alternative to avoid manual rework in this situation is round-trip engineering: First, models ( 2 ) then code ( 11 ) with standard stencils ( 9 ) then this code ( 11 ) manually edited, then the manually edited code is converted back into a model that can only be edited again. The major disadvantage of this procedure is that the model regenerated from the code no longer has the simplicity and abstractness of the original technical model ( 2 ), but must reflect all implementation decisions made in the context of code processing. So in the strict sense it is no longer a model, just a different view of the code. It can only be edited by the software engineer, but no longer by the specialist in the respective field. The effort for its processing is comparable to the manual programming, if somewhat reduced, since models, especially with their graphical representation in the form of diagrams, are somewhat clearer than mere code.

4. Die Erfindung4. The invention

Die Erfindung besteht in einem Verfahren zur Vereinfachung der Erstellung, Anpassung und Verwendung von Code-Schablonen (9) und in einem Gerät und einer Software, die dieses Verfahren realisiert. Die Vereinfachung besteht darin, dass die zusätzlichen, aus dem Modell ableitbaren und vom Code-Generator benötigten Daten (16, 17) nicht programmatisch in den Code-Schablonen (9), sondern in einer Meta-Modell Erweiterung definiert sind, und dass ein Software- und/oder Hardwarewerkzeug (4) gegeben ist, das es erlaubt, auf die berechneten Daten (16, 17) im durch die Meta-Modell Erweiterung erweiterten Modell (7) in gleicher Weise wie auf die ursprünglichen Modelldaten (15) zuzugreifen, was es erlaubt, deutlich einfachere Code-Schablonen (9) zu erstellen, die nunmehr im wesentlichen nur noch aus dem auszugebenden Code (26, 28), aus Zugriffen auf das erweiterte Modell (23, 25, 26), aus einfachen Berechnungen unter Benutzung sprachinterner und -externer Funktionen und Operatoren und aus bedingten Anweisungen und Schleifen (22) bestehen. Die Notwendigkeit, Datenstrukturen in den Code-Schablonen (9) durch Modellzugriffe erst aufzubauen fällt weg, da dies bereits in dem erweiterten Modell (7) geschieht. Dadurch fällt überhaupt jede Notwendigkeit des Modellzugriffes in den Code-Schablonen (9), die vor der eigentlichen Code-Generation liegt, weg.The invention consists in a method for simplifying the creation, adaptation and use of code templates ( 9 ) and in a device and software that implements this process. The simplification is that the additional data that can be derived from the model and required by the code generator ( 16 . 17 ) not programmatically in the code templates ( 9 ), but are defined in a meta-model extension, and that a software and / or hardware tool ( 4 ) is given, which allows the calculated data ( 16 . 17 ) in the model expanded by the meta-model extension ( 7 ) in the same way as on the original model data ( 15 ) access, which allows much simpler code templates ( 9 ) to create, which now essentially only from the code to be output ( 26 . 28 ), from accesses to the extended model ( 23 . 25 . 26 ), from simple calculations using internal and external functions and operators and from conditional statements and loops ( 22 ) consist. The need for data structures in the code templates ( 9 ) to build up through model accesses is no longer necessary, since this is already in the extended model ( 7 ) happens. This eliminates any need for model access in the code templates ( 9 ), which lies before the actual code generation.

Die notwendigen Meta-Modell Erweiterungen bestehen in zusätzlichen Eigenschaften (16, 17) von Modellelementen und zusätzlichen Beziehungen zwischen Modellelementen. Sowohl die zusätzlichen Eigenschaften (16, 17) als auch die zusätzlichen Beziehungen müssen aus den ursprünglichen Modelldaten (15) bzw. aus anderweitig schon berechneten zusätzlichen Modelldaten berechenbar sein. Zusätzliche Eigenschaften können auch von Parametern abhängen.The necessary meta-model extensions consist of additional properties ( 16 . 17 ) of model elements and additional relationships between model elements. Both the additional properties ( 16 . 17 ) as well as the additional relationships must be from the original model data ( 15 ) or can be calculated from additional model data that has already been calculated in some other way. Additional properties can also depend on parameters.

Welche Eigenschaften Modellelemente haben können und welche Beziehungen zwischen Modellelementen bestehen können, wird durch die Modellierungssprache, nicht durch das Modell (2) festgelegt. Um den Nutzer die Möglichkeit geben zu können, zusätzliche Eigenschaften und Beziehungen zur Modellierungssprache hinzuzufügen, muss diese selbst in Form eines Modells vorliegen. Letzteres wird Meta-Modell (3) genannt. Das erfindungsgemäße Verfahren besteht darin, dieses Meta-Modell (3) im Hinblick auf die Code-Generierung zu erweitern und den Code-Schablonen (9) den Zugriff auf das erweiterte Meta-Modell zu ermöglichen, wobei die Weise, wie die zu berechnenden zusätzlichen Eigenschaften und Beziehungen berechnet werden, bei der Erstellung der Code-Schablonen (9) nicht berücksichtigt werden muss.Which properties model elements can have and which relationships can exist between model elements is determined by the modeling language, not by the model ( 2 ). In order to be able to give the user the opportunity to add additional properties and relationships to the modeling language, this must itself be in the form of a model. The latter becomes a meta-model ( 3 ) called. The method according to the invention consists of using this meta model ( 3 ) with regard to the code generation and the code templates ( 9 ) to provide access to the extended meta-model, the way in which the additional properties and relationships to be calculated are calculated when the code templates are created ( 9 ) does not have to be considered.

Für die Erweiterbarkeit des Meta-Modells (3) wird ein Meta-Modell Editor (6) verwendet, der es erlaubt, dem Meta-Modell (6) zusätzliche zu berechnende Eigenschaften (16, 17) und Beziehungen hinzuzufügen. Idealerweise erlauben die zur Erweiterung des Meta-Modells verwendeten Werkzeuge (6) die separate Verwaltung von Meta-Modell Erweiterungen, so dass einmal erstellte Erweiterungen in verschiedenen Projekten und auch unter gleichzeitiger Anwendung verschiedener Meta-Modell Erweiterungen verwendet werden können.For the extensibility of the meta model ( 3 ) becomes a meta-model editor ( 6 ) that allows the meta-model ( 6 ) additional properties to be calculated ( 16 . 17 ) and add relationships. Ideally, the tools used to extend the meta model ( 6 ) the separate administration of meta-model extensions so that once created extensions can be used in different projects and also with the simultaneous use of different meta-model extensions.

Die Ansprüche 1–4 umfassen das erfindungsgemäße Verfahren in seiner grundsätzlichen Ausbildung. Die Ansprüche 5–34 geben weitere Ausgestaltungen des Verfahrens an, nämlich

  • – der Anspruch 5 eine Ausgestaltung, bei der generische Werkzeuge verwendet werden, die sich in gleicher Weise auf eine Vielzahl von Meta-Modellen (3), die Instanzen eines gemeinsamen Meta-Meta-Modells sind, beziehen,
  • – die Ansprüche 6 und 7 Ausgestaltungen, bei denen ein Editor (6) für Meta-Modell Erweiterungen verwendet wird, der den Nutzer in bestimmter, dort angegebener Weise bei der Erstellung von Meta-Modell Erweiterungen unterstützt,
  • – die Ansprüche 8, 9, 12 und 13 Ausgestaltungen, bei denen Meta-Modell Erweiterungen bzw. Code-Schablonen (9) in gleicher Weise wie Modelle (2) als Instanzen eines Meta-Modells verwaltet und bearbeitet werden,
  • – der Anspruch 10 eine Ausgestaltung, bei der anstelle eines Meta-Modells (3) und zusätzlich einer Meta-Modell Erweiterung ein Meta-Modell verwendet wird, das die für die Code-Generierung notwendige Meta-Modell Erweiterung bereits enthält, – die Ansprüche 11, 14 und 15 Ausgestaltungen hinsichtlich der Form der Code-Schablonen (9), – die Ansprüche 16–19 Ausgestaltungen hinsichtlich des Zusammenhangs von Code-Schablonen (9) und Ziel-Code (11) und spezifischer Editoren für die Code-Schablonen (9) in Falle bestimmter Generierungsziele,
  • – der Anspruch 20 eine Ausgestaltung hinsichtlich des Editors für Code-Schablonen (9),
  • – die Ansprüche 21–24 Ausgestaltungen hinsichtlich der für die Code-Schablonen (9) und Meta-Modell Erweiterungen verwendeten Sprachen, insbesondere dahingehend, dass diese eine klare Trennung von imperativen (zur Kommunikation mit der Umgebung, in die hinein generiert werden soll) und funktionalen (zur Angabe von Berechnungsvorschriften) aufweisen,
  • – die Ansprüche 25–31 Ausgestaltungen hinsichtlich dessen, wann die Berechnungen während der Durchführung des Verfahrens ausgeführt werden,
  • – der Anspruch 32 eine Ausgestaltung, bei der unvollständige Code-Schablonen (9) verwendet werden können,
  • – die Ansprüche 33 und 35 Ausgestaltungen hinsichtlich der Zusammensetzung der zur Durchführung des Verfahrens verwendeten Werkzeuge (1, 4, 6, 13).
Claims 1-4 encompass the invention procedure according to its basic training. Claims 5-34 indicate further refinements of the method, namely
  • - The claim 5 an embodiment in which generic tools are used, which are based in the same way on a variety of meta models ( 3 ), which are instances of a common meta-meta model,
  • - Claims 6 and 7 configurations in which an editor ( 6 ) is used for meta-model extensions, which supports the user in the specified manner there in the creation of meta-model extensions,
  • - Claims 8, 9, 12 and 13 refinements in which meta-model extensions or code templates ( 9 ) in the same way as models ( 2 ) managed and edited as instances of a meta model,
  • - Claim 10 an embodiment in which instead of a meta model ( 3 ) and in addition to a meta-model extension, a meta-model is used which already contains the meta-model extension required for code generation, - claims 11, 14 and 15 refinements with regard to the shape of the code templates ( 9 ), Claims 16-19 configurations with regard to the relationship of code templates ( 9 ) and destination code ( 11 ) and specific editors for the code templates ( 9 ) in the case of certain generation goals,
  • - The claim 20 an embodiment with regard to the editor for code templates ( 9 )
  • - Claims 21-24 refinements with regard to the for the code templates ( 9 ) and meta-model extensions, especially in that they have a clear separation of imperative (for communicating with the environment into which they are to be generated) and functional (for specifying calculation rules),
  • The claims 25-31 refinements regarding when the calculations are carried out while the method is being carried out,
  • - Claim 32 an embodiment in which incomplete code templates ( 9 ) can be used
  • - Claims 33 and 35 refinements with regard to the composition of the tools used to carry out the method ( 1 . 4 . 6 . 13 ).

Der Anspruch 35 umfasst das erfindungsgemäße softwaregesteuerte Gerät in seiner grundsätzlichen Ausbildung. Die Ansprüche 36–44 geben weitere Ausgestaltungen des Gerätes an, nämlich

  • – die Ansprüche 36–40 Ausgestaltungen, in denen solche Teile der Funktionalität des softwaregesteuerten Gerätes gemäß Anspruch 35, die nicht erfindungswesentlich sind, durch externe Software übernommen werden,
  • – die Ansprüche 41 und 42 Ausgestaltungen bei denen das softwaregesteuerte Gerät zur direkten Steuerung externer Systeme verwendet wird,
  • – die Ansprüche 43 und 44 Ausgestaltungen in generischer Form unabhängig von der Modellierungssprache (dem Meta-Modell (3)).
Claim 35 includes the software-controlled device according to the invention in its basic design. Claims 36-44 indicate further refinements of the device, namely
  • The claims 36-40 configurations in which those parts of the functionality of the software-controlled device according to claim 35 which are not essential to the invention are taken over by external software,
  • - Claims 41 and 42 refinements in which the software-controlled device is used for direct control of external systems,
  • - Claims 43 and 44 refinements in generic form independent of the modeling language (the meta model ( 3 )).

Der Anspruch 45 umfäßt die erfindungsgemäße Software.Claim 45 includes the software according to the invention.

5. Gewerbliche Anwendbarkeit5. Commercial applicability

Die gewerbliche Anwendbarkeit des erfindungsgemäßen Verfahrens, des erfindungsgemäßen softwaregesteuerten Gerätes und der erfindungsgemäßen Software besteht in der Verwendbarkeit bei der gewerblichen Herstellung von Software, von softwaregesteuerten Systemen und bei der gewerblichen Steuerung externer Systeme.The industrial applicability of the method according to the invention, of the software-controlled according to the invention equipment and the software according to the invention is the usability in the commercial production of Software, software-controlled systems and commercial Control of external systems.

6. Vorteilhafte Wirkungen der Erfindung6. Beneficial effects the invention

Der Hauptvorteil der Erfindung gegenüber dem Stand der Technik liegt darin, dass die projekt- und aufgabenspezifische Steuerung von Code-Generatoren (13) zur Generation von Code (11) aus Modellen (2) deutlich vereinfacht wird. Das ermöglicht die häufige und projektspezifische Anpassung der Code-Generierung mit folgenden weiteren Vorteilen:

  • 1. In die Modelle (2) müssen keine Implementationsdetails aufgenommen werden.
  • 2. Die Modelle (2) bleiben für Fachleute des Fachgebietes, für das die zu generierende Software (11) erstellt wird, verständlich.
  • 3. Es kann parallel an Modellen (2) und Implementierung (Meta-Modell Erweiterungen und Code-Schablonen (9)) gearbeitet werden, da beide unabhängig voneinander sind.
  • 4. Die Menge des manuell zu erstellenden Codes wird deutlich reduziert, da spezifischer Code (11) generiert wird.
  • 5. Die Anzahl der durch manuelle Programmierung eingebrachten Fehler wird reduziert, die Qualität der Software damit erhöht.
The main advantage of the invention over the prior art is that the project and task-specific control of code generators ( 13 ) to the generation of code ( 11 ) from models ( 2 ) is significantly simplified. This enables the frequent and project-specific adaptation of the code generation with the following further advantages:
  • 1. In the models ( 2 ) no implementation details need to be included.
  • 2. The models ( 2 ) remain for specialists in the field for which the software to be generated ( 11 ) is created, understandable.
  • 3. It can be used in parallel on models ( 2 ) and implementation (meta-model extensions and code templates ( 9 )) can be worked as both are independent of each other.
  • 4. The amount of code to be created manually is significantly reduced because specific code ( 11 ) is generated.
  • 5. The number of errors introduced by manual programming is reduced, which increases the quality of the software.

7. Ausführungsbeispiel7th embodiment

Ein Ausführungsbeispiel der Erfindung ist nachstehend unter Bezugnahme auf die zugehörigen Zeichnungen näher erläutert. Das Beispiel zeigt eine Software zur Steuerung eines Computers, die zusammen ein softwaregesteuerten Gerätes gemäß den Ansprüchen 36 und 44 bilden, das, gemeinsam mit der nach Anspruch 36 notwendigen externen Komponente (1) verwendet, eine Vorrichtung zur Durchführung des Verfahrens gemäß Anspruch 1 darstellt.An embodiment of the invention is explained below with reference to the accompanying drawings. The example shows a software for controlling a computer, which together form a software-controlled device according to claims 36 and 44, which, together with the external component necessary according to claim 36 ( 1 ) used, represents an apparatus for performing the method according to claim 1.

1 zeigt die Erstellung von Modellen (2) und Meta-Modellen (3) unter Verwendung eines externen Case-Tools (1). 1 shows the creation of models ( 2 ) and meta models ( 3 ) using an external case tool ( 1 ).

2 zeigt die Erstellung und Bearbeitung von Meta-Modell Erweiterungen. 2 shows the creation and editing of meta-model extensions.

3 zeigt die Generierung des Ziel-Codes (11) unter Verwendung von Code-Schablonen (9), wobei hier sowohl die Code-Schablonen (9) als auch der Ziel-Code (11) in Form von Dateien vorliegen. 3 shows the generation of the target code ( 11 ) using code templates ( 9 ), where both the code templates ( 9 ) as well as the target code ( 11 ) in the form of files.

4 und 5 zeigen Teile der Benutzerschnittstelle des Editors (6) für Meta-Modell Erweiterungen. 4 and 5 show parts of the user interface of the editor ( 6 ) for meta-model extensions.

6 zeigt Ausschnitte einer Code-Schablone (6). 6 shows sections of a code template ( 6 ).

In 1 werden mit einem externen Case-Tool (1) gemäß dem Stand der Technik Modelle und Meta-Modelle erstellt und in Form von Dateien abgelegt. Die Datei (2) enthält ein Modell, die Datei (3) ein Meta-Modell. Die erfindungsgemäße Software enthält ein Repository (4), das eine Eingabeschnittstelle hat, über die die Ausgabedateien des Case-Tools (1) eingelesen werden können. Das Repository (4) ist generisch in Bezug auf ein Meta-Meta-Modell M, kann also alle Modelle von Meta-Modellen des Meta-Meta-Modelles M verwalten. Das Case-Tools (1) kann genutzt werden, um Meta-Modelle des Meta-Meta Modells M und Modelle eines bestimmten Meta-Modells U zu erstellen und zu bearbeiten. Im Repository (4) werden drei verschiedene Arten von Daten verwaltet: Modelle, Meta-Modelle und Meta-Modell Erweiterungen. Dies wird dadurch ermöglicht, dass die Meta-Modell Erweiterungen Instanzen eines Meta-Modells E des Meta-Meta-Modells M sind und damit aufgrund der Generizität des Repositories von diesem verwaltet werden können.In 1 with an external case tool ( 1 ) Models and meta-models created according to the state of the art and stored in the form of files. The file ( 2 ) contains a model, the file ( 3 ) a meta-model. The software according to the invention contains a repository ( 4 ), which has an input interface via which the output files of the case tool ( 1 ) can be read. The repository ( 4 ) is generic in relation to a meta-meta-model M, so it can manage all models of meta-models of the meta-meta-model M. The case tools ( 1 ) can be used to create and edit meta-models of the meta-meta model M and models of a specific meta-model U. In the repository ( 4 ) three different types of data are managed: models, meta-models and meta-model extensions. This is made possible by the fact that the meta-model extensions are instances of a meta-model E of the meta-meta-model M and can therefore be managed by the repository due to the genericity of the latter.

In 2 wird dargestellt, wie ein Editor (6) für Meta-Modell Erweiterungen genutzt wird, um im Repository (4) Meta-Modell Erweiterungen zu erstellen und dort verwaltete Meta-Modell Erweiterungen zu modifizieren. Der Editor (6) greift über eine generische, vom Repository (4) angebotene, für alle Modelle (inklusive der Meta-Modelle und Meta-Modell Erweiterungen) in gleicher Weise verfügbar Lese- und Schreibschnittstelle (5) auf des Repository und dort verwaltete Meta-Modell Erweiterungen zu.In 2 shows how an editor ( 6 ) for meta-model extensions is used in the repository ( 4 ) Create meta-model extensions and modify meta-model extensions managed there. The editor ( 6 ) accesses a generic, from the repository ( 4 ) Read and write interface available in the same way for all models (including the meta models and meta model extensions) ( 5 ) of the repository and meta-model extensions managed there.

In 3 wird dargestellt, wie ein Generator (13) unter Verwendung einer in Dateiform vorliegenden Code-Schablone (9) aus einem im Repository (4) vorliegedem Modell Code enthaltende Dateien (11) erzeugt. Die Lesezugriffe (8) des Generators (13) auf das Modell geschehen über eine zusätzliche, vom Repository angebotene Schnittstelle (7), in der das Modell und eine oder mehrere Meta-Modell Erweiterungen als Einheit in Form eines erweiterten Modelles dargestellt werden. Diese Schnittstelle (7) verbirgt die in den Meta-Modell Erweiterungen definierten Berechnungsvorgänge vor dem Generator (13), so dass der Generator auf berechnete, in Meta-Modell Erweiterungen enthaltene Eigenschaften und Beziehungen in gleicher Weise wie auf ursprüngliche Modell-Eigenschaften und Beziehungen zugreifen kann. Der Generator (13) liest die Code-Schablone (9) über einen Eingabekanal (10) und interpretiert den Inhalt der Code-Schablone (9). In der Code-Schablone (9) enthaltene Bezüge auf das erweiterte Modell werden über die Schnittstelle (7) aufgelöst und gemäß den Anweisungen in der Code-Schablone in Code umgesetzt, der in eine oder mehrere Dateien (11) über einen Ausgabekanal (12) geschrieben wird.In 3 shows how a generator ( 13 ) using a code template in file form ( 9 ) from a in the repository ( 4 ) files containing the model code ( 11 ) generated. The read accesses ( 8th ) of the generator ( 13 ) to the model via an additional interface offered by the repository ( 7 ), in which the model and one or more meta-model extensions are presented as a unit in the form of an extended model. This interface ( 7 ) hides the calculation processes defined in the meta-model extensions from the generator ( 13 ), so that the generator can access calculated properties and relationships contained in meta-model extensions in the same way as original model properties and relationships. The generator ( 13 ) reads the code template ( 9 ) via an input channel ( 10 ) and interprets the content of the code template ( 9 ). In the code template ( 9 ) contained references to the extended model are via the interface ( 7 ) resolved and converted according to the instructions in the code template into code that is in one or more files ( 11 ) via an output channel ( 12 ) is written.

In 4 wird gezeigt, wie ein Modellelement des Meta-Modells zusammen mit seinen Erweiterungen dem Nutzer vom Editor für Meta-Modell Erweiterungen dargestellt wird. Es handelt sich hierbei um ein Meta-Modell mit zwei Erweiterungen, von denen eine gerade bearbeitet wird. Das Meta-Modell enthält ein Modell-Element mit dem Namen 'Class'. Dieses hat im Meta-Model zwei Eigenschaften namens 'owner' und 'name', in der momentan nicht bearbeiteten Erweiterung eine zusätzliche Eigenschaft 'hasStateEngine' und in der momentan bearbeiteten Erweiterung eine weitere Eigenschaft 'fullyQualifiedName'. Das Meta-Modell-Element wird dem Nutzer in Form eines Rechtecks mit vier Abteilungen (14, 15, 16, 17) dargestellt. Abteilung (14) zeigt den Name des Meta-Modell-Elements an, Abteilung (15) die im Meta-Modell definierten Eigenschaften mit Name und Type, Abteilung (16) die in der momentan nicht bearbeiteten Erweiterung definierten Eigenschaften und Abteilung (17) die in der momentan bearbeiteten Erweiterung definierten Eigenschaften. Die Inhalte der Abteilungen (14, 15, 16) werden dem Nutzer in grauer Farbe angezeigt zum Zeichen, dass sie nicht Teil der momentan bearbeiteten Erweiterung sind. Der Inhalt der Abteilung (17) wird dem Nutzer in schwarzer Farbe angezeigt zum Zeichen, dass er bearbeitet werden kann.In 4 it is shown how a model element of the meta model together with its extensions is presented to the user by the editor for meta model extensions. It is a meta-model with two extensions, one of which is currently being worked on. The meta-model contains a model element called 'Class'. This has two properties called 'owner' and 'name' in the meta-model, an additional property 'hasStateEngine' in the currently unprocessed extension and another property 'fullyQualifiedName' in the currently edited extension. The meta-model element is presented to the user in the form of a rectangle with four departments ( 14 . 15 . 16 . 17 ). Department ( 14 ) shows the name of the meta-model element, department ( 15 ) the properties defined in the meta model with name and type, department ( 16 ) the properties and department defined in the extension not currently being edited ( 17 ) the properties defined in the extension currently being edited. The contents of the departments ( 14 . 15 . 16 ) are shown to the user in gray color to indicate that they are not part of the extension currently being edited. The content of the department ( 17 ) is displayed to the user in black to indicate that he can be edited.

In 5 wird gezeigt, wie der Inhalt von Abteilung (17) aus 4 in dem Editor für Meta-Modell Erweiterungen bearbeitet werden kann. Die Anzeige geschieht in einem Fenster (18) mit drei Eingabefeldern (19, 20, 21). Das Eingabefeld (19) dient zur Eingabe des Berechnungsausdruck, der ausgewertet werden muss, wenn der Wert der neuen Eigenschaften in einem Modell berechnet werden soll. Eingabefeld (20) dient zur Eingabe des Namens und Eingabefeld (21) zur Eingabe des Types der neuen Eigenschaft.In 5 shows how the content of department ( 17 ) out 4 can be edited in the editor for meta-model extensions. It is displayed in a window ( 18 ) with three input fields ( 19 . 20 . 21 ). The input field ( 19 ) is used to enter the calculation expression, which must be evaluated if the value of the new properties is to be calculated in a model. Input box ( 20 ) is used to enter the name and input field ( 21 ) to enter the type of the new property.

In 6 wird der Inhalt einer Code-Schablone (9), die von dem Generator (13) eingelesen und als Grundlage der Code-Generation genommen wird, ausschnittsweise gezeigt. (22) stellt eine Schleife über eine Menge van Modellelementen dar. Die Menge, über die zu iterieren ist, wird durch (23, 24, 25) definiert, wobei (23) eine Ausgangsmenge, nämlich die Menge aller Instanzen des Meta-Modell-Elements 'Class' festlegt und (25) eine Bedingung darstellt. (26, 27, 28) und weitere, in 6 nicht dargestellte Teile der Code-Schablone (9) legen den Ausgabe-Code für jedes Element der Menge, über die zu iterieren ist, fest. (26, 28) sind feste auszugebende Code-Fragmente, während (27) den Code-Generator (13) veranlasst, einen durch die Meta-Modell Erweiterung hinzugefügten berechneten Wert einzufügen.In 6 the content of a code template ( 9 ) generated by the generator ( 13 ) is read in and taken as the basis of the code generation, shown in sections. ( 22 ) represents a loop over a set of model elements. The set to be iterated over is defined by ( 23 . 24 . 25 ) defined, where ( 23 ) defines an initial set, namely the set of all instances of the meta-model element 'Class' and ( 25 ) represents a condition. ( 26 . 27 . 28 ) and others, in 6 parts of the code template (not shown) ( 9 ) set the output code for each element of the set to iterate over. ( 26 . 28 ) are fixed code fragments to be output, while ( 27 ) the code generator ( 13 ) causes a calculated value added by the meta-model extension to be inserted.

Das Ausführungsbeispiel für das Verfahren gemäß Anspruch 1 besteht in der Verwendung des durch die vorgestellte Software gesteuerten Gerätes in folgenden Schritten:

  • 1. Bei der ersten Nutzung der Software wird das Meta-Modell (3) in das Repository (4) eingelesen.
  • 2. Für Softwareprojekte mit Hilfe des Case-Tools (1) erstellte Modelle (2) werden in das Repository eingelesen.
  • 3. Wenn nötig werden mit dem Editor (6) auf die in 5 und 6 dargestellte Weise eine neue Meta-Modell Erweiterung erstellt oder vorhandene Meta-Modell Erweiterungen modifziert.
  • 4. Wenn nötig werden projektspezifische Code-Schablonen (9) erstellt, ansonsten werden vorhandene Code-Schablonen (9) herangezogen.
  • 5. Der Generator (13) wird verwendet um unter Zugriff auf die Code-Schablone (9) und das durch wiederverwendete oder projektspezifische Meta-Modell Erweiterungen erweiterte Modell über die Schnittstelle (7) Code in Ausgabedateien (11) zu generieren.
  • 6. Bei Änderungen der inhaltlichen Anforderungen an die generierte Software wird das Modell (2) mit Hilfe des Case-Tools (1) geändert, das geänderte Modell wieder in das Repository (4) eingelesen und die Code-Generierung wiederholt.
  • 7. Bei Änderungen hinsichtlich der Anforderungen an die Implementierung der generierten Software werden die Meta-Modell Erweiterungen mit Hilfe des Editors (6) und die Code-Schablonen (9) entsprechend angepasst und die Code-Generierung wiederholt.
The exemplary embodiment for the method according to claim 1 consists in the use of the device controlled by the software presented in the following steps:
  • 1. When using the software for the first time, the meta model ( 3 ) into the repository ( 4 ) read.
  • 2. For software projects using the case tool ( 1 ) created models ( 2 ) are read into the repository.
  • 3. If necessary, use the editor ( 6 ) on the in 5 and 6 creates a new meta-model extension or modifies existing meta-model extensions.
  • 4. If necessary, project-specific code templates ( 9 ) is created, otherwise existing code templates ( 9 ).
  • 5. The generator ( 13 ) is used to access the code template ( 9 ) and the model extended by reused or project-specific meta-model extensions via the interface ( 7 ) Code in output files ( 11 ) to generate.
  • 6. If the content requirements for the generated software change, the model ( 2 ) using the case tool ( 1 ) changed, the changed model back into the repository ( 4 ) and the code generation is repeated.
  • 7. In the event of changes to the requirements for the implementation of the generated software, the meta-model extensions are edited using the editor 6 ) and the code templates ( 9 ) adjusted accordingly and the code generation repeated.

Claims (45)

Verfahren zur Erzeugung von Software für ein softwaregesteuertes Gerät ausgehend von einem in einer Maschine, zum Beispiel in Form von Daten in einem Computer, realisierten Modell (2) der Software, bei dem der Programmcode (11) der Software automatisch von dem Modell (2) abgeleitet wird, dadurch gekennzeichnet, dass das Modell (2) eine Instanz eines Meta-Modells (3) ist und für letzteres eine Erweiterung erstellt wird, die es erlaubt, weitere Daten (17) aus dem Modell automatisch abzuleiten, und für das erweiterte Modell Code-Schablonen (9) erstellt werden, in denen feste Teile (26, 28) des zu generierenden Codes zusammen mit Anweisungsfolgen (22, 23, 24, 25, 27) zur Generierung von modellabhängigen Codeabschnitten enthalten sind.Method for generating software for a software-controlled device based on a model implemented in a machine, for example in the form of data in a computer ( 2 ) of the software in which the program code ( 11 ) the software automatically from the model ( 2 ), characterized in that the model ( 2 ) an instance of a meta model ( 3 ) and an extension is created for the latter, which allows further data ( 17 ) derived automatically from the model, and for the extended model code templates ( 9 ) are created in which fixed parts ( 26 . 28 ) of the code to be generated together with instruction sequences ( 22 . 23 . 24 . 25 . 27 ) are included for generating model-dependent code sections. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Erweiterung des Meta-Modells (3) nicht erstellt wird, sondern eine schon fertig erstellte Erweiterung wiederverwendet wird.A method according to claim 1, characterized in that the extension of the meta model ( 3 ) is not created, but an already created extension is reused. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass nicht eine Meta-Modell Erweiterung verwendet wird, sondern mehrere, die jeweils verschiedene automatisch ableitbare Daten (16, 17) dem Modell (2) hinzufügen.A method according to claim 1, characterized in that not one meta-model extension is used, but rather several, each with different automatically derivable data ( 16 . 17 ) the model ( 2 ) Add. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Code-Schablonen (9) nicht erstellt werden, sondern schon fertig erstellte Code-Schablonen (9) wiederverwendet werden.A method according to claim 1, characterized in that the code templates ( 9 ) are not created, but already created code templates ( 9 ) can be reused. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Meta-Modell (3) Instanz eines Meta-Meta-Modells ist und die für die Realisierung des Verfahrens verwendeten, in Software und Hardware oder Hardware alleine implementierten Werkzeuge (1, 4, 6, 13) sich in gleicher Weise auf alle Modelle (2) von Meta-Modellen (3) des gegebenen Meta-Meta-Modells anwenden lassen.A method according to claim 1, characterized in that the meta model ( 3 ) Is an instance of a meta-meta model and the tools used to implement the method, implemented in software and hardware or hardware alone ( 1 . 4 . 6 . 13 ) apply in the same way to all models ( 2 ) of meta models ( 3 ) of the given meta-meta model. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass für die Erstellung der Erweiterung des Meta-Modells (3) ein in Software und Hardware oder Hardware alleine realisierter Editor (6) verwendet wird, der dem Nutzer das Meta-Model (3) in graphischer oder struktureller Form anzeigt und dem Nutzer erlaubt, das Meta-Modell durch Hinzufügen von Modelleigenschaften (17) und Modellbeziehungen zu erweitern, wobei der Editor folgende zusätzliche Eigenschaften hat: a) Zusätzlich zu den Eigenschaften (15) und Beziehungen des Meta-Modells werden auch die Erweiterungen des Meta-Modells dem User präsentiert. b) Zu jeder durch die Erweiterung zum Meta-Modell hinzukommende Modelleigenschaft (17) und Modellbeziehung kann vom Nutzer eine Berechnungsvorschrift (19) angegeben werden, die festlegt, wie sich der Wert der Modelleigenschaft oder die durch die Modellbeziehung in Beziehung gesetzten Modellelemente aus vom Nutzer beim Modellieren anzugebenden (15) oder anderen berechneten (16) Modelleigenschaften und Modellbeziehungen berechnen. c) Einmal hinzugefügte Modelleigenschaften und Modellbeziehungen können vom Nutzer auch im Nachhinein modifiziert werden. d) Einmal hinzugefügte Modelleigenschaften und Modellbeziehungen können vom Nutzer auch wieder entfernt werden. e) Teile (14, 15) des Meta-Modells (3), die auch vor seiner Erweiterung Bestand hatten, können vom Nutzer weder modifiziert noch gelöscht werden. f) Die Meta-Modell Erweiterung kann unabhängig von dem Meta-Modell (3) gespeichert (5) und auch wieder geladen (5) werden. g) Der Editor (6) kann prüfen, ob eine gegebene Meta-Modell-Erweiterung auf ein gegebenes Meta-Modell (3) angewandt werden kann, diese also miteinander kompatibel sind oder nicht.A method according to claim 1, characterized in that for the creation of the extension of the meta model ( 3 ) an editor implemented in software and hardware or hardware alone ( 6 ) is used, which provides the user with the meta model ( 3 ) in graphical or structural form and allows the user to add the meta-model by adding model properties ( 17 ) and to expand model relationships, whereby the editor has the following additional properties: a) In addition to the properties ( 15 ) and relationships of the meta model, the extensions of the meta model are presented to the user. b) For each model property added by the extension to the meta model ( 17 ) and model relationship, the user can use a calculation rule ( 19 ) are specified, which determines how the value of the model property or the model elements related by the model relationship are to be specified from the user during modeling ( 15 ) or other calculated ( 16 ) Calculate model properties and model relationships. c) Once added, model properties and model relationships can be modified by the user afterwards. d) Once added, model properties and model relationships can also be removed by the user. e) parts ( 14 . 15 ) of the meta model ( 3 ), which also existed before their expansion, can neither be modified nor deleted by the user. f) The meta-model extension can be used independently of the meta-model ( 3 ) saved ( 5 ) and loaded again ( 5 ) become. g) The editor ( 6 ) can check whether a given meta-model extension to a given meta-model ( 3 ) can be applied, i.e. they are compatible with each other or not. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass der Editor (6) nur einen Teil der dort genannten zusätzlichen Eigenschaften hat.A method according to claim 6, characterized in that the editor ( 6 ) only part of there has additional properties mentioned. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass es ein Meta-Modell für die Erweiterungen von Meta-Modellen (3) gibt, dass Werkzeuge (4) zur Daten- und Versionsverwaltung vorhanden sind, die generisch für alle Modelle (2) anwendbar sind, die Instanzen von Meta-Modellen (3) sind, die auf dem gegebenen Meta-Meta-Modell beruhen, und dass diese Werkzeuge (4) zur Daten- und Versionsverwaltung für die Meta-Modell Erweiterungen verwendet werden.A method according to claim 5, characterized in that it is a meta model for the extensions of meta models ( 3 ) gives that tools ( 4 ) for data and version management, which are generic for all models ( 2 ) are applicable, the instances of meta models ( 3 ) that are based on the given meta-meta model and that these tools ( 4 ) for data and version management for the meta-model extensions. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass es ein Meta-Modell für die Erweiterungen von Meta-Modellen (3) gibt, dass Werkzeuge zur Datenpräsentation und -bearbeitung vorhanden sind, die generisch für alle Modelle (2) anwendbar sind, die Instanzen von Meta-Modellen (3) sind, die auf dem gegebenen Meta-Meta-Modell beruhen, und dass diese Werkzeuge auch zur Datenpräsentation und -bearbeitung für die Meta-Modell Erweiterungen verwendet werden.A method according to claim 5, characterized in that it is a meta model for the extensions of meta models ( 3 ) indicates that tools for data presentation and processing are available that are generic for all models ( 2 ) are applicable, the instances of meta models ( 3 ), which are based on the given meta-meta model, and that these tools are also used for data presentation and processing for the meta-model extensions. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Erweiterung des Meta-Modells (3) bereits Teil des Meta-Modells (3) selbst ist, dass also das Meta-Modell (3) zusätzlich zu den bei der Modellerstellung anzugebenden Modelleigenschaften (15) und Modellbeziehungen abgeleitete (berechnete) Modelleigenschaften (16, 17) und Modellbeziehungen vorsieht, die für die Codegenerierung (12) mit Hilfe von Code-Schablonen (9) verwendet werden.A method according to claim 1, characterized in that the extension of the meta model ( 3 ) already part of the meta-model ( 3 ) itself is that the meta model ( 3 ) in addition to the model properties to be specified when creating the model ( 15 ) and model relationships derived (calculated) model properties ( 16 . 17 ) and model relationships that are required for code generation ( 12 ) with the help of code templates ( 9 ) be used. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Code-Schablonen (11) in Form von Dateien gegeben sind, die sowohl feste Teile (26, 28) des zu generierenden Codes als auch Anweisungsfolgen (22, 23, 24, 25, 27) in einer speziellen Template-Sprache enthalten, wobei die Anweisungsfolgen festlegen, wie modellabhängige Codeteile aus dem Modell abgeleitet werden.A method according to claim 1, characterized in that the code templates ( 11 ) are given in the form of files that contain both fixed parts ( 26 . 28 ) of the code to be generated as well as instruction sequences ( 22 . 23 . 24 . 25 . 27 ) in a special template language, whereby the instruction sequences determine how model-dependent code parts are derived from the model. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass dass es ein Meta-Modell für Code-Schablonen (9) gibt, dass Werkzeuge (4) zur Daten- und Versionsverwaltung vorhanden sind, die generisch für alle Modelle (2) anwendbar sind, die Instanzen von Meta-Modellen (3) sind, die auf dem gegebenen Meta-Meta-Modell beruhen, und dass diese Werkzeuge (4) zur Daten- und Versionsverwaltung der Code-Schablonen (9) verwendet werden.A method according to claim 1, characterized in that it is a meta-model for code templates ( 9 ) gives that tools ( 4 ) for data and version management, which are generic for all models ( 2 ) are applicable, the instances of meta models ( 3 ) that are based on the given meta-meta model and that these tools ( 4 ) for data and version management of the code templates ( 9 ) be used. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass dass es ein Meta-Modell für Code-Schablonen (9) gibt, dass Werkzeuge zur Datenbearbeitung und -präsentation vorhanden sind, die generisch für alle Modelle (2) anwendbar sind, die Instanzen von Meta-Modellen (3) sind, die auf dem gegebenen Meta-Meta-Modell beruhen, und dass diese Werkzeuge zur Datenbearbeitung und -präsentation der Code-Schablonen (9) verwendet werden.A method according to claim 1, characterized in that it is a meta-model for code templates ( 9 ) indicates that tools for data processing and presentation are available that are generic for all models ( 2 ) are applicable, the instances of meta models ( 3 ) that are based on the given meta-meta model and that these tools for data processing and presentation of the code templates ( 9 ) be used. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass in den Code-Schablonen (9) eine spezielle Template-Sprache verwendet wird, a) die es erlaubt durch im erweiterten Modell enthaltene Mengen (23) und Listen von Modellelementen zu iterieren (22), b) die es erlaubt, Eigenschaften (15, 16, 17) von Modellelementen zu referenzieren (25, 27), c) die sprachinterne Funktionen und Operationen hat, mit denen Ausdrücke gebildet werden können, die es erlauben, aus gegebenen Modelldaten neue zu berechnen, d) die es erlaubt, externe Bibliotheken von Funktionen und Operationen zu verwenden, so dass mit diesen Funktionen und Operationen ebenfalls Ausdrücke zur Berechnung neuer Daten gebildet werden können, e) die bedingte Anweisungen erlaubt, f) deren Ausführung keine Änderungen im Modell hervorruft.A method according to claim 1, characterized in that in the code templates ( 9 ) a special template language is used, a) which allows it through quantities contained in the extended model ( 23 ) and iterate lists of model elements ( 22 ), b) which allows properties ( 15 . 16 . 17 ) to reference model elements ( 25 . 27 ), c) which has internal language functions and operations with which expressions can be formed which make it possible to calculate new ones from given model data, d) which allows external libraries of functions and operations to be used, so that with these functions and Operations can also form expressions for computing new data, e) which allows conditional statements, f) whose execution does not cause changes in the model. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass die Template-Sprache nur einen Teil der dort genannten Eigenschaften aufweist.A method according to claim 14, characterized in that the Template language is only a part of the properties mentioned there having. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der zu generierende Code hierarchisch in Verzeichnisse und Dateien (11) gegliedert ist und die Template-Sprache Konstrukte zur Erzeugung von Verzeichnissen und Dateien enthält.A method according to claim 1, characterized in that the code to be generated hierarchically in directories and files ( 11 ) is structured and the template language contains constructs for creating directories and files. Verfahren nach Anspruch 16, dadurch gekennzeichnet, dass ein in Software und Hardware oder Hardware alleine realisierter Template-Editor verwendet wird, der die zu erstellenden Templates für Dateien und Verzeichnisse in einer hierarchischen Baum-Struktur anzeigt, die die Struktur der zu erzeugenden Dateien (11) und Verzeichnisse nachbildet.Method according to claim 16, characterized in that a template editor implemented in software and hardware or hardware alone is used, which displays the templates to be created for files and directories in a hierarchical tree structure which shows the structure of the files to be created ( 11 ) and replicates directories. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der zu generierende Code die Tabellen- , Index- und Verknüpfungsstruktur von Datenbanken und deren interne Prozeduren festlegt und die Template-Sprache Konstrukte zur Erzeugung von Tabellen, Indices, Datenbankverknüpfungen und Datenbankprozeduren enthält.A method according to claim 1, characterized in that the code to be generated the table, index and link structure of databases and their internal procedures and defines the template language Constructs for creating tables, indexes, database links and contains database procedures. Verfahren nach Anspruch 18, dadurch gekennzeichnet, dass ein in Software und Hardware oder Hardware alleine realisierter Template-Editor verwendet wird, der Editoren zur Definition von Datenbankstrukturen und Programmierung von Datenbankprozeduren nachgebildet ist.A method according to claim 18, characterized in that a template editor implemented in software and hardware or hardware alone the editor for the definition of database structures and programming is modeled by database procedures. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass ein in Software und Hardware oder Hardware alleine realisierter Template-Editor verwendet wird, der die Code-Schablonen (9) in einer hierarchischen Baum-Struktur darstellt und für die einzelnen Knoten des Baumes Dialogfenster anbietet, die die Bearbeitung von Teilen der Code-Schablone (9) erlauben.A method according to claim 1, characterized in that a template editor realized in software and hardware or hardware alone ver the code templates ( 9 ) in a hierarchical tree structure and offers dialog windows for the individual nodes of the tree, which allow the processing of parts of the code template ( 9 ) allow. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Template-Sprache, in der die Code-Schablonen (9) erstellt werden, eine Kombination aus zwei Teilsprachen ist, deren eine einem rein funktionalen Paradigma folgt, also zur Berechnung von Daten aus Daten ohne Nebenwirkungen dient, und deren andere einem imperativen Paradigma folgt und zur Erzeugung und Modifikation von zu generierenden Code-Dateien (11), Datenbankeinträgen und anderen externen Einheiten dient, wobei die Daten, gemäß denen die Erzeugung und Modifikation dieser Einheiten vorgenommen werden, durch Ausdrücke, die in der dem funktionalen Paradigma folgenden Teilsprache formuliert sind, festgelegt werden.A method according to claim 1, characterized in that the template language in which the code templates ( 9 ) is created, is a combination of two sub-languages, one of which follows a purely functional paradigm, i.e. is used to calculate data from data without side effects, and the other of which follows an imperative paradigm and for the generation and modification of code files to be generated ( 11 ), Database entries and other external units, the data according to which the creation and modification of these units are carried out being determined by expressions formulated in the sub-language which follows the functional paradigm. Verfahren nach Anspruch 21, dadurch gekennzeichnet, dass ein in Software und Hardware oder Hardware alleine realisierter Template-Editor verwendet wird, der die Code-Schablonen (9) in einer hierarchischen Baum-Struktur darstellt, wobei ein Teil der Knoten des Baumes Konstrukte der dem funktionalen Paradigma folgenden Teilsprache präsentiert und editierbar macht und der andere Teil der Knoten des Baumes Konstrukte der dem imperativen Paradigma folgenden Teilsprache präsentiert und editierbar macht.22. The method according to claim 21, characterized in that a template editor implemented in software and hardware or hardware alone is used, which the code templates ( 9 ) in a hierarchical tree structure, with some of the nodes of the tree presenting constructs of the sub-language following the functional paradigm and making them editable, and the other part of the nodes of the tree presenting constructs of the sub-language following the imperative paradigm and making them editable. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Berechnungsvorschriften, die in Meta-Modell Erweiterungen und Code-Schablonen (9) enthalten sind, in ein- und derselben Sprache ausgedrückt werden können.A method according to claim 1, characterized in that the calculation rules, the extensions and code templates in meta model ( 9 ) are included, can be expressed in the same language. Verfahren nach Anspruch 21, dadurch gekennzeichnet, dass die Sprache zur Festlegung der in den Meta-Modell Erweiterungen enthaltenen Berechnungsvorschriften und die funktionale Teilsprache für die Code-Schablonen (9) identisch sind.Method according to claim 21, characterized in that the language for defining the calculation rules contained in the meta-model extensions and the functional sub-language for the code templates ( 9 ) are identical. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass in den durch die Meta-Modell Erweiterungen erweiterten Modellen und in den Code-Schablonen (9) vorkommende zu berechnende Daten (16, 17) bei jedem Zugriff neu berechnet werden.Method according to Claim 1, characterized in that in the models expanded by the meta-model extensions and in the code templates ( 9 ) occurring data to be calculated ( 16 . 17 ) are recalculated with every access. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Erzeugung der Software in durch den Nutzer, einen Timer oder andere externe Einflüsse gestarteten Generierungsläufen geschieht und die in den erweiterten Modell und Code-Schablonen vorkommenden zu berechnenden Daten (16, 17) innerhalb eines Generierungslaufes nur beim ersten Zugriff berechnet werden und die Berechnungsergebnisse zwischen verschiedenen Zugriffen gespeichert werden.Method according to Claim 1, characterized in that the generation of the software takes place in generation runs started by the user, a timer or other external influences and the data to be calculated occurring in the extended model and code templates ( 16 . 17 ) are only calculated the first time within a generation run and the calculation results are saved between different accesses. Verfahren nach Anspruch 26, dadurch gekennzeichnet, dass berechnete Daten (16, 17) auch zwischen verschiedenen Generierungsläufen gespeichert werden, zu jedem berechneten Datum (16, 17) dessen Abhängigkeiten von den ursprünglichen Modelldaten (15) und anderen berechneten Daten gespeichert werden und bei Änderung der ursprünglichen Modelldaten (15) alle davon direkt und indirekt abhängenden berechneten Daten (16, 17) neu berechnet werden.A method according to claim 26, characterized in that calculated data ( 16 . 17 ) can also be saved between different generation runs, for each calculated date ( 16 . 17 ) whose dependencies on the original model data ( 15 ) and other calculated data are saved and when changing the original model data ( 15 ) all directly and indirectly dependent calculated data ( 16 . 17 ) are recalculated. Verfahren nach Anspruch 27, dadurch gekennzeichnet, dass der Nutzer bei der Festlegung der Meta-Modell Erweiterungen und Code-Schablonen (9) angeben kann, welche berechneten Daten (16, 17) bei jedem Generierungslauf neu zu berechnen sind und welche berechneten Daten (16, 17) zwischen Generierungsläufen unter Verwaltung ihrer Abhängigkeiten gespeichert werden.A method according to claim 27, characterized in that the user when determining the meta-model extensions and code templates ( 9 ) can indicate which calculated data ( 16 . 17 ) must be recalculated with each generation run and which calculated data ( 16 . 17 ) are saved between generation runs under management of their dependencies. Verfahren nach Anspruch 27, dadurch gekennzeichnet, dass das System bei der Berechnung der berechneten Daten (16, 17) aufgrund von Parametern des Berechnungsvorgangs wie z.B. dem Berechnungsaufwand festlegt, ob ein berechnetes Datum (16, 17) bei jedem Generierungslauf neu zu berechnen ist oder das Datum unter Verwaltung seiner Abhängigkeiten auch zwischen den Generierungsläufen gespeichert wird.Method according to claim 27, characterized in that the system calculates the calculated data ( 16 . 17 ) on the basis of parameters of the calculation process, such as the calculation effort, determines whether a calculated date ( 16 . 17 ) is to be recalculated for each generation run or the date is also saved between the generation runs while managing its dependencies. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die zu generierende Software unmittelbar bei Erstellung der Code-Schablonen (9) generiert wird und anschliessend jeweils bei Änderungen von Modell (2), Modell-Erweiterung und Code-Schablonen (9) neu generiert wird, ohne dass eine systemexterne Einheit einen Generierungslauf starten muss.A method according to claim 1, characterized in that the software to be generated immediately when the code templates ( 9 ) is generated and then each time the model changes ( 2 ), Model extension and code templates ( 9 ) is regenerated without a non-system unit having to start a generation run. Verfahren nach Anspruch 30, dadurch gekennzeichnet, dass für Teile der zu generierenden Software (11) zusätzlich die Information verwaltet wird, von welchen Teilen von Modell (2), Meta-Modell Erweiterung und Code-Schablonen (9) sie abhängen, und dass die Teile immer dann neu generiert werden, wenn sich die Teile von Modell (2), Meta-Modell Erweiterung und Code-Schablonen (9), von denen sie abhängen, ändern.A method according to claim 30, characterized in that for parts of the software to be generated ( 11 ) in addition, the information is managed from which parts of the model ( 2 ), Meta-model extension and code templates ( 9 ) they depend, and that the parts are regenerated whenever the parts differ from the model ( 2 ), Meta-model extension and code templates ( 9 ) on which they depend. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Code-Schablonen (9) den zu generierenden Code (11) nicht vollständig festlegen, sondern Code-Bereiche festlegen, in denen der Nutzer nach erfolgter Code-Generierung (12) manuell Ergänzungen vornehmen kann, so dass bei erneuerter Generierung (12) des Code-Teiles die manuellen Hinzufügungen nicht überschrieben werden, sondern in den neu generiereten Code (11) übernommen werden.A method according to claim 1, characterized in that the code templates ( 9 ) the code to be generated ( 11 ) do not specify completely, but define code areas in which the user can generate (after code generation) 12 ) can make additions manually, so that with renewed generation ( 12 ) of the code part the manual additions are not overwritten, but in the newly generated code ( 11 ) who took over the. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Verfahren durch ein einheitliches, auf Software und Hardware oder Hardware alleine beruhendes System unterstützt wird, das für alle Arbeitsschritte die notwendigen Werkzeuge (1, 4, 6, 13) zu Ihrer Durchführung zur Verfügung stellt.Method according to claim 1, characterized in that the method is supported by a uniform system based solely on software and hardware or hardware, which has the necessary tools for all work steps ( 1 . 4 . 6 . 13 ) for your implementation. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Verfahren durch verschiedene auf Software und Hardware oder Hardware alleine beruhende Systeme unterstützt wird, durch deren gemeinsame Nutzung die verschiedenen Verfahrensschritte realisiert werden können.A method according to claim 1, characterized in that the Procedures through various on software and hardware or hardware systems based alone is supported by their common Use the different process steps can be realized. Softwaregesteuertes Gerät zur Realisierung des unter 1. genannten Verfahrens, dadurch gekennzeichnet, dass eine Komponente (1) zur Erstellung von Modellen (2), eine Komponente (6) zur Erweiterung von Meta-Modellen (3) mit aus Modelldaten (15) berechenbaren Daten (16, 17) und eine Komponente zur Erstellung, Bearbeitung und Anwendung von Code-Schablonen (9) derart zusammenarbeiten, dass die Anwendung einer Meta-Modell Erweiterung auf ein Modell (2) ein mit berechneten Daten (16, 17) erweitertes Modell (7) ergibt, auf das bei der Anwendung der Code-Schablonen (9) zur Code-Generierung zum Zwecke der Ausgabe von Modelldaten (15) oder aus dem Modell berechneten Daten (16, 17) zugegriffen werden kann.Software-controlled device for implementing the method mentioned under 1., characterized in that a component ( 1 ) to create models ( 2 ), a component ( 6 ) to expand meta models ( 3 ) with from model data ( 15 ) computable data ( 16 . 17 ) and a component for creating, editing and using code templates ( 9 ) work together in such a way that the application of a meta-model extension to a model ( 2 ) with calculated data ( 16 . 17 ) extended model ( 7 ) results in the application of the code templates ( 9 ) for code generation for the purpose of outputting model data ( 15 ) or data calculated from the model ( 16 . 17 ) can be accessed. Softwaregesteuertes Gerät nach Anspruch 35, dadurch gekennzeichnet, dass die Komponente (1) zur Erstellung und Bearbeitung von Modellen (2) nicht Teil des Gerätes ist, sondern die Modelle (2) außerhalb des Gerätes erstellt werden und über eine Importschnittstelle eingelesen werden.Software-controlled device according to claim 35, characterized in that the component ( 1 ) for creating and editing models ( 2 ) is not part of the device, but the models ( 2 ) are created outside of the device and imported via an import interface. Softwaregesteuertes Gerät nach Anspruch 36, dadurch gekennzeichnet, dass die Modelle (2) nicht über eine Importschnittstelle eingelesen werden, sondern durch direkten Zugriff auf von einer externen Software verwaltete Modelldaten (2) diese dem Gerät verfügbar werden.Software-controlled device according to claim 36, characterized in that the models ( 2 ) are not imported via an import interface, but through direct access to model data managed by external software ( 2 ) these become available to the device. Softwaregesteuertes Gerät nach Anspruch 36, dadurch gekennzeichnet, dass die Modelle (2) nicht über eine Importschnittstelle eingelesen werden, sondern die Modelldaten (2) über eine von einer externen Software angebotene Schnittstelle verfügbar gemacht werden.Software-controlled device according to claim 36, characterized in that the models ( 2 ) are not imported via an import interface, but the model data ( 2 ) be made available via an interface offered by external software. Softwaregesteuertes Gerät nach Anspruch 35, dadurch gekennzeichnet, dass die das Gerät im Sinne des Verfahrens nach Anspruch 1 steuernde Software in eine andere Software eingebettet ist, die Werkzeuge zur Verfügung stellt, den generiereten Code (11) zu übersetzen, zu testen und die generierten Programme in eine distributionsfähige Form zu bringen.Software-controlled device according to claim 35, characterized in that the software controlling the device in the sense of the method according to claim 1 is embedded in another software which provides tools, the generated code ( 11 ) to translate, test and bring the generated programs into a distributable form. Softwaregesteuertes Gerät nach Anspruch 35, dadurch gekennzeichnet, dass die das Gerät im Sinne des Verfahrens nach Anspruch 1 steuernde Software in eine andere Software eingebettet ist, die Werkzeuge zur Erstellung und Bearbeitung von Modellen (2) zur Verfügung stellt, so dass die erfindungsgemäße Software über von der Software, in die sie eingebettet ist, angebotene Schnittstellen auf die Modelldaten (2) zugreift.Software-controlled device according to claim 35, characterized in that the software controlling the device in the sense of the method according to claim 1 is embedded in another software, the tools for creating and editing models ( 2 ), so that the software according to the invention via interfaces offered by the software in which it is embedded to the model data ( 2 ) accesses. Softwaregesteuertes Gerät nach Anspruch 35, dadurch gekennzeichnet, dass die das Gerät im Sinne des Verfahrens nach Anspruch 1 steuernde Software zusätzliche Werkzeuge anbietet, die es erlauben, den aus den Modellen generierten Code direkt zur Steuerung externer Systeme zu verwenden.Software controlled device according to claim 35, characterized in that the device in the sense software controlling the method according to claim 1 Offers tools that allow the generated from the models Use code directly to control external systems. Softwaregesteuertes Gerät nach Anspruch 41, dadurch gekennzeichnet, dass zu den externen, direkt ansteuerbaren Systemen Datenbanken gehören, deren innere Verwaltungsdaten entsprechend den Modelländerungen geändert werden.Software controlled device according to claim 41, characterized in that to the external, direct controllable systems include databases, their internal administrative data according to the model changes changed become. Softwaregesteuertes Gerät nach Anspruch 35, dadurch gekennzeichnet, dass das Meta- Modell (3) Instanz eines Meta-Meta-Modells ist und die das Gerät im Sinne des Verfahrens nach Anspruch 1 steuernde Software sich in gleicher Weise auf alle Modelle (2) von Meta-Modellen (3) des gegebenen Meta-Meta-Modells anwenden lässt.Software-controlled device according to claim 35, characterized in that the meta model ( 3 ) Is an instance of a meta-meta model and the software controlling the device in the sense of the method according to claim 1 applies in the same way to all models ( 2 ) of meta models ( 3 ) of the given meta-meta model. Softwaregesteuertes Gerät nach Anspruch 43, dadurch gekennzeichnet, dass die das Gerät im Sinne des Verfahrens nach Anspruch 1 steuernde Software sich nicht auf alle Modelle (2) von Meta-Modellen (3) des gegebenen Meta-Meta-Modells anwenden lässt, sondern nur auf solche, für die das Meta-Modell (3) bestimmten zusätzlichen, durch die Software vorgebenen Bedingungen gehorcht.Software-controlled device according to claim 43, characterized in that the software controlling the device in the sense of the method according to claim 1 does not apply to all models ( 2 ) of meta models ( 3 ) of the given meta-meta model, but only to those for which the meta model ( 3 ) obeys certain additional conditions specified by the software. Software zu Realisierung des unter 1 genannten Verfahrens auf einem Computer, dadurch gekennzeichnet, dass durch Installation der Software auf einem Computer ein Gerät nach zumindest einem der Ansprüche 3544 entsteht.Software to implement the mentioned under 1 method on a computer, characterized in that the software is installed a device 35 on a computer according to at least one of the claims - 44 is formed.
DE2002133971 2002-07-25 2002-07-25 Software generating method for a software-controlled device uses a software model implemented as data in a computer to derive software program code automatically from the model Withdrawn DE10233971A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2002133971 DE10233971A1 (en) 2002-07-25 2002-07-25 Software generating method for a software-controlled device uses a software model implemented as data in a computer to derive software program code automatically from the model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2002133971 DE10233971A1 (en) 2002-07-25 2002-07-25 Software generating method for a software-controlled device uses a software model implemented as data in a computer to derive software program code automatically from the model

Publications (1)

Publication Number Publication Date
DE10233971A1 true DE10233971A1 (en) 2004-02-19

Family

ID=30469114

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2002133971 Withdrawn DE10233971A1 (en) 2002-07-25 2002-07-25 Software generating method for a software-controlled device uses a software model implemented as data in a computer to derive software program code automatically from the model

Country Status (1)

Country Link
DE (1) DE10233971A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2899987A1 (en) * 2006-04-14 2007-10-19 Thales Sa METHOD FOR PRODUCING AND MANAGING INTERFACE LIBRARY EVOLUTIONS
EP1883013A2 (en) * 2006-07-18 2008-01-30 Robert Bosch Gmbh Program component batch, method and storage medium
WO2008068187A1 (en) * 2006-12-05 2008-06-12 International Business Machines Corporation Software model normalization and mediation
EP2136322A1 (en) 2008-06-18 2009-12-23 Marc Thom Collaborative processing method and system
US8930890B2 (en) 2006-12-05 2015-01-06 International Business Machines Corporation Software model skinning

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
In: Proc. IEEE VisSym '99, Springer, 1999, S.1-11 *
Meta-Object Facility (MOF TM), Version 1.4, April 2002, S. 1-1 - 2-20 (http://www.omg.org/docs /formal/02-04-03.pdf)
Meta-Object Facility (MOF TM), Version 1.4, April 2002, S. 1-1 - 2-20 (http://www.omg.org/docs/formal/02-04-03.pdf) *
Modelica Association, Modelica TM-A Unified Object-Oriented Language for Physical Systems Modeling-Language Specification, Version 1.4, Dec. 15, 2000, S. 1-30 *
TELEA, A. et al.: VISSION: An Object-Oriented Dataflow System for Simulation and Visualization *
TRÄNKLE, F. et al.: PROMOT: A Modeling Tool for Chemical Processes, Mathematical and Computer Modeling of Dynamical Systems, Vol. 6, No. 3, pp. 283-307, 2000 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2899987A1 (en) * 2006-04-14 2007-10-19 Thales Sa METHOD FOR PRODUCING AND MANAGING INTERFACE LIBRARY EVOLUTIONS
WO2007122119A1 (en) * 2006-04-14 2007-11-01 Thales Production and management method for changes to interface libraries
EP1883013A2 (en) * 2006-07-18 2008-01-30 Robert Bosch Gmbh Program component batch, method and storage medium
EP1883013A3 (en) * 2006-07-18 2008-02-06 Robert Bosch Gmbh Program component batch, method and storage medium
WO2008068187A1 (en) * 2006-12-05 2008-06-12 International Business Machines Corporation Software model normalization and mediation
US8756561B2 (en) 2006-12-05 2014-06-17 International Business Machines Corporation Software model normalization and mediation
US8930890B2 (en) 2006-12-05 2015-01-06 International Business Machines Corporation Software model skinning
EP2136322A1 (en) 2008-06-18 2009-12-23 Marc Thom Collaborative processing method and system

Similar Documents

Publication Publication Date Title
DE60311805T2 (en) Acquisition, compilation and / or visualization of structural features of architectures
DE69937332T2 (en) Method and device for software development
DE10051645B4 (en) Process control system and method for controlling a process
EP3049920A1 (en) Method and device for the automated production and provision of at least one software application
DE112011105895T5 (en) Project data generation device and programmable display device
DE112015006570T5 (en) Program producing means, program producing method and program producing program
DE102012100113A1 (en) Method, software and computer system for handling accumulated data
EP3364257B1 (en) Method for operating an engineering system for an industrial process automation system and control program
DE69907714T2 (en) COMPONENT-BASED SOURCE CODE GENERATOR METHOD
DE102016006202B4 (en) Numerical control device for managing machining data and machining results
DE102004009676A1 (en) Methods and systems for generating command support files
DE102016007651A1 (en) Numerical control with automatic selection of a storage destination for a machining program
DE10233971A1 (en) Software generating method for a software-controlled device uses a software model implemented as data in a computer to derive software program code automatically from the model
EP3719632A1 (en) Method and device for managing software modules and objects
EP1387260A1 (en) Method and system for software development
WO2007068563A1 (en) Method for processing and creating diagnostic data in a software development process
EP1862901A1 (en) Input of program commands in imperative programming languages
EP3572956A1 (en) Creation of an interdisciplinary simulation model
EP1947567A2 (en) Device and method for automatically testing model-based functions
DE112020006703T5 (en) Display image data editing program, display image data editing apparatus and display image data editing method
EP2093663A1 (en) Engineering system for developing a project and method
EP2037375B1 (en) Method for operating databases
EP4198805A1 (en) Computer-implemented method, data processing apparatus and computer program product for producing a hierarchical block diagram
EP1388785A1 (en) Method and system for transformation of software and hardware models
DE102021133736A1 (en) Computer-implemented technique for creating a hierarchical block diagram

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8130 Withdrawal