Profil: Dr. Jürgen Vollmer
Personendaten
Schwerpunkt
Design und Implementierung von Werkzeugen zur
- Analyse
- Transformation
- Übersetzung
von Programmen mittels Compilerbau-Technologie.
Hauptanwendungssprachen sind: COBOL, SQL, PL/1, C, C/C++, Java, etc.
Berufserfahrung
- 2008 - heute
- Professor
für Lehraufgaben an der
Dualen Hochschule Baden-Württemberg
(bis 1. März 2009 Berufsakademie Karlsruhe) im Studienbereich Technik,
in den Studiengängen der Informatik.
Seit 2010 Studiengangsleiter im Studiengang Informatik (Informationstechnik).
- 1996 - 2008
- freiberufliche Tätigkeit
- 1989 - 1996
- Wissenschaftlicher Mitarbeiter bei Forschungsstelle der
Gesellschaft für Mathematik und
Datenverarbeitung (GMD) Karlsruhe,
und nach deren Schließung an der
Universität Karlsruhe (Uni).
- 1986
- Auslandsaufenthalt an der Uni Trondheim / Norwegen
- 1985
- Auslandsaufenthalt bei SINTEF Trondheim / Norwegen
- 1983 und 1984
- Werkstudent bei Siemens Karlsruhe
- 1982 - 1989
- Wissenschaftlicher Hilfsangestellter an der Uni und GMD
Seit 2008
Für TelefonSeelsorge Deutschland wurden zwei Web-Applikationen entwickelt und betrieben.
- TSbussi (seit 2011)
-
TSbussi
ist eine Web-Applikation zur Erstellung der Gesprächsstatistik der TelefonSeelsorge
Deutschland.
TSbussi
wird nach seiner Einführung von allen rund 100 TelefonSeelsorge-Stellen in
Deutschland benutzt werden.
- TSplan (seit 2008)
-
TSplan
(TelefonSeelsorge-Dienstplanung) ist ein Programm zur Ünterstützung der Dienstplanung und Mitarbeiterverwaltung
einer TelefonSeelsorge Stelle.
TSplan
wird inzwischen von über 10% der TelefonSeelsorge-Stellen in Deutschland benutzt
(siehe Refrenzen).
Ein Prototyp des
TSplan-Programmes
wurde 2006 als vom Autor initiierte und betreute Studienarbeit an der
Dualen Hochschule Karlsruhe
(vormals Berufsakademie Karlsruhe) von den Studenten
Andreas Dietsche, Christian Friedrich und Alexander Nuernberger
erstellt. 2007 wurde dieser Prototyp dann von Sven Ferber in seiner
Studienarbeit ergänzt. Dieser Prototyp bildete die Grundlage der jetzigen, vollständig neu entwickelten Implementierung des Systems.
Freiberufliche Tätigkeit 1996 - 2008
Die freiberuflichen Projekte im Zeitraum 1996 - 2008 wurden in Zusammenarbeit mit der Firma
CoCoLab
durchgeführt, welche die
Cocktail-Compilerbauwerkzeuge
und Teile der
Parser beisteuert.
Es handelt sich meist um Projekte mit deutschen Banken sowie deutschen und
französischen Softwarehäusern im Zusammenhang der (halb)-automatischen
Transformation von COBOL Programmen (vergleichbar mit dem Y2K-Problem) und
Abbildung von Quellinformationen (für COBOL, Java, C, SQL, REXX, PL/1, usw.)
in diverse Repositories.
Die Projekte wurden unter Linux entwickelt und dann auf verschiedensten
Plattformen portiert, z.B. Microsoft/Windows, AIX, Solaris, IBM/MVS. Unter
Linux wurden die "üblichen" Entwicklungswerkzeuge benutzt: emacs, gcc, gdb,
make, perl, rcs und cvs. Unter Microsoft: cygwin und VisualStudio.
Allgemein (interne Projekte für CoCoLab)
- Design und Implementierung von Bibliotheksmodulen für die
Cocktail-Toolbox.
- Entwurf und Realisierung einer neuen Build-Struktur für die
Kundenprojekte.
REXX (2006)
Entwicklung des Dokumentationswerkzeuges rexx2html, das
annotierte HTML-Dateien aus REXX Quellen erzeugt.
Die zusätzlichen Informationen basieren auf einer Kontrollfluß- und
Callanalyse, die der CoCoLab REXX Parser auf den REXX Quellen
durchführt.
COBOL (seit 2003, diverse Kunden)
- Slicing für COBOL.
- Präzise Size/Offset (Speicherplatz) Berechnungen für
COBOL-Variablen.
- Berechnung diverser Metriken, z.B. "Cyclomatic Complexity Metrics" für
COBOL.
- Zuarbeit für einen UNISYS->IBM COBOL-Konverters.
PLANET (franz. Hersteller von Kosmetikartikeln, in Zusammenarbeit
mit einem franz. Softwarehaus, 2003)
Eine ADABAS Datenbank sollte um div. Felder erweitert werden. Also Folge
davon mußten die Datenbankzugriffe in COBOL und Natural Programmen
angepaßt werden. Vom Kunden wurden die Code-Transformationen
(mehr oder weniger präzise) spezifiziert.
Implementierung einer vollautomatischen Code-Transformation
von COBOL und Natural-Quellen, welche die neuen Zugriffe realisierten.
Das Projekt brachte nach Aussagen des Kunden eine Reduktion des Aufwands im
Vergleich zur manuellen Durchführung der Transformation um den Faktor 1.000.
Es wurden ca. 70.000 Editieroperationen (insert/replace/delete) für
ca. 41.000 Transformationsregelanwendungen automatisch durchgeführt.
CICS (für diverse Kunden 2004)
Kontrollflußanalyse für CICS
SQL-Metriken (verschiedene Banken, zusammen mit einer weiteren Firma, 2001
und 2004)
Ausgehend von dem DB2 bzw. dem neuen SQL Parser wurden diverse Metriken und
Cross-Referenz-Information-Werkzeuge implementiert.
Mit diesen Systemen wurden die vollständigen SQL-Quellen der beiden
Banken analysiert.
SQL (interne Entwicklung, seit 2000)
- Entwicklung eines "universellen" SQL-Parsers, welcher die SQL-Dialekte
DB2, Oracle, Microsoft Server 2005 / TSQL, Sybase,
Informix in all ihren Varianten "beherrscht".
- Design und Implementierung einer Namensanalyse.
- Wartung und Pflege des Parser im Einsatz bei verschiedenen Kunden.
WPKN (eine Bank in Frankfurt, 2001-2002)
Umstellung von Wertpapierkennummern von 6-Stellig numerisch auf 12-stellig
alphanumerisch. Die EZB (europäische Zentralbank) forderte diese Umstellung.
Die COBOL-Quellen der Bank sollten (halb)-automatisch so angepaßt werden,
daß sie die neue WPKN verarbeiten konnten. Dabei war absolute Zuverlässigkeit
bzgl. der Korrektheit der geänderten Codestücke gefordert.
Ziel des Projektes war das Design und Implementierung eines Werkzeugs,
welches die Umstellung anhand von vorgegebenen bzw. zu entwickelnden
Regeln durchführt.
Eine automatische Umstellung sollte nur dort erfolgen, wo dies zu 100% sicher
war. Für Zweifelsfälle (d.h. wenn nicht genügend Informationen aus dem
zu transformiereden Programm gewonnen werden konnte) sollte eine
Transformation vorgeschlagen werden, die von COBOL-Programmieren
verifiziert werden mußte.
Es wurde auch eine Erklärungskomponente (Perl+HTML) entwickelt,
welche die "Gründe" für eine automatische Transformation darstellte.
("Gründe" bedeutet hierbei:
welche COBOL-Variablen wurden wo und wie in der Quelle modifiziert,
um sie als automatisch WPKN-relevant einzustufen und damit zu
transformieren).
Zur Lösung wurden Techniken aus der Compiler-Optimierung von Programmen
benutzt.
Das Projekt war äußert erfolgreich, denn die Bank war als eine wenigen
deutschen Banken rechtzeitig zum von der EZB geforderten Termin mit der
Umstellung fertig. Die Arbeitsersparnis (inkl. der Entwicklungszeit des
Werkzeugs) des (halb)-automatischen Ansatzes im Vergleich zu geschätzter
"Handarbeit" betrugen laut Angaben der Bank 600 Personentage was ca. 30%
schneller bzw. billiger bedeutete.
Siehe auch:
Erfahrungen mit der
werkzeug-gestützten Änderung von COBOL-Systemen,
Eingeladener Vortrag, gehalten auf der Fachtagung der "Special Interest
Group of the Swiss Informaticians Society" (SI) Software-Engineering,
SI-SE 2003. Thema der Tagung: "Software-Sanierung,
Herausforderungen Ansätze Erfahrungen", Universität Zürich-Irchel
13./14. März 2003.
Redokumentation (ein französisches Softwarehaus, 1999-2002)
Das Softwarehaus entwickelte ein System zur "Redokumentation" von
COBOL, PL/1, Java, C/C++, SQL Programmen.
- Implementierung der Programmanalysatoren und Berechnungen von
Programm-Metriken und deren Ausgabe welche die Basis für die
Redokumentation der Programme diente.
- "Plan-Detection":
In COBOL-Programmen sollten CALL's auf andere Programme dokumentiert werden,
indem ihnen eine Bedeutung in menschenlesbarer Beschreibung zugeordnet
werden sollte. Die Bedeutung eines CALL's ergab sich dabei aus den
übergebenen Parameter, die an "entfernten" Stellen im Programm definiert
werden konnten. Es mußten also die Werte der Parameter beim CALL
bestimmt werden (mittels der "Konstantenpropagation" genannten Technik,
wie sie bei optimierenden Compilern benutzt wird).
Die sogenannten "Pläne" (Mengen Parameter und sonstigen Randbedingungen,
und ihre "Bedeutung") wurde in einer einfachen "Programmiersprache"
definiert, welche zur Laufzeit zusammen mit dem COBOL-Programm
ausgewertet wurde.
REPTIL (eine Bank in Frankfurt, 1998-2005)
REPTIL ist ein Repository für Programme zur Darstellung von
programmübergreifenden Informationen (Benutzte Dateien, Datenbanken,
Quellcode, usw).
- Implementierung eines DB2-Parsers.
- Entwicklung einer Kontroll- und Datenflußanalyse für COBOL sowie einiger
Visualisierungswerkzeuge mittels Perl/TK und Perl+Graphvisualisierung
zur besseren Analyse von internen Abläufen in COBOL-Programmen und über
Programmgrenzen hinaus.
- Entwurf der Datenmodellierung für
COBOL, DB2, Informix, C/C++, Java, PL/1, rexx, clist, CICS, OPL,
Powerscript, Shell, Visual-Basic, HTML, MSP.
- Implementierung der meisten Abbildungen und Betreuung der Implementierung
der anderen.
(Die Parser existieren bereits).
TCD (Softwarehaus in München, 1997-1998)
Design und Implementierung eines Codegenerator (mit Zielsprache C) und
Interpreter für Sprache die TCD+ (eine PASCAL-Variante,
angereichert um Datenbankzugriffe, welche vom Kunden definiert wurde).
Tandem: (Softwarehaus in München 1997-2002)
- Entwicklung eines Tandem-SQL Parsers
- Abbildung von Tandem-SQL und Tandem-COBOL in ein vorgegebenes
Repository
- Erweiterung, Wartung und Pflege dieses Systems.
FORTRAN (1996)
Erweiterung eines bestehenden FORTRAN-Frontends: Aufbau
des abstrakten Syntaxbaumes.
Wissenschaftlicher Mitarbeiter: Zeitraum 1989 - 1996
Mitarbeit und leitende Funktion an den
ESPRIT-Projekten
(1990-1996, GMD, Uni)
COMPARE (Entwicklung von Übersetzern und
Übersetzerbauwerkzeugen für
parallele Architekturen) und PREPARE (High-Performance Fortran
Compiler)
COMPARE
- Mitarbeit an der Definition der Zwischensprache
CCMIR (Typsystem,
Operatoren, Anweisungen).
- Mitarbeit am CoSY-Modell und
CoSy-Compiler-Umgebung.
- Portierung des Modula-P Compilers (geschrieben in Modula) in die
CoSy-Umgebung des
Projektes COMPARE
(implementiert in C).
- Entwicklung der Theorie für Optimierung paralleler Programmiersprachen.
- Erweiterung des "Lazy-Code-Motion" (Steffen/Knoop)
Optimierungsverfahrens, damit parallele Programme optimiert werden
können.
- Implementierung dieses Verfahrens (zusammen mit einem betreuten
Diplomanden).
PREPARE
- Vorwiegend Administrative Aufgaben (Mitentwicklung des
Projektantrages)
- Projektleitung für die GMD
- "Bindeglied" zum COMPARE Projekt für die GMD
Studium: 1981 - 1989
Modula-P (1989, Diplomarbeit)
- Design und Implementierung der Spracherweiterung Modula-P (parallel)
(d.h. Erweiterung der Syntax und Semantik und entsprechender Teile
des bestehendem Modula-2 Compilers MOCKA),
- Entwicklung eines Codegenerators für Modula-P und den Transputer als
Zielarchitektur.
- Design und Implementierung eines
- Assemblers
- Binders
- Laders
- Laufzeitumgebung
für die Sprache Modula-P und eine 4-Prozessor Transputerumgebung.
- Einige Veröffentlichungen
zu diesem Thema.
Projekt MOCKA MOdula-2 Compiler of KArlsruhe
(original URL: MOCKA
aber auch z.B. Linux Software Map: Modula-2 Compiler MOCKA for Linux,
GMD Modula-2 Compiler MOCKA - Main Package 9903 Glibc).
- Entwicklung eines Codegenerators für den Karlsruher Modula-2 Compiler
MOCKA auf
auf die Dec/VAX Architektur.
- Portierung des MOCKA
auf die Betriebssysteme VMS und ULTRIX.
Datenbanken (1986, Uni Trondheim)
Entwurf und Implementierung eines Caches für eine netzwerkbasierte
Systemdatenbank.
Expertensysteme (1985, SINTEF Trondheim)
Entwurf und Implementierung einer Komponente zur Handhabung
unsicherens Wissens für ein geologisches Expertensystem.
Druckertreiber (1983 und 1984, Siemens Karlsruhe)
Entwicklung eines Druckertreibers für die ersten Laserdrucker.
Spezialkenntnisse
- Compilerbau (Lexikalische Analyse, Syntaxanalyse,
semantische Analyse, Codegenerierung, Optimierung):
- COBOL, et.al
- Erstellen portabler Unix Programme
- Unix Systemadministration
- Programmiersprachen:
C, C++, Modula, Java, COBOL, SQL,
Perl, Perl/TK, awk, sed,
Bourne Shell, make, LaTeX, TeX, HTML.
Tools
- Linux, insb. SuSE
- Cocktail
Toolbox
- gcc, gdb, make
- Microsoft Visual Studio
- RCS/CVS
- Cygwin
- Emacs, vi, LaTeX, TeX
Lehrtätigkeiten
- seit 2008 Professor
Dualen Hochschule (vormals Berufsakademie Karlsruhe)
- seit 1996 Schulungen über die
Cocktail-Compilerbauwerkzeuge
bei Firmen in Deutschland, Frankreich, Schweden und Italien.
(gehalten in deutsch und englisch).
- seit 1996 Lehraufträge an der
Dualen Hochschule / Berufsakademie Karlsruhe:
Übersetzerbau, Einführung in die Informatik, Web+Internet,
Skript-Sprachen, Linux sowie Betreuung von Studien und
Diplomarbeiten
(mehr dazu hier...).
- 1992-1994: Größe Übung Übersetzerbauvorlesung Prof. Goos.
- 1989-1996: Betreuung Studien- und Diplomarbeiten.
- 1982-1984: Tutor für die Vorlesungen Informatik I und II
Sonstiges
- 1976-1995 Gruppenleiter in der Kinder- und Jugendarbeit.
- Seit 1996 ehrenamtliche Mitarbeit einer kirchlichen
Beratungseinrichtung in ökumenischer Trägerschaft.
- Mitarbeit und Leitung div. Gremien der Jugendarbeit und dieser
Beratungseinrichtung.
- Lesen, Theater, Tanzen, Ski, Inlineskating.
Dr. Jürgen Vollmer (www.informatik-vollmer.de)
Diese Seite wurde am 16. Mai 2021 aktualisiert