diff --git a/projektdokumentation/pictures/activity_automatic.pdf b/projektdokumentation/pictures/activity_automatic.pdf
new file mode 100644
index 0000000..a1228df
Binary files /dev/null and b/projektdokumentation/pictures/activity_automatic.pdf differ
diff --git a/projektdokumentation/pictures/activity_automatic.xml b/projektdokumentation/pictures/activity_automatic.xml
new file mode 100644
index 0000000..dae0194
--- /dev/null
+++ b/projektdokumentation/pictures/activity_automatic.xml
@@ -0,0 +1 @@
+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
\ No newline at end of file
diff --git a/projektdokumentation/pictures/activity_backup.pdf b/projektdokumentation/pictures/activity_backup.pdf
new file mode 100644
index 0000000..b56cd2e
Binary files /dev/null and b/projektdokumentation/pictures/activity_backup.pdf differ
diff --git a/projektdokumentation/pictures/activity_backup.xml b/projektdokumentation/pictures/activity_backup.xml
new file mode 100644
index 0000000..3624811
--- /dev/null
+++ b/projektdokumentation/pictures/activity_backup.xml
@@ -0,0 +1 @@
+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
\ No newline at end of file
diff --git a/projektdokumentation/pictures/activity_delete.pdf b/projektdokumentation/pictures/activity_delete.pdf
new file mode 100644
index 0000000..42dc5a6
Binary files /dev/null and b/projektdokumentation/pictures/activity_delete.pdf differ
diff --git a/projektdokumentation/pictures/activity_delete.xml b/projektdokumentation/pictures/activity_delete.xml
new file mode 100644
index 0000000..9c40e23
--- /dev/null
+++ b/projektdokumentation/pictures/activity_delete.xml
@@ -0,0 +1 @@
+7Vxdm5o4FP41XrYPAQS9HKcz3W7dtrvzdLdztU+UjLAGYkOoY3/9JpIoEFA6ToRpnQsHDiGEnPd85D3RgXMdP76lcBX+QQKEB7YVPA6cNwPbBq7t8X9CsskloyHIBQsaBbLRXnAXfUdSaElpFgUoLTVkhGAWrcrCOUkSNGclGaSUrMvNHgguP3UFF0gT3M0h1qX/RAEL5VvY/l7+G4oWoXoy8Mb5lRiqxvJN0hAGZF0QOTcD55oSwvKj+PEaYTF5al7y+24bru4GRlHC2twQ3rD39+n0fna1/PLXu8/v/3Sn/76SvXyDOJMvPIHzZbbiMjy4dgYTL52HKJFvwDZqWtJ1FGOY8LNJyGLMhYAfzsMIB1O4IZkYUcp4V+psws8ok/rlI3UmlGRJgMTgxNludsTJnMTRXB5jOENYDGqxveGaYEL5pYRsH54ySpZICQe2Y23/dleUzsToHiKMCy0ftn9CThJ2C+MIC4j+jWgAEyjFcrzAlud1D4I4WiRcNud6QPziRE4pogw9NuoK7BDATQeRGDG64U3kDa7EjDQaBaH1HoH+UMrCAvr8kRRCifrFruc9MPiBxMYP4MTWcPI55S/bDhaa6lvNUDNe9Wlrnie7dp48U/PkaFOCAu5P5CmhLCQLkkB8s5dWDKEwb+gxYl8Kx/eiyeuhOEv4YL+UT+9lB/8hxjZytmHGCBftnzslZCV7zEcqhvdjKpBQSElG5+hAO1d6a0gX6KBKnXqdUoQhi76VR1enMHnrJxLxce9MCACnZEOg2kU+MHlXRe27YTwdCa5mMTo0MOZhTEBgHUYM3a3gdkLXPJKWgdC1q9y17MRVNqOw0X/aLreLovZd3TM4I90xuKb8gnccDVytK3EYPy5EKvV6toqT11JYBIOYrYgnKFOh7U8kjVhExKTOCGMkboZBMeSpPq6kQpjwCpMVohF/XaGZNxKbn/aiCY/jOBJQeoOSQMBmE8+IGBW/HEcJZLoza4Tqi43bTwAjsLwKGh3f0+Do1sQpY3D0TYQpGYtkoAIvJEyNWoYp78QodZK+Rpr7uEUh5maHcJAli4HtYZFjz3hG5i3E0deMuwVEReZevaSpfq9YcDwU/UR5OqRzed/wtKT0sPmP3LLtq24Ltg+sGuN3TBn/+BKLft1YBOxKLPLGfrexCOgcBHdVXzPBi0y47rnG9+e6O5tkHGrczVlLHM2XF4fXvcPzqhADNdn3eV0eqFl8/aoJj1oXH1+YN5At50l51DDrqEmYpWvBTl65PAm6WHz/LH7cucEPdfQQyhNl6+3nd3q60xFtqdiK4VG698w0JtD5immpHGAtUJxbYJrysytukDDcdpvwHFCuPC5G+LxGmIO6Obezx+WVhqWzDLVWaA5Gvgaj36GJSNwvhlw5n+OheNw2FJ/KPjRx5OW1qa0Qo7rI30DjyK8ohZtCs5VokB54TmUNrLzZbdv2oyPt/fGh9vwgH/GzEvxAJ2U+oEh3e8+RaP7k8C7Uw7vINOsIkTylTFcwUUnlu1QgLoAi3ukp519oJegPsh23fpm7+4dtAL1ezCAPCreqCR9x8SF6aiKZGBqSeJalZXzwwYQ73GwDaloOqMZijV8xUKCnLOO6jGVsSIcqZWrPkMLkOx/YZfXQh8SlXKl1avLf864e1IuZpAusA14c9MmLK3rYvBevD+5eGR1utYeGHOW5wrx6/WIOe/fxQz7F6WWZ07m3GNldewudqTKzymmfBvbLgQzbOpAGluk8aaCtU0Y3lHLcC1KDf3zM2CpjerrAZymEmHFPILK6l5G+VakCF+hGNBrqNmRsf6FjJOIeogVKq6btNeMG09JeFPl23F7GXdqLY5/Zx4H+qkxlrEdVNupUY0Z2p/arCtZWY05bjdkNnvRMQUlnUPM6RjXOdFvBGFp9q2DYo58f6wocx91TWyLOMbOEA1ZlD5Rrl7swvBfb1hm+SjkLZqnk58JL6cpE/dg/7D8qdKKKVJ2t6RydT7xjkGWC/I1i/iE5gFtCYyiQ/j2jOX7mSxyhB0QvIDo7iKq7EOzRuB2MfGP7rC/kUb8w8gr4le2Prr798byuxm/a6ISjdLv1sVq4WLKMz1962d7dU0j5VteMpH+G+sWLSX6VDz6a/PqnfhHxNJ3pXxgsuQELJg+EBpfEohMLr6YWw86rDqOLjReMp22Jwe+0xODrJYaptO7LoqKftu/5VctvmzCaW1R4Jiy/X7WS9pbf9mcG/FN53KftfNTgI79u1byVsSHSmN3LaJmAVL+CSevyG2iJKHBq+a1pU255g4O2Pds0Waonosb2tb5IgLTez5D7pmcHiFNhS4fVqrxhgDiuESw0x58eF379tl+mM+MrnEphxbMrhZUnb47jp/ufJsub73/gzbn5Hw==
\ No newline at end of file
diff --git a/projektdokumentation/pictures/activity_mount.pdf b/projektdokumentation/pictures/activity_mount.pdf
new file mode 100644
index 0000000..b499480
Binary files /dev/null and b/projektdokumentation/pictures/activity_mount.pdf differ
diff --git a/projektdokumentation/pictures/activity_mount.xml b/projektdokumentation/pictures/activity_mount.xml
new file mode 100644
index 0000000..42ae7c7
--- /dev/null
+++ b/projektdokumentation/pictures/activity_mount.xml
@@ -0,0 +1 @@
+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
\ No newline at end of file
diff --git a/projektdokumentation/pictures/activity_restore.pdf b/projektdokumentation/pictures/activity_restore.pdf
new file mode 100644
index 0000000..7b8f944
Binary files /dev/null and b/projektdokumentation/pictures/activity_restore.pdf differ
diff --git a/projektdokumentation/pictures/activity_restore.xml b/projektdokumentation/pictures/activity_restore.xml
new file mode 100644
index 0000000..c50bbbc
--- /dev/null
+++ b/projektdokumentation/pictures/activity_restore.xml
@@ -0,0 +1 @@
+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
\ No newline at end of file
diff --git a/projektdokumentation/pictures/activity_settings.pdf b/projektdokumentation/pictures/activity_settings.pdf
new file mode 100644
index 0000000..ba24584
Binary files /dev/null and b/projektdokumentation/pictures/activity_settings.pdf differ
diff --git a/projektdokumentation/pictures/activity_settings.xml b/projektdokumentation/pictures/activity_settings.xml
new file mode 100644
index 0000000..6cc1391
--- /dev/null
+++ b/projektdokumentation/pictures/activity_settings.xml
@@ -0,0 +1 @@
+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
\ No newline at end of file
diff --git a/projektdokumentation/pictures/use_case.pdf b/projektdokumentation/pictures/use_case.pdf
new file mode 100644
index 0000000..a69ca84
Binary files /dev/null and b/projektdokumentation/pictures/use_case.pdf differ
diff --git a/projektdokumentation/pictures/use_case.xml b/projektdokumentation/pictures/use_case.xml
new file mode 100644
index 0000000..357100a
--- /dev/null
+++ b/projektdokumentation/pictures/use_case.xml
@@ -0,0 +1 @@
+5Zpdc5s4FIZ/jS+zYxAf5tImadptu81s+rVXGWIU0ERIXiFqJ7++hyAwIOx6XRvjbC4y6EUI9OrhcCR5hPxkdS2CRfyRh5iOzHG4GqHLkWl6EwT/c+GpEGzPK4RIkLCQjLVwS56xEsdKzUiI00ZFyTmVZNEU55wxPJcNLRCCL5vVHjht3nURRFgTbucB1dVvJJRxoU5Md62/xSSK1Z3tsr9JUNZVHUnjIOTLmoSuRsgXnMviKFn5mObWlbYU173ZcLZ6LoGZ3OUCn/HsW/T357t/XXf11b8Sd5/+vFCt/Ahopvo74yIC5frLO/XY8qm0AnqwyA+zhL4RQQKHs2VMJL5dBPNcXwIAoMUyoVAy4FB/xvKGWEi8qknqma8xT7AUT1BFnTWR8k/x4/xhF+XlejQsS9WJ6yPhKjFQBERV22uX4EAZ9R9MMzXTvqRYbLNrOpdcgB95twmw9SG4x/SGp0QSzqDKPZeSJ1CB5idmwfwxEjxjoc9pfh20hh5e/mptTCmJ8mslP7zpTtNz0zE6XEcdpjvH8hzpoIJL2QI0LFIJLWCmjQCoECZ64tTzSo8q1zpMM7pQPRqp1kbXHAr3nt0DtU6UHy0JDrGIB+vl2D25mbZm5hVhz5gyDOplIDHZxdZ2jaEZvVZOZrSjGf2eswcSZSJ4iZfwofPRaGoxsHZooCKvK1T265+n+aebxMJpnhxBiXGGm8aAH+LpOxTGZeGfvAD9guKKyO+NUvPcDRYEeoGFunyjySnPxBz/+isrAxFh+esvAw4beZw+ZLXhsLvSBaUJTIGyH83sr2uI1B1uOIGeVURctNIV16i+AmUjRc/VdfWErdWU2Up8HK2lwhutpRdoqp7vz1GZgv9PQLKGDdLkUCC5qHeQ9GnGawbJHjRIE/tQIE3GvYOkT71eM0jOoEHyzIOB5B4RJGrcPbDps/3IvU8fLv2/IFVnG9Y9ysnRQCbyPJOUMOxXK1tbqds9a3XtU07vO8fjYCmr0dN7vY2qM8s07NZ7be2fslqtlFXPWY79Xh8sZT0LkAYy9ykTS2tvcFoRyfF6B0dfYCRsTrMQa/zUaGmH8Cr81xjjCwynZmGQxjiswCp3OiZ1rnSqttC4P10m2hGvXRPZ3w1ARnP0keXuR5HTXo1xdCKPzZG+5LpnAKoR0AKiHWdKfgyNn8Mysi1UnToElQSgA6HU5+JLt6/6KmhvIOmB6DdAsnYMNuagQEKtmGQbZwvSq10O7uZtWBxdtLYH3PG+KVKbSMM2e+XIPNgi3tBS63PgyBu3Jmn759oWOjFIpgZStZdP8529mZPO48FtQRtGr/v5W7OyLusSnjF5YtfsFqWmNzm9Z3pGHmQwS4O3MccshVObfhQRPMIbS7A4g317a4KO6DQU1z9UK+LA+sd+6Oon
\ No newline at end of file
diff --git a/projektdokumentation/projektdokumentation.org b/projektdokumentation/projektdokumentation.org
index aa61ebb..af52e69 100644
--- a/projektdokumentation/projektdokumentation.org
+++ b/projektdokumentation/projektdokumentation.org
@@ -564,6 +564,399 @@ Abbildung:([[fig:swot]]) zu sehen.
[[file:pictures/swot_analyse.pdf]]
#+attr_latex: :center :width 0.9\textwidth
+** Anforderungskatalog
+
+Der Anforderungskatalog entspricht 1:1 den Zielen welche in der Tabelle
+[[tab:projektziele]] definiert wurden.
+
+** Use Cases
+
+Ein Use Case sammelt alle möglichen Szenarien, die eintreten können,
+wenn ein Akteur versucht, mit Hilfe des betrachteten Systems ein
+bestimmtes Ziel zu erreichen. Dabei beschreibt er, was beim Versuch der
+Zielerreichung passieren kann. Je nach Ablauf kann auch ein Fehlschlag
+ein Ergebnis eines Anwendungsfalls sein (e.g. falsches Passwort beim
+Login). Dabei wird die technische Lösung nicht konkret beschrieben.
+Die Detailstufe kann dabei sehr unterschiedlich sein.footcite:usecase
+
+*** Anwendungsfalldiagramm
+
+"Ein Anwendungsfalldiagramm ... ist eine der 14 Diagrammarten der
+Unified Modelling Language (UML), einer Sprache für die Modellierung
+der Strukturen und des Verhaltens von Software- und anderen Systemen.
+Es stellt Anwendungsfälle und Akteure mit ihren jeweiligen
+Abhängigkeiten und Beziehungen dar."\footcite{usecasediagramm}
+
+Das Anwendungsfalldiagramm für das gls:borg gls:gui ist in der Abbildung:
+([[fig:usecase]]) zu sehen.
+
+#+LATEX:\newpage
+#+LATEX:\begin{landscape}
+#+CAPTION: Anwendungsfalldiagramm
+#+ATTR_LATEX: :height.9\textwidth
+#+NAME: fig:usecase
+[[file:pictures/use_case.pdf]]
+#+LATEX:\end{landscape}
+#+LATEX:\newpage
+
+*** Use Cases Detailbeschreibung
+
+Use Cases werden in der Regel mit Hilfe einer sogenannten Use Case Schablone im
+Detail beschrieben, damit klar ist, wie der Ablauf jeweils genau aussieht. Die
+in diesem Projekt verwendete Schablone wurde von Alistair Cockburn definiert.
+
+Die nachfolgend aufgeführten Use Cases, Tabellen:([[tab:uc_backup]], [[tab:uc_delete]],
+[[tab:uc_restore]], [[tab:uc_file]], [[tab:uc_mount]], [[tab:uc_config]], [[tab:uc_automatic]])
+wurden dem Anwendungsfalldiagramm, Abbildung:([[fig:usecase]]), entnommen und
+zusätzlich noch um jeweils ein Aktivitätsdiagramm , Abbildungen:
+([[fig:activity_backup]], [[fig:activity_delete]], [[fig:activity_restore]],
+[[fig:activity_mount]], [[fig:activity_settings]], [[fig:activity_automatic]]), erweitert
+um den Ablauf verständlicher zu machen.
+
+Ein Aktivitätsdiagramm ist dabei ein hilfreiches UML Diagramm zum Erweitern von
+Use Cases und zeigt einem gut die Zuständigkeiten der Aktoren auf.
+
+**** Use Case 1.0 Backup erstellen
+
+#+LATEX:{\footnotesize
+#+CAPTION: Use Case 1.0 Backup erstellen
+#+ATTR_LATEX::environment longtable :align |>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}| :placement [H]
+#+NAME: tab:uc_backup
+|---------------------+--------------------------------|
+| | <30> |
+| *Identifier + Name* | 1.0 Backup erstellen |
+|---------------------+--------------------------------|
+| *Description* | Das erstellen einer Datensicherung durch gls:borg anstossen. |
+|---------------------+--------------------------------|
+| *Actors* | Benutzer |
+|---------------------+--------------------------------|
+| *Status* | Freigegeben |
+|---------------------+--------------------------------|
+| *Includes* | - |
+|---------------------+--------------------------------|
+| *Trigger* | User möchte ein Backup erstellen. |
+|---------------------+--------------------------------|
+| *Preconditions* | Die Applikation wurde gestartet. |
+|---------------------+--------------------------------|
+| *Postconditions* | Das erstellte Backup wird angezeigt. |
+|---------------------+--------------------------------|
+| *Normal Flow* | 1. Den Quellpfad auswählen. |
+| | 2. Den Button "Backup" anklicken. |
+| | 3. Ein Pop mit Fortschrittsbalken erscheint und zeigt die Zeit bis zum Ende des Backups an. |
+| | 4. Am Ende des Backups verschwindet das Pop-up wieder. |
+| | 5. Die Liste der Backups aktualisiert sich. |
+|---------------------+--------------------------------|
+| *Alternative Flow* | - |
+|---------------------+--------------------------------|
+| *Notes* | - |
+|---------------------+--------------------------------|
+| *UC History* | 1.0 Draft erstellt durch AZ |
+|---------------------+--------------------------------|
+| *Author* | A. Zweili |
+|---------------------+--------------------------------|
+| *Date* | 30.12.2018 |
+|---------------------+--------------------------------|
+#+LATEX:}
+#+caption: Aktivitätsdiagramm zum Erstellen eines Backups
+#+name: fig:activity_backup
+[[file:pictures/activity_backup.pdf]]
+#+attr_latex: :center :placement [H]
+
+#+LATEX:\newpage
+**** Use Case 2.0 Backup löschen
+
+#+LATEX:{\footnotesize
+#+CAPTION: Use Case 2.0 Backup löschen
+#+ATTR_LATEX::environment longtable :align |>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}| :placement [H]
+#+NAME: tab:uc_delete
+|---------------------+--------------------------------|
+| | <30> |
+| *Identifier + Name* | 2.0 Backup löschen |
+|---------------------+--------------------------------|
+| *Description* | Ein zuvor erstelltes Backup wird gelöscht. |
+|---------------------+--------------------------------|
+| *Actors* | Benutzer |
+|---------------------+--------------------------------|
+| *Status* | Freigegeben |
+|---------------------+--------------------------------|
+| *Includes* | - |
+|---------------------+--------------------------------|
+| *Trigger* | Ein User möchte ein bestehendes Backup löschen. |
+|---------------------+--------------------------------|
+| *Preconditions* | Use Case 1.0 ausgeführt. |
+|---------------------+--------------------------------|
+| *Postconditions* | Das gelöschte Backup wird nicht mehr aufgelistet. |
+|---------------------+--------------------------------|
+| *Normal Flow* | 1. Ein Backup aus der Liste auswählen. |
+| | 2. Den Button "Delete anklicken". |
+| | 3. Ein Bestätigungsdialog erscheint. |
+| | 4. Im Dialog den "Ok" Button anklicken. |
+|---------------------+--------------------------------|
+| *Alternative Flow* | 1. Ein Backup aus der Liste auswählen. |
+| | 2. Den Button "Delete anklicken". |
+| | 3. Ein Bestätigungsdialog erscheint. |
+| | 4. Die Aktion mit einem Klick auf den "Cancel" Button abbrechen. |
+|---------------------+--------------------------------|
+| *Notes* | - |
+|---------------------+--------------------------------|
+| *UC History* | 1.0 Draft erstellt durch AZ |
+|---------------------+--------------------------------|
+| *Author* | A. Zweili |
+|---------------------+--------------------------------|
+| *Date* | 30.12.2018 |
+|---------------------+--------------------------------|
+#+LATEX:}
+#+caption: Aktivitätsdiagramm zum Löschen eines Backups
+#+name: fig:activity_delete
+[[file:pictures/activity_delete.pdf]]
+#+attr_latex: :center :placement [H]
+
+#+LATEX:\newpage
+**** Use Case 3.0 Backup wiederherstellen
+
+#+LATEX:{\footnotesize
+#+CAPTION: Use Case 3.0 Backup wiederherstellen
+#+ATTR_LATEX::environment longtable :align |>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}| :placement [H]
+#+NAME: tab:uc_restore
+|---------------------+--------------------------------|
+| | <30> |
+| *Identifier + Name* | 3.0 Backup wiederherstellen |
+|---------------------+--------------------------------|
+| *Description* | Alle Dateien eines Backups wiederherstellen. |
+|---------------------+--------------------------------|
+| *Actors* | User |
+|---------------------+--------------------------------|
+| *Status* | Freigegeben |
+|---------------------+--------------------------------|
+| *Includes* | - |
+|---------------------+--------------------------------|
+| *Trigger* | Daten sollen wieder hergestellt werden. |
+|---------------------+--------------------------------|
+| *Preconditions* | Use Case 1.0 wurde ausgeführt. |
+|---------------------+--------------------------------|
+| *Postconditions* | Die Dateien aus dem Backup wurde im angegeben Pfad wiederhergestellt. |
+|---------------------+--------------------------------|
+| *Normal Flow* | 1. Ein Backup aus der Liste auswählen. |
+| | 2. Den Button "Restore" klicken. |
+| | 3. Ein Pop-Up zur Auswahl eines Zielpfades erscheint. |
+| | 4. Den Zielpfad mit klick auf "Choose" bestätigen. |
+| | 5. Ein Dateiexplorer öffnet sich mit dem ausgewählt Pfad und enthält die Dateien aus dem Backup. |
+|---------------------+--------------------------------|
+| *Alternative Flow* | 1. Ein Backup aus der Liste auswählen. |
+| | 2. Den Button "Restore" klicken. |
+| | 3. Ein Pop-Up zur Auswahl eines Zielpfades erscheint. |
+| | 4. Die Aktion mit klick auf "Cancel" abbrechen. |
+|---------------------+--------------------------------|
+| *Notes* | - |
+|---------------------+--------------------------------|
+| *UC History* | 1.0 Draft erstellt durch AZ |
+|---------------------+--------------------------------|
+| *Author* | A. Zweili |
+|---------------------+--------------------------------|
+| *Date* | 30.12.2018 |
+|---------------------+--------------------------------|
+#+LATEX:}
+
+#+caption: Aktivitätsdiagramm zum Wiederherstellen eines Backups
+#+name: fig:activity_restore
+[[file:pictures/activity_restore.pdf]]
+#+attr_latex: :center :placement [H]
+
+#+LATEX:\newpage
+**** Use Case 4.0 Einzelne Datei wiederherstellen
+
+#+LATEX:{\footnotesize
+#+CAPTION: Use Case 4.0 Einzelne Datei wiederherstellen
+#+ATTR_LATEX::environment longtable :align |>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}| :placement [H]
+#+NAME: tab:uc_file
+|---------------------+--------------------------------|
+| | <30> |
+| *Identifier + Name* | 4.0 Einzelne Datei wiederherstellen |
+|---------------------+--------------------------------|
+| *Description* | Das spezifische Wiederherstellen von einer oder mehreren Dateien. |
+|---------------------+--------------------------------|
+| *Actors* | User |
+|---------------------+--------------------------------|
+| *Status* | Freigegeben |
+|---------------------+--------------------------------|
+| *Includes* | Use Case 4.1 |
+|---------------------+--------------------------------|
+| *Trigger* | Daten sollen wieder hergestellt werden. |
+|---------------------+--------------------------------|
+| *Preconditions* | Use Case 1.0 wurde ausgeführt. |
+|---------------------+--------------------------------|
+| *Postconditions* | - |
+|---------------------+--------------------------------|
+| *Normal Flow* | 1. Ein Backup aus der Liste auswählen. |
+| | 2. Auf den Button "Mount" klicken. |
+| | 3. Use Case 4.1 wird ausgeführt. |
+| | 4. Ein Dateiexplorer öffnet sich mit dem ausgewählt Pfad und enthält die Dateien aus dem Backup. |
+| | 5. Wird die Applikation geschlossen wird das Backup ausgehängt. |
+|---------------------+--------------------------------|
+| *Alternative Flow* | - |
+|---------------------+--------------------------------|
+| *Notes* | - |
+|---------------------+--------------------------------|
+| *UC History* | 1.0 Draft erstellt durch AZ |
+|---------------------+--------------------------------|
+| *Author* | A. Zweili |
+|---------------------+--------------------------------|
+| *Date* | 30.12.2018 |
+|---------------------+--------------------------------|
+#+LATEX:}
+
+#+caption: Aktivitätsdiagramm für das spezifische Wiederherstellen einer Datei
+#+name: fig:activity_mount
+[[file:pictures/activity_mount.pdf]]
+#+attr_latex: :center :placement [H]
+
+#+LATEX:\newpage
+**** Use Case 4.1 Backup mounten
+
+#+LATEX:{\footnotesize
+#+CAPTION: Use Case 4.1 Backup mounten
+#+ATTR_LATEX::environment longtable :align |>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}| :placement [H]
+#+NAME: tab:uc_mount
+|---------------------+--------------------------------|
+| | <30> |
+| *Identifier + Name* | 4.1 Backup mounten |
+|---------------------+--------------------------------|
+| *Description* | Ein Backup wird als FUSE gemountet. |
+|---------------------+--------------------------------|
+| *Actors* | Borg GUI, gls:borg |
+|---------------------+--------------------------------|
+| *Status* | Freigegeben |
+|---------------------+--------------------------------|
+| *Includes* | - |
+|---------------------+--------------------------------|
+| *Trigger* | Das Borg GUI gibt an gls:borg den Input zum mounten weiter. |
+|---------------------+--------------------------------|
+| *Preconditions* | Use Case 1.0 wurde ausgeführt. |
+|---------------------+--------------------------------|
+| *Postconditions* | Das Backup wurde gemountet. |
+|---------------------+--------------------------------|
+| *Normal Flow* | 1. Borg GUI sammelt die Backup ID in Use Case 4.0. |
+| | 2. Borg GUI übergibt die Backup ID an gls:borg zusammen mit einem Zielpfad. |
+| | 3. gls:borg hängt das Backup als FUSE Laufwerk am Zielpfad ein. |
+| | 4. gls:borg meldet Erfolg an Borg GUI. |
+|---------------------+--------------------------------|
+| *Alternative Flow* | 1. Borg GUI sammelt die Backup ID in Use Case 4.0. |
+| | 2. Borg GUI übergibt die Backup ID an gls:borg zusammen mit einem Zielpfad. |
+| | 3. gls:borg hängt das Backup als FUSE Laufwerk am Zielpfad ein. |
+| | 4. gls:borg meldet einen Fehler an Borg GUI. |
+|---------------------+--------------------------------|
+| *Notes* | - |
+|---------------------+--------------------------------|
+| *UC History* | 1.0 Draft erstellt durch AZ |
+|---------------------+--------------------------------|
+| *Author* | A. Zweili |
+|---------------------+--------------------------------|
+| *Date* | 30.12.2018 |
+|---------------------+--------------------------------|
+#+LATEX:}
+
+#+LATEX:\newpage
+**** Use Case 5.0 Konfiguration ändern
+
+#+LATEX:{\footnotesize
+#+CAPTION: Use Case 5.0 Konfiguration ändern
+#+ATTR_LATEX::environment longtable :align |>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}| :placement [H]
+#+NAME: tab:uc_config
+|---------------------+--------------------------------|
+| | <30> |
+| *Identifier + Name* | 5.0 Konfiguration ändern |
+|---------------------+--------------------------------|
+| *Description* | Das Verändern und Speichern der Konfiguration der Applikation. |
+|---------------------+--------------------------------|
+| *Actors* | User |
+|---------------------+--------------------------------|
+| *Status* | Freigegeben |
+|---------------------+--------------------------------|
+| *Includes* | - |
+|---------------------+--------------------------------|
+| *Trigger* | Ein User möchte die Einstellungen der Applikation anpassen. |
+|---------------------+--------------------------------|
+| *Preconditions* | Applikation gestartet. |
+|---------------------+--------------------------------|
+| *Postconditions* | - |
+|---------------------+--------------------------------|
+| *Normal Flow* | 1. Auf den Button "Settings" klicken. |
+| | 2. Ein neues Fenster mit den Einstellungen öffnet sich. |
+| | 3. Der Benutzer ändert mindestens eine Einstellung. |
+| | 4. Der Button "OK" wird angeklickt. |
+| | 5. Die Konfiguration wird in die Konfigurationsdatei geschrieben und in der Applikation geladen. |
+|---------------------+--------------------------------|
+| *Alternative Flow* | 1. Auf den Button "Settings" klicken. |
+| | 2. Ein neues Fenster mit den Einstellungen öffnet sich. |
+| | 3. Der Benutzer kann Einstellungen ändern. |
+| | 4. Der Button "Cancel" wird angeklickt. |
+| | 5. Jeglich Änderungen werden verworfen und die Konfigurationsdatei bleibt im aktuellen Zustand. |
+|---------------------+--------------------------------|
+| *Notes* | - |
+|---------------------+--------------------------------|
+| *UC History* | 1.0 Draft erstellt durch AZ |
+|---------------------+--------------------------------|
+| *Author* | A. Zweili |
+|---------------------+--------------------------------|
+| *Date* | 30.12.2018 |
+|---------------------+--------------------------------|
+#+LATEX:}
+
+#+caption: Aktivitätsdiagramm zum Ändern von Einstellungen
+#+name: fig:activity_settings
+[[file:pictures/activity_settings.pdf]]
+#+attr_latex: :center :placement [H]
+
+#+LATEX:\newpage
+**** Use Case 6.0 automatische Backups aktivieren
+
+#+LATEX:{\footnotesize
+#+CAPTION: Use Case 6.0 automatische Backups aktivieren
+#+ATTR_LATEX::environment longtable :align |>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}| :placement [H]
+#+NAME: tab:uc_automatic
+|---------------------+--------------------------------|
+| | <30> |
+| *Identifier + Name* | 6.0 automatische Backups aktivieren |
+|---------------------+--------------------------------|
+| *Description* | Ein Systemdienst wird hinterlegt zum ausführen automatischer Backups. |
+|---------------------+--------------------------------|
+| *Actors* | User |
+|---------------------+--------------------------------|
+| *Status* | Freigegeben |
+|---------------------+--------------------------------|
+| *Includes* | - |
+|---------------------+--------------------------------|
+| *Trigger* | Ein User möchte automatisierte Backups haben. |
+|---------------------+--------------------------------|
+| *Preconditions* | Eine funktionierende Konfiguration muss hinterlegt sein. |
+| | Applikation gestartet. |
+|---------------------+--------------------------------|
+| *Postconditions* | Ein Systemdienst wurde erstellt welcher jeden Tag ein Backup macht. |
+|---------------------+--------------------------------|
+| *Normal Flow* | 1. Auf den Button "Settings" klicken. |
+| | 2. Bei der Option "Automatic Backups" den Hacken setzen. |
+| | 3. Die Settings mit klick auf "Ok" schliessen und speichern. |
+|---------------------+--------------------------------|
+| *Alternative Flow* | 1. Auf den Button "Settings" klicken. |
+| | 2. Bei der Option "Automatic Backups" den Hacken setzen. |
+| | 3. Die Aktion mit klick auf "Cancel" abrechen. |
+|---------------------+--------------------------------|
+| *Notes* | - |
+|---------------------+--------------------------------|
+| *UC History* | 1.0 Draft erstellt durch AZ |
+|---------------------+--------------------------------|
+| *Author* | A. Zweili |
+|---------------------+--------------------------------|
+| *Date* | 30.12.2018 |
+|---------------------+--------------------------------|
+#+LATEX:}
+
+#+caption: Aktivitätsdiagramm zum Aktivieren von automatischen Backups
+#+name: fig:activity_automatic
+[[file:pictures/activity_automatic.pdf]]
+#+attr_latex: :center :placement [H]
+
+#+LATEX:\newpage
* TODO Konzept
** Varianten
@@ -1027,10 +1420,7 @@ Lernfaktor bei Electron wohl nicht so gross wie etwa bei Qt oder Gtk.
Aufgrund der erreichten Punktzahl, Tabelle:([[tab:result]]), bei den vorhergehenden
Variantenbewertungen, wurde entschieden für das Backend der Applikation auf
-Python zu setzen und fürs Frontend Qt zu benutzen. Ein kleiner Test zeigt auch
-das die Kombination ohne grosse Probleme und Anpassung auf Windows, Linux und
-OS X läuft, Abbildung:([[fig:hello_world]]).
-
+Python zu setzen und fürs Frontend Qt zu benutzen.
#+CAPTION: Variantenbewertung Ergebnis
#+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{4.5cm}|r| :placement [H]
#+NAME: tab:result
@@ -1047,11 +1437,6 @@ OS X läuft, Abbildung:([[fig:hello_world]]).
| Electron | 275 |
|------------------------------------+-----------------------------------------------|
-#+caption: Python und Qt Applikation unter Windows (links), Linux (rechts) und OS X (unten)
-#+name: fig:hello_world
-[[file:pictures/hello_world.png]]
-#+attr_latex: :center
-
** Vorkenntnisse
Die benötigten Vorkenntnisse wurden in den vorangegangenen Semestern erarbeitet
@@ -1059,23 +1444,6 @@ und sind in der Basis gefestigt. Erfahrungen im Bereich der Entwicklung von
Desktop Applikationen sind zum Teil vorhanden. Jedoch hauptsächlich für Windows
Systeme und C#.
-
-** TODO User Stories
-
-PLACEHOLDER
-
-** TODO Use Cases
-
-PLACEHOLDER
-
-**** TODO Anwendungsfalldiagramm
-
-PLACEHOLDER
-
-**** TODO Use Cases Detailbeschreibung
-
-PLACEHOLDER
-
** TODO Testing
PLACEHOLDER
@@ -1085,6 +1453,19 @@ PLACEHOLDER
PLACEHOLDER
* TODO Realisierung
+** TODO Cross-plattform Kompatibilität
+
+Um sicherzugehen das die gewählten Technologien auch den Anforderungen
+entsprechen wurde ein kleines "Hello World" Programm mit Python3 und Qt
+geschrieben. Dieses läuft ohne jegliche Probleme und Anpassung auf Windows,
+Linux und OS X. Wie in den Screenshots in Abbildung:([[fig:hello_world]]) zu sehen
+ist.
+
+#+caption: Python und Qt Applikation unter Windows (links), Linux (rechts) und OS X (unten)
+#+name: fig:hello_world
+[[file:pictures/hello_world.png]]
+#+attr_latex: :center
+
** TODO Benutzerinterface
**** TODO Inspiration
diff --git a/projektdokumentation/projektdokumentation.tex b/projektdokumentation/projektdokumentation.tex
index 3749b68..9c72766 100644
--- a/projektdokumentation/projektdokumentation.tex
+++ b/projektdokumentation/projektdokumentation.tex
@@ -1,31 +1,31 @@
\section{Über dieses Dokument}
-\label{sec:org8394a2a}
+\label{sec:org1c713c6}
Im nachfolgenden Abschnitt finden Sie allgemeine Informationen zu
diesem Dokument.
\subsection{Beschreibung}
-\label{sec:org7e61b0f}
+\label{sec:org41c3a76}
Diese Arbeit hat zum Ziel die Planung und Erstellung einer grafischen
Oberfläche zum einfachen Bedienen der Software \gls{borg} \footcite{borgbackup}
sowie deren Konfiguration, durchzuführen.
\subsection{Zweck und Inhalt}
-\label{sec:org5e0fb2f}
+\label{sec:org9faa4d2}
Zweck dieses Dokumentes ist die vollständige und nachvollziehbare Dokumentation
zur Diplomarbeit von Andreas Zweili.
\subsection{Aufbau}
-\label{sec:org9632371}
+\label{sec:org70fef26}
Alle Inhalte sind chronologisch sortiert, vom ältesten zum jüngsten
Ereignis, und nach Kapiteln getrennt.
\subsection{Lizenz}
-\label{sec:org6f468a4}
+\label{sec:org287d965}
Dieses Dokument wurde von Andreas Zweili im Rahmen der Diplomarbeit an der IBZ
Schule erstellt und steht unter der \gls{cc} BY-SA 4.0 \footcite{cc} Lizenz.
@@ -33,9 +33,9 @@ Dadurch darf die Arbeit unter beibehalten der Lizenz kopiert und
weiterverarbeitet werden. Zusätzlich muss der Urheber gennant werden.
\section{Initialisierung}
-\label{sec:org71a0502}
+\label{sec:org3f1e16c}
\subsection{Vision}
-\label{sec:orgb55d3a4}
+\label{sec:org23dc745}
Die Software soll \gls{borg} für den durschnittlichen Computer User zugänglich
machen. Die Backups sollen dabei schnell und unkompliziert erstellt werden
@@ -46,7 +46,7 @@ Die besten Backups sind solche bei denen man gar nicht mehr weiss das man sie
hat bis man sie braucht.
\subsection{Ausgangslage}
-\label{sec:orgb9a4fdf}
+\label{sec:org620db46}
\gls{borg} ist deshalb interessant weil es wärend einem Backup relativ
wenig Ressource im Vergleich zu anderen Systemen benötigt und schon relativ
@@ -81,7 +81,7 @@ Das Projekt muss dabei vom Studenten in Eigenarbeit und einer Zeit von 250
Stunden bis zum 18. März 2019 erarbeitet werden.
\subsection{Projektziele}
-\label{sec:orgb764186}
+\label{sec:org618e1a1}
Das Hauptziel der Arbeit soll es sein eine einfach nutzbare grafische
Oberfläche für \gls{borg} zu entwickeln. Da \gls{borg} selber freie Software ist und
@@ -106,7 +106,7 @@ damit es in der Zukunft möglich ist das Projekt auf andere Plattformen
auszuweiten.
\subsubsection{Ziele inklusive Gewichtung}
-\label{sec:org2d2a3a5}
+\label{sec:org21a0056}
Im Projektantrag wurden vorgängig vollgende Ziele definiert und entsprechend
gewichtet. Die Gewichtung wurde dabei so vorgenommen, dass Ziele mit einer
@@ -196,18 +196,18 @@ integriert werden und ist nicht unwichtig.
\hline
32. & Die Applikation prüft, ob sie sich im richtigen Netzwerk befindet bevor sie eine Verbindung zum Server aufbaut. & & 2\\
\hline
-\caption{\label{tab:org0d17f53}
+\caption{\label{tab:org0d40904}
Projektziele}
\\
\end{longtable}
\newpage
\subsection{Projektabgrenzung}
-\label{sec:org880aef4}
+\label{sec:orgf37414a}
Die Anwendung beschränkt sich darauf Funktionen von \gls{borg} grafisch
darzustellen oder nützlich zu erweitern soweit dies über die \gls{api} möglich
-ist. Wie in, Abbildung:(\ref{fig:org76deb14}), zu sehen ist werden die Aktion effektiv
+ist. Wie in, Abbildung:(\ref{fig:org1c947a6}), zu sehen ist werden die Aktion effektiv
immer vom Borg Binary ausgeführt und nicht von der grafischen Oberfläche. Eine
Erweiterung von \gls{borg} ist nicht vorgesehen. Backup und Verschlüsselung sind
heikle Themen und sollten umbedingt nur von Experten angegangen werden. Das
@@ -223,12 +223,12 @@ entdeckt werden, wird dieser dem Projekt melden jedoch nicht selber beheben.
\begin{figure}[htbp]
\centering
\includegraphics[width=.9\linewidth]{pictures/kontextdiagramm.pdf}
-\caption{\label{fig:org76deb14}
+\caption{\label{fig:org1c947a6}
Kontextdiagramm des Borg GUI}
\end{figure}
\subsection{Projektmethode}
-\label{sec:org80b7496}
+\label{sec:org1941b58}
Für das Projekt wurde die Wasserfall-methode gewählt. Da nur eine
einzige Person am Projekt arbeitet kann nur ein Task nach dem anderen
@@ -237,7 +237,13 @@ Somit macht das iterative Vorgehen der Wassfall-methode für dieses Projekt am
meisten Sinn.
\subsection{Konfigurationsmanagement}
-\label{sec:org4265bb4}
+\label{sec:orgfa81dea}
+
+In der nachfolgenden Sektion wird definiert wie die Software und Dokumentation
+versioniert wird und welche allgemeinen Werkzeuge eingesetzt werden.
+
+\subsubsection{Versionskontrolle}
+\label{sec:org917940b}
Die komplette Dokumentation, der Quellcode der Applikation sowie jeglich
zusäzliche Dokumente wie etwa die Zeitplanung werden mittels der Software Git
@@ -263,8 +269,67 @@ repräsentiert. Dies gilt auch für das Repository der Dokumentation. Der Master
Branch der Dokumentation sollte maximal mit zwei Befehlen \texttt{make clean} und
\texttt{make} "`kompilierbar "' sein.
+Als Software für die Versionskontrolle wurde Git \footcite{git} aus folgenden
+Gründen ausgewählt:
+
+\begin{itemize}
+\item Ist der de facto Standard bei Versionskontrollsoftware
+\item Läuft auf allen gängigen Betriebssystemen
+\item Es gäbe gratis Services die man nutzen könnte (Github, Gitlab)
+\item Man kann offline arbeiten und Commits erstellen
+\item Der Author hat bereits einen eigenen Git Server zur Verfügung
+\item Der Author ist bereits mit Git aus vorhergehenden Projekten vertraut,
+dadurch muss man keine Ressourcen aufwenden eine neue Software zu lernen.
+Zusätzlich hat sich Git in den vorhergehenden Projekten als robuste
+und schnelle Software erwiesen.
+\item Git ist \gls{libre} unter der \gls{gpl} v2.
+\end{itemize}
+
+\subsubsection{Editor}
+\label{sec:orga55c946}
+
+Sowohl bei der Dokumentation wie auch bei der Programmierung wurde
+hauptsächlich der Editor GNU Emacs \footcite{emacs} verwendet. GNU Emacs ist mit
+32 Jahren (obwohl seine Wurzeln bis ins Jahre 1976 zurückgehen) wohl eines der
+ältesten noch aktiven Software Projekte. Emacs ist \gls{libre} unter der
+\gls{gpl} v3. Emacs wurde gewählt da es ein schneller, schlanker und sehr
+flexibler Texteditior ist. Von normaler Textmanipulation über Taskmanagement
+und Emails schreiben ist alles möglich.
+
+\subsubsection{Dokumentation}
+\label{sec:org71a0a15}
+
+Diese Dokumentation wurde in Org-mode \footcite{orgmode}, einer Erweiterung für
+den Text Editor Emacs, geschrieben. Die Syntax erinnert an Markdown und
+Org-mode bietet einem eine vielzahl an Hilfen dafür inklusive dem erstellen von
+Tabellen und Spreadsheet Funktionen. Für finalle Version des Dokuments kann
+Org-mode die ursprünglich Textdatei über \LaTeX{} in ein PDF exportieren.
+
+\LaTeX{} \footcite{latex} ist eine Software, welche einem die Benutzung des
+Textsatzsystems TeXs vereinfacht. \LaTeX{} wurde gegenüber einem "`What You See Is
+What You Get"' (z.Bsp. MS. Word), Editor gewählt weil es einem mit seiner Markup
+Sprache erlaubt das Dokument in Text Dateien zu erstellen, gerade für
+Programmiere ist dies eine sehr interessante Lösung. Dadurch, dass \LaTeX{} auch
+nur aus reinen Textdateien besteht, kann man die Dokumente auch ohne weiteres
+in die Versionskontrollsoftware einchecken und die Entwicklung im Log
+zurückverfolgen. \LaTeX{} ist \gls{libre} unter der \LaTeX{} Project Public
+License.
+
+Die Grafiken in diesem Dokument wurden hauptsächlich mit dem Vektor Grafik
+Editor Inkscape \footcite{inkscape} erstellt. Inkscape ist \gls{libre} unter der
+GNU Public License v3.
+
+Die Diagramme wurden mit Draw.io \footcite{draw} erstellt. Draw.io ist \gls{libre}
+unter Apache Lizenz Version 2.0 \footcite{apache} und kann sowohl als Desktop
+Applikation wie auch als Webanwendung genutzt werden.
+
+Beim Design der Arbeit wurden soweit als möglich die typgraphischen Regeln aus
+dem Buch "`Practical Typography"' von Matthew Butterick \footcite{typo} angewandt.
+Bei den Diagrammen wurden aussschliesslich Farben aus der von Google
+entwickelten Design Sprache "`Material"'\footcite{material} eingesetzt.
+
\subsection{Zeitplanung}
-\label{sec:orgb1efd39}
+\label{sec:org166c579}
Die detaillierte Zeitplanung ist dem Ganttchart in der Datei
\href{Zeitplanung\_Andreas\_Zweili.html}{Zeitplanung\_Andreas\_Zweili.html} zu entnehmen. Bei der Zeitplanung wurde darauf
@@ -282,7 +347,7 @@ Dadurch steht wärend des Projektes etwas mehr Zeit zur verfügung als sonst mit
einer 100\% Arbeitsstelle möglich wäre.
\subsection{Controlling}
-\label{sec:orgdc0083e}
+\label{sec:orgb38b852}
Das Controlling wird verwendet um zu kontrollieren das die eigentliche Planung
mit dem effektiv geleisteten Aufwand respektive den effektiv verwendeten
@@ -292,7 +357,7 @@ werden.
\newpage
\begin{landscape}
\subsubsection{Zeit}
-\label{sec:org40b0db6}
+\label{sec:org0e78946}
\begin{longtable}{|p{3cm}|p{5cm}|p{3cm}|p{7cm}|}
\hline
@@ -313,14 +378,14 @@ werden.
\hline
& \textbf{Gesamter Aufwand} & & \\
\hline
-\caption{\label{tab:org666fef9}
+\caption{\label{tab:org5852a93}
Zeitcontrolling}
\\
\end{longtable}
\newpage
\subsubsection{Ressourcen}
-\label{sec:orgc2ff234}
+\label{sec:org37ceb80}
Folgende Ressourcen werden wärend der Arbeit benötigt:
\begin{longtable}{|p{5cm}|p{3cm}|p{3cm}|p{7cm}|}
@@ -346,14 +411,14 @@ Korrekturleser & 3 & & \\
iPad & 1 & 1 & \\
Notebook & 1 & 1 & \\
\hline
-\caption{\label{tab:orgb4a7b96}
+\caption{\label{tab:orgd6e13a4}
Ressourcen}
\\
\end{longtable}
\end{landscape}
\subsubsection{Kosten}
-\label{sec:org3b0553f}
+\label{sec:org0dbd731}
Werden die internen Lohnkosten des Projektleiters auf ca. 60 CHF pro Stunde
geschätzt ergeben sich aus der Zeitplanung somit theoretische Kosten von 19'200
@@ -379,25 +444,25 @@ Meeting \#3 & 5 & 300\\
\textbf{Total} & 320 & 19200\\
\hline
\end{tabular}
-\caption{\label{tab:org2678f20}
+\caption{\label{tab:orga39f1c0}
Kostenrechnung}
\end{table}
\subsection{Projektrisiken}
-\label{sec:org2b56deb}
+\label{sec:org77d2db2}
Das Risikomanagement dient dazu Risiken im Projekt zu erkennen und Massnahmen
zur Vermeidung der Risiken zu definieren. Dadurch steht man ihnen nicht
unvorbereitet gegenüber sollten sie eintreffen.
\subsubsection{Risikobeschreibung}
-\label{sec:orgfec4900}
+\label{sec:org1b0ce60}
-In der Tabelle: (\ref{tab:orgc2b848f}), sind die Risiken des Projektes
+In der Tabelle: (\ref{tab:org2372ddb}), sind die Risiken des Projektes
gemeinsam mit ihren Gegenmassnahmen aufgelistet. Jedes Risiko wurde
-entsprechend der Tabelle: (\ref{tab:org463c5d5}) nach der Wahrscheinlichkeit
-des Eintreffens bewertet und entsprechend der Tabelle: (\ref{tab:org7556e15}) nach
+entsprechend der Tabelle: (\ref{tab:org63dd697}) nach der Wahrscheinlichkeit
+des Eintreffens bewertet und entsprechend der Tabelle: (\ref{tab:orgb488f77}) nach
seiner Auswirkung bewertet.
\begin{longtable}{|p{0.45\textwidth}|p{0.45\textwidth}|}
@@ -430,15 +495,15 @@ User haben keine Zeit für Utility Tests. & Vorgängig einen Termin abmachen.\\
\hline
\gls{borg} ändert fundamental seine \gls{api}. & Gegen eine fixe Version von \gls{borg} entwickeln.\\
\hline
-\caption{\label{tab:orge163d32}
+\caption{\label{tab:org605490a}
Projektrisiken}
\\
\end{longtable}
\section{Analyse}
-\label{sec:orgd2e8df3}
+\label{sec:orgfe2d3fe}
\subsection{Umweltanalyse}
-\label{sec:org65077db}
+\label{sec:org1ea0294}
Die Projektumwelt-Analyse ist eine Methode, die Beziehungen,
Erwartungshaltungen und Einflüsse auf das Projekt durch interne und
@@ -446,10 +511,10 @@ externe soziale Umwelten zu betrachten und zu bewerten. Auf Grundlage
der Analyseergebnisse werden erforderliche Massnahmen zur Gestaltung
der Umweltbeziehungen abgeleitet. Die Gestaltung der
Projektumweltbeziehungen ist eine Projektmanagementaufgabe. In der
-Tabelle:(\ref{tab:org092919f}) wurden die Anforderungen und Wünsche
+Tabelle:(\ref{tab:org67255c8}) wurden die Anforderungen und Wünsche
mit Einschätzung der Wahrscheinlichkeit und der Einflussnahme aufgenommen.
Zusätzlich ist die Beziehung der Stakeholder zum Projekt noch in der
-Abbildung:(\ref{fig:org1ce1a4e}) grafisch dargestellt.
+Abbildung:(\ref{fig:orgd829ec8}) grafisch dargestellt.
Da das Projekt so ausgelegt ist das der Projektleiter es in Eigenarbeit
verwirklichen kann ist der Einfluss der Stakeholder wärend der Umsetzung sehr
@@ -463,7 +528,7 @@ Verfügung gestellt.
\begin{figure}[htbp]
\centering
\includegraphics[width=.9\textwidth]{pictures/stakeholder_diagramm.pdf}
-\caption{\label{fig:org1ce1a4e}
+\caption{\label{fig:orgd829ec8}
Stakeholder Diagramm}
\end{figure}
@@ -490,14 +555,14 @@ Stakeholder Diagramm}
& & & - Anerkennung im fachlichen Umfeld & hoch\\
\hline
\end{tabular}
-\caption{\label{tab:org092919f}
+\caption{\label{tab:org67255c8}
Umwelt-Analyse}
\end{table}
\end{landscape}
\subsection{Risiko-Analyse}
-\label{sec:org659e913}
+\label{sec:org9e6f19e}
Bei der Risikoanalyse wird von einem durchschnittlichen Benutzer ausgegangen
der zur Zeit noch keine Backups macht und beginnen möchte \gls{borg} zu nutzen um
@@ -505,14 +570,14 @@ auf einer externen Harddisk seine Backups zu speichern.
Es wird dabei eine Ist/Soll Analyse gemacht um die Lösung gegenüber der
bestehenden Möglichkeiten zu vergleichen. Jedes Risiko wurde entsprechend der
-Tabelle: (\ref{tab:org463c5d5}) nach der Wahrscheinlichkeit des Eintreffens
-bewertet und entsprechend der Tabelle: (\ref{tab:org7556e15}) nach seiner Auswirkung
+Tabelle: (\ref{tab:org63dd697}) nach der Wahrscheinlichkeit des Eintreffens
+bewertet und entsprechend der Tabelle: (\ref{tab:orgb488f77}) nach seiner Auswirkung
im Bezug auf die Nützlichkeit der gemachten Backups.
-In der Tabelle: (\ref{tab:orgc2b848f}) sind dabei die Risiken für das
-Szenario aufgelistet und nummeriert. In der, Abbildung:(\ref{fig:org8251252}), ist die
+In der Tabelle: (\ref{tab:org2372ddb}) sind dabei die Risiken für das
+Szenario aufgelistet und nummeriert. In der, Abbildung:(\ref{fig:orgcef13e5}), ist die
Bewertung des Ist-Risikos grafisch dargestellt und in der,
-Abbildung:(\ref{fig:org38b227a}), ist das Soll-Risiko welches mit dieser Arbeit
+Abbildung:(\ref{fig:org9702b8a}), ist das Soll-Risiko welches mit dieser Arbeit
angestrebt wird ebenfalls grafisch dargestellt.
Es sollte im Rahmen der Arbeit möglich sein die meisten Risiken zu verringern.
@@ -529,7 +594,7 @@ Arbeit reduzieren kann.
2 = mittel & Mässig wahrscheinlich, 20-50\%\\
3 = hoch & Hohe Wahrscheinlichkeit > 50\%\\
\end{tabular}
-\caption{\label{tab:org463c5d5}
+\caption{\label{tab:org63dd697}
Risikobewertung Wahrscheinlichkeit}
\end{table}
@@ -543,7 +608,7 @@ Risikobewertung Wahrscheinlichkeit}
2 = mittel & Mittlere Auswirkung auf die Nützlichkeit\\
3 = hoch & Hohe Auswirkung auf die Nützlichkeit\\
\end{tabular}
-\caption{\label{tab:org7556e15}
+\caption{\label{tab:orgb488f77}
Risikobewertung Auswirkung}
\end{table}
@@ -565,7 +630,7 @@ Risikobewertung Auswirkung}
5. & Der Anwender vergisst die Backups zu machen.\\
\hline
\end{tabular}
-\caption{\label{tab:orgc2b848f}
+\caption{\label{tab:org2372ddb}
Risikobeschreibung}
\end{table}
@@ -573,40 +638,543 @@ Risikobeschreibung}
\begin{figure}[H]
\centering
\includegraphics[width=9cm]{pictures/istrisiko.pdf}
-\caption{\label{fig:org8251252}
+\caption{\label{fig:orgcef13e5}
Grafische Darstellung der Ist-Risikoanalyse}
\end{figure}
\begin{figure}[H]
\centering
\includegraphics[width=9cm]{pictures/sollrisiko.pdf}
-\caption{\label{fig:org38b227a}
+\caption{\label{fig:org9702b8a}
Grafische Darstellung der Soll-Risikoanalyse}
\end{figure}
\newpage
\subsection{SWOT-Analyse}
-\label{sec:org78e590a}
+\label{sec:orgfb71849}
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. Die ausgefüllte SWOT-Analyse für dieses Projekt ist in der
-Abbildung:(\ref{fig:org8d92421}) zu sehen.
+Abbildung:(\ref{fig:org6eab323}) zu sehen.
\begin{figure}[htbp]
\centering
\includegraphics[width=.9\linewidth]{pictures/swot_analyse.pdf}
-\caption{\label{fig:org8d92421}
+\caption{\label{fig:org6eab323}
SWOT Analyse des Projektes}
\end{figure}
+\subsection{Anforderungskatalog}
+\label{sec:org1e5b49a}
+
+Der Anforderungskatalog entspricht 1:1 den Zielen welche in der Tabelle
+\ref{tab:org0d40904} definiert wurden.
+
+\subsection{Use Cases}
+\label{sec:org4ecc491}
+
+Ein Use Case sammelt alle möglichen Szenarien, die eintreten können,
+wenn ein Akteur versucht, mit Hilfe des betrachteten Systems ein
+bestimmtes Ziel zu erreichen. Dabei beschreibt er, was beim Versuch der
+Zielerreichung passieren kann. Je nach Ablauf kann auch ein Fehlschlag
+ein Ergebnis eines Anwendungsfalls sein (e.g. falsches Passwort beim
+Login). Dabei wird die technische Lösung nicht konkret beschrieben.
+Die Detailstufe kann dabei sehr unterschiedlich sein.\footcite{usecase}
+
+\subsubsection{Anwendungsfalldiagramm}
+\label{sec:org8e2002d}
+
+"`Ein Anwendungsfalldiagramm \ldots{} ist eine der 14 Diagrammarten der
+Unified Modelling Language (UML), einer Sprache für die Modellierung
+der Strukturen und des Verhaltens von Software- und anderen Systemen.
+Es stellt Anwendungsfälle und Akteure mit ihren jeweiligen
+Abhängigkeiten und Beziehungen dar."'\footcite{usecasediagramm}
+
+Das Anwendungsfalldiagramm für das \gls{borg} \gls{gui} ist in der Abbildung:
+(\ref{fig:org8b78379}) zu sehen.
+
+\newpage
+\begin{landscape}
+\begin{figure}[htbp]
+\centering
+\includegraphics[width=.9\linewidth]{pictures/use_case.pdf}
+\caption{\label{fig:org8b78379}
+Anwendungsfalldiagramm}
+\end{figure}
+\end{landscape}
+\newpage
+
+\subsubsection{Use Cases Detailbeschreibung}
+\label{sec:org48880e8}
+
+Use Cases werden in der Regel mit Hilfe einer sogenannten Use Case Schablone im
+Detail beschrieben, damit klar ist, wie der Ablauf jeweils genau aussieht. Die
+in diesem Projekt verwendete Schablone wurde von Alistair Cockburn definiert.
+
+Die nachfolgend aufgeführten Use Cases, Tabellen:(\ref{tab:orgde96434}, \ref{tab:orge3c1d3b},
+\ref{tab:org2a8ddd5}, \ref{tab:org1c231e0}, \ref{tab:orgde3d0d8}, \ref{tab:orgef141cd}, \ref{tab:org12b8b07})
+wurden dem Anwendungsfalldiagramm, Abbildung:(\ref{fig:org8b78379}), entnommen und
+zusätzlich noch um jeweils ein Aktivitätsdiagramm , Abbildungen:
+(\ref{fig:org006ee1d}, \ref{fig:orga5f7a56}, \ref{fig:orga777cc2},
+\ref{fig:org8154a61}, \ref{fig:orgf328e58}, \ref{fig:org36aae51}), erweitert
+um den Ablauf verständlicher zu machen.
+
+Ein Aktivitätsdiagramm ist dabei ein hilfreiches UML Diagramm zum Erweitern von
+Use Cases und zeigt einem gut die Zuständigkeiten der Aktoren auf.
+
+\paragraph{Use Case 1.0 Backup erstellen}
+\label{sec:org5587dbc}
+
+{\footnotesize
+\begin{longtable}{|>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}|}
+\hline
+\textbf{Identifier + Name} & 1.0 Backup erstellen\\
+\hline
+\endfirsthead
+\multicolumn{2}{l}{Fortsetzung von vorheriger Seite} \\
+\hline
+
+\textbf{Identifier + Name} & 1.0 Backup erstellen \\
+
+\hline
+\endhead
+\hline\multicolumn{2}{r}{Fortsetzung nächste Seite} \\
+\endfoot
+\endlastfoot
+\hline
+\textbf{Description} & Das erstellen einer Datensicherung durch \gls{borg} anstossen.\\
+\hline
+\textbf{Actors} & Benutzer\\
+\hline
+\textbf{Status} & Freigegeben\\
+\hline
+\textbf{Includes} & -\\
+\hline
+\textbf{Trigger} & User möchte ein Backup erstellen.\\
+\hline
+\textbf{Preconditions} & Die Applikation wurde gestartet.\\
+\hline
+\textbf{Postconditions} & Das erstellte Backup wird angezeigt.\\
+\hline
+\textbf{Normal Flow} & 1. Den Quellpfad auswählen.\\
+ & 2. Den Button "`Backup"' anklicken.\\
+ & 3. Ein Pop mit Fortschrittsbalken erscheint und zeigt die Zeit bis zum Ende des Backups an.\\
+ & 4. Am Ende des Backups verschwindet das Pop-up wieder.\\
+ & 5. Die Liste der Backups aktualisiert sich.\\
+\hline
+\textbf{Alternative Flow} & -\\
+\hline
+\textbf{Notes} & -\\
+\hline
+\textbf{UC History} & 1.0 Draft erstellt durch AZ\\
+\hline
+\textbf{Author} & A. Zweili\\
+\hline
+\textbf{Date} & 30.12.2018\\
+\hline
+\caption{\label{tab:orgde96434}
+Use Case 1.0 Backup erstellen}
+\\
+\end{longtable}
+}
+\begin{figure}[htbp]
+\centering
+\includegraphics[width=.9\linewidth]{pictures/activity_backup.pdf}
+\caption{\label{fig:org006ee1d}
+Aktivitätsdiagramm zum Erstellen eines Backups}
+\end{figure}
+\newpage
+\paragraph{Use Case 2.0 Backup löschen}
+\label{sec:org878277c}
+
+{\footnotesize
+\begin{longtable}{|>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}|}
+\hline
+\textbf{Identifier + Name} & 2.0 Backup löschen\\
+\hline
+\endfirsthead
+\multicolumn{2}{l}{Fortsetzung von vorheriger Seite} \\
+\hline
+
+\textbf{Identifier + Name} & 2.0 Backup löschen \\
+
+\hline
+\endhead
+\hline\multicolumn{2}{r}{Fortsetzung nächste Seite} \\
+\endfoot
+\endlastfoot
+\hline
+\textbf{Description} & Ein zuvor erstelltes Backup wird gelöscht.\\
+\hline
+\textbf{Actors} & Benutzer\\
+\hline
+\textbf{Status} & Freigegeben\\
+\hline
+\textbf{Includes} & -\\
+\hline
+\textbf{Trigger} & Ein User möchte ein bestehendes Backup löschen.\\
+\hline
+\textbf{Preconditions} & Use Case 1.0 ausgeführt.\\
+\hline
+\textbf{Postconditions} & Das gelöschte Backup wird nicht mehr aufgelistet.\\
+\hline
+\textbf{Normal Flow} & 1. Ein Backup aus der Liste auswählen.\\
+ & 2. Den Button "`Delete anklicken"'.\\
+ & 3. Ein Bestätigungsdialog erscheint.\\
+ & 4. Im Dialog den "`Ok"' Button anklicken.\\
+\hline
+\textbf{Alternative Flow} & 1. Ein Backup aus der Liste auswählen.\\
+ & 2. Den Button "`Delete anklicken"'.\\
+ & 3. Ein Bestätigungsdialog erscheint.\\
+ & 4. Die Aktion mit einem Klick auf den "`Cancel"' Button abbrechen.\\
+\hline
+\textbf{Notes} & -\\
+\hline
+\textbf{UC History} & 1.0 Draft erstellt durch AZ\\
+\hline
+\textbf{Author} & A. Zweili\\
+\hline
+\textbf{Date} & 30.12.2018\\
+\hline
+\caption{\label{tab:orge3c1d3b}
+Use Case 2.0 Backup löschen}
+\\
+\end{longtable}
+}
+\begin{figure}[htbp]
+\centering
+\includegraphics[width=.9\linewidth]{pictures/activity_delete.pdf}
+\caption{\label{fig:orga5f7a56}
+Aktivitätsdiagramm zum Löschen eines Backups}
+\end{figure}
+\newpage
+\paragraph{Use Case 3.0 Backup wiederherstellen}
+\label{sec:org94d371f}
+
+{\footnotesize
+\begin{longtable}{|>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}|}
+\hline
+\textbf{Identifier + Name} & 3.0 Backup wiederherstellen\\
+\hline
+\endfirsthead
+\multicolumn{2}{l}{Fortsetzung von vorheriger Seite} \\
+\hline
+
+\textbf{Identifier + Name} & 3.0 Backup wiederherstellen \\
+
+\hline
+\endhead
+\hline\multicolumn{2}{r}{Fortsetzung nächste Seite} \\
+\endfoot
+\endlastfoot
+\hline
+\textbf{Description} & Alle Dateien eines Backups wiederherstellen.\\
+\hline
+\textbf{Actors} & User\\
+\hline
+\textbf{Status} & Freigegeben\\
+\hline
+\textbf{Includes} & -\\
+\hline
+\textbf{Trigger} & Daten sollen wieder hergestellt werden.\\
+\hline
+\textbf{Preconditions} & Use Case 1.0 wurde ausgeführt.\\
+\hline
+\textbf{Postconditions} & Die Dateien aus dem Backup wurde im angegeben Pfad wiederhergestellt.\\
+\hline
+\textbf{Normal Flow} & 1. Ein Backup aus der Liste auswählen.\\
+ & 2. Den Button "`Restore"' klicken.\\
+ & 3. Ein Pop-Up zur Auswahl eines Zielpfades erscheint.\\
+ & 4. Den Zielpfad mit klick auf "`Choose"' bestätigen.\\
+ & 5. Ein Dateiexplorer öffnet sich mit dem ausgewählt Pfad und enthält die Dateien aus dem Backup.\\
+\hline
+\textbf{Alternative Flow} & 1. Ein Backup aus der Liste auswählen.\\
+ & 2. Den Button "`Restore"' klicken.\\
+ & 3. Ein Pop-Up zur Auswahl eines Zielpfades erscheint.\\
+ & 4. Die Aktion mit klick auf "`Cancel"' abbrechen.\\
+\hline
+\textbf{Notes} & -\\
+\hline
+\textbf{UC History} & 1.0 Draft erstellt durch AZ\\
+\hline
+\textbf{Author} & A. Zweili\\
+\hline
+\textbf{Date} & 30.12.2018\\
+\hline
+\caption{\label{tab:org2a8ddd5}
+Use Case 3.0 Backup wiederherstellen}
+\\
+\end{longtable}
+}
+
+\begin{figure}[htbp]
+\centering
+\includegraphics[width=.9\linewidth]{pictures/activity_restore.pdf}
+\caption{\label{fig:orga777cc2}
+Aktivitätsdiagramm zum Wiederherstellen eines Backups}
+\end{figure}
+\newpage
+\paragraph{Use Case 4.0 Einzelne Datei wiederherstellen}
+\label{sec:org438e65d}
+
+{\footnotesize
+\begin{longtable}{|>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}|}
+\hline
+\textbf{Identifier + Name} & 4.0 Einzelne Datei wiederherstellen\\
+\hline
+\endfirsthead
+\multicolumn{2}{l}{Fortsetzung von vorheriger Seite} \\
+\hline
+
+\textbf{Identifier + Name} & 4.0 Einzelne Datei wiederherstellen \\
+
+\hline
+\endhead
+\hline\multicolumn{2}{r}{Fortsetzung nächste Seite} \\
+\endfoot
+\endlastfoot
+\hline
+\textbf{Description} & Das spezifische Wiederherstellen von einer oder mehreren Dateien.\\
+\hline
+\textbf{Actors} & User\\
+\hline
+\textbf{Status} & Freigegeben\\
+\hline
+\textbf{Includes} & Use Case 4.1\\
+\hline
+\textbf{Trigger} & Daten sollen wieder hergestellt werden.\\
+\hline
+\textbf{Preconditions} & Use Case 1.0 wurde ausgeführt.\\
+\hline
+\textbf{Postconditions} & -\\
+\hline
+\textbf{Normal Flow} & 1. Ein Backup aus der Liste auswählen.\\
+ & 2. Auf den Button "`Mount"' klicken.\\
+ & 3. Use Case 4.1 wird ausgeführt.\\
+ & 4. Ein Dateiexplorer öffnet sich mit dem ausgewählt Pfad und enthält die Dateien aus dem Backup.\\
+ & 5. Wird die Applikation geschlossen wird das Backup ausgehängt.\\
+\hline
+\textbf{Alternative Flow} & -\\
+\hline
+\textbf{Notes} & -\\
+\hline
+\textbf{UC History} & 1.0 Draft erstellt durch AZ\\
+\hline
+\textbf{Author} & A. Zweili\\
+\hline
+\textbf{Date} & 30.12.2018\\
+\hline
+\caption{\label{tab:org1c231e0}
+Use Case 4.0 Einzelne Datei wiederherstellen}
+\\
+\end{longtable}
+}
+
+\begin{figure}[htbp]
+\centering
+\includegraphics[width=.9\linewidth]{pictures/activity_mount.pdf}
+\caption{\label{fig:org8154a61}
+Aktivitätsdiagramm für das spezifische Wiederherstellen einer Datei}
+\end{figure}
+\newpage
+\paragraph{Use Case 4.1 Backup mounten}
+\label{sec:orgf1910a6}
+
+{\footnotesize
+\begin{longtable}{|>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}|}
+\hline
+\textbf{Identifier + Name} & 4.1 Backup mounten\\
+\hline
+\endfirsthead
+\multicolumn{2}{l}{Fortsetzung von vorheriger Seite} \\
+\hline
+
+\textbf{Identifier + Name} & 4.1 Backup mounten \\
+
+\hline
+\endhead
+\hline\multicolumn{2}{r}{Fortsetzung nächste Seite} \\
+\endfoot
+\endlastfoot
+\hline
+\textbf{Description} & Ein Backup wird als FUSE gemountet.\\
+\hline
+\textbf{Actors} & Borg GUI, \gls{borg}\\
+\hline
+\textbf{Status} & Freigegeben\\
+\hline
+\textbf{Includes} & -\\
+\hline
+\textbf{Trigger} & Das Borg GUI gibt an \gls{borg} den Input zum mounten weiter.\\
+\hline
+\textbf{Preconditions} & Use Case 1.0 wurde ausgeführt.\\
+\hline
+\textbf{Postconditions} & Das Backup wurde gemountet.\\
+\hline
+\textbf{Normal Flow} & 1. Borg GUI sammelt die Backup ID in Use Case 4.0.\\
+ & 2. Borg GUI übergibt die Backup ID an \gls{borg} zusammen mit einem Zielpfad.\\
+ & 3. \gls{borg} hängt das Backup als FUSE Laufwerk am Zielpfad ein.\\
+ & 4. \gls{borg} meldet Erfolg an Borg GUI.\\
+\hline
+\textbf{Alternative Flow} & 1. Borg GUI sammelt die Backup ID in Use Case 4.0.\\
+ & 2. Borg GUI übergibt die Backup ID an \gls{borg} zusammen mit einem Zielpfad.\\
+ & 3. \gls{borg} hängt das Backup als FUSE Laufwerk am Zielpfad ein.\\
+ & 4. \gls{borg} meldet einen Fehler an Borg GUI.\\
+\hline
+\textbf{Notes} & -\\
+\hline
+\textbf{UC History} & 1.0 Draft erstellt durch AZ\\
+\hline
+\textbf{Author} & A. Zweili\\
+\hline
+\textbf{Date} & 30.12.2018\\
+\hline
+\caption{\label{tab:orgde3d0d8}
+Use Case 4.1 Backup mounten}
+\\
+\end{longtable}
+}
+
+\newpage
+\paragraph{Use Case 5.0 Konfiguration ändern}
+\label{sec:orgca84faa}
+
+{\footnotesize
+\begin{longtable}{|>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}|}
+\hline
+\textbf{Identifier + Name} & 5.0 Konfiguration ändern\\
+\hline
+\endfirsthead
+\multicolumn{2}{l}{Fortsetzung von vorheriger Seite} \\
+\hline
+
+\textbf{Identifier + Name} & 5.0 Konfiguration ändern \\
+
+\hline
+\endhead
+\hline\multicolumn{2}{r}{Fortsetzung nächste Seite} \\
+\endfoot
+\endlastfoot
+\hline
+\textbf{Description} & Das Verändern und Speichern der Konfiguration der Applikation.\\
+\hline
+\textbf{Actors} & User\\
+\hline
+\textbf{Status} & Freigegeben\\
+\hline
+\textbf{Includes} & -\\
+\hline
+\textbf{Trigger} & Ein User möchte die Einstellungen der Applikation anpassen.\\
+\hline
+\textbf{Preconditions} & Applikation gestartet.\\
+\hline
+\textbf{Postconditions} & -\\
+\hline
+\textbf{Normal Flow} & 1. Auf den Button "`Settings"' klicken.\\
+ & 2. Ein neues Fenster mit den Einstellungen öffnet sich.\\
+ & 3. Der Benutzer ändert mindestens eine Einstellung.\\
+ & 4. Der Button "`OK"' wird angeklickt.\\
+ & 5. Die Konfiguration wird in die Konfigurationsdatei geschrieben und in der Applikation geladen.\\
+\hline
+\textbf{Alternative Flow} & 1. Auf den Button "`Settings"' klicken.\\
+ & 2. Ein neues Fenster mit den Einstellungen öffnet sich.\\
+ & 3. Der Benutzer kann Einstellungen ändern.\\
+ & 4. Der Button "`Cancel"' wird angeklickt.\\
+ & 5. Jeglich Änderungen werden verworfen und die Konfigurationsdatei bleibt im aktuellen Zustand.\\
+\hline
+\textbf{Notes} & -\\
+\hline
+\textbf{UC History} & 1.0 Draft erstellt durch AZ\\
+\hline
+\textbf{Author} & A. Zweili\\
+\hline
+\textbf{Date} & 30.12.2018\\
+\hline
+\caption{\label{tab:orgef141cd}
+Use Case 5.0 Konfiguration ändern}
+\\
+\end{longtable}
+}
+
+\begin{figure}[htbp]
+\centering
+\includegraphics[width=.9\linewidth]{pictures/activity_settings.pdf}
+\caption{\label{fig:orgf328e58}
+Aktivitätsdiagramm zum Ändern von Einstellungen}
+\end{figure}
+\newpage
+\paragraph{Use Case 6.0 automatische Backups aktivieren}
+\label{sec:org7fb4cb7}
+
+{\footnotesize
+\begin{longtable}{|>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}|}
+\hline
+\textbf{Identifier + Name} & 6.0 automatische Backups aktivieren\\
+\hline
+\endfirsthead
+\multicolumn{2}{l}{Fortsetzung von vorheriger Seite} \\
+\hline
+
+\textbf{Identifier + Name} & 6.0 automatische Backups aktivieren \\
+
+\hline
+\endhead
+\hline\multicolumn{2}{r}{Fortsetzung nächste Seite} \\
+\endfoot
+\endlastfoot
+\hline
+\textbf{Description} & Ein Systemdienst wird hinterlegt zum ausführen automatischer Backups.\\
+\hline
+\textbf{Actors} & User\\
+\hline
+\textbf{Status} & Freigegeben\\
+\hline
+\textbf{Includes} & -\\
+\hline
+\textbf{Trigger} & Ein User möchte automatisierte Backups haben.\\
+\hline
+\textbf{Preconditions} & Eine funktionierende Konfiguration muss hinterlegt sein.\\
+ & Applikation gestartet.\\
+\hline
+\textbf{Postconditions} & Ein Systemdienst wurde erstellt welcher jeden Tag ein Backup macht.\\
+\hline
+\textbf{Normal Flow} & 1. Auf den Button "`Settings"' klicken.\\
+ & 2. Bei der Option "`Automatic Backups"' den Hacken setzen.\\
+ & 3. Die Settings mit klick auf "`Ok"' schliessen und speichern.\\
+\hline
+\textbf{Alternative Flow} & 1. Auf den Button "`Settings"' klicken.\\
+ & 2. Bei der Option "`Automatic Backups"' den Hacken setzen.\\
+ & 3. Die Aktion mit klick auf "`Cancel"' abrechen.\\
+\hline
+\textbf{Notes} & -\\
+\hline
+\textbf{UC History} & 1.0 Draft erstellt durch AZ\\
+\hline
+\textbf{Author} & A. Zweili\\
+\hline
+\textbf{Date} & 30.12.2018\\
+\hline
+\caption{\label{tab:org12b8b07}
+Use Case 6.0 automatische Backups aktivieren}
+\\
+\end{longtable}
+}
+
+\begin{figure}[htbp]
+\centering
+\includegraphics[width=.9\linewidth]{pictures/activity_automatic.pdf}
+\caption{\label{fig:org36aae51}
+Aktivitätsdiagramm zum Aktivieren von automatischen Backups}
+\end{figure}
+\newpage
\section{Konzept}
-\label{sec:org34777b1}
+\label{sec:org930dc93}
\subsection{Varianten}
-\label{sec:orgee7897b}
+\label{sec:orga207ed8}
Da Borg eine JSON API zur Verfügung stellt bieten sich diverse Möglichkeiten um
das Programm anzubinden. Da das Ziel ist, das Programm normalen Nutzern
@@ -618,7 +1186,7 @@ Daraus ergeben sich die in diesem Kapitel aufgeführten Möglichkeiten für das
Projekt.
\subsubsection{Bewertung}
-\label{sec:orgd04a5af}
+\label{sec:orgd50efe0}
Die Bewertungspunkte setzen sich einerseits aus den Projektzielen anderseits
aus für das Projekt sinnvollen Punkten zusammen. Dadurch ergeben sich dann die
@@ -637,7 +1205,7 @@ Projekt ausgewählt.
Mussziele erhalten dabei eine
Gewichtung von 10 und Wunschziele eine Gewichtung entsprechend der Bewertung in
-der Tabelle Projektziele (\ref{tab:org0d17f53}).
+der Tabelle Projektziele (\ref{tab:org0d40904}).
\begin{table}[htbp]
\centering
@@ -659,20 +1227,20 @@ der Tabelle Projektziele (\ref{tab:org0d17f53}).
\textbf{Total} & & & & 415\\
\hline
\end{tabular}
-\caption{\label{tab:org3882be1}
+\caption{\label{tab:org9efa6c0}
Muster Bewertungstabelle}
\end{table}
\subsubsection{Backend}
-\label{sec:orgc7043d0}
+\label{sec:org884d46a}
-Fürs Backend bieten sich die folgende drei Sprachen an: \hyperref[sec:org87cfed6]{C\#}, \hyperref[sec:org8faf346]{C++}, \hyperref[sec:org7ab72b4]{Python}.
+Fürs Backend bieten sich die folgende drei Sprachen an: \hyperref[sec:org94ad6ef]{C\#}, \hyperref[sec:org2208a22]{C++}, \hyperref[sec:org8426979]{Python}.
Dies vorallem weil alle Allrounder Sprachen sind und sich gut für Desktop
Applikationen eignen.
\paragraph{C\#}
-\label{sec:org87cfed6}
+\label{sec:org94ad6ef}
C\# ist eine von Microsoft entwickelte Programmiersprache welche viele
Frameworks zur Verfügung hat. Insbesondere Aufgrund der grossen kommerziellen
@@ -746,13 +1314,13 @@ Jedoch aufgrund des moderneren Unterbaus sicher schneller als C++.
\textbf{Total} & & & & 279\\
\hline
\end{tabular}
-\caption{\label{tab:org30f2838}
+\caption{\label{tab:orgc9f7ec4}
C\# Bewertungstabelle}
\end{table}
\paragraph{C++}
-\label{sec:org8faf346}
+\label{sec:org2208a22}
C++ ist eine stark typisierte und kompilierte Programmiersprache. Sie ist seit
1998 Teil des ISO Standards \footcite{cpp98}. ISO/IEC 14882:2017 \footcite{cpp17}
@@ -814,13 +1382,13 @@ ungeeignet.
\textbf{Total} & & & & 271\\
\hline
\end{tabular}
-\caption{\label{tab:org9bb70a9}
+\caption{\label{tab:orgc3de759}
C++ Bewertungstabelle}
\end{table}
\paragraph{Python}
-\label{sec:org7ab72b4}
+\label{sec:org8426979}
Der Python Interpreter ist für eine Vielzahl an Betriebssystemen erhältlich,
inklusive Windows, OS X und Linux. Nahezu jedes Desktop Linux System kommt mit
@@ -852,9 +1420,9 @@ effektiv geschrieben wird \footcite{pep8}.
Um ein Python Programm zu starten braucht es eigentlich kein grosses Setup.
Solange die Abhängigkeiten vorhanden sind, kann man ein Skript mit einem
-einfachen Befehl, Code Snippet (\ref{orgd952351}) starten.
+einfachen Befehl, Code Snippet (\ref{orgbf06584}) starten.
-\lstset{language=bash,label=orgd952351,caption={Minimal Python Setup},captionpos=b,numbers=none}
+\lstset{language=bash,label=orgbf06584,caption={Minimal Python Setup},captionpos=b,numbers=none}
\begin{sexylisting}{Minimal Python Setup}
python3 example.py
\end{sexylisting}
@@ -893,15 +1461,15 @@ entwickeln kann, dies jedoch zu Lasten der Performance.
\textbf{Total} & & & & 322\\
\hline
\end{tabular}
-\caption{\label{tab:orgb80f575}
+\caption{\label{tab:orga21270a}
Python Bewertungstabelle}
\end{table}
\subsubsection{FrontEnd}
-\label{sec:org61883bb}
+\label{sec:orgd0b3bd7}
-Fürs Frontend sind folgende Projekte interessant: \hyperref[sec:orgab8580b]{Qt}, \hyperref[sec:orgd25230f]{Gtk} und \hyperref[sec:orgde09806]{Electron}. Alle
+Fürs Frontend sind folgende Projekte interessant: \hyperref[sec:org329a692]{Qt}, \hyperref[sec:org7113159]{Gtk} und \hyperref[sec:orgf9a0e5d]{Electron}. Alle
drei sind cross-plattfrom fähige \gls{gui} Frameworks und nicht von einer
spezifischen Sprache abhängig. Da nahezu keine Erfahrung mit den aufgeführten
Frameworks vorhanden ist werden bei den Frontenend Frameworks die Punkte der
@@ -909,7 +1477,7 @@ Verbreitung in der Community und Geschwindigkeit der Entwicklung ausgeschlossen
da in allen Fällen nicht mal eine ungenaune Schätzung wirklich möglich wäre.
\paragraph{Qt}
-\label{sec:orgab8580b}
+\label{sec:org329a692}
Qt \footcite{qt}, "`cute"' ausgesprochen, ist ein Framework zum Entwickeln von
grafischen Oberflächen welche auf verschiedenen System ohne grosse Änderungen
@@ -959,13 +1527,13 @@ gross.
\textbf{Total} & & & & 295\\
\hline
\end{tabular}
-\caption{\label{tab:org3bbc552}
+\caption{\label{tab:org82ec562}
Qt Bewertungstabelle}
\end{table}
\paragraph{Gtk}
-\label{sec:orgd25230f}
+\label{sec:org7113159}
Gtk ist sowohl für Linux wie auch für Windows und OS X erhältlich. Gtk hat als
Projekt der Gnome Foundation seine Wurzeln jedoch ganz klar in der Linux Welt.
@@ -979,12 +1547,12 @@ nur intensiv User verwendet.
Gtk integriert sich nur unter Linux wirklich gut ins System. Unter Windows und
OS X können die Applikation schnell etwas fremd wirken. Dies ist gut bei der
Applikation Meld \footcite{meld} zu sehen wenn man eine Datei auswählen möchte,
-Abbildung (\ref{fig:org0ecf563}).
+Abbildung (\ref{fig:orgb046e95}).
\begin{figure}[htbp]
\centering
\includegraphics[width=.9\linewidth]{pictures/meld.png}
-\caption{\label{fig:org0ecf563}
+\caption{\label{fig:orgb046e95}
Screenshot der Applikation Meld unter Windows 10}
\end{figure}
Die Gtk Dokumentation empfiehlt \footcite{gtk_setup}, das man unter Windows das
@@ -1021,13 +1589,13 @@ Da die Kenntnisse gleich null sind ist der Lernfaktor auf dem Maximum.
\textbf{Total} & & & & 275\\
\hline
\end{tabular}
-\caption{\label{tab:org20e83bc}
+\caption{\label{tab:org1c94d4e}
Gtk Bewertungstabelle}
\end{table}
\paragraph{Electron}
-\label{sec:orgde09806}
+\label{sec:orgf9a0e5d}
Electron ist ein cross-platform Framework zum entwickeln von \glspl{gui} welches
dabei jedoch auf Technologien aus der Webentwicklung benutzt. Entwickelt wird
@@ -1081,20 +1649,17 @@ Lernfaktor bei Electron wohl nicht so gross wie etwa bei Qt oder Gtk.
\textbf{Total} & & & & 275\\
\hline
\end{tabular}
-\caption{\label{tab:org9fdb0dc}
+\caption{\label{tab:org4a93e21}
Electron Bewertungstabelle}
\end{table}
\subsubsection{Ergebnis}
-\label{sec:org802bfbd}
+\label{sec:org3395f0e}
-Aufgrund der erreichten Punktzahl, Tabelle:(\ref{tab:org618aea0}), bei den vorhergehenden
+Aufgrund der erreichten Punktzahl, Tabelle:(\ref{tab:org32c4177}), bei den vorhergehenden
Variantenbewertungen, wurde entschieden für das Backend der Applikation auf
-Python zu setzen und fürs Frontend Qt zu benutzen. Ein kleiner Test zeigt auch
-das die Kombination ohne grosse Probleme und Anpassung auf Windows, Linux und
-OS X läuft, Abbildung:(\ref{fig:org6c1e76f}).
-
+Python zu setzen und fürs Frontend Qt zu benutzen.
\begin{table}[H]
\centering
\begin{tabular}{|>{\columncolor[HTML]{EFEFEF}}p{4.5cm}|r|}
@@ -1111,20 +1676,13 @@ Gtk & 275\\
Electron & 275\\
\hline
\end{tabular}
-\caption{\label{tab:org618aea0}
+\caption{\label{tab:org32c4177}
Variantenbewertung Ergebnis}
\end{table}
-\begin{figure}[htbp]
-\centering
-\includegraphics[width=.9\linewidth]{pictures/hello_world.png}
-\caption{\label{fig:org6c1e76f}
-Python und Qt Applikation unter Windows (links), Linux (rechts) und OS X (unten)}
-\end{figure}
-
\subsection{Vorkenntnisse}
-\label{sec:org9e04095}
+\label{sec:org0e8ee40}
Die benötigten Vorkenntnisse wurden in den vorangegangenen Semestern erarbeitet
und sind in der Basis gefestigt. Erfahrungen im Bereich der Entwicklung von
@@ -1132,141 +1690,71 @@ Desktop Applikationen sind zum Teil vorhanden. Jedoch hauptsächlich für Window
Systeme und C\#.
\subsection{Testing}
-\label{sec:org76a0fb9}
+\label{sec:orgbe11613}
PLACEHOLDER
\subsubsection{Testfälle}
-\label{sec:orgbfae27e}
-
-PLACEHOLDER
-
-\subsection{Werkzeuge}
-\label{sec:org59ef66e}
-
-PLACEHOLDER
-
-\subsubsection{Versionskontrolle}
-\label{sec:org28d9476}
-
-Eine Versionskontrollsoftware ist in der Software Entwicklung heutzutage
-praktisch nicht mehr wegzudenken. So wurde auch bei diesem Projekt eine
-eingesetzt.
-
-Als Software für die Versionskontrolle wurde Git \footcite{git} aus folgenden
-Gründen ausgewählt:
-
-\begin{itemize}
-\item Ist der de facto Standard bei Versionskontrollsoftware
-\item Läuft auf allen gängigen Betriebssystemen
-\item Es gäbe gratis Services die man nutzen könnte (Github, Gitlab)
-\item Man kann offline arbeiten und Commits erstellen
-\item Der Author hat bereits einen eigenen Git Server zur Verfügung
-\item Der Author ist bereits mit Git aus vorhergehenden Projekten vertraut,
-dadurch muss man keine Ressourcen aufwenden eine neue Software zu lernen.
-Zusätzlich hat sich Git in den vorhergehenden Projekten als robuste
-und schnelle Software erwiesen.
-\item Git ist \gls{libre} unter der \gls{gpl} v2.
-\end{itemize}
-
-\subsubsection{Editor}
-\label{sec:org3519e9e}
-
-Sowohl bei der Dokumentation wie auch bei der Programmierung wurde
-hauptsächlich der Editor GNU Emacs \footcite{emacs} verwendet. GNU Emacs ist mit
-32 Jahren (obwohl seine Wurzeln bis ins Jahre 1976 zurückgehen) wohl eines der
-ältesten noch aktiven Software Projekte. Emacs ist \gls{libre} unter der
-\gls{gpl} v3. Emacs wurde gewählt da es ein schneller, schlanker und sehr
-flexibler Texteditior ist. Von normaler Textmanipulation über Taskmanagement
-und Emails schreiben ist alles möglich.
-
-\subsubsection{Dokumentation}
-\label{sec:org3761443}
-
-Diese Dokumentation wurde in Org-mode \footcite{orgmode}, einer Erweiterung für
-den Text Editor Emacs, geschrieben. Die Syntax erinnert an Markdown und
-Org-mode bietet einem eine vielzahl an Hilfen dafür inklusive dem erstellen von
-Tabellen und Spreadsheet Funktionen. Für finalle Version des Dokuments kann
-Org-mode die ursprünglich Textdatei über \LaTeX{} in ein PDF exportieren.
-
-\LaTeX{} \footcite{latex} ist eine Software, welche einem die Benutzung des
-Textsatzsystems TeXs vereinfacht. \LaTeX{} wurde gegenüber einem "`What You See Is
-What You Get"' (z.Bsp. MS. Word), Editor gewählt weil es einem mit seiner Markup
-Sprache erlaubt das Dokument in Text Dateien zu erstellen, gerade für
-Programmiere ist dies eine sehr interessante Lösung. Dadurch, dass \LaTeX{} auch
-nur aus reinen Textdateien besteht, kann man die Dokumente auch ohne weiteres
-in die Versionskontrollsoftware einchecken und die Entwicklung im Log
-zurückverfolgen. \LaTeX{} ist \gls{libre} unter der \LaTeX{} Project Public
-License.
-
-Die Grafiken in diesem Dokument wurden hauptsächlich mit dem Vektor Grafik
-Editor Inkscape \footcite{inkscape} erstellt. Inkscape ist \gls{libre} unter der
-GNU Public License v3.
-
-Die Diagramme wurden mit Draw.io \footcite{draw} erstellt. Draw.io ist \gls{libre}
-unter Apache Lizenz Version 2.0 \footcite{apache} und kann sowohl als Desktop
-Applikation wie auch als Webanwendung genutzt werden.
-
-\subsection{User Stories}
-\label{sec:org8b5f298}
-
-PLACEHOLDER
-
-\subsection{Use Cases}
-\label{sec:org965b415}
-
-PLACEHOLDER
-
-\paragraph{Anwendungsfalldiagramm}
-\label{sec:org92e0194}
-
-PLACEHOLDER
-
-\paragraph{Use Cases Detailbeschreibung}
-\label{sec:org76d468c}
+\label{sec:org264b8b1}
PLACEHOLDER
\section{Realisierung}
-\label{sec:org4ce6199}
+\label{sec:orgab64221}
+\subsection{Cross-plattform Kompatibilität}
+\label{sec:orgd126eea}
+
+Um sicherzugehen das die gewählten Technologien auch den Anforderungen
+entsprechen wurde ein kleines "`Hello World"' Programm mit Python3 und Qt
+geschrieben. Dieses läuft ohne jegliche Probleme und Anpassung auf Windows,
+Linux und OS X. Wie in den Screenshots in Abbildung:(\ref{fig:org935d9c3}) zu sehen
+ist.
+
+\begin{figure}[htbp]
+\centering
+\includegraphics[width=.9\linewidth]{pictures/hello_world.png}
+\caption{\label{fig:org935d9c3}
+Python und Qt Applikation unter Windows (links), Linux (rechts) und OS X (unten)}
+\end{figure}
+
\subsection{Benutzerinterface}
-\label{sec:org55de277}
+\label{sec:org440a6bb}
\paragraph{Inspiration}
-\label{sec:orgdbc0d9f}
+\label{sec:org9d63d07}
PLACEHOLDER
\paragraph{Frontend Umsetzung}
-\label{sec:org60a9be2}
+\label{sec:org79f99cb}
PLACEHOLDER
\paragraph{Backend Umsetzung}
-\label{sec:orgbd3aeee}
+\label{sec:org46b5693}
PLACEHOLDER
\section{Ausblick}
-\label{sec:org8bd82c3}
+\label{sec:orgb6e1d1b}
\subsection{Projektmanagement}
-\label{sec:org39784a5}
+\label{sec:orgd2dc269}
PLACEHOLDER
\subsection{Umsetzung}
-\label{sec:org0d3255b}
+\label{sec:orge581bdf}
PLACEHOLDER
\subsection{Gelerntes}
-\label{sec:org8f28034}
+\label{sec:orgbf71336}
PLACEHOLDER
\newpage
\begin{landscape}
\section{Arbeitsjournal}
-\label{sec:org64fdba0}
+\label{sec:org60aa9ed}
\begin{longtable}{|p{2cm}|p{5cm}|p{5cm}|p{7cm}|}
\hline
@@ -1290,7 +1778,7 @@ PLACEHOLDER
\hline
30.12.2018 & Controlling erarbeiten, Ist- und Soll-Analyse, SWOT Analyse, Umweltanalyse, Massnahmen Katalog erarbeiten, User Stories erarbeiten, Use Case Diagramm erstellen, Use Cases ausarbeiten, Anforderungskatalog erstellen, UML Diagramme & & \\
\hline
-\caption{\label{tab:org270babe}
+\caption{\label{tab:orgbb31bb1}
Arbeitsjournal}
\\
\end{longtable}