forked from steinberger/wif-exposee
186 lines
7.1 KiB
TeX
186 lines
7.1 KiB
TeX
\chapter{Einbinden von Grafiken, Sourcecode und Anforderungen}
|
|
\label{Kap3}
|
|
|
|
\section{Bilder}
|
|
|
|
Natürlich können auch Grafiken und Bilder eingebunden werden, siehe z.\,B. \autoref{Kap2:NasaRover}. Hierbei ist zu beachten, dass \LaTeX{} die Bilder automatisch positioniert, sie also nicht zwingend an der Stelle erscheinen, an der sie im Quelltext vorkommen (man spricht hier von \enquote{floats}). Das ist vollkommen in Ordnung und im Sinne einer ausgeglichenen Typografie auch sinnvoll.
|
|
|
|
\begin{figure}[ht]
|
|
\centering
|
|
\includegraphics[width=6cm]{kapitel3/nasa_rover}
|
|
\caption{Ein Nasa Rover}
|
|
\label{Kap2:NasaRover}
|
|
\end{figure}
|
|
|
|
Man kann sich auch selbst ein Makro für das Einfügen von Bildern schreiben:
|
|
|
|
\bild{kapitel3/modell_point_to_point}{6cm}{Point to Point}
|
|
|
|
\begin{sidewaysfigure}
|
|
\includegraphics[width=22cm]{kapitel3/ws-wsdl20-fehler}
|
|
\caption{Sehr große Grafiken kann man drehen, damit sie auf die Seite passen}
|
|
\label{Kap2:wsdl-fehler}
|
|
\end{sidewaysfigure}
|
|
|
|
Möchte man verhindern, dass Bilder in ein anderes Kapitel rutschen, steht der Befehl \verb+\clearpage+ zur Verfügung, der \LaTeX{} zwingt, alle bis dahin definierten \textit{floats} (Bilder, Tabellen, Formeln etc.) auszugeben.
|
|
|
|
\clearpage % Alle Bilder, die bisher kamen ausgeben
|
|
|
|
|
|
\section{Formelsatz}
|
|
|
|
Eine Formel gefällig? Mitten im Text $a_2 = \sqrt{x^3}$ oder als eigener Absatz (siehe \autoref{Formel}):
|
|
|
|
\begin{equation}
|
|
\begin{bmatrix}
|
|
1 & 4 & 2 \\
|
|
4 & 0 & -3
|
|
\end{bmatrix}
|
|
\cdot
|
|
\begin{bmatrix}
|
|
1 & 1 & 0 \\
|
|
-2 & 3 & 5 \\
|
|
0 & 1 & 4
|
|
\end{bmatrix}
|
|
{=}
|
|
\begin{bmatrix}
|
|
-7 & 15 & 28 \\
|
|
4 & 1 & -12
|
|
\end{bmatrix}
|
|
\label{Formel}
|
|
\end{equation}
|
|
|
|
Wenn Ihre Formel zu breit für eine Zeile wird, können Sie sie mithilfe der \texttt{split}-Umgebung und einem doppelten Backslash (\verb+\\+) umbrechen.
|
|
|
|
\begin{equation}
|
|
\label{eq:4}
|
|
\begin{split}
|
|
\mathbf{F}_{{eigen}}=\sqrt[3]{\coprod_{i=1}^{3} \lambda_{i}},
|
|
\frac{\lambda_{1}-\lambda_{3}}{\lambda_{1}},
|
|
\frac{\lambda_{2}-\lambda_{3}}{\lambda_{1}},
|
|
\frac{\lambda_{3}}{\lambda_{1}} \\-
|
|
\sum_{i=1}^{3} \lambda_{i} \log \left(\lambda_{i}\right),
|
|
\frac{\lambda_{1}-\lambda_{2}}{\lambda_{1}}
|
|
\end{split}
|
|
\end{equation}
|
|
|
|
Sie können Formelelemente auch am Gleichheitszeichen ausrichten, hierzu dient die \texttt{align}-Umgebung:
|
|
|
|
\begin{align}
|
|
2x - 5y &= 8 \\
|
|
3x + 92y &= -12
|
|
\end{align}
|
|
|
|
Wollen Sie keine Nummerierung der Formeln, ergänzen Sie einfach einen \texttt{*} bei den Namen der Umgebungen, d.h. Sie verwenden \texttt{equation*} oder \texttt{align*}.
|
|
|
|
\begin{equation*}
|
|
\begin{bmatrix}
|
|
1 & 4 & 2 \\
|
|
4 & 0 & -3
|
|
\end{bmatrix}
|
|
\cdot
|
|
\begin{bmatrix}
|
|
1 & 1 & 0 \\
|
|
-2 & 3 & 5 \\
|
|
0 & 1 & 4
|
|
\end{bmatrix}
|
|
{=}
|
|
\begin{bmatrix}
|
|
-7 & 15 & 28 \\
|
|
4 & 1 & -12
|
|
\end{bmatrix}
|
|
\end{equation*}
|
|
|
|
|
|
\section{Sourcecode}
|
|
|
|
Man kann mit Latex auch ganz toll Sourcecode in den Text aufnehmen.
|
|
|
|
\subsection{Aus einer Datei}
|
|
|
|
\lstinputlisting[firstline=2, % Erste anzuzeigende Zeile aus der Datei
|
|
language=Java, % Programmmiersprache (für Highlighting)
|
|
caption={Crypter-Interface}, % Beschriftung
|
|
label=lst:CrypterInterface] % Label (für Referenzen)
|
|
{\srcloc/Crypter.java} % Pfad zur Datei, die angezeigt wird
|
|
|
|
Mit Zeilennummern
|
|
|
|
\lstinputlisting[numbers=left, % Mit Zeilennummern auf der linken Seite
|
|
firstline=10, % Erste anzuzeigende Zeile aus der Datei
|
|
lastline=15, % Letzte anzuzeigende Zeile aus der Datei
|
|
language=Java, % Programmmiersprache (für Highlighting)
|
|
caption={Crypter}, % Beschriftung
|
|
label=lst:CrypterInterface2] % Label (für Referenzen)
|
|
{\srcloc/Crypter.java} % Pfad zur Datei, die angezeigt wird
|
|
|
|
|
|
\subsection{Inline}
|
|
|
|
\begin{lstlisting}[language=Java,caption=Methode checkKey()]
|
|
/**
|
|
* Testet den Schlüssel auf Korrektheit: Er muss mindestens die Länge 1
|
|
* haben und darf nur Zeichen von A-Z enthalten.
|
|
*
|
|
* @param key zu testender Schlüssel
|
|
* @throws CrypterException wenn der Schlüssel nicht OK ist.
|
|
*/
|
|
protected void checkKey(Key key) throws CrypterException {
|
|
|
|
// Passt die Länge?
|
|
if (key.getKey().length == 0) {
|
|
throw new CrypterException("Der Schlüssel muss mindestens " +
|
|
"ein Zeichen lang sein");
|
|
}
|
|
|
|
checkCharacters(key.getKey(), ALPHABET);
|
|
}
|
|
\end{lstlisting}
|
|
|
|
|
|
\section{Anforderungen}
|
|
|
|
Anforderungen im Format des Volere"=Templates (Snowcards) \autocite{Volere} können per Makro eingefügt werden. Das Label wird automatisch mit der Nummer erstellt, d.\,h. Sie können auf die Tabelle mit dieser referenzieren (siehe \autoref{F52}).
|
|
|
|
\snowcard % Snowcard einbinden (Anpassungen in titelblatt.tex)
|
|
{F52} % Nummer des Requirements
|
|
{F} % Art
|
|
{Hoch} % Priorität
|
|
{User Authentifizierung} % Titel
|
|
{Interview mit Abteilungsleiter} % Herkunft (Optional)
|
|
{F12} % Konflikte (Optional)
|
|
{Der Benutzer ist in der Lage sich über seinen
|
|
Benutzernamen und sein Passwort am System anzumelden} % Beschreibung
|
|
{Ein Benutzer kann sich mit seinem firmenweiten Benutzernamen und
|
|
Passwort über die Anmeldemaske anmelden und hat Zugriff auf die
|
|
Funktionen des Systems} % Fit-Kriterium (Optional)
|
|
{Benutzerhandbuch des Altsystems} % Material (Optional)
|
|
|
|
Ebenso können Sie nicht"=funktionale Anforderungen mit Hilfe von Quality Attribute Scenarios (vgl. \autoref{NF11}) darstellen. Zu Details siehe \autocite{Barbacci2003}.
|
|
|
|
\qas % Quality-Attribute Scenario einbinden (Anpassungen in titelblatt.tex)
|
|
{NF11} % Nummer des Requirements
|
|
{Hoch} % Priotität
|
|
{Performance des Jahresabschlusses} % Titel
|
|
{Endbenutzer} % Quelle
|
|
{Startet einen Jahresabschluss} % Stimulus
|
|
{Buchhaltungssystem} % Artefakt
|
|
{Das System befindet sich im normalen Betriebszustand} % Umgebung
|
|
{Jahresabschluss ist durchgeführt und kann als PDF abgerufen werden} % Antwort
|
|
{10 Minuten} % Antwort-Maß
|
|
|
|
Die Abgrenzung von funktionalen und nicht-funktionalen Anforderungen ist nicht immer einfach und bereitet manchen Studierenden Probleme. Als Hilfestellung kann die von der ISO25010 \autocite{ISO25010} zur Verfügung gestellte Liste dienen, siehe \autoref{kapitel3/iso25010}.
|
|
|
|
\bild{kapitel3/iso25010}{14cm}{Qualitätsmodell für Software-Produkte nach ISO25010}
|
|
|
|
\citeauthor{Bass2003} listen in \autocite{Bass2003} eine ähnliche Liste von Kategorien für nicht-funktionalen Anforderungen auf, die ebenfalls als Richtschnur dienen kann. Diese sind:
|
|
|
|
\begin{itemize}
|
|
\item \textit{Verfügbarkeit} \textit{(availability)} -- umfasst Zuverlässigkeit (reliability), Robustheit (robustness), Fehlertoleranz (fault tolerance) und Skalierbarkeit (scalability)
|
|
\item \textit{Anpassbarkeit} \textit{(modifiability)}, umfasst Wartbarkeit (maintainability), Verständlichkeit (understandability) und Portabilität (portability).
|
|
\item \textit{Performanz} \textit{(performance)}
|
|
\item \textit{Sicherheit} \textit{(security)}
|
|
\item \textit{Testbarkeit} \textit{(testability)}
|
|
\item \textit{Bedienbarkeit} \textit{(usability)}
|
|
\end{itemize}
|