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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
Abstract
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. Stand der Technik2. State of the technology
Stand der Technik für die Erzeugung
von Software aus Modellen (
- 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.
- 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 (
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 (
3. Der Erfindung zugrundeliegendes Problem3. The invention underlying problem
Code-Generatoren (
Im Gegensatz dazu erfordern viele
Anwendungsfälle
eine einfache Anpassbarkeit der Anweisungen an den Code-Generator
(
- 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.
- 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 (
Der Grund warum Code-Generatoren
(
- 1. Template-Sprache des jeweiligen Code-Generators
(
13 ), - 2. Struktur der Modelle (
2 ), - 3. Ziel-Sprache und Ziel-Plattform des generierten Codes (
11 ).
- 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 (
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 (
Eine weitere Alternative nach dem
Stand der Technik, um die manuellen Nacharbeiten in dieser Situation
zu vermeiden, besteht im Roundtrip-Engineering: Zuerst werden Modelle
(
4. Die Erfindung4. The invention
Die Erfindung besteht in einem Verfahren
zur Vereinfachung der Erstellung, Anpassung und Verwendung von Code-Schablonen
(
Die notwendigen Meta-Modell Erweiterungen
bestehen in zusätzlichen
Eigenschaften (
Welche Eigenschaften Modellelemente
haben können
und welche Beziehungen zwischen Modellelementen bestehen können, wird
durch die Modellierungssprache, nicht durch das Modell (
Für
die Erweiterbarkeit des Meta-Modells (
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 ).
- - 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 )).
- 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 (
- 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.
- 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
(
In
In
In
In
In
In
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 in5 und6 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.
- 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 in5 and6 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)
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)
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 |
-
2002
- 2002-07-25 DE DE2002133971 patent/DE10233971A1/en not_active Withdrawn
Non-Patent Citations (6)
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)
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 |