diff --git a/.gitignore b/.gitignore index 98b50ee..ae24ba9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ # IntelliJ IDEA .idea/ *.iml +.vscode \ No newline at end of file diff --git a/Deliverables/R2/ClassAnalysis.png b/Deliverables/R2/ClassAnalysis.png new file mode 100644 index 0000000..ddc67f9 Binary files /dev/null and b/Deliverables/R2/ClassAnalysis.png differ diff --git a/Deliverables/R2/domain.png b/Deliverables/R2/domain.png new file mode 100644 index 0000000..bd5a702 Binary files /dev/null and b/Deliverables/R2/domain.png differ diff --git a/Deliverables/R2/domain.uml b/Deliverables/R2/domain.uml new file mode 100644 index 0000000..81a6c4c --- /dev/null +++ b/Deliverables/R2/domain.uml @@ -0,0 +1,79 @@ + + + JAVA + Laboratory + + User + ScheduleSlot + SessionStatus + Laboratory + SoftwarePackage + TerminalConfiguration + Terminal + TerminalStatus + TerminalConfigurationTemplate + DaySchedule + Session + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Fields + + All + private + + diff --git a/Deliverables/R2/uc1-activity.png b/Deliverables/R2/uc1-activity.png new file mode 100644 index 0000000..21ba7c5 Binary files /dev/null and b/Deliverables/R2/uc1-activity.png differ diff --git a/Deliverables/R2/uc1-seq.png b/Deliverables/R2/uc1-seq.png new file mode 100644 index 0000000..5c88d88 Binary files /dev/null and b/Deliverables/R2/uc1-seq.png differ diff --git a/Deliverables/R2/uc1-user-auth.md b/Deliverables/R2/uc1-user-auth.md new file mode 100644 index 0000000..7a9c7eb --- /dev/null +++ b/Deliverables/R2/uc1-user-auth.md @@ -0,0 +1,30 @@ +###### Παραδοτέο R2 + +# ΠΧ1: Αυθεντικοποίηση χρήστη + +* **Πρωτεύων Actor:** Χρήστης εργαστηρίου +* **Ενδιαφερόμενοι**: + * **Χρήστης εργαστηρίου**: Θέλει να εκτελεί την ενέργεια της αυθεντικοποίησης για να μπορεί να χρησιμοποιεί την υπόλοιπη εφαρμογή. +* Προϋποθέσεις: Δεν απαιτείται καμία προυπόθεση. + +# Βασική Ροή + +### Α) Σύνδεση στην εφαρμογή + +1. Ο χρήστης θα εισάγει τα στοιχεία του στο activity της ταυτοποίησης. +2. Το backend σύστημα θα απαντάει με την επιτυχία ή αποτυχία. +3. Σε περίπτωση επιτυχίας ο χρήστης οδηγείται στο επόμενο activity. +4. Σε περίπτωση αποτυχίας + * *4α. Ο χρήστης ξαναδοκιμάζει να κάνει σύνδεση.* + + * *4β. Ο χρήστης οδηγείται σε εξωτερικό σύνδεσμο για να αλλάξει τον κωδικό του.* + +## Διαγράμματα + +### Διάγραμμα δραστηριότητας + +![](uc1-activity.png) + +### Διάγραμμα ακολουθίας + +![](uc1-seq.png) diff --git a/Deliverables/R2/uc2-pc-status.md b/Deliverables/R2/uc2-pc-status.md new file mode 100644 index 0000000..196bdd7 --- /dev/null +++ b/Deliverables/R2/uc2-pc-status.md @@ -0,0 +1,19 @@ +###### Παραδοτέο R2 + +# ΠΧ2: Προβολή κατάστασης υπολογιστών + +* **Πρωτεύων Actor:** Χρήστης εργαστηρίου +* **Ενδιαφερόμενοι**: + * **Χρήστης εργαστηρίου**: Θέλει να δει την διαθεσιμότητα των υπολογιστών που υπάρχουν στα εργαστήρια. +* Προϋποθέσεις: Πρέπει να έχει εκτελέσει με επιτυχία την ΠΧ "Αυθεντικοποίηση χρήστη". + +# Βασική Ροή + +### Α) Προβολή της κατάστασης ενός υπολογιστή + +1. Ο χρήστης επιλέγει το activity της [προβολής κάτοψης του εργαστηρίου](uc4-lab-view.md). +2. Ο χρήστης επιλέγει το εργαστήριο που τον ενδιαφέρει. +3. Το σύστημα απαντάει με την λίστα μηχανημάτων του εργαστηρίου. +4. O χρήστης επιλέγει έναν υπολογιστή από την λίστα. +5. Το σύστημα επιστρέφει την κατάσταση του υπολογιστή. +6. Ειδοποιείται για την κατάσταση του υπολογιστή (Ανενεργός, Διαθέσιμος, Σε χρήση). \ No newline at end of file diff --git a/Deliverables/R2/uc3-lab-program.md b/Deliverables/R2/uc3-lab-program.md new file mode 100644 index 0000000..0d9bfa3 --- /dev/null +++ b/Deliverables/R2/uc3-lab-program.md @@ -0,0 +1,36 @@ +###### Παραδοτέο R2 + +# ΠΧ3: Προβολή προγράμματος εργαστηρίου + +* **Πρωτεύων Actor:** Χρήστης εργαστηρίου +* **Ενδιαφερόμενοι**: + * **Χρήστης εργαστηρίου**: Θέλει να δει την το πρόγραμμα του εργαστηρίου +* Προϋποθέσεις: Πρέπει να έχει εκτελέσει με επιτυχία την ΠΧ "Αυθεντικοποίηση χρήστη". + +# Βασική Ροή + +### Α) Προβολή των επιλογών του προγράμματος + +1. Ο χρήστης επιλέγει το activity του προγράμματος. +2. Ο χρήστης επιλέγει το εργαστήριο που τον ενδιαφέρει. +3. Ο χρήστης επιλέγει το είδος του προγράμματος που θέλει να δει (τωρινό, σημερινό, εβδομαδιαίο). + +### Β) Προβολή του τωρινού προγράμματος + +1. Ο χρήστης επιλέγει την προβολή του τωρινού προγράμματος. +2. Το σύστημα επιστρέφει το μάθημα που γίνεται τώρα στο εργαστήριο και τον μάθημα που θα γίνει το επόμενο δύωρο. +3. Η εφαρμογή προβάλει τα αποτελέσματα. + +### Γ) Προβολή του σημερινού προγράμματος + +1. Ο χρήστης επιλέγει την προβολή του σημερινού προγράμματος. +2. Το σύστημα επιστρέφει το σημερινό πρόγραμμα του εργαστηρίου. +3. Η εφαρμογή προβάλει τα αποτελέσματα. + +### Δ) Προβολή του εβδομαδιαίου προγράμματος + +1. Ο χρήστης επιλέγει την προβολή του εβδομαδιαίου προγράμματος. +2. Το σύστημα επιστρέφει το εβδομαδιαίο πρόγραμμα του εργαστηρίου. +3. Ο χρήστης επιλέγει ημέρα ενδιαφέροντος. +4. Η εφαρμογή φιλτράρει τα μαθήματα για εκείνη τη μέρα. +5. Η εφαρμογή προβάλει τα αποτελέσματα. \ No newline at end of file diff --git a/Deliverables/R2/uc4-lab-view.md b/Deliverables/R2/uc4-lab-view.md new file mode 100644 index 0000000..ba7dfeb --- /dev/null +++ b/Deliverables/R2/uc4-lab-view.md @@ -0,0 +1,18 @@ +###### Παραδοτέο R2 + +# ΠΧ4: Προβολή κάτοψης εργαστηρίου + +* **Πρωτεύων Actor:** Χρήστης εργαστηρίου +* **Ενδιαφερόμενοι**: + * **Χρήστης εργαστηρίου**: Θέλει να δει την κάτοψη του εργαστηρίου για διάφορες πληροφορίες +* Προϋποθέσεις: Πρέπει να έχει εκτελέσει με επιτυχία την ΠΧ "Αυθεντικοποίηση χρήστη". + +# Βασική Ροή + +### Α) Προβολή της κάτοψης εργαστηρίου + +1. Ο χρήστης επιλέγει το activity της κάτοψης. +2. Το σύστημα επιστρέφει τα διαθέσιμα εργαστήρια. +3. Ο χρήστης επιλέγει το εργαστήριο που τον ενδιαφέρει. +4. Το σύστημα επιστρέφει την κάτοψη του εργαστηρίου σε μορφή JSON. +5. Η εφαρμοφή προβάλλει την κάτοψη. diff --git a/Deliverables/R2/uc5-activity.png b/Deliverables/R2/uc5-activity.png new file mode 100644 index 0000000..06ff3b2 Binary files /dev/null and b/Deliverables/R2/uc5-activity.png differ diff --git a/Deliverables/R2/uc5-remote-control.md b/Deliverables/R2/uc5-remote-control.md new file mode 100644 index 0000000..c862791 --- /dev/null +++ b/Deliverables/R2/uc5-remote-control.md @@ -0,0 +1,56 @@ +###### Παραδοτέο R2 + +# ΠΧ5: Απομακρυσμένος έλεγχος μηχανημάτων + +* **Πρωτεύων Actor:** Διαχειριστής εργαστηρίου +* **Ενδιαφερόμενοι**: + * **Διαχειριστής εργαστηρίου**: Θέλει να εκτελέσει συγκεκριμένες ενέργειες πάνω σε επιλεγμένο μηχάνημα. +* Προϋποθέσεις: Πρέπει να έχει εκτελέσει με επιτυχία την ΠΧ "Αυθεντικοποίηση χρήστη". + +# Βασική Ροή + +### Α) Επιλογή κάτοψης εργαστηρίου + +1. Ο χρήστης επιλέγει το activity της [προβολής κάτοψης του εργαστηρίου](uc4-lab-view.md). +2. Ο χρήστης επιλέγει το εργαστήριο που τον ενδιαφέρει. +3. Το σύστημα απαντάει με την λίστα μηχανημάτων του εργαστηρίου. +4. O χρήστης επιλέγει έναν υπολογιστή από την λίστα. +5. Το σύστημα επιστρέφει την κατάσταση του υπολογιστή. +6. Ειδοποιείται για την κατάσταση του υπολογιστή (Ανενεργός, Διαθέσιμος, Σε χρήση). + +### Β) Επιλογή υπολογιστή που είναι ανενεργός + +1. Ο χρήστης επιλέγει υπολογιστή ο οποίος είναι ανενεργός. +2. Η περίπτωση χρήσης τερματίζει. + +### Γ) Επιλογή υπολογιστή που είναι ενεργός + +1. Ο χρήστης επιλέγει υπολογιστή ο οποίος είναι ενεργός. +2. Ο διαχειριστής επιλέγει την ενέργεια που θέλει να εκτελέσει (Απενεργοποίηση, Επανεκκίνηση, Hard reset). +3. Το σύστημα επιστρέφει την απάντηση. + * α) Επιστρέφει επιτυχία και τερματίζει την περίπτωση χρήσης. + * β) Επιστέφει αποτυχία, ειδοποιεί τον διαχειριστή και τερματίζει την περίπτωση χρήσης. + +### Δ) Επιλογή υπολογιστή που είναι σε χρήση + +1. Ο χρήστης επιλέγει υπολογιστή ο οποίος είναι σε χρήση. +2. Ο διαχειριστής επιλέγει την ενέργεια που θέλει να εκτελέσει (Απενεργοποίηση, Επανεκκίνηση, Hard reset, Αποσύνδεση, Αποστολή μηνύματος). + * α) Στον υπολογιστή είναι συνδεδεμένος διαχειριστής (master). +3. Το σύστημα επιστρέφει την απάντηση. + * α) Επιστρέφει επιτυχία και τερματίζει την περίπτωση χρήσης. + * β) Επιστέφει αποτυχία, ειδοποιεί τον διαχειριστή και τερματίζει την περίπτωση χρήσης. + +**Εναλλακτικές ροές** + +*α) Στον υπολογιστή είναι συνδεδεμένος διαχειριστής (master).* +1. Απενεργποιούνται οι επιλογές της αποσύνδεσης, επανεκκίνησης και απενεργοποίησης, καθώς ο διαχειριστής μπορεί να κάνει αναβαθμίσεις. + +## Διαγράμματα + +### Διάγραμμα δραστηριότητας + +![](uc5-activity.png) + +### Διάγραμμα ακολουθίας + +![](uc5-seq.png) \ No newline at end of file diff --git a/Deliverables/R2/uc5-seq.png b/Deliverables/R2/uc5-seq.png new file mode 100644 index 0000000..ef54575 Binary files /dev/null and b/Deliverables/R2/uc5-seq.png differ diff --git a/Deliverables/R2/uc6-history.md b/Deliverables/R2/uc6-history.md new file mode 100644 index 0000000..661a057 --- /dev/null +++ b/Deliverables/R2/uc6-history.md @@ -0,0 +1,32 @@ +###### Παραδοτέο R2 + +# ΠΧ6: Προβολή ιστορικού εργαστηρίου + +* **Πρωτεύων Actor:** Διαχειριστής εργαστηρίου +* **Ενδιαφερόμενοι**: + * **Διαχειριστής εργαστηρίου**: Θέλει να προβάλλει το ιστορικό ενός χρήστη ή ενός μηχανήματος +* Προϋποθέσεις: Πρέπει να έχει εκτελέσει με επιτυχία την ΠΧ "Αυθεντικοποίηση χρήστη". + +# Βασική Ροή + +### Α) Προβολή επιλογών ιστορικού + +1. Ο διαχειριστής επιλέγει το activity του ιστορικού. +2. Η εφαρμογή προβάλλει τις επιλογές ιστορικού (υπολογιστής ή χρήστης). +3. Ο διαχειριστής επιλέγει την περίπτωση που τον ενδιαφέρει + +### Β) Προβολή ιστορικού μηχανήματος + +1. Η εφαρμογή μεταφέρει τον διαχειριστή στο αντίστοιχο activity. +2. Ο διαχειριστής πληκτρολογεί στο πεδίο της αναζήτησης το Machine ID του μηχανήματος που τον ενδιαφέρει. +3. Το σύστημα επιστρέφει την απάντηση. + * α) Σε περίπτωση επιτυχίας, εμφανίζει όλους τους χρήστες που είχαν εργαστεί στε αυτό το μηχάνημα τον τελευταίο μήνα. + * β) Σε περίπτωση αποτυχίας, εμφανίζει μήνυμα αποτυχίας και προτρέπει τον διαχειριστή να ξανά δοκιμάσει. + +### Γ) Προβολή ιστορικού χρήστη + +1. Η εφαρμογή μεταφέρει τον διαχειριστή στο αντίστοιχο activity. +2. Ο διαχειριστής πληκτρολογεί στο πεδίο της αναζήτησης το ΑΜ του χρήστη που τον ενδιαφέρει. +3. Το σύστημα επιστρέφει την απάντηση. + * α) Σε περίπτωση επιτυχίας, εμφανίζει όλα τα μηχανήματα που είχε εργαστεί ο χρήστης τον τελευταίο μήνα. + * β) Σε περίπτωση αποτυχίας, εμφανίζει μήνυμα αποτυχίας και προτρέπει τον διαχειριστή να ξανά δοκιμάσει. \ No newline at end of file diff --git a/Deliverables/R2/uc7-activity.png b/Deliverables/R2/uc7-activity.png new file mode 100644 index 0000000..b33ed37 Binary files /dev/null and b/Deliverables/R2/uc7-activity.png differ diff --git a/Deliverables/R2/uc7-machine-registration.md b/Deliverables/R2/uc7-machine-registration.md new file mode 100644 index 0000000..45ce963 --- /dev/null +++ b/Deliverables/R2/uc7-machine-registration.md @@ -0,0 +1,60 @@ +###### Παραδοτέο R2 + +# ΠΧ7: Καταχώρηση νέων μηχανημάτων + +* **Πρωτεύων Actor:** Διαχειριστής εργαστηρίου +* **Ενδιαφερόμενοι**: + * **Διαχειριστής εργαστηρίου**: Θέλει να εισάγει ένα νέο μηχάνημα στο εργαστήριο. +* Προϋποθέσεις: Πρέπει να έχει εκτελέσει με επιτυχία την ΠΧ "Αυθεντικοποίηση χρήστη". + +# Βασική Ροή + +### Α) Επιλογή εργαστηρίου + +1. Ο διαχειριστής επιλέγει το activity εισαγωγής μηχανήματος. +2. Η εφαρμογή παρουσιάζει τα διαθέσιμα εργαστήρια. +3. Ο διαχειριστής επιλέγει το εργαστήριο που τον ενδιαφέρει. + +### Β) Καταχώρηση μηχανήματος + +1. Η εφαρμογή μεταφέρει τον διαχειριστή στο activity της καταχώρισης. +2. Ο διαχειριστής πληκτρολογεί τα υποχρεωτικά στοιχεία του νέου μηχανήματος. +3. Η εφαρμογή ελέγχει για λανθασμένα ή διπλότυπα στοιχεία. + * α) Αν επιστραφεί error, η εφαρμογή προτρέπει τον χρήστη να ελέγξει τα εισαγώμενα στοιχεία. + * β) Αν επιστραφεί επιτυχία, η εφαρμογή προτρέπει τον χρήστη για επιβεβαίωση εισαγωγής. +4. Το σύστημα προσθέτει το νεό μηχάνημα. +5. Το σύστημα ενημερώνει την κάτοψη του συγκεκριμένου εργαστηρίου. +6. Η εφαρμογή μεταφέρει τον χρήστη στο actitivy της κάτοψης του εργαστηρίου. + +### Γ) Τροποποίηση μηχανήματος + +1. Η εφαρμογή μεταφέρει τον διαχειριστή στο activity της καταχώρισης. +2. Ο διαχειριστής επιλέγει το μηχάνημα που τον ενδιαφέρει. +3. Η εφαρμογή επιστρέφει το τρέχον configuration του μηχανήματος. +4. Ο διαχειριστής τροποποιεί το μηχάνημα. +5. Η εφαρμογή ελέγχει για λανθασμένα ή διπλότυπα στοιχεία. + * α) Αν επιστραφεί error, η εφαρμογή προτρέπει τον χρήστη να ελέγξει τα εισαγώμενα στοιχεία. + * β) Αν επιστραφεί επιτυχία, η εφαρμογή προτρέπει τον χρήστη για επιβεβαίωση εισαγωγής. +6. Το σύστημα τροποποιεί το μηχάνημα. + +### Δ) Διαγραφή μηχανήματος + +1. Η εφαρμογή μεταφέρει τον διαχειριστή στο activity της καταχώρισης. +2. Ο διαχειριστής επιλέγει το μηχάνημα που τον ενδιαφέρει. +3. Ο διαχειριστής επιλέγει την διαγραφή. +4. Η εφαρμογή προειδοποιεί τον διαχειριστή. + * α) Αν επιλεγεί η απάντηση ναι, το σύστημα διαγράφει τον υπολογιστή. + * β) Αν επιλεγεί η απάντηση όχι, η εφαρμογή ακυρώνει την διαδικασία. +5. Το σύστημα ενημερώνει την κάτοψη του συγκεκριμένου εργαστηρίου. +6. Η εφαρμογή μεταφέρει τον χρήστη στο actitivy της κάτοψης του εργαστηρίου. + + +## Διαγράμματα + +### Διάγραμμα δραστηριότητας + +![](uc7-activity.png) + +### Διάγραμμα ακολουθίας + +![](uc7-seq.png) \ No newline at end of file diff --git a/Deliverables/R2/uc7-seq.png b/Deliverables/R2/uc7-seq.png new file mode 100644 index 0000000..2a139df Binary files /dev/null and b/Deliverables/R2/uc7-seq.png differ diff --git a/Deliverables/R2/uc8-configuration-generation.md b/Deliverables/R2/uc8-configuration-generation.md new file mode 100644 index 0000000..18c92f1 --- /dev/null +++ b/Deliverables/R2/uc8-configuration-generation.md @@ -0,0 +1,35 @@ +###### Παραδοτέο R2 + +# ΠΧ8: Καταγραφή προτύπου μηχανήματος + +* **Πρωτεύων Actor:** Διαχειριστής εργαστηρίου +* **Ενδιαφερόμενοι**: + * **Διαχειριστής εργαστηρίου**: Δημιουργία και χρήση πρότυπων νέων μηχανημάτων. +* Προϋποθέσεις: Πρέπει να έχει εκτελέσει με επιτυχία την ΠΧ "Αυθεντικοποίηση χρήστη". + +# Βασική Ροή + +### Α) Άνοιγμα προβολής προτύπων + +1. Ο χρήστης μετά την σύνδεσή του, κάνει μετάβαση στην οθόνη προβολής προτύπων, στην οποία μπορεί να δει συνοπτικά όλα τα πρότυπα που έχει ορίσει. +2. Πατάει το κουμπί "Προσθήκη". + +### Β) Δήλωση προτύπου + +1. Ο χρήστης αρχικά δηλώνει το όνομα του προτύπου αυτού. +2. Προαιρετικά, ο χρήστης δηλώνει τον επεξεργαστή του συστήματος. +3. Προαιρετικά, ο χρήστης δηλώνει την συνολική μνήμη του συστήματος. +4. Προαιρετικά, ο χρήστης δηλώνει την κάρτα γραφικών του συστήματος. +5. Προαιρετικά, ο χρήστης δηλώνει την χωρητικότητα μνήμης του συστήματος. +6. Προαιρετικά, ο χρήστης δηλώνει το λειτουργικό σύστμα του συστήματος. + +### Γ) Δήλωση πακέτων λογισμικού + +1. Ο χρήστης μπορεί να προσθέσει ένα πακέτο λογισμικού. +2. Καταγράφει το όνομά του, την εντολή εγκατάστασης και απεγκατάστασης του πακέτου. +3. Πατάει το κουμπί προσθήκη. +4. Προεραιτικά, μπορεί σε οποιοδήποτε πακέτο να πατήσει διαγραφή. + +### Δ) Αποθήκευση + +Πατώντας αποθήκευση, ο χρήστης αποθηκεύει το καινούριο πρότυπο. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..c141973 --- /dev/null +++ b/README.md @@ -0,0 +1,195 @@ +###### Παραδοτέο R2 + +# Εισαγωγή +Στο παρών έγγραφο θα αναλυθούν όλες οι λεπτομέρεις που αφορούν την εφαρμογή διαφείρισης εργαστηρίων CSLabs. Συγκεκριμένα θα γίνει λεπτομερής ανάλυση των περιπτώσεων χρήσης καθώς και του μοντέλου πεδίου του συστήματός μας. + +## Εμβέλεια + +Το λογισμικό υλοποιεί τις λειτουργίες της γενικότερης επίβλεψης και διαχείρισης των CSLabs. Πιο συγκεκριμένα η εφαρμογή προσφέρει: + +- Προβολή των κατόψεων των εργαστηρίων από απλούς χρήστες. +- Προβολή του προγράμματος των εργαστηρίων. +- Προβολή εμπλουτισμένων κατόψεων από διαχειριστές με παραπάνω στοιχεία για κάθε μηχάνημα, όπως πληροφορίες για την τρέχουσα συνεδρία και τον τρέχον χρήστη. +- Διαχείριση της λειτουργείας των μηχανημάτων από διαχειριστές, όπως επανεκκίνηση, αναστολή λειτουργίες και αποσύνδεση τρέχοντα χρήστη. +- Προβολή ιστορικών δεδομένων από διαχειριστές, όπως πληροφορίες για τον εκάστοτε χρήστη και τις συνεδρίες του στα εργαστήρια. +- Προβολή, επεξεργασία, καθώς και δημιουργία και χρήση πρωτοτύπων από διαχειριστές όσον αφορά τα χαρακτηριστικά κάθε μηχανήματος (όπως επεξεργαστής, κάρτα γραφικών, κλπ.) + +Η εφαρμογή δεν θα προσφέρει τα παρακάτω: + +- Λειτουργίες απομακρυσμένου ελέγχου. +- Επίβλεψη των διεργασιών. +- Παρακολούθηση της δραστηριότητας των χρηστών του εργαστηρίου. + +## Ορισμοί, ακρώνυμα & συντομογραφίες + +| Όρος | Επεξήγηση | +|:----:|:---------:| +| CSLab | Computer Science Lab(oratory) - Εργαστήριο Πληροφορικής | +| Διαχειριστής | Ο διαχειριστής είναι ένα άτομο ορισμένο από το προσωπικό του εργαστηρίου το οποίο είναι υπεύθυνο για την ορθή λειτουργία των εργαστηρίων και των μηχανημάτων τους. | +| Χρήστης | Ως χρήστη ονομάζουμε οποιοδήποτε άτομο έχει δικάιωμα χρήσης των εργαστηρίων και των πόρων του. | +| Image | Ως image ορίζουμε την έκδοση του συνόλου των προγραμμάτων και του λειτουργικού συστήματος που είναι εγκατεστημένα σε έναν υπολογιστή. | +| ΑΜ | Αριθμός μητρώου φοιτητή, εργαζόμενου ή καθηγητή | +| Machine ID | Το κωδικό όνομα ενός μηχανήματος. Αποτελείται από τις εξής πληροφορίες: CSLabX-YZ. X: Αριθμός εργαστηρίου, Υ: Σειρά μηχανήματος, Ζ: Αριθμός μηχανήματος | + +## Επισκόπηση + +Παρακάτω θα αναλυθεί το διάγραμμα περιπτώσεων χρήσης του παραδοτέου R1 σε πίνακα και θα αναλυθούν όλες οι περαιτέρω περιπτώσεις χρήσης. Επίσης θα αναπαρασταθούν σε πίνακα οι περιγραφές των Actors όπως και οι ανάγκες τους. Ακόμα θα αναλυθούν οι συμπληρωματικές προδιαγραφές του συστήματος. Τέλος θα γίνει μια σύντομη περιγραφή για το υποστηρικτικό υλικό και το βασικό μοντέλο πεδίου. + +Στη συνέχεια, θα αναλύσουμε πλήρως το λογισμικό, τους διάφορους χρήστες, τις διεπαφές, τις κλάσεις του, την οργάνωσή του και άλλα. + +# Συνολική Περιγραφή + +## Επισκόπηση μοντέλου περιπτώσεων χρήσης + +![](Deliverables/R1/use_case_r1.png) + +| Περίπτωση Χρήσης | Περιγραφή | +|:----------------:|:---------:| +| ΠΧ1: Αυθεντικοποίηση χρήστη | Η περίπτωση χρήσης για την εξουσιοδότηση σύνδεσης του Χρήστη στην εφαρμογή. | +| ΠΧ2: Προβολή κατάστασης υπολογιστών | Η περίπτωση χρήσης για την προβολή κατάστασης των μηχανημάτων του εργαστηρίου. | +| ΠΧ3: Προβολή προγράμματος εργαστηρίων | Η περίπτωση χρήσης για την προβολή του τρέχοντος προγράμματος που έχει ανατεθεί στο εργαστήριο. | +| ΠΧ4: Προβολή κάτοψης εργαστηρίου | Η περίπτωση χρήσης για την προβολή της πραγματικής αναπαράστασης των θέσεων εργασίας μέσα στο εργαστήριο. | +| ΠΧ5: Απομακρυσμένος έλεγχος υπολογιστών | Η περίπτωση χρήσης για τον απομακρυσμένο έλεγχο των υπολογιστών του εργαστηρίου. | +| ΠΧ6: Προβολή ιστορικού χρήσεως | Η περίπτωση χρήσης για την προβολή του ιστορικού χρήσης των μηχανημάτων και των χρηστών. | +| ΠΧ7: Καταχώρηση νέων μηχανημάτων | Η περίπτωση χρήσης για την προσθήκη ενός μηχανήματος στην κάτοψη του εργαστηρίου. | +| ΠΧ8: Δημιουργία και χρήση πρότυπων νέων μηχανημάτων | Η περίπτωση χρήσης για την δημιουργία ενός προτύπου υπολογιστή (hardware & image wise) και η προσθήκη του στο σύστημα. | + +Όλες οι περιγραφές των περιπτώσεων χρήσης παρέχονται στην υποενότητα περιγραφές περιπτώσεων χρήσης. + +## Υποθέσεις & εξαρτήσεις + +# Ειδικές Απαιτήσεις + +Δεν έχουμε καμία απαίτηση. + +## Περιπτώσεις χρήσης + +### Οι ενδιαφερόμενοι & οι ανάγκες τους + +Οι ανάγκες των ενδιαφερόμενων αναλύονται στον παρακάτω πίνακα. + +| Ενδιαφερόμενος | Ανάγκες | +|:--------------:|:-------:| +| Χρήστης | Να μπορεί να κάνει σύνδεση στα μηχανήματα του εργαστηρίου. | +| | Να μπορεί να δει ποια μηχανήματα είναι κατηλειμμένα και ποια ελεύθερα προς χρήση. | +| | Να μπορεί να δει το τωρινό πρόγραμμα που ισχύει στο εργαστήριο για κάθε μέρα ξεχωριστά. | +| | Να μπορεί να δει τη κάτοψη του εργαστηρίου ώστε να μπορεί να διευκολυνθεί στην εύρυεση της θέση εργασίας που επιθυμεί. | +| Διαχειριστής | Να μπορεί να έλεγξει απομακρυσμένα ένα μηχάνημα για συγκεκριμένες εντολές (Απενεργοποίηση, Επανεκκίνηση, Αποσύνδεση χρήστη). | +| | Να μπορεί να δει το ιστορικό χρήσης ενός μηχανήματος. | +| | Να μπορεί να δει το ιστορικό ενός χρήστη (σε ποια μηχανήματα έχει συνδεθεί). | +| | Να μπορεί να καταχωρήσει ένα νέο μηχάνημα στην κάτοψη του εργαστηρίου. | +| | Να μπορεί να τροποποιήσει ένα υπάρχων μηχάνημα στην κάτοψη του εργαστηρίου. | +| | Να μπορεί να δημιουργήσει ένα νέο hardware configuration στην εφαρμογή. | +| | Να μπορεί να δημιουργήσει ένα νεό software configuration στην εφαρμογή. | + +### Actors του συστήματος + +Παρακάτω αναλύονται οι Actors. + +| Actor | Περιγραφή | Στόχοι | Ενδιαφερόμενοι | +|:-----:|:---------:|:------:|:--------------:| +| Χρήστης Εργαστηρίου | Είναι ο καθημερινός χρήστης που χρησιμοποιεί τις υπηρεσίες του εργαστηρίου. | Σύνδεση στην εφαρμογή | Χρήστης Εργαστηρίου | +| | | Προβολή του προγράμματος του εργαστηρίου | | +| | | Προβολή της κάτοψης του εργαστηρίου | | +| | | Προβολή της κατάστασης των υπολογιστών | | +| Διαχειριστής | Είναι υπεύθυνος για την πλήρη διαχείριση των εργαστηρίων | Απομακρυσμένος έλεγχος μηχανημάτων | Διαχειριστής | +| | | Εμφάνιση ιστορικού χρήσης μηχανημάτων & χρηστών | | +| | | Διαχείρηση κατόψεων | | +| | | Διαχείρηση των image (hardware & software configurations) | | + +### Περιγραφές περιπτώσεων χρήσης + +Παρακάτω αναλύονται όλες οι περιπτώσεις χρήσης. + +#### [ΠΧ1: Αυθεντικοποίηση χρήστη](Deliverables/R2/uc1-user-auth.md) + +#### [ΠΧ2: Προβολή κατάστασης υπολογιστών](Deliverables/R2/uc2-pc-status.md) + +#### [ΠΧ3: Προβολή προγράμματος εργαστηρίων](Deliverables/R2/uc3-lab-program.md) + +#### [ΠΧ4: Προβολή κάτοψης εργαστηρίου](Deliverables/R2/uc4-lab-view.md) + +#### [ΠΧ5: Απομακρυσμένος έλεγχος μηχανημάτων](Deliverables/R2/uc5-remote-control.md) + +#### [ΠΧ6: Προβολή ιστορικού χρήσης](Deliverables/R2/uc6-history.md) + +#### [ΠΧ7: Καταχώρηση νέων μηχανημάτων](Deliverables/R2/uc7-machine-registration.md) + +#### [ΠΧ8: Δημιουργία και χρήση προτύπων νέων μηχανημάτων](Deliverables/R2/uc8-configuration-generation.md) + +### Διαγράμματα δραστηριότητας περιπτώσεων χρήσης + + + +## Συμπληρωματικές προδιαγραφές + +### Απαιτήσεις διεπαφών + +#### Διεπαφές χρήστη + +* Όλες οι διεπαφές χρήστη θα είναι κατασκευασμένες μέσω XML (Android). +* Όλες οι διεπαφές θα συνοδεύονται από επεξήγηση σε ειδικό activity που συνδέεται με την διεπαφή στην οποία βρίσκεται. + +#### Διεπαφες υλικού + +Δεν έχουμε διεπαφές υλικού. + +#### Διεπαφές επικοινωνίας + +Δεν έχουμε διεπαφές επικοινωνίας. + +#### Διεπαφές λογισμικού + +Δεν έχουμε διεπαφές λογισμικού. + +### Περιορισμοί σχεδίασης & υλοποίησης + +* Το σύστημα θα αναπτυχθεί σε Java. +* Το σύστημα θα μπορεί να εκτελείται σε εικονικές μηχανές της Java από την έκδοση 7.0 ή νεότερη. + +### Ποιοτικά χαρακτηριστικά + +#### Απόδοση + +Το σύστημα θα πρέπει να μπορεί να υποστηρίξει μέχρι και 1000 μηχανήματα και χρήστες, και ταυτόχρονη χρήση από 100 διαχειριστές. + +#### Διαθεσιμότητα + +Το σύστημα πρέπει να είναι διαθέσιμο προς χρήση 24/7, ανεξαρτήτος εάν βρίσκονται χρήστες συνδεδεμένοι ή εάν το εργαστήριο λειτουργεί. + +#### Ασφάλεια + +Όλες οι λειτουργίες θα πραγματοποιούνται μέσω διαδικασία αυθεντικοποίησης. + +#### Ευελιξία + +Ο χρήστης μπορεί να χρησιμοποιήσει την εφαρμογή για μεγάλη γμάμα εργαστηρίων πληροφορικής, με κύρια χαρακτηριστικά το κοινό σύστημα αυθεντικοποίησης και την χρήση κοινού δικτίου. Εάν αυτές οι συνθήκες ικανοποιούνται, τότε πολύ πιθανόν η εφαρμογή να υποστηρίζει εκείνο το εργαστήριο. + +# Υποστηρικτικό Υλικό + +## Μοντέλο πεδίου + +![](Deliverables/R2/domain.png) + +## Ανάλυση περιπτώσεων χρήσης +---------------- + +### Κλάσεις ανάλυσης + +![](Deliverables/R2/ClassAnalysis.png) + +### Συμπεριφορές + +