extend the documentation
This commit is contained in:
parent
a6ba0d4381
commit
861de5cb37
|
@ -158,3 +158,12 @@
|
||||||
year = {2018},
|
year = {2018},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@misc{userstory,
|
||||||
|
month = {{02}},
|
||||||
|
note = {{\url{https://de.wikipedia.org/wiki/User-Story}}},
|
||||||
|
Urldate = {2018-02-21},
|
||||||
|
author = {Wikipedia},
|
||||||
|
title = {{User-Story {--} Wikipedia}},
|
||||||
|
year = {2018},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
309
docs/doku.org
309
docs/doku.org
|
@ -1,4 +1,4 @@
|
||||||
#+TITLE: Casestudy Webtechnologien
|
#+TITLE: Case Study Webtechnologien
|
||||||
#+SETUPFILE: ~/git_repos/notes/settings/html_theme/setup/theme-readtheorg.setup
|
#+SETUPFILE: ~/git_repos/notes/settings/html_theme/setup/theme-readtheorg.setup
|
||||||
#+AUTHOR: Ivan Hörler Andreas Zweili
|
#+AUTHOR: Ivan Hörler Andreas Zweili
|
||||||
#+LaTeX_CLASS: article
|
#+LaTeX_CLASS: article
|
||||||
|
@ -17,7 +17,7 @@ diesem Dokument.
|
||||||
** Titel der Dokumentation
|
** Titel der Dokumentation
|
||||||
|
|
||||||
Die Gruppe hat verschiedene Varianten gelistet und sich für die
|
Die Gruppe hat verschiedene Varianten gelistet und sich für die
|
||||||
lustigste entschieden.
|
Lustigste entschieden.
|
||||||
|
|
||||||
- Marktplatz
|
- Marktplatz
|
||||||
- Shopshop
|
- Shopshop
|
||||||
|
@ -29,8 +29,9 @@ entschieden diesen Titel zu verwenden. Die Ursprünge des Instruments
|
||||||
liegen 2000 Jahre, sagen die Forscher – 40.000 Jahre, sagen die
|
liegen 2000 Jahre, sagen die Forscher – 40.000 Jahre, sagen die
|
||||||
Aborigines zurück.
|
Aborigines zurück.
|
||||||
|
|
||||||
…Als das Traumzeitvolk die Erde verließ, hinterließ es den Menschen ein
|
…Als das Traumzeitvolk die Erde verliess, hinterliess es den Menschen
|
||||||
Geschenk: Ein Horn, das ein Klangfeld zwischen ihrer Welt und unserer erzeugt…\footcite{didgeridoo}
|
ein Geschenk: Ein Horn, das ein Klangfeld zwischen ihrer Welt und
|
||||||
|
unserer erzeugt…\footcite{didgeridoo}
|
||||||
|
|
||||||
** Beschreibung
|
** Beschreibung
|
||||||
|
|
||||||
|
@ -45,22 +46,22 @@ Dokumentation zu unserer Case Study Webtechnologie 3.
|
||||||
** Aufbau
|
** Aufbau
|
||||||
|
|
||||||
Alle Inhalte sind chronologisch sortiert, vom ältesten zum jüngsten
|
Alle Inhalte sind chronologisch sortiert, vom ältesten zum jüngsten
|
||||||
Ereigniss, und nach Kapiteln getrennt.
|
Ereignis, und nach Kapiteln getrennt.
|
||||||
|
|
||||||
** Lizenz
|
** Lizenz
|
||||||
|
|
||||||
Dieses Dokument sowie der dazugehörige Code wurde von Ivan Hörler und
|
Dieses Dokument sowie der dazugehörige Code wurde von Ivan Hörler und
|
||||||
Andreas Zweili im Rahmen einer Arbeit an der IBZ Schule erstellt und
|
Andreas Zweili im Rahmen einer Arbeit an der IBZ Schule erstellt und
|
||||||
steht unter einer GPLv3\footcite{gplv3} Lizenz. Dadurch darf die
|
steht unter einer GPLv3\footcite{gplv3} Lizenz. Dadurch darf die
|
||||||
Arbeit kopiert und weiterverarbeitet unter Einhaltung der Regeln der
|
Arbeit unter Einhaltung der Regeln der GPLv3 kopiert und
|
||||||
GPLv3.
|
weiterverarbeitet werden.
|
||||||
|
|
||||||
* TODO Projektanalyse und Planung
|
* TODO Projektanalyse und Planung
|
||||||
** Projektziele
|
** Projektziele
|
||||||
|
|
||||||
Der Student erarbeitet in einer Zweiergruppe einen selbstentwickelten
|
Der Student erarbeitet in einer Zweiergruppe einen selbst entwickelten
|
||||||
Web-Shop. Die einzusezenden Technologien sollen Opensource sein. Die
|
Web-Shop. Die einzusetzenden Technologien sollen Open-Source sein. Die
|
||||||
zur verfügungstehende Zeit ist pro Student mit 80h zu veranschlagen.
|
zur Verfügung stehende Zeit ist pro Student mit 80h zu veranschlagen.
|
||||||
Am Ende dieser Zeitspanne soll ein funktionaler Web-Shop mit minimalem
|
Am Ende dieser Zeitspanne soll ein funktionaler Web-Shop mit minimalem
|
||||||
graphischen User Interface entstehen, die dazugehörige Dokumentation
|
graphischen User Interface entstehen, die dazugehörige Dokumentation
|
||||||
umfasst alle Aspekte um die gewählte Lösung nachzuvollziehen.
|
umfasst alle Aspekte um die gewählte Lösung nachzuvollziehen.
|
||||||
|
@ -91,18 +92,18 @@ nach Prioritäten gewichtet.
|
||||||
|
|
||||||
** Methoden
|
** Methoden
|
||||||
|
|
||||||
Die Methodik die die Gruppe wählt ist Aufgrund der nur zwei Personen
|
Die Methodik die, die Gruppe wählt ist Aufgrund der nur zwei Personen
|
||||||
im Team beschränkt. Da jedoch Fehler und Rückschläge erwartet werden
|
im Team beschränkt. Da jedoch Fehler und Rückschläge erwartet werden
|
||||||
ist eine itterative Methodik unabdingbar. Daher wandte die Gruppe eine
|
ist eine iterative Methodik unabdingbar. Daher wandte die Gruppe eine
|
||||||
angepasste version von Scrum an. In dieser wird jeweils während
|
angepasste Version von Scrum an. In dieser wird jeweils während
|
||||||
Sitzungen die Position des Product Owners und des Scrum Masters
|
Sitzungen die Position des Product Owners und des Scrum Masters
|
||||||
eingenommen und die Backlog-Tasks dementsprechend erstellt resp.
|
eingenommen und die Backlog-Tasks dementsprechend erstellt resp.
|
||||||
verteilt. Während der Woche arbeiten beide Team-Mitglieder an der
|
verteilt. Während der Woche arbeiten beide Team-Mitglieder an der
|
||||||
Arbeit als Team-Kolegen.
|
Arbeit als Team-Kollegen
|
||||||
|
|
||||||
** Vorkenntnisse
|
** Vorkenntnisse
|
||||||
|
|
||||||
Die benötigten Vorkenntnisse wurden in den vorangeganenen Semestern
|
Die benötigten Vorkenntnisse wurden in den vorangegangenen Semestern
|
||||||
erarbeitet und sind in der Basis gefestigt. Diese Arbeit wird
|
erarbeitet und sind in der Basis gefestigt. Diese Arbeit wird
|
||||||
vorwiegend weiterführende Elemente wie Frameworks neu einbringen deren
|
vorwiegend weiterführende Elemente wie Frameworks neu einbringen deren
|
||||||
Verhalten letztendlich nicht abgeschätzt werden kann.
|
Verhalten letztendlich nicht abgeschätzt werden kann.
|
||||||
|
@ -122,8 +123,8 @@ Die SWOT-Analyse ist eine Methode, die Stärken, Schwächen, Chancen und
|
||||||
Gefahren zu erkennen, indem eine 4-Felder-Matrix ausgefüllt wird.
|
Gefahren zu erkennen, indem eine 4-Felder-Matrix ausgefüllt wird.
|
||||||
|
|
||||||
Wichtig vor dem Ausfüllen der SWOT-Analyse ist es, ein klares Ziel zu
|
Wichtig vor dem Ausfüllen der SWOT-Analyse ist es, ein klares Ziel zu
|
||||||
haben. Die ausegfüllte SWOT-Analyse für dieses Projekt ist in der
|
haben. Die ausgefüllte SWOT-Analyse für dieses Projekt ist in der
|
||||||
Tabelle: ([[tab:swot]]) zu sehen.
|
Tabelle:([[tab:swot]]) zu sehen.
|
||||||
|
|
||||||
#+CAPTION: SWOT-Analyse
|
#+CAPTION: SWOT-Analyse
|
||||||
#+NAME: tab:swot
|
#+NAME: tab:swot
|
||||||
|
@ -177,8 +178,8 @@ Tabelle: ([[tab:swot]]) zu sehen.
|
||||||
nodes=leftcol
|
nodes=leftcol
|
||||||
},
|
},
|
||||||
inner sep=0pt]{
|
inner sep=0pt]{
|
||||||
& |[fill=staerken]| {Stärken\\ \footnotesize (Unternehmens Anaylse)\par}
|
& |[fill=staerken]| {Stärken\\ \footnotesize (Unternehmens Analyse)\par}
|
||||||
& |[fill=schwaechen]| {Schwächen\\ \footnotesize (Unternehmens Anaylse)\par} \\
|
& |[fill=schwaechen]| {Schwächen\\ \footnotesize (Unternehmens Analyse)\par} \\
|
||||||
| [fill=chancen] | {Chancen\\ \footnotesize (Externe Analyse)\par} |
|
| [fill=chancen] | {Chancen\\ \footnotesize (Externe Analyse)\par} |
|
||||||
& |[bigbackgroundfont=S]| \bigfont{S}
|
& |[bigbackgroundfont=S]| \bigfont{S}
|
||||||
& |[bigbackgroundfont=W]| \bigfont{W} \\
|
& |[bigbackgroundfont=W]| \bigfont{W} \\
|
||||||
|
@ -192,8 +193,8 @@ Tabelle: ([[tab:swot]]) zu sehen.
|
||||||
] at (SWOT-2-2) { % Interne Stärken/Externe Chancen feld:
|
] at (SWOT-2-2) { % Interne Stärken/Externe Chancen feld:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Know-How in Webtechnologien.
|
\item Know-How in Webtechnologien.
|
||||||
\item Quelloffene Software ist leichter zu unterhalten.
|
\item Quell offene Software ist leichter zu unterhalten.
|
||||||
\item durch verwendung des Frameworks kann die Entwicklungszeit
|
\item durch Verwendung des Frameworks kann die Entwicklungszeit
|
||||||
stark reduziert werden.
|
stark reduziert werden.
|
||||||
\item Wir als Programmierer haben ein gutes Know-How
|
\item Wir als Programmierer haben ein gutes Know-How
|
||||||
im Bereich Datenbanken.
|
im Bereich Datenbanken.
|
||||||
|
@ -207,8 +208,8 @@ Tabelle: ([[tab:swot]]) zu sehen.
|
||||||
\item Das Framework ist nicht vollkommen. Teile davon müssten
|
\item Das Framework ist nicht vollkommen. Teile davon müssten
|
||||||
eventuell selber konzipiert/erarbeitet werden.
|
eventuell selber konzipiert/erarbeitet werden.
|
||||||
Welche Teile das sind ist noch nicht ersichtlich.
|
Welche Teile das sind ist noch nicht ersichtlich.
|
||||||
Durch die Quelloffene Lizenz kann dies dem Projekt jedoch
|
Durch die Quell offene Lizenz kann dies dem Projekt jedoch
|
||||||
einen mehrwert geben, in dem diese Teile wiederverwendet
|
einen Mehrwert geben, in dem diese Teile wiederverwendet
|
||||||
werden können.
|
werden können.
|
||||||
\item Der Kunde vertraut uns, und die Beziehung ist gut.
|
\item Der Kunde vertraut uns, und die Beziehung ist gut.
|
||||||
Diese Ausgangslage mag helfen interne Schwächen durch
|
Diese Ausgangslage mag helfen interne Schwächen durch
|
||||||
|
@ -220,8 +221,8 @@ Tabelle: ([[tab:swot]]) zu sehen.
|
||||||
anchor=center
|
anchor=center
|
||||||
] at (SWOT-3-2) { % Interne Stärken/ Externe Risiken feld:
|
] at (SWOT-3-2) { % Interne Stärken/ Externe Risiken feld:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Quelloffene Software kann unkontrolliert kopiert werden.
|
\item Quell offene Software kann unkontrolliert kopiert werden.
|
||||||
\item Die implementation von Währungsänderungen ist
|
\item Die Implementation von Währungsänderungen ist
|
||||||
nicht trivial. Der Zeitpunkt zu dem die Kosten
|
nicht trivial. Der Zeitpunkt zu dem die Kosten
|
||||||
eines Produktes sich ändert muss gut durchdacht werden.
|
eines Produktes sich ändert muss gut durchdacht werden.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
@ -249,11 +250,11 @@ Erwartungshaltungen und Einflüsse auf das Projekt durch interne und
|
||||||
externe soziale Umwelten zu betrachten und zu bewerten. Auf Grundlage
|
externe soziale Umwelten zu betrachten und zu bewerten. Auf Grundlage
|
||||||
der Analyseergebnisse werden erforderliche Massnahmen zur Gestaltung
|
der Analyseergebnisse werden erforderliche Massnahmen zur Gestaltung
|
||||||
der Umweltbeziehungen abgeleitet. Die Gestaltung der
|
der Umweltbeziehungen abgeleitet. Die Gestaltung der
|
||||||
Projektumweltbeziehungen ist eine Projektmanagementaufgabe. In dieser
|
Projektumweltbeziehungen ist eine Projektmanagementaufgabe. In der
|
||||||
Tabelle: ([[tab:umweltanalyse]]) wurden die Anforderungen und Wünsche
|
Tabelle:([[tab:umweltanalyse]]) wurden die Anforderungen und Wünsche
|
||||||
mit Einschätzung der Wahrscheinlichkeit der Einflussnahme aufgenommen.
|
mit Einschätzung der Wahrscheinlichkeit der Einflussnahme aufgenommen.
|
||||||
Zusätzlich ist die Beziehung der Stakeholder zum Projekt noch in der
|
Zusätzlich ist die Beziehung der Stakeholder zum Projekt noch in der
|
||||||
Abbildung: ([[fig:umweltgrafik]]) grafisch dargestellt.
|
Abbildung:([[fig:umweltgrafik]]) grafisch dargestellt.
|
||||||
|
|
||||||
#+LATEX:\newpage
|
#+LATEX:\newpage
|
||||||
#+LATEX:\begin{landscape}
|
#+LATEX:\begin{landscape}
|
||||||
|
@ -262,7 +263,7 @@ Abbildung: ([[fig:umweltgrafik]]) grafisch dargestellt.
|
||||||
#+NAME: tab:umweltanalyse
|
#+NAME: tab:umweltanalyse
|
||||||
|-------+----------------------+----------------------+-----------------------------------------------+---------------------------------------------|
|
|-------+----------------------+----------------------+-----------------------------------------------+---------------------------------------------|
|
||||||
| <5> | <20> | <20> | | |
|
| <5> | <20> | <20> | | |
|
||||||
| *Nr*.\cellcolor[HTML]{C0C0C0} | *Stakeholder*\cellcolor[HTML]{C0C0C0} | *Einfluss*\cellcolor[HTML]{C0C0C0} | *Anforderung/Wünsche*\cellcolor[HTML]{C0C0C0} | *Warscheinlichkeit*\cellcolor[HTML]{C0C0C0} |
|
| *Nr*.\cellcolor[HTML]{C0C0C0} | *Stakeholder*\cellcolor[HTML]{C0C0C0} | *Einfluss*\cellcolor[HTML]{C0C0C0} | *Anforderung/Wünsche*\cellcolor[HTML]{C0C0C0} | *Wahrscheinlichkeit*\cellcolor[HTML]{C0C0C0} |
|
||||||
|-------+----------------------+----------------------+-----------------------------------------------+---------------------------------------------|
|
|-------+----------------------+----------------------+-----------------------------------------------+---------------------------------------------|
|
||||||
| 1. | Auftraggeber | hoch | - Innovatives Produkt auf dem Markt anbieten. | hoch |
|
| 1. | Auftraggeber | hoch | - Innovatives Produkt auf dem Markt anbieten. | hoch |
|
||||||
| | | | - Einhaltung von Terminen und Qualität. | hoch |
|
| | | | - Einhaltung von Terminen und Qualität. | hoch |
|
||||||
|
@ -294,7 +295,7 @@ Abbildung: ([[fig:umweltgrafik]]) grafisch dargestellt.
|
||||||
| <10> | <30> | <30> | | |
|
| <10> | <30> | <30> | | |
|
||||||
| *Nr.*\cellcolor[HTML]{C0C0C0} | *Beschreibung*\cellcolor[HTML]{C0C0C0} | *Massnahmen*\cellcolor[HTML]{C0C0C0} | *W^1*\cellcolor[HTML]{C0C0C0} | *A^2*\cellcolor[HTML]{C0C0C0} |
|
| *Nr.*\cellcolor[HTML]{C0C0C0} | *Beschreibung*\cellcolor[HTML]{C0C0C0} | *Massnahmen*\cellcolor[HTML]{C0C0C0} | *W^1*\cellcolor[HTML]{C0C0C0} | *A^2*\cellcolor[HTML]{C0C0C0} |
|
||||||
|------------+--------------------------------+--------------------------------+-------------------------------+-------------------------------|
|
|------------+--------------------------------+--------------------------------+-------------------------------+-------------------------------|
|
||||||
| 1. | Die Datenbank ist schlecht modeliert. | Das ERM nach dessen Erstellung gründlich auf Fehler prüfen, falls nötig extern prüfen lassen. | 2 | 3 |
|
| 1. | Die Datenbank ist schlecht modelliert | Das ERM nach dessen Erstellung gründlich auf Fehler prüfen, falls nötig extern prüfen lassen. | 2 | 3 |
|
||||||
|------------+--------------------------------+--------------------------------+-------------------------------+-------------------------------|
|
|------------+--------------------------------+--------------------------------+-------------------------------+-------------------------------|
|
||||||
| 2. | Viel Arbeit an der Arbeitsstelle, dabei bleibt weniger Zeit für die Casestudy. | Die Zeit die einem zur Verfügung steht nutzen und fixe Tage definieren. Projektplanung machen. | 1 | 2 |
|
| 2. | Viel Arbeit an der Arbeitsstelle, dabei bleibt weniger Zeit für die Casestudy. | Die Zeit die einem zur Verfügung steht nutzen und fixe Tage definieren. Projektplanung machen. | 1 | 2 |
|
||||||
|------------+--------------------------------+--------------------------------+-------------------------------+-------------------------------|
|
|------------+--------------------------------+--------------------------------+-------------------------------+-------------------------------|
|
||||||
|
@ -302,7 +303,7 @@ Abbildung: ([[fig:umweltgrafik]]) grafisch dargestellt.
|
||||||
|------------+--------------------------------+--------------------------------+-------------------------------+-------------------------------|
|
|------------+--------------------------------+--------------------------------+-------------------------------+-------------------------------|
|
||||||
| 4. | Kommunikation innerhalb des Teams. | Klare Arbeitsaufteilung innerhalb des Teams und alle 2 Wochen Besprechungen über offene Aufgaben oder Problembehandlungen | 1 | 1 |
|
| 4. | Kommunikation innerhalb des Teams. | Klare Arbeitsaufteilung innerhalb des Teams und alle 2 Wochen Besprechungen über offene Aufgaben oder Problembehandlungen | 1 | 1 |
|
||||||
|------------+--------------------------------+--------------------------------+-------------------------------+-------------------------------|
|
|------------+--------------------------------+--------------------------------+-------------------------------+-------------------------------|
|
||||||
| 5. | Die Programmierung des Shops benötigt zuviel Zeit | Beider Projektplanung genau definieren was die GUI Applikation beinhalten muss. Ziele definieren, abgrenzungen treffen. | 3 | 1 |
|
| 5. | Die Programmierung des Shops benötigt zu viel Zeit | Bei der Projektplanung genau definieren was die GUI Applikation beinhalten muss. Ziele definieren, Abgrenzungen treffen. | 3 | 1 |
|
||||||
|------------+--------------------------------+--------------------------------+-------------------------------+-------------------------------|
|
|------------+--------------------------------+--------------------------------+-------------------------------+-------------------------------|
|
||||||
|
|
||||||
*** Risikobewertung
|
*** Risikobewertung
|
||||||
|
@ -310,18 +311,18 @@ Abbildung: ([[fig:umweltgrafik]]) grafisch dargestellt.
|
||||||
#+CAPTION: Risikobewertung Wahrscheinlichkeit
|
#+CAPTION: Risikobewertung Wahrscheinlichkeit
|
||||||
#+ATTR_LATEX: :align l|l :placement [H]
|
#+ATTR_LATEX: :align l|l :placement [H]
|
||||||
#+NAME: tab:wahrscheinlichkeit
|
#+NAME: tab:wahrscheinlichkeit
|
||||||
| *Bewertung* | *Beschreibung: Warscheinlichkeit (W)* |
|
| *Bewertung* | *Beschreibung: Wahrscheinlichkeit (W)* |
|
||||||
|-------------+---------------------------------------|
|
|-------------+---------------------------------------|
|
||||||
| 1 = gering | Unwarscheinlich, <20% |
|
| 1 = gering | Unwahrscheinlich, <20% |
|
||||||
| 2 = mittel | Mässig warscheinlich, 20-50% |
|
| 2 = mittel | Mässig wahrscheinlich, 20-50% |
|
||||||
| 3 = hoch | Hohe warscheinlichkeit > 50% |
|
| 3 = hoch | Hohe Wahrscheinlichkeit > 50% |
|
||||||
|
|
||||||
#+CAPTION: Risikobewertung Auswirkung
|
#+CAPTION: Risikobewertung Auswirkung
|
||||||
#+ATTR_LATEX: :align l|l :placement [H]
|
#+ATTR_LATEX: :align l|l :placement [H]
|
||||||
#+NAME: tab:auswirkung
|
#+NAME: tab:auswirkung
|
||||||
| *Bewertung* | *Beschreibung: Auswirkung (A)* |
|
| *Bewertung* | *Beschreibung: Auswirkung (A)* |
|
||||||
|-------------+-------------------------------------------------|
|
|-------------+-------------------------------------------------|
|
||||||
| 1 = gering | geringe auswirkungen auf das Gesammtergebniss |
|
| 1 = gering | Geringe Auswirkungen auf das Gesamtergebnis |
|
||||||
| 2 = mittel | Arbeitsumstellung oder grösserer Arbeitsaufwand |
|
| 2 = mittel | Arbeitsumstellung oder grösserer Arbeitsaufwand |
|
||||||
| 3 = hoch | Projekt erfüllt nicht alle Anforderungen |
|
| 3 = hoch | Projekt erfüllt nicht alle Anforderungen |
|
||||||
|
|
||||||
|
@ -335,10 +336,10 @@ Abbildung: ([[fig:umweltgrafik]]) grafisch dargestellt.
|
||||||
Am ende des Projekts die nicht lauffähigen teile ausgrenzen. :-)
|
Am ende des Projekts die nicht lauffähigen teile ausgrenzen. :-)
|
||||||
|
|
||||||
* Projektmanagement
|
* Projektmanagement
|
||||||
** Organigram
|
** Organigramm
|
||||||
|
|
||||||
#+CAPTION: Organigram
|
#+CAPTION: Organigramm
|
||||||
#+NAME: fig:Organigram
|
#+NAME: fig:Organigramm
|
||||||
#+BEGIN_EXPORT latex
|
#+BEGIN_EXPORT latex
|
||||||
\begin{tikzpicture}[
|
\begin{tikzpicture}[
|
||||||
auto,
|
auto,
|
||||||
|
@ -387,16 +388,17 @@ Punktzahl(/EP/) ergibt das Kriteriumsergebnis(/KE/).
|
||||||
|
|
||||||
*** ASP.NET und SQL Server
|
*** ASP.NET und SQL Server
|
||||||
|
|
||||||
ASP.NET und SQL Server, Tabelle:([[tab:asp-net]]), haben vorallem viele
|
ASP.NET und SQL Server, Tabelle:([[tab:asp-net]]), haben vor allem viele
|
||||||
Punkte verloren da C# nur in Teilen und SQL Server gar nicht unter
|
Punkte verloren da C# nur in Teilen und SQL Server gar nicht unter
|
||||||
einer freien Lizenz steht. Desweiteren läuft .NET Core zwar auch auf
|
einer freien Lizenz steht. Des weiteren läuft .NET Core zwar auch auf
|
||||||
Unix Systemen allerdings ist das verhältnismässig ein relativ kleiner
|
Unix Systemen allerdings ist das verhältnismässig ein relativ kleiner
|
||||||
Teil der gesamten Sprache. SQL Server läuft hingegen nur unter Windows
|
Teil der gesamten Sprache. SQL Server läuft hingegen nur unter Windows
|
||||||
und Linux. Desweiteren ist es sehr schwierig C# Applikationen ohne
|
und Linux. Des weiteren ist es sehr schwierig C# Applikationen ohne
|
||||||
Visual Studio zu entwickeln. Es geht in der Theorie, in der Praxis ist
|
Visual Studio zu entwickeln. Es geht in der Theorie, in der Praxis ist
|
||||||
es jedoch eher umständlich. Die Vorkenntnisse wurden mit 6 von Punkten
|
es jedoch eher umständlich. Die Vorkenntnisse wurden mit 6 von 10
|
||||||
bewertet da wir C# zwar im Rahmen der Ausbildung lernen. Allerdings
|
Punkten bewertet da wir C# zwar im Rahmen der Ausbildung lernen,
|
||||||
noch nicht das Gefühl haben sonderlich gut mit C# umgehen zu können.
|
allerdings noch nicht das Gefühl haben sonderlich gut mit C# umgehen
|
||||||
|
zu können.
|
||||||
|
|
||||||
#+CAPTION: Bewertung der Variante ASP.NET und SQL Server
|
#+CAPTION: Bewertung der Variante ASP.NET und SQL Server
|
||||||
#+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{4cm}|c|p{2cm}|p{2cm}|p{2cm}|
|
#+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{4cm}|c|p{2cm}|p{2cm}|p{2cm}|
|
||||||
|
@ -429,8 +431,8 @@ Punktzahl vergeben konnten. Abstriche gab es bei der Lesbarkeit des
|
||||||
Codes. Da PHP insgesamt eine ziemlich inkonsistente und ausschweifende
|
Codes. Da PHP insgesamt eine ziemlich inkonsistente und ausschweifende
|
||||||
Sprache ist. Dafür ist das Setup sehr einfach und man kann eine PHP
|
Sprache ist. Dafür ist das Setup sehr einfach und man kann eine PHP
|
||||||
basierte Applikation ohne spezielle Werkzeuge entwickeln. Da wir
|
basierte Applikation ohne spezielle Werkzeuge entwickeln. Da wir
|
||||||
jedoch bereits sehr intensiv mit PHP und MySQL in Berürung kamen haben
|
jedoch bereits sehr intensiv mit PHP und MySQL in Berührung kamen haben
|
||||||
wir beim Lernfaktor abstriche gemacht. In Zusammenhang mit einem
|
wir beim Lernfaktor Abstriche gemacht. In Zusammenhang mit einem
|
||||||
Framework hätten wir sicher auch viel dazugelernt im Vergleich zu den
|
Framework hätten wir sicher auch viel dazugelernt im Vergleich zu den
|
||||||
anderen Varianten jedoch auf jeden Fall weniger.
|
anderen Varianten jedoch auf jeden Fall weniger.
|
||||||
|
|
||||||
|
@ -456,7 +458,7 @@ anderen Varianten jedoch auf jeden Fall weniger.
|
||||||
|
|
||||||
*** Django(Python) und MariaDB
|
*** Django(Python) und MariaDB
|
||||||
|
|
||||||
Diese Variante, Tabelle:([[tab:django]]) hat am meisten Punkte erhalten.
|
Diese Variante, Tabelle:([[tab:django]]), hat am meisten Punkte erhalten.
|
||||||
Wie bei der Variante "PHP und MySQL" sind auch hier beide Komponenten
|
Wie bei der Variante "PHP und MySQL" sind auch hier beide Komponenten
|
||||||
freie Software. Im Gegensatz zu der vorherigen Variante gibt es bei
|
freie Software. Im Gegensatz zu der vorherigen Variante gibt es bei
|
||||||
diesen Komponenten nur eine mögliche Lizenz Form. Womit sie die volle
|
diesen Komponenten nur eine mögliche Lizenz Form. Womit sie die volle
|
||||||
|
@ -467,7 +469,7 @@ unter für Django(Python) unter Windows etwas komplizierter ausfällt
|
||||||
als wir gerne hätten weshalb wir hier bei der Cross Plattform
|
als wir gerne hätten weshalb wir hier bei der Cross Plattform
|
||||||
Kompatibilität und dem Setup einen Abstrich gemacht haben. Python kann
|
Kompatibilität und dem Setup einen Abstrich gemacht haben. Python kann
|
||||||
ohne spezielle Tools programmiert werden und gilt als eine der
|
ohne spezielle Tools programmiert werden und gilt als eine der
|
||||||
Sprachen mit der schönsten Syntax. Die Vorkenntnisse haben wir hier
|
Sprachen mit der leserlichsten Syntax. Die Vorkenntnisse haben wir hier
|
||||||
als eher niedrig eingestuft dafür den Lernfaktor umso höher.
|
als eher niedrig eingestuft dafür den Lernfaktor umso höher.
|
||||||
|
|
||||||
#+CAPTION: Bewertung der Variante Django und MariaDB
|
#+CAPTION: Bewertung der Variante Django und MariaDB
|
||||||
|
@ -492,7 +494,7 @@ als eher niedrig eingestuft dafür den Lernfaktor umso höher.
|
||||||
|
|
||||||
*** Ergebnis
|
*** Ergebnis
|
||||||
|
|
||||||
Aufgrund der erreichten Punktzahl, Tabelle:([[tab:result]]) bei den
|
Aufgrund der erreichten Punktzahl, Tabelle:([[tab:result]]), bei den
|
||||||
vorhergehenden Variantenbewertungen haben wir uns dafür entschieden
|
vorhergehenden Variantenbewertungen haben wir uns dafür entschieden
|
||||||
die Variante "Django(Python) und MariaDB" umzusetzen. In der Sektion
|
die Variante "Django(Python) und MariaDB" umzusetzen. In der Sektion
|
||||||
[[Werkzeuge]] beschreiben wir noch die weiteren Mittel welche beim
|
[[Werkzeuge]] beschreiben wir noch die weiteren Mittel welche beim
|
||||||
|
@ -517,22 +519,22 @@ auch weshalb wir uns dafür entschieden haben.
|
||||||
|
|
||||||
Während dem Erstellen dieser Arbeit wurde eine Vielzahl an Werkzeugen
|
Während dem Erstellen dieser Arbeit wurde eine Vielzahl an Werkzeugen
|
||||||
eingesetzt. Nachfolgend werden diese Werkzeuge kurz beschrieben sowie
|
eingesetzt. Nachfolgend werden diese Werkzeuge kurz beschrieben sowie
|
||||||
ihre Verwendung begründet. Wir haben dabei darauf geachtet soviel Open
|
ihre Verwendung begründet. Wir haben dabei darauf geachtet soviel
|
||||||
Source Software wie möglich zu verwenden. Nicht nur für den Web-Shop an
|
Open-Source Software wie möglich zu verwenden. Nicht nur für den
|
||||||
sich sondern generell für alle Tasks im Projekt.
|
Web-Shop an sich sondern generell für alle Tasks im Projekt.
|
||||||
|
|
||||||
*** Versionkontrolle
|
*** Versionskontrolle
|
||||||
|
|
||||||
Eine Versionskontrollsoftware erschien uns als notwendig um den Code
|
Eine Versionskontrollsoftware erschien uns als notwendig um den Code
|
||||||
auf einfache und zuverlässige Weise untereinander austauschen zu
|
auf einfache und zuverlässige Weise untereinander austauschen zu
|
||||||
können. Andere Lösungen wie Dropbox, etc. hätten es uns nicht erlaubt
|
können. Andere Lösungen wie Dropbox, etc. hätten es uns nicht erlaubt
|
||||||
Konflikte zu vermeinden.
|
Konflikte zu vermeiden
|
||||||
|
|
||||||
Als Software für die Versionskontrolle wurde Git \footcite{git} gewählt.
|
Als Software für die Versionskontrolle wurde Git \footcite{git} gewählt.
|
||||||
Git wurde aus diversen Gründen gewählt:
|
Git wurde aus diversen Gründen gewählt:
|
||||||
|
|
||||||
- Ist der de facto Standard bei Versionskontrollsoftware
|
- Ist der de facto Standard bei Versionskontrollsoftware
|
||||||
- Läuft auf allen gängigen Betriebsystemen
|
- Läuft auf allen gängigen Betriebssystemen
|
||||||
- Es gäbe gratis Services die man nutzen könnte (Github, Gitlab)
|
- Es gäbe gratis Services die man nutzen könnte (Github, Gitlab)
|
||||||
- Man kann offline arbeiten und Commits erstellen
|
- Man kann offline arbeiten und Commits erstellen
|
||||||
- Das Team hat bereits einen eigenen Git Server zur Verfügung
|
- Das Team hat bereits einen eigenen Git Server zur Verfügung
|
||||||
|
@ -546,7 +548,7 @@ Git wurde aus diversen Gründen gewählt:
|
||||||
|
|
||||||
Damit beide Studenten auf der gleichen Basis arbeiten haben wir uns
|
Damit beide Studenten auf der gleichen Basis arbeiten haben wir uns
|
||||||
dazu entschieden den Web-Shop in einer virtuellen Maschine zu
|
dazu entschieden den Web-Shop in einer virtuellen Maschine zu
|
||||||
entwickeln. Dies führt jedoch in der Regel zum Problem das die
|
entwickeln. Dies führt jedoch in der Regel zum Problem, dass die
|
||||||
Änderungen in der virtuellen Maschine miteinander abgesprochen und
|
Änderungen in der virtuellen Maschine miteinander abgesprochen und
|
||||||
ausgetauscht werden müssen. Um dieses Problem zu beheben haben wir uns
|
ausgetauscht werden müssen. Um dieses Problem zu beheben haben wir uns
|
||||||
dazu entschieden Vagrant\footcite{vagrant} zu verwenden.
|
dazu entschieden Vagrant\footcite{vagrant} zu verwenden.
|
||||||
|
@ -555,31 +557,30 @@ Vagrant ist freie Software unter der MIT Lizenz.
|
||||||
Vagrant erlaubt es einem den Zustand einer virtuellen Maschine in
|
Vagrant erlaubt es einem den Zustand einer virtuellen Maschine in
|
||||||
einer Text Datei zu beschreiben und diese dann gemäss der Beschreibung
|
einer Text Datei zu beschreiben und diese dann gemäss der Beschreibung
|
||||||
automatisiert aufzusetzen. Dies hat den Vorteil das die Konfiguration
|
automatisiert aufzusetzen. Dies hat den Vorteil das die Konfiguration
|
||||||
der virtuellen Maschine auch ohne weiteres mit dem restlichen Code in
|
der virtuellen Maschine auch ohne Weiteres mit dem restlichen Code in
|
||||||
der Versionskontrollsoftware gepflegt werden kann.
|
der Versionskontrollsoftware gepflegt werden kann.
|
||||||
|
|
||||||
Desweiteren hilft das automatisierte Aufsetzen das vermeiden von
|
Des weiteren hilft das automatisierte Aufsetzen, das Vermeiden von
|
||||||
menschlichen Fehlern. Somit kann davon ausgegangen werden dass, das
|
menschlichen Fehlern. Somit kann davon ausgegangen werden dass, das
|
||||||
System in der virtuellen Maschine immer den korrekten Stand zum
|
System in der virtuellen Maschine immer den korrekten Stand zum
|
||||||
entwickeln sein. Sollte dies nicht mehr der Fall sein lässt sich die
|
Entwickeln hat. Sollte dies nicht mehr der Fall sein lässt sich die
|
||||||
virtuelle Maschine mit einem maxmimal zwei Befehlen wieder in den
|
virtuelle Maschine mit einem maximal zwei Befehlen wieder in den
|
||||||
Ursprungszustand zurücksetzen.
|
Ursprungszustand zurücksetzen.
|
||||||
|
|
||||||
Als Hypervisor der virtuellen Maschine wurde
|
Als Hypervisor der virtuellen Maschine wurde
|
||||||
Virtualbox\footcite{virtualbox} eingesetzt. Virtualbox ist im Kern
|
Virtualbox\footcite{virtualbox} eingesetzt. Virtualbox ist im Kern
|
||||||
freie Software unter der GNU Public License v2. Das unter einer
|
freie Software unter der GNU Public License v2. Das unter einer
|
||||||
proprietären Lizenz erhältliche Erweiterungspacket ist für unser Setup
|
proprietären Lizenz erhältliche Erweiterungspaket ist für unser Setup
|
||||||
nicht notwendig.
|
nicht notwendig.
|
||||||
|
|
||||||
*** Hostsystem
|
*** Hostsystem
|
||||||
|
|
||||||
Als Hostsystem für unseren Web-Shop haben wir uns für die Linux
|
Als Hostsystem für unseren Web-Shop haben wir die Linux Distribution
|
||||||
Distribution Debian\footcite{debian} in der Version 9 (Stretch)
|
Debian\footcite{debian} in der Version 9 (Stretch) gewählt. Für Debian
|
||||||
entschieden. Für Debian haben wir uns vor allem aus folgenden Gründen
|
haben wir uns vor allem aus folgenden Gründen entschieden:
|
||||||
entschieden:
|
|
||||||
|
|
||||||
- Stabiles System
|
- Stabiles Betriebsystem
|
||||||
- Sehr guter Packetmanager was einem das Scripting vereinfacht.
|
- Sehr guter Paketmanager was einem das Scripting vereinfacht
|
||||||
- Gilt als sehr sicher
|
- Gilt als sehr sicher
|
||||||
- Hat sich in vorhergehenden Projekten bereits als gute Basis bewiesen
|
- Hat sich in vorhergehenden Projekten bereits als gute Basis bewiesen
|
||||||
- Enthält in der Grundkonfiguration nur freie Software (nicht freie
|
- Enthält in der Grundkonfiguration nur freie Software (nicht freie
|
||||||
|
@ -623,18 +624,18 @@ abzufangen.
|
||||||
|
|
||||||
Wir haben uns dabei für das Framework Django\footcite{django}
|
Wir haben uns dabei für das Framework Django\footcite{django}
|
||||||
entschieden. Django ist ein Python basiertest Framework. Django ist
|
entschieden. Django ist ein Python basiertest Framework. Django ist
|
||||||
freie Software unter der drei Klausen BSD Lizenz. Wir haben uns aus
|
freie Software unter der drei Klauseln BSD Lizenz. Wir haben uns aus
|
||||||
folgenden Gründen für ein Python basiertes Framework gegenüber einem
|
folgenden Gründen für ein Python basiertes Framework gegenüber einem
|
||||||
PHP basierten Framework entschieden:
|
PHP basierten Framework entschieden:
|
||||||
|
|
||||||
- Python gilt als die Sprache mit der schöneren Syntax
|
- Python gilt als die Sprache mit der schöneren Syntax.
|
||||||
- Wir wollten im Bezug auf das Programmieren etwas neues ausprobieren
|
- Wir wollten im Bezug auf das Programmieren etwas neues ausprobieren
|
||||||
was sich im Rahmen einer Case Study sehr gut machen lässt. Da man
|
was sich im Rahmen einer Case Study sehr gut machen lässt. Da man
|
||||||
ein "realistisches" Szenarium erhält und dieses in einem relativ
|
ein "realistisches" Szenarium erhält und dieses in einem relativ
|
||||||
kontrollierten Rahmen ausführen kann.
|
kontrollierten Rahmen ausführen kann.
|
||||||
- Python ist in dem von uns gewählten Hostsystem wie in den meisten
|
- Python ist in dem von uns gewählten Hostsystem wie in den meisten
|
||||||
Linux Distributionen bereits integriert.
|
Linux Distributionen bereits integriert.
|
||||||
- Desweiteren hat Django bei einer Variantenbewertung das beste
|
- Des weiteren hat Django bei einer Variantenbewertung das beste
|
||||||
Ergebnis geholt.
|
Ergebnis geholt.
|
||||||
|
|
||||||
Die verwendete Version war dabei 1.10.7-2 aus dem Debian Stretch Repository.
|
Die verwendete Version war dabei 1.10.7-2 aus dem Debian Stretch Repository.
|
||||||
|
@ -642,7 +643,7 @@ Die verwendete Version war dabei 1.10.7-2 aus dem Debian Stretch Repository.
|
||||||
*** Webserver
|
*** Webserver
|
||||||
|
|
||||||
Als Webserver verwenden wir ganz klassisch Apache\footcite{apache}.
|
Als Webserver verwenden wir ganz klassisch Apache\footcite{apache}.
|
||||||
Dies vorallem aus dem Grund das wir Apache aus diversen vorhergehenden
|
Dies vor allem aus dem Grund das wir Apache aus diversen vorhergehenden
|
||||||
Projekten bereits sehr gut kennen und sich der Webserver dort sehr gut
|
Projekten bereits sehr gut kennen und sich der Webserver dort sehr gut
|
||||||
bewährt hat. Apache wird dabei auch noch gut von Django unterstützt.
|
bewährt hat. Apache wird dabei auch noch gut von Django unterstützt.
|
||||||
Der Apache Webserver ist freie Software unter der Apache License 2.0
|
Der Apache Webserver ist freie Software unter der Apache License 2.0
|
||||||
|
@ -653,12 +654,12 @@ und gehört der gemeinnützigen Organisation "Apache Foundation".
|
||||||
Bei der Datenbank haben wir uns für MariaDB\footcite{mariadb}
|
Bei der Datenbank haben wir uns für MariaDB\footcite{mariadb}
|
||||||
entschieden. Auch hier hauptsächlich weil wir MariaDB bereits aus
|
entschieden. Auch hier hauptsächlich weil wir MariaDB bereits aus
|
||||||
vorhergehenden Projekt kennen. MariaDB ist ein Fork von MySQL welcher
|
vorhergehenden Projekt kennen. MariaDB ist ein Fork von MySQL welcher
|
||||||
gegenüber MySQL rückwärtskompatibel ist. MariaDB ist dabei jedoch viel
|
gegenüber MySQL rückwärts kompatibel ist. MariaDB ist dabei jedoch viel
|
||||||
Community näher als MySQL und wird dabei auch sehr demokratisch
|
Community näher als MySQL und wird dabei auch sehr demokratisch
|
||||||
entwickelt\footcite{mariadbgov}. MariaDB gehört dabei keiner einzelnen
|
entwickelt\footcite{mariadbgov}. MariaDB gehört dabei keiner einzelnen
|
||||||
Firma oder Person sonder der gemeinnützigen Organisation "MariaDB
|
Firma oder Person sonder der gemeinnützigen Organisation "MariaDB
|
||||||
Foundation". Was für zusätzliche Stabilität sorgen sollte. MariaDB ist
|
Foundation". Was für zusätzliche Stabilität sorgen sollte. MariaDB ist
|
||||||
freie Software unter GNU Public License v2. Desweiteren hat MariaDB bei
|
freie Software unter GNU Public License v2. Des weiteren hat MariaDB bei
|
||||||
einer Variantenbewertung das beste Ergebnis geholt.
|
einer Variantenbewertung das beste Ergebnis geholt.
|
||||||
|
|
||||||
|
|
||||||
|
@ -671,7 +672,7 @@ des Editors geht.
|
||||||
- Atom :: Ivan hat während der Case Study hauptsächlich mit
|
- Atom :: Ivan hat während der Case Study hauptsächlich mit
|
||||||
Atom\footcite{atom} gearbeitet. Atom wird von Github Inc.
|
Atom\footcite{atom} gearbeitet. Atom wird von Github Inc.
|
||||||
entwickelt und basiert auf dem Electron Framework welches
|
entwickelt und basiert auf dem Electron Framework welches
|
||||||
seinerseit auf Webtechnologien wie Node.js und Chromium
|
seinerseits auf Webtechnologien wie Node.js und Chromium
|
||||||
basiert. Atom ist freie Software unter der MIT Lizenz.
|
basiert. Atom ist freie Software unter der MIT Lizenz.
|
||||||
|
|
||||||
- GNU Emacs :: Andreas arbeitet hauptsächlich mit dem Editor GNU
|
- GNU Emacs :: Andreas arbeitet hauptsächlich mit dem Editor GNU
|
||||||
|
@ -697,13 +698,13 @@ Programmierer sehr angenehm finden. Dadurch das LaTeX auch nur aus
|
||||||
reinen Textdateien besteht kann man die Dokumente auch ohne weiteres
|
reinen Textdateien besteht kann man die Dokumente auch ohne weiteres
|
||||||
in die Versionskontrollsoftware einchecken und somit auf einfache
|
in die Versionskontrollsoftware einchecken und somit auf einfache
|
||||||
Weise zusammen daran arbeiten und die Entwicklung im Log
|
Weise zusammen daran arbeiten und die Entwicklung im Log
|
||||||
zurückverfolgen kann.
|
zurückverfolgen.
|
||||||
LaTeX ist freie Software unter der LaTeX Project Public License.
|
LaTeX ist freie Software unter der LaTeX Project Public License.
|
||||||
|
|
||||||
Die Grafiken in diesem Dokument wurden hauptächlich mit dem Vektor
|
Die Grafiken in diesem Dokument wurden hauptsächlich mit dem Vektor
|
||||||
Grafik Editor Inkscape\footcite{inkscape} erstellt. Inkscape ist freie
|
Grafik Editor Inkscape\footcite{inkscape} erstellt. Inkscape ist freie
|
||||||
Software unter der GNU Public License v3. Für das Entity Relation
|
Software unter der GNU Public License v3. Für das Entity Relation
|
||||||
Diagramm in [[Models]] haben wir jedoch Dia\footcite{dia} verwendet. Dia
|
Diagramm in [[Modells]] haben wir jedoch Dia\footcite{dia} verwendet. Dia
|
||||||
ist freie Software unter der GNU Public License v2.
|
ist freie Software unter der GNU Public License v2.
|
||||||
|
|
||||||
Die Klassen Diagramme haben wir mit der Django Erweiterung
|
Die Klassen Diagramme haben wir mit der Django Erweiterung
|
||||||
|
@ -714,8 +715,9 @@ Django-Extensions ist freie Software unter der MIT Lizenz.
|
||||||
*** User Stories
|
*** User Stories
|
||||||
|
|
||||||
User Stories sind eine in Alltagssprache geschriebenen
|
User Stories sind eine in Alltagssprache geschriebenen
|
||||||
Software-Anforderungen. Sie sind bewusst kurzgehalten und beschreiben
|
Software-Anforderungen. Sie sind bewusst kurz gehalten und beschreiben
|
||||||
die Wünsche und Ziele der Rollen welche die Software verwenden.
|
die Wünsche und Ziele der Rollen welche die Software
|
||||||
|
verwenden.\footcite{userstory}
|
||||||
|
|
||||||
**** Auftraggeber/Verwaltung
|
**** Auftraggeber/Verwaltung
|
||||||
|
|
||||||
|
@ -725,7 +727,7 @@ Als Anbieter möchte ich...
|
||||||
anschauen können.
|
anschauen können.
|
||||||
- Artikel aktiv oder versteckt schalten können damit ich Produkte auch
|
- Artikel aktiv oder versteckt schalten können damit ich Produkte auch
|
||||||
temporär aus dem Verkauf nehmen kann.
|
temporär aus dem Verkauf nehmen kann.
|
||||||
- Lagerbestände verwalten können damit ich rechzeitig nachbestellen kann.
|
- Lagerbestände verwalten können damit ich rechtzeitig nachbestellen kann.
|
||||||
- Nachbestellungen von Artikeln erfassen können damit ich weiss was
|
- Nachbestellungen von Artikeln erfassen können damit ich weiss was
|
||||||
bestellt wurde.
|
bestellt wurde.
|
||||||
- eine komplette Liste meiner Artikel einsehen können damit ich einen
|
- eine komplette Liste meiner Artikel einsehen können damit ich einen
|
||||||
|
@ -767,14 +769,14 @@ Ein Use Case sammelt alle möglichen Szenarien, die eintreten können,
|
||||||
wenn ein Akteur versucht, mit Hilfe des betrachteten Systems ein
|
wenn ein Akteur versucht, mit Hilfe des betrachteten Systems ein
|
||||||
bestimmtes Ziel zu erreichen. Dabei beschreibt er was beim Versuch der
|
bestimmtes Ziel zu erreichen. Dabei beschreibt er was beim Versuch der
|
||||||
Zielerreichung passieren kann. Je nach Ablauf kann auch ein Fehlschlag
|
Zielerreichung passieren kann. Je nach Ablauf kann auch ein Fehlschlag
|
||||||
ein Ergebnis eines Anwendungsfalls sein (e.g. falsches Pass- wort beim
|
ein Ergebnis eines Anwendungsfalls sein (e.g. falsches Passwort beim
|
||||||
Login). Dabei wird die technische Lösung nicht konkret beschrieben.
|
Login). Dabei wird die technische Lösung nicht konkret beschrieben.
|
||||||
Die Detailstufe kann dabei sehr unterschiedlich sein.\footcite{usecase}
|
Die Detailstufe kann dabei sehr unterschiedlich sein.\footcite{usecase}
|
||||||
|
|
||||||
**** Anwendungsfalldiagramm
|
**** Anwendungsfalldiagramm
|
||||||
|
|
||||||
"Ein Anwendungsfalldiagramm ... ist eine der 14 Diagrammarten der
|
"Ein Anwendungsfalldiagramm ... ist eine der 14 Diagrammarten der
|
||||||
Unified Modeling Language (UML), einer Sprache für die Modellierung
|
Unified Modelling Language (UML), einer Sprache für die Modellierung
|
||||||
der Strukturen und des Verhaltens von Software- und anderen Systemen.
|
der Strukturen und des Verhaltens von Software- und anderen Systemen.
|
||||||
Es stellt Anwendungsfälle und Akteure mit ihren jeweiligen
|
Es stellt Anwendungsfälle und Akteure mit ihren jeweiligen
|
||||||
Abhängigkeiten und Beziehungen dar."\footcite{usecasediagramm}
|
Abhängigkeiten und Beziehungen dar."\footcite{usecasediagramm}
|
||||||
|
@ -837,7 +839,7 @@ aus, die Use Cases mit den Nummern wurden dabei im Detail ausgearbeitet:
|
||||||
| | <30> |
|
| | <30> |
|
||||||
| *Identifier + Name* | 1.0 Artikel durchstöbern |
|
| *Identifier + Name* | 1.0 Artikel durchstöbern |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Description* | Durchklicken der verschiedenen Kategorieren und ansehen der Artikel Details und Bilder. |
|
| *Description* | Durch klicken der verschiedenen Kategorien und ansehen der Artikel Details und Bilder. |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Actors* | Kunden, Interessenten |
|
| *Actors* | Kunden, Interessenten |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
|
@ -852,14 +854,14 @@ aus, die Use Cases mit den Nummern wurden dabei im Detail ausgearbeitet:
|
||||||
| *Postconditions* | - |
|
| *Postconditions* | - |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Normal Flow* | 1. Website aufrufen |
|
| *Normal Flow* | 1. Website aufrufen |
|
||||||
| | 2. Kategorienen durchsehen |
|
| | 2. Kategorien durchsehen |
|
||||||
| | 3. Artikel anklicken |
|
| | 3. Artikel anklicken |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Alternative Flow* | - |
|
| *Alternative Flow* | - |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Notes* | - |
|
| *Notes* | - |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *UC History* | 1.0 Darft erstellt durch AZ |
|
| *UC History* | 1.0 Draft erstellt durch AZ |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Author* | A. Zweili & I. Hörler |
|
| *Author* | A. Zweili & I. Hörler |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
|
@ -881,7 +883,7 @@ aus, die Use Cases mit den Nummern wurden dabei im Detail ausgearbeitet:
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Actors* | Interessent |
|
| *Actors* | Interessent |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Status* | Freigebgen |
|
| *Status* | Freigegeben |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Includes* | - |
|
| *Includes* | - |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
|
@ -905,7 +907,7 @@ aus, die Use Cases mit den Nummern wurden dabei im Detail ausgearbeitet:
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Notes* | - |
|
| *Notes* | - |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *UC History* | 1.0 Darft erstellt durch AZ |
|
| *UC History* | 1.0 Draft erstellt durch AZ |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Author* | A. Zweili & I. Hörler |
|
| *Author* | A. Zweili & I. Hörler |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
|
@ -949,7 +951,7 @@ aus, die Use Cases mit den Nummern wurden dabei im Detail ausgearbeitet:
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Notes* | - |
|
| *Notes* | - |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *UC History* | 1.0 Darft erstellt durch AZ |
|
| *UC History* | 1.0 Draft erstellt durch AZ |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Author* | A. Zweili & I. Hörler |
|
| *Author* | A. Zweili & I. Hörler |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
|
@ -991,7 +993,7 @@ aus, die Use Cases mit den Nummern wurden dabei im Detail ausgearbeitet:
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Notes* | - |
|
| *Notes* | - |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *UC History* | 1.0 Darft erstellt durch AZ |
|
| *UC History* | 1.0 Draft erstellt durch AZ |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Author* | A. Zweili & I. Hörler |
|
| *Author* | A. Zweili & I. Hörler |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
|
@ -1030,7 +1032,7 @@ aus, die Use Cases mit den Nummern wurden dabei im Detail ausgearbeitet:
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Notes* | - |
|
| *Notes* | - |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *UC History* | 1.0 Darft erstellt durch AZ |
|
| *UC History* | 1.0 Draft erstellt durch AZ |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Author* | A. Zweili & I. Hörler |
|
| *Author* | A. Zweili & I. Hörler |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
|
@ -1076,7 +1078,7 @@ aus, die Use Cases mit den Nummern wurden dabei im Detail ausgearbeitet:
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Notes* | - |
|
| *Notes* | - |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *UC History* | 1.0 Darft erstellt durch AZ |
|
| *UC History* | 1.0 Draft erstellt durch AZ |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Author* | A. Zweili & I. Hörler |
|
| *Author* | A. Zweili & I. Hörler |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
|
@ -1116,7 +1118,7 @@ aus, die Use Cases mit den Nummern wurden dabei im Detail ausgearbeitet:
|
||||||
| | 6. Die Website leitet den Admin zurück zu den User Details. |
|
| | 6. Die Website leitet den Admin zurück zu den User Details. |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Alternative Flow* | 1. Der Administrator loggt sich unter https://didgeridoo.ml/admin ein. |
|
| *Alternative Flow* | 1. Der Administrator loggt sich unter https://didgeridoo.ml/admin ein. |
|
||||||
| | 2. Admin klicht auf "Users". |
|
| | 2. Admin klickt auf "Users". |
|
||||||
| | 3. Admin wählt den passenden Account aus. |
|
| | 3. Admin wählt den passenden Account aus. |
|
||||||
| | 4. Klickt unterhalb des Passwort Hashes auf "this form". |
|
| | 4. Klickt unterhalb des Passwort Hashes auf "this form". |
|
||||||
| | 5. Gibt zweimal ein invalides Passwort ein und klickt "Change password". |
|
| | 5. Gibt zweimal ein invalides Passwort ein und klickt "Change password". |
|
||||||
|
@ -1126,7 +1128,7 @@ aus, die Use Cases mit den Nummern wurden dabei im Detail ausgearbeitet:
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Notes* | - |
|
| *Notes* | - |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *UC History* | 1.0 Darft erstellt durch AZ |
|
| *UC History* | 1.0 Draft erstellt durch AZ |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Author* | A. Zweili & I. Hörler |
|
| *Author* | A. Zweili & I. Hörler |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
|
@ -1166,7 +1168,7 @@ aus, die Use Cases mit den Nummern wurden dabei im Detail ausgearbeitet:
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Alternative Flow* | 1. Der Administrator loggt sich unter https://didgeridoo.ml/admin ein. |
|
| *Alternative Flow* | 1. Der Administrator loggt sich unter https://didgeridoo.ml/admin ein. |
|
||||||
| | 2. Admin klickt neben "Articles" auf "+ Add". |
|
| | 2. Admin klickt neben "Articles" auf "+ Add". |
|
||||||
| | 3. Admin füllt das Formular aus und lädt zuviele Bilder hoch. |
|
| | 3. Admin füllt das Formular aus und lädt zu viele Bilder hoch. |
|
||||||
| | 4. Klickt unten rechts auf "Save". |
|
| | 4. Klickt unten rechts auf "Save". |
|
||||||
| | 5. Die Website gibt eine entsprechende Fehlermeldung aus. |
|
| | 5. Die Website gibt eine entsprechende Fehlermeldung aus. |
|
||||||
| | 6. Der Admin entfernt die überzähligen Bilder. |
|
| | 6. Der Admin entfernt die überzähligen Bilder. |
|
||||||
|
@ -1174,7 +1176,7 @@ aus, die Use Cases mit den Nummern wurden dabei im Detail ausgearbeitet:
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Notes* | - |
|
| *Notes* | - |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *UC History* | 1.0 Darft erstellt durch AZ |
|
| *UC History* | 1.0 Draft erstellt durch AZ |
|
||||||
| | 1.1 AZ Rechtschreibung korrigiert |
|
| | 1.1 AZ Rechtschreibung korrigiert |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Author* | A. Zweili & I. Hörler |
|
| *Author* | A. Zweili & I. Hörler |
|
||||||
|
@ -1217,7 +1219,7 @@ aus, die Use Cases mit den Nummern wurden dabei im Detail ausgearbeitet:
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Notes* | - |
|
| *Notes* | - |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *UC History* | 1.0 Darft erstellt durch AZ |
|
| *UC History* | 1.0 Draft erstellt durch AZ |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Author* | A. Zweili & I. Hörler |
|
| *Author* | A. Zweili & I. Hörler |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
|
@ -1265,7 +1267,7 @@ aus, die Use Cases mit den Nummern wurden dabei im Detail ausgearbeitet:
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Notes* | - |
|
| *Notes* | - |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *UC History* | 1.0 Darft erstellt durch AZ |
|
| *UC History* | 1.0 Draft erstellt durch AZ |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Author* | A. Zweili & I. Hörler |
|
| *Author* | A. Zweili & I. Hörler |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
|
@ -1307,7 +1309,7 @@ aus, die Use Cases mit den Nummern wurden dabei im Detail ausgearbeitet:
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Notes* | - |
|
| *Notes* | - |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *UC History* | 1.0 Darft erstellt durch AZ |
|
| *UC History* | 1.0 Draft erstellt durch AZ |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
| *Author* | A. Zweili & I. Hörler |
|
| *Author* | A. Zweili & I. Hörler |
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
|
@ -1315,7 +1317,7 @@ aus, die Use Cases mit den Nummern wurden dabei im Detail ausgearbeitet:
|
||||||
|---------------------+--------------------------------|
|
|---------------------+--------------------------------|
|
||||||
#+LATEX:}
|
#+LATEX:}
|
||||||
|
|
||||||
*** Models
|
*** Modells
|
||||||
|
|
||||||
Wie bereits in [[Framework]] beschrieben übernimmt das Framework die
|
Wie bereits in [[Framework]] beschrieben übernimmt das Framework die
|
||||||
Erstellung der Tabellen in der Datenbank. Für den Aufbau der Anwendung
|
Erstellung der Tabellen in der Datenbank. Für den Aufbau der Anwendung
|
||||||
|
@ -1326,14 +1328,13 @@ relationalen Datenbank basiert. Aus diesem Grund haben wir vor Beginn
|
||||||
der Arbeit ein klassisches Entity Relation Diagramm aufgezeichnet.
|
der Arbeit ein klassisches Entity Relation Diagramm aufgezeichnet.
|
||||||
Während der Entwicklung haben wir es dann kontinuierlich erweitert und
|
Während der Entwicklung haben wir es dann kontinuierlich erweitert und
|
||||||
korrigiert. Das finale Ergebnis ist in der Abbildung:([[fig:erd]]) zu sehen.
|
korrigiert. Das finale Ergebnis ist in der Abbildung:([[fig:erd]]) zu sehen.
|
||||||
erstellt haben.
|
|
||||||
|
|
||||||
Django übernimmt dann jedoch das erstellen der Tabellen und benennen
|
Django übernimmt dann jedoch das Erstellen der Tabellen und Benennen
|
||||||
derjenigen weshalb das Resultat in der Datenbank dann etwas anders
|
derjenigen weshalb das Resultat in der Datenbank etwas anders
|
||||||
aussieht. Zusätzlich kommt Django auch noch mit eigenen Tabellen
|
aussieht. Zusätzlich kommt Django auch noch mit eigenen Tabellen
|
||||||
daher. Der finale Aufbau der Datenbank ist in der
|
daher. Der finale Aufbau der Datenbank ist in der
|
||||||
Abbildung:([[fig:final_erd]]) zu sehen. Dieses ERD wurde mit der Django
|
Abbildung:([[fig:final_erd]]) zu sehen. Dieses ERD wurde mit der Django
|
||||||
Erweiterung "Djangoextensions"\footcite{djangoextensions} erstellt.
|
Erweiterung "Django-Extensions"\footcite{djangoextensions} erstellt.
|
||||||
|
|
||||||
Nachfolgend werden wir die von uns erstellten Modells im Detail
|
Nachfolgend werden wir die von uns erstellten Modells im Detail
|
||||||
beschreiben und auf jeweils spezifische Probleme eingehen.
|
beschreiben und auf jeweils spezifische Probleme eingehen.
|
||||||
|
@ -1358,16 +1359,16 @@ beschreiben und auf jeweils spezifische Probleme eingehen.
|
||||||
|
|
||||||
**** Category
|
**** Category
|
||||||
|
|
||||||
Das "Category" Modell, Abbildung:([[fig:category]]) ist der Kernpunkt der
|
Das "Category" Modell, Abbildung:([[fig:category]]), ist der Kernpunkt der
|
||||||
Artikelnavigation und vom Aufbau her eigentlich eher simpel.
|
Artikelnavigation und vom Aufbau her eigentlich eher simpel.
|
||||||
Allerdings hatten wir etwas Mühe die hierarchische Darstellung im
|
Allerdings hatten wir etwas Mühe die hierarchische Darstellung im
|
||||||
Template sauber abzubilden. Hier half uns ein Artikel\footcite{tree}
|
Template sauber abzubilden. Hier half uns ein Artikel\footcite{tree}
|
||||||
von Stackoverflow auf die richtige Lösung zu kommen. Nämlich das sich
|
von Stackoverflow auf die richtige Lösung zu kommen. Nämlich das sich
|
||||||
das ganze um zwei in einander verschachtelte Dictionaries handelt.
|
das Ganze um zwei in einander verschachtelte Dictionaries handelt.
|
||||||
Somit konnten wir dann über die Kategorie iterieren.
|
Somit konnten wir dann über die Kategorie iterieren.
|
||||||
|
|
||||||
#+ATTR_LATEX: :width 9cm :placement [H]
|
#+ATTR_LATEX: :width 9cm :placement [H]
|
||||||
#+CAPTION: Klassenmodel für Kategorien
|
#+CAPTION: Klassenmodelll für Kategorien
|
||||||
#+NAME: fig:category
|
#+NAME: fig:category
|
||||||
[[file:pictures/class_category.png]]
|
[[file:pictures/class_category.png]]
|
||||||
|
|
||||||
|
@ -1386,12 +1387,12 @@ Versehen gelöscht oder umbenannt wird. Des weiteren macht es in der
|
||||||
Applikation im Momentan wenig Sinn wenn der User selber Optionen
|
Applikation im Momentan wenig Sinn wenn der User selber Optionen
|
||||||
hinzufügen kann. Aus diesen Gründen haben wir für das "Option" Modell
|
hinzufügen kann. Aus diesen Gründen haben wir für das "Option" Modell
|
||||||
den "Add" Button\footcite{removeadd} und die "Delete"
|
den "Add" Button\footcite{removeadd} und die "Delete"
|
||||||
Option\footcite{removedelete} entfernt sowie den Namen im Admin
|
Option\footcite{removedelete} entfernt, sowie den Namen im Admin
|
||||||
Interface nur lesbar gemacht\footcite{readonly}. Somit ist nun nur
|
Interface nur lesbar gemacht\footcite{readonly}. Somit ist nur noch
|
||||||
noch der Wert editierbar.
|
der Wert editierbar.
|
||||||
|
|
||||||
#+ATTR_LATEX: :width 9cm :placement [H]
|
#+ATTR_LATEX: :width 9cm :placement [H]
|
||||||
#+CAPTION: Klassenmodel für Optionen
|
#+CAPTION: Klassenmodelll für Optionen
|
||||||
#+NAME: fig:option
|
#+NAME: fig:option
|
||||||
[[file:pictures/class_option.png]]
|
[[file:pictures/class_option.png]]
|
||||||
|
|
||||||
|
@ -1405,7 +1406,7 @@ Applikation dann auch gleich so umgesetzt das nur die Artikel
|
||||||
angezeigt werden welche nicht den Status "hidden" haben.
|
angezeigt werden welche nicht den Status "hidden" haben.
|
||||||
|
|
||||||
#+ATTR_LATEX: :width 9cm :placement [H]
|
#+ATTR_LATEX: :width 9cm :placement [H]
|
||||||
#+CAPTION: Klassenmodel für Artikelstatus
|
#+CAPTION: Klassenmodelll für Artikelstatus
|
||||||
#+NAME: fig:articlestatus
|
#+NAME: fig:articlestatus
|
||||||
[[file:pictures/class_articlestatus.png]]
|
[[file:pictures/class_articlestatus.png]]
|
||||||
|
|
||||||
|
@ -1419,12 +1420,12 @@ Feed\footcite{snb} der Schweizerischen Nationalbank stündlich
|
||||||
abgeholt. Vor dem Ablegen in der Datenbank wird dann noch überprüft ob
|
abgeholt. Vor dem Ablegen in der Datenbank wird dann noch überprüft ob
|
||||||
sich die Werte geändert haben oder nicht.
|
sich die Werte geändert haben oder nicht.
|
||||||
Wir haben uns für den die Daten der SNB entschieden da sie einerseits
|
Wir haben uns für den die Daten der SNB entschieden da sie einerseits
|
||||||
die benötigten Wechselkurse anbieten und anderseit bereits von unserer
|
die benötigten Wechselkurse anbieten und anderseits bereits von unserer
|
||||||
Basiswährung CHF ausgehen. Dadurch müssen wir nicht zuerst aus einer
|
Basiswährung CHF ausgehen. Dadurch müssen wir nicht zuerst aus einer
|
||||||
anderen Währung zurückrechnen.
|
anderen Währung zurückrechnen.
|
||||||
|
|
||||||
#+ATTR_LATEX: :width 9cm :placement [H]
|
#+ATTR_LATEX: :width 9cm :placement [H]
|
||||||
#+CAPTION: Klassenmodel für Wechselkurse
|
#+CAPTION: Klassenmodelll für Wechselkurse
|
||||||
#+NAME: fig:exchangerate
|
#+NAME: fig:exchangerate
|
||||||
[[file:pictures/class_exchangerate.png]]
|
[[file:pictures/class_exchangerate.png]]
|
||||||
|
|
||||||
|
@ -1434,7 +1435,7 @@ Im Modell ExchangeRate_name, Abbildung:([[fig:exchangerate_name]]), ist nur
|
||||||
eine Liste mit allen möglichen Währungsnamen abgelegt.
|
eine Liste mit allen möglichen Währungsnamen abgelegt.
|
||||||
|
|
||||||
#+ATTR_LATEX: :width 9cm :placement [H]
|
#+ATTR_LATEX: :width 9cm :placement [H]
|
||||||
#+CAPTION: Klassenmodel für Wechselkurse
|
#+CAPTION: Klassenmodell für Wechselkurse
|
||||||
#+NAME: fig:exchangerate_name
|
#+NAME: fig:exchangerate_name
|
||||||
[[file:pictures/exchangerate_name.png]]
|
[[file:pictures/exchangerate_name.png]]
|
||||||
|
|
||||||
|
@ -1452,7 +1453,7 @@ die Datumsfunktion als Variabel übergeben müssen damit sie bei jedem
|
||||||
Erstellen des Objekt evaluiert wird.
|
Erstellen des Objekt evaluiert wird.
|
||||||
|
|
||||||
#+ATTR_LATEX: :width 9cm :placement [H]
|
#+ATTR_LATEX: :width 9cm :placement [H]
|
||||||
#+CAPTION: Klassenmodel für Wechselkurse
|
#+CAPTION: Klassenmodell für Wechselkurse
|
||||||
#+NAME: fig:exchangerate_date
|
#+NAME: fig:exchangerate_date
|
||||||
[[file:pictures/exchangerate_date.png]]
|
[[file:pictures/exchangerate_date.png]]
|
||||||
|
|
||||||
|
@ -1463,10 +1464,11 @@ sehr komplex und widerspiegelt einen Artikel aus der realen Welt.
|
||||||
Gemäss der Anforderung FA_1.4 hat er eine eindeutige ID (den
|
Gemäss der Anforderung FA_1.4 hat er eine eindeutige ID (den
|
||||||
Primärschlüssel), einen Namen von maximal 200 Zeichen, eine
|
Primärschlüssel), einen Namen von maximal 200 Zeichen, eine
|
||||||
Beschreibung von maximal 2000 Zeichen, Status sowie 0 - 5
|
Beschreibung von maximal 2000 Zeichen, Status sowie 0 - 5
|
||||||
Produktbilder.
|
Produktbilder welche vom Modell "Picture" über einen Fremdschlüssel
|
||||||
|
zugewiesen werden.
|
||||||
|
|
||||||
#+ATTR_LATEX: :width 9cm :placement [H]
|
#+ATTR_LATEX: :width 9cm :placement [H]
|
||||||
#+CAPTION: Klassenmodel für Artikel
|
#+CAPTION: Klassenmodell für Artikel
|
||||||
#+NAME: fig:article
|
#+NAME: fig:article
|
||||||
[[file:pictures/class_article.png]]
|
[[file:pictures/class_article.png]]
|
||||||
|
|
||||||
|
@ -1485,7 +1487,7 @@ Der "OrderStatus" wird vom "Order" sowie auch dem "OrderOfGoods" Modell
|
||||||
verwendet.
|
verwendet.
|
||||||
|
|
||||||
#+ATTR_LATEX: :width 9cm :placement [H]
|
#+ATTR_LATEX: :width 9cm :placement [H]
|
||||||
#+CAPTION: Klassenmodel für Bestellstatus
|
#+CAPTION: Klassenmodell für Bestellstatus
|
||||||
#+NAME: fig:orderstatus
|
#+NAME: fig:orderstatus
|
||||||
[[file:pictures/class_orderstatus.png]]
|
[[file:pictures/class_orderstatus.png]]
|
||||||
|
|
||||||
|
@ -1496,13 +1498,13 @@ Nachbestellungen fürs Warenlager ab. Dabei wird es hauptsächlich für
|
||||||
die Verwaltung verwendet um die Nachbestellungen im Griff zu haben.
|
die Verwaltung verwendet um die Nachbestellungen im Griff zu haben.
|
||||||
|
|
||||||
#+ATTR_LATEX: :width 9cm :placement [H]
|
#+ATTR_LATEX: :width 9cm :placement [H]
|
||||||
#+CAPTION: Klassenmodel für Warenbestellungen
|
#+CAPTION: Klassenmodell für Warenbestellungen
|
||||||
#+NAME: fig:orderofgoods
|
#+NAME: fig:orderofgoods
|
||||||
[[file:pictures/class_orderofgoods.png]]
|
[[file:pictures/class_orderofgoods.png]]
|
||||||
|
|
||||||
**** Picture
|
**** Picture
|
||||||
|
|
||||||
Über das Modell "Picture", Abbildung:([[fig:picture]]) können Bilder für
|
Über das Modell "Picture", Abbildung:([[fig:picture]]), können Bilder für
|
||||||
einen Artikel hochgeladen werden. Grundsätzlich kann man Bilder
|
einen Artikel hochgeladen werden. Grundsätzlich kann man Bilder
|
||||||
relativ einfach über das Attribut "models.ImageField" zu einem Modell
|
relativ einfach über das Attribut "models.ImageField" zu einem Modell
|
||||||
hinzufügen. Wir hatten allerdings noch einige Probleme mit dem
|
hinzufügen. Wir hatten allerdings noch einige Probleme mit dem
|
||||||
|
@ -1513,14 +1515,14 @@ verwenden der Bilder in den Templates fanden wir in einem Post auf
|
||||||
Stackoverflow\footcite{images} die Lösung.
|
Stackoverflow\footcite{images} die Lösung.
|
||||||
|
|
||||||
#+ATTR_LATEX: :width 9cm :placement [H]
|
#+ATTR_LATEX: :width 9cm :placement [H]
|
||||||
#+CAPTION: Klassenmodel für Bilder
|
#+CAPTION: Klassenmodell für Bilder
|
||||||
#+NAME: fig:picture
|
#+NAME: fig:picture
|
||||||
[[file:pictures/class_picture.png]]
|
[[file:pictures/class_picture.png]]
|
||||||
|
|
||||||
**** Order und OrderPosition
|
**** Order und OrderPosition
|
||||||
|
|
||||||
Bestellungen der Kunden werden im Modell "Order",
|
Bestellungen der Kunden werden im Modell "Order",
|
||||||
Abbildung:([[fig:order]]), erfasst. Wobei im Modell Order nur die Kunden
|
Abbildung:([[fig:order]]), erfasst. Wobei im Modell "Order" nur die Kunden
|
||||||
ID gespeichert wird, sowie, gemäss der Anforderung FA_3.3, der
|
ID gespeichert wird, sowie, gemäss der Anforderung FA_3.3, der
|
||||||
Foreign Key zum "ExchangeRate" Modell. Über den Foreign Key wird eine
|
Foreign Key zum "ExchangeRate" Modell. Über den Foreign Key wird eine
|
||||||
Beziehung auf den für die Bestellung aktuellen Wechselkurs der Währung
|
Beziehung auf den für die Bestellung aktuellen Wechselkurs der Währung
|
||||||
|
@ -1532,17 +1534,17 @@ Modell welches die Beziehung abbildet. Dies realisieren wir über das
|
||||||
Modell "OrderPostion", Abbildung:([[fig:orderposition]]).
|
Modell "OrderPostion", Abbildung:([[fig:orderposition]]).
|
||||||
|
|
||||||
In diesem Modell werden dann noch zusätzlich die bestellte Menge sowie
|
In diesem Modell werden dann noch zusätzlich die bestellte Menge sowie
|
||||||
der Preis zur Zeit der Bestellung in schweizer Franken des jeweiligen
|
der Preis zur Zeit der Bestellung in Schweizer Franken des jeweiligen
|
||||||
Artikels erfasst. Somit kann auch später noch nachvollzogen werden zu
|
Artikels erfasst. Somit kann auch später noch nachvollzogen werden zu
|
||||||
welchem Preis die Ware bezogen wurde.
|
welchem Preis die Ware bezogen wurde.
|
||||||
|
|
||||||
#+ATTR_LATEX: :width 9cm :placement [H]
|
#+ATTR_LATEX: :width 9cm :placement [H]
|
||||||
#+CAPTION: Klassenmodel für Bestellungen
|
#+CAPTION: Klassenmodell für Bestellungen
|
||||||
#+NAME: fig:order
|
#+NAME: fig:order
|
||||||
[[file:pictures/class_order.png]]
|
[[file:pictures/class_order.png]]
|
||||||
|
|
||||||
#+ATTR_LATEX: :width 9cm :placement [H]
|
#+ATTR_LATEX: :width 9cm :placement [H]
|
||||||
#+CAPTION: Klassenmodel für Bestellungens Positionen
|
#+CAPTION: Klassenmodell für Bestellungs-Positionen
|
||||||
#+NAME: fig:orderposition
|
#+NAME: fig:orderposition
|
||||||
[[file:pictures/class_orderposition.png]]
|
[[file:pictures/class_orderposition.png]]
|
||||||
|
|
||||||
|
@ -1556,27 +1558,27 @@ Abbildung:([[fig:shoppingcartposition]]), werden die ausgewählten Artikel
|
||||||
sowie ihre Mengen einem User zugewiesen. Im Gegensatz zur Bestellung
|
sowie ihre Mengen einem User zugewiesen. Im Gegensatz zur Bestellung
|
||||||
wird im Artikel jedoch der Preis nicht gespeichert da sich der Preis
|
wird im Artikel jedoch der Preis nicht gespeichert da sich der Preis
|
||||||
vor der Bestellung noch ändern könnte. Wenn die Verwaltung etwa die
|
vor der Bestellung noch ändern könnte. Wenn die Verwaltung etwa die
|
||||||
Preise anpasst oder die Währungen den Kurs ändern.
|
Preise anpasst oder die Währungskurse ändern.
|
||||||
|
|
||||||
#+ATTR_LATEX: :width 9cm :placement [H]
|
#+ATTR_LATEX: :width 9cm :placement [H]
|
||||||
#+CAPTION: Klassenmodel für Warenkörbe
|
#+CAPTION: Klassenmodell für Warenkörbe
|
||||||
#+NAME: fig:shoppingcart
|
#+NAME: fig:shoppingcart
|
||||||
[[file:pictures/class_shoppingcart.png]]
|
[[file:pictures/class_shoppingcart.png]]
|
||||||
|
|
||||||
#+ATTR_LATEX: :width 9cm :placement [H]
|
#+ATTR_LATEX: :width 9cm :placement [H]
|
||||||
#+CAPTION: Klassenmodel für Warenkorbs Positionen
|
#+CAPTION: Klassenmodell für Warenkorbs Positionen
|
||||||
#+NAME: fig:shoppingcartposition
|
#+NAME: fig:shoppingcartposition
|
||||||
[[file:pictures/class_shoppingcartposition.png]]
|
[[file:pictures/class_shoppingcartposition.png]]
|
||||||
|
|
||||||
**** City
|
**** City
|
||||||
|
|
||||||
Das "City" Modell speichert Städte Namen und die dazugehörige
|
Das "City" Modell speichert Städte Namen und die dazugehörige
|
||||||
Postleizahl. Die Städte werden als Teil der Adresse auf dem "Person"
|
Postleitzahl Die Städte werden als Teil der Adresse auf dem "Person"
|
||||||
Modell hinterlegt. Im aktuellen Zustand der Applikation enthält die
|
Modell hinterlegt. Im aktuellen Zustand der Applikation enthält die
|
||||||
Tabelle die Daten aller schweizer Städte.
|
Tabelle die Daten aller Schweizer Städte.
|
||||||
|
|
||||||
#+ATTR_LATEX: :width 9cm :placement [H]
|
#+ATTR_LATEX: :width 9cm :placement [H]
|
||||||
#+CAPTION: Klassenmodel für Städte
|
#+CAPTION: Klassenmodell für Städte
|
||||||
#+NAME: fig:city
|
#+NAME: fig:city
|
||||||
[[file:pictures/class_city.png]]
|
[[file:pictures/class_city.png]]
|
||||||
|
|
||||||
|
@ -1591,7 +1593,7 @@ hinterlegt:
|
||||||
- Dr.
|
- Dr.
|
||||||
|
|
||||||
#+ATTR_LATEX: :width 9cm :placement [H]
|
#+ATTR_LATEX: :width 9cm :placement [H]
|
||||||
#+CAPTION: Klassenmodel für Anreden
|
#+CAPTION: Klassenmodell für Anreden
|
||||||
#+NAME: fig:salutation
|
#+NAME: fig:salutation
|
||||||
[[file:pictures/class_salutation.png]]
|
[[file:pictures/class_salutation.png]]
|
||||||
|
|
||||||
|
@ -1610,9 +1612,9 @@ wir zwingend zusätzliche Informationen speichern wollten. Die
|
||||||
Varianten mit Vererbungen erschienen uns ungeeignet da die Möglichkeit
|
Varianten mit Vererbungen erschienen uns ungeeignet da die Möglichkeit
|
||||||
besteht die Sicherheit der Authentifizierung zu schwächen. Aus diesem
|
besteht die Sicherheit der Authentifizierung zu schwächen. Aus diesem
|
||||||
Grund wird in der Django Dokumentation eher davor abgeraten diese
|
Grund wird in der Django Dokumentation eher davor abgeraten diese
|
||||||
Varianten wenn man nicht genau weiss was man macht.
|
Varianten zu verwenden wenn man nicht genau weiss was man macht.
|
||||||
|
|
||||||
Die verbeiblende Variante erweitert das "User" Modell über eine
|
Die verbleibende Variante erweitert das "User" Modell über eine
|
||||||
"One-to-One" Beziehung ein sogenanntes "Profil". Dadurch bleibt das
|
"One-to-One" Beziehung ein sogenanntes "Profil". Dadurch bleibt das
|
||||||
"User" Modell intakt und man kann zusätzliche Informationen über den
|
"User" Modell intakt und man kann zusätzliche Informationen über den
|
||||||
User speichern. Man sollte im Profil jedoch nur Daten speichern welche
|
User speichern. Man sollte im Profil jedoch nur Daten speichern welche
|
||||||
|
@ -1620,12 +1622,17 @@ nicht sicherheitsrelevant sind. Der Nachteil dieser Variante ist das
|
||||||
die Datenbank mit zusätzlichen Anfragen belastet werden kann.
|
die Datenbank mit zusätzlichen Anfragen belastet werden kann.
|
||||||
|
|
||||||
#+ATTR_LATEX: :width 9cm :placement [H]
|
#+ATTR_LATEX: :width 9cm :placement [H]
|
||||||
#+CAPTION: Klassenmodel für Personen
|
#+CAPTION: Klassenmodell für Personen
|
||||||
#+NAME: fig:person
|
#+NAME: fig:person
|
||||||
[[file:pictures/class_person.png]]
|
[[file:pictures/class_person.png]]
|
||||||
|
|
||||||
** Benutzerinterface
|
** Benutzerinterface
|
||||||
*** Mockup skizze
|
*** Mockup Skizze
|
||||||
|
|
||||||
|
Mit Hilfe eines Hand gezeichneten Mockups, Abbildung:([[mockup]]), haben
|
||||||
|
wir eine erste Skizze des Webshop Interfaces erstellt. Damit hatten
|
||||||
|
wir eine Diskusionsgrundlage wie wir das Interface weiter entwickeln
|
||||||
|
könnten.
|
||||||
|
|
||||||
#+CAPTION: Ein frühes Mockup des Shop
|
#+CAPTION: Ein frühes Mockup des Shop
|
||||||
#+ATTR_LATEX: :width \textwidth
|
#+ATTR_LATEX: :width \textwidth
|
||||||
|
@ -1635,23 +1642,23 @@ die Datenbank mit zusätzlichen Anfragen belastet werden kann.
|
||||||
|
|
||||||
*** Frontend Umsetzung
|
*** Frontend Umsetzung
|
||||||
|
|
||||||
Die Umsetztung des Frontends mittels Django integrierter Template
|
Die Umsetzung des Frontends mittels Django integrierter Template
|
||||||
Funktionen sind geprägt vom einstmalig eigenständigen Jinja Template
|
Funktionen sind geprägt vom einstmals eigenständigen Jinja Template
|
||||||
Framework das auch in Python programmiert wurde. Mittlerweile ist es
|
Framework das auch in Python programmiert wurde. Mittlerweile ist es
|
||||||
integrierter Bestandteil vom Django Framework. Dieses Snippet erklärt
|
integrierter Bestandteil vom Django Framework. Dieses Snippet erklärt
|
||||||
deren Nutzung:
|
deren Nutzung:
|
||||||
|
|
||||||
#+BEGIN_EXPORT latex
|
#+BEGIN_EXPORT latex
|
||||||
\begin{sexylisting}{Jinja Code Block}
|
\begin{sexylisting}{Jinja Code Block}
|
||||||
{% extends 'base.html' %} --> Dieser codeblock wird im base.html eingefügt.
|
{% extends 'base.html' %} --> Dieser Codeblock wird im base.html eingefügt.
|
||||||
{% block title %}Memberlist{% endblock %} --> Titel wird in den tag
|
{% block title %}Memberlist{% endblock %} --> Titel wird in den Tag
|
||||||
title eingefügt.
|
title eingefügt.
|
||||||
{% block content %} --> wird in den block mit dem tag ''content'' eingefügt.
|
{% block content %} --> wird in den block mit dem Tag ''content'' eingefügt.
|
||||||
<ul> --> standard unordered List item von HTML.
|
<ul> --> Standard unordered List item von HTML.
|
||||||
{% for user in users %} --> schleifenkopf
|
{% for user in users %} --> Schleifenkopf
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ user.url }}">{{ user.username }}</a> --> für
|
<a href="{{ user.url }}">{{ user.username }}</a> --> für
|
||||||
jeden Benutzer wird eine listitem erstellt und der Username als text eingefügt.
|
jeden Benutzer wird eine listitem erstellt und der Username als Text eingefügt.
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -1661,14 +1668,14 @@ jeden Benutzer wird eine listitem erstellt und der Username als text eingefügt.
|
||||||
|
|
||||||
*** Backend Umsetzung
|
*** Backend Umsetzung
|
||||||
|
|
||||||
Django ist ein modelbasiertes Framework das die Programmierung der
|
Django ist ein modellbasiertes Framework das die Programmierung der
|
||||||
Datenbank gleich selbst regelt. Dadurch lässt sich backendseitig
|
Datenbank gleich selbst regelt. Dadurch lässt sich backend seitig
|
||||||
durchgängig in Python arbeiten. Die Umsetzung gliedert sich
|
durchgängig in Python arbeiten. Die Umsetzung gliedert sich
|
||||||
vereinfacht in 3 Bereiche:
|
vereinfacht in 3 Bereiche:
|
||||||
1. Einem Frontend dass für den Benutzer gemacht ist und das mehrere
|
1. Einem Frontend dass für den Benutzer gemacht ist und das mehrere
|
||||||
submodule wie Cathegories oder Wahrenkorb beinhaltet.
|
Submodule wie Categories oder Warenkorb beinhaltet.
|
||||||
2. Ein Backend welches zum Bearbeiten/Erstellen von Produkten dient.
|
2. Ein Backend welches zum Bearbeiten/Erstellen von Produkten dient.
|
||||||
3. Currencies die Täglich abgeholt werden
|
3. Currencies die täglich abgeholt werden
|
||||||
|
|
||||||
** TODO Testing
|
** TODO Testing
|
||||||
|
|
||||||
|
@ -1676,7 +1683,7 @@ Um die Funktionalität des Webshops sicherzustellen haben wir Die
|
||||||
Applikation kontinuierlich gemäss den Testfällen unter [[Testfälle]]
|
Applikation kontinuierlich gemäss den Testfällen unter [[Testfälle]]
|
||||||
getestet und geprüft. Bei den Testfällen haben wir uns wie auch bei
|
getestet und geprüft. Bei den Testfällen haben wir uns wie auch bei
|
||||||
den Use Cases hauptsächlich auf die Funktionen beschränkt welche wir
|
den Use Cases hauptsächlich auf die Funktionen beschränkt welche wir
|
||||||
selber ausprogrammiert haben. Auch sehr hilfreich war das Admin
|
selber aus programmiert haben. Auch sehr hilfreich war das Admin
|
||||||
Interface von Django. Damit konnten wir die Modells sehr gut auf ihre
|
Interface von Django. Damit konnten wir die Modells sehr gut auf ihre
|
||||||
Funktionalität überprüfen bevor wir sie im Frontend verwendeten.
|
Funktionalität überprüfen bevor wir sie im Frontend verwendeten.
|
||||||
|
|
||||||
|
@ -1717,7 +1724,7 @@ entdeckt.
|
||||||
| <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> |
|
| <20> | <20> | <20> | <20> | <20> | <20> | <20> | <20> |
|
||||||
| *Testcase ID*\cellcolor[HTML]{C0C0C0} | *Objective*\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*\cellcolor[HTML]{C0C0C0} |
|
| *Testcase ID*\cellcolor[HTML]{C0C0C0} | *Objective*\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*\cellcolor[HTML]{C0C0C0} |
|
||||||
|----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------|
|
|----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------|
|
||||||
| *TC-01* | Artikel durschtöbern | - | 1. Auf "First Parent Category" klicken. | - | Die Artikel der "Parent Category 1" werden angezeigt. | Eine gefilterte Artikelliste wird angezeigt. | Erfolgreich durchgeführt 19.02.2018 A.Z. |
|
| *TC-01* | Artikel durchstöbern | - | 1. Auf "First Parent Category" klicken. | - | Die Artikel der "Parent Category 1" werden angezeigt. | Eine gefilterte Artikelliste wird angezeigt. | Erfolgreich durchgeführt 19.02.2018 A.Z. |
|
||||||
|----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------|
|
|----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------|
|
||||||
| *TC-02* | User Registration | - | 1. Auf "LOGIN" klicken.\newline 2. Auf "Go to registration." klicken.\newline 3. Die Personaldaten eintragen.\newline 4. Auf "Register" klicken. | Username: max\newline Password: TestPasswort\newline Email: max@gmail.com\newline Salutation: Herr\newline Firstname: Max\newline Lastname: Muster\newline Streetname: Musterstrasse\newline Streetnumber: 13\newline ZIP Code: 1000\newline City: Lausanne | User wurde erfolgreich registriert. | Die Login Form wird angezeigt. | Erfolgreich durchgeführt 19.02.2018 A.Z. |
|
| *TC-02* | User Registration | - | 1. Auf "LOGIN" klicken.\newline 2. Auf "Go to registration." klicken.\newline 3. Die Personaldaten eintragen.\newline 4. Auf "Register" klicken. | Username: max\newline Password: TestPasswort\newline Email: max@gmail.com\newline Salutation: Herr\newline Firstname: Max\newline Lastname: Muster\newline Streetname: Musterstrasse\newline Streetnumber: 13\newline ZIP Code: 1000\newline City: Lausanne | User wurde erfolgreich registriert. | Die Login Form wird angezeigt. | Erfolgreich durchgeführt 19.02.2018 A.Z. |
|
||||||
|----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------|
|
|----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------+----------------------|
|
||||||
|
|
Loading…
Reference in New Issue