University of Kassel bachelor's and master's thesis (Software Engineering, sethesis)
The Software Engineering group's template for bachelor's and master's theses in FB16 (Electrical Engineering and Computer Science): title page with faculty and group logos, affirmation, restriction notice, abstract, and German guidance chapters on formal requirements, structure, assessment criteria and the thesis process, with a code listing, a figure and BibTeX references.
- Category
- Thesis
- Document class
book(book.cls) — ships with TeX Live- Workflow
- Thesis / dissertation — submissions and revision rounds
- Author
- University of Kassel, Software Engineering group (FB16 EECS)
- Source
- University of Kassel, Software Engineering group (FB16 EECS)
- Licence
- book.cls: LaTeX Project Public License (installed with TeX). The sample text is University of Kassel, Software Engineering group (FB16 EECS)'s, provided for authors preparing a submission.
These are the publisher’s own files. This project starts from University of Kassel, Software Engineering group (FB16 EECS)’s package for this publication — their manuscript, their book.cls, their bibliography style — so what compiles here is what they would have given you.
University of Kassel, Software Engineering group (FB16 EECS) serves this exact file to University of Kassel. Check University of Kassel, Software Engineering group (FB16 EECS)’s author pages for the current instructions.
Where this differs from the publisher’s download.
- Note: Written by the Software Engineering group for theses it supervises; check it against your own group's and examination office's requirements.
What you get
Outfit-Bold.ttf· 54 KBOutfit-Regular.ttf· 54 KBaffirmation.tex· 15 Bcontents/A-anhang-a.tex· 2 KBcontents/ablauf.tex· 2 KBcontents/abstract.tex· 170 Bcontents/bewertungskriterien.tex· 3 KBcontents/einleitung.tex· 972 Bcontents/figures/feature-diagram-productioncell-example.pdf· 18 KBcontents/formale-anforderungen.tex· 27 KBcontents/listings/example_python_for_listing.py· 310 Bcontents/struktur-und-inhalt.tex· 18 KBhalpha-abbrv.bst· 24 KBlogo-FB16.pdf· 10 KBlogo-Fachgebiet-Software-Engineering-ohne-verlauf.pdf· 10 KBmeinearbeit.bib· 9 KBmeinearbeit.tex— the file that is compiled · 6 KBrestriction-notice.tex· 453 Bsethesis.sty· 4 KB
These become your files. Editing them afterwards changes your project and nothing else — a project owns its files from the moment it is made.
Source
Outfit-Bold.ttf — binary, 54 KB
Outfit-Regular.ttf — binary, 54 KB
affirmation.tex · 15 B
\makeerklaerungcontents/A-anhang-a.tex · 2 KB
\chapter{Ein Anhang}
\label{chap:ein-anhang}
Der Anhang stellt eine Ergänzung zur eigentlichen Arbeit dar. Denkbare Einsatzmöglichkeiten sind:
\begin{itemize}
\item Dokumentation von Materialien, die dem Leser üblicherweise nicht zugänglich sind (Herstellung der Zitierfähigkeit): Dieser Punkt kommt bspw. zum Tragen, wenn in der Arbeit unternehmensinterne Unterlagen eingearbeitet werden (z.B. Organigramme, Auszüge aus Organisationshandbüchern, Texte von Betriebsvereinbarungen, Verkaufsunterlagen, Produktbeschreibungen).
\item Detaillierte Beschreibungen von hergestellten Artefakten, z.B. ausführliche Anwendungsfallbeschreibungen, wenn im Hauptteil Anwendungsfälle schon grob beschrieben sind und dies für das primäre Verständnis ausreicht, oder ausführliche Klassendiagramme, die übersichtsartige Diagramme im Hauptteil ergänzen. Hier können auch Code-Listings, von Algorithmen oder Skripten, die Sie entwickelt haben.
\item Ergebnisse von Gesprächen mit Experten in Form von Gesprächsnotizen oder Interviewprotokolle (z. B. in Frage-Antwort-Form).
\end{itemize}
Ein Anhang kann eine sinnvolle Ergänzung der eigentlichen Arbeit sein. Material sollte jedoch nicht beliebig angehängt werden, sondern durch geeignete Beschreibungen mit dem Inhalt der Arbeit in Verbindung gebracht werden. Es gilt auch hier: Beschränken Sie sich auf Wichtiges. Im Regelfall sollte der Anhang nicht 50\% des Seitenumfangs des Inhaltsteils überschreiten. Im Zweifel kann eine Arbeiten auch ohne Anhang auskommen.
\textbf{Der Anhang ist insbesondere kein Ort für Abbildungen, die aus dem Hauptteil ausgelagert werden} -- insbesondere nicht zu dem Zweck, dadurch den vorgegebenen Seitenumfang des hauptinhaltlichen Teils einzuhalten. Es erschwert unnötig die Lesbarkeit der Arbeit, wenn zwischen Hauptteil und Anhang hin- und hergeblättert werden muss. \textbf{Die Arbeit muss auch ohne Anhang vollständig und verständlich sein!}
contents/ablauf.tex · 2 KB
\chapter{Ablauf}
Vor der Vergabe einer Abschluss- oder Projektarbeit wird das Thema inhaltlich mit dem Betreuer bzw. der Betreuerin und dem Erstprüfer bzw. der Erstprüferin abgestimmt.
In einem ersten Vorgespräch wird das Thema besprochen.
Im Anschluss daran verfasst der/die Studierende eine sogenannte \textbf{Zielvereinbarung} (Umfang ca.~2--3~Seiten).
Diese dient als gemeinsame Grundlage für die Themenfestlegung und sollte in eigenen Worten die \textbf{Problemstellung}, die \textbf{Forschungsfrage}, die \textbf{geplante Vorgehensweise} sowie einen groben \textbf{Arbeits- und Zeitplan} darstellen. Für Projektarbeiten ist zusätzlich ein geplanter Termin für die Abgabe bzw. Fertigstellung anzugeben.
Hier ist eine Vorlage:
Gegebenenfalls sind Rücksprachen und Überarbeitungen der Zielvereinbarung erforderlich, um ein gemeinsames Verständnis über das Ziel und den Umfang der Arbeit zu erreichen.
Ziel dieses Prozesses ist es, dass Studierende und Betreuende eine deckungsgleiche Erwartungshaltung an die geplante Arbeit haben.
Das Fachgebiet \textit{Software Engineering} ist bestrebt, dass Abschluss- und Projektarbeiten innerhalb des vorgesehenen Bearbeitungszeitraums erfolgreich abgeschlossen werden.
Daher sollte die formale Anmeldung der Abschlussarbeit zeitnah nach Abschluss der Themenabsprache erfolgen.
Für Projektarbeiten soll die Anmeldung zur entsprechenden Prüfungsleistung spätestens mit der Erstellung der Zielvereinbarung erfolgen.
Der Zeitraum zwischen dem ersten Vorgespräch und der finalisierten Zielvereinbarung sollte in der Regel \textbf{drei bis vier Wochen} nicht überschreiten.
contents/abstract.tex · 170 B
\chapter*{Zusammenfassung}
Kurze Zusammenfassung der Arbeit in ca. 200 Wörtern
\clearpage
\chapter*{Abstract}
An optional summary of approx. 200 words.
\clearpage
contents/bewertungskriterien.tex · 3 KB
\chapter{Bewertungskriterien}
\label{chap:bewertungskriterien}
Auf folgende Punkte achten wir unter anderem bei der Bewertung (die Reihenfolge drückt keine Gewichtung aus):
\section{Inhaltliche Kriterien}
\label{sec:inhaltliche-kriterien}
\begin{itemize}
\item \textbf{Problemstellung und Methodik}:
Wird das in der Arbeit adressierte Problem klar beschrieben und motiviert? Wird eine geeignete Forschungsfrage formuliert und nachvollziehbar mit einer geeigneten Forschungsmethode beantwortet (Bei Bachelor- und Masterarbeiten)? Werden die Anforderungen geklärt und deutlich, warum der gewählte Lösungsansatz verfolgt wird (bei Projektberichten)?
\item \textbf{Fachliche Fundierung und Ergebnisqualität}:
Wird relevantes Fachwissen aus dem Studium (oder darüber hinaus) angemessen angewendet (z.\,B.\ Algorithmen, Methoden, Diagramme)?
Erfüllt die Lösung die vorher definierten Anforderungen? Wie hoch ist die Qualität des Ergebnisses bzw. der erzielte Erkenntnisgewinn?
\item \textbf{Struktur und Verständlichkeit}:
Ist die Arbeit logisch strukturiert und verständlich geschrieben?
Werden Probleme und Konzepte nachvollziehbar und für die Zielgruppe angemessen erklärt? Werden passende Beispiele verwendet?
\item \textbf{Eigener Beitrag}:
Hat der/die Autor/-in eigene Ideen eingebracht (z.\,B.\ Lösungsideen, Experimente, Fallstudien)?
Hat der/die Autor/-in Beispiele selbst erdacht?
\item \textbf{Fachlicher Kontext}:
Wird die Arbeit im Vergleich zu verwandten Arbeiten abgegrenzt?
Wird der Problembereich in einen größeren Zusammenhang gesetzt und ein Ausblick gegeben?
\end{itemize}
\section{Formale Kriterien}
\begin{itemize}
\item \textbf{Sprache und Stil}:
Werden Fachbegriffe präzise definiert und korrekt verwendet?
Ist der sprachliche Ausdruck klar und konsistent?
Vermeiden Autor/-innen unnötige Redundanzen, Rechtschreib- und Grammatikfehler?
\item \textbf{Gestaltung und Quellenarbeit}:
Macht die Arbeit einen einheitlichen und lesbaren Eindruck?
Werden Tabellen und Abbildungen sinnvoll eingesetzt und ansprechend gestaltet?
Werden Quellen korrekt zitiert und an den passenden Stellen angegeben?
Wird ggf.\ auf den Einsatz KI-basierter Werkzeuge hingewiesen?
\end{itemize}
\section{Bewertungskriterien für das Kolloquium}
\label{sec:bewertung-kolloquium}
Auf folgende Kriterien achten wir bei der Bewertung eines Kolloquiums (Vortrag und Diskussion):
\begin{itemize}
\item \textbf{Struktur}: Ist der Vortrag gut strukturiert? Wird insbesondere die Problemstellung klar beschrieben und der Lösungsansatz und die Ergebnisse nachvollziehbar erklärt?
\item \textbf{Verständlichkeit}: Werden Fachbegriffe und nötige Grundlagen erläutert? Ist das Niveau richtig für die Zielgruppe? Wird ein geeignetes Beispiel verwendet? Sind Abbildungen verständlich gestaltet?
\item \textbf{Vortragsstil und Foliengestaltung}: Werden die Inhalte verständlich vorgetragen? Sind die Vortragsfolien ansprechend gestaltet? Sind Texte und Abbildungen gut lesbar?
\item \textbf{Fachliche und Methodische Fundierung}: Wird fachliches und methodisches Wissen demonstriert? Werden zum Beispiel passende fachliche Diagramme für die Beschreibung von Architekturen und Abläufen verwendet und erklärt? Antwortet der/die Vortragende fundiert auf Fragen?
\end{itemize}
contents/einleitung.tex · 972 B
\chapter{Einleitung}
\label{chap:einleitung}
In diesem Dokument beschreiben wir die formalen Anforderungen an
\begin{itemize}
\item Bachelorarbeiten
\item Masterarbeiten und
\item Projektberichte (für das Modul \enquote{Projekt})
\end{itemize}
am \textbf{Fachgebiet Software Engineering} des Fachbereichs Elektrotechnik und Informatik (FB16) der Universität Kassel.
Zunächst beschreiben wir formale Anforderungen in Kapitel~\ref{chap:anforderungen}. Kapitel~\ref{chap:struktur-und-inhalt} beschreibt Unterschiede zwischen den oben genannten Prüfungsformen und Anforderungen an deren Inhalt und Struktur, die sich daraus ergeben. In Kapitel~\ref{chap:bewertungskriterien} beschreiben wir Bewertungskriterien, die wir bei der Bewertung der Arbeiten zugrunde legen.
Zudem ist dieses Dokument mit Hilfe einer \textbf{\LaTeX{}-Vorlage} geschrieben, die wir Ihnen als Vorlage für das Verfassen Ihrer Arbeiten empfehlen. Diese Vorlage erhalten Sie hier:
contents/figures/feature-diagram-productioncell-example.pdf — binary, 18 KB
contents/formale-anforderungen.tex · 27 KB
\chapter{Formale Anforderungen}
\label{chap:anforderungen}
\section{Welches Textverarbeitungsprogramm?}
Sie können das Textverarbeitungsprogramm wählen. Wir empfehlen Ihnen die Verwendung von \LaTeX{} und insbesondere die Verwendung dieser Vorlage:
Sie können Editoren wie zum Beispiel TexStudio (\url{https://www.texstudio.org/}) in Verbindung mit MiKTeX (\url{https://miktex.org/}) oder TeX Live (\url{https://www.tug.org/texlive/}). Recherchieren Sie online nach aktuellen Installationshinweisen.
Es gibt im Internet viele gute Quellen für den Einstieg in \LaTeX{}. Recherchieren Sie selbst weitere Quellen!
\LaTeX{} bietet viele Vorteile, zum Beispiel beim Umgang mit Referenzen, Quellverweisen oder mathematischen Formeln. Auch ist die typographische Qualität in von \LaTeX{} generierten Dokumenten meist besser als in mit Word geschriebenen Dokumenten. In fast allen naturwissenschaftlichen Bereichen werden Veröffentlichungen heute mit \LaTeX{} verfasst. \LaTeX{} erfordert ein wenig Einarbeitungsaufwand, aber die Investition darin lohnt sich!
Unabhängig von der Wahl des Textverarbeitungsprogramms empfehlen wir Ihnen dringend, in regelmäßigen Abständen Sicherungskopien Ihrer Arbeit anzulegen, sodass Systemabstürze oder ein Verlust des Laptops nicht zu Problemen bei der fristgerechten Abgabe der Arbeit führen. Sie können lokale \LaTeX{}-Dokumentprojekte auch komfortabel mit einem git-Repository versionieren.
\section{Umfang der Arbeit}
In Tabelle~\ref{tab:seitenumfang} sind die erlaubten Seitenumfänge für die einzelnen Prüfungsleistungen aufgelistet.
Die Seitenumfänge beziehen sich auf die Seiten des \textit{Inhaltsteils} der Arbeit. Titelblatt, Erklärungen, Verzeichnisse und Anhang zählen also nicht mit.
\begin{table}[ht]
\centering
\begin{tabular}{|p{6cm}| p{5cm}|}
\hline
Bachelorarbeit & 40 bis 60 (ideal 40-45) Seiten \\\hline
Masterarbeit & 50 bis 95 (ideal 60-65) Seiten \\\hline
Projektbericht (Bachelor/Master) & 5 bis 15 Seiten \\\hline
\end{tabular}
\caption{\label{tab:seitenumfang}Vorgeschriebene Seitenumfänge.}
\end{table}
In Absprache mit den Prüfern können Sie im Ausnahmefall eine abweichende Seitenzahl vereinbaren.
Für kurze Projektberichte verwenden Sie die Vorlage für Seminararbeiten.
\section{Bestandteile der Arbeit}
\label{sec:bestandteile-der-arbeit}
Die Arbeit hat grundsätzlich folgende Bestandteile in folgender Reihenfolge:
\begin{enumerate}
\item Titelblatt mit Namen, Nachnamen, Studiengang, Namen der Prüfer (Erst- und Zweitprüfer bei Bachelor- und Masterarbeit, nur ein Prüfer bei Projektberichten), sowie Abgabedatum
\item Eine ehrenwörtliche Erklärung (Hier müssen Sie den genauen Wortlaut des Textes in dieser Vorlage übernehmen, siehe Seite~\pageref{chap:erklaerung-selbstaendigkeit})
\item \textit{Optional:} Eine Geheimhaltungserklärung oder Sperrvermerk (dieses Template enthält eine Vorlage, siehe \texttt{restriction-notice.tex}, welche Sie im Hauptdokument einbinden können, siehe \texttt{meinearbeit.tex})
\item \textit{Optional:} Eine kurze Zusammenfassung der Arbeit (maximal eine Seite), optional auch in englischer Version (Abstract).
\item \textit{Optional:} Ein Glossar
\item Ein Inhaltsverzeichnis mit Seitenangaben
\item Einen Inhaltsteil inklusive Abbildungen und Tabellen
\item Ein Quellverzeichnis
\item \textit{Optional:} Ein Abbildungs- und/oder Tabellenverzeichnis
\item \textit{Optional:} Einen Anhang
\end{enumerate}
\section{Seitenzahlen}
Die Seitenzählung mit arabischen Zahlen beginnt auf der ersten Seite des Inhaltsteils und erfolgt so fortlaufend bis zum Arbeitsende inklusive Quellverzeichnis und Anhang. Die Seiten am Anfang der Arbeit vor der ersten Inhaltsseite, also die Seiten mit der ehrenwörtlichen Erklärung und dem Inhaltsverzeichnis, nummerieren Sie mit kleinen römischen Zahlen (i, ii, iii, iv, ...).
\section{Schriftart}
Verwenden Sie gängige und gut lesbare Schriftarten in Schriftgröße 11pt. Verwenden Sie keine \enquote{Narrow}-Schriftarten. Viele empfinden, dass Serifen-Schriften für Fließtext besser lesbar sind. Sie können aber auch serifenlose Schriften verwenden.
\paragraph{\textit{Kursiver Text}:}
Wenn Sie neue Begriffe definieren oder erklären, verwenden Sie dabei den \textit{Kursivdruck}. Beispiel: \enquote{Die aussagenlogische Formel wird in einem \textit{Binären Entscheidungsbaum (Binary Decision Diagram, BDD)} repräsentiert.}
Wichtige Schlagworte im Text können \textbf{fett} hervorgehoben werden. Aber: setzen Sie Fettdruck nur sparsam ein!
\section{Kapitel, Abschnitte und Nummerierung}
Der Inhalt der Arbeit muss in Kapitel und Abschnitte strukturiert sein. Abschnitte können Unterabschnitte enthalten. Hat ein Abschnitt einen Unterabschnitt, sollte er auch (mindestens) einen zweiten haben. Nummerieren Sie Kapitel, Abschnitte und Unterabschnitte nach dem Dezimalsystem (1, 1.1, 1.1.1 etc.).
Nummerieren Sie auch Abbildungen und Tabellen im Dezimalsystem, zum Beispiel Abbildung~1, Tabelle~1. Sie können auch die Kapitelnummer mit den Abbildungs- und Tabellennummern kombinieren, zum Beispiel Abbildung~1.1, Tabelle~1.1 -- wie in dieser Vorlage. Dasselbe gilt für Tabellen und Listings von Quellcode. Bedenken Sie: Abbildungen haben \textit{Unterschriften}, Tabellen und Listings hingegen haben \textit{Überschriften}.
Für Verweise auf Abschnitte, Abbildungen, Quellcode oder anderweitige Verweistypen verwenden Sie die automatischen Mechanismen des Textverarbeitungsprogramms. In \LaTeX{} verwenden Sie Label und Referenzen darauf.
\paragraph{\textit{Empfehlungen}:}
Die Überschriften der einzelnen Gliederungspunkte sollten möglichst aussagekräftig sein. Dasselbe gilt für die Beschriftungen von Abbildungen und Tabellen. Der Text in den Abschnitten sollte in Absätze unterteilt sein. Merksatz: \enquote{Pro Satz ein Gedanke, pro Absatz ein Gedankengang}. Ein Absatzbeginn kann, wie in dieser Vorlage, eingerückt sein, wobei es nach Überschriften keine Einrückungen geben sollte.
\section{Seitenformat und Ränder}
Die Arbeit muss im Seitenformat A4 formatiert sein. Sie können ein ein- oder zweiseitiges Format wählen. Ein zweiseitiges Format ist sinnvoll, wenn Sie die Arbeit auf Papier drucken und binden möchten. Sonst ist ein einseitiges Format besser geeignet. Den Text setzen Sie in Blocksatz.
Nutzen Sie folgende Einstellungen für Ränder, wenn Sie planen, die Arbeit zu drucken. Diese Einstellungen gewährleisten eine gute Lesbarkeit auch bei einer Falz.
\begin{itemize}
\item \textit{einseitiges} Dokument: links: 50mm, rechts: 35mm, oben: 45mm, unten: 45mm
\item \textit{zweiseitiges} Dokument: innen: 50mm, außen: 35mm, oben: 45mm, unten: 45mm
\end{itemize}
Wenn Sie die Arbeit nicht drucken und nur digital abgeben, können die Ränder 10 mm verschoben werden, sodass der rechte bzw äußere Rand etwas größer wird:
\begin{itemize}
\item \textit{einseitiges} Dokument: links: 40mm, rechts: 45mm, oben: 45mm, unten: 45mm
\item \textit{zweiseitiges} Dokument: innen: 40mm, außen: 45mm, oben: 45mm, unten: 45mm
\end{itemize}
Wenn Sie diese \LaTeX{}-Vorlage verwenden, verändern Sie \textbf{nicht} die Einstellungen der Ränder.
\section{Sprache}
Sie können Arbeiten auf Deutsch oder Englisch schreiben.
\paragraph{\textit{Empfehlung}:}
Schreiben Sie in einem Textverarbeitungsprogramm wie Word oder LibreOffice Writer, sollten Sie die Funktion \enquote{Automatische Silbentrennung} nutzen, um größere Lücken im Text (Blocksatz) zu vermeiden. Schreiben Sie in \LaTeX{}, stellen Sie sicher, dass die richtige Sprache für die Silbentrennung konfiguriert ist und fügen Sie bei Bedarf benutzerdefinierte Trennregeln hinzu .
\section{Abbildungen}
Wo sinnvoll, sollte Ihre Arbeit Grafiken und Schaubilder enthalten. Fügen Sie diese, wenn möglich, in einem \textbf{Vektorformat} ein. Bitmap-Formate wie JPG oder PNG verwenden Sie nur bei Bildern (Fotos), oder wenn es keine Möglichkeit gibt, dieselbe Grafik im Vektorformat einzubinden.
Abbildung~\ref{fig:feature-diagram-productioncell-example} ist ein Beispiel für das Einbinden einer Grafik. In \LaTeX{} können Sie Vektorgrafiken in Form von PDF oder EPS einbinden. Die meisten Zeichen- und Modellierungswerkzeuge unterstützen den Export von PDFs.
\begin{figure}[h]
\centering
\includegraphics[scale=\stdScaleFactor]
{contents/figures/feature-diagram-productioncell-example.pdf}
\caption{Das Featurediagramm eines Produktionsroboters}
\label{fig:feature-diagram-productioncell-example}
\end{figure}
Achten Sie darauf, dass jede Abbildung gut lesbar ist und nicht den Rand des Textbereichs überschreitet. Eine Abbildung muss immer im Text referenziert und beschrieben werden. Was sieht der Leser? Was bedeuten zum Beispiel verschiedene Pfeile? Eine Legende in der Grafik (wie in Abb.\,\ref{fig:feature-diagram-productioncell-example}) ist nicht zwingend notwendig, kann die Grafik aber besser verständlich machen. Sie können das Wort "`Abbildung"' im Text mit "`Abb."' abkürzen. An Satzanfängen sieht die ausgeschriebene Variante allerdings schöner aus.
Achten Sie darauf, dass die in den Grafiken verwendete Schrift konsistent ist, also alle Grafiken möglichst dieselbe Schriftart in derselben Größe verwenden. Es ist üblich, dass die in den Grafiken verwendete Schrift etwas kleiner als der Fließtext ist, ca. 70-90\%. In Abbildungen nutzen Sie besser serifenlose Schriften, wie zum Beispiel Arial.
\paragraph{\textit{Empfehlungen}:}
Positionieren Sie Abbildungen möglichst nah an der Stelle, wo sie im Text referenziert und erklärt werden. In \LaTeX{} benutzen Sie für das Einbinden von Abbildungen mittels der \texttt{figure}-Umgebung am besten den Parameter \texttt{[h]}:
\begin{verbatim}
\begin{figure}[h] ... \end{figure}
\end{verbatim}
\section{Quellcode}
Hier ist ein Beispiel für ein Quellcode-Listing. Das Beispiel zeigt, wie bestimmte Zeilen aus einer Python-Datei
\begin{verbatim}
contents/listings/example_python_for_listing.py
\end{verbatim}
abgedruckt werden können.
\lstinputlisting[
language=Python,
label=lst:bppy-simple-toDest-example,
float=htbp,
firstline=4,
lastline=19,
caption={Beispiel für ein Quellcode-Listing}
]{contents/listings/example_python_for_listing.py}
\section{Schreibstil}
\subsection{Aktiv und Passiv, Verwendung von \textit{ich}}
Der wissenschaftliche Schreibstil hat sich in den letzten Jahren gewandelt. Früher waren lange, verschachtelte Sätze ein Zeichen von Wissenschaftlichkeit, und Autoren schrieben in passiver Form, um die Personalpronomen \enquote{wir} und \enquote{ich} zu vermeiden -- \enquote{wir} und \enquote{ich} klängen \enquote{weniger objektiv}, so oft die Begründung. Dies findet sich auch (noch) im Ratgeber für Abschlussarbeiten des FB16 -- die Vorlieben und Anforderungen der Prüfer sind scheinbar unterschiedlich.
Heute ist es in technischen Bereichen, auch durch den angelsächsischen Einfluss, ein Zeichen guten Ausdrucks, möglichst im Aktiv zu schreiben. Passive Sätze wirken distanziert und sind oft komplizierter als aktive Sätze. Daher raten wir zur aktiven Sprache.
Wenn Sie in der Arbeit Ihr eigenes Vorgehen, Abwägungen oder Entscheidungen beschreiben, sollten Sie insbesondere die Personalpronomen \enquote{wir} oder \enquote{ich} verwenden. Diese Ausführungen sind inhärent \textit{subjektiv} und sollten auch nicht den falschen Anschein von Objektivität erwecken.
In wissenschaftlichen Veröffentlichungen im technischen Bereich wird oft \enquote{wir} (oder engl. \enquote{we}) verwendet, ein \enquote{ich} findet man seltener. Das liegt allerdings daran, dass wissenschaftliche Arbeiten meist von mehr als einer Person durchgeführt und veröffentlicht werden.
Bei studentischen Arbeiten ist das anders, da dies eigenständige Studienleistungen sind, die Sie wirklich selbständig bearbeiten müssen. Zudem müssen Sie in der schriftlichen Darstellung deutlich machen, welche Ergebnisse Sie persönlich produziert haben und welche Beiträge anderen zuzuschreiben sind.
Nehmen wir den passiven Satz \enquote{Es wurde eine Problemanalyse durchgeführt und Anforderungen wurden abgeleitet.} -- Wer hat die Problemanalyse durchgeführt und die Anforderungen abgeleitet? Bezieht sich die Aussage auf die Verfasserin oder den Verfasser der Arbeit – oder auf Vorarbeiten anderer Personen? In dieser Formulierung bleibt das unklar.
Schreiben Sie besser \enquote{Ich habe eine Problemanalyse durchgeführt und Anforderungen abgeleitet}. Haben vielleicht Kollegen dabei geholfen? Welchen Anteil hatten dabei die Kollegen? Machen Sie dies explizit deutlich und schreiben Sie zum Beispiel: \enquote{Ich habe zusammen mit Mitarbeitern im Unternehmen eine Problemanalyse durchgeführt und eine erste Liste von Anforderungen abgeleitet.} Nun wird deutlich, welchen Beitrag Sie geleistet haben! Ihre Prüfer können Ihre Leistung nun klarer beurteilen.
Gehen Sie jedoch sparsam mit \enquote{ich} oder \enquote{wir} um. Bleiben Sie sachlich und beschränken Sie deren Verwendung auf Stellen, an denen Sie Ihr eigenes Vorgehen, Abwägungen oder Entscheidungen beschreiben.
Insbesondere sollte durch die Verwendung der Ich-Perspektive keine Erzählung entstehen: \enquote{Erst habe ich den Fehler nicht gefunden, aber zum Glück konnte ich kurz vor der Abgabe den Bug noch fixen, sodass ich im Großen und Ganzen schon sagen würde, dass die Arbeit ein Erfolg war.} -- eine Abschlussarbeit ist kein Tagebuch!
Die passive Schreibweise müssen Sie natürlich nicht vollständig verbannen. Dort, wo eine Handlung im Vordergrund steht und nicht die Handelnden, können Sie das Passiv verwenden. Beispiel: \enquote{Bei der testgetriebenen Entwicklung werden Anforderungen bereits in Testfälle überführt, bevor die entsprechende Softwarefunktionen entwickelt werden.} Dennoch kann es auch hier hilfreich sein, zu erklären, welche Personen oder Rollen am Geschehen beteiligt sind -- gerade wenn es um Arbeitsprozesse geht. Wer schreibt die Tests? Die Tester? Die Entwickler? Vielleicht ist es doch besser zu schreiben \enquote{Bei der testgetriebenen Entwicklung überführt der Entwickler oder die Entwicklerin die Anforderungen in Testfälle, schon bevor er/sie die entsprechenden Softwarefunktionen entwickelt.}
\section{Arbeit mit Quellen}
\label{sec:arbeit-mit-quellen}
Bei der Erklärung von Grundlagen, Problemstellungen, Lösungsansätzen, verwandten Arbeiten oder zur Unterstützung von Argumenten sollten Sie auf geeignete Quellen hinweisen. Hier sind Beispiele für Referenzen auf Quellen~\cite{Greenyer2007,DBLP:conf/calco/KonigWK23}, die im Quellenverzeichnis aufgeführt sind.
Sie können numerische oder auch alphabetische Verweisstile verwenden. Verwenden Sie für Zitate keine Fußnoten.
Achten Sie beim Quellenverzeichnis darauf, dass dort alle Quellen aufgelistet sind, die Sie im Text zitiert haben (und auch nur diese)!
\paragraph{\textit{Empfehlung}:}
Wenn Sie mit \LaTeX{} arbeiten, verwenden Sie \textit{Bibtex}. Für mehrere Quellverzeichnisse verwenden Sie \textit{Multibib}.
Sie können die Quellen in ein Quellverzeichnis sortieren oder mehrere Quellverzeichnisse nach Publikationstyp getrennt verwenden. Dies bietet sich an, um wissenschaftliche und nicht-wissenschaftliche Quellen eindeutig zu trennen, ist jedoch optional.
\subsection{Korrekt zitieren}
Achten Sie auf die Vollständigkeit der Quellenangaben. Wenn Sie \LaTeX{} und Bibtex verwenden, werden die Angaben meist automatisch in der richtigen Reihenfolge generiert. Sie können oft auf den Webseiten der Verlage fertige Bibtex-Einträge zu Quellen finden. Viele Verlage, wie zum Beispiel Springer, ACM, IEEE usw. (s. Links unten), bieten für ihre Veröffentlichungen meist vollständige und korrekte Bibtex-Einträge zum Download an. Zur Verwaltung von Quellen können Sie Werkzeuge wie JabRef (\url{https://www.jabref.org/}) nutzen, das auch Funktionen für die Suche und den automatischen Import von Bibtex-Einträgen bietet. Wenn Sie irgendwo anders im Internet Bibtex-Einträge finden, vertrauen Sie nicht darauf, dass diese vollständig und richtig sind. Prüfen Sie in jedem Fall die finale Darstellung Ihrer Quellenangaben im Dokument.
Erforderliche Angaben zu den Quellen, je nach Art der Quelle, sind im Folgenden beschrieben:
\begin{itemize}
\item \textbf{Monographien und Lehrbücher} (Bibtex-Typ \texttt{@book}):
Es erscheinen zuerst die Autoren, jeweils mit Nachnamen, gefolgt vom Vornamen. Es folgt ein Punkt oder Doppelpunkt (aber: konsistent bleiben), dann der Titel der Publikation, der Verlag und optional der Erscheinungsort. Danach folgt die Zahl der Ausgabe, falls es sich nicht um die erste Ausgabe handelt. Zuletzt wird das Jahr der Veröffentlichung genannt. Beispiel: \cite{Sutton2018}
\item \textbf{Fachartikel in Zeitschriften} (Bibtex-Typ \texttt{@article}):
Wieder erscheinen zuerst die Autoren, dann der Titel des Artikels. Es folgt der Zeitschriftentitel sowie die Heftnummer (number), der Band (volume), der Seitenbereich und die Jahresangabe. Beispiel: \cite{Greenyer2013}
\item \textbf{Konferenzbeiträge} (Bibtex-Typ \texttt{@inproceedings}):
Zuerst erscheinen die Autoren, dann folgt der Titel des Artikels. Darauf folgt die Nennung des Konferenzbandes, wobei, wenn bekannt, die Herausgeber (Editoren) des Konferenzbandes vorangestellt werden.
Darauf folgen optional die Serie, die Heftnummer und der Band. Schließlich folgt der Seitenbereich sowie die Jahresangabe. Beispiel: \cite{DBLP:conf/calco/KonigWK23}
\item \textbf{Internetquellen} (Bibtex-Typ \texttt{@misc}): Sie können auch Online-Artikel, Wikipedia-Einträge, API-Referenzen, Podcasts, Blog-Einträge, Videos, Social-Media-Beiträge oder andere Quellen im Internet zitieren.
Geben Sie auch hier zuerst, soweit vorhanden, die Namen der Autoren an, dann den Titel, gegebenenfalls den Namen eines Online-Magazins, das Veröffentlichungsdatum, dann die URL der Quelle und das Zugriffsdatum. Beispiel: \cite{Gebhard2021}
\item Es gibt weitere Arten von Quellen, wie Buchkapitel, Masterarbeiten, Doktorarbeiten, technische Berichte oder Standards. Auch hier werden zuerst die Autoren und dann der Titel genannt. Weitere Angaben variieren. Recherchieren Sie die gängige Zitierweise und die korrekte Nutzung von Eintrags-Typen in Bibtex. Hier ist ein Beispiel für den Verweis auf einen Standard: \cite{UML251}.
\end{itemize}
\subsection{Zitate im Text}
Wenn Sie Textstellen aus anderen Quellen wörtlich entnehmen oder wörtlich übersetzen, müssen Sie diese Textbereiche \textbf{eindeutig durch Anführungszeichen} kennzeichnen.
Hier ist ein Beispiel für ein wörtliches, übersetztes Zitat: \enquote{Heute werden oft nicht nur einzelne Softwareprodukte entwickelt, sondern ganze Produktlinien, also es müssen viele Varianten eines Produkts entwickelt werden.} \cite[Seite~1]{Greenyer2013}.
\textbf{\textit{Empfehlung:}} Gehen Sie sparsam mit übernommenen Textpassagen um. Wörtlich übernommene Textpassagen sollen Ihre eigenen Inhalte ergänzen und unterstützen, statt sie zu ersetzen. Wenn ein Grundlagen-Kapitel eine Aneinanderreihung kopierter Passagen aus fremden Quellen ist, werden die Inhalte nicht als Ihre eigene kreative Leistung anerkannt.
Allgemein sollte eine Referenz nicht als Textelement genutzt werden\footnote{Dasselbe gilt für Fußnoten. Fußnoten sollten übrigens nur in Ausnahmefällen eingesetzt werden, wenn eine zusätzliche Anmerkung nur sehr schwer im Haupttext erwähnt werden kann, ohne den Textfluss, wie zum Beispiel eine Argumentationskette, zu unterbrechen. Eine gute Arbeit kommt sehr gut ohne Fußnoten aus: Sind Anmerkungen wichtig, sollten sie in den Haupttext integriert werden. Sind sie nicht wichtig, warum sollten sie dann in der Arbeit erwähnt werden? Oder fanden Sie es jetzt gut, vom Lesefluss abgelenkt zu werden, nur um hier etwas im Kleingedruckten zu lesen und gleich wieder die Textstellen suchen zu müssen, wo Sie weiterlesen wollten?}. Also nicht so: \enquote{Eine effiziente Methode zur Konsistenzanalyse wird in~\cite{Cordy2012} beschrieben}. Sondern so: \enquote{Eine effiziente Methode zur Konsistenzanalyse wird von Cordy et al.\,\cite{Cordy2012} beschrieben.} Der Text sollte also auch lesbar sein, wenn die Verweise entfernt würden. Die Abkürzung \textit{et al.} bedeutet übrigens \enquote{et alii}, auf Deutsch \enquote{und andere}; dieser Ausdruck wird in wissenschaftlichen Schriften gerne verwendet, wenn von mehr als zwei Autoren die Rede ist, um diese nicht alle aufzählen zu müssen.
Wenn Sie zitieren, sollten Sie, zumindest in einer Bachelor- oder Masterarbeit, möglichst wissenschaftliche Quellen angeben. Das sind Papiere von Workshops und Konferenzen oder Artikel in Fachjournalen.
Dissertationen und Fachbücher von Fachverlagen gehören ebenfalls dazu.
Diese Quellen sind meist vertrauenswürdig, da sie einen Begutachtungsprozess durchlaufen. Technische Berichte werden typischerweise nicht begutachtet, sind aber meist vertrauenswürdig, wenn sie von Wissenschaftlern verfasst sind, die weitere, begutachtete Papiere zu demselben Themenbereich veröffentlicht haben.
Bei der Recherche sind diese Internetseiten hilfreich:
\begin{itemize}
\item \url{http://scholar.google.com}
\item \url{https://www.semanticscholar.org}
\item \url{http://ieeexplore.ieee.org/}
\item \url{https://dl.acm.org/}
\item \url{https://link.springer.com/}
\item \url{https://www.springerprofessional.de/}
\item \url{https://www.sciencedirect.com/}
\item \url{https://dblp.org/}
\item \url{https://arxiv.org/}
\end{itemize}
Verweise auf Internetquellen, wie zum Beispiel Artikel von Onlinemagazinen oder Wikipedia, sind möglich, sollten aber nur verwendet werden, wenn es keine geeignete wissenschaftliche Quelle gibt.
In einem Projektbericht können Quellverweise aus Internetquellen stammen, wenn Sie dort eine sehr praxisnahe Fragestellung behandeln.
\paragraph{arXiv.org}
Viele wissenschaftliche Veröffentlichungen sind auf \url{arXiv.org} frei zugänglich. Dabei handelt es sich in der Regel um sogenannte \emph{Preprints} – also Vorabfassungen von Artikeln, die noch nicht den formalen Begutachtungsprozess (\emph{Peer Review}) durchlaufen haben.
Teilweise wurden diese Arbeiten zwar bereits begutachtet,
aber noch nicht über einen Verlag oder Konferenzband veröffentlicht.
Solche Preprints sind besonders hilfreich, da sie den frühzeitigen Zugang zu aktuellen Forschungsergebnissen ermöglichen, sollten jedoch mit Vorsicht zitiert werden.
Wenn eine begutachtete Fassung des gleichen Artikels später in einem Konferenzband oder Journal erschienen ist,
sollte \textbf{immer diese offizielle Veröffentlichung} zitiert werden.
In Portalen wie Google Scholar oder DBLP lässt sich häufig erkennen, ob eine begutachtete Version eines arXiv-Papers existiert:
Bei DBLP ist diese meist über einen separaten Eintrag mit Verweis auf den entsprechenden Konferenzband oder das Journal verlinkt.
Auch Google Scholar zeigt häufig mehrere Versionen desselben Artikels an – über den Link \emph{All versions} kann geprüft werden, ob zusätzlich zur arXiv-Fassung eine begutachtete Veröffentlichung beim Verlag vorliegt.
\section{Plagiarismus}
Eine wissenschaftliche Arbeit steht immer im Zusammenhang mit anderen Arbeiten. Verweise auf Quellen sind in wissenschaftlichen Arbeiten daher unerlässlich und fördern das Verständnis. Wenn Sie Sätze oder Textpassagen \textbf{wörtlich oder sinngemäß} (zum Beispiel übersetzt ins Deutsche) aus anderen Quellen in Ihre Arbeit übernehmen, müssen diese Stellen explizit gekennzeichnet werden (mit Anführungszeichen, siehe oben). \textbf{Es muss eindeutig erkennbar sein, welche Teile Ihrer Arbeit Ihren eigenen kreativen Beitrag darstellen und welche Teile Sie aus anderen Quellen übernommen haben.} Auch wenn Sie Bilder aus anderen Quellen übernehmen, müssen Sie dies explizit kenntlich machen (zum Beispiel \enquote{Grafik entnommen aus\ldots}). Dasselbe gilt auch für Quellcode, Skripte oder Datensätze, die Sie aus anderen Quellen übernehmen.
Wenn Sie Bilder, Code oder längere Textpassagen in Ihre Arbeit übernehmen, erkundigen Sie sich, ob diese Inhalte \textbf{urheberrechtlich geschützt} sind. In gewissem Umfang dürfen Sie diese Inhalte in Ihrer Arbeit \enquote{zum Zweck der nicht kommerziellen wissenschaftlichen Forschung} wiederverwenden und vervielfältigen; siehe §60c UrhG. Diese Ausnahme gilt allerdings nicht, wenn Sie Bilder rein zur visuellen Dekoration verwenden.
Auch \textbf{Beispiele}, die inhaltlich aus Quellen übernommen werden, müssen gekennzeichnet sein, selbst wenn Sie neue Grafiken anfertigen. Sind die Erklärungen zu dem Beispiel Ihre eigenen Worte, reicht eine Angabe wie zum Beispiel "`Das im folgenden Abschnitt erklärte Beispiel ist entnommen aus Cordy et al.~\cite{Cordy2012}\ldots"'. Wenn Sie Beispiele aus anderen Quellen erweitern, kennzeichnen Sie die übernommenen Teile des Beispiels sowie Ihre Erweiterungen.
Für die Bewertung zählt Ihr eigener Beitrag! Wenn Sie fremde Inhalte übernehmen, werden also nicht die fremden Inhalte bewertet, sondern Ihre eigenen Erweiterungen, Schlussfolgerungen, Argumentationen oder Verknüpfungen.
Wenn Sie fremde Inhalte vorsätzlich oder fahrlässig als Ihre eigenen ausgeben, wird dies als Täuschungsversuch dem Prüfungsamt gemeldet und führt \textbf{mindestens zum Nichtbestehen} Ihrer Arbeit!
\section{Nutzung generativer KI oder sonstiger KI-unterstützter Werkzeuge}
\label{sec:Nutzung-generativer-KI}
KI-basierte text- oder bildgenerierende Werkzeuge können bei der Erstellung wissenschaftlicher Arbeiten verwendet werden -- es kommt jedoch auf die Art der Nutzung der Werkzeuge an:
\begin{itemize}
\item \textbf{Sprachliche Unterstützung:}
Werkzeuge dürfen zur \textit{Korrektur von Grammatik, Rechtschreibung oder Stil} sowie für \textit{Übersetzungen} eingesetzt werden.
Beispiel: \enquote{Korrigiere Grammatikfehler in folgender Einleitung}.
Eine solche Nutzung ist vergleichbar mit dem Korrekturlesen und in der Regel unproblematisch.
Sie muss nicht zwingend einzeln ausgewiesen werden, sollte aber in der Arbeit allgemein deklariert werden (z.\,B. in der Einleitung oder in der Eigenständigkeitserklärung).
\item \textbf{Inhaltlich-strukturelle Unterstützung:}
Werkzeuge können zur \textit{Ideengenerierung, Strukturierung oder zum Formulieren von Stichpunkten} verwendet werden, solange Sie die finalen Texte selbst ausarbeiten.
Beispiel: \enquote{Schlage mir Gliederungspunkte zu Thema X vor}.
In diesem Fall muss der Einsatz \textbf{transparent gemacht} werden, etwa durch eine Beschreibung im Methodenteil oder einen Anhang mit verwendeten Prompts.
Die inhaltliche Verantwortung liegt vollständig bei Ihnen.
\item \textbf{Eigenständige Texterzeugung:}
Das \textit{direkte Übernehmen von durch KI generierten Textpassagen oder Bildern} ersetzt die eigene kreative, wissenschaftliche Leistung und ist nicht zulässig.
Beispiel: \enquote{Schreibe mir die Einleitung für meine Arbeit}.
Sollte nachgewiesen werden, dass Inhalte direkt übernommen wurden, gilt dies als Täuschungsversuch.
Wenn Sie KI-generierte Textbausteine in Ausnahmefällen auszugsweise übernehmen sollten, müssen diese als Zitat oder Paraphrase gekennzeichnet und die verwendete KI (inklusive Version) angegeben werden.
\end{itemize}
In jedem Fall gilt: Sie sind inhaltlich verantwortlich für alle Texte, die unter Ihrem Namen erscheinen. Übernehmen Sie niemals unreflektiert die Ausgaben solcher Algorithmen, sondern prüfen und überarbeiten Sie diese kritisch.
Weitere Hinweise zu diesem Thema finden Sie \href{https://research-and-innovation.ec.europa.eu/news/all-research-and-innovation-news/guidelines-responsible-use-generative-ai-research-developed-european-research-area-forum-2024-03-20_en}{hier}.
contents/listings/example_python_for_listing.py — binary, 310 B
contents/struktur-und-inhalt.tex · 18 KB
\chapter{Struktur und Inhalt}
\label{chap:struktur-und-inhalt}
\section{Wissenschaftliche Arbeiten im Fachbereich Software Engineering}
Die Arbeiten im Fachbereich Software Engineering befassen sich mit Fragestellungen aus softwaretechnischen Anwendungsbereichen. Es sind auch mathematische oder andere Schwerpunkte möglich. In diesem Kapitel beschreiben wir, welche Zielsetzung solche Arbeiten im Allgemeinen haben und welche Konsequenzen sich deshalb für die Strukturierung des Inhalts der Arbeiten ergeben.
Dabei ist eine Unterscheidung der Prüfungsformen wichtig, da für Projektberichte andere Anforderungen gelten als für die wissenschaftlichen Bachelor- und Masterarbeiten.
\section{Bachelor- und Masterarbeiten}
\subsection{Zielsetzung}
Bei einer Bachelor- oder Masterarbeit sollen Sie Fachwissen aus dem Studiengang anwenden, um eine komplexe Problemstellung zu bearbeiten.
Das Ziel ist die \textbf{Beantwortung einer wissenschaftlichen Fragestellung} und somit die Erlangung einer \textbf{wissenschaftlichen Erkenntnis}.
Sie sollen also demonstrieren, dass Sie in der Lage sind, für ein Problemgebiet Forschungsfragen zu definieren, geeignete Forschungsmethoden auszuwählen und anzuwenden und letztlich Erkenntnisse abzuleiten.
Doch, was ist eine wissenschaftliche Erkenntnis in einer technischen Wissenschaft wie dem Software Engineering? Die technischen Wissenschaften beschäftigen sich mit \textbf{\textit{Methoden zur Entwicklung eines technischen Produkts oder Prozesses, die die Qualität des Produkts oder Prozesses erhöhen oder die Effizienz der Entwicklung steigern.} }
Software Engineering als wissenschaftliche Disziplin ist wie folgt definiert. Software Engineering (Softwaretechnik) ist die...
\begin{itemize}
\item \emph{Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen Softwaresystemen.}~\cite{balzert1996a}
\item \emph{The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.} \cite{IEEEStandardGlossaryOfSoftwareEngineeringTerminology1990}
\end{itemize}
Neue Erkenntnisse in diesem Sinne sind zum Beispiel:
\begin{itemize}
\item Erkenntnisse über den Einsatz von Algorithmen und Technologien \textit{in} einer zu entwickelnden Software.
\item Erkenntnisse über den Einsatz von Algorithmen, Technologien, Werkzeugen \textit{bei der Entwicklung} von Software.
\item Erkenntnisse über Entwicklungsprozesse oder Organsisationsaspekte im Kontext der Softwareentwicklung (menschliche oder sozio-technische Aspekte).
\end{itemize}
Darüber hinaus sind wissenschaftliche Erkenntnisse in technischen Wissenschaften auch:
\begin{itemize}
\item Erkenntnisse über theoretische Grundlagen, z.B. mathematische Beweise.
\item Erkenntnisse an interdisziplinären Schnittstellen zu anderen Themengebieten, wie zum Beispiel Naturwissenschaften, Ethik oder Wirtschaftswissenschaften.
\item Eine Erkenntnis über den wissenschaftlichen Erkenntnisgewinn selbst (metawissenschaftlicher Beitrag).
\end{itemize}
\subsection{Erlangung wissenschaftlicher Erkenntnisse: konstruktiv oder analytisch}
Wissenschaftliche Erkenntnisse können auf zwei grundlegende Weisen erlangt werden:
\textit{konstruktiv} oder \textit{analytisch}.
Ein \textbf{konstruktiver} Erkenntnisgewinn entsteht durch die Entwicklung und Bewertung
einer neuartigen Lösung für eine entwicklungsmethodische Problemstellung.
Dieses Forschungsparadigma wird auch
\textit{Design Science Research} genannt und z.\,B.\, durch Hevner et al. systematisiert \cite{HevnerDSR2004}.
Das systematische Vorgehen umfasst:
\begin{itemize}
\item Identifikation eines Problems in einer Softwareentwicklungsmethode.
\item Darlegung, inwiefern dieses Problem die Qualität von Software oder allgemeinen Systemen oder Abläufen beeinträchtigt.
\item Entwicklung eines Artefakts (z.\,B.\ Methode, Modell, Tool) als Lösung
und Begründung seiner Neuartigkeit und Eignung durch logische oder experimentelle Evaluation.
\end{itemize}
Ein \textbf{analytischer} Erkenntnisgewinn entsteht dagegen durch die Untersuchung
bestehender Technologien, Methoden oder Zusammenhänge in einem Problembereich.
Das systematische Vorgehen umfasst:
\begin{itemize}
\item Identifikation einer Wissenslücke bezüglich einer Softwareentwicklungsmethode.
\item Darlegung, welchen Beitrag das Schließen dieser Lücke für die Verbesserung
von Softwareentwicklungsprozessen leisten kann.
\item Gewinnung von Erkenntnissen zur Schließung der Lücke,
z.\,B.\ durch Experimente, Fallstudien, Umfragen oder Literaturanalysen,
und Begründung der Verlässlichkeit der Ergebnisse.
\end{itemize}
\subsection{Struktur (konstruktive Arbeit)}
Eine konstruktive Arbeit hat typischerweise folgende Struktur:
\begin{enumerate}
\item \textbf{Einleitung}
\begin{enumerate}
\item \textbf{Problemstellung}: Was ist der Problemkontext? Was ist das (entwicklungsmethodische) Problem? Warum ist das Problem relevant? Was sind spezifische Anforderungen an die Lösung des Problems?
\item \textbf{Abgrenzung zu verwandten Arbeiten}: Inwieweit sind bestimmte Aspekte der Problemstellung bereits gelöst und welche noch nicht? Gehen Sie kurz auf die entsprechenden Quellen ein.
\item \textbf{Forschungsfrage}: Welche Forschungsfrage ergibt sich aus der Problemstellung und soll in dieser Arbeit beantwortet werden? (Ggf. untergliedert.)
\item \textbf{Forschungsmethode}: Hier erklären Sie, dass Sie eine \textit{konstruktive} Forschungsmethode anwenden. Beschreiben Sie den \textbf{Lösungsansatz} für die Problemstellung, den Sie vorschlagen, und welche \textbf{Evaluierungsmethode} Sie für die Bewertung des Lösungsansatzes anwenden, zum Beispiel die Evaluierung mittels einer prototypischen Umsetzung.
\item \textbf{Ergebnis und Beitrag der Arbeit}: Was sind die wichtigsten Erkenntnisse der Arbeit und warum sind diese Ergebnisse nützlich?
\item {\bf Struktur der Arbeit}: Hier wird erläutert, wie die Arbeit aufgebaut ist.
\item {\bf Erläuterungen zur Nutzung von KI-Werkzeugen}:
Siehe Abschnitt \ref{sec:Nutzung-generativer-KI}.
\end{enumerate}
\item \textbf{Grundlagen}: Hier erklären Sie Konzepte, Verfahren und Technologien, die für das Verständnis der folgenden Kapitel notwendig sind. Wissen, das Sie bereits im Studium erlernt haben, können Sie als gegebenes Wissen voraussetzen.
\item \textbf{Problemanalyse}: Hier erarbeiten Sie Anforderungen an eine Lösung und legen dar, warum es bisher für dieses Problem noch keine Lösung gibt oder warum existierende Lösungen unzureichend sind. Wenn Sie hier Anforderungen oder Systemumgebungen des IST-Zustands darstellen, sollten Sie Anforderungen (sowohl funktionale als auch nicht-funktionale) und Use Cases strukturiert beschreiben (in Listen, Tabellen); für die Beschreibung von Strukturen oder Abläufen sollten Standards wie z.B.\ UML oder andere erlernte technische Diagrammarten verwendet werden.
\item \textbf{Lösungskonzept}: Hier beschreiben Sie die Lösung des Problems auf konzeptioneller Ebene, möglichst unabhängig von der verwendeten Technologie oder Programmierung. Gegebenenfalls wägen Sie die Vor- und Nachteile verschiedener Lösungsalternativen ab. Hier werden Architekturen, Abläufe oder Algorithmen beschrieben, möglichst wieder mit entsprechenden fachlichen Diagrammen.
\item \textbf{Umsetzung und Evaluierung}: Hier beschreiben Sie wichtige technologische Aspekte, die nicht zum konzeptionellen Teil der Lösung gehören. Zum Beispiel, welche Frameworks, Plattformen, Programmiersprachen oder Bibliotheken Sie verwendet haben. Nur manchmal macht es hier Sinn, Programmcode zu beschreiben, nämlich wenn programmiertechnische Details im Vergleich zur konzeptuellen Beschreibung der Lösung einen wichtigen Beitrag leisten. Ebenso sollten Sie in diesem Kapitel bewerten, inwiefern Ihre Lösung die zuvor definierten Anforderungen erfüllt (siehe Problemstellung). Sind zum Beispiel die Performance, Fehlertoleranz oder Benutzerfreundlichkeit wichtige Anforderungen, können Sie hier die Ergebnisse entsprechender Analysen darlegen.
\item \textbf{Verwandte Arbeiten}: Hier grenzen Sie Ihre Arbeit von vergleichbaren, existierenden Arbeiten ab, siehe Abschnitt~\ref{sec:verwandte-arbeiten}.
\item \textbf{Zusammenfassung und Ausblick}: Hier fassen Sie die wichtigsten Beiträge Ihrer Arbeit nochmals zusammen: Was sind die wichtigsten Ergebnisse? Warum sind diese Ergebnisse gut? Warum ist die Arbeit ein Erfolg? Zudem können Sie beschreiben, wie Ihre Lösung in Zukunft noch verbessert oder weiterentwickelt werden kann (Ausblick).
\end{enumerate}
\subsection{Struktur (analytische Arbeit)}
Eine analytische Arbeit hat typischerweise folgende Struktur:
\begin{enumerate}
\item \textbf{Einleitung}
\begin{enumerate}
\item \textbf{Problemstellung} (s.o.)
\item \textbf{Abgrenzung zu verwandten Arbeiten}: (s.o.)
\item \textbf{Forschungsfrage}: (s.o.)
\item \textbf{Forschungsmethode}: Hier erklären Sie, dass Sie eine \textit{analytische} Forschungsmethode anwenden. Beschreiben Sie welche \textbf{Forschungsmethode} Sie für die Beantwortung der Forschungsfragen anwenden (zum Beispiel Experiment, Interviews).
\item \textbf{Ergebnis und Beitrag der Arbeit}: Was sind die wichtigsten Erkenntnisse der Arbeit und warum sind diese Ergebnisse nützlich?
\item {\bf Struktur der Arbeit, Methodik}, siehe Abschnitt \ref{sec:struktur-projektbericht}.
\end{enumerate}
\item \textbf{Grundlagen}: s.o.
\item \textbf{Problemanalyse}: s.o.
\item \textbf{Forschungsmethode}: Hier beschreiben Sie im Detail, wie Sie die Analyse durchgeführt haben.
\item \textbf{Ergebnisse}: Hier präsentieren Sie die Ergebnisse Ihrer Arbeit und beschreiben inwiefern diese Ergebnisse verlässlich sind und welche Faktoren die Gültigkeit der Ergebnisse gegebenenfalls beeinflussen.
\item \textbf{Verwandte Arbeiten}: Hier grenzen Sie Ihre Arbeit zu vergleichbaren existierenden Arbeiten ab, siehe Abschnitt~\ref{sec:verwandte-arbeiten}.
\item \textbf{Zusammenfassung und Ausblick}:
siehe Beschreibung zu \hyperref[struktur:zusammenfassung-ausblick]{\textit{Zusammenfassung und Ausblick}} in Abschnitt~\ref{sec:struktur-projektbericht}
\end{enumerate}
\section{Was ist eine Forschungsfrage?}
Eine Forschungsfrage beschreibt, welche Frage innerhalb der Arbeit beantwortet werden soll. Sie beschreibt die Zielsetzung der Arbeit.
Die Forschungsfrage sollte zu Beginn der Arbeit feststehen und mit dem Prüfer der Arbeit besprochen werden. Falls Sie das Ziel einmal aus den Augen verlieren, muss die Forschungsfrage Sie wieder auf den richtigen Weg bringen.
Die Forschungsfrage sollte möglichst präzise formuliert sein. Ein Beispiel für eine \textbf{konstruktive} Forschungsfrage wäre \enquote{Wie können effizienter Lasttests für die Bewertung der Performance einer Software erstellt werden?}. Hier ist jedoch einiges unklar. Welche Software? Was ist der Problembereich? Effizienter als was? Eine präzisere und bessere Forschungsfrage ist \enquote{Wie können Lasttests für die Bewertung der Performance von datenintensiven REST-Services auf Basis von aufgezeichneten Lastprofilen in Log-Dateien automatisiert erstellt werden?}.
Ein Beispiel für eine \textbf{analytische} Forschungsfrage ist \enquote{Steigert ein agiles Vorgehen die Effizienz der Softwarentwicklung?} Hier ist wieder einiges unklar: Welches agile Vorgehen genau? Entwicklung von was? Welche Rahmenbedingungen sind gegebenenfalls wichtig? Eine Präzisierung der Forschungsfrage ist zum Beispiel \enquote{Steigert ein Vorgehen nach SCRUM die Effizienz der Entwicklung von Microservices durch crossfunktionale Entwicklerteams im Versicherungsbereich?}
Eine Forschungsfrage sollte möglichst systematisch nachvollziehbar beantwortbar sein. Dazu kann eine Forschungsfrage in Unterfragen unterteilt werden, die konkret beurteilbar oder messbar sind, zum Beispiel: \enquote{Wie lange dauert das automatisierte Erstellen von Lasttests im Vergleich zur manuellen Entwicklung der Lasttests?} oder \enquote{Im Vergleich zu historischen Daten über nicht-agile Entwicklungsprojekte, steigert ein Vorgehen nach SCRUM die Zahl der Funktionen, die in einem festgelegten Zeitraum entwickelt werden?}
Die Unterteilung der Forschungsfrage in Unterfragen sollte möglichst mit der Evaluation korrelieren, die Sie im Rahmen Ihrer Arbeit durchführen. Dabei kann sich die genaue Formulierung der Unterforschungsfragen durchaus erst im Laufe der Bearbeitungszeit ergeben und davon abhängen, welche Evaluierungen Sie letztlich im Rahmen Ihrer Arbeit durchführen.
Es kann mehrere Forschungsfragen geben, die miteinander in Verbindung stehen, zum Beispiel zusätzlich \enquote{Steigert ein Vorgehen nach SCRUM die Entwicklerzufriedenheit}. Es sollten jedoch nicht mehr als zwei oder drei Hauptforschungsfragen sein. Inhaltliche Tiefe ist meist besser als inhaltliche Breite.
\section{Was soll in den Grundlagen stehen?}
Oft stellt sich die Frage: Was sollte alles in den Grundlagen stehen? Die Antwort darauf ist, dass Sie alle Konzepte, Verfahren und Technologien erklären sollten, die für das Verständnis der folgenden Kapitel notwendig sind und nicht bereits bei Studierenden in Ihrem Studienabschnitt als bekannt vorausgesetzt werden können.
Die Zielgruppe Ihrer Arbeit ist also nicht der/die Prüfer:in oder Betreuer:in, sondern andere Studierende in Ihrem Studienabschnitt. Werden Sie sich dieser Zielgruppe bewusst und finden Sie in der Arbeit das richtige Niveau für Ihre Zielgruppe.
\section{Verwandte Arbeiten?}
\label{sec:verwandte-arbeiten}
Forschungsarbeiten stehen immer im Bezug zu vorangegangener Forschung. Im Kapitel \enquote{Verwandte Arbeiten} sollten Sie Ihre Arbeit von Quellen abgrenzen, die in Bezug auf Ihre Arbeit stehen. Das können Arbeiten sein, die ähnliche Problemstellungen oder Lösungsansätze behandeln. Wichtig ist, dass Sie die verwandten Arbeiten nicht nur nennen, sondern auch erklären, worin die Unterschiede zu Ihrer Arbeit liegen.
In einer Bachelorarbeit sollte das Kapitel \enquote{Verwandte Arbeiten} eine Seite lang sein; in einer Masterarbeit dagegen eher zwei bis drei Seiten. Wie viele verwandte Arbeiten Sie nennen, hängt vom Thema ab. Sprechen Sie Ihrer betreuenden Person darüber.
\section{Inhaltsverzeichnis, Abkürzungsverzeichnis und Glossar}
\label{sec:inhaltsverzeichnis-und-glossar}
Die Projektarbeit oder Thesis sollte in jedem Fall ein Inhaltsverzeichnis aufweisen (wie zum Beispiel in dieser Vorlage).
Verwenden Sie in der Arbeit viele fach- oder firmenspezifische Begriffe oder Abkürzungen, sollten diese in einem Glossar und/oder Abkürzungsverzeichnis erläutert werden. Wenn Sie ein Glossar und/oder ein Abkürzungsverzeichnis verwenden, sollten Sie dennoch die Bedeutung eines Fachbegriffs oder einer Abkürzung bei deren erstem Auftreten im Text erläutern. Gängige und bekannte Fachbegriffe oder Abkürzungen, wie zum Beispiel \textit{Testfall} oder \textit{GmbH}, brauchen und sollten Sie nicht in einem Glossar und/oder Abkürzungsverzeichnis aufnehmen.
\section{Projektberichte}
\subsection{Zielsetzung}
Die Zielsetzung von Projekten ist typischerweise die Anwendung von Fachwissen aus dem Studium zur Lösung einer praktischen Problemstellung.
Im Fachgebiet Software Engineering gehört im Normalfall zum Abschluss eines Projekts ein kurzer Projektbericht dazu.
\subsection{Struktur}
\label{sec:struktur-projektbericht}
Aufgrund der Zielsetzung sind Projektberichte typischerweise so aufgebaut, dass zunächst eine bestimmte Problemstellung analysiert, dann ein Lösungskonzept erarbeitet und letztlich die praktische Umsetzung (Implementierung) dieser Lösung beschrieben wird, möglichst mit einer anschließenden Evaluierung (Beurteilung der Qualität der Lösung).
Die kanonische Struktur eines Projektberichts ist wie folgt:
\begin{enumerate}
\item \textbf{Einleitung}: Hier führen Sie in das Thema ein, beschreiben den Problemkontext und die Zielsetzung der Arbeit. Erläutern Sie, welches konkrete Problem behandelt wird und welche Anforderungen an eine Lösung bestehen. Geben Sie außerdem einen kurzen Überblick über den gewählten Lösungsansatz und den Aufbau des Berichts.
\item \textbf{Grundlagen und Kontext}: Beschreiben Sie die wichtigsten theoretischen oder technischen Konzepte, Verfahren und Technologien, die zum Verständnis Ihrer Lösung erforderlich sind. Halten Sie sich kurz und beschränken Sie sich auf die für Ihre Arbeit unmittelbar relevanten Grundlagen.
\item \textbf{Lösungskonzept und Umsetzung}: Stellen Sie die entwickelte Lösung auf konzeptioneller Ebene dar. Beschreiben Sie die grundlegende Idee, die Architektur, wesentliche Abläufe oder Algorithmen. Führen Sie anschließend aus, wie die Lösung technisch umgesetzt wurde, z.,B.\ welche Frameworks, Plattformen, Programmiersprachen oder Bibliotheken verwendet wurden. Programmiertechnische Details sollten nur dargestellt werden, wenn sie zum Verständnis des Lösungsprinzips wesentlich beitragen.
\item \textbf{Ergebnisse und Bewertung}: Zeigen Sie, welche Ergebnisse mit der Lösung erzielt wurden. Bewerten Sie, inwiefern die zuvor beschriebenen Anforderungen erfüllt wurden, und begründen Sie die Qualität der Lösung, z.,B.\ anhand von Tests, Messungen oder einer kurzen Evaluation.
\item \textbf{Fazit und Ausblick}: Fassen Sie die wichtigsten Erkenntnisse der Arbeit zusammen: Was wurde erreicht, und warum ist das Ergebnis relevant oder nützlich? Geben Sie einen kurzen Ausblick, wie die Lösung verbessert oder weiterentwickelt werden könnte.
\end{enumerate}
halpha-abbrv.bst · 24 KB
% 2017-11-13 Gautam Iyer: Modified habbrv.bst to use abbrv style author names
% (e.g. G. Iyer), and alpha style citations (e.g. Iye17).
%
% halpha: adds eprint field ([email protected])
% an extension of:
% BibTeX standard bibliography style `alpha'
% version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
% Copyright (C) 1985, all rights reserved.
% Copying of this file is authorized only if either
% (1) you make absolutely no changes to your copy, including name, or
% (2) if you do make changes, you name it something other than
% btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
% This restriction helps ensure that all standard styles are identical.
% The file btxbst.doc has the documentation for this style.
ENTRY
{ address
author
booktitle
label
chapter
edition
editor
eprint
howpublished
institution
journal
key
month
note
number
organization
pages
publisher
school
series
title
type
url
doi
volume
year
}
{}
{ cite.label extra.label sort.label }
INTEGERS { output.state before.all mid.sentence after.sentence after.block }
FUNCTION {init.state.consts}
{ #0 'before.all :=
#1 'mid.sentence :=
#2 'after.sentence :=
#3 'after.block :=
}
STRINGS { s t }
FUNCTION {output.nonnull}
{ 's :=
output.state mid.sentence =
{ ", " * write$ }
{ output.state after.block =
{ add.period$ write$
newline$
"\newblock " write$
}
{ output.state before.all =
'write$
{ add.period$ " " * write$ }
if$
}
if$
mid.sentence 'output.state :=
}
if$
s
}
FUNCTION {output}
{ duplicate$ empty$
'pop$
'output.nonnull
if$
}
FUNCTION {output.check}
{ 't :=
duplicate$ empty$
{ pop$ "empty " t * " in " * cite$ * warning$ }
'output.nonnull
if$
}
FUNCTION {output.bibitem}
{ newline$
"\bibitem[" write$
cite.label write$
"]{" write$
cite$ write$
"}" write$
newline$
""
before.all 'output.state :=
}
FUNCTION {fin.entry}
{ add.period$
write$
newline$
}
FUNCTION {new.block}
{ output.state before.all =
'skip$
{ after.block 'output.state := }
if$
}
FUNCTION {new.sentence}
{ output.state after.block =
'skip$
{ output.state before.all =
'skip$
{ after.sentence 'output.state := }
if$
}
if$
}
FUNCTION {not}
{ { #0 }
{ #1 }
if$
}
FUNCTION {and}
{ 'skip$
{ pop$ #0 }
if$
}
FUNCTION {or}
{ { pop$ #1 }
'skip$
if$
}
FUNCTION {new.block.checka}
{ empty$
'skip$
'new.block
if$
}
FUNCTION {new.block.checkb}
{ empty$
swap$ empty$
and
'skip$
'new.block
if$
}
FUNCTION {new.sentence.checka}
{ empty$
'skip$
'new.sentence
if$
}
FUNCTION {new.sentence.checkb}
{ empty$
swap$ empty$
and
'skip$
'new.sentence
if$
}
FUNCTION {field.or.null}
{ duplicate$ empty$
{ pop$ "" }
'skip$
if$
}
FUNCTION {emphasize}
{ duplicate$ empty$
{ pop$ "" }
{ "{\em " swap$ * "}" * }
if$
}
INTEGERS { nameptr namesleft numnames }
FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
nameptr #1 >
{ namesleft #1 >
{ ", " * t * }
{ numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{ " et~al." * }
{ " and " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
FUNCTION {format.authors}
{ author empty$
{ "" }
{ author format.names }
if$
}
FUNCTION {format.editors}
{ editor empty$
{ "" }
{ editor format.names
editor num.names$ #1 >
{ ", editors" * }
{ ", editor" * }
if$
}
if$
}
FUNCTION {format.title}
{ title empty$
{ "" }
{ title "t" change.case$ }
if$
}
FUNCTION {format.eprint}
{ eprint empty$
{ "" }
{ "\burlalt{" eprint * "}{http://arxiv.org/abs/" * eprint * "}" * }
if$
}
FUNCTION {format.url}
{ doi empty$ not
url empty$
or
{ "" }
{ "\urlprefix\url{" url * "}" * }
if$
}
FUNCTION {format.doi}
{ doi empty$
{ "" }
{ "\doi{" doi * "}" * }
if$
}
FUNCTION {n.dashify}
{ 't :=
""
{ t empty$ not }
{ t #1 #1 substring$ "-" =
{ t #1 #2 substring$ "--" = not
{ "--" *
t #2 global.max$ substring$ 't :=
}
{ { t #1 #1 substring$ "-" = }
{ "-" *
t #2 global.max$ substring$ 't :=
}
while$
}
if$
}
{ t #1 #1 substring$ *
t #2 global.max$ substring$ 't :=
}
if$
}
while$
}
FUNCTION {format.date}
{ year empty$
{ month empty$
{ "" }
{ "there's a month but no year in " cite$ * warning$
month
}
if$
}
{ month empty$
'year
{ month " " * year * }
if$
}
if$
}
FUNCTION {format.btitle}
{ title emphasize
}
FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
{ "~" }
{ " " }
if$
swap$ * *
}
FUNCTION {either.or.check}
{ empty$
'pop$
{ "can't use both " swap$ * " fields in " * cite$ * warning$ }
if$
}
FUNCTION {format.bvolume}
{ volume empty$
{ "" }
{ "volume" volume tie.or.space.connect
series empty$
'skip$
{ " of " * series emphasize * }
if$
"volume and number" number either.or.check
}
if$
}
FUNCTION {format.number.series}
{ volume empty$
{ number empty$
{ series field.or.null }
{ output.state mid.sentence =
{ "number" }
{ "Number" }
if$
number tie.or.space.connect
series empty$
{ "there's a number but no series in " cite$ * warning$ }
{ " in " * series * }
if$
}
if$
}
{ "" }
if$
}
FUNCTION {format.edition}
{ edition empty$
{ "" }
{ output.state mid.sentence =
{ edition "l" change.case$ " edition" * }
{ edition "t" change.case$ " edition" * }
if$
}
if$
}
INTEGERS { multiresult }
FUNCTION {multi.page.check}
{ 't :=
#0 'multiresult :=
{ multiresult not
t empty$ not
and
}
{ t #1 #1 substring$
duplicate$ "-" =
swap$ duplicate$ "," =
swap$ "+" =
or or
{ #1 'multiresult := }
{ t #2 global.max$ substring$ 't := }
if$
}
while$
multiresult
}
FUNCTION {format.pages}
{ pages empty$
{ "" }
{ pages multi.page.check
{ "pages" pages n.dashify tie.or.space.connect }
{ "page" pages tie.or.space.connect }
if$
}
if$
}
FUNCTION {format.vol.num.pages}
{ volume field.or.null
number empty$
'skip$
{ "(" number * ")" * *
volume empty$
{ "there's a number but no volume in " cite$ * warning$ }
'skip$
if$
}
if$
pages empty$
'skip$
{ duplicate$ empty$
{ pop$ format.pages }
{ ":" * pages n.dashify * }
if$
}
if$
}
FUNCTION {format.chapter.pages}
{ chapter empty$
'format.pages
{ type empty$
{ "chapter" }
{ type "l" change.case$ }
if$
chapter tie.or.space.connect
pages empty$
'skip$
{ ", " * format.pages * }
if$
}
if$
}
FUNCTION {format.in.ed.booktitle}
{ booktitle empty$
{ "" }
{ editor empty$
{ "In " booktitle emphasize * }
{ "In " format.editors * ", " * booktitle emphasize * }
if$
}
if$
}
FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
month empty$ year empty$ note empty$
and and and and and
key empty$ not and
{ "all relevant fields are empty in " cite$ * warning$ }
'skip$
if$
}
FUNCTION {format.thesis.type}
{ type empty$
'skip$
{ pop$
type "t" change.case$
}
if$
}
FUNCTION {format.tr.number}
{ type empty$
{ "Technical Report" }
'type
if$
number empty$
{ "t" change.case$ }
{ number tie.or.space.connect }
if$
}
FUNCTION {format.article.crossref}
{ key empty$
{ journal empty$
{ "need key or journal for " cite$ * " to crossref " * crossref *
warning$
""
}
{ "In {\em " journal * "\/}" * }
if$
}
{ "In " key * }
if$
" \cite{" * crossref * "}" *
}
FUNCTION {format.crossref.editor}
{ editor #1 "{vv~}{ll}" format.name$
editor num.names$ duplicate$
#2 >
{ pop$ " et~al." * }
{ #2 <
'skip$
{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
{ " et~al." * }
{ " and " * editor #2 "{vv~}{ll}" format.name$ * }
if$
}
if$
}
if$
}
FUNCTION {format.book.crossref}
{ volume empty$
{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$
"In "
}
{ "Volume" volume tie.or.space.connect
" of " *
}
if$
editor empty$
editor field.or.null author field.or.null =
or
{ key empty$
{ series empty$
{ "need editor, key, or series for " cite$ * " to crossref " *
crossref * warning$
"" *
}
{ "{\em " * series * "\/}" * }
if$
}
{ key * }
if$
}
{ format.crossref.editor * }
if$
" \cite{" * crossref * "}" *
}
FUNCTION {format.incoll.inproc.crossref}
{ editor empty$
editor field.or.null author field.or.null =
or
{ key empty$
{ booktitle empty$
{ "need editor, key, or booktitle for " cite$ * " to crossref " *
crossref * warning$
""
}
{ "In {\em " booktitle * "\/}" * }
if$
}
{ "In " key * }
if$
}
{ "In " format.crossref.editor * }
if$
" \cite{" * crossref * "}" *
}
FUNCTION {article}
{ output.bibitem
format.authors "author" output.check
new.block
format.title "title" output.check
new.block
crossref missing$
{ journal emphasize "journal" output.check
format.vol.num.pages output
format.date "year" output.check
}
{ format.article.crossref output.nonnull
format.pages output
}
if$
format.eprint output
new.block
format.doi output
new.block
format.url output
new.block
note output
fin.entry
}
FUNCTION {book}
{ output.bibitem
author empty$
{ format.editors "author and editor" output.check }
{ format.authors output.nonnull
crossref missing$
{ "author and editor" editor either.or.check }
'skip$
if$
}
if$
new.block
format.btitle "title" output.check
crossref missing$
{ format.bvolume output
new.block
format.number.series output
new.sentence
publisher "publisher" output.check
address output
}
{ new.block
format.book.crossref output.nonnull
}
if$
format.edition output
format.date "year" output.check
format.eprint output
new.block
format.doi output
new.block
format.url output
new.block
note output
fin.entry
}
FUNCTION {booklet}
{ output.bibitem
format.authors output
new.block
format.title "title" output.check
howpublished address new.block.checkb
howpublished output
address output
format.date output
format.eprint output
new.block
format.doi output
new.block
format.url output
new.block
note output
fin.entry
}
FUNCTION {inbook}
{ output.bibitem
author empty$
{ format.editors "author and editor" output.check }
{ format.authors output.nonnull
crossref missing$
{ "author and editor" editor either.or.check }
'skip$
if$
}
if$
new.block
format.btitle "title" output.check
crossref missing$
{ format.bvolume output
format.chapter.pages "chapter and pages" output.check
new.block
format.number.series output
new.sentence
publisher "publisher" output.check
address output
}
{ format.chapter.pages "chapter and pages" output.check
new.block
format.book.crossref output.nonnull
}
if$
format.edition output
format.date "year" output.check
format.eprint output
new.block
format.doi output
new.block
format.url output
new.block
note output
fin.entry
}
FUNCTION {incollection}
{ output.bibitem
format.authors "author" output.check
new.block
format.title "title" output.check
new.block
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
format.bvolume output
format.number.series output
format.chapter.pages output
new.sentence
publisher "publisher" output.check
address output
format.edition output
format.date "year" output.check
}
{ format.incoll.inproc.crossref output.nonnull
format.chapter.pages output
}
if$
format.eprint output
new.block
format.doi output
new.block
format.url output
new.block
note output
fin.entry
}
FUNCTION {inproceedings}
{ output.bibitem
format.authors "author" output.check
new.block
format.title "title" output.check
new.block
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
format.bvolume output
format.number.series output
format.pages output
address empty$
{ organization publisher new.sentence.checkb
organization output
publisher output
format.date "year" output.check
}
{ address output.nonnull
format.date "year" output.check
new.sentence
organization output
publisher output
}
if$
}
{ format.incoll.inproc.crossref output.nonnull
format.pages output
}
if$
format.eprint output
new.block
format.doi output
new.block
format.url output
new.block
note output
fin.entry
}
FUNCTION {conference} { inproceedings }
FUNCTION {manual}
{ output.bibitem
author empty$
{ organization empty$
'skip$
{ organization output.nonnull
address output
}
if$
}
{ format.authors output.nonnull }
if$
new.block
format.btitle "title" output.check
author empty$
{ organization empty$
{ address new.block.checka
address output
}
'skip$
if$
}
{ organization address new.block.checkb
organization output
address output
}
if$
format.edition output
format.date output
format.eprint output
new.block
format.doi output
new.block
format.url output
new.block
note output
fin.entry
}
FUNCTION {mastersthesis}
{ output.bibitem
format.authors "author" output.check
new.block
format.title "title" output.check
new.block
"Master's thesis" format.thesis.type output.nonnull
school "school" output.check
address output
format.date "year" output.check
format.eprint output
new.block
format.doi output
new.block
format.url output
new.block
note output
fin.entry
}
FUNCTION {misc}
{ output.bibitem
format.authors output
title howpublished new.block.checkb
format.title output
howpublished new.block.checka
howpublished output
format.date output
format.eprint output
new.block
format.doi output
new.block
format.url output
new.block
note output
fin.entry
empty.misc.check
}
FUNCTION {phdthesis}
{ output.bibitem
format.authors "author" output.check
new.block
format.btitle "title" output.check
new.block
"PhD thesis" format.thesis.type output.nonnull
school "school" output.check
address output
format.date "year" output.check
format.eprint output
new.block
format.doi output
new.block
format.url output
new.block
note output
fin.entry
}
FUNCTION {proceedings}
{ output.bibitem
editor empty$
{ organization output }
{ format.editors output.nonnull }
if$
new.block
format.btitle "title" output.check
format.bvolume output
format.number.series output
address empty$
{ editor empty$
{ publisher new.sentence.checka }
{ organization publisher new.sentence.checkb
organization output
}
if$
publisher output
format.date "year" output.check
}
{ address output.nonnull
format.date "year" output.check
new.sentence
editor empty$
'skip$
{ organization output }
if$
publisher output
}
if$
format.eprint output
new.block
format.doi output
new.block
format.url output
new.block
note output
fin.entry
}
FUNCTION {techreport}
{ output.bibitem
format.authors "author" output.check
new.block
format.title "title" output.check
new.block
format.tr.number output.nonnull
institution "institution" output.check
address output
format.date "year" output.check
format.eprint output
new.block
format.doi output
new.block
format.url output
new.block
note output
fin.entry
}
FUNCTION {unpublished}
{ output.bibitem
format.authors "author" output.check
new.block
format.title "title" output.check
new.block
note "note" output.check
format.date output
format.eprint output
format.doi output
new.block
format.url output
fin.entry
}
FUNCTION {default.type} { misc }
MACRO {jan} {"Jan."}
MACRO {feb} {"Feb."}
MACRO {mar} {"Mar."}
MACRO {apr} {"Apr."}
MACRO {may} {"May"}
MACRO {jun} {"June"}
MACRO {jul} {"July"}
MACRO {aug} {"Aug."}
MACRO {sep} {"Sept."}
MACRO {oct} {"Oct."}
MACRO {nov} {"Nov."}
MACRO {dec} {"Dec."}
MACRO {acmcs} {"ACM Comput. Surv."}
MACRO {acta} {"Acta Inf."}
MACRO {cacm} {"Commun. ACM"}
MACRO {ibmjrd} {"IBM J. Res. Dev."}
MACRO {ibmsj} {"IBM Syst.~J."}
MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
MACRO {ieeetc} {"IEEE Trans. Comput."}
MACRO {ieeetcad}
{"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
MACRO {ipl} {"Inf. Process. Lett."}
MACRO {jacm} {"J.~ACM"}
MACRO {jcss} {"J.~Comput. Syst. Sci."}
MACRO {scp} {"Sci. Comput. Programming"}
MACRO {sicomp} {"SIAM J. Comput."}
MACRO {tocs} {"ACM Trans. Comput. Syst."}
MACRO {tods} {"ACM Trans. Database Syst."}
MACRO {tog} {"ACM Trans. Gr."}
MACRO {toms} {"ACM Trans. Math. Softw."}
MACRO {toois} {"ACM Trans. Office Inf. Syst."}
MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
MACRO {tcs} {"Theoretical Comput. Sci."}
READ
FUNCTION {sortify}
{ purify$
"l" change.case$
}
INTEGERS { len }
FUNCTION {chop.word}
{ 's :=
'len :=
s #1 len substring$ =
{ s len #1 + global.max$ substring$ }
's
if$
}
INTEGERS { et.al.char.used }
FUNCTION {initialize.et.al.char.used}
{ #0 'et.al.char.used :=
}
EXECUTE {initialize.et.al.char.used}
FUNCTION {format.lab.names}
{ 's :=
s num.names$ 'numnames :=
numnames #1 >
{ numnames #4 >
{ #3 'namesleft := }
{ numnames 'namesleft := }
if$
#1 'nameptr :=
""
{ namesleft #0 > }
{ nameptr numnames =
{ s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
{ "{\etalchar{+}}" *
#1 'et.al.char.used :=
}
{ s nameptr "{v{}}{l{}}" format.name$ * }
if$
}
{ s nameptr "{v{}}{l{}}" format.name$ * }
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
numnames #4 >
{ "{\etalchar{+}}" *
#1 'et.al.char.used :=
}
'skip$
if$
}
{ s #1 "{v{}}{l{}}" format.name$
duplicate$ text.length$ #2 <
{ pop$ s #1 "{ll}" format.name$ #3 text.prefix$ }
'skip$
if$
}
if$
}
FUNCTION {author.key.label}
{ author empty$
{ key empty$
{ cite$ #1 #3 substring$ }
{ key #3 text.prefix$ }
if$
}
{ author format.lab.names }
if$
}
FUNCTION {author.editor.key.label}
{ author empty$
{ editor empty$
{ key empty$
{ cite$ #1 #3 substring$ }
{ key #3 text.prefix$ }
if$
}
{ editor format.lab.names }
if$
}
{ author format.lab.names }
if$
}
FUNCTION {author.key.organization.label}
{ author empty$
{ key empty$
{ organization empty$
{ cite$ #1 #3 substring$ }
{ "The " #4 organization chop.word #3 text.prefix$ }
if$
}
{ key #3 text.prefix$ }
if$
}
{ author format.lab.names }
if$
}
FUNCTION {editor.key.organization.label}
{ editor empty$
{ key empty$
{ organization empty$
{ cite$ #1 #3 substring$ }
{ "The " #4 organization chop.word #3 text.prefix$ }
if$
}
{ key #3 text.prefix$ }
if$
}
{ editor format.lab.names }
if$
}
FUNCTION {calc.label}
{ label empty$
{ type$ "book" =
type$ "inbook" =
or
'author.editor.key.label
{ type$ "proceedings" =
'editor.key.organization.label
{ type$ "manual" =
'author.key.organization.label
'author.key.label
if$
}
if$
}
if$
duplicate$
year field.or.null purify$ #-1 #2 substring$
*
}
{ label duplicate$ }
if$
'cite.label :=
year field.or.null purify$ #-1 #4 substring$
*
sortify 'sort.label :=
}
FUNCTION {sort.format.names}
{ 's :=
#1 'nameptr :=
""
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ nameptr #1 >
{ " " * }
'skip$
if$
s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
nameptr numnames = t "others" = and
{ "et al" * }
{ t sortify * }
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
FUNCTION {sort.format.title}
{ 't :=
"A " #2
"An " #3
"The " #4 t chop.word
chop.word
chop.word
sortify
#1 global.max$ substring$
}
FUNCTION {author.sort}
{ author empty$
{ key empty$
{ "to sort, need author or key in " cite$ * warning$
""
}
{ key sortify }
if$
}
{ author sort.format.names }
if$
}
FUNCTION {author.editor.sort}
{ author empty$
{ editor empty$
{ key empty$
{ "to sort, need author, editor, or key in " cite$ * warning$
""
}
{ key sortify }
if$
}
{ editor sort.format.names }
if$
}
{ author sort.format.names }
if$
}
FUNCTION {author.organization.sort}
{ author empty$
{ organization empty$
{ key empty$
{ "to sort, need author, organization, or key in " cite$ * warning$
""
}
{ key sortify }
if$
}
{ "The " #4 organization chop.word sortify }
if$
}
{ author sort.format.names }
if$
}
FUNCTION {editor.organization.sort}
{ editor empty$
{ organization empty$
{ key empty$
{ "to sort, need editor, organization, or key in " cite$ * warning$
""
}
{ key sortify }
if$
}
{ "The " #4 organization chop.word sortify }
if$
}
{ editor sort.format.names }
if$
}
FUNCTION {presort}
{ calc.label
sort.label
" "
*
type$ "book" =
type$ "inbook" =
or
'author.editor.sort
{ type$ "proceedings" =
'editor.organization.sort
{ type$ "manual" =
'author.organization.sort
'author.sort
if$
}
if$
}
if$
*
" "
*
year field.or.null sortify
*
" "
*
title field.or.null
sort.format.title
*
#1 entry.max$ substring$
'sort.key$ :=
}
ITERATE {presort}
SORT
STRINGS { longest.label last.sort.label next.extra }
INTEGERS { longest.label.width last.extra.num }
FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
#0 int.to.chr$ 'last.sort.label :=
"" 'next.extra :=
#0 'longest.label.width :=
#0 'last.extra.num :=
}
FUNCTION {forward.pass}
{ last.sort.label sort.label =
{ last.extra.num #1 + 'last.extra.num :=
last.extra.num int.to.chr$ 'extra.label :=
}
{ "a" chr.to.int$ 'last.extra.num :=
"" 'extra.label :=
sort.label 'last.sort.label :=
}
if$
}
FUNCTION {reverse.pass}
{ next.extra "b" =
{ "a" 'extra.label := }
'skip$
if$
cite.label extra.label * 'cite.label :=
cite.label width$ longest.label.width >
{ cite.label 'longest.label :=
cite.label width$ 'longest.label.width :=
}
'skip$
if$
extra.label 'next.extra :=
}
EXECUTE {initialize.longest.label}
ITERATE {forward.pass}
REVERSE {reverse.pass}
FUNCTION {begin.bib}
{ et.al.char.used
{ "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ }
'skip$
if$
preamble$ empty$
'skip$
{ preamble$ write$ newline$ }
if$
"\begin{thebibliography}{" longest.label * "}" * write$ newline$
"\expandafter\ifx\csname url\endcsname\relax"
write$ newline$
" \def\url#1{\texttt{#1}}\fi"
write$ newline$
"\expandafter\ifx\csname doi\endcsname\relax"
write$ newline$
" \def\doi#1{\burlalt{doi:#1}{http://dx.doi.org/#1}}\fi"
write$ newline$
"\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi"
write$ newline$
"\expandafter\ifx\csname href\endcsname\relax"
write$ newline$
" \def\href#1#2{#2}\fi"
write$ newline$
"\expandafter\ifx\csname burlalt\endcsname\relax"
write$ newline$
" \def\burlalt#1#2{\href{#2}{#1}}\fi"
write$ newline$
}
EXECUTE {begin.bib}
EXECUTE {init.state.consts}
ITERATE {call.type$}
FUNCTION {end.bib}
{ newline$
"\end{thebibliography}" write$ newline$
}
EXECUTE {end.bib}
logo-FB16.pdf — binary, 10 KB
logo-Fachgebiet-Software-Engineering-ohne-verlauf.pdf — binary, 10 KB
meinearbeit.bib · 9 KB
@INPROCEEDINGS{Damm2001,
author = {Werner Damm and David Harel},
title = {{LSCs}: Breathing Life into Message Sequence Charts},
booktitle = {Formal Methods in System Design},
year = {2001},
volume = {19},
pages = {45--80},
publisher = {Kluwer Academic Publishers},
file = {:sources\\Damm-Harel-LSCs-2001.pdf:PDF},
owner = {jgreen},
timestamp = {2009.05.31}
}
@ARTICLE{Greenyer2013,
author = {Greenyer, Joel and Molzam Sharifloo, Amir and Cordy, Maxime and Heymans,
Patrick},
title = {Features meet scenarios: modeling and consistency-checking scenario-based
product line specifications},
journal = {Requirements Engineering},
year = {2013},
volume = {18},
pages = {175-198},
number = {2},
doi = {10.1007/s00766-013-0169-4},
issn = {0947-3602},
keywords = {Scenario-based specification; Product lines; Feature compositions;
Consistency},
language = {English},
publisher = {Springer-Verlag}
}
@MISC{IEEEStandardGlossaryOfSoftwareEngineeringTerminology1990,
author = {IEEE},
title = {{IEEE Standard Glossary of Software Engineering Terminology}, std 610.12-1990},
howpublished = {\url{http://people.cs.aau.dk/~adavid/tiga/}},
year = 1990
}
@article{HevnerDSR2004,
author = {Hevner, Alan R. and March, Salvatore T. and Park, Jinsoo and Ram, Sudha},
title = {Design Science in Information Systems Research1},
journal = {Management Information Systems Quarterly},
volume = {28},
number = {1},
pages = {75-106},
year = {2004},
month = {03},
abstract = {Two paradigms characterize much of the research in the Information Systems discipline: behavioral science and design science. The behavioral-science paradigm seeks to develop and verify theories that explain or predict human or organizational behavior. The design-science paradigm seeks to extend the boundaries of human and organizational capabilities by creating new and innovative artifacts. Both paradigms are foundational to the IS discipline, positioned as it is at the confluence of people, organizations, and technology. Our objective is to describe the performance of design-science research in Information Systems via a concise conceptual framework and clear guidelines for understanding, executing, and evaluating the research. In the design-science paradigm, knowledge and understanding of a problem domain and its solution are achieved in the building and application of the designed artifact. Three recent exemplars in the research literature are used to demonstrate the application of these guidelines. We conclude with an analysis of the challenges of performing high-quality design-science research in the context of the broader IS community.},
issn = {0276-7783},
doi = {10.2307/25148625},
url = {https://doi.org/10.2307/25148625}
}
@book{balzert1996a,
added-at = {2006-10-04T10:01:50.000+0200},
address = {Heidelberg, Germany},
annote = {Dieser Titel ist der erste Band des zweibaendigen {"}Lehrbuchs der
Softwaretechnik{"}. In diesem Band wird Software-Entwicklung
behandelt. Dabei werden die einzelnen Abschnitte bzw. Phasen der
},
author = {Balzert, Helmut},
biburl = {https://www.bibsonomy.org/bibtex/226ea55aa158a295970ba012e93d093bf/tausendeins},
descriptor = {Software-Entwicklung},
interhash = {19dfa7b4af1e1875638df768f6416616},
intrahash = {26ea55aa158a295970ba012e93d093bf},
isbn = {3-8274-0042-2},
keywords = {Software-Engineering maybe},
publisher = {Spektrum Akademischer Verlag},
timestamp = {2006-10-04T10:01:50.000+0200},
title = {Lehrbuch der Software-Technik: Teil 1: Software-Entwicklung},
year = 1996
}
@INPROCEEDINGS{Greenyer2007,
author = {Joel Greenyer and Ekkart Kindler},
title = {{R}econciling {TGG}s with {QVT}},
booktitle = {Proceedings of the 10th International Conference on Model Driven
Engineering Languages and Systems, MoDELS 2007},
year = {2007},
series={Lecture Notes in Computer Science},
editor = {Engels, Gregor and Opdyke, Bill and Schmidt, Douglas C. and Weil, Frank},
volume = {4735},
pages = {16-30},
publisher = {Springer Berlin Heidelberg}
}
@INPROCEEDINGS{Cordy2012,
author = {Cordy, Maxime and Greenyer, Joel and Heymans, Patrick and Molzam
Sharifloo, Amir},
title = {Efficient Consistency Checking of Scenario-based Product Line Specifications},
booktitle = {Proceedings of the 20th International Requirements Engineering Conference
(RE 2012)},
year = {2012},
editor = {Mats Per Erik Heimdahl and Pete Sawyer},
pages = {161-170},
publisher = {IEEE}
}
@MISC{UML251,
label = {UML251},
author = {{Object Management Group}},
title = {{UML 2.5.1}},
month = {December},
year = {2017},
note = {{OMG} document {\ttfamily formal/2017-12-05}, \url{https://www.omg.org/spec/UML/2.5.1/}},
}
@PHDTHESIS{Greenyer2011,
author = {Joel Greenyer},
title = {Scenario-based Design of Mechatronic Systems},
school = {University of Paderborn},
year = {2011},
address = {Paderborn},
month = {October},
url = {http://dups.ub.uni-paderborn.de/hs/urn/urn:nbn:de:hbz:466:2-7690}
}
@TECHREPORT{Greenyer2011a,
author = {J. Greenyer AND J. Rieke},
title = {An Improved Algorithm for Preventing Information Loss in Incremental
Model Synchronization},
institution = {Software Engineering Group, Heinz Nixdorf Institute},
year = {2011},
number = {tr-ri-11-324},
url = {http://www.cs.uni-paderborn.de/uploads/tx_sibibtex/GR11_tr.pdf}
}
@MISC{UppaalTiga,
author = {Alexandre David and others},
title = {{Uppaal Tiga -- Uppaal for Timed Games, v0.16}},
howpublished = {\url{http://people.cs.aau.dk/~adavid/tiga/}},
note = {letzer Zugriff: Juni 2013}
}
@MISC{FHDWModulhabdbuchBachelor,
author = {{FHDW Hannover}},
title = {{Modulhandbuch Bachelor (mit Studienbeginn ab Oktober 2018)}},
howpublished = {Interne Quelle der FHDW Hannover},
note = {{Stand 17.2.2020}},
year = {2018}
}
@MISC{FHDWModulhabdbuchMasterInformationEngineering,
author = {{FHDW Hannover}},
title = {{Modulhandbuch Master Information Engineering (Modulhandbuch HFP)}},
howpublished = {Interne Quelle der FHDW Hannover},
note = {{Stand Mai 2021}},
year = {2021}
}
@inproceedings{DBLP:conf/calco/KonigWK23,
author = {Harald K{\"{o}}nig and
Uwe Wolter and
Tim Kr{\"{a}}uter},
editor = {Paolo Baldan and
Valeria de Paiva},
title = {Structural Operational Semantics for Heterogeneously Typed Coalgebras},
booktitle = {10th Conference on Algebra and Coalgebra in Computer Science, {CALCO}
2023, June 19-21, 2023, Indiana University Bloomington, IN, {USA}},
series = {LIPIcs},
volume = {270},
pages = {7:1--7:17},
publisher = {Schloss Dagstuhl - Leibniz-Zentrum f{\"{u}}r Informatik},
year = {2023},
url = {https://doi.org/10.4230/LIPIcs.CALCO.2023.7},
doi = {10.4230/LIPICS.CALCO.2023.7},
timestamp = {Wed, 21 Aug 2024 22:46:00 +0200},
biburl = {https://dblp.org/rec/conf/calco/KonigWK23.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@book{Sutton2018,
author = {Sutton, Richard S. and Barto, Andrew G.},
title = {Reinforcement Learning: An Introduction},
year = {2018},
edition = {Second},
isbn = {0262039249},
publisher = {A Bradford Book},
address = {Cambridge, MA, USA},
abstract = {The significantly expanded and updated new edition of a widely used text on reinforcement learning, one of the most active research areas in artificial intelligence. Reinforcement learning, one of the most active research areas in artificial intelligence, is a computational approach to learning whereby an agent tries to maximize the total amount of reward it receives while interacting with a complex, uncertain environment. In Reinforcement Learning, Richard Sutton and Andrew Barto provide a clear and simple account of the field's key ideas and algorithms. This second edition has been significantly expanded and updated, presenting new topics and updating coverage of other topics. Like the first edition, this second edition focuses on core online learning algorithms, with the more mathematical material set off in shaded boxes. Part I covers as much of reinforcement learning as possible without going beyond the tabular case for which exact solutions can be found. Many algorithms presented in this part are new to the second edition, including UCB, Expected Sarsa, and Double Learning. Part II extends these ideas to function approximation, with new sections on such topics as artificial neural networks and the Fourier basis, and offers expanded treatment of off-policy learning and policy-gradient methods. Part III has new chapters on reinforcement learning's relationships to psychology and neuroscience, as well as an updated case-studies chapter including AlphaGo and AlphaGo Zero, Atari game playing, and IBM Watson's wagering strategy. The final chapter discusses the future societal impacts of reinforcement learning.}
}
@misc{Gebhard2021,
author = {Gebhard, Hendrik and Ziegener, Dirk},
title = {{Vom Softwaremonolithen zu Microservices: Systemumstellung am Praxisbeispiel}},
howpublished = {Heise Developer (Online), \url{https://www.heise.de/hintergrund/Vom-Softwaremonolithen-zu-Microservices-Systemumstellung-am-Praxisbeispiel-4994196.html}},
note = {letzer Zugriff: 22. Dez 2021},
year=2021
}meinearbeit.tex — the file that is compiled · 6 KB
% !TeX program = xelatex
% "oneside"-option für einseitiges Drucken
%\documentclass[a4paper,oneside,openright,11pt]{book}
%
% \usepackage[a4paper,oneside,
% inner=50mm,
% outer=35mm,
% top=45mm,
% bottom=45mm]{geometry}
% "twoside"-option für das beidseitige Drucken
\documentclass[a4paper,twoside,openright,11pt]{book}
\usepackage[a4paper,twoside,
inner=50mm,
outer=35mm,
top=45mm,
bottom=45mm]{geometry}
% XeLaTeX font packages
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{Libertinus Serif}
\setmathfont{Libertinus Math}
% \setmainfont{Latin Modern Roman}
% \setmonofont{Latin Modern Mono}
% \setmathfont{Latin Modern Math}
% Define a dedicated heading font using your local TTF
\newfontfamily\HeadingSans[
Path=./, % current folder
UprightFont = Outfit-Bold.ttf,
BoldFont = Outfit-Bold.ttf
]{Outfit-Bold.ttf}
\newfontfamily\HeadingSansRegular[
Path=./, % current folder
UprightFont = Outfit-Regular.ttf,
BoldFont = Outfit-Regular.ttf
]{Outfit-Regular.ttf}
% Apply to headings
\usepackage{sectsty}
\allsectionsfont{\HeadingSans} % sans already bold; or add \bfseries if needed
% If you also want chapters (book class):
\chapterfont{\HeadingSans}
\sectionfont{\HeadingSans}
\subsectionfont{\HeadingSans}
\usepackage{titlesec}
\titlespacing*{\section}{0pt}{2em}{1.2em}
\titlespacing*{\subsection}{0pt}{1.2em}{1.0em}
\titlespacing*{\subsubsection}{0pt}{1.2em}{0.8em}
\usepackage[utf8]{inputenc} % ggf. Editor auf utf8 stellen!!
\usepackage[ngerman]{babel}
\usepackage{ngerman} % unter anderem für bessere Silbentrennung
\usepackage{xcolor}
\usepackage{listings}
% Define PyCharm light theme colors
\definecolor{pycharm_bg}{rgb}{1.0, 1.0, 1.0} % White background
\definecolor{pycharm_keyword}{rgb}{0.0, 0.0, 0.8} % Dark blue keywords
\definecolor{pycharm_string}{rgb}{0.0, 0.5, 0.0} % Dark green strings
\definecolor{pycharm_comment}{rgb}{0.5, 0.5, 0.5} % Grey comments
\definecolor{pycharm_number}{rgb}{0.6, 0.1, 0.1} % Dark red numbers
\definecolor{pycharm_default}{rgb}{0.0, 0.0, 0.0} % Black default text
\lstset{
language=Python,
backgroundcolor=\color{pycharm_bg}, % White background
commentstyle=\color{pycharm_comment}\itshape, % Comments in grey, italic
keywordstyle=\color{pycharm_keyword}\bfseries, % Keywords in dark blue, bold
stringstyle=\color{pycharm_string}, % Strings in dark green
numberstyle=\tiny\color{pycharm_number}, % Numbers in dark red
basicstyle=\ttfamily\footnotesize\color{pycharm_default}, % Default text in black
breakatwhitespace=false,
breaklines=true,
captionpos=b,
keepspaces=true,
numbers=left,
numbersep=5pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=4,
keywordstyle=[2]\color{black},
keywordstyle=[3]\color{orange}\bfseries,
morekeywords=[3]{@thread,block, request, waitFor},
}
\lstset{
numbers=left,
numberstyle=\footnotesize,
numbersep=5pt,
frame=single,
aboveskip=0pt,
belowskip=0pt,
%belowcaptionskip=0pt,
%belowcaptionskip=.3\baselineskip,
xleftmargin=13pt,
xrightmargin=3pt,
sensitive=true,
breaklines=true,
captionpos=b,
tabsize=2,
showstringspaces=false,
basicstyle=\scriptsize\ttfamily,
literate=
{//WARNING}{{\includegraphics[width=8pt,height=8pt]{pic/warning.png}}}{2}
{//ERROR} {{\includegraphics[width=8pt,height=8pt]{pic/error.png}}}{2},
morecomment=[l]{//},
morecomment=[s][\itshape]{/**}{*/}
}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{url}
\def\UrlBreaks{\do\/\do-} % Zeilenumbrüche in URLs bei Bindestrich oder Schrägstrich
\usepackage{hyperref}
\usepackage{xspace}
\usepackage{csquotes}
%avoid overfull hbox problem
\setlength{\emergencystretch}{3em}
%avoid underfull hbox problem in bibliography
\usepackage{etoolbox}
% Variant A
\apptocmd{\sloppy}{\hbadness 2000\relax}{}{}
% Variant B
% \apptocmd{\thebibliography}{\raggedright}{}{}
\hyphenpenalty=5000
\tolerance=1000
% standard scaling factor for graphics, to support homogenous looks.
\newcommand{\stdScaleFactor}{0.45}
% Titelseite und Erklaerung
\usepackage{sethesis}
% Angaben Titelseite
\unilogo{\includegraphics[scale=1.1]{logo-FB16.pdf}}
%\uniname{}
\fachgebiet{}
\institut{}
\fachbereich{}
% Angaben zur Arbeit
\author{Vorname Nachname} % Hier Namen eintragen
\title{Your paper} % Hier Titel
%\englishtitle{Englischer Titel der Arbeit (optional)}
\ort{Kassel}
\thesistype{Bachelorarbeit} % Projektbericht, Bachelorarbeit, Masterarbeit
%\thesistype{Masterarbeit}
\studiengang{Informatik (Bachelor)} % Hier Studiengang angeben
\fachgebiet{\includegraphics[scale=0.7]{logo-Fachgebiet-Software-Engineering-ohne-verlauf.pdf}}
\erstpru{Name des Erstprüfers}
\zweitpru{Name des Zweitprüfers}
%\zweitpru{} Leer lassen bei Projektberichten
\datum{\today} % Datum der Abgabe hier einsetzen
% Sonstiges
%\allowdisplaybreaks
%\setlength{\parindent}{1em}
%\setlength{\parskip}{0em}
%\makeatletter
%\renewcommand{\fps@figure}{ht!}
%\renewcommand{\fps@table}{ht!}
%\setlength{\@fptop}{0pt}
%\makeatother
\begin{document}
\frontmatter
\maketitle
\clearpage
\input{affirmation.tex}
% Sperrvermerk einkommentieren, falls nötig.
\input{restriction-notice}
\clearpage
\input{contents/abstract.tex}
\tableofcontents
\mainmatter
\input{contents/einleitung}
\input{contents/formale-anforderungen}
\input{contents/struktur-und-inhalt}
\input{contents/bewertungskriterien}
\input{contents/ablauf}
\appendix
\input{contents/A-anhang-a}
%\bibliographystyle{alpha}
\bibliographystyle{halpha-abbrv} % Support curstom abbreviation labels, see https://www.math.cmu.edu/~gautam/sj/blog/20171114-bibtex-doi.html
\bibliography{meinearbeit}
\backmatter
\end{document}restriction-notice.tex · 453 B
\chapter*{Sperrvermerk}
Diese Arbeit enthält vertrauliche Informationen des Unternehmens \textit{[Unternehmensname]}.
Die Einsichtnahme ist ausschließlich den Prüfer:innen sowie Vertreter:innen der Hochschule zu Prüfungszwecken gestattet.
Eine Veröffentlichung, Vervielfältigung oder Nutzung der Inhalte ist ohne ausdrückliche schriftliche Genehmigung von \textit{[Unternehmensname]} nicht gestattet.
Die Sperrfrist beträgt drei Jahre.
\vfillsethesis.sty · 4 KB
\ProvidesPackage{sethesis}
\RequirePackage{tabularx}
\RequirePackage{ragged2e}
\RequirePackage{xcolor}
\definecolor{SEBlue}{HTML}{004baa}
% --------------------------------------------------------------------------
% Internal macros (initialized empty)
\newcommand{\@uniname}{}
\newcommand{\@fachbereich}{}
\newcommand{\@fachgebiet}{}
\newcommand{\@institut}{}
\newcommand{\@thesistype}{}
\newcommand{\@studiengang}{}
\newcommand{\@erstpru}{}
\newcommand{\@zweitpru}{}
\newcommand{\@betreu}{}
\newcommand{\@ort}{}
\newcommand{\@datum}{}
\newcommand{\@englishtitle}{}
% --------------------------------------------------------------------------
% User-facing setters
\newcommand{\unilogo}[1]{\def\@unilogo{#1}}
\newcommand{\uniname}[1]{\def\@uniname{#1}}
\newcommand{\fachgebiet}[1]{\def\@fachgebiet{#1}}
\newcommand{\institut}[1]{\def\@institut{#1}}
\newcommand{\fachbereich}[1]{\def\@fachbereich{#1}}
\newcommand{\thesistype}[1]{\def\@thesistype{#1}}
\newcommand{\studiengang}[1]{\def\@studiengang{#1}}
\newcommand{\erstpru}[1]{\def\@erstpru{#1}}
\newcommand{\zweitpru}[1]{\def\@zweitpru{#1}}
\newcommand{\betreu}[1]{\def\@betreu{#1}}
\newcommand{\ort}[1]{\def\@ort{#1}}
\newcommand{\datum}[1]{\def\@datum{#1}}
\newcommand{\englishtitle}[1]{\def\@englishtitle{#1}}
% --------------------------------------------------------------------------
% Titlepage
\renewcommand{\maketitle}{%
\begin{titlepage}
\HeadingSans
%
\begin{center}
\@unilogo
\vspace*{2em}
\Large
\textbf{\@uniname}\\
\ifx\@fachbereich\@empty\else \textbf{\@fachbereich}\\ \fi
\ifx\@institut\@empty\else \textbf{\@institut}\\ \fi
\ifx\@fachgebiet\@empty\else \textbf{\@fachgebiet}\\ \fi
\end{center}
%
\vfill
%
\begin{center}
\huge \textbf{\@title}
\end{center}
%
\vspace*{0.25cm}
%
\ifx\@englishtitle\@empty\else
\begin{center}
\large \textbf{\@englishtitle}
\end{center}
\fi
%
\vfill
%
\begin{center}
\HeadingSansRegular \huge \textbf{\textcolor{SEBlue}{\@thesistype}}\\
\vspace*{0.75em}
\Large \textcolor{SEBlue}{im Studiengang \@studiengang}
\end{center}
%
\begin{center}
\vspace*{1em}
\Large von
\end{center}
%
\begin{center}
\Large \textbf{\@author}
\end{center}
%
\vspace*{2em}
%
\begin{center}
\normalsize
\renewcommand{\arraystretch}{1.3}
\begin{tabularx}{\textwidth}{|l|>{\raggedleft\arraybackslash}X|}
\hline
\textbf{Erstprüfer:} & \textbf{\@erstpru} \\ \hline
\ifx\@zweitpru\@empty\else
\textbf{Zweitprüfer:} & \textbf{\@zweitpru} \\ \hline
\fi
\textbf{Abgabedatum:} & \textbf{\@datum} \\ \hline
\end{tabularx}
\end{center}
%
\vspace*{0.75em}%
%
\end{titlepage}%
}
% --------------------------------------------------------------------------
% Erklärung
\newcommand{\makeerklaerung}{%
\chapter*{Erklärung der Selbstständigkeit}
\label{chap:erklaerung-selbstaendigkeit}
Hiermit versichere ich, dass ich die vorliegende \@thesistype\ selbständig verfasst und keine anderen als die angegebenen Quellen verwendet habe. Alle Textstellen und andere Inhalte wie Bilder, Quellcode oder Daten, die wörtlich oder sinngemäß aus anderen Quellen entnommen sind, habe ich eindeutig mit korrekten Quellenangaben versehen. Über Zitierrichtlinien bin ich schriftlich informiert worden. Diese Arbeit wurde bisher in gleicher oder ähnlicher Form, auch nicht in Teilen, keiner anderen Prüfungsbehörde vorgelegt. \par
Falls ich für die Erstellung dieser Arbeit generative KI oder andere KI-gestützte Werkzeuge verwendet habe, die über grundlegende Werkzeuge für Übersetzungen und zur Überprüfung von Grammatik oder Rechtschreibung hinausgehen, erkläre ich, nach der Nutzung dieser Werkzeuge erstellte Inhalte meiner \@thesistype\ überprüft und bearbeitet zu haben und übernehme die volle Verantwortung für die diesbezüglichen Ausführungen. Eine Verwendung solcher Werkzeuge habe ich in meiner Arbeit dokumentiert (bspw.\ im Abschnitt \enquote{Struktur der Arbeit, Methodik} oder durch Erläuterungen zur Nutzung im Anhang).
\vspace*{2em}
\begin{flushleft}
\@ort, den \@datum\\
\vspace*{2em}
\rule{10cm}{0.4pt}\\
\@author
\end{flushleft}
\vfill
}
The first page, as this template compiles today. Click it to enlarge, and again to shrink. Open the file ↗