Dieses Repository ist Teil eines PSE-Projekt der KIT Universität, Institut KASTEL und unter der GPL3.0-or-later Lizenz veröffentlicht und somit zur Nutzung freigegeben.
Dieses Repository beinhaltet den Quellcode zum Pflichtenheft nach dem Wasserfallmodell mit Rückkoppelung.
Zur Compilierung wird eine installierte LaTeX Umgebung mit latexmk und shell-escape benötigt.
Um den Sourcecode zu kompilieren werden diverse Systemvoraussetzungen benötigt. Zum einen natürlich eine lokale LaTeX-Umgebung, die in der Lage ist latexmk mit shell-escape auszuführen.
Zusätzlich wird zum Rendern der UML-Diagramme Mermaid-js benötigt. Die CLI mmdc zu Mermaid-js kann durch npm mit Administratorrechten, sowohl auf Linux als auch auf Windows, durch npm install -g @mermaid-js/mermaid-cli installiert werden.
Zur Installation von npm auf Windows kann der NPM-Installer verwendet werden.
Das gesamte Pflichtenheft ist unterteilt in einzelne Kapitel und Unterkapitel bzw. Module und Submodule. Diese können ausgehend von der Hauptdatei ./main.tex per \inpmod eingebunden werden, so bindet \inpmod{Kriterien} das Kapitel Kriterien ein. Um in einem Modul ein relatives Submodul einzubinden, kann hierfür \inprelmod gleichermaßen verwendet werden.
Um andere, zur momentan bearbeiteten Datei, relative Dateien einzubinden, kann \relfile genutzt werden, um zur Compilezeit den richtigen, absoluten Pfad zu bekommen.
Bilddateien im direkten Subordner images können über \relimgfile eingebunden werden. Bsp: Um images/bild01.png einzubinden, kann \includegraphics{\relimgfile{bild01.png}} verwendet werden.
Ein Modul besteht mindestes aus einer main.tex Datei, welche den Inhalt des Moduls bestimmt. Sollte das Modul aus Submodulen bestehen, so soll die main.tex dieses Moduls nur als Einbindungsdatei für die Submodule dienen, um die Struktur dieses Repos einzuhalten.
Andernfalls kann die main.tex beliebigen Inhalt beschreiben, jedoch sollte dieser thematisch natürlich zum Modul passen.
Mermaid-js ist eine in Java-Script geschriebene Markdown-ähnliche Skriptsprache zur einfachen und graphischen Erstellung von UML-Diagrammen durch einfache textuelle Beschreibungen. Hierfür existieren mehrere Diagrammarten, Pfeile, Objekte und ähnliches, siehe die Diagrammarten. Ein Beispiel zu einem einfachen Klassendiagramm, welches zeigt, dass die Richtung der Pfeile visuell einen Unterschied macht:
classDiagram
Meeresbewohner <|-- Raubfisch : ist ein
Raubfisch <|-- HeyFisch : ist ein
Person <|-- KITAngestellter : ist ein
KITAngestellter <|-- TobiasHey : ist ein
WalterFTichy <-- TobiasHey : arbeitet für
Professor <|-- WalterFTichy : ist ein
KITAngestellter *-- Professor : ist ein
TobiasHey o-- HeyFisch : gehört
WalterFTichy : void singen()
WalterFTichy : String Willkommen
WalterFTichy <--> RCS : Entwickler
classDiagram
Raubfisch --|> Meeresbewohner : ist ein
Heyfisch --|> Raubfisch : ist ein
KITAngestellter --|> Person : ist ein
TobiasHey --|> KITAngestellter : ist ein
TobiasHey --|> WalterFTichy : arbeitet für
WalterFTichy --|> Professor : ist ein
Professor --* KITAngestellter : ist ein
Heyfisch --o TobiasHey : gehört
WalterFTichy : void singen()
WalterFTichy : String Willkommen
RCS <--> WalterFTichy : Entwickler
Zur Verwendung im LaTeX-Dokument existieren die beiden Befehle \mermaid[options]{source}{dest} und \relmermaid[options]{file}.
In beiden Befehlen beschreiben die options die Optionen, die an \includegraphics weitergegeben werden.
\mermaid's Quell- und Zieldateien sind relativ ausgehend von der Hauptdatei Pflichtenheft/main.tex und können beliebig gewählt werden, wobei die Quelldatei mit .mmd endet, die Zieldatei mit .png.
\relmermaid's Parameter ist der Name ohne Endung, die Quelldatei befindet sich im Ordner ./mermaid, die Zieldatei in ./uml, ausgehend vom Verzeichnis der inkludierenden Datei. Die Endungen sind analog zu \mermaid.
Beispiel der Ordnerstruktur für \relmermaid[width=10cm]{Klassendiagramm1} in ./Modelle/main.tex (Analog ist \mermaid[width=10cm]{Modelle/mermaid/Klassendiagramm.mmd}{Modelle/uml/Klassendiagramm.png}, falls ./main.tex die Hauptdatei ist):
.
├── main.tex
└── Modelle
├── main.tex
├── mermaid
│ └── Klassendiagramm.mmd
└── uml
└── Klassendiagramm.pngZu beachten ist bei der Verwendung von \relmermaid dass der entsprechende uml Ordner existieren muss.

