Skip to content

Vorstellung des Projekts

Michael Schmitz edited this page Apr 8, 2022 · 14 revisions

Motivation

(@Micha)

  • Amir, Jens, Konstantin und ich sind zusammen beim ITZBund im Projekt IT-Pluto
  • Im ITZBund-Projekt kam die Anforderung nach einer Dokumentation der Prozesse.
  • Da wir seit Jahren nicht die allerneusten Technologien einsetzen und wir unser KnowHow auffrischen wollten, kam die Idee auf, uns ein gemeinsames sinnvolles internes Projekt zu schaffen.
    • Buzzwords: Jboss, Java 8 (nun Java 11), JSF, Primefaces
  • Ziel war es neben modernere Technologien auch eine Zusammenarbeit außerhalb des ITZBund-Kontextes und über die BAs/PAs hinweg zu forcieren.
  • Als weiterer motivierter Mitstreiter stieß Yannic dazu.

Vision (@Micha)

Was wollen wir erreichen?

Eine automatisiert generierte und dadurch relativ aktuelle extern verfügbare Dokumentation in diverse Ausgabeformaten für verschiedene Zielgruppen.

Warum benötigt man so etwas?

  • Aussage - BPMN-Modelle sind doch selbsterklärend. Analogie zu JavaDoc: Was man nicht sieht, ist warum der Code etwas tut. (umschreiben)
  • Im BPMN-Modell ist vieles versteckt (z.B. Properties-Panel) und kann durch eine Doku sichtbarer werden.
  • Wenn man eine Dokumentation erstellt, muss das Zielpublikum beachtet werden. Eine Dokumentation für den Fachbereich enthält andere Information als eine Dokumentation für die Entwickler.
  • Der Generator soll flexibel anpassbar sein und die Informationen je nach Zielpublikum ausgeben.

Technisch

  • Github inkl. Action, Pages, Projects (wollten es OpenSource stellen) => keine zusätzliche Infrastruktur (wie z.B. Jira, Confluence, Jenkins). (@Yannic)
  • IntelliJ (insbesondere auch für die Kotlin-Integration) einsetzen. (@Yannic)
  • Wir nutzen Gradle, weil wie es es auch kennenlernen werden wollen. (@Konstantin)
    • Build-Tool
    • Probleme und Herausforderungen.
    • Also ein Gradle-Projekt welches im ersten Schritt ein Maven-Plugin erzeugt.
    • Maven deshalb, weil wir es im ITZBund-Kontext einsetzen wollen und wir dort Maven einsetzen.
  • Kotlin, um mal etwas außerhalb der Java-Welt zu sehen und weil es insgesamt auch moderner ist, als die Java-Versionen (Ver. 8 bzw. 11) in unseren Kunden-Projekten. (@Amir)
  • Wir zeigen den Source-Code (Projekte: dieses Gradle-Projekt und das Maven-Projekt zum Testen)
    • Architektur
    • Vorgehen: Parsen - Transformieren - Ausgeben
    • Zusätzliche Dokumentationen zu den Elementen wird im BPMN-Modell in einem Standard-Dokumentations-Felder des BPMN-Standards geschrieben.
  • Testmodell erläutern (@Amir)
    • Ausführung des Maven-Builds auf einem zusätzlichen Projekt.

Lessons learned

  • GitHub-Projects (altes) (Pull-Request und Tickets im selben Nummernkreis) (@Yannic)
  • Kotlin (z.B. Data-Classes kennen keine Vererbung, Formatierung, ...) (@Amir)
  • Erwähnung: Frust mit Eclipse und Sonnenschein mit IntelliJ :-) (@Amir)
  • In einem Gradle-Build ein Maven-Plugin bauen (@Konstantin)
  • Java vs. JavaScripts (@Jens)

Ausblick (@Micha)

  • während Jens Dienstzeit beim ITZBund einsetzen
  • Output verschönern
  • OpenSource => Stars geben :-p
  • weitere Ausgabeformate
  • weitere Felder
  • Formatierung der Eingabe in der Dokumentations-Felder im BPMN-Modell (z.B. mittels Markdown oder ...)
  • zusätzlich ein Gradle-Plugin