Innovator 11. Einlagern von Header- Dateien. Karl Straußberger. HowTo.

Ähnliche Dokumente
Innovator 11 excellence. Anbindung an Visual Studio. Einführung, Installation und Konfiguration. Connect. Roland Patka.

Innovator 11 excellence. DDL-Skripten über oaw generieren. Udo Ende. HowTo.

Innovator 2009 excellence. Anbindung an Eclipse. Einführung, Installation und Konfiguration. Connect. Roland Patka.

Innovator 11 classix. Erweiterter XMI-Export aus Innovator Business und Object classix. HowTo.

Innovator 11 excellence. Suchen und Ersetzen. Texte suchen und ersetzen. Joachim Back. HowTo.

Innovator 11 classix. Java Reverse Engineering. HowTo. Ralph Schönleber.

Innovator 11 classix. Übergang OOA-OOD. Skriptbasierter Übergang von OOA nach OOD. Karl Straußberger. HowTo.

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue

Innovator 11 excellence. DDL importieren. Data-Definition-Language-Dateien in Datenbankschema importieren. HowTo.

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4

EDV HÖHNE GMBH ibs-loga

Programmierkurs C++ Kapitel 6 Module Seite 1

Innovator 11 classix. Projektpläne für MS Project aus Innovator Business classix generieren. connect. Oliver Pera.

Innovator 11. Design der Dokumentation ändern. Wie Sie die Dokumentation von Innovator Ihrer Corporate Identity anpassen. HowTo.

Innovator 11 classix. Anbindung an Eclipse. Einführung, Installation und Konfiguration. Connect. Michael Kaaden.

2 Systemadministration

Export2Something. Allgemein: Systemvoraussetzungen:

Programmieren in C++ Templates

Nutzerhinweis Verwendung nutzerdefinierter Modellelemente ExternalTypes in SimulationX 3.7

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Update von VISI 18 auf VISI 19. Release: VISI 19 Autor: Marko Bahns Update: Anja Gerlach Datum: 10. März 2011 Update: 27.Mai 2011

1 Bearbeitung alter Reports für SCHULKARTEI 4

HowTo. Code generieren mit Eclipse und oaw. Innovator Eclipse und oaw konfigurieren und zur Code-Generierung mit xpand- Schablonen nutzen

LabTech RMM. Integration von Teamviewer. Vertraulich nur für den internen Gebrauch

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

U1 3. Übung U1 3. Übung. Die Kommandos auf den folgenden Folien dienen der Veranschaulichung. Sind nicht direkt auf die Übungsaufgabe übertragbar

Sie können das Datum im Feld < Option > abändern. Klicken Sie dazu einfach in das Feld, Sie können dann ein Datum eingeben.

Integration in das Netzwerk

Exponent Version 5.0. Neue Funktionen

Collax Archive Howto

So geht s Schritt-für-Schritt-Anleitung

Innovator for Model Sketching. Kurzanleitung zu Installation und Benutzung

Einführung in die C-Programmierung

Modulare Programmierung und Bibliotheken

IBM Software Demos Rational Systems Developer Introduction

2.3 - Das Verwaltungsmodul moveon installieren - SQL-Version

Update VISI 21 auf VISI 2016 R1. Release: VISI 2016 R1 Autor: Holger Wüst Datum:

euro-bis Import von Bestellungen aus Buch- und Aboauskunft Stand

Inhalte. Einführung. Algorithmus, Programmiersprache, Compiler und Linker. Kontrollstrukturen. Präprozessoranweisungen. Libraries

Einrichten und Verwenden der Solutio Charly PA-Konzepte Schnittstelle

Upgrade Szenario SMC 2.5 auf SMC 2.6

Easylog Sendungsbenachrichtigung

Upgrade-Leitfaden. Apparo Fast Edit. Wechsel von Version 2 auf Version oder Wechsel von Version auf Version 3.0.

3 Geoverarbeitung mit dem ModelBuilder

Grundlagen und Konzepte von C Datenstrukturen

FACHHOCHSCHULE MANNHEIM

A. Konfiguration von Citavi

Compiler und Präprozessor (1) Erstellen eines Projektes

BMD NTCS STAPEL FÜR AUTOMATISCHE WEBUPDATES

Gruppe erstellen und als Datei speichern

Eine Einführung in C-Funktionen

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

Algorithmen und Datenstrukturen

AccountPlus Systemkonfiguration

3a Open BIM Workflow - Import und Weiterbearbeitung

Innovator 11 excellence. Import eines DB-Schemas mit Direktzugriff auf ein RDBMS via JDBC. HowTo. Udo Ende.

Outlook 2010 Daten importieren und exportieren

Hinweise zum Programm Überprüfung des Betriebszustandes von Kläranlagen. Bitte prüfen Sie regelmäßig den aktuellen Stand der Software im Internet!

Arbeitsabläufe FinanzProfiT Version 4.25

1.1 Features der Software Folgende Änderungen bzw. Neuerungen sind gegenüber der alten KPS-Lite 2009 Software enthalten:

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Tutorial. Bibliothek AutoGUITest V1.0. Windows-Benutzeroberflächen automatisiert testen. Ausgabe: / 13:51 Seite 1

Starten Sie Exponent und klicken Sie auf Hilfe und dann auf ÜberExponent. Notieren Sie sich die folgenden Daten:

8.1 Vom Quellcode zur ausführbaren Programm

Einführung in die Programmiersprache C

Versionsupdate von V auf V We automate your success

Schwacke Schnittstelle

Lösungsansätze bei Themen zum Smartfinder / dem Sage Solr Dienst

Erste Schritte der Programmierung in C

CADSTAR MRP-Link. MRP-Link ist erstellt von:

6 Datenbank verwalten

Newsletter erstellen

Collax -Archivierung

Leitfaden für die Bearbeitung eines Dokuments in der Dokumentenverwaltung flow2go.

Grundlagen der Informatik Vorlesungsskript

pero FSXstarter Inhaltsverzeichnis Benutzerdokumentation vom

Datenimport von csv-dateien aus Personalsoftware nach REHADAT-Elan

Handbuch. Aufzeichnung aller ein- und ausgehenden Dokumente in einem fortlaufenden Postbuch für Dokumentation und Recherche.

Grundeinstellung Shooter 2. Was für Daten benötige ich für die Grundinstallation und wie installiere ich diese von der Installations- CD

Tech-Info 315. Problembeschreibung. Lösung. Automatische Vergabe von Dateinamen für externe Dokumente. Berlin,

Kurzanleitung für den MyDrive Client

Funktionen in JavaScript

ManageHomePC v Veröffentlicht 2016 Copyright S-cubic GmbH. Krebsbachstr. 12 D Bergisch Gladbach

Infos zum Jahreswechsel 2017/18

Avenum4i - Produktverwaltung

Update von XBRL Publisher 1.11 auf XBRL Publisher

2 Eine einfache Programmiersprache

vergabeplattform.berlin.de

1. Installation und Datenbankeinrichtung

Wie erreiche ich was?

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

STP Handout. bea-unterstützung im LEXolution.DMS Outlook Desk

Schulinformations- und Planungssystem (SIP) Mecklenburg-Vorpommern

- dynamisches Laden -

Duplizieren von Report-Vorlagen für die Erstellung umfangreicher Reports (ab ArtemiS SUITE 7.2)

C++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland.

WorldShip Import Kundenadressen. Inhaltsverzeichnis

Hypothyreose - BDT-Importschnittstelle (Hypothyreose Version )

Schulinformations- und Planungssystem (SIP) Mecklenburg-Vorpommern

Transkript:

Innovator 11 Einlagern von Header- Dateien Karl Straußberger HowTo www.mid.de

Inhaltsverzeichnis Vorbemerkung... 2 Theoretischer Hintergrund... 2 Arbeitsweise der Aktualisierung... 2 Untersuchung der Dateien...2 Erstellung von DD-Einträgen...3 Erstellung von Daten und Operationen...3 Import von Header-Dateien...3 Voraussetzungen... 3 Einlagerung durchführen... 4 Untersuchung ausführen...4 Einlagerung ausführen...4 Aktualisierung anpassen... 4 Elementeigenschaften...4 Elementeigenschaften für alle Elementtypen...4 Elementeigenschaften für DD-Einträge...4 Elementeigenschaften für Operationen und Daten...5 Optionen der Engineering-Aktion...5 Anpassen der Modellkonfiguration... 6 Elementeigenschaften...6 Anlegevoreinstellungen...6 Abhängigkeiten...6 Vorbemerkung Theoretischer Hintergrund Damit Sie die Erweiterung nutzen können, benötigen Sie Innovator 8.1.04 oder neuer. Bei älteren Versionen ist der Einsatz nur begrenzt möglich (siehe Abschnitt "Voraussetzungen"). Mit der skriptbasierten Einlagerung von Header-Dateien soll die Einbindung von C-Bibliotheken erleichtert werden. Deren Daten und Operationen liegen dann als externe Definitionen vor. Außerdem lassen sich auch die Datentypen im Modell einbinden. Beim Reverse-Engineering SD arbeitet Innovator auf den Quelldateien, um alle Aufrufbeziehungen zu finden. Dies ist für den Anwendungsfall gedacht, dass vorhandener Code nun mit Innovator weiterentwickelt werden soll. Häufig findet man aber auch die Situation vor, dass in ein Projekt der C-Code einer Bibliothek eingebunden werden soll, ohne ihn direkt weiterzuentwickeln. Diese Bibliotheken sind teilweise Standardbibliotheken, aber auch durch Code-Generatoren erstellt und meist nur in Form der Header-Dateien und vorkompilierten Bibliotheksdateien vorhanden. Aufgabe dieses Skriptes ist es, die Header-Dateien von Bibliotheken zu untersuchen und deren Elemente im Modell anzulegen. Mit Hilfe dieses Skriptes werden Daten, Operationen und Typdefinitionen im Modell erstellt. Arbeitsweise der Aktualisierung Untersuchung der Dateien Die Aktualisierung ist so aufgebaut, dass sie mehrfach gestartet werden kann, ohne ein existierendes Design zu gefährden. Insbesondere werden keine Zuordnungen überschrieben oder gelöst. Die Dateien werden in mehreren Phasen untersucht. Zuerst werden alle Kommentare entfernt. Danach erfolgt die Suche nach Makros, gefolgt von der Expansion der Makros. Bei der Expansion der Makros werden unter anderem auch Bereiche zur bedingten Kompilation (#ifdef, #ifndef etc.) beachtet und die darin enthaltenen Makros nicht ausgeführt. Zusätzlich können über den Parameter defines weitere Makros definiert werden, die sich auch auf die bedingte Kompilation auswirken. 2

Der letzte Schritt besteht darin, den verbleibenden Code zu untersuchen und alle darin deklarierten Operationen, Daten und Typen zu ermitteln. Zur Bestimmung der exakten Deklaration wird dann erneut der originale Code herangezogen (Anmerkung: Sollte das gefundene Element erst durch die Anwendung von Makros entstanden sein, kann die Deklaration nur aus dem bereinigten Code ermittelt werden). Alle gefundenen Elemente werden im Modell angelegt (Anlegevoreinstellungen beachten) und ggf. wieder der Header-Datei oder dem erzeugten/selektierten Modul zugeordnet. Erstellung von DD-Einträgen Erstellung von Daten und Operationen Import von Header-Dateien Folgende Varianten von Typdefinitionen werden erkannt (kursive Bestandteile sind optional): typedef struct sname { definition } name; typedef union sname { definition } name; struct name { definition }; union name { definition }; typedef enum ename { wertliste } name; enum name { wertliste }; Definitionen von Funktionspointern typedef typ name; Bei den Varianten 1 und 2 wird die gesamte Definition in die Elementeigenschaft ctypedef übernommen, der Name wird zum Namen des DD-Eintrags und ist die einzige Variable in der Definition. Der Strukturname wird in die Elementeigenschaft cstructname übernommen. Bei den Varianten 3 und 4 wird ebenfalls die Definition in die Elementeigenschaft ctypedef übernommen, der Name wird für den Typedef durch Anhängen von _t gebildet. Bei Varianten 5 und 6 wird jeweils die Wertliste in die Elementeigenschaft cenum geladen. Bei Variante 5 wird der Enum-Name in die Elementeigenschaft cstructname übernommen. Bei Variante 6 wird der Name für den Typedef durch Anhängen von _t gebildet. Bei Funktionspointern wird lediglich der Name durch die entsprechende Variable ersetzt. Aus Deklarationen von Funktionen und Variablen werden externe Operationen und externe Datenbereiche erzeugt. Bei Operationen wird die formale Definition aus der Deklaration ermittelt, bei Datenbereichen wird die Variable als einziges Element verwendet. Deklarationen mit dem Schlüsselwort static erhalten in der Elementeigenschaft cstatic den Wert 1. Für Operationen wird die Elementeigenschaft cforward mit der eigentlichen Deklaration gefüllt, wobei Rückgabetyp, Name und Parameter Verwendung finden. Compilerspezifische Deklaratoren werden aus dem Rückgabetyp der Operation gefiltert und nur in cforward verwendet. Wenn Sie die Option import verwenden, werden die originalen Header-Dateien in das Modell importiert. Normalerweise wählen Sie diese Option, wenn Sie eine Bibliothek zur Weiterentwicklung in das Modell laden wollen. Voraussetzungen Damit Sie die Einlagerung nutzen können, benötigen Sie Innovator 8.1.04 oder neuer. Die Erweiterung funktioniert nur für die Programmiersprache C. In COBOL ist ihr Einsatz nicht sinnvoll. Ab Innovator 8.1.04 existieren für die Modellkonfiguration die Add-Ons Migration V81 C-Implementation und C-Header-Reverse (de), welche Sie über Modell>Konfiguration>Modelloptionen laden aktivieren können. 3

Einlagerung durchführen Untersuchung ausführen Einlagerung ausführen Zum Untersuchen der Header-Dateien selektieren Sie das bereits erstellte Bibliotheksmodul im Modellbrowser oder Moduldiagramm. Falls Sie nichts selektieren, wird ein Modul mit dem Namen der Header-Datei erstellt. So gehen Sie vor Um die Untersuchung auszuführen:» Selektieren Sie genau ein Modul oder das Modulpaket.» Wählen Sie den Menübefehl Engineering>Aktion ausführen> Header-Dateien untersuchen.» Wählen Sie die gewünschte Header-Datei aus. Die Engineering-Aktion wird gestartet und gibt einige Informationen im Fenster Auswertung aus. Verfolgen Sie diese, um etwaige Fehlermeldungen zu erkennen. Die Aktion erstellt Daten, Operationen und Typdefinitionen und ordnet sie dem selektierten Modul zu. Mit der Meldung Auswertung beendet wird die Aktion beendet. Zum Einlagern der Header-Dateien selektieren Sie das Paket, in dem die Module erstellt werden sollen. Falls Sie nichts selektieren, wird versucht, ein Paket mit dem Namen "Module" zu finden. So gehen Sie vor Um die Aktualisierung auszuführen:» Selektieren Sie genau ein Paket, in dem die Erstellung von externen Modulen möglich ist.» Wählen Sie den Menübefehl Engineering>Aktion ausführen> Header-Dateien einlagern.» Geben Sie in der Eingabezeile das Verzeichnis ein, in dem sich die Header-Dateien für die Bibliothek befinden. Die Aktion wird gestartet und gibt einige Informationen im Fenster Auswertung aus. Verfolgen Sie diese, um etwaige Fehlermeldungen zu erkennen. Die Aktion erstellt Module, Daten, Operationen und Typdefinitionen und ordnet sie dem jeweiligen Modul zu. Mit der Meldung Auswertung beendet wird die Aktion beendet. Aktualisierung anpassen Elementeigenschaften Die Engineering-Aktion verwendet einige Elementeigenschaften, deren Werte im Laufe der Aktualisierung gesetzt werden. Elementeigenschaften für alle Elementtypen Folgende Elementeigenschaft sollte auf (externen und internen) Modulen, Operationen und Daten angelegt werden. chheaderfile In dieser Elementeigenschaft wird der Name der Header-Datei (ohne Endung) abgelegt. Diese Elementeigenschaft wird bei der erweiterten Generierung von Header-Dateien wieder ausgelesen. Elementeigenschaften für DD-Einträge Folgende Elementeigenschaften sollten auf DD-Einträgen angelegt werden bzw. bereits existieren. chisexternal Data-Dictionary-Einträge existieren nicht als extern, deshalb kann über diese Elementeigenschaft diese Information gespeichert werden. Hier werden nur die Wert 0 und 1 benötigt. cstructname Diese Elementeigenschaft aus der C-Erweiterung von Innovator 8.1.04 speichert den Namen einer Struktur, damit eine Typdefinition der Form: typedef struct name1 {... } name2; möglich ist. In der Elementeigenschaft wird der beim Einlesen gefundene Strukturname gespeichert. 4

Optionen der Engineering-Aktion ctypedef Bei struct und union wird diese Elementeigenschaft mit der tatsächlichen Definition gefüllt. cenum Bei Aufzählungstypen wird diese Elementeigenschaft mit der Liste der Aufzählungswerte belegt. Elementeigenschaften für Operationen und Daten Folgende Elementeigenschaften sollten auf Operationen und Daten bereits existieren. cstatic Diese Elementeigenschaft aus der C-Erweiterung von Innovator 8.1.03 führt dazu, dass die Operation nicht in der Header-Datei deklariert wird. Außerdem wird die Vorwärtsdeklaration mit static generiert. Bei Daten wird die Vorwärtsdeklaration unterdrückt, da static-daten nicht deklariert werden können, sondern definiert werden müssen. cforward Diese Elementeigenschaft aus der C-Erweiterung von Innovator 8.1.03 wird dazu verwendet, um die Vorwärtsdeklaration zu speichern. Dadurch werden compiler-spezifische Deklarationen aus dem Rückgabetyp der Operation herausgehalten. Die Engineering-Aktion kann mit einigen Optionen auf den jeweiligen Einsatzbereich angepasst werden. Diese Optionen sind auch in der Hilfe zum TCL-Skript sdimphdr.tcl dokumentiert. -dir <dirlist> Mit dieser Option wird die Liste der zu durchsuchenden Verzeichnisse angegeben. Es werden darin alle Header-Dateien (Endung *.h) gesucht und abgearbeitet. -ext <fileextension> Sollte die Endung der Header-Dateien nicht *.h sein, so lässt sich dies über diese Option einstellen (nur im Zusammenhang mit dir möglich). -file <filelist> Statt ganze Verzeichnisse mit der Option dir zu durchsuchen, können auch einzelne Dateien angegeben werden (vollständiger Pfad). -import Mit dieser Option werden die Dateien auch in das Modell importiert (Anlegevoreinstellungen beachten). -comnesting Für den Fall, dass Ihr Compiler verschachtelte Kommentare unterstützt, müssen Sie diese Option verwenden, da sonst der Parser im Skript die Kommentare nicht richtig behandelt. Ist die Option nicht gesetzt, so beendet das erste */ den Kommentar, unabhängig von der Anzahl der /* innerhalb des Kommentars. -defines <definelist> Bei der Anwendung der Makros auf die Dateien werden auch Bereiche mit bedingter Kompilation (#ifdef, #ifndef etc.) beachtet und die darin definierten Makros ggf. nicht angewendet. Mit dieser Option können weitere Makros definiert werden, um die bedingte Kompilation zu beeinflussen. -tokens <tokenlist> Bei der Deklaration von Funktionen werden von manchen Compilern zusätzliche Deklaratoren erwartet. Damit diese aber nicht in den Rückgabetyp der Operation eingehen, können sie als Token eingestellt werden (reguläre Ausdrücke möglich) und werden so nur in die Elementeigenschaft cforward übernommen. -default_return <type> Funktionsdeklarationen, die keinen eigenen Rückgabetyp spezifizieren, werden in C als int behandelt. Dies entspricht auch der Standardeinstellung dieser Option. Sollte Ihr Compiler von einer anderen Einstellung ausgehen, können Sie diese beim Import angeben, damit das Modell korrekt ist. -ilabel <labelname> Für alle erstellten Operationen und Datenbereiche wird der Name der originalen Header- Datei in einer Elementeigenschaft hinterlegt. Diese Elementeigenschaft wird vom sog. Header-Skript (sdcrthdr.tcl) zur Generierung der richtigen Include-Anweisung (Standard: chheaderfile) ausgewertet. -extlabel <labelname> Bei Einträgen im Data Dictionary wird nicht zwischen intern und extern unterschieden. Damit aber die Einträge, die durch den Import der Header-Datei entstanden sind, leichter erkannt werden können, wird auf all diese Einträgen eine Elementeigenschaft mit dem Wert 1 gesetzt (Standard: chisexternal). 5

Anpassen der Modellkonfiguration Für die Durchführung der Aktualisierung sind einige Einstellungen in der Modellkonfiguration nötig, die Ihnen im Folgenden näher erläutert werden. Sollten Sie nicht mit der Konfiguration von Innovator-Modellen vertraut sein, so können Sie hier die Lektüre dieses Dokuments beenden. Die unten beschriebenen Einstellungen sind im Add-On C-Header-Reverse (de) bereits durchgeführt. Nach dessen Laden müssen Sie die Modellstrukturvorlage Header- Reverse AddOn (de) über Modell>Konfiguration>Modellstruktur nachladen. Elementeigenschaften Anlegevoreinstellungen Alle Elementeigenschaften, die im Abschnitt Elementeigenschaften spezifiziert sind, müssen definiert sein. Teilweise sind diese bereits in der Standardkonfiguration enthalten. Für die Definition der Anlegevoreinstellungen muss ein weiterer Stereotypwert für den Elementtyp Abhängigkeit[Paket] definiert werden: «create header». Einige Anlegevoreinstellungen müssen definiert werden (Menübefehl Modell>Konfiguration>Pakete>Eigenschaften, Registerkarte Anlegevoreinstellungen): Stereotyp Einträge Element Abhängigkeit Neue Pakete «module» DD-Eintrag Alle create data dictionary data dictionary «module» Externe Daten Alle create external data data operation «module» «module» Externe Operation Alle create external operation Include- Implementierung Alle create header implementation «operation» DD-Eintrag Alle create data dictionary data dictionary Abhängigkeiten Als Konsequenz der Anlegevoreinstellungen ist eine Abhängigkeit zwischen den Paketen Funktionsmodell und Typdefinitionen mit dem Stereotyp «create header» anzulegen. Copyright 2010 MID GmbH Bei Fragen wenden Sie sich bitte an unsere Hotline Telefon: +49 (0)911 / 9 68 36-22, E-Mail: support@mid.de. Dieses Dokument finden Sie neben anderen auch im exklusiven Login-Download-Bereich für Innovator-Wartungskunden unter 22http://www.mid.de/support/. Ihre MID MID GmbH, Eibacher Hauptstr. 141, D-90451 Nürnberg Telefon: +49 (0)911 / 9 68 36-0, Fax: +49 (0)911 / 9 68 36-10 E-Mail: info@mid.de, Internet: http://www.mid.de Innovator_11.2_HowTo_HeaderFiles_Einlagerung_100630.doc 6