diff --git a/general/bibliography.bib b/general/bibliography.bib index 8fc3701..7eb18ff 100644 --- a/general/bibliography.bib +++ b/general/bibliography.bib @@ -285,4 +285,36 @@ month = {Dec}, note = {[Online; accessed 28. Dec. 2018]}, url = {https://www.materialui.co/colors} +} +@misc{gnome, + author = {{GNOME Foundation}}, + title = {{GNOME {\textendash} Desktop Umgebung.}}, + year = {2019}, + month = {Jan}, + note = {[Online; accessed 5. Jan. 2019]}, + url = {https://www.gnome.org} +} +@misc{ubuntu, + author = {Canonical}, + title = {{The leading operating system for PCs, IoT devices, servers and the cloud {$\vert$} Ubuntu}}, + year = {2019}, + month = {Jan}, + note = {[Online; accessed 5. Jan. 2019]}, + url = {https://www.ubuntu.com} +} +@misc{virtualbox, + author = {{Oracle}}, + title = {{Oracle VM VirtualBox}}, + year = {2019}, + month = {Jan}, + note = {[Online; accessed 5. Jan. 2019]}, + url = {https://www.virtualbox.org} +} +@misc{vagrant, + title = {{Vagrant}}, + author = {Vagrant by HashiCorp}, + year = {2018}, + month = {Nov}, + note = {[Online; accessed 5. Jan. 2019]}, + url = {https://www.vagrantup.com} } \ No newline at end of file diff --git a/projektdokumentation/plannung.planner b/projektdokumentation/plannung.planner index 5909ce8..9a0937b 100644 --- a/projektdokumentation/plannung.planner +++ b/projektdokumentation/plannung.planner @@ -49,12 +49,12 @@ - - - - - + + + + + @@ -225,7 +225,7 @@ - + @@ -236,86 +236,86 @@ - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/projektdokumentation/projektdokumentation.org b/projektdokumentation/projektdokumentation.org index 1bd5679..825a0ba 100644 --- a/projektdokumentation/projektdokumentation.org +++ b/projektdokumentation/projektdokumentation.org @@ -122,74 +122,74 @@ integriert werden und ist nicht unwichtig. #+CAPTION: Projektziele #+ATTR_LATEX: :environment longtable :align |p{1cm}|p{9cm}|p{1.5cm}|p{2cm}| #+NAME: tab:projektziele -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| *Ziel-Nr.*\cellcolor[HTML]{C0C0C0} | *Zielsetzung*\cellcolor[HTML]{C0C0C0} | *Muss*\cellcolor[HTML]{C0C0C0} | *Wunsch*\newline (1-5, 5=sehr wichtig)\cellcolor[HTML]{C0C0C0} | -| <5> | <100> | <10> | <10> | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 1. | Die Anwendung setzt auf Cross-Plattform (Linux, Windows, OSX) fähige Technologien. | x | | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 2. | Die Anwendung steht unter der gls:gpl v3 der Öffentlichkeit zur Verfügung. | x | | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 3. | Der User kann mit weniger als 3 Klicks ein Backup ausführen. | x | | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 4. | Der User kann ein Archiv mit 3 Klicks löschen. | x | | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 5. | Der User kann unter Linux ein Archiv mit zwei Klicks "read-only" als Laufwerk mounten. | x | | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 6. | Der User kann ein Archiv wieder herstellen. | x | | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 7. | Der User kann den zu sichernden Pfad manuell in der Anwendung definieren. | x | | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 8. | Die Applikation holt ihre Konfiguration aus einer Plain-Text Datei. | x | | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 9. | Der User kann sein Repository auf einer Harddisk ablegen. | x | | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 10. | Die Anwendung exkludiert für einen Linux Computer sinnvolle Pfade bereits zu Beginn. | x | | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 11. | Die Archivliste wird nach einer Aktion automatisch aktualisiert. | x | | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 12. | Der User kann sein Repository auf einem über SSH erreichbaren Server ablegen. | | 5 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 13. | Der User kann den Namen eines Archives selbst bestimmen. | | 5 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 14. | Die Anwendung meldet transparent, wenn das Repository nicht erreichbar ist. | | 5 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 15. | Die Anwendung meldet dem User, wenn noch ein Hypervisor am Laufen ist. | | 5 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 16. | Die Anwendung leitet Meldungen von gls:borg transparent weiter. | | 5 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 17. | Die Anwendung zeigt transparent an das gls:borg im Hintergrund bereits läuft. | | 5 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 18. | Das Repository wird nach jedem Backup bereinigt. | | 4 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 19. | Der User kann automatische Hintergrundbackups in der Anwendung konfigurieren. | | 4 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 20. | Die Anwendung gibt dem User die Möglichkeit ein passendes Repository zu erstellen, wenn keines gefunden wird, die Anwendung jedoch bereits konfiguriert ist. | | 4 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 21. | Die Applikation verwendet, wann immer möglich allgemeingültige Umgebungsvariablen. | | 4 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 22. | Die Anwendung cached/speichert (evtl. zusätzliche) Informationen in einer Datenbank. | | 3 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 23. | Die Anwendung zeigt beim ersten Starten einen Setup Wizard. | | 3 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 24. | Der User kann sich mit 3 Klicks das Log eines Archives anschauen. Nur möglich mit einer zusätzlichen DB. | | 3 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 25. | Die Anwendung kann Systembenachrichtigungen auslösen. | | 3 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 26. | Der User kann die Anwendung grafisch konfigurieren. | | 3 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 27. | Der User kann entscheiden ob, ein gemountetes Archiv nach dem Schliessen der Applikation noch weiter verfügbar ist. | | 2 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 28. | Der User kann das Repository wechseln. | | 2 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 29. | Der User kann ein Archiv nach einer Datei oder einem Ordner durchsuchen. | | 2 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 30. | Der User kann die "Retention Policy" konfigurieren. | | 2 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 31. | Die Anwendung kann mit allen Features von BargBackup umgehen. | | 2 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| -| 32. | Die Applikation prüft, ob sie sich im richtigen Netzwerk befindet bevor sie eine Verbindung zum Server aufbaut. | | 2 | -|-------+------------------------------------------------------------------------------------------------------+------------+------------| +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| *Ziel-Nr.*\cellcolor[HTML]{C0C0C0} | *Zielsetzung*\cellcolor[HTML]{C0C0C0} | *Muss*\cellcolor[HTML]{C0C0C0} | *Wunsch*\newline (1-5, 5=sehr wichtig)\cellcolor[HTML]{C0C0C0} | +| <5> | <30> | <10> | <10> | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 1. | Die Anwendung setzt auf Cross-Plattform (Linux, Windows, OSX) fähige Technologien. | x | | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 2. | Die Anwendung steht unter der gls:gpl v3 der Öffentlichkeit zur Verfügung. | x | | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 3. | Der User kann mit weniger als 3 Klicks ein Backup ausführen. | x | | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 4. | Der User kann ein Archiv mit 3 Klicks löschen. | x | | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 5. | Der User kann unter Linux ein Archiv mit zwei Klicks "read-only" als Laufwerk mounten. | x | | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 6. | Der User kann ein Archiv wieder herstellen. | x | | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 7. | Der User kann den zu sichernden Pfad manuell in der Anwendung definieren. | x | | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 8. | Die Applikation holt ihre Konfiguration aus einer Plain-Text Datei. | x | | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 9. | Der User kann sein Repository auf einer Harddisk ablegen. | x | | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 10. | Die Anwendung exkludiert für einen Linux Computer sinnvolle Pfade bereits zu Beginn. | x | | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 11. | Die Archivliste wird nach einer Aktion automatisch aktualisiert. | x | | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 12. | Der User kann sein Repository auf einem über SSH erreichbaren Server ablegen. | | 5 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 13. | Der User kann den Namen eines Archives selbst bestimmen. | | 5 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 14. | Die Anwendung meldet transparent, wenn das Repository nicht erreichbar ist. | | 5 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 15. | Die Anwendung meldet dem User, wenn noch ein Hypervisor am Laufen ist. | | 5 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 16. | Die Anwendung leitet Meldungen von gls:borg transparent weiter. | | 5 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 17. | Die Anwendung zeigt transparent an das gls:borg im Hintergrund bereits läuft. | | 5 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 18. | Das Repository wird nach jedem Backup bereinigt. | | 4 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 19. | Der User kann automatische Hintergrundbackups in der Anwendung konfigurieren. | | 4 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 20. | Die Anwendung gibt dem User die Möglichkeit ein passendes Repository zu erstellen, wenn keines gefunden wird, die Anwendung jedoch bereits konfiguriert ist. | | 4 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 21. | Die Applikation verwendet, wann immer möglich allgemeingültige Umgebungsvariablen. | | 4 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 22. | Die Anwendung cached/speichert (evtl. zusätzliche) Informationen in einer Datenbank. | | 3 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 23. | Die Anwendung zeigt beim ersten Starten einen Setup Wizard. | | 3 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 24. | Der User kann sich mit 3 Klicks das Log eines Archives anschauen. Nur möglich mit einer zusätzlichen DB. | | 3 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 25. | Die Anwendung kann Systembenachrichtigungen auslösen. | | 3 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 26. | Der User kann die Anwendung grafisch konfigurieren. | | 3 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 27. | Der User kann entscheiden ob, ein gemountetes Archiv nach dem Schliessen der Applikation noch weiter verfügbar ist. | | 2 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 28. | Der User kann das Repository wechseln. | | 2 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 29. | Der User kann ein Archiv nach einer Datei oder einem Ordner durchsuchen. | | 2 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 30. | Der User kann die "Retention Policy" konfigurieren. | | 2 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 31. | Die Anwendung kann mit allen Features von BargBackup umgehen. | | 2 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| +| 32. | Die Applikation prüft, ob sie sich im richtigen Netzwerk befindet bevor sie eine Verbindung zum Server aufbaut. | | 2 | +|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| #+LATEX:\newpage ** Projektabgrenzung @@ -408,24 +408,24 @@ seiner Auswirkung bewertet. #+CAPTION: Projektrisiken #+ATTR_LATEX: :environment longtable :align |p{0.45\textwidth}|p{0.45\textwidth}| :placement [H] #+NAME: tab:projektrisiken -|--------------------------------+--------------------------------| -| <30> | <30> | -| *Beschreibung*\cellcolor[HTML]{C0C0C0} | *Massnahmen*\cellcolor[HTML]{C0C0C0} | -|--------------------------------+--------------------------------| -| Ein grösseres Problem in der Programmierung blockiert den Fortschritt. | Immer nur eine Sache auf einmal in der Code-Basis ändern, alle Fehler beheben und erst dann zur nächsten Aufgabe weitergehen. | -|--------------------------------+--------------------------------| -| Viel Arbeit an der Arbeitsstelle, dabei bleibt weniger Zeit für die Diplomarbeit. | Auf der Arbeit Freitage eingeben um die Last etwas zu verteilen. Projektplanung machen. | -|--------------------------------+--------------------------------| -| Know-How zur Umsetzung ist nicht vollständig vorhanden. | Gute Informationsbeschaffung im Internet, Büchern, etc. | -|--------------------------------+--------------------------------| -| Manuelle Tests brauchen zu viel Zeit. | Soviel wie möglich automatisieren. Dabei jedoch nicht den Fokus auf die eigentliche Entwicklung verlieren. | -|--------------------------------+--------------------------------| -| Die Programmierung des Programms benötigt zu viel Zeit. | Bei der Projektplanung genau definieren was die GUI Applikation beinhalten muss. Ziele definieren, Abgrenzungen treffen. | -|--------------------------------+--------------------------------| -| User haben keine Zeit für Utility Tests. | Vorgängig einen Termin abmachen. | -|--------------------------------+--------------------------------| -| gls:borg ändert fundamental seine gls:api. | Gegen eine fixe Version von gls:borg entwickeln. | -|--------------------------------+--------------------------------| +|-----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------| +| <30> | <30> | +| *Beschreibung*\cellcolor[HTML]{C0C0C0} | *Massnahmen*\cellcolor[HTML]{C0C0C0} | +|-----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------| +| Ein grösseres Problem in der Programmierung blockiert den Fortschritt. | Immer nur eine Sache auf einmal in der Code-Basis ändern, alle Fehler beheben und erst dann zur nächsten Aufgabe weitergehen. | +|-----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------| +| Viel Arbeit an der Arbeitsstelle, dabei bleibt weniger Zeit für die Diplomarbeit. | Auf der Arbeit Freitage eingeben um die Last etwas zu verteilen. Projektplanung machen. | +|-----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------| +| Know-How zur Umsetzung ist nicht vollständig vorhanden. | Gute Informationsbeschaffung im Internet, Büchern, etc. | +|-----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------| +| Manuelle Tests brauchen zu viel Zeit. | Soviel wie möglich automatisieren. Dabei jedoch nicht den Fokus auf die eigentliche Entwicklung verlieren. | +|-----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------| +| Die Programmierung des Programms benötigt zu viel Zeit. | Bei der Projektplanung genau definieren was die GUI Applikation beinhalten muss. Ziele definieren, Abgrenzungen treffen. | +|-----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------| +| User haben keine Zeit für Utility Tests. | Vorgängig einen Termin abmachen. | +|-----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------| +| gls:borg ändert fundamental seine gls:api. | Gegen eine fixe Version von gls:borg entwickeln. | +|-----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------| * Analyse ** Umweltanalyse @@ -460,24 +460,24 @@ Verfügung gestellt. #+CAPTION: Umwelt-Analyse #+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{0.8cm}|l|l|p{8cm}|l| #+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} | *Wahrscheinlichkeit*\cellcolor[HTML]{C0C0C0} | -|-------+----------------------+----------------------+----------------------------------------------------------+----------------------------------------------| -| 1. | BorgBackup Community | gering | - Eine Applikation die den Umfang von BorgBackup abdeckt | mittel | -| | | | - Open-Source | hoch | -| | | | - Mitsprachrecht bei der Entwicklung | niedrig | -|-------+----------------------+----------------------+----------------------------------------------------------+----------------------------------------------| -| 2. | User | gering | - Eine einfache Anwendung | hoch | -| | | | - Einmal einrichten und vergessen | mittel | -|-------+----------------------+----------------------+----------------------------------------------------------+----------------------------------------------| -| 3. | Interessenten | gering | - Einfach verständliches Projekt Repository | hoch | -| | | | - Einfaches Setup zum testen | hoch | -|-------+----------------------+----------------------+----------------------------------------------------------+----------------------------------------------| -| 4. | Projektleiter | hoch | - Stabile Anwendung erstellen | mittel | -| | | | - Ein nachhaltiges Projekt starten | mittel | -| | | | - Anerkennung im fachlichen Umfeld | hoch | -|-------+----------------------+----------------------+----------------------------------------------------------+----------------------------------------------| +|-------------------------------+---------------------------------------+------------------------------------+----------------------------------------------------------+----------------------------------------------| +| 1. | BorgBackup Community | gering | - Eine Applikation die den Umfang von BorgBackup abdeckt | mittel | +| | | | - Open-Source | hoch | +| | | | - Mitsprachrecht bei der Entwicklung | niedrig | +|-------------------------------+---------------------------------------+------------------------------------+----------------------------------------------------------+----------------------------------------------| +| 2. | User | gering | - Eine einfache Anwendung | hoch | +| | | | - Einmal einrichten und vergessen | mittel | +|-------------------------------+---------------------------------------+------------------------------------+----------------------------------------------------------+----------------------------------------------| +| 3. | Interessenten | gering | - Einfach verständliches Projekt Repository | hoch | +| | | | - Einfaches Setup zum testen | hoch | +|-------------------------------+---------------------------------------+------------------------------------+----------------------------------------------------------+----------------------------------------------| +| 4. | Projektleiter | hoch | - Stabile Anwendung erstellen | mittel | +| | | | - Ein nachhaltiges Projekt starten | mittel | +| | | | - Anerkennung im fachlichen Umfeld | hoch | +|-------------------------------+---------------------------------------+------------------------------------+----------------------------------------------------------+----------------------------------------------| #+LATEX:\end{landscape} ** Risiko-Analyse @@ -524,20 +524,20 @@ Arbeit reduzieren kann. #+CAPTION: Risikobeschreibung #+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{0.1\textwidth}|p{0.8\textwidth}| :placement [H] #+NAME: tab:risikobeschreibung -|------------+--------------------------------| -| <10> | <30> | -| *Nr.*\cellcolor[HTML]{C0C0C0} | *Beschreibung*\cellcolor[HTML]{C0C0C0} | -|------------+--------------------------------| -| 1. | Der Benutzer hat noch nie die Kommandozeile verwendet und scheitert bereits an der Installation von gls:borg. | -|------------+--------------------------------| -| 2. | Der Benutzer verwendet keine Verschlüsselung und verliert seine Harddisk. | -|------------+--------------------------------| -| 3. | Der Benutzer speichert die Backups auf der internen statt der externen Harddisk. | -|------------+--------------------------------| -| 4. | Der Benutzer löscht aus Versehen ein Backup. | -|------------+--------------------------------| -| 5. | Der Anwender vergisst die Backups zu machen. | -|------------+--------------------------------| +|-------------------------------+---------------------------------------------------------------------------------------------------------------| +| <10> | <30> | +| *Nr.*\cellcolor[HTML]{C0C0C0} | *Beschreibung*\cellcolor[HTML]{C0C0C0} | +|-------------------------------+---------------------------------------------------------------------------------------------------------------| +| 1. | Der Benutzer hat noch nie die Kommandozeile verwendet und scheitert bereits an der Installation von gls:borg. | +|-------------------------------+---------------------------------------------------------------------------------------------------------------| +| 2. | Der Benutzer verwendet keine Verschlüsselung und verliert seine Harddisk. | +|-------------------------------+---------------------------------------------------------------------------------------------------------------| +| 3. | Der Benutzer speichert die Backups auf der internen statt der externen Harddisk. | +|-------------------------------+---------------------------------------------------------------------------------------------------------------| +| 4. | Der Benutzer löscht aus Versehen ein Backup. | +|-------------------------------+---------------------------------------------------------------------------------------------------------------| +| 5. | Der Anwender vergisst die Backups zu machen. | +|-------------------------------+---------------------------------------------------------------------------------------------------------------| #+CAPTION: Grafische Darstellung der Ist-Risikoanalyse #+ATTR_LATEX: :width 9cm :placement [H] @@ -622,40 +622,40 @@ Use Cases und zeigt einem gut die Zuständigkeiten der Aktoren auf. #+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. | +|---------------------+---------------------------------------------------------------------------------------------| +| | <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 | -|---------------------+--------------------------------| +| | 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 @@ -669,42 +669,42 @@ Use Cases und zeigt einem gut die Zuständigkeiten der Aktoren auf. #+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. | +|---------------------+------------------------------------------------------------------| +| | <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 | -|---------------------+--------------------------------| +|---------------------+------------------------------------------------------------------| +| *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 @@ -718,43 +718,43 @@ Use Cases und zeigt einem gut die Zuständigkeiten der Aktoren auf. #+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. | +|---------------------+--------------------------------------------------------------------------------------------------| +| | <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 | -|---------------------+--------------------------------| +|---------------------+--------------------------------------------------------------------------------------------------| +| *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 @@ -769,40 +769,40 @@ Use Cases und zeigt einem gut die Zuständigkeiten der Aktoren auf. #+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. | +|---------------------+--------------------------------------------------------------------------------------------------| +| | <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 | -|---------------------+--------------------------------| +| | 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 @@ -817,42 +817,42 @@ Use Cases und zeigt einem gut die Zuständigkeiten der Aktoren auf. #+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. | +|---------------------+-----------------------------------------------------------------------------| +| | <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. | +| | 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 | -|---------------------+--------------------------------| +| | 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 @@ -862,44 +862,44 @@ Use Cases und zeigt einem gut die Zuständigkeiten der Aktoren auf. #+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. | +|---------------------+--------------------------------------------------------------------------------------------------| +| | <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 | -|---------------------+--------------------------------| +|---------------------+--------------------------------------------------------------------------------------------------| +| *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 @@ -914,41 +914,41 @@ Use Cases und zeigt einem gut die Zuständigkeiten der Aktoren auf. #+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 | -|---------------------+--------------------------------| +|---------------------+-----------------------------------------------------------------------| +| | <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 | -|---------------------+--------------------------------| +|---------------------+-----------------------------------------------------------------------| +| *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 @@ -957,7 +957,7 @@ Use Cases und zeigt einem gut die Zuständigkeiten der Aktoren auf. #+attr_latex: :center :placement [H] #+LATEX:\newpage -* TODO Konzept +* Konzept ** Varianten @@ -994,23 +994,23 @@ der Tabelle Projektziele ([[tab:projektziele]]). #+CAPTION: Muster Bewertungstabelle #+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{4cm}|c|p{2cm}|p{2cm}|p{2cm}| #+NAME: tab:muster -|----------------------+----------------------+----------------------+----------------------+----------------------| -| <20> | <20> | <20> | <20> | <20> | -| *Kriterium*\cellcolor[HTML]{C0C0C0} | *Gewichtung*\cellcolor[HTML]{C0C0C0} | *max. Punktzahl*\cellcolor[HTML]{C0C0C0} | *erreichte Punktzahl*\cellcolor[HTML]{C0C0C0} | *Kriteriums- ergebnis*\cellcolor[HTML]{C0C0C0} | -|----------------------+----------------------+----------------------+----------------------+----------------------| -| 1. Cross Plattform nutzbar | 10 | 10 | 10 | 100 | -| 2. Freie Software | 5 | 10 | 10 | 50 | -| 3. Vorkenntnisse | 5 | 10 | 10 | 50 | -| 4. Integriert sich gut ins System | 5 | 10 | 10 | 50 | -| 5. Ohne spezielle Tools nutzbar | 5 | 10 | 10 | 50 | -| 6. Lesbarkeit des Codes | 5 | 5 | 5 | 25 | -| 7. Einfachheit des Setups | 5 | 5 | 5 | 25 | -| 8. Lernfaktor | 5 | 5 | 5 | 25 | -| 9. Verbreitung bei der BorgBackup Community | 5 | 5 | 5 | 25 | -| 10. Geschwindigkeit der Entwicklung | 3 | 5 | 5 | 15 | -|----------------------+----------------------+----------------------+----------------------+----------------------| -| *Total* | | | | 415 | -|----------------------+----------------------+----------------------+----------------------+----------------------| +|---------------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| <20> | <20> | <20> | <20> | <20> | +| *Kriterium*\cellcolor[HTML]{C0C0C0} | *Gewichtung*\cellcolor[HTML]{C0C0C0} | *max. Punktzahl*\cellcolor[HTML]{C0C0C0} | *erreichte Punktzahl*\cellcolor[HTML]{C0C0C0} | *Kriteriums- ergebnis*\cellcolor[HTML]{C0C0C0} | +|---------------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| 1. Cross Plattform nutzbar | 10 | 10 | 10 | 100 | +| 2. Freie Software | 5 | 10 | 10 | 50 | +| 3. Vorkenntnisse | 5 | 10 | 10 | 50 | +| 4. Integriert sich gut ins System | 5 | 10 | 10 | 50 | +| 5. Ohne spezielle Tools nutzbar | 5 | 10 | 10 | 50 | +| 6. Lesbarkeit des Codes | 5 | 5 | 5 | 25 | +| 7. Einfachheit des Setups | 5 | 5 | 5 | 25 | +| 8. Lernfaktor | 5 | 5 | 5 | 25 | +| 9. Verbreitung bei der BorgBackup Community | 5 | 5 | 5 | 25 | +| 10. Geschwindigkeit der Entwicklung | 3 | 5 | 5 | 15 | +|---------------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| *Total* | | | | 415 | +|---------------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| #+TBLFM: @3$5=@3$2 * @3$4::@4$5=@4$2 * @4$4::@5$5=@5$2 * @5$4::@6$5=@6$2 * @6$4::@7$5=@7$2 * @7$4::@8$5=@8$2 * @8$4::@9$5=@9$2 * @9$4::@10$5=@10$2 * @10$4::@11$5=@11$2 * @11$4::@12$5=@12$2 * @12$4 #+TBLFM: @>$5=vsum(@3..@-1) @@ -1077,23 +1077,23 @@ Jedoch aufgrund des moderneren Unterbaus sicher schneller als C++. #+CAPTION: C# Bewertungstabelle #+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{4cm}|c|p{2cm}|p{2cm}|p{2cm}| #+NAME: tab:csharp -|----------------------+----------------------+----------------------+----------------------+----------------------| -| <20> | <20> | <20> | <20> | <20> | -| *Kriterium*\cellcolor[HTML]{C0C0C0} | *Gewichtung*\cellcolor[HTML]{C0C0C0} | *max. Punktzahl*\cellcolor[HTML]{C0C0C0} | *erreichte Punktzahl*\cellcolor[HTML]{C0C0C0} | *Kriteriums- ergebnis*\cellcolor[HTML]{C0C0C0} | -|----------------------+----------------------+----------------------+----------------------+----------------------| -| 1. Cross Plattform nutzbar | 10 | 10 | 8 | 80 | -| 2. Freie Software | 5 | 10 | 8 | 40 | -| 3. Vorkenntnisse | 5 | 10 | 6 | 30 | -| 4. Integriert sich gut ins System | 5 | 10 | 8 | 40 | -| 5. Ohne spezielle Tools nutzbar | 5 | 10 | 6 | 30 | -| 6. Lesbarkeit des Codes | 5 | 5 | 4 | 20 | -| 7. Einfachheit des Setups | 5 | 5 | 2 | 10 | -| 8. Lernfaktor | 5 | 5 | 3 | 15 | -| 9. Verbreitung bei der BorgBackup Community | 5 | 5 | 1 | 5 | -| 10. Geschwindigkeit der Entwicklung | 3 | 5 | 3 | 9 | -|----------------------+----------------------+----------------------+----------------------+----------------------| -| *Total* | | | | 279 | -|----------------------+----------------------+----------------------+----------------------+----------------------| +|---------------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| <20> | <20> | <20> | <20> | <20> | +| *Kriterium*\cellcolor[HTML]{C0C0C0} | *Gewichtung*\cellcolor[HTML]{C0C0C0} | *max. Punktzahl*\cellcolor[HTML]{C0C0C0} | *erreichte Punktzahl*\cellcolor[HTML]{C0C0C0} | *Kriteriums- ergebnis*\cellcolor[HTML]{C0C0C0} | +|---------------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| 1. Cross Plattform nutzbar | 10 | 10 | 8 | 80 | +| 2. Freie Software | 5 | 10 | 8 | 40 | +| 3. Vorkenntnisse | 5 | 10 | 6 | 30 | +| 4. Integriert sich gut ins System | 5 | 10 | 8 | 40 | +| 5. Ohne spezielle Tools nutzbar | 5 | 10 | 6 | 30 | +| 6. Lesbarkeit des Codes | 5 | 5 | 4 | 20 | +| 7. Einfachheit des Setups | 5 | 5 | 2 | 10 | +| 8. Lernfaktor | 5 | 5 | 3 | 15 | +| 9. Verbreitung bei der BorgBackup Community | 5 | 5 | 1 | 5 | +| 10. Geschwindigkeit der Entwicklung | 3 | 5 | 3 | 9 | +|---------------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| *Total* | | | | 279 | +|---------------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| #+TBLFM: @3$5=@3$2 * @3$4::@4$5=@4$2 * @4$4::@5$5=@5$2 * @5$4::@6$5=@6$2 * @6$4::@7$5=@7$2 * @7$4::@8$5=@8$2 * @8$4::@9$5=@9$2 * @9$4::@10$5=@10$2 * @10$4::@11$5=@11$2 * @11$4::@12$5=@12$2 * @12$4 #+TBLFM: @>$5=vsum(@3..@-1) @@ -1142,23 +1142,23 @@ ungeeignet. #+CAPTION: C++ Bewertungstabelle #+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{4cm}|c|p{2cm}|p{2cm}|p{2cm}| #+NAME: tab:cpp -|----------------------+----------------------+----------------------+----------------------+----------------------| -| <20> | <20> | <20> | <20> | <20> | -| *Kriterium*\cellcolor[HTML]{C0C0C0} | *Gewichtung*\cellcolor[HTML]{C0C0C0} | *max. Punktzahl*\cellcolor[HTML]{C0C0C0} | *erreichte Punktzahl*\cellcolor[HTML]{C0C0C0} | *Kriteriums- ergebnis*\cellcolor[HTML]{C0C0C0} | -|----------------------+----------------------+----------------------+----------------------+----------------------| -| 1. Cross Plattform nutzbar | 10 | 10 | 8 | 80 | -| 2. Freie Software | 5 | 10 | 10 | 50 | -| 3. Vorkenntnisse | 5 | 10 | 0 | 0 | -| 4. Integriert sich gut ins System | 5 | 10 | 8 | 40 | -| 5. Ohne spezielle Tools nutzbar | 5 | 10 | 6 | 30 | -| 6. Lesbarkeit des Codes | 5 | 5 | 2 | 10 | -| 7. Einfachheit des Setups | 5 | 5 | 3 | 15 | -| 8. Lernfaktor | 5 | 5 | 5 | 25 | -| 9. Verbreitung bei der BorgBackup Community | 5 | 5 | 3 | 15 | -| 10. Geschwindigkeit der Entwicklung | 3 | 5 | 2 | 6 | -|----------------------+----------------------+----------------------+----------------------+----------------------| -| *Total* | | | | 271 | -|----------------------+----------------------+----------------------+----------------------+----------------------| +|---------------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| <20> | <20> | <20> | <20> | <20> | +| *Kriterium*\cellcolor[HTML]{C0C0C0} | *Gewichtung*\cellcolor[HTML]{C0C0C0} | *max. Punktzahl*\cellcolor[HTML]{C0C0C0} | *erreichte Punktzahl*\cellcolor[HTML]{C0C0C0} | *Kriteriums- ergebnis*\cellcolor[HTML]{C0C0C0} | +|---------------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| 1. Cross Plattform nutzbar | 10 | 10 | 8 | 80 | +| 2. Freie Software | 5 | 10 | 10 | 50 | +| 3. Vorkenntnisse | 5 | 10 | 0 | 0 | +| 4. Integriert sich gut ins System | 5 | 10 | 8 | 40 | +| 5. Ohne spezielle Tools nutzbar | 5 | 10 | 6 | 30 | +| 6. Lesbarkeit des Codes | 5 | 5 | 2 | 10 | +| 7. Einfachheit des Setups | 5 | 5 | 3 | 15 | +| 8. Lernfaktor | 5 | 5 | 5 | 25 | +| 9. Verbreitung bei der BorgBackup Community | 5 | 5 | 3 | 15 | +| 10. Geschwindigkeit der Entwicklung | 3 | 5 | 2 | 6 | +|---------------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| *Total* | | | | 271 | +|---------------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| #+TBLFM: @3$5=@3$2 * @3$4::@4$5=@4$2 * @4$4::@5$5=@5$2 * @5$4::@6$5=@6$2 * @6$4::@7$5=@7$2 * @7$4::@8$5=@8$2 * @8$4::@9$5=@9$2 * @9$4::@10$5=@10$2 * @10$4::@11$5=@11$2 * @11$4::@12$5=@12$2 * @12$4 #+TBLFM: @>$5=vsum(@3..@-1) @@ -1219,23 +1219,23 @@ entwickeln kann, dies jedoch zu Lasten der Performance. #+CAPTION: Python Bewertungstabelle #+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{4cm}|c|p{2cm}|p{2cm}|p{2cm}| #+NAME: tab:python -|----------------------+----------------------+----------------------+----------------------+----------------------| -| <20> | <20> | <20> | <20> | <20> | -| *Kriterium*\cellcolor[HTML]{C0C0C0} | *Gewichtung*\cellcolor[HTML]{C0C0C0} | *max. Punktzahl*\cellcolor[HTML]{C0C0C0} | *erreichte Punktzahl*\cellcolor[HTML]{C0C0C0} | *Kriteriums- ergebnis*\cellcolor[HTML]{C0C0C0} | -|----------------------+----------------------+----------------------+----------------------+----------------------| -| 1. Cross Plattform nutzbar | 10 | 8 | 8 | 80 | -| 2. Freie Software | 5 | 10 | 10 | 50 | -| 3. Vorkenntnisse | 5 | 10 | 5 | 25 | -| 4. Integriert sich gut ins System | 5 | 10 | 8 | 40 | -| 5. Ohne spezielle Tools nutzbar | 5 | 10 | 7 | 35 | -| 6. Lesbarkeit des Codes | 5 | 5 | 4 | 20 | -| 7. Einfachheit des Setups | 5 | 5 | 4 | 20 | -| 8. Lernfaktor | 5 | 5 | 3 | 15 | -| 9. Verbreitung in der BorgBackup Community | 5 | 5 | 5 | 25 | -| 10. Geschwindigkeit der Entwicklung | 3 | 5 | 4 | 12 | -|----------------------+----------------------+----------------------+----------------------+----------------------| -| *Total* | | | | 322 | -|----------------------+----------------------+----------------------+----------------------+----------------------| +|--------------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| <20> | <20> | <20> | <20> | <20> | +| *Kriterium*\cellcolor[HTML]{C0C0C0} | *Gewichtung*\cellcolor[HTML]{C0C0C0} | *max. Punktzahl*\cellcolor[HTML]{C0C0C0} | *erreichte Punktzahl*\cellcolor[HTML]{C0C0C0} | *Kriteriums- ergebnis*\cellcolor[HTML]{C0C0C0} | +|--------------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| 1. Cross Plattform nutzbar | 10 | 8 | 8 | 80 | +| 2. Freie Software | 5 | 10 | 10 | 50 | +| 3. Vorkenntnisse | 5 | 10 | 5 | 25 | +| 4. Integriert sich gut ins System | 5 | 10 | 8 | 40 | +| 5. Ohne spezielle Tools nutzbar | 5 | 10 | 7 | 35 | +| 6. Lesbarkeit des Codes | 5 | 5 | 4 | 20 | +| 7. Einfachheit des Setups | 5 | 5 | 4 | 20 | +| 8. Lernfaktor | 5 | 5 | 3 | 15 | +| 9. Verbreitung in der BorgBackup Community | 5 | 5 | 5 | 25 | +| 10. Geschwindigkeit der Entwicklung | 3 | 5 | 4 | 12 | +|--------------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| *Total* | | | | 322 | +|--------------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| #+TBLFM: @3$5=@3$2 * @3$4::@4$5=@4$2 * @4$4::@5$5=@5$2 * @5$4::@6$5=@6$2 * @6$4::@7$5=@7$2 * @7$4::@8$5=@8$2 * @8$4::@9$5=@9$2 * @9$4::@10$5=@10$2 * @10$4::@11$5=@11$2 * @11$4::@12$5=@12$2 * @12$4 #+TBLFM: @>$5=vsum(@3..@-1) @@ -1283,21 +1283,21 @@ gross. #+CAPTION: Qt Bewertungstabelle #+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{4cm}|c|p{2cm}|p{2cm}|p{2cm}| #+NAME: tab:qt -|----------------------+----------------------+----------------------+----------------------+----------------------| -| <20> | <20> | <20> | <20> | <20> | +|-------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| <20> | <20> | <20> | <20> | <20> | | *Kriterium*\cellcolor[HTML]{C0C0C0} | *Gewichtung*\cellcolor[HTML]{C0C0C0} | *max. Punktzahl*\cellcolor[HTML]{C0C0C0} | *erreichte Punktzahl*\cellcolor[HTML]{C0C0C0} | *Kriteriums- ergebnis*\cellcolor[HTML]{C0C0C0} | -|----------------------+----------------------+----------------------+----------------------+----------------------| -| 1. Cross Plattform nutzbar | 10 | 10 | 10 | 100 | -| 2. Freie Software | 5 | 10 | 10 | 50 | -| 3. Vorkenntnisse | 5 | 10 | 2 | 10 | -| 4. Integriert sich gut ins System | 5 | 10 | 8 | 40 | -| 5. Ohne spezielle Tools nutzbar | 5 | 10 | 8 | 40 | -| 6. Lesbarkeit des Codes | 5 | 5 | 3 | 15 | -| 7. Einfachheit des Setups | 5 | 5 | 4 | 20 | -| 8. Lernfaktor | 5 | 5 | 4 | 20 | -|----------------------+----------------------+----------------------+----------------------+----------------------| -| *Total* | | | | 295 | -|----------------------+----------------------+----------------------+----------------------+----------------------| +|-------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| 1. Cross Plattform nutzbar | 10 | 10 | 10 | 100 | +| 2. Freie Software | 5 | 10 | 10 | 50 | +| 3. Vorkenntnisse | 5 | 10 | 2 | 10 | +| 4. Integriert sich gut ins System | 5 | 10 | 8 | 40 | +| 5. Ohne spezielle Tools nutzbar | 5 | 10 | 8 | 40 | +| 6. Lesbarkeit des Codes | 5 | 5 | 3 | 15 | +| 7. Einfachheit des Setups | 5 | 5 | 4 | 20 | +| 8. Lernfaktor | 5 | 5 | 4 | 20 | +|-------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| *Total* | | | | 295 | +|-------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| #+TBLFM: @3$5=@3$2 * @3$4::@4$5=@4$2 * @4$4::@5$5=@5$2 * @5$4::@6$5=@6$2 * @6$4::@7$5=@7$2 * @7$4::@8$5=@8$2 * @8$4::@9$5=@9$2 * @9$4::@10$5=@10$2 * @10$4 #+TBLFM: @>$5=vsum(@3..@-1) @@ -1341,21 +1341,21 @@ Da die Kenntnisse gleich null sind ist der Lernfaktor auf dem Maximum. #+CAPTION: Gtk Bewertungstabelle #+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{4cm}|c|p{2cm}|p{2cm}|p{2cm}| #+NAME: tab:gtk -|----------------------+----------------------+----------------------+----------------------+----------------------| -| <20> | <20> | <20> | <20> | <20> | +|-------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| <20> | <20> | <20> | <20> | <20> | | *Kriterium*\cellcolor[HTML]{C0C0C0} | *Gewichtung*\cellcolor[HTML]{C0C0C0} | *max. Punktzahl*\cellcolor[HTML]{C0C0C0} | *erreichte Punktzahl*\cellcolor[HTML]{C0C0C0} | *Kriteriums- ergebnis*\cellcolor[HTML]{C0C0C0} | -|----------------------+----------------------+----------------------+----------------------+----------------------| -| 1. Cross Plattform nutzbar | 10 | 10 | 10 | 100 | -| 2. Freie Software | 5 | 10 | 10 | 50 | -| 3. Vorkenntnisse | 5 | 10 | 0 | 0 | -| 4. Integriert sich gut ins System | 5 | 10 | 6 | 30 | -| 5. Ohne spezielle Tools nutzbar | 5 | 10 | 8 | 40 | -| 6. Lesbarkeit des Codes | 5 | 5 | 3 | 15 | -| 7. Einfachheit des Setups | 5 | 5 | 3 | 15 | -| 8. Lernfaktor | 5 | 5 | 5 | 25 | -|----------------------+----------------------+----------------------+----------------------+----------------------| -| *Total* | | | | 275 | -|----------------------+----------------------+----------------------+----------------------+----------------------| +|-------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| 1. Cross Plattform nutzbar | 10 | 10 | 10 | 100 | +| 2. Freie Software | 5 | 10 | 10 | 50 | +| 3. Vorkenntnisse | 5 | 10 | 0 | 0 | +| 4. Integriert sich gut ins System | 5 | 10 | 6 | 30 | +| 5. Ohne spezielle Tools nutzbar | 5 | 10 | 8 | 40 | +| 6. Lesbarkeit des Codes | 5 | 5 | 3 | 15 | +| 7. Einfachheit des Setups | 5 | 5 | 3 | 15 | +| 8. Lernfaktor | 5 | 5 | 5 | 25 | +|-------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| *Total* | | | | 275 | +|-------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| #+TBLFM: @3$5=@3$2 * @3$4::@4$5=@4$2 * @4$4::@5$5=@5$2 * @5$4::@6$5=@6$2 * @6$4::@7$5=@7$2 * @7$4::@8$5=@8$2 * @8$4::@9$5=@9$2 * @9$4::@10$5=@10$2 * @10$4 #+TBLFM: @>$5=vsum(@3..@-1) @@ -1398,21 +1398,21 @@ Lernfaktor bei Electron wohl nicht so gross wie etwa bei Qt oder Gtk. #+CAPTION: Electron Bewertungstabelle #+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{4cm}|c|p{2cm}|p{2cm}|p{2cm}| #+NAME: tab:electron -|----------------------+----------------------+----------------------+----------------------+----------------------| -| <20> | <20> | <20> | <20> | <20> | +|-------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| <20> | <20> | <20> | <20> | <20> | | *Kriterium*\cellcolor[HTML]{C0C0C0} | *Gewichtung*\cellcolor[HTML]{C0C0C0} | *max. Punktzahl*\cellcolor[HTML]{C0C0C0} | *erreichte Punktzahl*\cellcolor[HTML]{C0C0C0} | *Kriteriums- ergebnis*\cellcolor[HTML]{C0C0C0} | -|----------------------+----------------------+----------------------+----------------------+----------------------| -| 1. Cross Plattform nutzbar | 10 | 10 | 10 | 100 | -| 2. Freie Software | 5 | 10 | 10 | 50 | -| 3. Vorkenntnisse | 5 | 10 | 5 | 25 | -| 4. Integriert sich gut ins System | 5 | 10 | 4 | 20 | -| 5. Ohne spezielle Tools nutzbar | 5 | 10 | 7 | 35 | -| 6. Lesbarkeit des Codes | 5 | 5 | 3 | 15 | -| 7. Einfachheit des Setups | 5 | 5 | 3 | 15 | -| 8. Lernfaktor | 5 | 5 | 3 | 15 | -|----------------------+----------------------+----------------------+----------------------+----------------------| -| *Total* | | | | 275 | -|----------------------+----------------------+----------------------+----------------------+----------------------| +|-------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| 1. Cross Plattform nutzbar | 10 | 10 | 10 | 100 | +| 2. Freie Software | 5 | 10 | 10 | 50 | +| 3. Vorkenntnisse | 5 | 10 | 5 | 25 | +| 4. Integriert sich gut ins System | 5 | 10 | 4 | 20 | +| 5. Ohne spezielle Tools nutzbar | 5 | 10 | 7 | 35 | +| 6. Lesbarkeit des Codes | 5 | 5 | 3 | 15 | +| 7. Einfachheit des Setups | 5 | 5 | 3 | 15 | +| 8. Lernfaktor | 5 | 5 | 3 | 15 | +|-------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| +| *Total* | | | | 275 | +|-------------------------------------+--------------------------------------+------------------------------------------+-----------------------------------------------+------------------------------------------------| #+TBLFM: @3$5=@3$2 * @3$4::@4$5=@4$2 * @4$4::@5$5=@5$2 * @5$4::@6$5=@6$2 * @6$4::@7$5=@7$2 * @7$4::@8$5=@8$2 * @8$4::@9$5=@9$2 * @9$4::@10$5=@10$2 * @10$4 #+TBLFM: @>$5=vsum(@3..@-1) @@ -1437,15 +1437,116 @@ Python zu setzen und fürs Frontend Qt zu benutzen. | Electron | 275 | |------------------------------------+-----------------------------------------------| +** Applikationsname +Da die einzusetzende Technologie nun feststeht lässt sich auch gut ein Name für +die Applikation ableiten. Oftmals werden die grafischen Applikationen gleich +benannt wie die Kommandozeilen Applikation aber mit dem Namen des gls:gui +Frameworks als Sufix. Somit wird das zu erstellende gls:gui für gls:borg im +weiteren Verlauf der Arbeit nun Borg-Qt gennant. -** TODO Testing +** Testing -PLACEHOLDER +Die Anwendung wird während der Realisierung soweit als möglich mit +automatischen Unittests und Funktionstests überprüft. Dies hauptsächlich um die +Erfahrung in diesem Bereich zu erweitern und um ein gutes Fundament für die +Zukunft des Projektes zu bauen. -*** TODO Testfälle +Aufgrund der Unerfahrenheit in diesem Bereich werden die Testfälle, +Tabelle:([[tab:testcases]]), final jedoch von Hand überprüft. Somit kann vermieden +werden das nicht funktionierende automatische Tests den Abschluss des Projektes +verhindern. -PLACEHOLDER +Getestet wird die Applikation jeweils auf dem Computer des Projektleiters. Auf +diesem läuft die aktuelle langzeitsupport Version (18.04) von Ubuntu +footcite:ubuntu Linux, mit der GNOME Desktop Umgebung footcite:gnome, als +Betriebssystem. Die Tests werden jeweils gegen eine von PyInstaller generierte +Binärdatei ausgeführt. Der genaue Vorgang der Erstellung dieser Datei wird in +der Sektion: [[Releases][Releases]] beschrieben. Somit werden die Tests immer gegen eine +veröffentlichbare Version gemacht. + +Als Testdateien wird jeweils das Code Repository von Borg-Qt selber verwendet. +Der Pfad des gls:borg Repository für lokale Backups soll ~/tmp/test-borgqt~ +sein, in den Testfällen "Lokales Repository", genannt und das Passwort ~foo~. +Im Makefile des Repository wird dieses Setup definiert. Somit kann man als +Entwickler nur ~make repo~ ausführen und hat eine funktionsfähige Testumgebung. + +Um Backups über SSH testen zu können wird eine virtuelle Maschine mit Ubuntu +18.04 verwendet. Die Konfiguration der virtuellen Maschine sieht dabei wie +folgt aus: +- 2 CPU Kerne +- 1024 MB RAM +- IP: 10.7.89.117 +- Ein User ~borg~ mit Passwort ~borg~ +- gls:borg Repository unter ~/home/borg/backup/diplom~ mit Passwort ~foo~, in + den Testfällen "Server Repository" genannt +- Der SSH Key des Entwicklers wird in den User ~borg~ importiert. Dies + ermöglicht Passwort freie Logins. + +#+LATEX:\newpage +#+LATEX:\begin{landscape} +** Testfälle +#+LATEX:{\footnotesize +#+CAPTION: Testfälle +#+ATTR_LATEX: :environment longtable :align |>{\columncolor[HTML]{EFEFEF}}l|p{2cm}|p{2cm}|p{3.5cm}|p{2cm}|p{3cm}|p{3.5cm}|p{2.5cm}| :placement [H] +#+NAME: tab:testcases +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| <20> | <10> | <10> | <10> | <10> | <10> | <10> | <10> | +| *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* | Anwendung starten | Lokales Repository initialisiert.\newline Lokale Konfigurationsdatei erstellt. | 1. Anwendung starten. | - | Die Anwendung startet ohne Fehlermeldung und zeigt eine leere Backup Liste an. | Die Anwendung wird angezeigt. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-02* | Anwendung starten | Lokale Konfigurationsdatei erstellt. | 1. Anwendung starten. | - | Die Anwendung wirft eine Fehlermeldung das sie das lokale Repository nicht finden kann. | Die geöffnete Fehlermeldung blockiert die Applikation. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-03* | Anwendung starten | - | 1. Anwendung starten. | - | Die wirft eine Fehlermeldung das sie die Konfigurationsdatei nicht finden kann. | Die geöffnete Fehlermeldung blockiert die Applikation. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-04* | Lokales Backup erstellen | TC-01 ausgeführt. | 1. In der Ordnerübersicht das Code Repository auswählen.\newline 2. Den Button “Backup” betätigen. | Testdateien | Die Anwendung zeigt einen Fortschrittsbalken der nach erfolgtem Backup verschwindet. | Die Backup Liste wird aktualisiert und zeigt ein Backup an. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-05* | Lokales Backup erstellen | TC-01 ausgeführt.\newline BorgBackup macht bereits ein Backup. | 1. In der Ordnerübersicht das Code Repository auswählen.\newline 2. Den Button “Backup” betätigen. | Testdateien | Die Anwendung wirft eine Fehlermeldung das BorgBackup bereits ausgeführt wird. | Die geöffnete Fehlermeldung blockiert die Applikation. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-06* | Lokales Backup erstellen | TC-01 ausgeführt. | 1. Das Lokale Repository an einen beliebigen Ort verschieben.\newline 2. In der Ordnerübersicht das Code Repository auswählen.\newline 3. Den Button “Backup” betätigen. | Testdateien | Die Anwendung wirft eine Fehlermeldung das sie das lokale Repository nicht finden kann. | Die geöffnete Fehlermeldung blockiert die Applikation. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-07* | Lokales Backup erstellen | TC-01 ausgeführt. | 1. Den Button “Backup” betätigen. | - | Die Anwendung wirft eine Fehlermeldung das der User einen Pfad angeben soll. | Die geöffnete Fehlermeldung blockiert die Applikation. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-08* | Lokales Backup löschen | TC-04 ausgeführt. | 1. In der Backup Liste das Backup auswählen.\newline 2. Den Button “Delete” betätigen. | - | Die Anwendung zeigt einen Fortschrittsbalken der nach erfolgtem Löschen verschwindet. | Die Backup Liste wird aktualisiert und ist nun leer. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-09* | Lokales Backup löschen | TC-04 ausgeführt. | 1. Das Lokale Repository an einen beliebigen Ort verschieben.\newline 2. In der Backup Liste das Backup auswählen.\newline 3. Den Button “Delete” betätigen. | - | Die Anwendung wirft eine Fehlermeldung das sie das lokale Repository nicht finden kann. | Die geöffnete Fehlermeldung blockiert die Applikation. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-10* | Lokales Backup löschen | TC-04 ausgeführt. | 1. Den Button “Delete” betätigen. | - | Die Anwendung wirft eine Fehlermeldung das der User ein Backup auswählen soll. | Die geöffnete Fehlermeldung blockiert die Applikation. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-11* | Lokales Backup wiederherstellen | TC-04 ausgeführt. | 1. In der Backup Liste das Backup auswählen.\newline 2. Den Button “Restore” betätigen.\newline 3. Im geöffneten Dateidialog den Pfad "/home/andreas/Downloads" auswählen.\newline 4. Den Button “Open” anklicken. | - | Nach erfolgtem Wiederherstellen öffnet ein Datei Explorer den Ziel Pfad. | Die Anwendung und ein Datei Explorer wird angezeigt. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-12* | Lokales Backup wiederherstellen | TC-01 ausgeführt. | 1. Den Button “Backup” betätigen. | - | Die Anwendung wirft eine Fehlermeldung das der User ein Backup auswählen soll. | Die geöffnete Fehlermeldung blockiert die Applikation. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-13* | Lokales Backup wiederherstellen | TC-01 ausgeführt. | 1. Das Lokale Repository an einen beliebigen Ort verschieben.\newline 2. In der Backup Liste das Backup auswählen.\newline 3. Den Button “Restore” betätigen. | - | Die Anwendung wirft eine Fehlermeldung das sie das lokale Repository nicht finden kann. | Die geöffnete Fehlermeldung blockiert die Applikation. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-14* | Lokales Backup wiederherstellen | TC-01 ausgeführt. | 1. In der Backup Liste das Backup auswählen.\newline 2. Den Button “Restore” betätigen.\newline 3. Im geöffneten Dateidialog den Pfad "/home/andreas/Downloads" auswählen.\newline 4. Den Button “Cancel” anklicken. | - | Der Datei Dialog schliesst sich wieder. | Die Anwendung wird angezeigt. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-15* | Home Directory sichern und wiederherstellen | TC-01 ausgeführt. | 1. Vom Pfad "/home/andreas/" ein Backup erstellen.\newline 2. In der Backup Liste das gemachte Backup auswählen.\newline 3. Den Button “Restore” betätigen.\newline 4. Im geöffneten Dateidialog den Pfad "/home/andreas/Downloads" auswählen.\newline 5. Den Button “Open” anklicken. | "/home/andreas/" | Nach erfolgtem Wiederherstellen öffnet ein Datei Explorer den Ziel Pfad.\newline Darin fehlen jedoch temporäre Pfade wie “~/.cache” etc. | Die Anwendung und ein Datei Explorer wird angezeigt. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-16* | Einzelne Datei wiederherstellen | TC-04 ausgeführt. | 1. In der Backup Liste das Backup auswählen.\newline 2. Den Button “Mount” betätigen.\newline 3. Aus dem sich öffnenden Datei Explorer die Datei README.org nach "/home/andreas/Downloads" kopieren. | - | Die wiederhergestellte Datei ist identisch mit der in TC-04 gesicherten. | Die Anwendung und ein Datei Explorer wird angezeigt. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-17* | Einzelne Datei wiederherstellen | TC-01 ausgeführt. | 1. Das Lokale Repository an einen beliebigen Ort verschieben.\newline 2. In der Backup Liste das Backup auswählen.\newline 3. Den Button “Mount” betätigen. | - | Die Anwendung wirft eine Fehlermeldung das sie das lokale Repository nicht finden kann. | Die geöffnete Fehlermeldung blockiert die Applikation. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-18* | Pfad des lokalen Backup Repositorys anpassen | TC-04 ausgeführt.\newline Backup Repository nach "/tmp/test-borgqt2" verschoben | 1. Den Button "Settings" betätigen.\newline 2. Den Repository Pfad auf "/tmp/test-borgqt2/" ändern.\newline 3. Den Button "Apply" betätigen. | - | Die Backup Liste wird aktualisiert und zeigt wieder das Backup von TC-04 an. | Die Anwendung wird angezeigt. Die Konfigurationsdatei zeigt auf den neuen Pfad. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-19* | Backup Name ändern | TC-01 ausgeführt. | 1. Den Button "Settings" betätigen.\newline 2. Bei der Option "Archive Prefix" "Muster" eintragen.\newline 3. Den Button "Apply" betätigen.\newline 4. TC-04 durchführen. | Backupname: Muster | Die Anwendung zeigt einen Fortschrittsbalken der nach erfolgtem Backup verschwindet. | Die Backup Liste wird aktualisiert und zeigt ein Backup mit dem Präfix "Muster" an. Die Konfigurationsdatei beinhaltet die Option des Präfixes. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-20* | Keine Einstellungen ändern | TC-01 ausgeführt. | 1. Den Button "Settings" betätigen.\newline 2. Eine beliebige Option ändern.\newline 3. Den Button "Cancel" betätigen. | - | Der Einstellungsdialog schliesst sich. | Die Anwendung wird angezeigt. Die Konfigurationsdatei ist noch im selben Zustand wie bei TC-01. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-21* | Automtische Backups konfigurieren | TC-01 ausgeführt. | 1. Den Button "Settings" betätigen.\newline 2. Bei der Option "Automatic Backups" bei "Backup Path" die Testdateien angeben sowie "Hourly" auswählen und bei "Time" die nächste Stunde angeben.\newline 3. Den Button Apply betätigen. | Backupzeit: 2 Minuten nach aktueller Zeit Testdateien | Der Datei Dialog schliesst sich wieder. | Die Anwendung wird angezeigt. Die Konfigurationsdatei wurde um die Option des automatischen Backups erweitert. Die Anwendung hat einen "Service" auf dem System erstellt. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-22* | Automtische Backups durchführen | TC-16 ausgeführt. | 1. TC-21 durchführen.\newline 2. Auf Ablauf der Zeit warten.\newline 3. Die Anwendung öffnen. | - | In der Backup Liste wird ein Backup angezeigt. | Die Anwendung wird angezeigt. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-23* | Server Backup erstellen | Server Repository bereit.\newline Server Konfigurationsdatei erstellt. | TC-04 durchführen. | Testdateien | Die Anwendung zeigt einen Fortschrittsbalken der nach erfolgtem Backup verschwindet. | Die Backup Liste wird aktualisiert und zeigt ein Backup an. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-24* | Lokales Backup erstellen während dem eine VM läuft | TC-01 ausgeführt.\newline Virtualbox VM Starten. | 1. In der Ordnerübersicht das Code Repository auswählen.\newline 2. Den Button “Backup” betätigen. | Testdateien | Die Anwendung wirft eine Fehlermeldung aus das es zur Zeit aufgrund einer laufenden VM unsicher sei ein Backup durchzuführen. | Die geöffnete Fehlermeldung blockiert die Applikation. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +| *TC-25* | Abgebrochenes Backup bereinigen | TC-01 ausgeführt. | 1. In der Ordnerübersicht das Code Repository auswählen.\newline 2. Den Button “Backup” betätigen.\newline 3. Die Anwendung schliessen.\newline 4. Anwendung wieder öffnen.\newline 5. TC-04 Durchführen. | Testdateien | Bei Schritt 4. sollte ein Teilbackup zu sehen sein.\newline Bei Schritt 5 sollte einfach ein normales Backup zu sehen sein. | Die Anwendung wird angezeigt. | | +|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------| +#+LATEX:} +#+LATEX:\end{landscape} +#+LATEX:\newpage * TODO Realisierung ** TODO Cross-plattform Kompatibilität @@ -1474,6 +1575,8 @@ PLACEHOLDER PLACEHOLDER +** TODO Releases + * TODO Ausblick ** TODO Projektmanagement @@ -1494,18 +1597,18 @@ PLACEHOLDER #+CAPTION: Arbeitsjournal #+ATTR_LATEX: :environment longtable :align |p{2cm}|p{5cm}|p{5cm}|p{7cm}| #+NAME: tab:arbeitsjournal -|----------+----------------------+----------------------+----------------------| -| *Datum*\cellcolor[HTML]{C0C0C0} | *Geplante Arbeiten*\cellcolor[HTML]{C0C0C0} | *Erreichte Arbeiten*\cellcolor[HTML]{C0C0C0} | *Eindruck*\cellcolor[HTML]{C0C0C0} | -| <8> | <20> | <20> | <20> | -|----------+----------------------+----------------------+----------------------| -| 16.12.2018 | Zeitplan erarbeiten, Ziele dokumentieren | keine Abweichung | - | -|----------+----------------------+----------------------+----------------------| -| 23.12.2018 | Lösungsvarianten erfassen, Lösungsvarianten bewerten, Lösungsvariante bestimmen, SWOT Analyse erstellen, 1. Meeting | keine Abweichung | Marco Frei hat noch diverse Punkte eingebracht die, die Planung ziemlich durcheinander bringen. Bedeute viel zusätzliche Arbeit. | -|----------+----------------------+----------------------+----------------------| -| 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 | keine Abweichung | UML Diagramme für eine Software zu erstellen die nicht existiert ist noch eine interessante Herausforderung. | -|----------+----------------------+----------------------+----------------------| -| 06.01.2019 | Lösungsvarianten erarbeiten und entscheiden, Test Konzept beschreiben und Testfälle erstellen | | | -|----------+----------------------+----------------------+----------------------| +|---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------| +| *Datum*\cellcolor[HTML]{C0C0C0} | *Geplante Arbeiten*\cellcolor[HTML]{C0C0C0} | *Erreichte Arbeiten*\cellcolor[HTML]{C0C0C0} | *Eindruck*\cellcolor[HTML]{C0C0C0} | +| <8> | <20> | <20> | <20> | +|---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------| +| 16.12.2018 | Zeitplan erarbeiten, Ziele dokumentieren | keine Abweichung | - | +|---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------| +| 23.12.2018 | Lösungsvarianten erfassen, Lösungsvarianten bewerten, Lösungsvariante bestimmen, SWOT Analyse erstellen, 1. Meeting | keine Abweichung | Marco Frei hat noch diverse Punkte eingebracht die, die Planung ziemlich durcheinander bringen. Bedeute viel zusätzliche Arbeit. | +|---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------| +| 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 | keine Abweichung | UML Diagramme für eine Software zu erstellen die nicht existiert ist noch eine interessante Herausforderung. | +|---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------| +| 06.01.2019 | Lösungsvarianten erarbeiten und entscheiden, Test Konzept beschreiben und Testfälle erstellen | | | +|---------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------| #+LATEX:\end{landscape} * Bibliography :no_export: diff --git a/projektdokumentation/projektdokumentation.tex b/projektdokumentation/projektdokumentation.tex index d0226aa..09dea09 100644 --- a/projektdokumentation/projektdokumentation.tex +++ b/projektdokumentation/projektdokumentation.tex @@ -1,31 +1,31 @@ \section{Über dieses Dokument} -\label{sec:org9f1f089} +\label{sec:org76dd081} Im nachfolgenden Abschnitt finden Sie allgemeine Informationen zu diesem Dokument. \subsection{Beschreibung} -\label{sec:org5621d53} +\label{sec:orge6819c7} 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:org7c2e02f} +\label{sec:org6d2670d} Zweck dieses Dokumentes ist die vollständige und nachvollziehbare Dokumentation zur Diplomarbeit von Andreas Zweili. \subsection{Aufbau} -\label{sec:orga12727e} +\label{sec:org8681032} Alle Inhalte sind chronologisch sortiert, vom ältesten zum jüngsten Ereignis, und nach Kapiteln getrennt. \subsection{Lizenz} -\label{sec:orgad49599} +\label{sec:orgf3e005f} 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:org069b9ea} +\label{sec:org1ef1d10} \subsection{Vision} -\label{sec:org908b653} +\label{sec:org348c2b8} 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:org39c6a90} +\label{sec:orgd5d5fc5} \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:org14c9647} +\label{sec:orgf49e0c7} 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:org52a0180} +\label{sec:org8baf2f8} 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:org9275be4} +\caption{\label{tab:org56dc371} Projektziele} \\ \end{longtable} \newpage \subsection{Projektabgrenzung} -\label{sec:org336cfa6} +\label{sec:orgfdd7b17} 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:orgb541c49}), zu sehen ist werden die Aktion effektiv +ist. Wie in, Abbildung:(\ref{fig:org42cd259}), 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:orgb541c49} +\caption{\label{fig:org42cd259} Kontextdiagramm des Borg GUI} \end{figure} \subsection{Projektmethode} -\label{sec:org29ccf63} +\label{sec:org8f58dda} 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,13 +237,13 @@ Somit macht das iterative Vorgehen der Wassfall-methode für dieses Projekt am meisten Sinn. \subsection{Konfigurationsmanagement} -\label{sec:org83f888b} +\label{sec:org2837148} In der nachfolgenden Sektion wird definiert wie die Software und Dokumentation versioniert wird und welche allgemeinen Werkzeuge eingesetzt werden. \subsubsection{Versionskontrolle} -\label{sec:orgc10149d} +\label{sec:org5bb2dde} Die komplette Dokumentation, der Quellcode der Applikation sowie jeglich zusäzliche Dokumente wie etwa die Zeitplanung werden mittels der Software Git @@ -286,7 +286,7 @@ und schnelle Software erwiesen. \end{itemize} \subsubsection{Editor} -\label{sec:org9f4c43a} +\label{sec:orgb1642bc} Sowohl bei der Dokumentation wie auch bei der Programmierung wurde hauptsächlich der Editor GNU Emacs \footcite{emacs} verwendet. GNU Emacs ist mit @@ -297,7 +297,7 @@ flexibler Texteditior ist. Von normaler Textmanipulation über Taskmanagement und Emails schreiben ist alles möglich. \subsubsection{Dokumentation} -\label{sec:orgf78de20} +\label{sec:orgab77884} Diese Dokumentation wurde in Org-mode \footcite{orgmode}, einer Erweiterung für den Text Editor Emacs, geschrieben. Die Syntax erinnert an Markdown und @@ -329,7 +329,7 @@ Bei den Diagrammen wurden aussschliesslich Farben aus der von Google entwickelten Design Sprache "`Material"'\footcite{material} eingesetzt. \subsection{Zeitplanung} -\label{sec:orgd7e5234} +\label{sec:org4a56788} 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 @@ -347,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:orgc9e0677} +\label{sec:org38207a0} Das Controlling wird verwendet um zu kontrollieren das die eigentliche Planung mit dem effektiv geleisteten Aufwand respektive den effektiv verwendeten @@ -357,7 +357,7 @@ werden. \newpage \begin{landscape} \subsubsection{Zeit} -\label{sec:org49761cd} +\label{sec:orgc2ea5ea} \begin{longtable}{|p{3cm}|p{5cm}|p{3cm}|p{7cm}|} \hline @@ -378,14 +378,14 @@ werden. \hline & \textbf{Gesamter Aufwand} & & \\ \hline -\caption{\label{tab:orga70bdbf} +\caption{\label{tab:org14484f0} Zeitcontrolling} \\ \end{longtable} \newpage \subsubsection{Ressourcen} -\label{sec:orge70a0d3} +\label{sec:org1f87c54} Folgende Ressourcen werden wärend der Arbeit benötigt: \begin{longtable}{|p{5cm}|p{3cm}|p{3cm}|p{7cm}|} @@ -411,14 +411,14 @@ Korrekturleser & 3 & & \\ iPad & 1 & 1 & \\ Notebook & 1 & 1 & \\ \hline -\caption{\label{tab:orge203351} +\caption{\label{tab:org452e734} Ressourcen} \\ \end{longtable} \end{landscape} \subsubsection{Kosten} -\label{sec:org4c0ace3} +\label{sec:orgede2bc3} 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 @@ -444,25 +444,25 @@ Meeting \#3 & 5 & 300\\ \textbf{Total} & 320 & 19200\\ \hline \end{tabular} -\caption{\label{tab:org6829dd7} +\caption{\label{tab:org77a14fe} Kostenrechnung} \end{table} \subsection{Projektrisiken} -\label{sec:org51109de} +\label{sec:org60b9ca4} 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:org3b92534} +\label{sec:orgb3ef96b} -In der Tabelle: (\ref{tab:org606c2c8}), sind die Risiken des Projektes +In der Tabelle: (\ref{tab:org907910f}), sind die Risiken des Projektes gemeinsam mit ihren Gegenmassnahmen aufgelistet. Jedes Risiko wurde -entsprechend der Tabelle: (\ref{tab:org826ea60}) nach der Wahrscheinlichkeit -des Eintreffens bewertet und entsprechend der Tabelle: (\ref{tab:orgee0e694}) nach +entsprechend der Tabelle: (\ref{tab:org3741bc7}) nach der Wahrscheinlichkeit +des Eintreffens bewertet und entsprechend der Tabelle: (\ref{tab:org9895941}) nach seiner Auswirkung bewertet. \begin{longtable}{|p{0.45\textwidth}|p{0.45\textwidth}|} @@ -495,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:orgdbf2ea4} +\caption{\label{tab:org6ae90d2} Projektrisiken} \\ \end{longtable} \section{Analyse} -\label{sec:org69ba381} +\label{sec:org598ce2d} \subsection{Umweltanalyse} -\label{sec:org0b1a0ff} +\label{sec:org0c538d3} Die Projektumwelt-Analyse ist eine Methode, die Beziehungen, Erwartungshaltungen und Einflüsse auf das Projekt durch interne und @@ -511,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:orgd4b119b}) wurden die Anforderungen und Wünsche +Tabelle:(\ref{tab:org2aa11ab}) 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:org5fa0b49}) grafisch dargestellt. +Abbildung:(\ref{fig:orgbb87a04}) 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 @@ -528,7 +528,7 @@ Verfügung gestellt. \begin{figure}[htbp] \centering \includegraphics[width=.9\textwidth]{pictures/stakeholder_diagramm.pdf} -\caption{\label{fig:org5fa0b49} +\caption{\label{fig:orgbb87a04} Stakeholder Diagramm} \end{figure} @@ -555,14 +555,14 @@ Stakeholder Diagramm} & & & - Anerkennung im fachlichen Umfeld & hoch\\ \hline \end{tabular} -\caption{\label{tab:orgd4b119b} +\caption{\label{tab:org2aa11ab} Umwelt-Analyse} \end{table} \end{landscape} \subsection{Risiko-Analyse} -\label{sec:org6fcac9b} +\label{sec:org4ddd178} 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 @@ -570,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:org826ea60}) nach der Wahrscheinlichkeit des Eintreffens -bewertet und entsprechend der Tabelle: (\ref{tab:orgee0e694}) nach seiner Auswirkung +Tabelle: (\ref{tab:org3741bc7}) nach der Wahrscheinlichkeit des Eintreffens +bewertet und entsprechend der Tabelle: (\ref{tab:org9895941}) nach seiner Auswirkung im Bezug auf die Nützlichkeit der gemachten Backups. -In der Tabelle: (\ref{tab:org606c2c8}) sind dabei die Risiken für das -Szenario aufgelistet und nummeriert. In der, Abbildung:(\ref{fig:org85added}), ist die +In der Tabelle: (\ref{tab:org907910f}) sind dabei die Risiken für das +Szenario aufgelistet und nummeriert. In der, Abbildung:(\ref{fig:org64c4845}), ist die Bewertung des Ist-Risikos grafisch dargestellt und in der, -Abbildung:(\ref{fig:org5e0b50f}), ist das Soll-Risiko welches mit dieser Arbeit +Abbildung:(\ref{fig:org2d72343}), 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. @@ -594,7 +594,7 @@ Arbeit reduzieren kann. 2 = mittel & Mässig wahrscheinlich, 20-50\%\\ 3 = hoch & Hohe Wahrscheinlichkeit > 50\%\\ \end{tabular} -\caption{\label{tab:org826ea60} +\caption{\label{tab:org3741bc7} Risikobewertung Wahrscheinlichkeit} \end{table} @@ -608,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:orgee0e694} +\caption{\label{tab:org9895941} Risikobewertung Auswirkung} \end{table} @@ -630,7 +630,7 @@ Risikobewertung Auswirkung} 5. & Der Anwender vergisst die Backups zu machen.\\ \hline \end{tabular} -\caption{\label{tab:org606c2c8} +\caption{\label{tab:org907910f} Risikobeschreibung} \end{table} @@ -638,43 +638,43 @@ Risikobeschreibung} \begin{figure}[H] \centering \includegraphics[width=9cm]{pictures/istrisiko.pdf} -\caption{\label{fig:org85added} +\caption{\label{fig:org64c4845} Grafische Darstellung der Ist-Risikoanalyse} \end{figure} \begin{figure}[H] \centering \includegraphics[width=9cm]{pictures/sollrisiko.pdf} -\caption{\label{fig:org5e0b50f} +\caption{\label{fig:org2d72343} Grafische Darstellung der Soll-Risikoanalyse} \end{figure} \newpage \subsection{SWOT-Analyse} -\label{sec:orgd45af75} +\label{sec:orgc693367} 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:org5fafa63}) zu sehen. +Abbildung:(\ref{fig:orge38b33e}) zu sehen. \begin{figure}[htbp] \centering \includegraphics[width=.9\linewidth]{pictures/swot_analyse.pdf} -\caption{\label{fig:org5fafa63} +\caption{\label{fig:orge38b33e} SWOT Analyse des Projektes} \end{figure} \subsection{Anforderungskatalog} -\label{sec:org82903aa} +\label{sec:orga95a76c} Der Anforderungskatalog entspricht 1:1 den Zielen welche in der Tabelle -\ref{tab:org9275be4} definiert wurden. +\ref{tab:org56dc371} definiert wurden. \subsection{Use Cases} -\label{sec:orgc44612b} +\label{sec:org866931c} Ein Use Case sammelt alle möglichen Szenarien, die eintreten können, wenn ein Akteur versucht, mit Hilfe des betrachteten Systems ein @@ -685,7 +685,7 @@ Login). Dabei wird die technische Lösung nicht konkret beschrieben. Die Detailstufe kann dabei sehr unterschiedlich sein.\footcite{usecase} \subsubsection{Anwendungsfalldiagramm} -\label{sec:orge2f5022} +\label{sec:org6a14c60} "`Ein Anwendungsfalldiagramm \ldots{} ist eine der 14 Diagrammarten der Unified Modelling Language (UML), einer Sprache für die Modellierung @@ -694,39 +694,39 @@ 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:orgc9a56f0}) zu sehen. +(\ref{fig:org13817c2}) zu sehen. \newpage \begin{landscape} \begin{figure}[htbp] \centering \includegraphics[width=.9\linewidth]{pictures/use_case.pdf} -\caption{\label{fig:orgc9a56f0} +\caption{\label{fig:org13817c2} Anwendungsfalldiagramm} \end{figure} \end{landscape} \newpage \subsubsection{Use Cases Detailbeschreibung} -\label{sec:org179a393} +\label{sec:org8a57355} 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:org9200604}, \ref{tab:org4b98c25}, -\ref{tab:org7b118df}, \ref{tab:orged9864f}, \ref{tab:orga3274db}, \ref{tab:org4ea078d}, \ref{tab:org3890696}) -wurden dem Anwendungsfalldiagramm, Abbildung:(\ref{fig:orgc9a56f0}), entnommen und +Die nachfolgend aufgeführten Use Cases, Tabellen:(\ref{tab:org09f7d94}, \ref{tab:org4f1e89f}, +\ref{tab:org84075b7}, \ref{tab:org7e30143}, \ref{tab:org32a8377}, \ref{tab:org2b12346}, \ref{tab:org326ff05}) +wurden dem Anwendungsfalldiagramm, Abbildung:(\ref{fig:org13817c2}), entnommen und zusätzlich noch um jeweils ein Aktivitätsdiagramm , Abbildungen: -(\ref{fig:org8d383e4}, \ref{fig:org96d7936}, \ref{fig:orgb1cc6ad}, -\ref{fig:org992f6bb}, \ref{fig:org35467e2}, \ref{fig:org839581b}), erweitert +(\ref{fig:orgae0d01b}, \ref{fig:orgc29b501}, \ref{fig:orge7a6b7a}, +\ref{fig:org2e38263}, \ref{fig:orgbece471}, \ref{fig:org19c9d3a}), 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:org9166a09} +\label{sec:org271f4f4} {\footnotesize \begin{longtable}{|>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}|} @@ -775,7 +775,7 @@ Use Cases und zeigt einem gut die Zuständigkeiten der Aktoren auf. \hline \textbf{Date} & 30.12.2018\\ \hline -\caption{\label{tab:org9200604} +\caption{\label{tab:org09f7d94} Use Case 1.0 Backup erstellen} \\ \end{longtable} @@ -783,12 +783,12 @@ Use Case 1.0 Backup erstellen} \begin{figure}[htbp] \centering \includegraphics[width=.9\linewidth]{pictures/activity_backup.pdf} -\caption{\label{fig:org8d383e4} +\caption{\label{fig:orgae0d01b} Aktivitätsdiagramm zum Erstellen eines Backups} \end{figure} \newpage \paragraph{Use Case 2.0 Backup löschen} -\label{sec:orga845097} +\label{sec:org8b6ee38} {\footnotesize \begin{longtable}{|>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}|} @@ -839,7 +839,7 @@ Aktivitätsdiagramm zum Erstellen eines Backups} \hline \textbf{Date} & 30.12.2018\\ \hline -\caption{\label{tab:org4b98c25} +\caption{\label{tab:org4f1e89f} Use Case 2.0 Backup löschen} \\ \end{longtable} @@ -847,12 +847,12 @@ Use Case 2.0 Backup löschen} \begin{figure}[htbp] \centering \includegraphics[width=.9\linewidth]{pictures/activity_delete.pdf} -\caption{\label{fig:org96d7936} +\caption{\label{fig:orgc29b501} Aktivitätsdiagramm zum Löschen eines Backups} \end{figure} \newpage \paragraph{Use Case 3.0 Backup wiederherstellen} -\label{sec:orgb1c5081} +\label{sec:orgf158bff} {\footnotesize \begin{longtable}{|>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}|} @@ -904,7 +904,7 @@ Aktivitätsdiagramm zum Löschen eines Backups} \hline \textbf{Date} & 30.12.2018\\ \hline -\caption{\label{tab:org7b118df} +\caption{\label{tab:org84075b7} Use Case 3.0 Backup wiederherstellen} \\ \end{longtable} @@ -913,12 +913,12 @@ Use Case 3.0 Backup wiederherstellen} \begin{figure}[htbp] \centering \includegraphics[width=.9\linewidth]{pictures/activity_restore.pdf} -\caption{\label{fig:orgb1cc6ad} +\caption{\label{fig:orge7a6b7a} Aktivitätsdiagramm zum Wiederherstellen eines Backups} \end{figure} \newpage \paragraph{Use Case 4.0 Einzelne Datei wiederherstellen} -\label{sec:org8e173a3} +\label{sec:org16dfd61} {\footnotesize \begin{longtable}{|>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}|} @@ -967,7 +967,7 @@ Aktivitätsdiagramm zum Wiederherstellen eines Backups} \hline \textbf{Date} & 30.12.2018\\ \hline -\caption{\label{tab:orged9864f} +\caption{\label{tab:org7e30143} Use Case 4.0 Einzelne Datei wiederherstellen} \\ \end{longtable} @@ -976,12 +976,12 @@ Use Case 4.0 Einzelne Datei wiederherstellen} \begin{figure}[htbp] \centering \includegraphics[width=.9\linewidth]{pictures/activity_mount.pdf} -\caption{\label{fig:org992f6bb} +\caption{\label{fig:org2e38263} Aktivitätsdiagramm für das spezifische Wiederherstellen einer Datei} \end{figure} \newpage \paragraph{Use Case 4.1 Backup mounten} -\label{sec:orgae4ca85} +\label{sec:org045067a} {\footnotesize \begin{longtable}{|>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}|} @@ -1032,7 +1032,7 @@ Aktivitätsdiagramm für das spezifische Wiederherstellen einer Datei} \hline \textbf{Date} & 30.12.2018\\ \hline -\caption{\label{tab:orga3274db} +\caption{\label{tab:org32a8377} Use Case 4.1 Backup mounten} \\ \end{longtable} @@ -1040,7 +1040,7 @@ Use Case 4.1 Backup mounten} \newpage \paragraph{Use Case 5.0 Konfiguration ändern} -\label{sec:org4e6f313} +\label{sec:org27ebdc6} {\footnotesize \begin{longtable}{|>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}|} @@ -1093,7 +1093,7 @@ Use Case 4.1 Backup mounten} \hline \textbf{Date} & 30.12.2018\\ \hline -\caption{\label{tab:org4ea078d} +\caption{\label{tab:org2b12346} Use Case 5.0 Konfiguration ändern} \\ \end{longtable} @@ -1102,12 +1102,12 @@ Use Case 5.0 Konfiguration ändern} \begin{figure}[htbp] \centering \includegraphics[width=.9\linewidth]{pictures/activity_settings.pdf} -\caption{\label{fig:org35467e2} +\caption{\label{fig:orgbece471} Aktivitätsdiagramm zum Ändern von Einstellungen} \end{figure} \newpage \paragraph{Use Case 6.0 automatische Backups aktivieren} -\label{sec:org7ea0bf7} +\label{sec:org053e3b3} {\footnotesize \begin{longtable}{|>{\columncolor[HTML]{EFEFEF}}p{.235\textwidth}|p{.7\textwidth}|} @@ -1157,7 +1157,7 @@ Aktivitätsdiagramm zum Ändern von Einstellungen} \hline \textbf{Date} & 30.12.2018\\ \hline -\caption{\label{tab:org3890696} +\caption{\label{tab:org326ff05} Use Case 6.0 automatische Backups aktivieren} \\ \end{longtable} @@ -1166,15 +1166,15 @@ Use Case 6.0 automatische Backups aktivieren} \begin{figure}[htbp] \centering \includegraphics[width=.9\linewidth]{pictures/activity_automatic.pdf} -\caption{\label{fig:org839581b} +\caption{\label{fig:org19c9d3a} Aktivitätsdiagramm zum Aktivieren von automatischen Backups} \end{figure} \newpage \section{Konzept} -\label{sec:orgd0ea4f6} +\label{sec:org115f194} \subsection{Varianten} -\label{sec:org2b55ff8} +\label{sec:orgb78b1f7} 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 @@ -1186,7 +1186,7 @@ Daraus ergeben sich die in diesem Kapitel aufgeführten Möglichkeiten für das Projekt. \subsubsection{Bewertung} -\label{sec:org34c4be3} +\label{sec:orgab1507d} Die Bewertungspunkte setzen sich einerseits aus den Projektzielen anderseits aus für das Projekt sinnvollen Punkten zusammen. Dadurch ergeben sich dann die @@ -1205,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:org9275be4}). +der Tabelle Projektziele (\ref{tab:org56dc371}). \begin{table}[htbp] \centering @@ -1227,20 +1227,20 @@ der Tabelle Projektziele (\ref{tab:org9275be4}). \textbf{Total} & & & & 415\\ \hline \end{tabular} -\caption{\label{tab:org60d7038} +\caption{\label{tab:org8a40313} Muster Bewertungstabelle} \end{table} \subsubsection{Backend} -\label{sec:orgad0eeff} +\label{sec:orgcbb1eb1} -Fürs Backend bieten sich die folgende drei Sprachen an: \hyperref[sec:org2369fca]{C\#}, \hyperref[sec:org5cb06df]{C++}, \hyperref[sec:org1e551c7]{Python}. +Fürs Backend bieten sich die folgende drei Sprachen an: \hyperref[sec:orgae52100]{C\#}, \hyperref[sec:orga100d4d]{C++}, \hyperref[sec:org8190282]{Python}. Dies vorallem weil alle Allrounder Sprachen sind und sich gut für Desktop Applikationen eignen. \paragraph{C\#} -\label{sec:org2369fca} +\label{sec:orgae52100} C\# ist eine von Microsoft entwickelte Programmiersprache welche viele Frameworks zur Verfügung hat. Insbesondere Aufgrund der grossen kommerziellen @@ -1314,13 +1314,13 @@ Jedoch aufgrund des moderneren Unterbaus sicher schneller als C++. \textbf{Total} & & & & 279\\ \hline \end{tabular} -\caption{\label{tab:orgc9c6090} +\caption{\label{tab:org7184856} C\# Bewertungstabelle} \end{table} \paragraph{C++} -\label{sec:org5cb06df} +\label{sec:orga100d4d} C++ ist eine stark typisierte und kompilierte Programmiersprache. Sie ist seit 1998 Teil des ISO Standards \footcite{cpp98}. ISO/IEC 14882:2017 \footcite{cpp17} @@ -1382,13 +1382,13 @@ ungeeignet. \textbf{Total} & & & & 271\\ \hline \end{tabular} -\caption{\label{tab:orgba08048} +\caption{\label{tab:orga01e597} C++ Bewertungstabelle} \end{table} \paragraph{Python} -\label{sec:org1e551c7} +\label{sec:org8190282} 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 @@ -1420,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{org5e3d59f}) starten. +einfachen Befehl, Code Snippet (\ref{org63b1399}) starten. -\lstset{language=bash,label=org5e3d59f,caption={Minimal Python Setup},captionpos=b,numbers=none} +\lstset{language=bash,label=org63b1399,caption={Minimal Python Setup},captionpos=b,numbers=none} \begin{sexylisting}{Minimal Python Setup} python3 example.py \end{sexylisting} @@ -1461,15 +1461,15 @@ entwickeln kann, dies jedoch zu Lasten der Performance. \textbf{Total} & & & & 322\\ \hline \end{tabular} -\caption{\label{tab:orga748a93} +\caption{\label{tab:orga20a2b7} Python Bewertungstabelle} \end{table} \subsubsection{FrontEnd} -\label{sec:org3ea116b} +\label{sec:org485cede} -Fürs Frontend sind folgende Projekte interessant: \hyperref[sec:orgb9798d9]{Qt}, \hyperref[sec:orge4f95de]{Gtk} und \hyperref[sec:orgf2a5cfb]{Electron}. Alle +Fürs Frontend sind folgende Projekte interessant: \hyperref[sec:org0f21b79]{Qt}, \hyperref[sec:orgdb99ccc]{Gtk} und \hyperref[sec:org844cf00]{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 @@ -1477,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:orgb9798d9} +\label{sec:org0f21b79} Qt \footcite{qt}, "`cute"' ausgesprochen, ist ein Framework zum Entwickeln von grafischen Oberflächen welche auf verschiedenen System ohne grosse Änderungen @@ -1527,13 +1527,13 @@ gross. \textbf{Total} & & & & 295\\ \hline \end{tabular} -\caption{\label{tab:org8d19685} +\caption{\label{tab:org2ccd75a} Qt Bewertungstabelle} \end{table} \paragraph{Gtk} -\label{sec:orge4f95de} +\label{sec:orgdb99ccc} 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. @@ -1547,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:orgeedd70e}). +Abbildung (\ref{fig:orgf763769}). \begin{figure}[htbp] \centering \includegraphics[width=.9\linewidth]{pictures/meld.png} -\caption{\label{fig:orgeedd70e} +\caption{\label{fig:orgf763769} Screenshot der Applikation Meld unter Windows 10} \end{figure} Die Gtk Dokumentation empfiehlt \footcite{gtk_setup}, das man unter Windows das @@ -1589,13 +1589,13 @@ Da die Kenntnisse gleich null sind ist der Lernfaktor auf dem Maximum. \textbf{Total} & & & & 275\\ \hline \end{tabular} -\caption{\label{tab:org8321157} +\caption{\label{tab:org1738350} Gtk Bewertungstabelle} \end{table} \paragraph{Electron} -\label{sec:orgf2a5cfb} +\label{sec:org844cf00} Electron ist ein cross-platform Framework zum entwickeln von \glspl{gui} welches dabei jedoch auf Technologien aus der Webentwicklung benutzt. Entwickelt wird @@ -1649,15 +1649,15 @@ Lernfaktor bei Electron wohl nicht so gross wie etwa bei Qt oder Gtk. \textbf{Total} & & & & 275\\ \hline \end{tabular} -\caption{\label{tab:org6e61af0} +\caption{\label{tab:org76b246d} Electron Bewertungstabelle} \end{table} \subsubsection{Ergebnis} -\label{sec:orgb914223} +\label{sec:org5470bfd} -Aufgrund der erreichten Punktzahl, Tabelle:(\ref{tab:org609b05e}), bei den vorhergehenden +Aufgrund der erreichten Punktzahl, Tabelle:(\ref{tab:orgbdd652b}), bei den vorhergehenden Variantenbewertungen, wurde entschieden für das Backend der Applikation auf Python zu setzen und fürs Frontend Qt zu benutzen. \begin{table}[H] @@ -1676,85 +1676,199 @@ Gtk & 275\\ Electron & 275\\ \hline \end{tabular} -\caption{\label{tab:org609b05e} +\caption{\label{tab:orgbdd652b} Variantenbewertung Ergebnis} \end{table} -\subsection{Vorkenntnisse} -\label{sec:org4ef797a} +\subsection{Applikationsname} +\label{sec:org99b3610} -Die benötigten Vorkenntnisse wurden in den vorangegangenen Semestern erarbeitet -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\#. +Da die einzusetzende Technologie nun feststeht lässt sich auch gut ein Name für +die Applikation ableiten. Oftmals werden die grafischen Applikationen gleich +benannt wie die Kommandozeilen Applikation aber mit dem Namen des \gls{gui} +Frameworks als Sufix. Somit wird das zu erstellende \gls{gui} für \gls{borg} im +weiteren Verlauf der Arbeit nun Borg-Qt gennant. \subsection{Testing} -\label{sec:org4efee39} +\label{sec:org4369221} -PLACEHOLDER +Die Anwendung wird während der Realisierung soweit als möglich mit +automatischen Unittests und Funktionstests überprüft. Dies hauptsächlich um die +Erfahrung in diesem Bereich zu erweitern und um ein gutes Fundament für die +Zukunft des Projektes zu bauen. -\subsubsection{Testfälle} -\label{sec:org55477bd} +Aufgrund der Unerfahrenheit in diesem Bereich werden die Testfälle, +Tabelle:(\ref{tab:orgea03cef}), final jedoch von Hand überprüft. Somit kann vermieden +werden das nicht funktionierende automatische Tests den Abschluss des Projektes +verhindern. -PLACEHOLDER +Getestet wird die Applikation jeweils auf dem Computer des Projektleiters. Auf +diesem läuft die aktuelle langzeitsupport Version (18.04) von Ubuntu +\footcite{ubuntu} Linux, mit der GNOME Desktop Umgebung \footcite{gnome}, als +Betriebssystem. Die Tests werden jeweils gegen eine von PyInstaller generierte +Binärdatei ausgeführt. Der genaue Vorgang der Erstellung dieser Datei wird in +der Sektion: \hyperref[sec:orgc187131]{Releases} beschrieben. Somit werden die Tests immer gegen eine +veröffentlichbare Version gemacht. + +Als Testdateien wird jeweils das Code Repository von Borg-Qt selber verwendet. +Der Pfad des \gls{borg} Repository für lokale Backups soll \texttt{/tmp/test-borgqt} +sein, in den Testfällen "`Lokales Repository"', genannt und das Passwort \texttt{foo}. +Im Makefile des Repository wird dieses Setup definiert. Somit kann man als +Entwickler nur \texttt{make repo} ausführen und hat eine funktionsfähige Testumgebung. + +Um Backups über SSH testen zu können wird eine virtuelle Maschine mit Ubuntu +18.04 verwendet. Die Konfiguration der virtuellen Maschine sieht dabei wie +folgt aus: +\begin{itemize} +\item 2 CPU Kerne +\item 1024 MB RAM +\item IP: 10.7.89.117 +\item Ein User \texttt{borg} mit Passwort \texttt{borg} +\item \gls{borg} Repository unter \texttt{/home/borg/backup/diplom} mit Passwort \texttt{foo}, in +den Testfällen "`Server Repository"' genannt +\item Der SSH Key des Entwicklers wird in den User \texttt{borg} importiert. Dies +ermöglicht Passwort freie Logins. +\end{itemize} + +\newpage +\begin{landscape} +\subsection{Testfälle} +\label{sec:org6245b05} +{\footnotesize +\begin{longtable}{|>{\columncolor[HTML]{EFEFEF}}l|p{2cm}|p{2cm}|p{3.5cm}|p{2cm}|p{3cm}|p{3.5cm}|p{2.5cm}|} +\hline +\textbf{ID}\cellcolor[HTML]{C0C0C0} & \textbf{Objective}\cellcolor[HTML]{C0C0C0} & \textbf{Precondition}\cellcolor[HTML]{C0C0C0} & \textbf{Steps}\cellcolor[HTML]{C0C0C0} & \textbf{Testdata}\cellcolor[HTML]{C0C0C0} & \textbf{Expected Result}\cellcolor[HTML]{C0C0C0} & \textbf{Postcondition}\cellcolor[HTML]{C0C0C0} & \textbf{Result}\cellcolor[HTML]{C0C0C0}\\ +\hline +\endfirsthead +\multicolumn{8}{l}{Fortsetzung von vorheriger Seite} \\ +\hline + +\textbf{ID}\cellcolor[HTML]{C0C0C0} & \textbf{Objective}\cellcolor[HTML]{C0C0C0} & \textbf{Precondition}\cellcolor[HTML]{C0C0C0} & \textbf{Steps}\cellcolor[HTML]{C0C0C0} & \textbf{Testdata}\cellcolor[HTML]{C0C0C0} & \textbf{Expected Result}\cellcolor[HTML]{C0C0C0} & \textbf{Postcondition}\cellcolor[HTML]{C0C0C0} & \textbf{Result}\cellcolor[HTML]{C0C0C0} \\ + +\hline +\endhead +\hline\multicolumn{8}{r}{Fortsetzung nächste Seite} \\ +\endfoot +\endlastfoot +\hline +\textbf{TC-01} & Anwendung starten & Lokales Repository initialisiert.\newline Lokale Konfigurationsdatei erstellt. & 1. Anwendung starten. & - & Die Anwendung startet ohne Fehlermeldung und zeigt eine leere Backup Liste an. & Die Anwendung wird angezeigt. & \\ +\hline +\textbf{TC-02} & Anwendung starten & Lokale Konfigurationsdatei erstellt. & 1. Anwendung starten. & - & Die Anwendung wirft eine Fehlermeldung das sie das lokale Repository nicht finden kann. & Die geöffnete Fehlermeldung blockiert die Applikation. & \\ +\hline +\textbf{TC-03} & Anwendung starten & - & 1. Anwendung starten. & - & Die wirft eine Fehlermeldung das sie die Konfigurationsdatei nicht finden kann. & Die geöffnete Fehlermeldung blockiert die Applikation. & \\ +\hline +\textbf{TC-04} & Lokales Backup erstellen & TC-01 ausgeführt. & 1. In der Ordnerübersicht das Code Repository auswählen.\newline 2. Den Button “Backup” betätigen. & Testdateien & Die Anwendung zeigt einen Fortschrittsbalken der nach erfolgtem Backup verschwindet. & Die Backup Liste wird aktualisiert und zeigt ein Backup an. & \\ +\hline +\textbf{TC-05} & Lokales Backup erstellen & TC-01 ausgeführt.\newline BorgBackup macht bereits ein Backup. & 1. In der Ordnerübersicht das Code Repository auswählen.\newline 2. Den Button “Backup” betätigen. & Testdateien & Die Anwendung wirft eine Fehlermeldung das BorgBackup bereits ausgeführt wird. & Die geöffnete Fehlermeldung blockiert die Applikation. & \\ +\hline +\textbf{TC-06} & Lokales Backup erstellen & TC-01 ausgeführt. & 1. Das Lokale Repository an einen beliebigen Ort verschieben.\newline 2. In der Ordnerübersicht das Code Repository auswählen.\newline 3. Den Button “Backup” betätigen. & Testdateien & Die Anwendung wirft eine Fehlermeldung das sie das lokale Repository nicht finden kann. & Die geöffnete Fehlermeldung blockiert die Applikation. & \\ +\hline +\textbf{TC-07} & Lokales Backup erstellen & TC-01 ausgeführt. & 1. Den Button “Backup” betätigen. & - & Die Anwendung wirft eine Fehlermeldung das der User einen Pfad angeben soll. & Die geöffnete Fehlermeldung blockiert die Applikation. & \\ +\hline +\textbf{TC-08} & Lokales Backup löschen & TC-04 ausgeführt. & 1. In der Backup Liste das Backup auswählen.\newline 2. Den Button “Delete” betätigen. & - & Die Anwendung zeigt einen Fortschrittsbalken der nach erfolgtem Löschen verschwindet. & Die Backup Liste wird aktualisiert und ist nun leer. & \\ +\hline +\textbf{TC-09} & Lokales Backup löschen & TC-04 ausgeführt. & 1. Das Lokale Repository an einen beliebigen Ort verschieben.\newline 2. In der Backup Liste das Backup auswählen.\newline 3. Den Button “Delete” betätigen. & - & Die Anwendung wirft eine Fehlermeldung das sie das lokale Repository nicht finden kann. & Die geöffnete Fehlermeldung blockiert die Applikation. & \\ +\hline +\textbf{TC-10} & Lokales Backup löschen & TC-04 ausgeführt. & 1. Den Button “Delete” betätigen. & - & Die Anwendung wirft eine Fehlermeldung das der User ein Backup auswählen soll. & Die geöffnete Fehlermeldung blockiert die Applikation. & \\ +\hline +\textbf{TC-11} & Lokales Backup wiederherstellen & TC-04 ausgeführt. & 1. In der Backup Liste das Backup auswählen.\newline 2. Den Button “Restore” betätigen.\newline 3. Im geöffneten Dateidialog den Pfad "`/home/andreas/Downloads"' auswählen.\newline 4. Den Button “Open” anklicken. & - & Nach erfolgtem Wiederherstellen öffnet ein Datei Explorer den Ziel Pfad. & Die Anwendung und ein Datei Explorer wird angezeigt. & \\ +\hline +\textbf{TC-12} & Lokales Backup wiederherstellen & TC-01 ausgeführt. & 1. Den Button “Backup” betätigen. & - & Die Anwendung wirft eine Fehlermeldung das der User ein Backup auswählen soll. & Die geöffnete Fehlermeldung blockiert die Applikation. & \\ +\hline +\textbf{TC-13} & Lokales Backup wiederherstellen & TC-01 ausgeführt. & 1. Das Lokale Repository an einen beliebigen Ort verschieben.\newline 2. In der Backup Liste das Backup auswählen.\newline 3. Den Button “Restore” betätigen. & - & Die Anwendung wirft eine Fehlermeldung das sie das lokale Repository nicht finden kann. & Die geöffnete Fehlermeldung blockiert die Applikation. & \\ +\hline +\textbf{TC-14} & Lokales Backup wiederherstellen & TC-01 ausgeführt. & 1. In der Backup Liste das Backup auswählen.\newline 2. Den Button “Restore” betätigen.\newline 3. Im geöffneten Dateidialog den Pfad "`/home/andreas/Downloads"' auswählen.\newline 4. Den Button “Cancel” anklicken. & - & Der Datei Dialog schliesst sich wieder. & Die Anwendung wird angezeigt. & \\ +\hline +\textbf{TC-15} & Home Directory sichern und wiederherstellen & TC-01 ausgeführt. & 1. Vom Pfad "`\emph{home/andreas}"' ein Backup erstellen.\newline 2. In der Backup Liste das gemachte Backup auswählen.\newline 3. Den Button “Restore” betätigen.\newline 4. Im geöffneten Dateidialog den Pfad "`/home/andreas/Downloads"' auswählen.\newline 5. Den Button “Open” anklicken. & "`\emph{home/andreas}"' & Nach erfolgtem Wiederherstellen öffnet ein Datei Explorer den Ziel Pfad.\newline Darin fehlen jedoch temporäre Pfade wie “\textasciitilde{}/.cache” etc. & Die Anwendung und ein Datei Explorer wird angezeigt. & \\ +\hline +\textbf{TC-16} & Einzelne Datei wiederherstellen & TC-04 ausgeführt. & 1. In der Backup Liste das Backup auswählen.\newline 2. Den Button “Mount” betätigen.\newline 3. Aus dem sich öffnenden Datei Explorer die Datei README.org nach "`/home/andreas/Downloads"' kopieren. & - & Die wiederhergestellte Datei ist identisch mit der in TC-04 gesicherten. & Die Anwendung und ein Datei Explorer wird angezeigt. & \\ +\hline +\textbf{TC-17} & Einzelne Datei wiederherstellen & TC-01 ausgeführt. & 1. Das Lokale Repository an einen beliebigen Ort verschieben.\newline 2. In der Backup Liste das Backup auswählen.\newline 3. Den Button “Mount” betätigen. & - & Die Anwendung wirft eine Fehlermeldung das sie das lokale Repository nicht finden kann. & Die geöffnete Fehlermeldung blockiert die Applikation. & \\ +\hline +\textbf{TC-18} & Pfad des lokalen Backup Repositorys anpassen & TC-04 ausgeführt.\newline Backup Repository nach "`/tmp/test-borgqt2"' verschoben & 1. Den Button "`Settings"' betätigen.\newline 2. Den Repository Pfad auf "`\emph{tmp/test-borgqt2}"' ändern.\newline 3. Den Button "`Apply"' betätigen. & - & Die Backup Liste wird aktualisiert und zeigt wieder das Backup von TC-04 an. & Die Anwendung wird angezeigt. Die Konfigurationsdatei zeigt auf den neuen Pfad. & \\ +\hline +\textbf{TC-19} & Backup Name ändern & TC-01 ausgeführt. & 1. Den Button "`Settings"' betätigen.\newline 2. Bei der Option "`Archive Prefix"' "`Muster"' eintragen.\newline 3. Den Button "`Apply"' betätigen.\newline 4. TC-04 durchführen. & Backupname: Muster & Die Anwendung zeigt einen Fortschrittsbalken der nach erfolgtem Backup verschwindet. & Die Backup Liste wird aktualisiert und zeigt ein Backup mit dem Präfix "`Muster"' an. Die Konfigurationsdatei beinhaltet die Option des Präfixes. & \\ +\hline +\textbf{TC-20} & Keine Einstellungen ändern & TC-01 ausgeführt. & 1. Den Button "`Settings"' betätigen.\newline 2. Eine beliebige Option ändern.\newline 3. Den Button "`Cancel"' betätigen. & - & Der Einstellungsdialog schliesst sich. & Die Anwendung wird angezeigt. Die Konfigurationsdatei ist noch im selben Zustand wie bei TC-01. & \\ +\hline +\textbf{TC-21} & Automtische Backups konfigurieren & TC-01 ausgeführt. & 1. Den Button "`Settings"' betätigen.\newline 2. Bei der Option "`Automatic Backups"' bei "`Backup Path"' die Testdateien angeben sowie "`Hourly"' auswählen und bei "`Time"' die nächste Stunde angeben.\newline 3. Den Button Apply betätigen. & Backupzeit: 2 Minuten nach aktueller Zeit Testdateien & Der Datei Dialog schliesst sich wieder. & Die Anwendung wird angezeigt. Die Konfigurationsdatei wurde um die Option des automatischen Backups erweitert. Die Anwendung hat einen "`Service"' auf dem System erstellt. & \\ +\hline +\textbf{TC-22} & Automtische Backups durchführen & TC-16 ausgeführt. & 1. TC-21 durchführen.\newline 2. Auf Ablauf der Zeit warten.\newline 3. Die Anwendung öffnen. & - & In der Backup Liste wird ein Backup angezeigt. & Die Anwendung wird angezeigt. & \\ +\hline +\textbf{TC-23} & Server Backup erstellen & Server Repository bereit.\newline Server Konfigurationsdatei erstellt. & TC-04 durchführen. & Testdateien & Die Anwendung zeigt einen Fortschrittsbalken der nach erfolgtem Backup verschwindet. & Die Backup Liste wird aktualisiert und zeigt ein Backup an. & \\ +\hline +\textbf{TC-24} & Lokales Backup erstellen während dem eine VM läuft & TC-01 ausgeführt.\newline Virtualbox VM Starten. & 1. In der Ordnerübersicht das Code Repository auswählen.\newline 2. Den Button “Backup” betätigen. & Testdateien & Die Anwendung wirft eine Fehlermeldung aus das es zur Zeit aufgrund einer laufenden VM unsicher sei ein Backup durchzuführen. & Die geöffnete Fehlermeldung blockiert die Applikation. & \\ +\hline +\textbf{TC-25} & Abgebrochenes Backup bereinigen & TC-01 ausgeführt. & 1. In der Ordnerübersicht das Code Repository auswählen.\newline 2. Den Button “Backup” betätigen.\newline 3. Die Anwendung schliessen.\newline 4. Anwendung wieder öffnen.\newline 5. TC-04 Durchführen. & Testdateien & Bei Schritt 4. sollte ein Teilbackup zu sehen sein.\newline Bei Schritt 5 sollte einfach ein normales Backup zu sehen sein. & Die Anwendung wird angezeigt. & \\ +\hline +\caption{\label{tab:orgea03cef} +Testfälle} +\\ +\end{longtable} +} +\end{landscape} +\newpage \section{Realisierung} -\label{sec:org084b9b2} +\label{sec:orga689e7f} \subsection{Cross-plattform Kompatibilität} -\label{sec:orgc58cfd4} +\label{sec:org7aa41c9} 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:org0701830}) zu sehen +Linux und OS X. Wie in den Screenshots in Abbildung:(\ref{fig:orgc21181f}) zu sehen ist. \begin{figure}[htbp] \centering \includegraphics[width=.9\linewidth]{pictures/hello_world.png} -\caption{\label{fig:org0701830} +\caption{\label{fig:orgc21181f} Python und Qt Applikation unter Windows (links), Linux (rechts) und OS X (unten)} \end{figure} \subsection{Benutzerinterface} -\label{sec:org50839f2} +\label{sec:org2cee34e} \paragraph{Inspiration} -\label{sec:org1cb94b4} +\label{sec:orgac8bf86} PLACEHOLDER \paragraph{Frontend Umsetzung} -\label{sec:org355e7a6} +\label{sec:orge01dc90} PLACEHOLDER \paragraph{Backend Umsetzung} -\label{sec:org263b030} +\label{sec:org41e1f3f} PLACEHOLDER +\subsection{Releases} +\label{sec:orgc187131} + \section{Ausblick} -\label{sec:org4832c62} +\label{sec:orgd795a85} \subsection{Projektmanagement} -\label{sec:org1794ec5} +\label{sec:org17dacac} PLACEHOLDER \subsection{Umsetzung} -\label{sec:org1ca9bef} +\label{sec:orgb506a80} PLACEHOLDER \subsection{Gelerntes} -\label{sec:orgd179673} +\label{sec:org666d5d3} PLACEHOLDER \newpage \begin{landscape} \section{Arbeitsjournal} -\label{sec:orgf31d4c9} +\label{sec:org907f4fb} \begin{longtable}{|p{2cm}|p{5cm}|p{5cm}|p{7cm}|} \hline @@ -1780,7 +1894,7 @@ PLACEHOLDER \hline 06.01.2019 & Lösungsvarianten erarbeiten und entscheiden, Test Konzept beschreiben und Testfälle erstellen & & \\ \hline -\caption{\label{tab:org109e680} +\caption{\label{tab:orge2b5828} Arbeitsjournal} \\ \end{longtable}