Update the documentation and fix various problems.

This commit is contained in:
Andreas Zweili 2017-08-24 17:58:04 +02:00
parent 511373efb8
commit df0472230a
8 changed files with 120 additions and 129 deletions

View File

@ -5,7 +5,7 @@ ermöglicht geeignete Standflächen an attraktiven Standorten zu mieten.
Zusätzlich sollen sie auf einer Plattform die Möglichkeit haben sich
zu präsentieren. Diese Plattform soll interessierten Kunden einen
Überblick über die verschieden Anbieter geben und somit Neugierde
wecken. Dies alles soll auf mit möglichst wenig Aufwand verwaltet
wecken. Dies alles soll mit möglichst wenig Aufwand verwaltet
werden können.
\subsection{Stakeholder}
@ -16,7 +16,7 @@ Folgende Stakeholder sind in diesem Projekt zu berücksichtigen:
\item Marktbesucher
\end{itemize}
Diagramm:\ref{fig:stakeholder} zeigt die Beziehung der Stakeholder
Diagramm (\ref{fig:stakeholder}) zeigt die Beziehung der Stakeholder
zum Projekt noch grafisch auf.
\begin{figure}
@ -36,10 +36,11 @@ zum Projekt noch grafisch auf.
\end{itemize}
\subsubsection{Risiken}
Ein grosses Risiko ist das wir uns beim erarbeiten der Datenbank in
Details verlieren die nicht gefordert werden sowie unter Umständen
Dinge einbauen welche wir nicht genügend kennen was uns zu einem
späteren Zeitpunkt zum Verhängnis werden könnte.
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}
@ -49,8 +50,8 @@ späteren Zeitpunkt zum Verhängnis werden könnte.
\item Das Geschäftsmodell wurde in ein ERM umgewandelt.
\item Das ERM wurde in eine SQL-Server Datenbank umgesetzt.
\item Die Arbeit wurde mittels eines Testplans überprüft.
\item Die zur Verfügung stehenden Stunden sind in einer Planung auf
die Aufgaben zugeordnet. Abweichungen wurden mittels einer
\item Die zur Verfügung stehenden Stunden sind in einer Planung
den Aufgaben zugeordnet. Abweichungen wurden mittels einer
Abweichungsanalyse aufgezeichnet.
\item Die Lösung wurde dokumentiert.
\item Eine Teilfunktion des Geschäftsmodell wurde in einer C\# Applikation
@ -77,21 +78,21 @@ Als Plattforminhaber möchte ich,
\item die Kontrolle über die Anzahl der Auftrittsanpassungen haben.
\item Abonnemente verwalten können.
\item sichergestellt haben das provisorische Mitglieder sich nur
an einem Standort einen Platz reservieren kann.
an einem Standort einen Platz reservieren können.
\end{itemize}
\subsection{Anbieter provisorisches Mitglied}
\subsection{Anbieter (provisorisches Mitglied)}
Als provisorisches Mitglied möchte ich,
\begin{itemize}
\item mich registrieren können.
\item einen Standfläche mieten können.
\item eine Standfläche mieten können.
\item einsehen können wie lange die Probezeit noch dauert.
\end{itemize}
\subsection{Anbieter festes Mitglied}
\subsection{Anbieter (festes Mitglied)}
Als festes Mitglied möchte ich,
\begin{itemize}
\item Abonnement lösen können.
\item ein Abonnement lösen können.
\item Standorte buchen können.
\item meinen Auftritt anpassen können.
\end{itemize}
@ -128,8 +129,7 @@ Als Marktbesucher möchte ich,
%begin title row
{\cellcolor[HTML]{C0C0C0} Identifier} + Name & {\cellcolor[HTML]{C0C0C0} 1.0 User Registrierung} \\ \hline
%end title row
Description & Der Use Case beschreibt die Registrierung
eines neuen User Accounts.\\
Description & Registrierung eines neuen User Accounts.\\
\hline
Actors & User\\
\hline
@ -139,7 +139,7 @@ Includes & -\\
\hline
Trigger & User möchte sich registrieren.\\
\hline
Preconditions & -\\
Preconditions & Email Adresse vorhanden.\\
\hline
Postconditions & User hat sich einen Account erstellt.\\
\hline
@ -148,8 +148,7 @@ Normal Flow & 1. User startet Registrierung\\
& 3. User schliesst Registrierung ab\\
\hline
Alternative Flow & 1. User startet Registrierung\\
& 2. User füllt Form mit bereits vorhandener\\
& Email Adresse aus.\\
& 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\\
@ -157,10 +156,11 @@ Alternative Flow & 1. User startet Registrierung\\
Notes & -\\
\hline
UC History & 1.0 Draft erstellt durch AZ\\
& 1.1 kleinere Anpassungen durch AZ\\
\hline
Author & A. Zweili \& I. Cadaroski\\
\hline
Date & 20. Juli 2017\\
Date & 24. August 2017\\
\hline
\caption{Use 1.0 User Registrierung}
\end{longtable}}
@ -174,8 +174,7 @@ Date & 20. Juli 2017\\
%begin title row
{\cellcolor[HTML]{C0C0C0} Identifier} + Name & {\cellcolor[HTML]{C0C0C0} 1.1 User Login} \\ \hline
%end title row
Description & Der Use Case beschreibt den Login eines
Users.\\
Description & Login eines Users am System.\\
\hline
Actors & User\\
\hline
@ -193,17 +192,17 @@ Normal Flow & 1. User füllt Login Form korrekt aus\\
& 2. User quittiert Login\\
& 3. Applikation wechselt zum geschützten Bereich\\
\hline
Alternative Flow & 1. User füllt Login Form mit falschen\\
& Angaben aus\\
Alternative Flow & 1. User füllt Login Form mit falschen Angaben aus.\\
& 2. Applikation gibt einen Error aus\\
\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 & 20. Juli 2017\\
Date & 24. August 2017\\
\hline
\caption{Use Case 1.1 User Login}
\end{longtable}}
@ -211,14 +210,14 @@ Date & 20. Juli 2017\\
%% -- End of Use Case Template --
%% -- Begining of Use Case Template --
\subsubsection{Standorte begutachten}
\subsubsection{Standorte auflisten/suchen}
{\footnotesize\begin{longtable}{|>{\columncolor[HTML]{EFEFEF}}p{.25\textwidth}|p{.7\textwidth}|}
\hline
%begin title row
{\cellcolor[HTML]{C0C0C0} Identifier} + Name & {\cellcolor[HTML]{C0C0C0} 2.0 Standorte begutachten} \\ \hline
{\cellcolor[HTML]{C0C0C0} Identifier} + Name & {\cellcolor[HTML]{C0C0C0} 2.0 Standorte auflisten/suchen} \\ \hline
%end title row
Description & Der Use Case beschreibt das Betrachten der
Standorte.\\
Description & Auflisten/suchen der
Standorte in der Applikation.\\
\hline
Actors & User\\
\hline
@ -226,25 +225,25 @@ Status & Freigegeben\\
\hline
Includes & -\\
\hline
Trigger & User möchte Standort Details einsehen.\\
Trigger & User möchte Standorte suchen/auflisten.\\
\hline
Preconditions & UC 1.1 erfolgreich abgeschlossen\\
\hline
Postconditions & -\\
\hline
Normal Flow & 1. User wählt einen Standort aus\\
& 2. Die Applikation gibt die Details zum\\
& ausgewählten Standort aus.\\
Normal Flow & 1. User gibt einen Suchbegriff ein.\\
& 2. Die Applikation gibt die passenden Resultate aus.\\
\hline
Alternative Flow & -\\
\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 & 20. Juli 2017\\
Date & 24. August 2017\\
\hline
\caption{Use Case 2.0 Standorte begutachten}
\end{longtable}}
@ -259,10 +258,9 @@ Date & 20. Juli 2017\\
%begin title row
{\cellcolor[HTML]{C0C0C0} Identifier} + Name & {\cellcolor[HTML]{C0C0C0} 2.1 Standorte mieten} \\ \hline
%end title row
Description & Der Use Case beschreibt das mieten der
Standorte als Test Member.\\
Description & Mieten eines Standortes als Test Member.\\
\hline
Actors & User mit test$_{\text{member}}$ Status\\
Actors & User mit ``test\_member'' Status\\
\hline
Status & Freigegeben\\
\hline
@ -275,26 +273,25 @@ Date & 20. Juli 2017\\
Postconditions & Miete wurde erfolgreich in DB eingetragen.\\
\hline
Normal Flow & 1. User wählt einen Standort aus\\
& 2. User wählt das Datum aus an dem er den\\
& Standort gerne mieten möchte.\\
& 3. User bestätigt die Miete mit klick auf\\
& den Insert Button.\\
& 2. User wählt das Datum aus an dem er den Standort gerne mieten möchte.\\
& 3. User bestätigt die Miete mit einem Klick auf den Insert Button.\\
\hline
Alternative Flow & 1. User wählt einen Standort aus\\
& 2. User wählt das Datum an dem er den\\
& Standort gerne mieten möchte.\\
& 3. User bestätigt die Miete mit klick auf\\
& den Insert Button.\\
& 4. Die Applikation meldet zurück das der\\
& Standort an diesem Datum bereits besetzt ist.\\
Alternative Flow
& \textbf{Der Alternative Flow wurde in der Applikation nicht umgesetzt.}\\
& 1. User wählt einen Standort aus\\
& 2. User wählt das Datum an dem er den Standort gerne mieten möchte.\\
& 3. User bestätigt die Miete mit klick auf den Insert Button.\\
& 4. Die Applikation meldet zurück das der Standort an diesem Datum\\
& bereits besetzt ist.\\
\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 & 27. Juli 2017\\
Date & 24. August 2017\\
\hline
\caption{Use Case 2.1 Standorte Mieten}
\end{longtable}}
@ -310,10 +307,9 @@ Date & 20. Juli 2017\\
%begin title row
{\cellcolor[HTML]{C0C0C0} Identifier} + Name & {\cellcolor[HTML]{C0C0C0} 2.2 Mieten anzeigen} \\ \hline
%end title row
Description & Der Use Case beschreibt das Betrachten der
getätigten Mieten des aktuellen Users.\\
Description & Betrachten der getätigten Mieten des aktuellen Users.\\
\hline
Actors & User mit test$_{\text{member}}$ Status\\
Actors & User mit ``test\_member'' Status\\
\hline
Status & Freigegeben\\
\hline
@ -335,10 +331,11 @@ Alternative Flow & -\\
Notes & -\\
\hline
UC History & 1.0 Draft erstellt durch AZ\\
& 1.1 kleinere Anpassungen durch AZ\\
\hline
Author & A. Zweili \& I. Cadaroski\\
\hline
Date & 27. Juli 2017\\
Date & 24. August 2017\\
\hline
\caption{Use Case 2.2 Mieten anzeigen}
\end{longtable}}
@ -393,39 +390,21 @@ Haben die Länder und Städte Listen bereits komplett zu erstellen. \\ \hline
\end{landscape}
\newpage
\section{Zusammenarbeit}
\section{Umsetzung}
\subsection{Lösungsvarianten}
\newpage
\section{Coding}
\subsection{Zusammenarbeit}
\subsection{RM}
\subsection{ERM}
\subsection{ERM/SQL}
\begin{landscape}
\begin{figure}
\centering
\includegraphics[height=0.8\textheight]{diagrammes/rm.png}
\caption{RM Diagramm\label{fig:rm}}
\end{figure}
\end{landscape}
\begin{landscape}
\begin{figure}
\centering
\includegraphics[scale=0.38]{diagrammes/erm.png}
\caption{ERM Diagramm\label{fig:erm}}
\end{figure}
\end{landscape}
\subsubsection{Entitäten}
In dieser Sektion werden die Entitäten der Datenbank kurz beschrieben
damit das ERM besser verstanden werden kann. Dabei wird zuerst der
Name in der Datenbank aufgelistet gefolgt von der deutschen
Übersetzung.
Nachfolgend werden die Entitäten der Datenbank kurz beschrieben damit
das ERM Diagramm (\ref{fig:erm}) besser verstanden werden kann. Dabei
wird zuerst der Name der Tabelle in der Datenbank aufgelistet gefolgt von der
deutschen Übersetzung.
\paragraph{persons / (Personen)}
Sind die Repräsentation einer realen Person in der Datenbank. Hier
@ -458,8 +437,7 @@ hat.
\paragraph{member\_status / (Mitgliedsstatus)}
Die Mitgliedsstatus Tabelle enthält die möglichen Stati die ein
Mitglied haben kann. Dabei werden hier auch Mitglieder Stati wie
Mitarbeiter oder Admin erfasst da es für die Datenbank keinen
Unterschied macht welche Funktion ein Mitglied hat.
Mitarbeiter oder Admin erfasst.
\paragraph{subscribtions / (Abonnemente)}
Beschreiben die Abonnementsarten welche von den Mitgliedern gekauft
@ -483,8 +461,10 @@ Zusätzlich wird erfasst an welchem Tag der Check geplant ist und Ob
der Check bestanden wurde.
\paragraph{subscription\_orders / (Abonnementsbestellungen)}
Enthält die Abokäufe die ein Mitglied macht welcher Standort dabei
gewählt wurde sowie an welchem Tag der Kauf getätigt wurde.
Enthält die Abokäufe die ein Mitglied macht und welcher Standort dabei
gewählt wurde Sowie an welchem Tag der Kauf getätigt wurde. Das
Kaufdatum kann in der finalen Version dazu verwendet werden zu
berechnen ob das aktuelle Abo noch gültig ist oder nicht.
\paragraph{trial\_period / (Probezeit)}
Beinhaltet die Zeit wie lange die Probezeit ist damit diese nicht als
@ -499,35 +479,51 @@ gemietet wird und mit einem Datumsfeld wird angegeben an welchem Tag
der Platz reserviert wurde.
\paragraph{rent\_prices / (Mietpreise)}
Diese weisst jedem Standort einen Preis zu. Dies ermöglicht es die
Diese Tabelle weist jedem Standort einen Preis zu. Dies ermöglicht es die
Preise für jeden Standort flexibel zu halten und den regionalen
Interessengruppen anzupassen.
\begin{landscape}
\begin{figure}
\centering
\includegraphics[height=0.8\textheight]{diagrammes/rm.png}
\caption{RM Diagramm\label{fig:rm}}
\end{figure}
\end{landscape}
\begin{landscape}
\begin{figure}
\centering
\includegraphics[scale=0.38]{diagrammes/erm.png}
\caption{ERM Diagramm\label{fig:erm}}
\end{figure}
\end{landscape}
\subsection{C\#}
In dieser Sektion wird das Verarbeiten einer kleiner Funktion
In dieser Sektion wird das Erstellen einer kleiner Anwendung
beschrieben, in der wir gewisse Segmente unserer Datenbank abrufen und
bearbeiten können. Damit zeigen wir die Funktionalität und
Verarbeitung unsere Datenbank auf.
\subsubsection{Connection}
\subsubsection{Verbindung zur Datenbank}
Um die Verbindung ( connectionstring ) abrufen zu können, erstellen
wir eine ``Helper'' Klasse. Darin haben wir den Verbindungspfad
definiert der beim Verbindungsaufbau in App.config aufgerufen wird.
Den definitiven (connectionstring) haben wir in ``App.config'' bestimmt.
\subsubsection{grafische Oberfläche}
\subsubsection{GUI}
Das GUI wurde beim aufbauen des Projektes als ``Windows Form
Application'' gestartet und ``Dashboard'' genannt. Nach dem Anpassen der
Grösse, haben wir eine ``ListBox'' eingesetzt und sie umbenannt. Sie
dient dazu, zukünftig gesuchte Daten darin aufzuführen. Um die
gesuchten Daten einzugeben,haben wir danach eine ``TextBox'' eingefügt.
Sobald die gesuchten Daten in der ``TextBox'' eingegeben wurden, werden
die Informationen aufgerufen und in der ``ListBox'' aufgezeigt.
Die Grafische Oberfläche (GUI) wurde beim Aufbauen des Projektes als
``Windows Form Application'' gestartet und ``Dashboard'' genannt. Nach
dem Anpassen der Grösse, haben wir eine ``ListBox'' eingesetzt und sie
umbenannt. Sie dient dazu, zukünftig gesuchte Daten darin aufzuführen.
Um die gesuchten Daten eingebe zu können, haben wir danach eine
``TextBox'' eingefügt. Sobald die gesuchten Daten in der ``TextBox''
eingegeben wurden, werden die Informationen aufgerufen und in der
``ListBox'' aufgezeigt.
\subsubsection{Definition der Klassen}
@ -535,18 +531,19 @@ Hier werden alle eingesetzten Klassen der Applikation vorgestellt
und definiert.
Zu jeder Klasse gibt es eine passende Grafik welche ihre Methoden und
Attribute beschreibt. Nachfolgend habe wir eine Beispiel Grafik eingefügt
welche die Symbole und den Aufbau beschreibt.
Attribute beschreibt. Nachfolgend habe wir eine Beispiel Grafik
(\ref{fig:class_example}) eingefügt welche die Symbole und den Aufbau
beschreibt.
\begin{figure}[H]
\centering
\includegraphics[scale=0.7]{diagrammes/example.png}
\caption{Beispiel Klassen}
\caption{Beispiel Klassen\label{fig:class_example}}
\end{figure}
\paragraph{Programm}
Dient grundsätzlich als Eintrittspunkt der Applikation und hat sonst
keine grosse Funktion.
Beinhaltet die Main Klasse von wo aus alle anderen Klassen und Funktionen
aufgerufen werden.
\paragraph{Helper}
Helper.cs dient dem Zweck, den Pfad der Datenbank nicht in jeder
@ -556,7 +553,6 @@ zur Datenbank muss dadurch nur ein einziges Mal in App.config
definiert werden und kann dann durch die Helper.cs Klasse simpel
aufgerufen werden.
\paragraph{LoginForm}
Diese Klasse wurde für das Registrieren und Einloggen des Benutzers
mit einem dazugehörigen GUI von uns erstellt. Dadurch können sich
@ -565,10 +561,8 @@ dem ``Register-Button'' Registrieren und durch ein zweites eingeben der
Daten und betätigen des ``Login-Button'' auch gleich einloggen. Nach dem
Login wird auch gleich eine Nachricht der Applikation dem Benutzer mit
dem Text ``It worked'' aufgezeigt, um den erfolgreichen Login zu melden.
Dadurch möchten wir die Funktion des einfüllen und Lesen der Daten aus
der Datenbank aufzeigen. Den Verbindungsaufbau in die Datenbank mit
allen nötigen Funktion(Schreiben / Lesen) haben wir in die Klasse
``DataAccess'' ausgelagert.
Dadurch möchten wir die Funktion des Einfüllens und Lesen der Daten aus
der Datenbank aufzeigen.
\begin{figure}[H]
\centering
@ -581,12 +575,8 @@ Auf dem Dashboard haben wir unseren Kern was Informationen herauslesen
und wieder Eingeben belangt, erstellt. In dieser Klasse werden die aus
der Datenbank herausgelesenen Daten der ``locations'' und
``rents'' Tabellen im GUI aufgezeigt und /oder eingefügt. Damit
möchten wir einen Teil unserer Applikation und Datenbank abbilden, mit
der Benutzer Standort heraussuchen können, neue Standorte hinzugefügt
werden können und den Mietbeginn/ das Zahlungsdatum eingegeben werden
kann. Den Verbindungsaufbau in die Datenbank mit allen nötigen
Funktion(Schreiben / Lesen) haben wir in die Klasse ``DataAccess''
ausgelagert und vom GUI aus verankert.
möchten wir einen Teil der finalen Applikation und Datenbank abbilden mit
dem, die Benutzer Standorte heraussuchen und den Mietbeginn eingegeben können.
\begin{figure}[H]
\centering
@ -596,10 +586,10 @@ ausgelagert und vom GUI aus verankert.
\paragraph{DataAccess}
Mit der DataAccess Klasse konnten wir nahezu alle Datenbank relevanten
Funktionen, die sonst in unseren GUI ausgeführt werden, in einer
Funktionen, die in unserem GUI ausgeführt werden, in einer
einzigen Klasse abbilden. Darin haben wir den Aufruf der
Datenbanktabellen mit den dazu benötigten SQl - Befehlen ausgeführt.
Dadurch wird SQl- Code nur in dieser Klasse aufgerufen und verwendet.
Datenbanktabellen mit den dazu benötigten SQL - Befehlen ausgeführt.
Dadurch wird SQL- Code nur in dieser Klasse aufgerufen und verwendet.
\begin{figure}[H]
\centering
@ -609,12 +599,10 @@ Dadurch wird SQl- Code nur in dieser Klasse aufgerufen und verwendet.
\paragraph{GetRents}
Um Daten herauszulesen oder zur Datenbank zu schicken, haben wir in
C\# ein Modell der ``rents'' Tabelle erstellt die sie abbildet. Damit
nehmen wir jede Spalte der Tabelle entgegen. Danach werden mit der
``RentInfo'' Methode nur diejenigen Spalten der Tabelle für unser GUI
abgerufen, die wir auch wirklich benötigen. Jedoch wird die ``RentInfo''
Methode noch nicht benötigt, da wir Daten nur einfügen und nicht
herauslesen möchten.
C\# eine Klasse die der ``rents'' Tabelle in der DB entspricht
erstellt. Damit nehmen wir jede Spalte der Tabelle entgegen. Danach
werden mit der ``RentInfo'' Methode nur diejenigen Spalten der Tabelle
für unser GUI abgerufen, die wir auch wirklich benötigen.
\begin{figure}[H]
\centering
@ -658,15 +646,18 @@ GUI abgerufen, die wir auch wirklich benötigen.
\end{itemize}
\subsubsection{Referenzen und Addons/ Packages}
Mit Dapper \cite{dbcs6} entschieden wir uns, nachdem wir ein wenig
Für Dapper \cite{dbcs6} entschieden haben wir uns, nachdem wir ein wenig
nachgeforscht haben und wir auf Stack Overflow fündig wurden. Da auf
dieser Webseite Dapper genutzt wird und wir bisher immer gute
Erfahrungen mit Stack Overflow hatten, schien die Entscheidung
einfach.
\subsubsection{Referenzen}
-using System.Configuration;
-using Dapper;
\begin{itemize}
\item using System.Configuration;
\item using Dapper;
\end{itemize}
\newpage
\begin{landscape}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@ -4,6 +4,6 @@ class GetLocations {
+ string streetname
+ int location_capacity
+ string location_name
+ string LocatinInfo
+ string LocatinInfo()
}
@enduml

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@ -4,7 +4,7 @@ class GetMembers {
+ string email_address
+ string password
+ int member_status_id
+ string MemberInfo
+ string MemberID
+ string MemberInfo()
+ string MemberID()
}
@enduml

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -9,6 +9,6 @@ class GetRents {
+ string streetname
+ int location_capacity
+ string location_name
+ string RentInfo
+ string RentInfo()
}
@enduml

View File

@ -4,7 +4,7 @@
\usepackage[table,xcdraw]{xcolor}
\hypersetup{
colorlinks=true,
linkcolor=black,
linkcolor=blue,
urlcolor=blue,
}
\urlstyle{same}