380 lines
14 KiB
TeX
380 lines
14 KiB
TeX
\section{Situationsanalyse}
|
|
\subsection{Vision}
|
|
\subsection{Stakeholder}
|
|
Folgende Stakeholder sind in diesem Projekt zu berücksichtigen:
|
|
\begin{itemize}
|
|
\item Plattforminhaber
|
|
\item Standbetreiber
|
|
\item Marktbesucher
|
|
\end{itemize}
|
|
|
|
Abbildung: (\ref{fig:stakeholder}) zeigt die Beziehung der Stakeholder
|
|
zum Projekt noch grafisch auf.
|
|
|
|
\begin{figure}
|
|
\centering
|
|
%\includegraphics[width=0.9\textwidth]{diagrammes/stakeholder.png}
|
|
\caption{Stakeholder Diagramm\label{fig:stakeholder}}
|
|
\end{figure}
|
|
|
|
\subsection{Chancen und Risiken}
|
|
|
|
\subsubsection{Chancen}
|
|
\subsubsection{Risiken}
|
|
Ein grosses Risiko ist das wir uns beim Erarbeiten der Datenbank sowie
|
|
beim Schreiben der Applikation in Details verlieren die nicht
|
|
gefordert werden. Sowie unter Umständen Dinge einbauen welche wir nicht
|
|
genügend kennen. Dies könnte uns zu einem späteren Zeitpunkt zum Verhängnis
|
|
werden.
|
|
|
|
\newpage
|
|
\section{Zielsetzung}
|
|
\subsection{Mussziele}
|
|
\subsection{Wunschziele}
|
|
\section{User Stories}
|
|
User Stories sind eine in Alltagssprache geschriebenen
|
|
Software-Anforderungen. Sie sind bewusst kurzgehalten und
|
|
beschreiben die Wünsche und Ziele der Rollen welche die
|
|
Software verwenden.
|
|
\section{Use Cases}
|
|
Ein Use Case sammelt alle möglichen Szenarien, die eintreten können,
|
|
wenn ein Akteur versucht, mit Hilfe des betrachteten Systems ein
|
|
bestimmtes Ziel zu erreichen. Dabei beschreibt er was beim Versuch der
|
|
Zielerreichung passieren kann. Je nach Ablauf kann auch ein Fehlschlag
|
|
ein Ergebnis eines Anwendungsfalls sein (e.g. falsches Passwort beim
|
|
Login). Dabei wird die technische Lösung nicht konkret beschrieben.
|
|
Die Detailstufe kann dabei sehr unterschiedlich sein.
|
|
|
|
\subsection{Use Case Diagramm}
|
|
``Ein Anwendungsfalldiagramm ... ist eine der 14 Diagrammarten der
|
|
Unified Modeling Language (UML), einer Sprache für die Modellierung
|
|
der Strukturen und des Verhaltens von Software- und anderen Systemen.
|
|
Es stellt Anwendungsfälle und Akteure mit ihren jeweiligen
|
|
Abhängigkeiten und Beziehungen dar.''\cite{dbcs7}
|
|
|
|
Wir verschafften uns dabei mit einem Use Case Diagramm, zu sehen in
|
|
Abbildung: (\ref{fig:use_case}), zuerst einen groben Überblick über
|
|
die Use Cases und wie sie zusammenhängen.
|
|
|
|
\subsection{Use Cases Detailbeschreibungen}
|
|
Für die Ausarbeitung der C\# Applikation haben wir uns für 5 Use Cases
|
|
entschieden und diese in einer Use Case Schablone von Alistair
|
|
Cockburn im Detail ausgearbeitet und beschrieben haben. Die Alistair
|
|
Cockburn Schablone gibt eine gute Vorgabe für den Inhalt der Use Case
|
|
Beschreibung.
|
|
|
|
\subsubsection{Lösungsvarianten}
|
|
\paragraph{Gewählte Variante}
|
|
\begin{landscape}
|
|
|
|
\begin{figure}
|
|
\centering
|
|
%\includegraphics[height=0.9\textheight]{diagrammes/use_cases.png}
|
|
\caption{Use Case Diagramm\label{fig:use_case}}
|
|
\end{figure}
|
|
\end{landscape}
|
|
|
|
|
|
%% -- Begining of Use Case Template --
|
|
\subsubsection{User Registrierung}
|
|
{\footnotesize\begin{longtable}{|>{\columncolor[HTML]{EFEFEF}}p{.25\textwidth}|p{.7\textwidth}|}
|
|
\hline
|
|
%begin title row
|
|
{\cellcolor[HTML]{C0C0C0} Identifier} + Name & {\cellcolor[HTML]{C0C0C0} 1.0 User Registrierung} \\ \hline
|
|
%end title row
|
|
Description & Registrierung eines neuen User Accounts.\\
|
|
\hline
|
|
Actors & User\\
|
|
\hline
|
|
Status & Freigegeben\\
|
|
\hline
|
|
Includes & -\\
|
|
\hline
|
|
Trigger & User möchte sich registrieren.\\
|
|
\hline
|
|
Preconditions & Email Adresse vorhanden.\\
|
|
\hline
|
|
Postconditions & User hat sich einen Account erstellt.\\
|
|
\hline
|
|
Normal Flow & 1. User startet Registrierung\\
|
|
& 2. User füllt Form aus\\
|
|
& 3. User schliesst Registrierung ab\\
|
|
\hline
|
|
Alternative Flow & 1. User startet Registrierung\\
|
|
& 2. User füllt Form mit bereits vorhandener Email Adresse aus.\\
|
|
& 3. Applikation gibt Fehler aus\\
|
|
& 4. User verwendet einzigartige Email Adresse\\
|
|
& 5. User schliesst Registrierung ab\\
|
|
\hline
|
|
Notes & -\\
|
|
\hline
|
|
UC History & 1.0 Draft erstellt durch AZ\\
|
|
& 1.1 kleinere Anpassungen durch AZ\\
|
|
\hline
|
|
Author & A. Zweili \& I. Cadaroski\\
|
|
\hline
|
|
Date & 24. August 2017\\
|
|
\hline
|
|
\caption{Use 1.0 User Registrierung}
|
|
\end{longtable}}
|
|
\newpage
|
|
%% -- End of Use Case Template --
|
|
|
|
\begin{landscape}
|
|
\section{Stundenplanung}
|
|
|
|
%% -- start Stundenplanung table --
|
|
\footnotesize
|
|
\begin{longtable}{|>{\columncolor[HTML]{EFEFEF}}p{4cm}|p{2.1cm}|p{1.8cm}|p{1.8cm}|p{1.8cm}|p{7cm}|}
|
|
\hline
|
|
%begin title row
|
|
{\cellcolor[HTML]{C0C0C0}\textbf{Aktivität}} &
|
|
{\cellcolor[HTML]{C0C0C0}\textbf{Definition}}
|
|
\footnote{Definition Arbeit ist grundlegend in Dokumentation (Doku) der Lösung
|
|
und erarbeiten des Codes (Code) der dazugehörigen Funktionen aufgebaut} &
|
|
{\cellcolor[HTML]{C0C0C0}\textbf{Planung}} &
|
|
{\cellcolor[HTML]{C0C0C0}\textbf{Leistung}} &
|
|
{\cellcolor[HTML]{C0C0C0}\textbf{Differenz}} &
|
|
{\cellcolor[HTML]{C0C0C0}\textbf{Erklärung}} \\ \hline
|
|
%endtitle row
|
|
Projekt Management & Doku & 10 & 20 & 10 & Wir hatten uns zu Beginn
|
|
darauf festgelegt alle zwei Wochen ein kurzes Meeting abzuhalten. Die
|
|
Meetings wurden dann aber mit durchschnittlich 1h länger als
|
|
ursprünglich angenommen. \\ \hline
|
|
|
|
Dokumentation & Doku & 25 & 45 & 20 & Wir haben bei dieser Arbeit
|
|
wesentlich mehr Zeit in die Dokumentation investiert. Ein Teil davon
|
|
ist sicher der Tatsache zu Schulden das wir die Arbeit in LaTeX
|
|
geschrieben haben. \\ \hline
|
|
|
|
Vision & Doku & 1 & 1 & 0 & \ \\ \hline
|
|
|
|
User Stories & Doku & 2 & 2 & 0 & \ \\ \hline
|
|
|
|
ERM erstellen & Doku & 3 & 2 & -1 & Beim RM haben wir weniger Details
|
|
eingezeichnet, sondern uns hauptsächlich darauf beschränkt uns eine
|
|
grobe Übersicht zu verschaffen. \\ \hline
|
|
|
|
ERD erstellen & Doku & 4 & 12 & 8 & Die Aufgabenstellung hat sich als
|
|
wesentlich komplizierter herausgestellt als wir angenommen hatten. \\ \hline
|
|
|
|
User Stories(Diagramm) erstellen & & 1 & 1 & 0 & \ \\ \hline
|
|
|
|
Testplan aufgebaut & Doku & 12 & 4 & -8 & Erwies sich als weniger
|
|
Aufwand, als ursprünglich gedacht. Da wir mit den Use Cases bereits
|
|
gute Vorlagen hatten. \\ \hline
|
|
|
|
SQL Code & & & & & \ \\ \hline
|
|
SQL Scripts erstellen & Code & 7 & 8 & 1 & Das Erstellen der Testdaten
|
|
Scripts hat etwas mehr Zeit gebraucht als erwartet. Insbesondere da
|
|
wir zuerst versucht haben, die Länder und Städte Listen bereits
|
|
komplett zu erstellen. \\ \hline
|
|
|
|
C\# Code & & & & & \\ \hline
|
|
Frontend (GUI) erstellen & Code & 25 & 30 & 5 & Der Aufbau unseres GUI
|
|
zeigte sich um einiges komplizierte als wir es uns zu Anfang
|
|
vorgestellt haben. Ein grosser Anteil des Aufwandes ging an die
|
|
Nachforschung des Codes verloren, da wir dies zu diesem Zeitpunkt noch
|
|
nicht angewendet haben. \\ \hline
|
|
|
|
Datenbankverbindung & Code & 2 & 3 & 1 & Es entstand ein kleiner
|
|
Mehraufwand, da bei Applikation jeweils der Verbindungsstring
|
|
angepasst werden musste Wenn der Code auf einem anderen Computer
|
|
kompiliert wurde. \\ \hline
|
|
|
|
Konzept des Aufbaus & Code & 4 & 4 & 0 & Der Konzeptaufbau (Was
|
|
möchten wir darstellen?), wurde von uns öfters als geplant
|
|
umstrukturiert, hielt sich aber noch Im Zeitrahmen \\ \hline
|
|
|
|
Login und Registration & Code & 4 & 6 & -2 & Die ID- Vergabe und die
|
|
Verarbeitung benötigten mehr Aufwand als vorgesehen \\ \hline
|
|
|
|
Standort-Abfrage & Code & 6 & 9 & 3 & Durch Wissenslücken ging ein
|
|
Grossteil der Zeit in der Informationssuche verloren \\ \hline
|
|
|
|
Rent-Reservation-Eingabe & Code & 20 & 32 & 12 & Die Übergabe der
|
|
verschiedenen ID`s in der Applikation warfen einige Probleme auf, die
|
|
in der Reservation besonders Zum Vorschein gekommen sind \\ \hline
|
|
|
|
Rent-Abfrage & Code & 8 & 8 & 0 & \\ \hline
|
|
|
|
Coding (Verbinden der Funktionen) & Code & 20 & 40 & 20 & Da wir in
|
|
unserer Applikation gleich mehrere Funktionen abgebildet
|
|
haben (Login/Informationsabfrage/ Informationseingabe/Abfrage
|
|
eingefüllter Daten), war das darauffolgende Verbinden des Codes auch
|
|
ein grosser Aufwand \\ \hline
|
|
|
|
Test`s & & & & & \ \\ \hline
|
|
Testplan durchgeführt & Doku & 30 & 15 & -15 & Die Tests haben
|
|
wesentlich weniger Zeit gebraucht als angenommen und wurden meistens
|
|
on the fly gemacht. \\ \hline
|
|
|
|
\textbf{Total} & & \textbf{184} & \textbf{242} & & \\ \hline
|
|
|
|
\caption{Stundenplanung}
|
|
\end{longtable}
|
|
%% -- end Stundenplanung table --
|
|
\end{landscape}
|
|
|
|
\newpage
|
|
|
|
\section{Umsetzung}
|
|
|
|
\subsection{Zusammenarbeit}
|
|
Zur Zusammenarbeit am Code haben wir uns für Git entschieden. Dies
|
|
ermöglichte es uns gleichzeitig am Code zu arbeiten und zwischendurch
|
|
die Änderungen des anderen zu ``mergen''. Dies war von grossem Vorteil
|
|
da wir so unabhängig voneinander am Code weiterarbeiten konnten. So
|
|
entstanden insgesamt über 150 Commits.
|
|
|
|
Des Weiteren haben wir uns die Arbeit so aufgeteilt damit wir möglichst
|
|
unabhängig voneinander arbeiten konnten und somit nicht aufeinander
|
|
warten mussten.
|
|
|
|
Andreas hat sich Hauptsächlich mit den SQL Scripts beschäftigt.
|
|
Parallel dazu konnte sich Ismail in das Schreiben einer grafischen C\#
|
|
Applikation einlesen. Sobald die SQL Skripte fertig waren konnte
|
|
Ismail diese nutzen um die Applikation fertig zu stellen.
|
|
|
|
Die Dokumentation wurde dabei fortlaufen erweitert. Da wir die
|
|
Dokumentation in \LaTeX geschrieben haben und somit auch nur aus
|
|
simplen Textdateien besteht konnten wir auch an dieser ohne Probleme
|
|
gleichzeitig arbeiten und über Git versionieren.
|
|
|
|
\subsection{ER Modell und ER Diagramm}
|
|
Gleich zu Beginn des Projektes haben wir den Text zur Aufgabenstellung
|
|
eingehend analysiert und daraus ein Entity-Relationship-Modell(ERM),
|
|
Abbildung: (\ref{fig:rm}) erstellt.
|
|
|
|
Wir haben dabei darauf verzichtet für jede Entität noch die jeweiligen
|
|
Attribute einzuzeichnen da wir uns mit dem ERM Hauptsächlich einen
|
|
Überblick über die Situation verschaffen wollten damit wir die
|
|
Abhängigkeiten zwischen den Entitäten besser nachvollziehen konnten.
|
|
|
|
Im Anschluss wurden dann das Entity-Relationship-Diagramm(ERD),
|
|
Abbildung: (\ref{fig:erm}) erstellt. Dies wurde mit allen Details
|
|
erstellt. Im ERD haben wir auch Eigenschaften von Attributen erfasst
|
|
welche in der exportieren Übersicht hier in der Dokumentation nicht
|
|
ersichtlich sind, wie etwa ``Unique'', ``Not Null'', etc. Aus dem ERD
|
|
konnten dann relativ schnell die SQL Scripts abgeleitet werden.
|
|
|
|
\subsection{SQL Datenbank}
|
|
\begin{landscape}
|
|
\begin{figure}
|
|
\centering
|
|
%\includegraphics[height=0.8\textheight]{diagrammes/rm.png}
|
|
\caption{Entity-Relationship-Modell\label{fig:rm}}
|
|
\end{figure}
|
|
\end{landscape}
|
|
|
|
|
|
\begin{landscape}
|
|
\begin{figure}
|
|
\centering
|
|
%\includegraphics[scale=0.38]{diagrammes/erm.png}
|
|
\caption{Entity-Relationship-Diagramm\label{fig:erm}}
|
|
\end{figure}
|
|
\end{landscape}
|
|
|
|
\begin{landscape}
|
|
\section{Testfälle}
|
|
|
|
%% -- start Test Case table --
|
|
\footnotesize
|
|
\begin{longtable}{|>{\columncolor[HTML]{EFEFEF}}p{1.5cm}|p{2.5cm}|p{2.5cm}|p{2.5cm}|p{2.5cm}|p{2.5cm}|p{2.5cm}|p{2.5cm}|}
|
|
\hline
|
|
%begin title row
|
|
\cellcolor[HTML]{C0C0C0}Testcase ID & \cellcolor[HTML]{C0C0C0}Objektive &
|
|
\cellcolor[HTML]{C0C0C0}Precondition & \cellcolor[HTML]{C0C0C0}Steps &
|
|
\cellcolor[HTML]{C0C0C0}Testdata & \cellcolor[HTML]{C0C0C0}Expected Result &
|
|
\cellcolor[HTML]{C0C0C0}Postcondition & \cellcolor[HTML]{C0C0C0}Result \\ \hline
|
|
% end title row
|
|
|
|
TC-01 & Registrierung am System & - & 1. Öffnen des Programms \newline
|
|
2. Eingeben des Usernamens \newline
|
|
3. Eingeben des Passworts\newline
|
|
4. Klicken des ``Register'' Knopf & Username: muster@gmx.ch Passwort:
|
|
123456 & Pop-up mit ``Member Registered'' Text erscheint & User
|
|
registriert & Erfolgreich durchgeführt. 27.07.2017 A.Z. \\ \hline
|
|
|
|
TC-02 & Registrierung am System & TC-01 ausgeführt. & 1. Öffnen des
|
|
Programms \newline
|
|
2. Eingeben des Usernamens \newline
|
|
3. Eingeben des Passworts \newline
|
|
4. Klicken des ``Register'' Knopf & Username: \newline
|
|
muster@gmx.ch Passwort: \newline
|
|
123456 & Fehlermeldung: \newline
|
|
“User already exists.” & Login / Registrierung Wird wieder
|
|
angezeigt & Beim ersten Durchführen fehlte Noch eine Try/Catch
|
|
Funktion Was die Applikation zum Abstürzen brachte. Erfolgreich
|
|
durchgeführt. 13.08.2017 I.C. \\ \hline
|
|
|
|
TC-03 & Anmeldung am System & TC-01 ausgeführt. & 1. Öffnen des Programms \newline
|
|
2. Eingeben des Usernamens \newline
|
|
3. Eingeben des Passworts \newline
|
|
4. Klicken des ``Login'' Knopf \newline
|
|
5. Quittieren des Pop-Up & Username: \newline
|
|
muster@gmx.ch Passwort: \newline
|
|
123456 & Der User wird zum Dashboard weitergeleitet & Dashboard wird
|
|
Angezeigt. & Erfolgreich durchgeführt. 27.07.2017 A.Z. \\ \hline
|
|
|
|
TC-04 & Anmeldung am System & TC-01 ausgeführt. & 1. Öffnen des Programms \newline
|
|
2. Eingeben des Usernamens \newline
|
|
3. Eingeben des Passworts \newline
|
|
4. Klicken des ``Login'' Knopf \newline
|
|
5. Fehlermeldung quittieren & Username: \newline
|
|
muster@gmx.ch Passwort: \newline
|
|
WrongPassword & Fehlermeldung: \newline
|
|
``Username or Password Not correct.'' & Login / Registrierung Wird
|
|
wieder angezeigt & Erfolgreich durchgeführt. 27.07.2017 A.Z. \\ \hline
|
|
|
|
TC-05 & Anmeldung am System & - & 1. Öffnen des Programms \newline
|
|
2. Eingeben des Usernamens \newline
|
|
3. Eingeben des Passworts \newline
|
|
4. Klicken des ``Login'' Knopf \newline
|
|
5. Fehlermeldung quittieren & Username: \newline
|
|
muster@gmx.ch Passwort: \newline
|
|
123456 & Fehlermeldung: \newline
|
|
``Username or Password Not correct.'' & Login / Registrierung Wird
|
|
wieder angezeigt & Erfolgreich durchgeführt. 27.07.2017 A.Z. \\ \hline
|
|
|
|
TC-06 & Standorte anzeigen & TC-01 und TC-03 Ausgeführt & 1.
|
|
Suchbegriff eingeben 2. ``Search'' Knopf klicken & Suchbegriff: \newline
|
|
Markt & Suchresultat: \newline
|
|
``Markstrasse 300 Testmarkt'' erscheint & Suchresultat wird Angezeigt.
|
|
& Zuerst wurde mit ``equal'' gesucht was es sehr Schwierig machte zu
|
|
suchen. Wurde zu ``like'' korrigiert. Erfolgreich durchgeführt.
|
|
27.07.2017 A.Z. \\ \hline
|
|
|
|
TC-07 & Standorte anzeigen & TC-01 und TC-03 Ausgeführt & 1. keinen
|
|
Suchbegriff eingeben 2. ``Search'' Knopf klicken & & Suchresultat: \newline
|
|
``Markstrasse 300 Testmarkt Teststrasse 450 Testmark2'' Erscheint &
|
|
Suchresultat wird Angezeigt. & Erfolgreich durchgeführt. 27.07.2017
|
|
A.Z. \\ \hline
|
|
|
|
TC-08 & Standort mieten & TC-01, TC-03 und
|
|
TC-06 ausgeführt. & 1. keinen Suchbegriff eingeben \newline
|
|
2. ``Search'' Knopf klicken \newline
|
|
3. beliebigen Standort wählen \newline
|
|
4. Mietdatum auswählen \newline
|
|
5. ``Rent'' Knopf klicken & & Miete wird in Datenbank Verbucht. & &
|
|
Erfolgreich durchgeführt. 22.08.2017 I.C. \\ \hline
|
|
|
|
TC-09 & Mieten anzeigen & TC-01, TC-03, TC-06 Und TC-08 ausgeführt &
|
|
1. ``Refresh'' Knopf klicken & & Die ``Rents'' Liste wird Aktualisiert
|
|
und gibt Die in TC-08 getätigte Miete aus. & Mietliste wurde Befüllt.
|
|
& Erfolgreich durchgeführt. 22.08.2017 I.C. \\ \hline
|
|
|
|
% TC-11 & & & & & & & \\ \hline
|
|
\caption{Testfälle}
|
|
\end{longtable}
|
|
%% -- end test case table --
|
|
\end{landscape}
|
|
|
|
\section{Fazit}
|
|
|
|
%%% Local Variables:
|
|
%%% mode: latex
|
|
%%% TeX-master: "main"
|
|
%%% End:
|