continue working on the thesis

This commit is contained in:
Andreas Zweili 2019-03-03 18:50:28 +01:00
parent a022f24c22
commit 1a6573f7ec
1 changed files with 269 additions and 232 deletions

View File

@ -29,8 +29,9 @@ zur Diplomarbeit von Andreas Zweili.
** Aufbau ** Aufbau
Alle Inhalte sind chronologisch sortiert, vom ältesten zum jüngsten Alle Inhalte sind in der Regel chronologisch sortiert, vom ältesten zum jüngsten
Ereignis, und nach Kapiteln getrennt. Ereignis, und nach Kapiteln getrennt. An gewissen Stellen kann die
chronologische Reihenfolge allenfalls nicht gewährleistet werden.
** Lizenz ** Lizenz
@ -134,7 +135,7 @@ integriert werden und ist nicht unwichtig.
|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| |------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------|
| 4. | Der User kann ein Archiv mit 3 Klicks löschen. | 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 | | | 5. | Der User kann unter Linux ein Archiv mit zwei Klicks "red-only" als Laufwerk mounten. | x | |
|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| |------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------|
| 6. | Der User kann ein Archiv wieder herstellen. | x | | | 6. | Der User kann ein Archiv wieder herstellen. | x | |
|------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------| |------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------------------------------|
@ -301,7 +302,7 @@ Die Diagramme wurden mit Draw.io footcite:draw erstellt. Draw.io ist gls:libre
unter Apache Lizenz Version 2.0 footcite:apache und kann sowohl als Desktop unter Apache Lizenz Version 2.0 footcite:apache und kann sowohl als Desktop
Applikation wie auch als Webanwendung genutzt werden. Applikation wie auch als Webanwendung genutzt werden.
Beim Design der Arbeit wurden soweit als möglich die typografischen Regeln aus Beim Design der Arbeit wurden soweit als möglich die typographischen Regeln aus
dem Buch "Practical Typography" von Matthew Butterick footcite:typo angewandt. dem Buch "Practical Typography" von Matthew Butterick footcite:typo angewandt.
Bei den Diagrammen wurden ausschliesslich Farben aus der von Google Bei den Diagrammen wurden ausschliesslich Farben aus der von Google
entwickelten Design Sprache "Material" footcite:material eingesetzt. entwickelten Design Sprache "Material" footcite:material eingesetzt.
@ -315,13 +316,13 @@ kollidiert An einem normalen Arbeitstag wurde dabei damit gerechnet das ca. 2
Stunden Arbeit am Abend möglich sein sollten. An einem arbeitsfreien Tag wurde Stunden Arbeit am Abend möglich sein sollten. An einem arbeitsfreien Tag wurde
mit 6 Stunden Arbeit gerechnet. Über die Festtage wurden diverse Tage von der mit 6 Stunden Arbeit gerechnet. Über die Festtage wurden diverse Tage von der
Planung ausgenommen, da es nicht realistisch schien das an diesen Tagen die Planung ausgenommen, da es nicht realistisch schien das an diesen Tagen die
Arbeit signifikant vorwärtsgehen würde. Auch Schultage wurde nicht, als Arbeit signifikant vorwärts gehen würde. Auch Schultage wurde nicht, als
Arbeitstage gerechnet da man meist nicht mehr für weitere Tätigkeiten gross Arbeitstage gerechnet da man meist nicht mehr für weitere Tätigkeiten gross
motiviert ist. motiviert ist.
Als zusätzliche Massnahme um die Arbeitslast zu verteilen wurde vom 14. Januar Als zusätzliche Massnahme um die Arbeitslast zu verteilen wurde vom 14. Januar
bis zum 11. März jeder Montag auf der Arbeitsstelle als frei eingegeben. bis zum 11. März jeder Montag auf der Arbeitsstelle als frei eingegeben.
Dadurch steht wägend des Projektes etwas mehr Zeit zur Verfügung als sonst mit Dadurch steht während des Projektes etwas mehr Zeit zur Verfügung als sonst mit
einer 100 Prozent Arbeitsstelle möglich wäre. einer 100 Prozent Arbeitsstelle möglich wäre.
** TODO Controlling ** TODO Controlling
@ -333,7 +334,7 @@ Lehren gezogen werden.
#+LATEX:\newpage #+LATEX:\newpage
#+LATEX:\begin{landscape} #+LATEX:\begin{landscape}
*** TODO Zeit *** TODO Zeitaufwand
#+CAPTION: Zeitcontrolling #+CAPTION: Zeitcontrolling
#+ATTR_LATEX: :environment longtable :align |p{3cm}|p{5cm}|p{3cm}|p{7cm}| #+ATTR_LATEX: :environment longtable :align |p{3cm}|p{5cm}|p{3cm}|p{7cm}|
@ -344,34 +345,34 @@ Lehren gezogen werden.
|-----------------------------------+------------------------------------------+-------------------------------------------+--------------------------------------| |-----------------------------------+------------------------------------------+-------------------------------------------+--------------------------------------|
| | *Gesamter Aufwand* | | | | | *Gesamter Aufwand* | | |
|-----------------------------------+------------------------------------------+-------------------------------------------+--------------------------------------| |-----------------------------------+------------------------------------------+-------------------------------------------+--------------------------------------|
#+LATEX:\end{landscape}
#+LATEX:\newpage
*** Ressourcen *** Ressourcen
Folgende Ressourcen werden während der Arbeit benötigt: Folgende Ressourcen werden während der Arbeit benötigt:
#+CAPTION: Ressourcen #+CAPTION: Ressourcen
#+ATTR_LATEX: :environment longtable :align |p{5cm}|p{3cm}|p{3cm}|p{7cm}| #+ATTR_LATEX: :environment longtable :align |p{4cm}|p{2cm}|p{2cm}|p{4cm}|
#+NAME: tab:zeitcontr #+NAME: tab:zeitcontr
|-------------------------------------+--------------------------------------------+-----------------------------------------+--------------------------------------| |-------------------------------------+--------------------------------------------+-----------------------------------------+--------------------------------------|
| *Ressource*\cellcolor[HTML]{C0C0C0} | *geschätzte Stück*\cellcolor[HTML]{C0C0C0} | *effekt. Stück*\cellcolor[HTML]{C0C0C0} | *Begründung*\cellcolor[HTML]{C0C0C0} | | *Ressource*\cellcolor[HTML]{C0C0C0} | *geschätzte Stück*\cellcolor[HTML]{C0C0C0} | *effekt. Stück*\cellcolor[HTML]{C0C0C0} | *Begründung*\cellcolor[HTML]{C0C0C0} |
|-------------------------------------+--------------------------------------------+-----------------------------------------+--------------------------------------| |-------------------------------------+--------------------------------------------+-----------------------------------------+--------------------------------------|
| Projektleiter/Mitarbeiter | 1 | 1 | - | | Projektleiter/Mitarbeiter | 1 | 1 | keine Abweichung |
| Diplombetreuer | 1 | 1 | - | | Diplombetreuer | 1 | 1 | keine Abweichung |
| Testuser | 5 | 5 | - | | Testuser | 5 | 5 | keine Abweichung |
| Korrekturleser | 3 | 3 | - | | Korrekturleser | 3 | 3 | keine Abweichung |
| iPad | 1 | 1 | - | | iPad | 1 | 1 | keine Abweichung |
| Notebook | 1 | 1 | - | | Notebook | 1 | 1 | keine Abweichung |
|-------------------------------------+--------------------------------------------+-----------------------------------------+--------------------------------------| |-------------------------------------+--------------------------------------------+-----------------------------------------+--------------------------------------|
#+LATEX:\end{landscape}
*** TODO Kosten *** TODO Kosten
Werden die internen Lohnkosten des Projektleiters auf ca. 60 CHF pro Stunde 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 geschätzt, ergeben sich gemäss der Berechnung in der Tabelle:([[tab:kosten]]),
CHF für die Umsetzung dieser Arbeit. Da dieses Projekt finanziell jedoch in theoretische Kosten von 19'200 CHF für die Umsetzung dieser Arbeit. Die Kosten
keinster Weise wirtschaftliche relevant ist, sind die Kosten nur ein rein für die Entwicklung werden im Projekt jedoch nicht berücksichtigt, somit sind
theoretischer Faktor. die Kosten nur ein rein theoretischer Faktor.
#+CAPTION: Kostenrechnung #+CAPTION: Kostenrechnung
#+ATTR_LATEX: :align |l|c|c|r|
#+NAME: tab:kosten #+NAME: tab:kosten
|--------------------------------+----------------------------------------+-----------------------------------------| |--------------------------------+----------------------------------------+-----------------------------------------|
| *Name*\cellcolor[HTML]{C0C0C0} | *Aufwand in h*\cellcolor[HTML]{C0C0C0} | *Kosten in CHF*\cellcolor[HTML]{C0C0C0} | | *Name*\cellcolor[HTML]{C0C0C0} | *Aufwand in h*\cellcolor[HTML]{C0C0C0} | *Kosten in CHF*\cellcolor[HTML]{C0C0C0} |
@ -401,13 +402,11 @@ unvorbereitet gegenüber, sollten sie eintreffen.
*** Risikobeschreibung *** Risikobeschreibung
In der Tabelle: ([[tab:risikobeschreibung]]), sind die Risiken des Projektes In der Tabelle: ([[tab:risikobeschreibung]]), sind die Risiken des Projektes
gemeinsam mit ihren Gegenmassnahmen aufgelistet. Jedes Risiko wurde gemeinsam mit ihren Gegenmassnahmen aufgelistet. Somit können gewisse Risiken
entsprechend der Tabelle: ([[tab:wahrscheinlichkeit]]) nach der Wahrscheinlichkeit bereits vorher abgefangen werden.
des Eintreffens bewertet und entsprechend der Tabelle: ([[tab:auswirkung]]) nach
seiner Auswirkung bewertet.
#+CAPTION: Projektrisiken #+CAPTION: Projektrisiken
#+ATTR_LATEX: :environment longtable :align |p{0.45\textwidth}|p{0.45\textwidth}| :placement [H] #+ATTR_LATEX: :environment longtable :align |p{0.45\textwidth}|p{0.45\textwidth}|
#+NAME: tab:projektrisiken #+NAME: tab:projektrisiken
|-----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------| |-----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------|
| <30> | <30> | | <30> | <30> |
@ -458,7 +457,7 @@ Verfügung gestellt.
#+LATEX:\newpage #+LATEX:\newpage
#+LATEX:\begin{landscape} #+LATEX:\begin{landscape}
#+CAPTION: Umwelt-Analyse #+CAPTION: Umweltanalyse
#+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{0.8cm}|l|l|p{8cm}|l| #+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}p{0.8cm}|l|l|p{8cm}|l|
#+NAME: tab:umweltanalyse #+NAME: tab:umweltanalyse
|-------------------------------+---------------------------------------+------------------------------------+----------------------------------------------------------+----------------------------------------------| |-------------------------------+---------------------------------------+------------------------------------+----------------------------------------------------------+----------------------------------------------|
@ -477,7 +476,7 @@ Verfügung gestellt.
|-------------------------------+---------------------------------------+------------------------------------+----------------------------------------------------------+----------------------------------------------| |-------------------------------+---------------------------------------+------------------------------------+----------------------------------------------------------+----------------------------------------------|
| 4. | Projektleiter | hoch | - Stabile Anwendung erstellen | mittel | | 4. | Projektleiter | hoch | - Stabile Anwendung erstellen | mittel |
| | | | - Ein nachhaltiges Projekt starten | mittel | | | | | - Ein nachhaltiges Projekt starten | mittel |
| | | | - Anerkennung im fachlichen Umfeld | hoch | | | | | - Anerkennung im fachlichen Umfeld | niedrig |
|-------------------------------+---------------------------------------+------------------------------------+----------------------------------------------------------+----------------------------------------------| |-------------------------------+---------------------------------------+------------------------------------+----------------------------------------------------------+----------------------------------------------|
#+LATEX:\end{landscape} #+LATEX:\end{landscape}
@ -568,13 +567,9 @@ Abbildung:([[fig:swot]]) zu sehen.
** Anforderungskatalog ** Anforderungskatalog
Der Anforderungskatalog entspricht 1 zu 1 den Zielen, welche in der Tabelle Der Anforderungskatalog entspricht 1 zu 1 den Zielen, welche in der Tabelle
[[tab:projektziele]] definiert wurden. Es wurde jedoch beschlossen noch die [[tab:projektziele]] definiert wurden. Im Zeitplan wurde der Fokus hauptsächlich
Kann-Ziele Nr. 26 und Nr. 19 in die Detail Planung mit aufzunehmen. Die auf die Muss-Ziele gelegt. Ein paar der Kann-Ziele sind im Konzept jedoch auch
grafische Konfiguration der Anwendung (Ziel Nr. 26) ist mit einer Einstufung abgebildet.
von 3 zwar relativ tief bewertet. Es vereinfacht einem durchschnittlichen
Computer Benutzer die Konfiguration der Anwendung enorm. Das automatische
erstellen Backups im Hintergrund (Ziel Nr. 19) wurde fix eingeplant da es einen
sehr grossen Einfluss auf die Risikobwertung im Kapitel [[Risiko-Analyse][Risiko-Analyse]] hat.
** Use Cases ** Use Cases
@ -964,26 +959,27 @@ Use Cases und zeigt einem gut die Zuständigkeiten der Aktoren auf.
#+attr_latex: :center :placement [H] #+attr_latex: :center :placement [H]
#+LATEX:\newpage #+LATEX:\newpage
* TODO Konzept * Konzept
** Varianten ** Varianten
Da Borg eine JSON API zur Verfügung stellt bieten sich diverse Möglichkeiten, um Da Borg eine JSON API zur Verfügung stellt gibt es diverse Möglichkeiten, um
das Programm anzubinden. Da das Ziel ist, das Programm normalen Nutzern das Programm anzubinden. Da das Ziel ist, das Programm normalen Nutzern
zugänglicher zu machen, bietet sich ein normales Desktop Programm am ehesten zugänglicher zu machen, bietet sich ein normales Desktop Programm am ehesten
an. Desktop Programme werden von allen Computer Usern täglich genutzt und sind an. Desktop Programme werden von allen Computer Usern täglich genutzt und sind
somit etwas was sie kennen. somit etwas was sie kennen. Zudem ist es für die User auch viel einfacher zu
verstehen als sie vor der Nutzung einen lokalen Webserver starten müssten und
Daraus ergeben sich die in diesem Kapitel aufgeführten Möglichkeiten für das diesen im Anschluss zur Nutzung wieder beenden müssten.
Projekt.
*** Bewertung *** Bewertung
Die Bewertungspunkte setzen sich einerseits aus den Projektzielen anderseits Mit der Idee aus der Einleitung zu den Varianten wurde dann eine Tabelle, mit
aus für das Projekt sinnvollen Punkten zusammen. Dadurch ergeben sich dann die Anforderungen an die Technologien, erstellt. Die Bewertungspunkte setzen sich
Bewertungen, welche in der nachfolgenden Tabelle aufgenommen wurden. Die einerseits aus Projektzielen anderseits aus für das Projekt sinnvollen Punkten
möglichen Varianten wurden danach bewertet. Die effektive Berechnung des zusammen. Dadurch ergeben sich dann die Bewertungen, welche in der
Resultats wird nach folgender Formel durchgeführt. Tabelle:([[tab:muster]]) aufgenommen wurden. Die möglichen Varianten wurden danach
bewertet. Die effektive Berechnung des Resultats wird nach folgender Formel
durchgeführt.
\begin{equation} \begin{equation}
G * EP = KE G * EP = KE
@ -1169,6 +1165,7 @@ ungeeignet.
#+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: @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) #+TBLFM: @>$5=vsum(@3..@-1)
#+latex:\newpage
**** Python **** Python
Der Python Interpreter ist für eine Vielzahl an Betriebssystemen erhältlich, Der Python Interpreter ist für eine Vielzahl an Betriebssystemen erhältlich,
@ -1488,7 +1485,7 @@ 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~ 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~. sein, in den Testfällen "Lokales Repository", genannt und das Passwort ~foo~.
Im Makefile des Repository wird dieses Setup definiert. Somit kann man als Im Makefile des Repository wird dieses Setup definiert. Somit kann man als
Entwickler nur ~make repo~ ausführen und hat eine funktionsfähige Testumgebung. Entwickler nur ~make init~ ausführen und hat eine funktionsfähige Testumgebung.
Um Backups über SSH testen zu können wird eine virtuelle Maschine mit Ubuntu 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 18.04 verwendet. Die Konfiguration der virtuellen Maschine sieht dabei wie
@ -1514,26 +1511,29 @@ wurde ein Klassendiagramm, Abbildung:([[fig:class_diagramm]]), erstellt. Das
Klassendiagramm basiert auf dem UML Standard. Im Diagramm wurden nicht alle Klassendiagramm basiert auf dem UML Standard. Im Diagramm wurden nicht alle
"Properties" und Methoden alles Klassen aufgezeichnet sondern nur solche die "Properties" und Methoden alles Klassen aufgezeichnet sondern nur solche die
auf eine andere Klasse verweisen. Dadurch bleibt das Diagramm übersichtlicher. auf eine andere Klasse verweisen. Dadurch bleibt das Diagramm übersichtlicher.
Die Klassennamen welche in fetter Schrift gehalten sind wurden dabei vom
Projektleiter erstellt Die Klassennamen welche kursiv sind, sind Klassen welche
entweder von Python oder Qt bereitgestellt werden.
** Benutzerfreundlichkeitsstudie ** Benutzerfreundlichkeitsstudie
Um Borg-Qt auf seine Nutzerfreundlichkeit zu testen wird im Rahmen der Um Borg-Qt auf seine Nutzerfreundlichkeit zu testen wird im Rahmen der
Diplomarbeit noch eine kleine Benutzerfreundlichkeitsstudie gemacht. Bei einer Diplomarbeit noch eine kleine Benutzerfreundlichkeitsstudie gemacht. Bei einer
solchen Studie erhalten die Probanden, Tabelle:([[tab:probanden]]) ein paar solchen Studie erhalten die Probanden, Tabelle:([[tab:probanden]]), ein paar
Aufgaben, abgebildet in der Sektion [[Aufgaben]], welche sie in einer begrenzten Aufgaben, Sektion [[Aufgaben]], welche sie in einer begrenzten
Zeit zu erledigen haben. Die Aufsichtsperson gibt ihnen dabei keinerlei Zeit zu erledigen haben. Die Aufsichtsperson gibt ihnen dabei keinerlei
Hilfestellungen. Die Probanden sollen die Aufgaben alleine mit Hilfe der Tipps Hilfestellungen. Die Probanden sollen die Aufgaben alleine mit Hilfe der Tipps
und Hinweisen in der Anwendung lössen. Im Anschluss bewerten die Probanden dann und Hinweisen in der Anwendung lösen Im Anschluss bewerten die Probanden dann
die einzelnen Aufgaben nach ihrer Schwierigkeit, die einzelnen Aufgaben nach ihrer Schwierigkeit,
Tabelle:([[tab:usability_colours]]). Daraus lässt sich dann eine sogenannte Heatmap Tabelle:([[tab:usability_colours]]). Daraus lässt sich dann eine sogenannte Heatmap
erstellen. Aus der Heatmap kann man anschaulich herauslesen welche Bereiche für erstellen. Aus der Heatmap kann man anschaulich herauslesen welche Bereiche für
die User noch zu kompliziert sind und Nacharbeit benötigen. die User noch zu kompliziert sind und Nacharbeit benötigen.
Die Propanden wurden aus dem Umfeld des Projektleiters ausgewählt. Es wurde Die Probanden wurden aus dem Umfeld des Projektleiters ausgewählt. Es wurde
dabei versucht ein einigermassen breites Spektrum an Computerkenntnissen dabei versucht ein einigermassen breites Spektrum an Computerkenntnissen
abzudecken die Anwendung allen Erfahrungsstufen behilflich sein soll. Die abzudecken. Da die Anwendung allen Erfahrungsstufen behilflich sein soll. Die
Angaben in der Tabelle:([[tab:probanden]]) sind jedoch die Selbsteinschätzung der Angaben in der Tabelle:([[tab:probanden]]) sind jedoch die Selbsteinschätzung der
Probanden und nicht die des Projektleiters zum jweiligen Tester. Probanden und nicht die des Projektleiters.
#+CAPTION: Benutzerfreundlichkeitsstudie Probanden #+CAPTION: Benutzerfreundlichkeitsstudie Probanden
#+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}r|c|c|c|c| :placement [H] #+ATTR_LATEX: :align |>{\columncolor[HTML]{EFEFEF}}r|c|c|c|c| :placement [H]
@ -1578,6 +1578,7 @@ Probanden und nicht die des Projektleiters zum jweiligen Tester.
5. Du möchtest das der Ordner ~/home/testuser/Pictures/~ nicht mehr gesichert 5. Du möchtest das der Ordner ~/home/testuser/Pictures/~ nicht mehr gesichert
wird. Konfiguriere die Applikation entsprechend. wird. Konfiguriere die Applikation entsprechend.
#+latex: \newpage
*** Resultate *** Resultate
#+CAPTION: Benutzerfreundlichkeitsstudie Resultate #+CAPTION: Benutzerfreundlichkeitsstudie Resultate
@ -1613,18 +1614,21 @@ wahrgenommen.
**** Proband 3 **** Proband 3
Proband 3 kam mit der Anwendung an sich gut klar. Bei der Aufgabe zwei wurde Proband 3 kam mit der Anwendung an sich gut klar. Die Aufgabe zwei fand er über
noch ein Bug entdeckt der näher untersucht werden muss. Die Aufgabe zwei fand alles gesehen auch am schwierigsten da er mit der Materie nahezu nicht vertraut
er über alles gesehen auch am schwierigsten da er mit der Materie nahezu nicht ist. Als zusätzlichen Input gab er an das ein Kontextmenü welches sich mit
vertraut ist. Als zusätzlichen Input gab er an das ein Kontextmenü welches sich Rechtsklick auf ein Element öffnet etwas sei was er gerne hätte da er andere
mit Rechtsklick auf ein Element öffnet etwas sei was er gerne hätte da er Anwendungen oft so steuert. Aufgabe 5 war auch etwas herausfordernder als 1,3
andere Anwendungen oft so steuert. Aufgabe 5 war auch etwas herausfordernder und 4 insbesondere war unklar wie der Ordner zu der Liste hinzugefügt werden
als 1,3 und 4 insbesondere war unklar wie der Ordner zu der Liste hinzugefügt sollte.
werden sollte.
Während des Tests ist in der Anwendung noch ein Bug aufgetaucht welcher
Probleme beim erstellen von Backups machte. Die detaillierte Lösung dafür ist im
Kapitel [[Realisierung]] beschrieben.
**** Proband 4 **** Proband 4
Bei Proband 4 war die grösste Hürde dass, das Interface nur in English Bei Proband 4 war die grösste Hürde dass, das Interface nur in Englisch
verfügbar war. Bei Aufgabe zwei hat er sich nach eigenen Angaben etwas verloren verfügbar war. Bei Aufgabe zwei hat er sich nach eigenen Angaben etwas verloren
gefühlt und hätte sich auch ein Kontextmenü auf dem Rechtsklick gewünscht. gefühlt und hätte sich auch ein Kontextmenü auf dem Rechtsklick gewünscht.
Mit etwas Hilfe bei der Übersetzung waren die restlichen Aufgaben jedoch gut zu Mit etwas Hilfe bei der Übersetzung waren die restlichen Aufgaben jedoch gut zu
@ -1637,7 +1641,7 @@ die Tooltips auf den Buttons entdeckt und dann genutzt. Aufgabe 2 war jedoch
auch schwierig zu lösen danach ging es jedoch ohne Probleme. Als Feedback wurde auch schwierig zu lösen danach ging es jedoch ohne Probleme. Als Feedback wurde
genannt, dass 21:00 Uhr etwas spät für solche Tests sei. genannt, dass 21:00 Uhr etwas spät für solche Tests sei.
*** TODO Auswertung *** Auswertung
Nach den 5 Tests liess sich feststellen das die Anwendung für die Anwender Nach den 5 Tests liess sich feststellen das die Anwendung für die Anwender
insgesamt einfach zu bedienen ist sobald sie einmal wissen welche Buttons insgesamt einfach zu bedienen ist sobald sie einmal wissen welche Buttons
@ -1657,46 +1661,29 @@ ist, ist eine sehr gute Idee und sollte sich auch realisieren lassen. Dieses
Feature wird nicht im Rahmen der Diplomarbeit umgesetzt und für die zukünftige Feature wird nicht im Rahmen der Diplomarbeit umgesetzt und für die zukünftige
Entwicklung aufgenommen. Entwicklung aufgenommen.
Ein Dialog welcher ein erfolgreiches Erstellen eines Archives bestätigt wird Ein Dialog welcher ein erfolgreiches Erstellen eines Archivs bestätigt wird
nicht eingebaut. Bei erfolgreicher Durchführung verschwindet der nicht eingebaut. Bei erfolgreicher Durchführung verschwindet der
Fortschrittsdialog und in der Archivlist erscheint ein weiterer Eintrag. Das Fortschrittsdialog und in der Archivlist erscheint ein weiterer Eintrag. Das
sind zwar nicht die offensichtlichsten Hinweise im Falle eines Fehlers sind zwar nicht die offensichtlichsten Hinweise im Falle eines Fehlers
erscheint jedoch sofort ein Dialog der darauf hinweist. Somit sollten die erscheint jedoch sofort ein Dialog der darauf hinweist. Somit sollten die
beiden Vorgänge genügend unterschieden sein und es hat auch kein andere Proband beiden Vorgänge genügend unterschieden sein und es hat auch kein anderer Proband
das Bedürfnis nach einer Bestätigung. das Bedürfnis nach einer Bestätigung.
Auch für die Zukunft wird eine deutsche Übersetzung geplant. Dies würde die Für die Zukunft wird eine Deutsche Übersetzung geplant. Dies würde die
Anwendung dann vor allem Leuten mit weniger guten Englisch Kenntnissen Anwendung dann vor allem Leuten mit weniger guten Englisch Kenntnissen
zugänglich machen. zugänglich machen.
Im Rahmen der Diplomarbeit werden noch einige Texte angepasst. An gewissen Im Rahmen der Diplomarbeit werden noch einige Texte angepasst. An gewissen
Stellen redet die Anwendung von "Backups" und an anderen von "Archives". Da Stellen redet die Anwendung von "Backups" und an anderen von "Archivs". Da
gls:borg sie selber "Archives" nennt sollte Borg-Qt noch so angepasst werden gls:borg sie selber "Archivs" nennt sollte Borg-Qt noch so angepasst werden
das überall von "Archives" die Rede ist. Zudem wird bei den "Include" und das überall von "Archivs" die Rede ist. Zudem wird bei den "Includes" und
"Exclude" Optionen über der Liste noch ein Label hinzugefügt um die Elemente zu "Exclude" Optionen über der Liste noch ein Label hinzugefügt um die Elemente zu
beschreiben. Desweiteren werden die Buttons "Add file" und "Add folder" zu beschreiben. Des weiteren werden die Buttons "Add file" und "Add folder" zu
"Exclude file" und "Exclude folder" sowie "Include file" und "Include folder" "Exclude file" und "Exclude folder" sowie "Include file" und "Include folder"
umbenannt. Somit zeigen die Buttons dann auch direkt das sie Dateien respektive umbenannt. Somit zeigen die Buttons dann auch direkt das sie Dateien respektive
Ordner ein-/auschliessen. Ein paar der Probanden hatten es zuerst über den Ordner ein-/ausschliessen Ein paar der Probanden hatten es zuerst über den
"Remove" Button versucht. "Remove" Button versucht.
Der Bug der entdeckt wurde tritt immer dann auf wenn ein Archiv gemountet
ist und man ein Backup erstellen möchte. Dies ist jedoch offenbar eine Funktion
die von gls:borg nicht unterstützt wird footcite:borgmount. gls:borg könnte
eigentlich mehrere Archive gleichzeitig mounten. Der User müsste jedoch jedes
der Archive zuerst wieder unmounten bevor er eine neue Datensicherung erstellen
kann. Die genaue Lösung wird dann in der [[UI Anpassungen nach Benutzerfreundlichkeitsstudie][Realisierung]] beschrieben.
Insgesamt war der Test eine sehr interessante Erfahrung. Enduser sehen eine
Anwendung mit ganz anderen Augen als der Entwickler der Anwendung der von jedem
Element weiss wie der Code dazu aussieht. Er hat auch gezeigt das die Aufgaben
auch richtig gestellt werden müssen ansonsten wissen die Probanden schon gar
nicht erst was gefordert ist. Auch sollte wenn möglich darauf geachtet werden
das auf einem Betriebsystem getestet mit welchem die Probanden bereits etwas
Erfahrung haben. Zwei der Probanden waren ab dem Verhalten und Aussehen des
Dateimanagers von Ubuntu 18.04 etwas verwirrt da sie ihn zuvor noch nicht
gesehen und bentuzt hatten.
* TODO Realisierung * TODO Realisierung
** Cross-plattform Kompatibilität ** Cross-plattform Kompatibilität
@ -1750,7 +1737,7 @@ sieht wie sich die Oberflächen auf dem System verhalten.
Auf Basis der Ziele und der Use Cases wurde eine erste Version des glspl:gui Auf Basis der Ziele und der Use Cases wurde eine erste Version des glspl:gui
erstellt. Im Hauptfenster, Abbildung:([[fig:borgqt_main_v1]]), befinden sich wie erstellt. Im Hauptfenster, Abbildung:([[fig:borgqt_main_v1]]), befinden sich wie
auch bei "Back in Time" in der einen Hälfte eine Liste der vorhandenen Archive auch bei "Back in Time" in der einen Hälfte eine Liste der vorhandenen Archive
und in der anderen Hälfte ein Dateimanagemer. Dieser dient zur Auswahl des zu und in der anderen Hälfte ein Dateimanager. Dieser dient zur Auswahl des zu
sichernden Pfades. Im oberen Bereich findet sich die Toolbar mit den Aktionen sichernden Pfades. Im oberen Bereich findet sich die Toolbar mit den Aktionen
die der User ausführen kann. Gemäss den Use Cases sind dies "Backup", die der User ausführen kann. Gemäss den Use Cases sind dies "Backup",
"Restore", "Mount", "Delete" und "Settings". "Restore", "Mount", "Delete" und "Settings".
@ -1775,7 +1762,7 @@ Im Einstellungsfenster gibt es drei Tabs zur Auswahl. Einmal den "General" Tab,
Abbildung:([[fig:borgqt_settings_general_v1]]), dieser zeigt allgemeine Optionen Abbildung:([[fig:borgqt_settings_general_v1]]), dieser zeigt allgemeine Optionen
an. Im zweiten Tab "Include", Abbildung:([[fig:borgqt_settings_include_v1]]), kann an. Im zweiten Tab "Include", Abbildung:([[fig:borgqt_settings_include_v1]]), kann
der User die Ordner und Dateien auswählen die er sichern will. Der dritte Tab der User die Ordner und Dateien auswählen die er sichern will. Der dritte Tab
"Exlcude", Abbildung:([[fig:borgqt_settings_exclude_v1]]), gibt dem User die "Exclude", Abbildung:([[fig:borgqt_settings_exclude_v1]]), gibt dem User die
Möglichkeit einzelne Ordner oder Dateien von den Backups auszuschliessen. Möglichkeit einzelne Ordner oder Dateien von den Backups auszuschliessen.
#+caption: Screenshot der Borg-Qt "General" Einstellungen Version 1 #+caption: Screenshot der Borg-Qt "General" Einstellungen Version 1
@ -1871,14 +1858,14 @@ def _return_list_option(self, option):
Die Datei wird jeweils beim Start der Applikation gelesen und angewendet. Somit Die Datei wird jeweils beim Start der Applikation gelesen und angewendet. Somit
weiss die Applikation bereits nach dem Start wo das Repository liegen sollte weiss die Applikation bereits nach dem Start wo das Repository liegen sollte
und wie die Login Daten dafür sind. Dies geschiet mittels der Method und wie die Login Daten dafür sind. Dies geschiet mittels der Methode
~_get_path~, Codesnippet:([[code:config_path]]). Es gibt dabei zwei mögliche Pfade ~_get_path~, Codesnippet:([[code:config_path]]). Es gibt dabei zwei mögliche Pfade
wo die Konfigurationsdatei liegen könnte. Befindet sich die Datei nicht am wo die Konfigurationsdatei liegen könnte. Befindet sich die Datei nicht am
vergegeben Pfad ~~/.config/borg_qt/borg_qt.conf~ oder direkt "neben" dem vorgegeben Pfad ~~/.config/borg_qt/borg_qt.conf~ oder direkt "neben" dem
Binary, gibt die Applikation eine entsprechende Meldung, Binary, gibt die Applikation eine entsprechende Meldung,
Abbildung:([[fig:borgqt_missing_config]]), aus. Der Hauptfad unter Abbildung:([[fig:borgqt_missing_config]]), aus. Der Hauptpfad unter
~~/.config/borg_qt/borg_qt.conf~ wird dabei gemäss dem Ziel Nr. 21 über die ~~/.config/borg_qt/borg_qt.conf~ wird dabei gemäss dem Ziel Nr. 21 über die
Umgebungsvariabel ~HOME~ zusammengesestzt. Umgebungsvariable ~HOME~ zusammengesetzt
#+caption: Methode zum Suchen der Konfigurationsdatei #+caption: Methode zum Suchen der Konfigurationsdatei
#+name: code:config_path #+name: code:config_path
@ -1918,7 +1905,7 @@ Einzel-Werte funktioniert es in etwa gleich. Beim Speichern der geänderten
Listen jedoch trat eine weitere Herausforderung auf. Listen jedoch trat eine weitere Herausforderung auf.
Qt kennt keinen Mechanismus zum auslesen aller Elemente aus einem sogenannten Qt kennt keinen Mechanismus zum auslesen aller Elemente aus einem sogenannten
~QListWidget~, einem UI Element welches Liste darstellt. Somit ist es nötig das ~QListWidget~, einem gls:gui Element welches Liste darstellt. Somit ist es nötig das
man die Elemente zuerst in einer Zwischenliste speichert bevor man sie zurück man die Elemente zuerst in einer Zwischenliste speichert bevor man sie zurück
in das ~Configparser~ Objekt schreiben kann. Im Code sieht dies dann wie in in das ~Configparser~ Objekt schreiben kann. Im Code sieht dies dann wie in
Codesnippet:([[code:qlistwidgets_items]]) aus. Dabei wird jedes Element einzeln aus Codesnippet:([[code:qlistwidgets_items]]) aus. Dabei wird jedes Element einzeln aus
@ -1952,7 +1939,8 @@ Zuerst erschien es sinnvoll die Kommunikation zwischen gls:borg und Borg-Qt
über einfache Funktionen laufen zu lassen. Dieser Ansatz hatte allerdings zwei über einfache Funktionen laufen zu lassen. Dieser Ansatz hatte allerdings zwei
Probleme. Zum Einen wurde es relativ umständlich Informationen zu verarbeiten Probleme. Zum Einen wurde es relativ umständlich Informationen zu verarbeiten
und weiterzugeben zum anderen führte es zu dem unschönen Nebeneffekt dass, das und weiterzugeben zum anderen führte es zu dem unschönen Nebeneffekt dass, das
gls:ui eingefroren ist. Threads sollten hier abhilfe schaffen. gls:gui eingefroren ist. Eine Recherche ergab dann das Threads hier Abhilfe
schaffen könnten.
Python würde hierzu ein Modul, ~threading.Thread~ footcite:threading, Python würde hierzu ein Modul, ~threading.Thread~ footcite:threading,
mitliefern. Allerdings war es nicht möglich den Fortschrittsdialog und den mitliefern. Allerdings war es nicht möglich den Fortschrittsdialog und den
@ -1972,24 +1960,23 @@ Das effektive Kommando wird dann aus dem Property ~self.command~ gelesen.
Damit gls:borg die Ausgabe im gls:json Format ausgibt muss man man noch die Damit gls:borg die Ausgabe im gls:json Format ausgibt muss man man noch die
Parameter ~--log-json~ und ~--json~ ausgeben. Der erste Parameter ändert Parameter ~--log-json~ und ~--json~ ausgeben. Der erste Parameter ändert
hauptsächlich das Format von Errormeldungen und der zweite formatiert dann die hauptsächlich das Format von Errormeldungen und der zweite formatiert dann die
finale Ausgabe. Die Ausgaben werden dann jeweils an Variabeln weitergegeben finale Ausgabe. Die Ausgaben werden jeweils an Variablen weitergegeben
(~json_output~ und ~json_error~) welche dann im weiteren Code verarbeitet (~json_output~ und ~json_error~) welche im weiteren Code verarbeitet werden.
werden.
Insbesondere ~json_error~ ist für den weiteren Programmablauf von grosser Insbesondere ~json_error~ ist für den weiteren Programmablauf von grosser
Wichtigkeit. Wenn Borg ein Problem feststellt wird dieses an diese Variabel Wichtigkeit. Wenn Borg ein Problem feststellt wird die Error Meldung von
weitergegeben. Mittels der Methode im Codesnippet:([[code:json_err]]), wird die gls:borg an ~json_error~ weitergegeben. Mittels der Methode im
Variabel ausgewertet und im Falle eines Fehlers wirft der Code eine Exception Codesnippet:([[code:json_err]]), wird die Variabel ausgewertet und im Falle eines
welche im Hauptprogramm abgefangen wird. Dabei wird dann eine Fehlermeldung in Fehlers wirft der Code eine Exception welche im Hauptprogramm abgefangen wird.
einem separaten Fenster ausgegeben. Die Methode wurde dabei auf der Klasse Dabei wird eine Fehlermeldung in einem separaten Fenster ausgegeben. Die
~BorgQtThread~ umgesetzt und steht somit allen Funktionen zur Verfügung. Die Methode wurde dabei auf der Klasse ~BorgQtThread~ umgesetzt und steht somit
Fehlermeldung bei einer fehlenden Konfigurationsdatei, allen Funktionen zur Verfügung. Die Fehlermeldung bei einer fehlenden
Abbildung:([[fig:borgqt_missing_config]]), funktioniert nach dem gleichen Prinzip Konfigurationsdatei, Abbildung:([[fig:borgqt_missing_config]]), funktioniert nach
und konnte somit zum grössten Teil wiederverwendet werden. Der restliche dem gleichen Prinzip und konnte somit zum grössten Teil wiederverwendet werden.
gls:json Output kann dann einfach mit dem ~json~ Modul geparst werden. Der restliche gls:json Output kann dann einfach mit dem ~json~ Modul geparst
Somit werden dem User direkt die Fehlermeldungen von gls:borg angezeigt und es werden. Somit werden dem User, gemäss Ziel Nr. 14, direkt die Fehlermeldungen
muss nur an gewissen Stellen noch applikationsspezifisches Exception Handling von gls:borg angezeigt und es muss nur an gewissen Stellen noch
betrieben werden. applikationsspezifisches Exception Handling betrieben werden.
#+caption: Auswertung der json err Variabel. #+caption: Auswertung der json err Variabel.
#+name: code:json_err #+name: code:json_err
@ -2011,36 +1998,36 @@ zusammengefasst. Somit kann für jede Funktion von gls:borg eine einzelne Klasse
geschrieben werden welche dann von ~BorgQtThread~ die Funktionen erbt. Die geschrieben werden welche dann von ~BorgQtThread~ die Funktionen erbt. Die
Funktionsklassen müssen dann jeweils nur die Methode Funktionsklassen müssen dann jeweils nur die Methode
~self.create_command(self)~ implementieren welche das Property ~self.command~ ~self.create_command(self)~ implementieren welche das Property ~self.command~
erstellt und die einfachen Funktionen von gls:borg sollten direkt funktioneren. erstellt und die einfachen Funktionen von gls:borg sollten direkt funktionieren
** Backup ** Backup
Bei den Backups handelt es sich ohne Zweifel um die wichtigste Funktion von Bei den Backups handelt es sich ohne Zweifel um die wichtigste Funktion von
Borg-Qt. Deshalb soll das erstellen eines Backups so schnell und unkompliziert Borg-Qt. Deshalb soll das Erstellen eines Backups so schnell und unkompliziert
wie möglich von statten gehen. wie möglich von statten gehen.
*** Backend *** Backend
Um Backups erstellen zu können wurde die Klasse ~BackupThread~ erstellt welche Um Backups erstellen zu können wurde die Klasse ~BackupThread~ erstellt welche
von ~BorgQtThread~ erbt. Die Klasse ~BackupThread~ nimmt beim instanzieren 3 von ~BorgQtThread~ erbt. Die Klasse ~BackupThread~ nimmt beim instantiieren 3
Argumente auf: ~includes~, ~excludes~, ~prefix~. Wobei ~excludes~ und ~prefix~ Argumente auf: ~includes~, ~excludes~, ~prefix~. Wobei ~excludes~ und ~prefix~
beide optional sind. Im Hauptcode werden diese Argumente aus der beide optional sind. Im Hauptcode werden diese Argumente aus der
Konfigurationsdatei ausgelesen und übergeben. Die Includes werden im Falle Konfigurationsdatei ausgelesen und übergeben. Die Includes werden im Falle
eines Backups im Hintergrund auch aus der Konfigurationsdatei gelesen. Wenn es eines Backups im Hintergrund aus der Konfigurationsdatei gelesen. Wenn es
der User manuell ausführt wird der im Frontend ausgewählte Pfad mitgegeben. der User manuell ausführt wird der im Frontend ausgewählte Pfad mitgegeben.
Die "Excludes" haben lange nicht funktionert. Der Grund dafür waren zusätzliche Die "Excludes" haben lange nicht funktioniert Der Grund dafür waren zusätzliche
Anführungszeichen um die Exclude Pfade. Diese wurden aus Versehen hinzugefügt Anführungszeichen um die Exclude Pfade. Diese wurden aus Versehen hinzugefügt
da gls:borg normalerweise auf der Kommandozeile ausgeführt wird und die da gls:borg normalerweise auf der Kommandozeile ausgeführt wird und die
Anführungszeichen dort notwendig sind um allfällige Leer- oder Sonderzeichen Anführungszeichen dort notwendig sind um allfällige Leer- oder Sonderzeichen
abzufangen. Es wurde davon ausgegangen dass, da ~subprocess~ Modull ähnlich abzufangen. Es wurde davon ausgegangen dass, da ~subprocess~ Modul ähnlich
funktioniert wie die Kommandozeile. Da man an das Modull direkt einen String funktioniert wie die Kommandozeile. Da man an das Modul direkt einen String
übergibt sind die zusätzlichen Anführungszeichen nicht notwendig und führen übergibt sind die zusätzlichen Anführungszeichen nicht notwendig und führen
sogar dazu das die Pfade gar nicht funktioneren. Somit werden die "Excludes" sogar dazu das die Pfade gar nicht funktionieren Somit werden die "Excludes"
einfach mit dem entsprechenden Parameter gepaart und als gesamte Liste an das mittels der Methode ~_process_excludes~ mit dem entsprechenden Parameter
finale Kommando angehängt. Die Includes funktionieren auf die gleiche Weise ins gepaart und als gesamte Liste an das finale Kommando angehängt. Die "Includes"
finale Kommando eingebaut benötigen jedoch keine zusätzlichen Paramteter. Zu funktionieren auf die gleiche Weise, benötigen jedoch keine zusätzlichen
sehen ist dies im Codesnippet:([[code:excludes]]). Parameter Zu sehen ist dies im Codesnippet:([[code:excludes]]).
#+caption: Erstellen des "borg create" Kommandos fürs erstellen von Backups. #+caption: Erstellen des "borg create" Kommandos fürs erstellen von Backups.
#+name: code:excludes #+name: code:excludes
@ -2067,19 +2054,14 @@ def create_command(self):
self.command.extend(self.excludes) self.command.extend(self.excludes)
#+end_src #+end_src
Aus zeitlichen Gründen konnte die Funktion zur Erkennung eines laufenden
Hypervisors nicht während der Diplomarbeit entwickelt werden. Dies ist ein
recht komplexes Features und braucht genügend Zeit damit es richtig umgesetzt
wird.
*** Frontend *** Frontend
Damit die Backups im Frontend funktionieren musste zum einen der "Backup" Knopf Damit die Backups im Frontend funktionieren musste zum einen der "Backup" Knopf
mit der Method ~create_backup~ verknüpft werden. Desweiteren wurde ein Dateibaum, in mit der Methode ~create_backup~ verknüpft werden. Des weiteren wurde ein Dateibaum, in
Abbildung:([[fig:borgqt_file_tree]]) grün umrahmt, eingefügt. Dieser gibt den Pfad Abbildung:([[fig:borgqt_file_tree]]) grün umrahmt, eingefügt. Dieser gibt den Pfad
des angewählten Objektes and die ~create_backup~ Methode weiter. des angewählten Objektes and die ~create_backup~ Methode weiter.
#+caption: Screenhot des Dateibaumes. #+caption: Screenshot des Dateibaumes.
#+name: fig:borgqt_file_tree #+name: fig:borgqt_file_tree
[[file:pictures/borgqt_file_tree.png]] [[file:pictures/borgqt_file_tree.png]]
@ -2088,19 +2070,20 @@ angezeigt, Abbildung:([[fig:borgqt_progress_v2]]). Dieser dient hauptsächlich d
dem User das Gefühl zu geben das die Applikation noch am Arbeiten ist. dem User das Gefühl zu geben das die Applikation noch am Arbeiten ist.
Der Dialog musste gegenüber der ersten Version in Sektion: [[Erste Umsetzung][Erste Umsetzung]] noch Der Dialog musste gegenüber der ersten Version in Sektion: [[Erste Umsetzung][Erste Umsetzung]] noch
etwas angepasst werden. gls:borg gibt während dem Erstellen eines Archives keine etwas angepasst werden. gls:borg gibt während dem Erstellen eines Archivs
Informationen zurück welches einem erlauben würden einen Fortschrittsbalken zu keine Informationen zurück welches einem erlauben würden einen
generieren, welcher den effektiven Fortschritt anzeigt. gls:borg gibt einzig die Fortschrittsbalken zu generieren, welcher den effektiven Fortschritt anzeigt.
Anzahl der verarbeiteten Dateien in regelmässigen Abständen zurück. Da gls:borg gls:borg gibt einzig die Anzahl der verarbeiteten Dateien in regelmässigen
jedoch zu Beginn nicht meldet wieviele Dateien gesichert werden lässt sich Abständen zurück. Da gls:borg jedoch zu Beginn nicht meldet wie viele Dateien
damit keine Prozentzahl erstellen. Ein paar Experimente bei denen die zu gesichert werden lässt sich damit keine Prozentzahl erstellen. Ein paar
sichernenden Dateien zuerst von Borg-Qt gezählt werden sollten, wurden Experimente bei denen die zu sichernden Dateien zuerst von Borg-Qt gezählt
verworfen. Einerseits weil keine Methode gefunden werden konnte welche die werden sollten, wurden verworfen. Einerseits weil keine Methode gefunden werden
gleiche Anzahl Dateien zurückgab wie gls:borg. Anderseits weil es den Backup konnte welche die gleiche Anzahl Dateien zurückgab wie gls:borg. Anderseits
Vorgang unnötig in die Länge zieht. Dies ist insbesondere der Fall wenn sich weil es den Backup Vorgang unnötig in die Länge zieht. Dies ist insbesondere
sehr viele Dateien im Quellverzeichnis befinden. Aus diesem Grund wurde der der Fall wenn sich sehr viele Dateien im Quellverzeichnis befinden. Es kann
Fortschrittsbalken mit Prozentanzeige durch einen sich wiederholenden sogar soweit kommen dass, das Zählen länger als das eigentliche Sichern dauert.
Ladebalken ersetzt. Aus diesem Grund wurde der Fortschrittsbalken mit Prozentanzeige durch einen
sich wiederholenden Ladebalken ersetzt.
#+caption: Screenshot des "Aktion in Ausführung" Dialogs. #+caption: Screenshot des "Aktion in Ausführung" Dialogs.
#+name: fig:borgqt_progress_v2 #+name: fig:borgqt_progress_v2
@ -2109,17 +2092,30 @@ Ladebalken ersetzt.
Wurde das Archiv erfolgreich erstellt, wird die Liste mit den Archiven sowie Wurde das Archiv erfolgreich erstellt, wird die Liste mit den Archiven sowie
die Repository Statistik aktualisiert. Beide Elemente sind in der, die Repository Statistik aktualisiert. Beide Elemente sind in der,
Abbildung:([[fig:borgqt_archive_list]]), grün respektive rot umrahmt. Beide Abbildung:([[fig:borgqt_archive_list]]), grün respektive rot umrahmt. Für die
Funktionen wurden im Grossen und Ganzen gleich wie bereits die ~backup~ Beiden Funktionen wurde jeweils eine eigene Klasse, ~ListThread~ und
Funktion implementiert. Die zurückerhaltenen gls:json Strings werden wieder auf ~InfoThread~, erstellt. Beide erben von ~BorgQtThread~. In den Klassen wird wie
die jeweilige Information geparst und die Archive in Python Listen, die bei ~BackupThread~ gls:borg über einen ~subprocess~ aufgerufen um die Archiv Liste
Repository Statisk in Ganzzahlen umgewahndelt. respektive Statistik zurückzuerhalten Die gls:json Strings werden wieder auf
die jeweilige Information geparst und die Archive in eine Python List, die
Repository Statistik in Zahlen umgewandelt.
Da gls:borg die Repository Grössen in Bytes zurück gibt sollten diese zur Da gls:borg die Repository Grössen in Bytes zurück gibt sollten diese zur
Anzeige noch in eine menschenlesbarses Format umgerechnet werden. In Borg-Qt Anzeige noch in eine menschenlesbarses Format umgerechnet werden. In Borg-Qt
geschieht dies mit der Helferfunktion ~convert_size~. Die Funktion wurde von geschieht dies mit der Helferfunktion ~convert_size~. Die Funktion wurde von
Stackoverflow footcite:sizeformat übernommen. Stackoverflow footcite:sizeformat übernommen.
Beim Durchführen der Benutzerfreundlichkeitsstudie wurde noch ein Bug entdeckt.
Der Bug der entdeckt wurde tritt immer dann auf wenn ein Archiv gemountet ist
und man ein Backup erstellen möchte. Dies ist jedoch offenbar eine Funktion die
von gls:borg nicht unterstützt wird footcite:borgmount. gls:borg kann mehrere
Archive gleichzeitig mounten. Der User müsste jedoch jedes der Archive zuerst
wieder unmounten bevor er eine neue Datensicherung erstellen kann. Das Problem
wurde dadurch gelöst das dem User ein Dialog angezeigt wird, über welchen er
vor einer Datensicherung zuerst die gemounteten Archive aushängen kann.
Anschliessend startet die Datensicherung dann wie wenn kein Archiv gemountet
gewesen wäre.
#+caption: Screenshot der aktualisierten Archivliste und Repository Statistik. #+caption: Screenshot der aktualisierten Archivliste und Repository Statistik.
#+name: fig:borgqt_archive_list #+name: fig:borgqt_archive_list
[[file:pictures/borgqt_archive_list.png]] [[file:pictures/borgqt_archive_list.png]]
@ -2127,7 +2123,7 @@ Stackoverflow footcite:sizeformat übernommen.
** Restore ** Restore
Der Code für das Wiederherstellen eines Backups ist sehr ähnlich wie der Code Der Code für das Wiederherstellen eines Backups ist sehr ähnlich wie der Code
für das Erstellen. Die Besonderheiten bei dieser Funktion sind vorallem die für das Erstellen. Die Besonderheiten bei dieser Funktion sind vor allem die
Kontrolle das ein Archiv angewählt wurde bevor man die Wiederherstellung Kontrolle das ein Archiv angewählt wurde bevor man die Wiederherstellung
startet, das Erstellen des Zielpfades sowie das Aufräumen bei einem Fehler. startet, das Erstellen des Zielpfades sowie das Aufräumen bei einem Fehler.
@ -2135,7 +2131,7 @@ Wird der "Restore" Knopf gedrückt ohne das ein Backup angewählt wurde erschein
folgende Fehlermeldung, Abbildung:([[fig:no_archive_selected]]), um den Benutzer folgende Fehlermeldung, Abbildung:([[fig:no_archive_selected]]), um den Benutzer
darauf hinzuweisen das er dies noch tun sollte. darauf hinzuweisen das er dies noch tun sollte.
#+caption: Screenshot der Fehlermeldung eines fehlenden Archives während einem Restore. #+caption: Screenshot der Fehlermeldung eines fehlenden Archivs während einem Restore.
#+name: fig:no_archive_selected #+name: fig:no_archive_selected
#+attr_latex: :width .2\paperwidth :placement [H] #+attr_latex: :width .2\paperwidth :placement [H]
[[file:pictures/borgqt_no_archive_selected.png]] [[file:pictures/borgqt_no_archive_selected.png]]
@ -2143,7 +2139,7 @@ darauf hinzuweisen das er dies noch tun sollte.
Das Wiederherstellen an sich läuft so ab das der Benutzer zuerst ein Archiv Das Wiederherstellen an sich läuft so ab das der Benutzer zuerst ein Archiv
auswählt und dann auf "Restore" klickt. Daraufhin öffnet sich ein Dialog in auswählt und dann auf "Restore" klickt. Daraufhin öffnet sich ein Dialog in
welchem der Benutzer den Zielort auswählen kann. Sobald er dies getan hat welchem der Benutzer den Zielort auswählen kann. Sobald er dies getan hat
erstellt Borg-Qt darin einen Order mit dem Namen des Archives und beginnt mit erstellt Borg-Qt darin einen Order mit dem Namen des Archivs und beginnt mit
dem eigentlichen Wiederherstellen. Sollte der Zielort für die Applikation nicht dem eigentlichen Wiederherstellen. Sollte der Zielort für die Applikation nicht
beschreibbar sein erscheint eine entsprechende Fehlermeldung, beschreibbar sein erscheint eine entsprechende Fehlermeldung,
Abbildung:([[fig:not_writeable]]), und der Vorgang wird abgebrochen. Nach einer Abbildung:([[fig:not_writeable]]), und der Vorgang wird abgebrochen. Nach einer
@ -2156,14 +2152,14 @@ Dateimanager damit der User gleich mit den Dateien weiterarbeiten kann.
[[file:pictures/borgqt_not_writeable.png]] [[file:pictures/borgqt_not_writeable.png]]
Gibt es während dem Wiederherstellen einen Fehler gibt die Anwendung den Gibt es während dem Wiederherstellen einen Fehler gibt die Anwendung den
entsprechenden Fehler aus und löscht zusätlich noch den zu Beginn erstellten entsprechenden Fehler aus und löscht zusätzlich noch den zu Beginn erstellten
Archiv Ordner. Dies aus dem Grund da die Wiederherstellung ja nicht komplett Archiv Ordner. Dies aus dem Grund da die Wiederherstellung ja nicht komplett
durchgelaufen ist befindet sich das Archiv in einem unfertigen Zustand. Somit durchgelaufen ist, somit befindet sich das Archiv in einem unfertigen Zustand.
ist es sinnvoller die wiederhergestellten Dateien wegzuräumen als unter Es ist deshalb sinnvoller die wiederhergestellten Dateien wegzuräumen als unter
Umständen defekte Dateien zurückzulassen. Umständen defekte Dateien zurück zulassen
Wird das gleiche Archiv nochmal an den gleichen Zielort wiederhergestellt ist Wird das gleiche Archiv nochmal an den gleichen Zielort wiederhergestellt ist
das für gls:borg kein Problem. Es überschreibt die Dateien einfach nocheinmal. das für gls:borg kein Problem. Es überschreibt die Dateien einfach noch einmal
** Mount ** Mount
@ -2173,24 +2169,24 @@ dies nicht der Fall ist eine entsprechende Fehlermeldung aus. Im Gegensatz zur
"Restore" Funktion zeigt die "Mount" Funktion jedoch keinen Dialog zum "Restore" Funktion zeigt die "Mount" Funktion jedoch keinen Dialog zum
Auswählen des Zielpfades. Die Funktion erstellt sich diesen selbst. Der Auswählen des Zielpfades. Die Funktion erstellt sich diesen selbst. Der
Zielpfad ist dabei kombiniert aus dem ~/tmp~ Verzeichnis und dem Namen des Zielpfad ist dabei kombiniert aus dem ~/tmp~ Verzeichnis und dem Namen des
Archives. Archivs
gls:borg mountet jedes Archiv nur mit Leserechten. Da es relativ gls:borg mountet jedes Archiv nur mit Leserechten. Es ist relativ
unwahrscheinlich ist das der Zielpfad in unbeschreibbarer Form bereits vor dem unwahrscheinlich das der Zielpfad in unbeschreibbarer Form bereits vor dem
Ausführen der Appliation bereits vorhanden ist. Sollte dies jedoch der Fall Ausführen der ~mount_backup~ Methode bereits vorhanden ist. Sollte dies jedoch
sein kann davon ausgegangen werden das der Benutzer das Archiv bereits einmal der Fall sein kann davon ausgegangen werden das der Benutzer das Archiv bereits
gemountet wurde. Genau dies wird in der Applikation auch so überprüft. Falls einmal gemountet hat. Genau dies wird in der Applikation auch so überprüft.
der Zielort schreibbar ist wird das ausgewählte Archiv auf diesem Pfad Falls der Zielort schreibbar ist wird das ausgewählte Archiv auf diesem Pfad
gemountet. Anschliessend wird wie auch bei der Restore Funktion der Pfad in gemountet. Anschliessend wird wie auch bei der Restore Funktion der Pfad in
einem Dateimanager geöffnet damit der Benutzer direkt mit den Dateien einem Dateimanager geöffnet damit der Benutzer direkt mit den Dateien
weiterarbeiten kann. Wurde erkannt dass, das Archiv bereits gemountet wurde weiterarbeiten kann. Wurde erkannt dass, das Archiv bereits gemountet wurde,
öffnet die Applikation direkt den Dateimanager ohne zu versuchen das Archiv also der Pfad nicht schreibbar ist, öffnet die Applikation direkt den
nocheinmal zu mounten. Dateimanager ohne zu versuchen das Archiv noch einmal zu mounten.
Zusätlich wird der Pfad jedes gemounteten Archives in einer Liste gespeichert. Zusätzlich wird der Pfad jedes gemounteten Archivs in einer Liste gespeichert.
Beim Beenden der Applikation iteriert die Applikation über jeden Pfad in der Beim Beenden der Applikation iteriert die Applikation über jeden Pfad in der
Liste unmountet und löscht ihn. Somit befindet sich das System wieder im Liste unmountet das Archiv und löscht den Ordner. Somit befindet sich das
gleichen Zustand wie vor dem Start der Applikation. System wieder im gleichen Zustand wie vor dem Start der Applikation.
** Delete ** Delete
@ -2199,9 +2195,10 @@ löschen. Hierbei greift wie bei der "Restore" und "Mount" Funktion auch wieder
die Überprüfung ob der Benutzer ein Archiv ausgewählt hat. Ist dies gegeben die Überprüfung ob der Benutzer ein Archiv ausgewählt hat. Ist dies gegeben
zeigt die Applikation dem Benutzer einen Dialog, Abbildung:([[fig:yes_no]]), zum zeigt die Applikation dem Benutzer einen Dialog, Abbildung:([[fig:yes_no]]), zum
sicherstellen das er das Archiv wirklich löschen möchte. Bestätigt er diesen sicherstellen das er das Archiv wirklich löschen möchte. Bestätigt er diesen
mit "Yes" wird der Vorgang vortgesetzt und das Archiv gelöscht. Anschliessend mit "Yes" wird der Vorgang fortgesetzt und das Archiv gelöscht. Anschliessend
werden die Archivliste und die Repository Statistik aktualisiert um den neuen werden die Archivliste und die Repository Statistik aktualisiert um den neuen
Zustand wiederzugeben. Zustand wiederzugeben. Klickt der Benutzer stattdessen auf "No" schliesst sich
der Dialog wieder und nichts weiter passiert.
#+caption: Screenshot des Yes/No Dialogs in der "Delete" Funktion. #+caption: Screenshot des Yes/No Dialogs in der "Delete" Funktion.
#+name: fig:yes_no #+name: fig:yes_no
@ -2221,28 +2218,27 @@ Oberfläche angezeigt wird. Bei Borg-Qt wird dies über ein Kommandozeilen
Parameter realisiert. Hierfür wurde das Python Standard Paket ~argparser~ Parameter realisiert. Hierfür wurde das Python Standard Paket ~argparser~
verwendet. Konkret bedeutet dies dass, wenn man die Applikation auf verwendet. Konkret bedeutet dies dass, wenn man die Applikation auf
der Kommandozeile wie folgt ausführt ~borg_qt -B~ wird die grafische Oberfläche der Kommandozeile wie folgt ausführt ~borg_qt -B~ wird die grafische Oberfläche
nicht angezeigt und es wird direkt die Method ~background_backup~ der Klasse nicht angezeigt und es wird direkt die Methode ~background_backup~ der Klasse
~MainWindow~ ausgeführt. Dabei werden alle Ordner welche in den Einstellungen ~MainWindow~ ausgeführt. Dabei werden alle Ordner, welche in den Einstellungen
unter "Include" sowie "Exclude" gespeichert wurden, im Archiv gesichert, unter "Include" sowie "Exclude" gespeichert wurden, im Archiv gesichert,
respektive davon ausgeschlossen. Damit sind die Voraussetzungen für respektive davon ausgeschlossen. Damit sind die Voraussetzungen für
automatische Backups gegeben. automatische Backups gegeben.
Um die Backups in regelmässigen Intervalen auszuführen gibt es zwei Um die Backups in regelmässigen Intervallen auszuführen gibt es zwei
Möglichkeiten wie man dies implementieren könnte. Zum einen könnte man die Möglichkeiten wie man dies implementieren könnte. Zum einen könnte man die
Applikation permanent im Hintergrund laufen lassen, etwa als Trayicon wie man Applikation permanent im Hintergrund laufen lassen, etwa als Trayicon wie man
das von anderen Applikationen wie etwas Dropbox kennt zum anderen kann man es das von anderen Applikationen wie etwas Dropbox kennt zum anderen kann man es
über Werkzeuge des Betriebssystems bewerkstelligen. über Werkzeuge des Betriebssystems bewerkstelligen. Die drei
Die drei Desktopbetriebsysteme, Windows, OS X und Linux, bringen alle drei Desktopbetriebsysteme, Windows, OS X und Linux, bringen alle drei Werkzeuge
Werkzeuge mit um periodisch einen ein Programm auszuführen. Unter Linux wurde mit, um periodisch ein Programm auszuführen. Unter Linux wurde dies früher mit
dies früher mit sogenannten Cron Jobs gemacht. Die moderne Lösung sind sogenannten Cron Jobs gemacht. Die moderne Lösung sind heutzutage jedoch
heutzutage jedoch sogenannte Systemd Timer. Für Borg-Qt wurde beschlossen es Systemd Timer. Für Borg-Qt wurde beschlossen es mit den Werkzeugen des
mit den Werkzeugen des Betriebssystems zu machen. Also konkret Systemd. Dies Betriebssystems zu machen. Also konkret Systemd. Dies aus dem Grund das Systemd
einerseits aus dem Grund das ein Grossteil der Funktion bereits programmiert genau für das Managen von Applikationen programmiert wurde. Ein Grossteil der
wurde und man somit Zeit sparen kann, zum anderen wurden die Systemd Timer Funktion ist bereits in Systemd enthalten somit kann man Zeit sparen. Zudem
genau für solche Zwecke programmiert. Zu guter Letzt soll die Anwendung dem soll die Anwendung dem Benutzer auch soweit als möglich aus dem Weg gehen. Eine
Benutzer auch soweit als möglich aus dem Weg gehen. Eine Applikation welche Applikation welche permanent in der Taskleiste lebt scheint hier nicht wirklich
permanent in der Taskleiste lebt scheint hier nicht wirklich das Kriterium zu das Kriterium zu erfüllen.
erfüllen.
Systemd ist ein init System welches dazu dient dazu die Benutzerumgebung und Systemd ist ein init System welches dazu dient dazu die Benutzerumgebung und
die dazugehörigen Prozesse zu starten und zu verwalten footcite:systemd. Die die dazugehörigen Prozesse zu starten und zu verwalten footcite:systemd. Die
@ -2251,9 +2247,9 @@ einfach in Klartextdateien mit der Dateiendung ~.service~ definiert. Der Inhalt
orientiert sich dabei praktischerweise am "INI" Stil. In Borg-Qt wurde das INI orientiert sich dabei praktischerweise am "INI" Stil. In Borg-Qt wurde das INI
Format bereits bei den Konfigurationsdateien verwendet. Somit können dort Format bereits bei den Konfigurationsdateien verwendet. Somit können dort
gesammelte Erfahrungen wiederverwendet werden. Soll ein Service in einem gesammelte Erfahrungen wiederverwendet werden. Soll ein Service in einem
gewissen Zeitinterval ausgeführt werden benötigt Systemd eine weiter Datei mit gewissen Zeitintervall ausgeführt werden benötigt Systemd eine weiter Datei mit
dem gleichen Namen jedoch mit der Dateiendung Timer. Der Inhalt ist auch wieder dem gleichen Namen jedoch mit der Dateiendung ~.timer~ . Der Inhalt ist auch
im INI Stil gehalten. Systemd versteht eine Vielzahl an Datumsformaten wieder im INI Stil gehalten. Systemd versteht eine Vielzahl an Datumsformaten
footcite:systemddate. In Borg-Qt wurden zwei Varianten in den Einstellungen footcite:systemddate. In Borg-Qt wurden zwei Varianten in den Einstellungen
umgesetzt. Eine welche "Predefined Schedule" genannt wurde und eine mit dem umgesetzt. Eine welche "Predefined Schedule" genannt wurde und eine mit dem
Namen "Custom Schedule", zu sehen in, Abbildung:([[fig:schedule]]). Die Predefined Namen "Custom Schedule", zu sehen in, Abbildung:([[fig:schedule]]). Die Predefined
@ -2272,10 +2268,11 @@ Freitag stündliche Backups." (~Monday, Wednesday, Friday *-*-* *:00:00~).
#+attr_latex: :placement [H] #+attr_latex: :placement [H]
[[file:pictures/borgqt_settings_schedule.png]] [[file:pictures/borgqt_settings_schedule.png]]
Das erstellen der eigentlichen Systemd Konfiguration passiert in Borg-Qt in der Das Erstellen der eigentlichen Systemd Konfiguration passiert in Borg-Qt in der
~Config~ Klasse. Zum schreiben, und de-/aktivieren des Systemd Services, respektive ~Config~ Klasse zum gleichen Zeitpunkt wie die eigentliche Konfigurationsdatei
Timers wurde wurde eine Klasse ~SystemdFile~. Somit könnte die Funktion auch geschrieben wird. Zum schreiben, und de-/aktivieren des Systemd Services,
einfach in einem anderen Projekt verwendet werden. respektive Timers wurde wurde eine Klasse ~SystemdFile~ erstellt. Somit könnte
die Funktion auch einfach in einem anderen Projekt verwendet werden.
Systemd benötigt zum Starten der Anwendung den absoluten Pfad in der Service Systemd benötigt zum Starten der Anwendung den absoluten Pfad in der Service
Datei. Da davon ausgegangen werden kann das Borg-Qt im ~PATH~ des Systems Datei. Da davon ausgegangen werden kann das Borg-Qt im ~PATH~ des Systems
@ -2285,8 +2282,8 @@ Speicherort der Datei. Zusammen mit den Daten aus den Einstellungen wird diese
Information in einem ~Configparser~ Objekt gespeichert welches dann mithilfe Information in einem ~Configparser~ Objekt gespeichert welches dann mithilfe
der ~SystemdFile~ Klasse in eine ~borg_qt.service~, der ~SystemdFile~ Klasse in eine ~borg_qt.service~,
Codesnippet:([[code:systemdservice]]), respektive ~borg_qt.timer~, Codesnippet:([[code:systemdservice]]), respektive ~borg_qt.timer~,
Codesnippet:([[code:systemdtimer]]), Datei im Systemd Pfad für Benutzerdaten Codesnippet:([[code:systemdtimer]]), Datei, im Systemd Pfad
~/home/username/.config/systemd/user/~ gespeichert wird und aktiviert. ~/home/username/.config/systemd/user/~ geschrieben und aktiviert wird.
Eine Option in der ~borg_qt.timer~ die noch erwähnenswert ist, ist ~Persistent Eine Option in der ~borg_qt.timer~ die noch erwähnenswert ist, ist ~Persistent
= true~. Ist ~Persistent~ auf ~true~ gesetzt holt Systemd den Tasks nach sollte = true~. Ist ~Persistent~ auf ~true~ gesetzt holt Systemd den Tasks nach sollte
@ -2298,7 +2295,7 @@ eingeschaltet wird kommt.
Mit dem Abschluss des automatischen Backups wurde die für die Entwicklung Mit dem Abschluss des automatischen Backups wurde die für die Entwicklung
reservierte Zeit aufgebraucht und die Entwicklung neuer Funktionen für den reservierte Zeit aufgebraucht und die Entwicklung neuer Funktionen für den
Zeitrahmen der Diplomarbeit angehalten. Zeitrahmen der Diplomarbeit gestoppt.
#+caption: Systemd Service Datei für Borg-Qt #+caption: Systemd Service Datei für Borg-Qt
#+name: code:systemdservice #+name: code:systemdservice
@ -2327,14 +2324,15 @@ Persistent = true
WantedBy = timers.target WantedBy = timers.target
#+end_src #+end_src
** UI Anpassungen nach Benutzerfreundlichkeitsstudie ** gls:gui Anpassungen nach Benutzerfreundlichkeitsstudie
Im Rahmen der durchgeführten [[Benutzerfreundlichkeitsstudie][Benutzerfreundlichkeitsstudie]] wurden einige Punkte Im Rahmen der durchgeführten [[Benutzerfreundlichkeitsstudie][Benutzerfreundlichkeitsstudie]] wurden einige Punkte
festgestellt welche im Rahmen der Diplomarbeit angepasst werden konnten. Zum festgestellt welche im Rahmen der Diplomarbeit angepasst werden konnten. Zum
einen wurden einige Buttons neu beschriftet um klarer auf ihre Funktion einen wurden in den "Include" sowie "Exclude" Optionen einige Buttons neu
hinzuweisen. Dies wurde bei den "Include" Optionen, beschriftet und zwei Labels hinzugefügt um klarer auf ihre Funktion
Abbildungen:([[fig:borgqt_settings_include_v2]]) und bei den "Exclude" Optionen, hinzuweisen. Zu sehen ist dies in den
Abbildung([[fig:borgqt_settings_exclude_v2]]), gemacht. Abbildungen:([[fig:borgqt_settings_include_v2]]) und
([[fig:borgqt_settings_exclude_v2]]).
#+caption: Screenshot der Borg-Qt "Include" Einstellungen Version 2 #+caption: Screenshot der Borg-Qt "Include" Einstellungen Version 2
#+name: fig:borgqt_settings_include_v2 #+name: fig:borgqt_settings_include_v2
@ -2346,12 +2344,13 @@ Abbildung([[fig:borgqt_settings_exclude_v2]]), gemacht.
#+attr_latex: :placement [H] #+attr_latex: :placement [H]
[[file:pictures/borgqt_settings_exclude_v2.png]] [[file:pictures/borgqt_settings_exclude_v2.png]]
Zudem wurde ein kleines Hilfe Fenster, Abbildung:([[fig:borgqt_help]]), eingebaut Zudem wurde ein Hilfe Fenster, Abbildung:([[fig:borgqt_help]]), eingebaut welches
welches dem Benutzer beim Start der Applikation angezeigt wird. Dieses soll ihm dem Benutzer beim Start der Applikation angezeigt wird. Dieses soll ihm einen
einen kurzen Überblick darüber geben welcher Button welche Aktion auslöst. kurzen Überblick darüber geben welcher Button welche Aktion auslöst und welche
Optional kann der Benutzer dann noch entscheiden das er das Fenster beim Elemente welche Information anzeigen. Optional kann der Benutzer dann noch
nächsten Start nicht mehr angezeigt bekokmmen möchte. Über den Button "Help" entscheiden das er das Fenster beim nächsten Start nicht mehr angezeigt
kann das Fenster jederzeit unabhängig der Einstellungen wieder angezeigt werden. bekommen möchte. Über den Button "Help" kann das Fenster jederzeit unabhängig
der Einstellungen wieder angezeigt werden.
#+caption: Screenshot des Borg-Qt Hilfe Fenster #+caption: Screenshot des Borg-Qt Hilfe Fenster
#+name: fig:borgqt_help #+name: fig:borgqt_help
@ -2360,18 +2359,18 @@ kann das Fenster jederzeit unabhängig der Einstellungen wieder angezeigt werden
** Releases ** Releases
Für die finale Veröffentlichung wird Borg-Qt als ein sogennantes ausführbares Für die finale Veröffentlichung wird Borg-Qt als ein sogenanntes ausführbares
"Binary" zur Verfügung gestellt. Man kennt diese auf Windows Systemen etwa als "Binary" zur Verfügung gestellt. Man kennt diese auf Windows Systemen etwa als
die Dateien mit der Endung ".exe". In diesem Fall handelt es sich beim Binary die Dateien mit der Endung ~.exe~. In diesem Fall handelt es sich beim Binary
um ein selbstenpackendes Dateiarchiv. Darin enthalten sind alle benötigten um ein selbstentpackendes Dateiarchiv. Darin enthalten sind alle benötigten
Python Modulle und sonstige Dateien wie etwa die Icons oder gls:gui Python Module und sonstige Dateien wie etwa die Icons oder gls:gui
Definitionsdateien. Beim Ausführen entpackt sich das Archiv in einen temporären Definitionsdateien. Beim Ausführen entpackt sich das Archiv in einen temporären
Ordner und liesst dann von dort aus alle benötigten Dateien. Ordner und liest dann von dort aus alle benötigten Dateien.
Diese Art der Auslieferung hat dabei den Vorteil das der User das Programm Diese Art der Auslieferung hat dabei den Vorteil das der User das Programm
nicht speziell installieren muss oder dafür irgendwelche zusätzlichen Dinge nicht speziell installieren muss oder dafür irgendwelche zusätzlichen Dinge
installieren muss. Der Nachteil ist jedoch das so ein Binary nur auf dem installieren muss. Der Nachteil ist jedoch das so ein Binary nur auf dem
jeweilgen Betriebssystem erstellt werden kann. Das heisst das man unter Linux jeweiligen Betriebssystem erstellt und ausgeführt werden kann. Das heisst das man unter Linux
etwa keine Binaries für Mac erstellen kann oder umgekehrt. etwa keine Binaries für Mac erstellen kann oder umgekehrt.
Erstellt werden die Dateien mit einem Programm namens Erstellt werden die Dateien mit einem Programm namens
@ -2392,11 +2391,28 @@ pyinstaller --hidden-import=PyQt5.sip \
-F borg_qt/borg_qt.py; \ -F borg_qt/borg_qt.py; \
#+end_src #+end_src
Auf Github wird jeweils ein Release erstellt und dazu die passenden Binaries
hochgeladen. Github packt dabei den Source Code beim Erstellen des Releases in
ein Zip Archiv. Somit kann eine interessierte Person sich zum Binary auch
direkt den Source Code herunterladen.
* TODO Ausblick * TODO Ausblick
** TODO Erreichte Ziele ** TODO Erreichte Ziele
| Ziel Nr. | Erfüllt | Bemerkung |
|----------+---------+-----------|
| | | |
*** TODO Risikoanalyse der neuen Ist-Situation *** TODO Risikoanalyse der neuen Ist-Situation
Das Risiko konnte masgeblich gesenkt. Mit den automatischen Backups gibt es nun
auch eine Möglichkeit das Vergessen zu minimieren.
#+caption: Risikoanalyse der neuen Ist-Situation
#+name: fig:new-is-risk
[[file:pictures/ist_risiko_neu.pdf]]
** TODO Projektmanagement ** TODO Projektmanagement
Gantt Chart sehr hilfreich beim behalten des Überblickes für das Projekt. Gibt Gantt Chart sehr hilfreich beim behalten des Überblickes für das Projekt. Gibt
@ -2410,8 +2426,27 @@ Umständen enorme Zeitersparnise.
Die regelmässigen Arbeitsessions haben sich als eine gute Variante des Arbeiten Die regelmässigen Arbeitsessions haben sich als eine gute Variante des Arbeiten
erwiesen und haben die Last der Diplomarbeit gut verteilt. erwiesen und haben die Last der Diplomarbeit gut verteilt.
** TODO Benutzerfreundlichkeitsstudie
Die Studie war eine sehr interessante Erfahrung. Enduser sehen eine
Anwendung mit ganz anderen Augen als der Entwickler der Anwendung der von jedem
Element weiss wie der Code dazu aussieht. Er hat auch gezeigt das die Aufgaben
auch richtig gestellt werden müssen ansonsten wissen die Probanden schon gar
nicht erst was gefordert ist. Auch sollte wenn möglich darauf geachtet werden
das auf einem Betriebsystem getestet mit welchem die Probanden bereits etwas
Erfahrung haben. Zwei der Probanden waren ab dem Verhalten und Aussehen des
Dateimanagers von Ubuntu 18.04 etwas verwirrt da sie ihn zuvor noch nicht
gesehen und bentuzt hatten. Alternativ kann auch die Gruppe der Probanden so
gewählt werden das sie mit dem Betriebssystem bereits vertraut sind.
Auf jeden Fall etwas was man bei zukünftigen Projekten wieder machten sollte.
** TODO Umsetzung ** TODO Umsetzung
Aus zeitlichen Gründen konnte die Funktion zur Erkennung eines laufenden
Hypervisors nicht während der Diplomarbeit entwickelt werden. Dies ist ein
recht komplexes Features und braucht genügend Zeit damit es richtig umgesetzt
wird.
Unittests sind der Shit brauchen allerdings Zeit und eine gewisse Erfahrung mit Unittests sind der Shit brauchen allerdings Zeit und eine gewisse Erfahrung mit
der Sprache. Qt ist eine hilfreiches Framework wenn auch sehr umfangreich. Wenn der Sprache. Qt ist eine hilfreiches Framework wenn auch sehr umfangreich. Wenn
man gewillt ist sich mit dem C++ Code auseinanderzusetzen ist die Dokumentation man gewillt ist sich mit dem C++ Code auseinanderzusetzen ist die Dokumentation
@ -2419,6 +2454,8 @@ jedoch sehr detailiert.
** TODO Weiterverwendung von Borg-Qt ** TODO Weiterverwendung von Borg-Qt
Wird bereits produktiv vom Projektleiter eingesetzt.
** TODO Gelerntes ** TODO Gelerntes
PLACEHOLDER PLACEHOLDER
@ -2443,49 +2480,49 @@ PLACEHOLDER
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *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. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *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 erfolgreichem Backupen verschwindet. | Die Archiv Liste wird aktualisiert und zeigt ein Archiv an. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *TC-05* | Lokales Backup erstellen | TC-01 ausgeführt.\newline BorgBackup erstellt bereits ein Archiv. | 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. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *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. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *TC-07* | In lokales Repository sichern | 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. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *TC-08* | Lokales Archiv 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 Archiv Liste wird aktualisiert und ist nun leer. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *TC-09* | Lokales Archiv löschen | TC-04 ausgeführt. | 1. Das Lokale Repository an einen beliebigen Ort verschieben.\newline 2. In der Archiv Liste das Archiv 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. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *TC-10* | Lokales Archiv löschen | TC-04 ausgeführt. | 1. Den Button “Delete” betätigen. | - | Die Anwendung wirft eine Fehlermeldung das der User ein Archiv auswählen soll. | Die geöffnete Fehlermeldung blockiert die Applikation. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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 Dateiexplorer den Ziel Pfad. | Die Anwendung und ein Dateiexplorer wird angezeigt. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *TC-11* | Lokales Archiv wiederherstellen | TC-04 ausgeführt. | 1. In der Archiv Liste das Archiv 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 Dateiexplorer den Ziel Pfad. | Die Anwendung und ein Dateiexplorer wird angezeigt. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *TC-12* | Lokales Archiv wiederherstellen | TC-01 ausgeführt. | 1. Den Button “Backup” betätigen. | - | Die Anwendung wirft eine Fehlermeldung das der User ein Archiv auswählen soll. | Die geöffnete Fehlermeldung blockiert die Applikation. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *TC-13* | Lokales Archiv wiederherstellen | TC-01 ausgeführt. | 1. Das Lokale Repository an einen beliebigen Ort verschieben.\newline 2. In der Archiv Liste das Archiv 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. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *TC-14* | Lokales Archiv wiederherstellen | TC-01 ausgeführt. | 1. In der Archiv Liste das Archiv 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. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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 Dateiexplorer den Ziel Pfad.\newline Darin fehlen jedoch temporäre Pfade wie “~/.cache” etc. | Die Anwendung und ein Dateiexplorer wird angezeigt. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *TC-15* | Home Directory sichern und wiederherstellen | TC-01 ausgeführt. | 1. Vom Pfad "/home/andreas/" ein Archiv erstellen.\newline 2. In der Archiv Liste das gemachte Archiv 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 Dateiexplorer den Ziel Pfad.\newline Darin fehlen jedoch temporäre Pfade wie “~/.cache” etc. | Die Anwendung und ein Dateiexplorer wird angezeigt. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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 Dateiexplorer die Datei README.org nach "/home/andreas/Downloads" kopieren. | - | Die wiederhergestellte Datei ist identisch mit der in TC-04 gesicherten. | Die Anwendung und ein Dateiexplorer wird angezeigt. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *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 Dateiexplorer die Datei README.org nach "/home/andreas/Downloads" kopieren. | - | Die wiederhergestellte Datei ist identisch mit der in TC-04 gesicherten. | Die Anwendung und ein Dateiexplorer wird angezeigt. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *TC-17* | Einzelne Datei wiederherstellen | TC-01 ausgeführt. | 1. Das Lokale Repository an einen beliebigen Ort verschieben.\newline 2. In der Archiv Liste das Archiv 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. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *TC-18* | Pfad des lokalen Backup Repository 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. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *TC-18* | Pfad des lokalen Backup Repository 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 Archiv Liste wird aktualisiert und zeigt wieder das Archiv von TC-04 an. | Die Anwendung wird angezeigt. Die Konfigurationsdatei zeigt auf den neuen Pfad. | Nicht implementiert |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *TC-19* | Archiv 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. | Archiv Name: Muster | Die Anwendung zeigt einen Fortschrittsbalken der nach erfolgtem Backup verschwindet. | Die Archiv Liste wird aktualisiert und zeigt ein Archiv mit dem Präfix "Muster" an. Die Konfigurationsdatei beinhaltet die Option des Präfixes. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *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. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *TC-21* | Automatische 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. | Backup-zeit: 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. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *TC-21* | Automatische Backups konfigurieren | TC-01 ausgeführt. | 1. Den Button "Settings" betätigen.\newline 2. Bei der Option "Includes" die Testdateien angeben sowie unter Schedule "Custom" auswählen und bei "Time" die nächste Stunde angeben.\newline 3. Den Button Apply betätigen. | Backup-zeit: 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. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *TC-22* | Automatische 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. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *TC-22* | Automatische 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 Archiv Liste wird ein Archiv angezeigt. | Die Anwendung wird angezeigt. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *TC-23* | Server Archiv erstellen | Server Repository bereit.\newline Server Konfigurationsdatei erstellt. | TC-04 durchführen. | Testdateien | Die Anwendung zeigt einen Fortschrittsbalken der nach erfolgtem Backup verschwindet. | Die Archiv Liste wird aktualisiert und zeigt ein Archiv an. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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. | Nicht implementiert | | *TC-24* | Lokales Archiv 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. | Nicht implementiert |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
| *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. | Erfolgreich durchgeführt 25.02.2019 A.Z. | | *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 Teilarchiv zu sehen sein.\newline Bei Schritt 5 sollte einfach ein normales Archiv zu sehen sein. | Die Anwendung wird angezeigt. | Erfolgreich durchgeführt 25.02.2019 A.Z. |
|------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------| |------------------------------+----------------------------------------------------+---------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------|
#+LATEX:} #+LATEX:}
#+LATEX:\end{landscape} #+LATEX:\end{landscape}