Rashid
Rashid ist der Fundort des berühmten „Steins von Rosetta“, auf dem derselbe Text in Griechisch, Demotisch und in Hieroglyphen abgebildet war. So konnte man endlich die Hieroglyphen entziffern. Da die Transformation von Code auch der Weg von einer Sprache in die andere ist und wir uns ab und zu etwas wie Code-Archäologen vorkommen passt der Name für unser Transformationswerkzeug perfekt. Rashid ist hierbei eine Vielzahl von Regelwerken für eine Vielzahl von Aufgaben. Hier eine kleine Auswahl die die Vielfalt widerspiegeln soll:
- Assembler nach Cobol oder C
- Easytrieve, Pacbase und CA-Earl nach Cobol
- Refactoring von generiertem Cobol-Code, z.B. von CA Gen oder DELTA
- PL/I und REXX nach Java
- Natural nach Cobol oder Java
- Natural Reporting Mode ersetzen durch Strucured Mode
- CICS Macro Level ersetzen mit Command Level
- Diverse Job Control Sprachen nach Bash
- NatStar nach Java
- Interpretation von CICS Tabellen, diversen DB-Schemata
- API von DB2, Oracle, IMS, CICS usw.
Durch die Fähigkeit, viele unterschiedlichen Sprachen und Quellcode-Artefakte zu verarbeiten, kann der Code einer Anwendung als Gesamtheit verarbeitet werden. Er muss nicht nach Sprachen oder technischen Themen getrennt werden.
So kann beispielsweise eine Anwendung als Ganzes transformiert werden, obwohl sie vielleicht Cobol, PL/I, Assembler, Easytrieve, Job Control Prozeduren, Utility Parameter, Datei- und Datenbankzugriffe usw. enthält: Alles kann im selben Lauf bearbeitet werden.
Darüber hinaus können auch Anpassungen Sprachen- und System-übergreifend durchgeführt werden, denn Rashid hat alle notwendigen Informationen in seinen Metadaten.
Ein paar Beispiele für Konvertierungen haben wir zum Download verfügbar:
Modernisierung der Datenhaltung
Da Rashid über die gespeicherten Metadaten jedes Feld in jedem Programm und jeder Struktur kennt, ist es relativ einfach, im Rahmen einer Modernisierung auch die Speicherung der Daten zu optimieren.

Zugriffe, die bisher vielleicht auf eine klassische Datei gingen, können so im Rahmen der Modernisierung in einen Zugriff auf eine Datenbank oder eine In-Memory Datei umgeformt werden. Auch bei der Selektion von Testdaten und -szenarien sind diese Metadaten von Nutzen.

Über Abfragen an die Metadaten kann leicht eruiert werden, wo es schreibende oder lesende Zugriffe auf Dateien oder Felder gibt. So kann eine bessere Testabdeckung erzielt werden. Dadurch ist es auch möglich durchgängig in einer ganzen Anwendung z.B. Feldformate zu ändern o.ä.
