web_AI-5/docs/doku.org

368 lines
15 KiB
Org Mode
Raw Normal View History

2017-10-29 21:03:20 +01:00
#+TITLE: Casestudy Webtechnologien
#+SETUPFILE: ~/git_repos/notes/settings/html_theme/setup/theme-readtheorg.setup
2017-10-30 07:54:24 +01:00
#+AUTHOR: Ivan Hörler Andreas Zweili
#+LaTeX_CLASS: article
#+LATEX_CLASS_OPTIONS: [a4paper,11pt]
#+LaTeX_HEADER: \input{style}
#+OPTIONS: H:5
2017-10-29 21:03:20 +01:00
2017-11-12 15:40:27 +01:00
* Über dieses Dokument
2017-10-31 21:22:50 +01:00
2017-10-31 20:31:01 +01:00
Im nachfolgenden Abschnitt finden Sie allgemeine Informationen zu
diesem Dokument. Bei der Erstellung dieses Dokuments haben wir das
2017-10-31 22:11:09 +01:00
Versionierungs-Tool "Git" mit dem passenden Client "magit" verwendet
und das Dokument auf unseren Laptops lokal mit dem Emacs Plugin
org-mode bearbeitet.
2017-10-31 20:31:01 +01:00
2017-10-31 22:11:09 +01:00
** Titel der Dokumentation
2017-10-31 21:22:50 +01:00
2017-10-31 20:31:01 +01:00
Die Gruppe hat verschiedene Varianten gelistet und sich für die
lustigste entschieden.
2017-10-31 22:11:09 +01:00
2017-10-31 20:31:01 +01:00
- Marktplatz
- Shopshop
2017-10-31 22:11:09 +01:00
- Barewahre-Shop
- Didgeridoo-Shop
2017-10-31 20:31:01 +01:00
** Beschreibung
2017-10-31 21:22:50 +01:00
2017-10-31 22:11:09 +01:00
Planung und Erstellung eines konfigurierbaren Web-Shops für
Didgeridoo's.
2017-10-31 20:31:01 +01:00
** Zweck und Inhalt
2017-10-31 21:22:50 +01:00
2017-10-31 20:31:01 +01:00
Zweck dieses Dokuments ist die vollständige und nachvollziehbare
Dokumentation zu unserer Case Study Webtechnologie 3.
** Aufbau
2017-10-31 21:22:50 +01:00
2017-10-31 22:11:09 +01:00
Alle Inhalte sind chronologisch sortiert, vom ältesten zum jüngsten
2017-10-31 20:31:01 +01:00
Ereigniss, und nach Kapiteln getrennt.
** Über die Autoren
2017-10-31 21:22:50 +01:00
2017-10-31 20:31:01 +01:00
Dieses Dokument wurde von Ivan Hörler und Andreas Zweili im Auftrag
2017-10-31 22:11:09 +01:00
der IBZ erstellt und darf ohne Einverständniss der Autoren kopiert und
vervielfälltigt werden. Erwähnung der Autoren vorausgesetzt.
2017-10-31 20:31:01 +01:00
2017-10-30 22:17:17 +01:00
* Projektanalyse und Planung
** Projektziele
2017-10-31 21:22:50 +01:00
2017-10-31 20:31:01 +01:00
Der Student erarbeitet in einer Zweiergruppe einen selbstentwickelten
Web-Shop. Die einzusezenden Technologien sollen Opensource sein. Die
zur verfügungstehende Zeit ist pro Student mit 80h zu veranschlagen.
2017-10-31 22:11:09 +01:00
Am Ende dieser Zeitspanne soll ein funktionaler Web-Shop mit minimalem
graphischen Userinterface entstehen, die dazugehörige Dokumentation
umfasst alle Aspekte um die gewählte Lösung nachzuvollziehen.
2017-10-31 20:31:01 +01:00
| Nr. | Beschreibung | Priorität |
|-----+--------------------------------------------------------------------+-----------|
| 1. | Das Datenmodel muss korrekt konzipiert sein. | Hoch |
2017-10-31 22:11:09 +01:00
| 2. | Alle Vorgehen müssen in diesem Dokument erläutert werden. | Mittel |
2017-10-31 20:31:01 +01:00
| 3. | Die Arbeitsstunden müssen eingehalten werden. | Tief |
| 4. | Der Shop muss funktionstüchtig sein. | Mittel |
| 5. | Die Applikation muss vor der Übergabe vollständig getestet werden. | Hoch |
| 6. | Problemstellungen müssen ersichtlich dokumentiert werden. | Mittel |
2017-10-31 22:11:09 +01:00
#+CAPTION: Projektziele
2017-10-31 20:31:01 +01:00
** Mittel und Methoden
*** Werkzeuge
2017-10-31 21:22:50 +01:00
2017-10-31 20:31:01 +01:00
Als Testumgebung wurde eine VM Lösung mit Vagrant gewählt. Diese über
2017-10-31 22:11:09 +01:00
eine MIT-Lizenz frei verfügbare Lösung für Containerautomation eignet
2017-10-31 20:31:01 +01:00
sich durch seine crossplattform Anwendung hervorragend um die
2017-10-31 22:11:09 +01:00
Entwicklung schnellstmöglich ohne lästige Einzelkonfigurationen auf
die Beine zu bringen. Der Hypervisor für Vagrant war dabei Virtualbox.
2017-10-31 20:31:01 +01:00
*** Methoden
2017-10-31 21:22:50 +01:00
2017-10-31 22:11:09 +01:00
Die Methodik die die Gruppe wählt ist Aufgrund der nur zwei Personen
2017-10-31 20:31:01 +01:00
im Team beschränkt. Da jedoch Fehler und Rückschläge erwartet werden
2017-10-31 22:11:09 +01:00
ist eine itterative Methodik unabdingbar. Daher wandte die Gruppe eine
angepasste version von Scrum an. In dieser wird jeweils während
2017-10-31 20:31:01 +01:00
Sitzungen die Position des Product Owners und des Scrum Masters
2017-10-31 22:11:09 +01:00
eingenommen und die Backlog-Tasks dementsprechend erstellt resp.
2017-10-31 20:31:01 +01:00
verteilt. Während der Woche arbeiten beide Team-Mitglieder an der
Arbeit als Team-Kolegen.
*** Vorkenntnisse
2017-10-31 21:22:50 +01:00
2017-10-31 20:31:01 +01:00
Die benötigten Vorkenntnisse wurden in den vorangeganenen Semestern
2017-10-31 22:11:09 +01:00
erarbeitet und sind in der Basis gefestigt. Diese Arbeit wird
vorwiegend weiterführende Elemente wie Frameworks neu einbringen deren
Verhalten letztendlich nicht abgeschätzt werden kann.
2017-10-31 20:31:01 +01:00
2017-10-30 22:17:17 +01:00
** Vision
2017-10-31 21:22:50 +01:00
2017-10-31 22:11:09 +01:00
Wir wollen einen Web-Shop mit geeigneter Software erstellen. Dabei
setzen wir nur freie Software ein (frei im Bezug auf Freiheit nicht
Preis). Wir untersuchen die Anforderung und wählen die uns als
geeignet erscheinenden Frameworks. Jede noch so kleine Zeiteinsparung
durch vorgefertigte Entwicklungen werden angenommen und dennoch wollen
wir keine fertigen Software Produkte einsetzen.
2017-10-31 20:31:01 +01:00
2017-10-31 22:11:09 +01:00
** TODO SWOT-Analyse
2017-10-31 21:22:50 +01:00
2017-10-31 20:31:01 +01:00
Die SWOT-Analyse ist eine Methode, die Stärken, Schwächen, Chancen und
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
haben.
2017-10-31 22:11:09 +01:00
| Stärken | Schwächen | Chancen | Gefahren |
|----------------------------------------------------------------------------------------+------------------------------------------------------------------------------+---------+----------|
| Wir als Programmierer haben ein gutes Know-How im Bereich Datenbanken | Wir als Programmierer haben keine Erfahrung im Konsumsegment unseres Nutzers | | |
|----------------------------------------------------------------------------------------+------------------------------------------------------------------------------+---------+----------|
| Die Umsetzung der graphischen Anwendungsoberfläche könnte sich als schwierig erweisen. | Die Umsetzungszeit ist knapp bemessen | | |
|----------------------------------------------------------------------------------------+------------------------------------------------------------------------------+---------+----------|
#+CAPTION: SWOT-Analyse
2017-10-31 20:31:01 +01:00
2017-10-30 22:17:17 +01:00
** Umweltanalyse
2017-10-31 21:22:50 +01:00
2017-10-31 20:31:01 +01:00
Die Projektumwelt-Analyse ist eine Methode, die Beziehungen,
Erwartungshaltungen und Einflüsse auf das Projekt durch interne und
externe soziale Umwelten zu betrachten und zu bewerten. Auf Grundlage
2017-10-31 22:11:09 +01:00
der Analyseergebnisse werden erforderliche Massnahmen zur Gestaltung
der Umweltbeziehungen abgeleitet. Die Gestaltung der
2017-10-31 20:31:01 +01:00
Projektumweltbeziehungen ist eine Projektmanagementaufgabe.
In dieser Tabelle wurden die Anforderungen und Wünsche mit
Einschätzung der Wahrscheinlichkeit der Einflussnahme aufgenommen.
| Nr. | Stakeholder | Einfluss | Anforderung/Wünsche | Warscheinlichkeit |
|-----+---------------+----------+-----------------------------------------------+-------------------|
| 1. | Auftraggeber | hoch | - Innovatives Produkt auf dem Markt anbieten. | hoch |
| | | | - Einhaltung von Terminen und Qualität. | hoch |
|-----+---------------+----------+-----------------------------------------------+-------------------|
| 2. | Nutzer | gering | - Einfache Lösung die anpassungsfähig ist. | hoch |
| | | | - Schnell anfangen können. | hoch |
| | | | - Viele Arbeitsschritte Automatisieren | mittel |
|-----+---------------+----------+-----------------------------------------------+-------------------|
| 3. | Nachfrager | gering | - Intuitiv bedienbare Webseite | hoch |
| | | | - schnell finden was gesucht wird. | hoch |
|-----+---------------+----------+-----------------------------------------------+-------------------|
| 4. | Projektleiter | hoch | - Gutes Innovatives Produkt erschaffen. | mittel |
| | | | - Anerkennung im fachlichen Umfeld | hoch |
| | | | | |
2017-10-31 22:11:09 +01:00
#+CAPTION: Umwelt-Analyse
2017-10-31 21:22:50 +01:00
2017-10-31 20:31:01 +01:00
** TODO Umweltgrafik
2017-10-31 21:22:50 +01:00
2017-12-03 22:33:06 +01:00
#+CAPTION: Stakeholder Diagramm
#+ATTR_LATEX: :width .9\textwidth
[[file:diagrammes/stakeholder_diagramm.eps]]
2017-10-31 22:11:09 +01:00
** TODO Risikomanagement
*** TODO Risikobeschreibung
2017-10-31 21:22:50 +01:00
2017-10-31 22:11:09 +01:00
- Note taken on [2017-10-31 Tue 22:09] \\
Tönt noch sehr nach DB Case Study
2017-10-31 21:22:50 +01:00
2017-10-31 20:31:01 +01:00
| Nr. | Beschreibung | Massnahmen | W^1 | A^2 |
|-----+--------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------+-----+-----|
| 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 |
|-----+--------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------+-----+-----|
2017-10-31 22:11:09 +01:00
| 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 |
2017-10-31 20:31:01 +01:00
|-----+--------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------+-----+-----|
| 3. | Know-How zur Umsetzung ist nicht vollständig vorhanden. | Gute Informationsbeschaffung im Internet, Mitschülern, Arbeitgeber, Dozenten etc. | 2 | 2 |
|-----+--------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------+-----+-----|
| 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 |
|-----+--------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------+-----+-----|
2017-10-31 22:23:27 +01:00
#+CAPTION: Risikobeschreibung
2017-10-31 21:22:50 +01:00
2017-10-31 20:31:01 +01:00
*** TODO Risikobewertung
2017-10-31 21:22:50 +01:00
2017-10-31 20:31:01 +01:00
| Bewertung | Beschreibung: Warscheinlichkeit (W) |
|------------+-------------------------------------|
| 1 = gering | Unwarscheinlich, <20% |
| 2 = mittel | Mässig warscheinlich, 20-50% |
| 3 = hoch | Hohe warscheinlichkeit > 50% |
2017-10-31 22:23:27 +01:00
#+CAPTION: Risikobewertung Wahrscheinlichkeit
2017-10-31 20:31:01 +01:00
| Bewertung | Beschreibung: Auswirkung (A) |
|------------+-------------------------------------------------|
| 1 = gering | geringe auswirkungen auf das Gesammtergebniss |
| 2 = mittel | Arbeitsumstellung oder grösserer Arbeitsaufwand |
| 3 = hoch | Projekt erfüllt nicht alle Anforderungen |
2017-10-31 22:23:27 +01:00
#+CAPTION: Risikobewertung Auswirkung
2017-10-31 20:31:01 +01:00
--> Graphik einfügen!!!
2017-10-31 21:22:50 +01:00
2017-10-31 20:31:01 +01:00
** TODO Projektabgrenzung
2017-10-31 21:22:50 +01:00
2017-10-31 20:31:01 +01:00
Am ende des Projekts die nicht lauffähigen teile ausgrenzen. :-)
2017-10-30 22:17:17 +01:00
* Projektmanagement
** Organigram
** Projektstrukturplan
** Varianten erarbeiten
** Architektur vorbereiten
** Arbeitspakete definieren
2017-10-31 21:22:50 +01:00
2017-10-30 22:17:17 +01:00
* Umsetzung
2017-11-05 11:42:31 +01:00
** Spezifikation
2017-12-27 09:26:30 +01:00
*** Mockup
#+ATTR_LATEX: :width 18cm
#+CAPTION: a early Mockup of the shop
[[file:pictures/mockup-full-snipet.png][file:pictures/mockup-full-snipet.png]
2017-11-05 11:42:31 +01:00
*** Anwendungsfälle
*** Klassendiagramme der Models
**** Category
#+ATTR_LATEX: :width 9cm
#+CAPTION: Klassenmodel für Kategorien
[[file:pictures/class_category.png]]
**** Option
#+ATTR_LATEX: :width 9cm
#+CAPTION: Klassenmodel für Optionen
[[file:pictures/class_option.png][file:pictures/class_option.png]]
**** Setting
#+ATTR_LATEX: :width 9cm
#+CAPTION: Klassenmodel für Einstellungen
[[file:pictures/class_setting.png][file:pictures/class_setting.png]]
**** ArticleStatus
#+ATTR_LATEX: :width 9cm
#+CAPTION: Klassenmodel für Artikelstatus
[[file:pictures/class_articlestatus.png][file:pictures/class_articlestatus.png]]
**** ExchangeRate
#+ATTR_LATEX: :width 9cm
#+CAPTION: Klassenmodel für Wechselkurse
[[file:pictures/class_exchangerate.png][file:pictures/class_exchangerate.png]]
**** Article
#+ATTR_LATEX: :width 9cm
#+CAPTION: Klassenmodel für Artikel
[[file:pictures/class_article.png][file:pictures/class_article.png]]
**** OrderStatus
#+ATTR_LATEX: :width 9cm
#+CAPTION: Klassenmodel für Bestellstatus
[[file:pictures/class_orderstatus.png][file:pictures/class_orderstatus.png]]
**** OrderOfGoods
#+ATTR_LATEX: :width 9cm
#+CAPTION: Klassenmodel für Warenbestellungen
[[file:pictures/class_orderofgoods.png][file:pictures/class_orderofgoods.png]]
**** Picture
#+ATTR_LATEX: :width 9cm
#+CAPTION: Klassenmodel für Bilder
[[file:pictures/class_picture.png][file:pictures/class_picture.png]]
**** Order
#+ATTR_LATEX: :width 9cm
#+CAPTION: Klassenmodel für Bestellungen
[[file:pictures/class_order.png][file:pictures/class_order.png]]
**** ShoppingCart
#+ATTR_LATEX: :width 9cm
#+CAPTION: Klassenmodel für Warenkörbe
[[file:pictures/class_shoppingcart.png][file:pictures/class_shoppingcart.png]]
**** City
#+ATTR_LATEX: :width 9cm
#+CAPTION: Klassenmodel für Städte
[[file:pictures/class_city.png][file:pictures/class_city.png]]
**** Salutation
#+ATTR_LATEX: :width 9cm
#+CAPTION: Klassenmodel für Anreden
[[file:pictures/class_salutation.png][file:pictures/class_salutation.png]]
**** Person
#+ATTR_LATEX: :width 9cm
#+CAPTION: Klassenmodel für Personen
[[file:pictures/class_person.png][file:pictures/class_person.png]]
2017-11-05 11:42:31 +01:00
2017-10-30 22:17:17 +01:00
** Datenbank
*** Anforderungsanalyse
*** Relationen Model
*** Relationen Diagramm
*** SQL Create DB
*** SQL Insert Testdaten
*** SQL Restriktionen erarbeiten
*** SQL Views erstellen
*** SQL Prozeduren und Funktionen erarbeiten
2017-10-31 21:22:50 +01:00
2017-10-30 22:17:17 +01:00
** Benutzerinterface
*** Mockup skizzieren
*** Frontend Umsetzung
*** Backend Umsetzung
2017-10-31 22:11:09 +01:00
*** TODO Testing
2017-11-05 11:42:31 +01:00
**** Test Cases
2017-10-31 21:22:50 +01:00
2017-10-30 22:17:17 +01:00
* Fazit
** Projektmanagement
** Umsetzung
** Gelerntes
2017-10-29 21:03:20 +01:00
2018-01-03 18:28:09 +01:00
* TODO samples [to be deleted] :noexport:
2017-10-29 21:03:20 +01:00
*** Subsubsection
- List
- List
- List
2017-10-30 22:50:09 +01:00
*** TODO Subsubsection
2017-10-29 21:03:20 +01:00
1. Numbered List
2. Numbered List
3. Numbered List
2017-10-30 22:50:09 +01:00
**** NEXT Subsubsubsection
Diese Section müssten man dann zuerst abschliesen damit die
übergeordnete abgeschlossen werden kann.
2017-10-29 21:03:20 +01:00
*** Table
| Name | Funktion | Beschreibung |
|------+----------+--------------|
| | | |
| | | |
| | | |
*** Code Block
2017-10-30 07:54:24 +01:00
#+CAPTION: Python Code Block
2017-10-29 21:03:20 +01:00
#+BEGIN_SRC python
for var in collection:
while variable = True:
#+END_SRC
2017-10-30 07:54:24 +01:00
#+CAPTION: SQL Code Block
2017-10-29 21:03:20 +01:00
#+BEGIN_SRC sql
create FUNCTION functionname()
RETURNS varchar(100)
AS BEGIN
END
go
#+END_SRC
2017-10-30 22:52:41 +01:00
#+LATEX: \begin{sexylisting}{SQL Code Block}
create FUNCTION functionname()
RETURNS varchar(100)
AS BEGIN
END
go
#+LATEX: \end{sexylisting}