Einleitung

Klingt nicht so spannend, ist es aber. S1000D ist ein (3500-Seiten dicker) Standard zur modularen Dokumentation von Aerospace und Military-Projekten. Modular heißt, da sitzt kein einsamer Redakteur und dokumentiert mal so mit MS-Word einen A380, bis er das als PDF abgeben kann. Sondern alles, was da beschrieben wird, wird auf viele tausend Datenmodule (XML) verteilt, in denen die Struktur, die Reparatur, die Ersatzteile, die Lerninhalte und vieles mehr beschrieben wird - und die natürlich extrem untereinander verlinkt sind. Das ist so komplex, daß es dafür eigene Datenbanken gibt -  Stichwort Common Source Database (CSDB). Aber bevor ein Zulieferer seine Datenmodule einchecken / hochladen kann, sollte er sicher sein, daß diese auch formal korrekt sind. Und da hat jeder Flugzeugbauer oder jede Armee eigenen Vorschriften - in Buchstärke.

Es gibt sogar einen eigenen Englisch-Dialekt (Simplified Technical English), der nur ganz bestimmte Substantive, Verben und grammatikalische Konstrukte zulässt - damit auch nicht-Muttersprachler eine Boeing 747 reparieren können, ohne durch umfangreich verschachtelte Satzungetüme verwirrt die Hydraulik- mit der Treibstoffleitung zu verwechseln.

Die Aufgabe

Wenn ein Zulieferer fehlerhafte Datenmodule abliefert, müssen diese nachbearbeitet werden, was teuer ist und die Abgabefristen gefährden kann. Die Software sollte die Einhaltung der ca. 100 Businessregeln überprüfen und darüber hinaus auch Fehler korrigieren, die beim Checkout aus der CSDB des Zulieferers entstanden waren und für Probleme beim Import in das System des Abnehmers gesorgt hätten.

Umsetzung

Ich habe über einen Zeitraum von mehreren Monaten in einem kleinen Team mit internen und externen Entwicklern eine Grails-Anwendung erstellt, die eine Weboberfläche zum Upload der Daten und die Darstellung der Probleme in syntax-highlighted XML mit Protokollfunktion beinhaltete.

Technologien

  • Grails 1.x
  • XPath für die Regeln
  • MySQL als Datenbank
  • Groovy für programmatische Prüfungen und Fehlerkorrektur.
  • Java 5
  • Saxon XML Bibliothek (kommerzielle Variante)
  • Automatische Integration Tests (in Perl, Test::WWW::Mechanize)
  • Basisfunktionalität für Konformitätstests für Simplified Technical English (STE)

Herausforderungen

  • verteiltes Team (meist aus dem Home-Office)
  • häufig neue Kundenanforderungen und Änderungswünsche
  • mehrere teils willkürliche Deadlines
  • S1000D ist komplex
  • STE prüfen ist noch viel komplexer

Notizen

Eine Analyse von CGM-Dateien (Grafik-Standard) und eine Prüfung der Texte auf Einhaltung der STE-Regeln waren geplant, aber wurde beides nur im Prototypen-Stadium umgesetzt. (CGM-Prüfung wurde später als eigenes Projekt von einem Kollegen umgesetzt).

Mein Anteil: Mitarbeit an der Konzeption, das Projekt-Management und die Implementierung des größten Teils des Server-Codes. Die Business-Regeln wurden gemeinsam mit dem Team umgesetzt, das Design vom Webdesigner entworfen.

Seit einiger Zeit arbeite ich an einem gemeinsamen Projekt mit Andreas Sommer: ich schreibe ein Verwaltungssystem für Vereine, Verbände und Organisationen aller Art, basierend auf dem Grails-Framework.


Ziel ist in der ersten Ausbaustufe die effiziente Verwaltung von Kontakten, Terminen, Dateien, Dokumenten und anderen Informationen. Mittlerweile ist das Projekt, das seinen Ursprung in einer Perl-basierten Catalyst-Webapplikation von Jonas Pasche hatte, als Beta-Version verfügbar und wird vom ersten Kunden auf Herz und Nieren getestet.

Einen Kontakt im Verwaltungssystem anlegen

Kontakte können einfach erfasst werden, wobei außer dem angezeigten Namen alle Einträge optional sind.

Kontakt mit allen Daten

Einer Person oder Firma können Adressen und andere Kontaktinformationen hinzugefügt werden, und diese kann - wie alle anderen Objekte im Verwaltungssystem auch - mit frei definierbaren Kategorien verschlagwortet werden. Die Kategorien sind gruppiert, um die Übersichtlichkeit gegenüber einer einzigen großen Tag-Cloud zu verbessern.

Zusätzlich können alle Objekte miteinander verknüpft werden. Beim dargestellten Kontakt ist dieser mit dem "Projekt Weltfrieden" verbunden.

Ein Projekt (Dokument) im Verwaltungssystem

Projekte sind Dokumente, die von mehreren Autoren bearbeitet werden können. Einsatzgebiet sind z.B. Sitzungsvorlagen und Geschäftsbriefe. Als Editor kommt TinyMCE zum Einsatz. Das Layout der Dokumente kann in mehrere Bereiche gegliedert werden, so daß auch 2 oder 3-spaltige Layouts umgesetzt werden können. Selbstverständlich können auch Projekte kategorisiert und verknüpft werden.

 Ein Termin mit Verknüpfung

 Termine sind weitgehend selbsterklärend ... und gewähren einen schnellen Überblick über Zu- und Absagen.

Hinter dem Punkt Email verbergen sich Verteiler und Newsletter, die themen- und regionenspezifisch von mehreren Anwendern erstellt werden und dann an Kontakte und Benutzer des Systems versendet werden können. Doch dazu mehr in einem späteren Artikel.

 

In den letzten 12 Jahren habe ich dewarim.de wiederholt komplett neu gestartet - und jedes Mal gehofft, es wäre das letzte Mal. Ob die aktuelle Version länger hält?

Immerhin setze ich nun Joomla ein - ja, das ist in PHP geschrieben... - früher hätte ich gefragt "Wie konnte ich nur so tief sinken...". Aber nachdem ich mehrere Programme zur Verwaltung meiner Webseiten geschrieben habe bzw. zwischenzeitlich auch Plone eingesetzt habe, bin ich zu dem Schluß gekommen, daß ich lieber ein gutes Web-CMS einsetze als das Rad selbst noch einmal neu zu erfinden.

Das Problem mit dem Neustart (modern: "relaunch") ist: danach zeigen die URLs zu den bisherigen Inhalten alle ins Nichts. Und Suchmaschinen aktualisieren ihren Index nicht so häufig, wie man denkt - ich habe im Log gerade einen Bot gesehen, der nach Seiten fragte, die 2005 existierten. Wenn wir in einer gläsernen Gesellschaft leben würden, könnte ich das Problem einfach durch einen Link auf das Staatliche Archiv Systemrelevanter Informationen (St.ASI) aller Bürger lösen, das jegliche Aktivität (und: Inaktivität) auf ewig archiviert. Aber dann kämen bestimmt gleich die Klagen "Och nö, da muß ich immer den Bundestrojaner updaten, der ändert sich häufiger als Steam!" und "Ich finde das voll unfair, daß meine Webcam mich dann filmt, wie ich über deine Texte lache - das Speichern des Films in der Bundeswolke geht voll zu Lasten meines Drosselkom-Volumens!"

Also, das mit den alten Seiten ist schwierig - ich könnte sie natürlich alle wieder rekonstruieren. Tagelang tief in den Archiven buddeln, bis ich die Perlen meines kreativen Schaffens vom Schlick alter HTML-Konstrukte befreit habe. Aber ... manchmal ist es vielleicht auch besser, Dinge ruhen zu lassen. Wie die Sache mit Paracetamol und den Todeszahlen... - ich hatte ein Programm geschrieben, das automatische Spielerlisten zu einem MMORPG (Dark Age of Camelot) erstellte - inklusive der Info, wie oft eine Figur gestorben ist. Und Google schickte Leute für "Paracetamol Tod" vorbei, die vermutlich nicht wissen wollten, wie oft der Spieler "Paracetamol" sein virtuelles Leben aushauchte...

Oder die Sache mit den Leuten, die wegen "Mädchen, Rohrstock, Züchtigung" vorbei kamen und die Lebenserinnerungen eines Pastors aus dem 19. Jahrhundert fanden. Nun ja.

Aber ... so ein paar Texte gibt es vielleicht, die ich noch aus der Versenkung holen sollte. Umzugshelfer, Best of Adventskalender ... schließlich sollen die Bots, die meine Seite lesen, auch Inhalte finden. Ok, was ein Programm, das nach Stellenangeboten sucht, mit meinem Rezept zu einem Mais-Bohnen-Auflauf will - wer weiß. Do web spiders dream of electric cows?

 

Joomla templates by a4joomla