/PSE_G3_Pflichtenheft

Primary LanguageTeXGNU General Public License v3.0GPL-3.0

Repository

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.

PSE

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.

Kompilierungsmindestanforderungen

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.

Module

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.

Aufbau eines Moduls

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

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
Loading

Klasse 1

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
Loading

Klasse 2

Verwendung im LaTeX-Dokument

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.png

Zu beachten ist bei der Verwendung von \relmermaid dass der entsprechende uml Ordner existieren muss.