{"id":8082,"date":"2025-11-29T09:39:53","date_gmt":"2025-11-29T08:39:53","guid":{"rendered":"https:\/\/web-dev-weissblau.de\/microconsult\/?p=8082"},"modified":"2026-02-11T04:53:23","modified_gmt":"2026-02-11T03:53:23","slug":"code-generation-what-you-cant-do-with-it","status":"publish","type":"post","link":"https:\/\/www.microconsult.de\/en\/codegenerierung-was-man-damit-nicht-machen-kann\/","title":{"rendered":"Code generation \u2013 what you can (and can&#039;t) do with it"},"content":{"rendered":"<h2>Varianten, M\u00f6glichkeiten und Einschr\u00e4nkungen<\/h2>\n<p style=\"text-align: left;\" align=\"center\">Autoren: Horatiu O. Pilsan, Robert Amann, FH Vorarlberg<\/p>\n<h3>Beitrag &#8211; Embedded Software Engineering Kongress 2015<\/h3>\n<p><strong>Die Codegenerierung ist ein wesentlicher Teil eines modellbasierten Entwicklungsprozesses. Der Vortrag vermittelt die wichtigsten Informationen dar\u00fcber, was man sich von der Codegenerierung in Embedded Systems erwarten soll und was nicht. Ausgehend von der Grundlage, dem (Struktur-, Ablauf-, oder Regler-) Modell, werden die Varianten (signalfluss- und kontrollfluss-, zeit- und ereignisbasiert) in ihren Unterschieden durchleuchtet. Die daf\u00fcr notwendigen Laufzeitsysteme werden analysiert und deren m\u00f6gliches Zusammenspiel in einem Gesamtsystem betrachtet.<\/strong><\/p>\n<h2>Der Sinn von Modellierung, Simulation, Codegenerierung<\/h2>\n<p>Modellierung ist ein inh\u00e4rentes Element menschlichen Denkens. Es ist eine Methode, die jeder von uns anwendet, um Komplexit\u00e4t zu handhaben. Lt. Bran Selic ist es &#8222;<em>A human defence mechanism for coping with overwhelming complexity&#8220;\u00a0<\/em>(siehe [1]). Wir modellieren alle, ohne uns dessen oftmals bewusst zu werden. Eine explizite Modellierung bedeutet eine formalisierte Darstellung, die ein gemeinsames Ver\u00adst\u00e4ndnis erm\u00f6glicht. Das bedeutet, dass Konventionen gefolgt wird, die jenen, die das Modell verwenden, bekannt sind. Ein Beispiel daf\u00fcr ist die Legende (Konvention) eines Stadtplans (Modell). Daraus entstehen die bekannten Vorteile f\u00fcr die Kommunikation, Dokumentation, \u00dcbergabe, Einschulung, etc.<\/p>\n<p>Dar\u00fcber hinaus ist Modellierung die Grundlage f\u00fcr Simulation, weshalb die Begriffe gern gemeinsam verwendet werden. Auf die Simulation wird hier, trotz ihrer Be\u00addeutung und Verbreitung, nicht im Detail eingegangen.<\/p>\n<p>Aber Modelle sind auch der Ausgangspunkt f\u00fcr Codegenerierung. Deren Nutzen kann im Wesentlichen durch folgende drei Punkte dargestellt werden:<\/p>\n<ul>\n<li>Der Aufwand und die Zeit f\u00fcr die Implementierung k\u00f6nnen reduziert werden.<\/li>\n<li>Modell und Code k\u00f6nnen (leichter) syncrhon gehalten werden.<\/li>\n<li>Die Azahl Fehler im Code kann verringert werden.<\/li>\n<\/ul>\n<p>Im Weiteren bezieht sich dieser Artikel nur auf jene Modelle und deren Codegenerierung, bei denen der generierte Code auf dem Embedded System l\u00e4uft. So wird z.B. nicht auf die Generierung von Code eingegangen, der bei Hardware-in-the-Loop notwendig ist, um die Modelle, die das Umfeld eines Embedded Systems simulieren, auf einem Rechner quasi-zeitkontinuierlich ausf\u00fchren zu k\u00f6nnen. Details dazu siehe z.B. [2].<\/p>\n<p>Auch wird auf die gro\u00dfe Bedeutung der Verifikation und Validierung der Modelle nicht eingegangen. Einige Prinzipien dazu finden sich z.B. in [3] und [4].<\/p>\n<p>In den folgenden drei Unterkapiteln werden die f\u00fcr die Codegenerierung relevanten Typen von Modellen, der erzeugte Code und etwaige Laufzeitsysteme beschrieben, bevor Gemeinsamkeiten, Unterschiede und Einschr\u00e4nkungen skizziert werden.<\/p>\n<h2>Strukturmodelle<\/h2>\n<p>Strukturmodelle sind sehr gut geeignet, um die Aufteilung (logisch, physikalisch, etc.) einer Software in Elemente und die Beziehungen zwischen diesen darzustellen. Diese Modelle sind statisch, denn sie beschreiben kein Verhalten. Somit werden sie nicht f\u00fcr Simulationszwecke erstellt, sondern dienen prim\u00e4r der Darstellung eines Software-Systems. F\u00fcr solche Modelle k\u00f6nnen z.B. einige Diagramme der Unified Modeling Language (UML) verwendet werden, wobei das Klassendiagramm das am weitesten verbreitete ist.<\/p>\n<p>Zahlreiche Softwarepakete zur Modellierung bieten die M\u00f6glichkeit, Code aus Strukturmodelen zu erzeugen. Als bekanntestes Beispiel sei hier ebenfalls das UML-Klassendiagramm erw\u00e4hnt. Das Ergebnis ist ein Code-Framework mit Konstruktoren\/ Destruktoren sowie Methoden\/ Operationen in der gew\u00e4hlten Programmiersprache, z.B. C++. Der Teil vom Code, der das Verhalten implementiert, kann dann entweder im Modell oder direkt im Code eingef\u00fcgt werden. Der gro\u00dfe Vorteil dieses Vorgehens liegt in der erleichterten Synchronisation zwischen Modell und Code. Viele Werkzeuge unterst\u00fctzen Roundtrip Engineering, das die Synchronizit\u00e4t sicherstellt. Ein Laufzeitsystem ist in diesem Fall nicht notwendig.<\/p>\n<h2>Zeitbasierte Verhaltensmodelle<\/h2>\n<p>Die zeitbasierten Verhaltensmodelle haben ihren Ursprung im Begriff &#8222;System Dynamics&#8220;, der von Prof. Jay Forrester vom Massachusetts Institute of Technology Mitte der 50er-Jahre gepr\u00e4gt wurde (siehe [5], S. 38). Wichtig sind die R\u00fcckkopplungsschleifen, die das &#8222;Herz&#8220; eines jeden Systems bilden. Das Modell ist im Grunde eine Darstellung der daraus resultierenden differential-algebraischen Gleichungssysteme. Somit bedeutet Simulation auch die numerische L\u00f6sung dieser Gleichungssysteme. Zeit wird sowohl kontinuierlich modelliert, um das Verhalten der Systeme (z.B. Regelstrecke) zu beschreiben, als auch diskret f\u00fcr das Verhalten der computerbasierten Kontrolle (z.B. Regler). Da bei solchen Modellen die Verbindungen zwischen den Elementen in Form von Signalen dargestellt werden, wie in Abb. 1 (siehe\u00a0<a title=\"Codegenerierung - was man damit (nicht) machen kann (PDF-Datei)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_mod_codegenerierung_fh_voralberg_pilsan-amann_1.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) beispielhaft veranschaulicht, kann man hier auch von signalbasierten Systemen sprechen.<\/p>\n<p>Bei signalbasierten Systemen bedeutet Codegenerierung die Umwandlung der Algorithmen (Beispiel: Regler) in eine Programmiersprache, meistens &#8222;C&#8220;. Dabei ist sp\u00e4testens vor der Codegenerierung eine Zeitdiskretisierung dieser Komponenten durchzuf\u00fchren. F\u00fcr eine korrekte Ausf\u00fchrung ist es essentiell, den richtigen Zeitpunkt einzuhalten. Es wird in der Regel ein zyklisch wiederholendes Verhalten ben\u00f6tigt, das auf einem zeitbasierten Laufzeitsystem aufsetzt. Als weit verbreitetes Beispiel daf\u00fcr sei hier ein Echtzeitbetriebssystem erw\u00e4hnt, das pr\u00e4emptives priorit\u00e4tsbasiertes Scheduling verwendet. Die Priorit\u00e4ten der Threads werden mittels der Rate-Monotonic-Methode vergeben. Das bedeutet, dass ein Thread eine umso h\u00f6here Priorit\u00e4t hat, umso k\u00fcrzer seine Periode ist. Damit werden schnellere Prozesse bevorzugt. Meistens ist in diesem Fall die Periode auch gleichzeitig die Deadline, bis zu welcher der Thread abgearbeitet werden muss.<\/p>\n<h2>Ereignisbasierte Verhaltensmodelle<\/h2>\n<p>Im Gegensatz dazu beschreiben ereignisbasierte Verhaltensmodelle Prozesse, Sequenzen oder Abl\u00e4ufe, in denen Ereignisse (Events) als Ausl\u00f6ser von Aktionen dienen. In diesem Zusammenhang wird gern der Begriff &#8222;Discrete Event Modeling\/Simulation&#8220; verwendet. Ein gutes Beispiel hierf\u00fcr sind Modelle von Zustandsautomaten, die u.a. mit UML-Zustandsdiagrammen dargestellt werden k\u00f6nnen, wie in Abb. 2 (siehe\u00a0<a title=\"Codegenerierung - was man damit (nicht) machen kann (PDF-Datei)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_mod_codegenerierung_fh_voralberg_pilsan-amann_1.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) beispielhaft veranschaulicht. Das Verhalten eines Automaten wird dadurch bestimmt, dass als Folge eines Ereignisses eine Transition ausgel\u00f6st wird, wodurch sich einerseits der Zustand des Systems \u00e4ndert und andererseits Aktionen ausgef\u00fchrt werden. Der Begriff kontrollflussbasierte Systeme ist f\u00fcr solche Modelle ebenso zul\u00e4ssig. Simulation bedeutet in diesem Fall, das Verhalten des Systems nach Eintreffen eines Events nachzubilden.<\/p>\n<p>Im Falle von ereignisbasierten Systemen spielt das Laufzeitsystem eine wesentliche Rolle. Ein Beispiel daf\u00fcr ist ein Zustandsautomat, der die Ausf\u00fchrung des Verhaltens erm\u00f6glicht, das mit einem UML-Zustandsdiagramms modelliert wurde. Dazu wird das in Abb. 3 (siehe\u00a0<a title=\"Codegenerierung - was man damit (nicht) machen kann (PDF-Datei)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_mod_codegenerierung_fh_voralberg_pilsan-amann_1.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) dargestellte Prinzip verwendet, das einen Event-Dispatcher und eine Event-Queue beinhaltet und dem Run-to-Completion-Paradigma folgt, wie es in der UML-Spezifikation (siehe [3], S. 314f) empfohlen wird: Der Dispatcher erlangt erst wieder die Kontrolle \u00fcber das System, nachdem s\u00e4mtliche Aktionen der ausgel\u00f6sten Transition vollst\u00e4ndig abgearbeitet wurden. Zeiten sind in diesem Fall zyklische Ereignisse oder Verz\u00f6gerungen. Sie werden ebenfalls als Ereignisse modelliert und mittels Betriebssystem-Timer implementiert. Das Run-to-Completion-Paradigma hat den Vorteil, dass das Verhalten des Automaten eindeutig bestimmt ist und verh\u00e4ltnisma\u00dfig einfach implementiert werden kann. Um Echtzeitprobleme zu meiden, kann es notwendig sein, dass mehrere Automaten in parallel laufenden Threads aktiv sind, wie in Abb. 3 (siehe\u00a0<a title=\"Codegenerierung - was man damit (nicht) machen kann (PDF-Datei)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_mod_codegenerierung_fh_voralberg_pilsan-amann_1.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) beispielhaft dargestellt.<\/p>\n<h2>Zur Codegenerierung<\/h2>\n<p>Codegenerierung hat gewisse Eigenschaften und Einschr\u00e4nkungen, die zu ber\u00fccksichtigen sind, bzw. es gibt Missverst\u00e4ndnisse, die auszur\u00e4umen sind. Es gibt kaum ein Modell, aus dem Code generiert wurde, das lauff\u00e4hig ist, ohne dass man selbst zus\u00e4tzlichen Code einf\u00fcgen muss. Das Nutzverhalten muss irgendwie beschrieben und die Anbindung an die Hardware festgelegt werden. Signalbasierte Systeme k\u00f6nnen ohne zus\u00e4tzlichen Code auskommen, da das Verhalten z.B. im Regler festgelegt ist. Wenn dann noch die Ein- und Ausg\u00e4nge direkt als Bl\u00f6cke im Modellierungswerkzeug verf\u00fcgbar sind, ist die Hardwareanbindung auch gegeben. Bei den ereignisbasierten Systemen sind aber die Aktionen, die durchgef\u00fchrt werden, zu spezifizieren. Das erfolgt in der Regel in einer Hochsprache. Ebendort erfolgt die Kopplung an die Hardware. Auch bleibt es einem Anwender nicht erspart, das Modell bzw. den generierten Code mit anderen Komponenten zu koppeln, z.B. Kommunikationsbausteinen. Diese sind quasi immer vorhanden und in den Modellierungswerkzeugen nicht abbildbar.<\/p>\n<p>Die Qualit\u00e4t des generierten Codes ist f\u00fcr dessen Verwendung ausschlaggebend. Dazu z\u00e4hlt in erster Linie die Effizienz. Fragen wie: &#8222;<em>Wie ressourcenverschwenderisch sind Codegeneratoren?<\/em>&#8222;, &#8222;<em>Kann man den generierten Code produktiv einsetzen?<\/em>&#8222;, &#8222;<em>Werden Fixed- statt Floating-Point-Typen unterst\u00fctzt?<\/em>&#8220; lassen sich immer leichter im Sinne des Einsatzes von Codegeneratoren beantworten. Wichtig ist es aber, das Gesamtbild zu betrachten, neben dem Code selbst auch die Laufzeitsysteme.<\/p>\n<p>Die Lesbarkeit des generierten Codes ist ebenso ein wichtiges Qualit\u00e4tsmerkmal. Vor allem dann, wenn das Ergebnis mit anderem Code zusammenspielen muss oder wenn Codeteile eingef\u00fcgt werden m\u00fcssen (was nicht unbedingt empfehlenswert ist). Die Unterst\u00fctzung durch Werkzeuge ist nicht durchg\u00e4ngig. Wichtig ist dabei, dass die Tools die Simulation des entsprechenden Verhaltens unterst\u00fctzen, denn nur dann kann Code-Generierung produktiv im Entwicklungsprozess eingesetzt werden.<\/p>\n<p>UML-Tools unterst\u00fctzen struktur- und ereignisbasierte Modelle, w\u00e4hrend zeit- und ereignisbasierte Modelle z.B. von MatLab unterst\u00fctzt werden. Die Beschreibung der Laufzeitsysteme l\u00e4sst erkennen, dass deren Zusammenspiel in einem Embedded System aufgrund der divergierenden Funktionsprinzipien nicht einfach ist. Zwar werden in den Tools oft Bl\u00f6cke daf\u00fcr angeboten und das verwendete Echtzeitbetriebssystem ist das gleiche, aber bei der Kopplung ist zu beachten, dass ein Zeitverhalten entsteht, das von der Implementierung der Laufzeitsysteme abh\u00e4ngt.<\/p>\n<h2>Fazit<\/h2>\n<p>Codegenerierung ist n\u00fctzlich und sinnvoll, wenn auch nicht uneingeschr\u00e4nkt. Der Sinn dieses Beitrags ist es nicht, jemanden von deren Einsatz abzuhalten, sondern Merkmale aufzuzeigen, die es zu ber\u00fccksichtigen gilt.<\/p>\n<p>Wegen der Unterschiede zwischen den Varianten ist es unbedingt notwendig, die Anwendung genau zu analysieren, um den optimalen Einsatz von Codegenerierung festzulegen.<\/p>\n<h2>Literatur- und Quellenverzeichnis<\/h2>\n<p>[1]\u00a0\u00a0<a href=\"https:\/\/www.modprod.liu.se\/MODPROD2011\/1.252942\/modprod2011-day2-talk1-keynote-Bran-Selic-Abstraction.pdf\" target=\"_blank\" rel=\"noopener\">https:\/\/www.modprod.liu.se\/MODPROD2011\/1.252942\/modprod2011-day2-talk1-keynote-Bran-Selic-Abstraction.pdf<\/a><\/p>\n<p>[2]\u00a0 Michael Gl\u00f6ckler &#8222;Simulation mechatronischer Systeme. Grundlagen und technische Anwendung&#8220;, Springer Vieweg, 2014<\/p>\n<p>[3]\u00a0\u00a0<a href=\"https:\/\/www.informs-sim.org\/wsc11papers\/016.pdf\" target=\"_blank\" rel=\"noopener\">https:\/\/www.informs-sim.org\/wsc11papers\/016.pdf<\/a><\/p>\n<p>[4]\u00a0\u00a0<a href=\"https:\/\/www.ltas-vis.ulg.ac.be\/cmsms\/uploads\/File\/LosAlamos_VerificationValidation.pdf\" target=\"_blank\" rel=\"noopener\">https:\/\/www.ltas-vis.ulg.ac.be\/cmsms\/uploads\/File\/LosAlamos_VerificationValidation.pdf<\/a><\/p>\n<p>[5]\u00a0 Andrei Borshchev \u201cThe Big Book of Simulation Modeling: Multimethod Modeling with Anylogic 6\u201d Anylogic North America, 2013<\/p>\n<p>[6]\u00a0\u00a0<a href=\"https:\/\/www.omg.org\/spec\/UML\/2.5\/PDF\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.omg.org\/spec\/UML\/2.5\/PDF\/<\/a><\/p>\n<p><a title=\"Codegenerierung - was man damit (nicht) machen kann (PDF-Datei)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_mod_codegenerierung_fh_voralberg_pilsan-amann_1.pdf\" target=\"_blank\" rel=\"noopener\"><strong>Beitrag als PDF downloaden<\/strong><\/a><\/p>\n<hr \/>\n<h2>Modellierung &#8211; MicroConsult Trainings &amp; Coachings<\/h2>\n<p><strong>Wollen Sie sich auf den aktuellen Stand der Technik bringen?<\/strong><\/p>\n<p>Dann informieren Sie sich\u00a0<a title=\"Alle Trainings und Termine\" href=\"https:\/\/www.microconsult.de\/alle-trainings-termine-komplettuebersicht\/\" target=\"_blank\" rel=\"noopener\"><strong>hier<\/strong>\u00a0<\/a>zu Schulungen\/ Seminaren\/ Trainings\/ Workshops und individuellen Coachings von MircoConsult zum Thema Modellierung \/Embedded- und Echtzeit-Softwareentwicklung.<\/p>\n<p><strong>Training &amp; Coaching zu den weiteren Themen unseren Portfolios finden Sie\u00a0<a title=\"Training &amp; Beratung - alle Themen\" href=\"https:\/\/www.microconsult.de\/training-beratung\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/strong><\/p>\n<hr \/>\n<h2>Modellierung &#8211; Fachwissen<\/h2>\n<p>Wertvolles Fachwissen zum Thema Modellierung \/Embedded- und Echtzeit-Softwareentwicklung steht\u00a0<a title=\"Embedded- und Echtzeit-Softwareentwicklung\" href=\"https:\/\/www.microconsult.de\/embedded-und-echtzeit-softwareentwicklung\/\" target=\"_blank\" rel=\"noopener\"><strong>hier<\/strong>\u00a0<\/a>f\u00fcr Sie zum kostenfreien Download bereit.<\/p>\n<p><a title=\"Embedded- und Echtzeit-Softwareentwicklung\" href=\"https:\/\/www.microconsult.de\/embedded-und-echtzeit-softwareentwicklung\/\" target=\"_blank\" rel=\"noopener\"><strong>Zu den Fachinformationen<\/strong><\/a><\/p>\n<p><strong>Fachwissen zu weiteren Themen unseren Portfolios finden Sie <a title=\"Fachinformationen\" href=\"https:\/\/www.microconsult.de\/fachwissen\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Varianten, M\u00f6glichkeiten und Einschr\u00e4nkungen Autoren: Horatiu O. Pilsan, Robert Amann, FH Vorarlberg Beitrag &#8211; Embedded Software Engineering Kongress 2015 Die Codegenerierung ist ein wesentlicher Teil eines modellbasierten Entwicklungsprozesses. Der Vortrag vermittelt die wichtigsten Informationen dar\u00fcber, was man sich von der Codegenerierung in Embedded Systems erwarten soll und was nicht. Ausgehend von der Grundlage, dem (Struktur-, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[],"tags":[],"class_list":["post-8082","post","type-post","status-publish","format-standard","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Codegenerierung - was man damit (nicht) machen kann - MicroConsult Academy GmbH<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.microconsult.de\/en\/code-generation-what-you-cant-do-with-it\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Codegenerierung - was man damit (nicht) machen kann - MicroConsult Academy GmbH\" \/>\n<meta property=\"og:description\" content=\"Varianten, M\u00f6glichkeiten und Einschr\u00e4nkungen Autoren: Horatiu O. Pilsan, Robert Amann, FH Vorarlberg Beitrag &#8211; Embedded Software Engineering Kongress 2015 Die Codegenerierung ist ein wesentlicher Teil eines modellbasierten Entwicklungsprozesses. Der Vortrag vermittelt die wichtigsten Informationen dar\u00fcber, was man sich von der Codegenerierung in Embedded Systems erwarten soll und was nicht. Ausgehend von der Grundlage, dem (Struktur-, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microconsult.de\/en\/code-generation-what-you-cant-do-with-it\/\" \/>\n<meta property=\"og:site_name\" content=\"MicroConsult Academy GmbH\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-29T08:39:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-11T03:53:23+00:00\" \/>\n<meta name=\"author\" content=\"weissblau media\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"weissblau media\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/codegenerierung-was-man-damit-nicht-machen-kann\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/codegenerierung-was-man-damit-nicht-machen-kann\\\/\"},\"author\":{\"name\":\"weissblau media\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"headline\":\"Codegenerierung &#8211; was man damit (nicht) machen kann\",\"datePublished\":\"2025-11-29T08:39:53+00:00\",\"dateModified\":\"2026-02-11T03:53:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/codegenerierung-was-man-damit-nicht-machen-kann\\\/\"},\"wordCount\":1669,\"commentCount\":0,\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/codegenerierung-was-man-damit-nicht-machen-kann\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/codegenerierung-was-man-damit-nicht-machen-kann\\\/\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/codegenerierung-was-man-damit-nicht-machen-kann\\\/\",\"name\":\"Codegenerierung - was man damit (nicht) machen kann - MicroConsult Academy GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\"},\"datePublished\":\"2025-11-29T08:39:53+00:00\",\"dateModified\":\"2026-02-11T03:53:23+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/codegenerierung-was-man-damit-nicht-machen-kann\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/codegenerierung-was-man-damit-nicht-machen-kann\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/codegenerierung-was-man-damit-nicht-machen-kann\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.microconsult.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Codegenerierung &#8211; was man damit (nicht) machen kann\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/\",\"name\":\"MicroConsult Academy GmbH\",\"description\":\"Professionelle Schulungen, Beratung und Projektunterst\u00fctzung\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.microconsult.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\",\"name\":\"weissblau media\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"caption\":\"weissblau media\"},\"sameAs\":[\"https:\\\/\\\/www.microconsult.de\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Code generation - what you can (and can&#039;t) do with it - MicroConsult Academy GmbH","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.microconsult.de\/en\/code-generation-what-you-cant-do-with-it\/","og_locale":"en_GB","og_type":"article","og_title":"Codegenerierung - was man damit (nicht) machen kann - MicroConsult Academy GmbH","og_description":"Varianten, M\u00f6glichkeiten und Einschr\u00e4nkungen Autoren: Horatiu O. Pilsan, Robert Amann, FH Vorarlberg Beitrag &#8211; Embedded Software Engineering Kongress 2015 Die Codegenerierung ist ein wesentlicher Teil eines modellbasierten Entwicklungsprozesses. Der Vortrag vermittelt die wichtigsten Informationen dar\u00fcber, was man sich von der Codegenerierung in Embedded Systems erwarten soll und was nicht. Ausgehend von der Grundlage, dem (Struktur-, [&hellip;]","og_url":"https:\/\/www.microconsult.de\/en\/code-generation-what-you-cant-do-with-it\/","og_site_name":"MicroConsult Academy GmbH","article_published_time":"2025-11-29T08:39:53+00:00","article_modified_time":"2026-02-11T03:53:23+00:00","author":"weissblau media","twitter_card":"summary_large_image","twitter_misc":{"Written by":"weissblau media","Estimated reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microconsult.de\/codegenerierung-was-man-damit-nicht-machen-kann\/#article","isPartOf":{"@id":"https:\/\/www.microconsult.de\/codegenerierung-was-man-damit-nicht-machen-kann\/"},"author":{"name":"weissblau media","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"headline":"Codegenerierung &#8211; was man damit (nicht) machen kann","datePublished":"2025-11-29T08:39:53+00:00","dateModified":"2026-02-11T03:53:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microconsult.de\/codegenerierung-was-man-damit-nicht-machen-kann\/"},"wordCount":1669,"commentCount":0,"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.microconsult.de\/codegenerierung-was-man-damit-nicht-machen-kann\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.microconsult.de\/codegenerierung-was-man-damit-nicht-machen-kann\/","url":"https:\/\/www.microconsult.de\/codegenerierung-was-man-damit-nicht-machen-kann\/","name":"Code generation - what you can (and can&#039;t) do with it - MicroConsult Academy GmbH","isPartOf":{"@id":"https:\/\/www.microconsult.de\/#website"},"datePublished":"2025-11-29T08:39:53+00:00","dateModified":"2026-02-11T03:53:23+00:00","author":{"@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"breadcrumb":{"@id":"https:\/\/www.microconsult.de\/codegenerierung-was-man-damit-nicht-machen-kann\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microconsult.de\/codegenerierung-was-man-damit-nicht-machen-kann\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.microconsult.de\/codegenerierung-was-man-damit-nicht-machen-kann\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microconsult.de\/"},{"@type":"ListItem","position":2,"name":"Codegenerierung &#8211; was man damit (nicht) machen kann"}]},{"@type":"WebSite","@id":"https:\/\/www.microconsult.de\/#website","url":"https:\/\/www.microconsult.de\/","name":"MicroConsult Academy GmbH","description":"Professional training, consulting and project support","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.microconsult.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a","name":"weissblau media","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","caption":"weissblau media"},"sameAs":["https:\/\/www.microconsult.de"]}]}},"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8082","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/comments?post=8082"}],"version-history":[{"count":7,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8082\/revisions"}],"predecessor-version":[{"id":11598,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8082\/revisions\/11598"}],"wp:attachment":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/media?parent=8082"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/categories?post=8082"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/tags?post=8082"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}