• Nenhum resultado encontrado

FreeL: Ανάπτυξη εφαρμογής σε συσκευές με λειτουργικό σύστημα Android για εύρεση επαγγελματιών στον παγκόσμιο ιστό με τη χρήση σύγχρονων τεχνολογιών

N/A
N/A
Protected

Academic year: 2023

Share "FreeL: Ανάπτυξη εφαρμογής σε συσκευές με λειτουργικό σύστημα Android για εύρεση επαγγελματιών στον παγκόσμιο ιστό με τη χρήση σύγχρονων τεχνολογιών"

Copied!
62
0
0

Texto

(1)

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ

ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

FreeL: Ανάπτυξη εφαρμογής σε συσκευές με λειτουργικό σύστημα Android για εύρεση επαγγελματιών στον παγκόσμιο ιστό με τη χρήση σύγχρονων τεχνολογιών

Θεοδώρα Μ. Αναστασίου

Επιβλέποντες: Δρ. Ιωάννης Χαμόδρακας, ​Εργαστηριακό Διδακτικό Προσωπικό (ΕΔΙΠ)

Καθ. Παναγιώτης Σταματόπουλος

ΑΘΗΝΑ Οκτώβριος 2019

(2)

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

FreeL: Ανάπτυξη εφαρμογής σε συσκευές με λειτουργικό σύστημα Android για την εύρεση επαγγελματιών στον παγκόσμιο ιστό

Θεοδώρα Μ. Αναστασίου Α.Μ.:​ 1115201400236

ΕΠΙΒΛΕΠΟΝΤΕΣ: Δρ. Ιωάννης Χαμόδρακας, ​Εργαστηριακό Διδακτικό Προσωπικό (ΕΔΙΠ)

Καθ. Παναγιώτης Σταματόπουλος

(3)

Στα πλαίσια της παρούσας πτυχιακής εργασίας υλοποιήθηκε η εφαρμογή FreeL, η οποία επιτρέπει στο χρήστη να βρίσκει εύκολα και γρήγορα, επαγγελματίες που έχουν τα προσόντα που απαιτεί. Δίνει την δυνατότητα στους χρήστες, να δημιουργήσουν ένα λογαριασμό είτε σαν πελάτες, ούτως ώστε να μπορούν να προσλάβουν κάποιον επαγγελματία που θα υλοποιήσει μια συγκεκριμένη δημοσιευμένη εργασία, είτε σαν επαγγελματίες επιτρέποντάς τους να υποβάλλουν αίτηση για την ανάληψη μιας εργασίας.

Αφού γίνουν δεκτοί από τον πελάτη, καλούνται να υλοποιήσουν την εργασία διατηρώντας την επικοινωνία μαζί του, κάτι το οποίο υποστηρίζει η εφαρμογή. Τέλος, αφού ο πελάτης προχωρήσει στην πληρωμή δίνεται η δυνατότητα αξιολόγησης της συνεργασίας και από τις δύο πλευρές.

Πριν την υλοποίηση της εργασίας χρειάστηκε στα πλαίσια της έρευνας, να εξεταστούν κάποιες παρόμοιες εφαρμογές ώστε να γίνουν κατανοητές οι απαιτήσεις και οι προδιαγραφές που πρέπει να τηρεί η εφαρμογή. Στη συνέχεια, ακολουθώντας το μοντέλο του καταρράκτη, ακολούθησε η Ανάλυση της εφαρμογής με χρήση UML διαγραμμάτων (Use Case Diagram, Sequence Diagram, Class Diagram) και της Δομημένης Ανάλυσης με Διαγράμματα Ροής Δεδομένων, ούτως ώστε να είναι ξεκάθαρα τα κύρια σενάρια επιτυχημένης λειτουργίας της εφαρμογής, αλλά και η αντιμετώπιση κάποιων όχι τόσο ξεκάθαρων περιπτώσεων.

Ακολούθως, στη φάση της Σχεδίασης σχεδιάστηκαν κάποιες αντιπροσωπευτικές οθόνες (mockups) που ικανοποιούν τις απαιτήσεις που αναλύθηκαν προηγουμένως και οι οποίες καθιστούν την εφαρμογή φιλική και προσιτή προς το χρήστη. Η φάση της Σχεδίασης περιλαμβάνει επίσης την οργάνωση των δεδομένων, τον διαχωρισμό τους σε τύπους οντοτήτων και στην περιγραφή των συσχετίσεων μεταξύ τους, καταλήγοντας στο Διάγραμμα Οντοτήτων Συσχετίσεων της Βάσης Δεδομένων.

Αργότερα στη φάση της υλοποίησης, αναπτύχθηκε η Βάση Δεδομένων που υποστηρίζει την εφαρμογή σε σύστημα MySQL και υλοποιήθηκαν οι υπηρεσίες REST στον εξυπηρετητή (Glass Fish) σε περιβάλλον NetBeans IDE για το νωτιαίο άκρο (back-end) της εφαρμογής. Στη συνέχεια, σε περιβάλλον Android Studio υλοποιήθηκε το μετωπιαίο άκρο (front-end) ενώ ακολουθήθηκε REST αρχιτεκτονική για την συνεργασία μεταξύ των δύο άκρων. Για να καταλήξουμε στο τελικό αποτέλεσμα, η εφαρμογή δοκιμάστηκε και αξιολογήθηκε σε διαφορετικά κινητά τηλέφωνα με διαφορετικά σενάρια χρήσης.

ΘΕΜΑΤΙΚΗ ΠΕΡΙΟΧΗ​: Τεχνολογίες Ηλεκτρονικού Εμπορίου

ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ​: Android, REST, Συστήματα συστάσεων, Java, MySQL

(4)

Freel allows its users to quickly and easily find professionals who are qualified enough for their projects. It gives users the ability to create their profile, either as clients, so that they can hire a professional to implement a project that has already been posted, or as professionals, allowing them to apply in order to implement an already existing project.

Following the acceptance of the client, they have to implement the project keeping contact with the owner of the project using the provided chat of the application. When the project is completed and the payment is made, the ability to review and rate their collaborator is given to both sides.

Before the implementation of this project, in the context of research, an examination of similar already existing applications was necessary, in order to understand which requirements and specifications FreeL must adhere. Then by implementing the Waterfall Model, an analysis of the application was held by using UML diagrams (Use Case Diagram, Sequence Diagram, Class Diagram) and Data Structure diagrams , in order to make sure that the main scenarios of the successful operation of the application are clear and also to deal with some not so clear cases.

Subsequently, in the design phase mockups were designed, which meet the requirements and specifications that were analyzed previously and that make the application more user friendly and accessible. Also included in the design phase is the organization of the data, the separation into entities as well as the definitions of the relationships between them, which leads to the Entity Relationship Diagram of the Database.

Later in the implementation phase, the database that supports the application was developed, which supports the app using a MySQL system and the REST services were materialized for the Server (Glass Fish) in NetBeans IDE to form the back-end section of the application. Then, the front-end was developed in Android Studio and REST architecture was chosen to enhance the communication between the two sides. To have the result that we ended up with, the application was verified and evaluated with different mobile phones and different possible scenarios.

SUBJECT AREA​: Android development

KEYWORDS​: Android, REST, Recommender Systems, Java, MySQL

(5)

Θα ήθελα να ευχαριστήσω τους επιβλέποντες Δρ. Ιωάννη Χαμόδρακα​​και Καθ.

Παναγιώτη Σταματόπουλο για την καθοδήγηση, την υποστήριξη, τη συνεργασία και την πολύτιμη συμβολή τους κατά την εκπόνηση της πτυχιακής εργασίας και για τον χρόνο που αφιέρωσαν για τη συνολική εποπτεία της.

(6)

ΠΡΟΛΟΓΟΣ 12

1.ΕΙΣΑΓΩΓΗ 13

1.1 Αντικείμενο Εργασίας 13

1.2 Τεχνολογίες που Χρησιμοποιήθηκαν 13

1.3 Προεπισκόπηση Κεφαλαίων 13

2. ΕΡΕΥΝΑ - ΛΕΙΤΟΥΡΓΙΚΕΣ ΠΡΟΔΙΑΓΡΑΦΕΣ - ΥΠΟΣΤΗΡΙΖΟΜΕΝΟΙ ΧΡΗΣΤΕΣ 15

2.1 Έρευνα 15

2.2 Ανάπτυξη Εφαρμογής με το Μοντέλο Καταρράκτη 16

2.3 Χρήστες - Οντότητες 17

2.4 Λειτουργίες και Απαιτήσεις 17

2.4.1 Εγγραφή 18

2.4.2 Είσοδος 18

2.4.3 Κύρια Σελίδα 18

2.4.4 Σελίδα Προφιλ 18

2.4.5 Οι δικές μου Εργασίες 18

2.4.6 Ειδοποιήσεις 18

2.4.7 Μηνύματα 19

2.4.8 Αποθηκευμένα 19

2.4.9 Δημοσίευση Εργασίας 19

2.4.10 Αίτηση Εργασίας 19

2.4.11 Αναζήτηση 19

2.4.12 Αξιολόγηση χρήστη 19

2.4.13 Recommended 20

2.5 Περιπτώσης Χρήσης ( Use Case Diagram ) 20

3. ΑΝΑΛΥΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΟΣ 23

3.1 Δομημένη Ανάλυση 23

3.2 Διαγράμματα UML 27

3.2.1 Διάγραμμα Ακολουθίας (Sequence Diagram) 27

3.2.2 Διάγραμμα Κλάσης (Class Diagram) 29

3.3 Σχεδίαση της εφαρμογής και κανόνες Nielsen 31

4. ΤΕΧΝΙΚΗ ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΗΣ 33

4.1 Βάση Δεδομένων 33

4.1.1 Γενικά για την Βάση Δεδομένων 33

4.1.2 Πίνακες και Συσχετίσεις 33

4.2 REST Αρχιτεκτονική Εφαρμογής 34

4.2.1 Βασικές Αρχες RESTful 35

4.2.1.1 JavaScript Object Notation (JSON) 35

(7)

4.3.1 JPA 36

4.3.2 JPQL 37

4.4 Ασφάλεια Εφαρμογής 37

4.4.1 SSL (Secure Socket Layer) 38

4.4.2 JWT 38

4.4.3 AES - Encryption 39

4.5 Recommender System με την μέθοδο Collaborative Filtering 40

4.5.1 Γενικά για τα Συστήματα Συστάσεων 40

4.5.2 Τεχνική Συνεργατικού Φιλτραρίσματος 41

4.5.3 Recommender Systems με χρήση της Βιβλιοθήκης Mahout 42

4.5.3.1 Μετρική Tanimoto Coefficient Similarity 42

4.6 Περιβάλλον Ανάπτυξης Εφαρμογής - Client Side 43

4.6.1 Κύκλος ζωής μιας Android εφαρμογής 43

4.6.2 Retrofit και επικοινωνία με τον Server 44

4.6.2 Activities και Fragments 45

4.6.3 Εμφάνιση και παρουσίαση δεδομένων 46

5. ΕΠΑΛΗΘΕΥΣΗ ΕΞΕΛΙΞΗ ΚΑΙ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΕΦΑΡΜΟΓΗΣ 48

5.1 Έλεγχος και επαλήθευση 48

5.2 Εξέλιξη και επεκτασιμότητα 48

5.3 Εγχειρίδιο χρήσης 49

6. ΣΥΜΠΕΡΑΣΜΑΤΑ 58

ΠΙΝΑΚΑΣ ΟΡΟΛΟΓΙΑΣ 59

ΣΥΝΤΜΗΣΕΙΣ – ΑΡΚΤΙΚΟΛΕΞΑ – ΑΚΡΩΝΥΜΙΑ 61

ΑΝΑΦΟΡΕΣ 62

(8)

Σχήμα 1: Μοντέλο Καταρράκτη σελ.16

Σχήμα 2: Περίπτωση Χρήσης Login/Signup σελ.20

Σχήμα 3: Περίπτωση Χρήσης Post/Apply Project σελ.21

Σχήμα 4: Περίπτωση Χρήσης Accept Application σελ.22

Σχήμα 5: Γενικό Διάγραμμα Ροής Δεδομένων Επιπέδου 0 σελ.23

Σχήμα 6: Διάγραμμα Ροής Δεδομένων Επίπεδο 1 σελ.24

Σχήμα 7: Διάγραμμα Ροής Δεδομένων Επίπεδο 2.1 Εγγραφή/Είσοδος σελ.25 Σχήμα 8: Διάγραμμα Ροής Δεδομένων Επίπεδο 2.2 Δημοσίευση/Αναζήτηση

Εργασίας σελ.25

Σχήμα 9 : Διάγραμμα Ροής Δεδομένων Επίπεδο 2.3 Δημιουργία Συνεργασίας σελ.26 Σχήμα 10: Διάγραμμα Ροής Δεδομένων Επίπεδο 2.4 Ολοκλήρωση Εργασίας

και αξιολόγηση χρηστών σελ.26

Σχήμα 11: Sequence Diagram Login σελ.28

Σχήμα 12: Sequence Diagram Apply to Project σελ.29

Σχήμα 13: Class Diagram σελ.30

Σχήμα 14: Σχηματική Αναπαράσταση Βάσης Δεδομένων σελ.33

Σχήμα 15: REST Αρχιτεκτονική σελ.37

Σχήμα 16: Αρχιτεκτονική της Mahout για User-based Recommender σελ.43 Σχήμα 17: Αναπαράσταση ζωής μιας δραστηριότητας σελ.46

(9)

Εικόνα 1: ​Εφαρμογή Truelancer σελ.15

Εικόνα 2: Εφαρμογή Freelancer σελ.16

Εικόνα 3: Αντιπροσωπευτικές Οθόνες για σελίδες εφαρμογής σελ.32

Εικόνα 4: JAX-RS URI απο Postman σελ.35

Εικόνα 5: JSON απάντηση απο Postman σελ.35

Εικόνα 6: Παράδειγμα EntityManager και JPQL σελ.37

Εικόνα 7: HTTP σε HTTPs σελ.38

Εικόνα 8: Παράδειγμα JWT σελ.39

Εικόνα 9: AES Encryption σελ.40

Εικόνα 10: Παράδειγμα User-based συνεργατικού φιλτραρίσματος σελ.42 Εικόνα 11: Περιγραφή γεγονότων Broadcast Receiver σελ.44

Εικόνα 12: Αρχείο andoidmanifest.xml σελ.44

Εικόνα 13: Αρχείο RestAPI για δήλωση συνάρτησης δημιουργίας project σελ.45 Εικόνα 14: Αρχείο PostProject.java για κλήση συνάρτησης δημιουργίας project σελ.45

Εικόνα 15: AlertDialog Αξιολόγηση χρήστη σελ.47

Εικόνα 16: “hint” στο Layout σελ.47

Εικόνα 17: Error message μέσα σε Toast σελ.47

Εικόνα 18: Σελίδα εισόδου στην εφαρμογή σελ.49

Εικόνα 19: Δημιουργία Λογαριασμού σελ.50

Εικόνα 20: Αριστερό Μενού σελ.50

Εικόνα 21: Αρχική Σελίδα σελ.51

Εικόνα 22: Σελίδα του Προφίλ μου σελ.52

Εικόνα 23: Σελίδα των εργασιών μου σελ.53

Εικόνα 24: Σελίδα Προβολής Εργασίας σελ.53

Εικόνα 25: Σελίδα Ειδοποιήσεων σελ.54

(10)

Εικόνα 27: Σελίδα Αποθηκευμένων Εργασιών σελ.55

Εικόνα 28: Σελίδα Δημοσίευσης Εργασίας σελ.56

Εικόνα 29: Αξιολόγηση Χρήστη και παρουσίαση αξιολογήσεων σελ.57

(11)

ΚΑΤΑΛΟΓΟΣ ΠΙΝΑΚΩΝ

Πίνακας 1: Πίνακας ορολογίας με τις αντιστοιχίσεις των ελληνικών και ξενόγλωσσων

όρων σελ. 59

Πίνακας 2: Ακρωνύμια και ανάπτυξή τους σελ​. 61

(12)

Η παρούσα πτυχιακή εργασία συγγράφηκε στην Αθήνα και εκπονήθηκε στα πλαίσια της περάτωσης των προπτυχιακών μου σπουδών στο Τμήμα Πληροφορικής και Τηλεπικοινωνιών του Εθνικού και Καποδιστριακού Πανεπιστημίου Αθηνών.

(13)

1.ΕΙΣΑΓΩΓΗ

1.1 Αντικείμενο Εργασίας

Σε μια εποχή που η ανάπτυξη της τεχνολογίας και του διαδικτύου έχει κάνει τεράστια βήματα μπροστά, η ανάγκη για εύχρηστα συστήματα και εφαρμογές, που θα βοηθούν στην εξυπηρέτηση διεργασιών και σκοπών αυξάνεται. Δεδομένου αυτού, στα πλαίσια της παρούσας εργασίας υλοποιήθηκε μια εφαρμογή Android η οποία έχει σαν σκοπό την εύκολη εύρεση εργασίας μέσω του διαδικτύου παρέχοντας τη δυνατότητα στον πελάτη να βρεί έναν επαγγελματία που να έχει τα απαιτούμενα προσόντα για να υλοποιήσει μια εργασία που δημοσίευσε.

Για την καταγραφή των απαιτήσεων της εφαρμογής, προηγήθηκε έρευνα σε προϋπάρχουσες εφαρμογές παρόμοιας φύσης. Στη συνέχεια αναλύθηκαν οι απαιτήσεις και οι προδιαγραφές της εφαρμογής, χρησιμοποιωντας διαγράμματα UML και Δομημένης Ανάλυσης και λαμβάνοντας υπόψη τους κανόνες ευχρηστίας του Nielsen, ώστε η εφαρμογή να είναι πέρα από εύχρηστη και ευχάριστη για τον χρήστη, σχεδιάστηκαν οι αντιπροσωπευτικές οθόνες (mockups). Στη συνέχεια σχεδιάστηκε και υλοποιήθηκε η Βάση Δεδομένων στην οποία αποθηκεύονται όλα τα δεδομένα της εφαρμογής.

1.2 Τεχνολογίες που Χρησιμοποιήθηκαν

Η εφαρμογή αναπτύχθηκε σε περιβάλλον Android Studio για το μετωπιαίο άκρο (front-end), ενώ σαν Εξυπηρετητής επιλέχθηκε ο GlassFish που ρυθμίστηκε και υλοποιήθηκε σε περιβάλλον NetbeansIDE. H Βάση Δεδομένων της εφαρμογής υλοποιήθηκε σε σύστημα MySQL και σχεδιάστηκε σε περιβάλλον MySQL Workbench.

Κατά την ανάπτυξη της εφαρμογής χρησιμοποιήθηκαν σύγχρονες μέθοδοι και τεχνολογίες υλοποίησης εφαρμογών διαδικτύου. Η εφαρμογή έχει σαν κύρια αρχιτεκτονική την REST, η οποία δίνει μια εύκολη λύση σύνδεσης των λειτουργικών μονάδων του νωτιαίου άκρου (back-end) με τις λειτουργικές μονάδες του μετωπιαίου άκρου (front-end) της εφαρμογής και στηρίζεται στο μοντέλο Client-Server. Παράλληλα η εφαρμογή παρέχει σύστημα συστάσεων (Recommender System) στους χρήστες της με τη χρήση συνεργατικού φιλτραρίσματος βασισμένο στον χρήστη (User-Based Collaborative Filtering).

1.3 Προεπισκόπηση Κεφαλαίων

Το δεύτερο κεφάλαιο αναφέρεται στην έρευνα που έγινε για την εξακρίβωση των αναγκών της εφαρμογής, ενώ παράλληλα αναλύονται οι χρήστες, οι λειτουργίες και προδιαγραφές σχεδιασμού που πρέπει να έχει η συγκεκριμένη εφαρμογή με την χρήση των διαγραμμάτων Περιπτώσεων Χρήσης (Use Cases). Στο τρίτο κεφάλαιο γίνεται η ανάλυση και σχεδίαση του συστήματος με χρήση Δομημένης Ανάλυσης και διαγράμματα σε γλώσσα UML ώστε να είναι ξεκάθαρο το τι πρέπει να υποστηρίζει η εφαρμογή μετά την ολοκλήρωσή της. Στη συνέχεια, στο τέταρτο κεφάλαιο αναφέρονται αναλυτικά οι τεχνολογίες που χρησιμοποιήθηκαν για την υλοποίηση της εφαρμογής.

Παρουσιάζεται η Βάση Δεδομένων που υποστηρίζει το σύστημα, περιγράφεται η αρχιτεκτονική που ακολουθεί η εφαρμογή, η παροχή ασφάλειας που επιβάλλεται να υπάρχει σε μια εφαρμογή διαδικτύου, ενώ αναλύεται επίσης το Σύστημα Συστάσεων που υλοποιήθηκε για εξυπηρέτηση των αναγκών της εφαρμογής. Στο επόμενο κεφάλαιο περιγράφεται η διαδικασία Επαλήθευσης (Verification) και παρουσιάζεται το τελικό αποτέλεσμα με εικόνες από τις οθόνες της εφαρμογής. Στο έκτο κεφάλαιο αναγράφονται

Θ. Αναστασίου13

(14)

τα συμπεράσματα της εργασίας και αναφέρονται τα προβλήματα που παρουσιάστηκαν και οι τρόποι που αντιμετωπίστηκαν αυτά.

Θ. Αναστασίου14

(15)

2. ΕΡΕΥΝΑ - ΛΕΙΤΟΥΡΓΙΚΕΣ ΠΡΟΔΙΑΓΡΑΦΕΣ - ΥΠΟΣΤΗΡΙΖΟΜΕΝΟΙ ΧΡΗΣΤΕΣ

2.1 Έρευνα

Η έρευνα που έγινε και στην οποία βασίστηκε η λογική της εφαρμογής και αναπτύχθηκαν οι απαιτήσεις και οι προδιαγραφές της, έγινε μέσω της χρήσης και ανάλυσης παρόμοιων προυπάρχουσων εφαρμογών, όπως η εφαρμογή Freelancer και η εφαρμογή Truelancer. Αμφότερες αποτελούν εφαρμογές που έχουν ως σκοπό την εύρεση ελεύθερων επαγγελματιών για την ανάθεση κάποιας εργασίας. Η πρώτη αφορά εργασίες περισσότερο τεχνολογικού χαρακτήρα, ενώ η δεύτερη περιλαμβάνει και εργασίες από διαφορετικούς τομείς. Ανάμεσα στις δύο εφαρμογές, το Freelancer φαίνεται να είναι πιο οργανωμένο, και σχεδιασμένο μινιμαλιστικά, σε αντίθεση με το Truelancer του οποίου η αρχική σελίδα μπορεί να δημιουργήσει σύγχυση στον χρήστη λόγω της πληθώρας πληροφοριών που του δίνονται μόλις την ανοίξει. Επιπρόσθετα, εξετάστηκαν οι χρήστες τους οποίους εξυπηρετεί η κάθε μία από αυτές, με το Freelancer να επιτρέπει στον χρήστη να έχει τη ιδιότητα του πελάτη και του επαγγελματία ταυτόχρονα. Το Truelancer απο την άλλη διευκρινίζει απο την αρχή ότι ο χρήστης θα είναι αυστηρά είτε επαγγελματίας είτε πελάτης. Οι διεργασίες που μπορεί να κάνει κάποιος χρήστης και στις δύο εφαρμογές είναι αρκετά παρόμοιες. Ένας χρήστης μπορεί να δημοσιεύσει ή να ψάξει για μια εργασία, να συνομιλήσει με κάποιον συνεργάτη του, να δει τις τρέχουσες αλλά και τις παλιές του εργασίες, να επεξεργαστεί το προφίλ του, να δει το ποσό που πληρώθηκε μέχρι τώρα και να αξιολογήσει τους συνεργάτες του. Έτσι διαμορφώθηκαν οι χρήστες, οι απαιτήσεις και οι προδιαγραφές που χρειάζεται να έχει το FreeL.

Εικόνα 1 Εφαρμογής Truelancer

Θ. Αναστασίου15

(16)

Εικόνα 2 Εφαρμογής Freelancer

2.2 Ανάπτυξη Εφαρμογής με το Μοντέλο Καταρράκτη

Σχήμα 1 Μοντέλο Καταρράκτη

Γενικά για το μοντέλο καταρράκτη

Για μεγάλο διάστημα το μοντέλο του καταρράκτη υπήρξε το πιο διαδεδομένο μοντέλο κύκλου ζωής λογισμικού. Το μοντέλο αυτό είναι χρήσιμο σε περιπτώσεις όπου οι απαιτήσεις του λογισμικού είναι γνωστές από την αρχή και δεν μεταβάλλονται κατα την ανάπτυξή του. Ένα χαρακτηριστικό του μοντέλου του καταρράκτη είναι ότι για να αρχίσει η επόμενη του φάση πρέπει να ολοκληρωθεί πλήρως η προηγούμενη. Με αυτό τον τρόπο υποστηρίζει την ακολουθιακή ανάπτυξη, αφού οι επιμέρους φάσεις από τις οποίες διέρχεται είναι διακριτές και ακολουθούν η μια την άλλη.

Το μοντέλο αυτό επιλέχθηκε για την ανάπτυξη της συγκεκριμένης εφαρμογής αφού οι απαιτήσεις της έγιναν γνωστές από την αρχή μέσα από την έρευνα που προηγήθηκε.

Παράλληλα, η τεκμηριωση και η ανάλυση των απαιτήσεων που παρέχει το μοντέλο, βοηθούν και καθιστούν πιο εύκολη την διαδικασία της υλοποίησης και της συντήρησης.

Θ. Αναστασίου16

(17)

Επίσης ο έλεγχος και η επαλήθευση λαμβάνουν λιγότερο χρόνο καθώς μπορούν να πραγματοποιηθούν σε σχέση με τα σενάρια χρήσης των λειτουργικών αναγκών που αναλύονται σε προηγούμενο στάδιο.

2.3 Χρήστες - Οντότητες

Στην ενότητα αυτή θα περιγράψουμε τους βασικούς τύπους χρηστών οι οποίοι αλληλεπιδρούν με την εφαρμογή. Δίνεται η δυνατότητα στους χρήστες να προσλαμβάνουν ή να εργαστούν σε κάποια εργασία. Έτσι η εφαρμογή υποστηρίζει δύο τύπους χρηστών, οι οποίοι έχουν κάποιες βασικές κοινές λειτουργίες, ενώ ταυτόχρονα ανάλογα με τον τύπο τους, παρέχεται και η δυνατότητα να έχουν και κάποιες διαφορετικές. Οι βασικοί τύποι χρηστών είναι οι εξής:

Πελάτης

Ως πελάτης ορίζεται ένας χρήστης ο οποίος έχει κάνει εγγραφή και έχει επιλέξει να κάνει να αναζητά επαγγελματίες για την ανάθεση κάποιας εργασίας ("hire"). Ο χρήστης αυτός έχει την δυνατότητα να δημοσιεύσει μια εργασία (Project) και στη συνέχεια αφού κάποιος χρήστης του άλλου τύπου (επαγγελματίας), κάνει αίτηση για να την υλοποιήσει, μπορεί να τον προσλάβει. Στην συνέχεια, αφού ο επαγγελματίας ολοκληρώσει την εργασία και έρθει σε επικοινωνία με τον πελάτη του, ο πελάτης τερματίζει την εργασία και πληρώνει τον επαγγελματία. Αφού ολοκληρωθεί η εργασία ο πελάτης μπορεί να αξιολογήσει τον επαγγελματία που υλοποίησε τη συγκεκριμένη εργασία.

Επαγγελματίας

Ως επαγγελματίας ορίζεται ένας χρήστης ο οποίος έχει κάνει εγγραφή και έχει επιλέξει να υλοποιεί εργασίες (“work”). Ο χρήστης αυτός έχει την δυνατότητα να επιλέξει ανάμεσα στις διαθέσιμες εργασίες που εμφανίζονται στην αρχική του σελίδα καθώς και από κάποιες προτεινόμενες με βάση τις προηγούμενες του συνεργασίες. Αφού κάνει αίτηση και γίνει δεκτός σε μια εργασία, μπορεί να την υλοποιήσει και αφού πληρωθεί μπορεί να αξιολογήσει τον εργοδότη του.

2.4 Λειτουργίες και Απαιτήσεις

Κατά την κατασκευή ενός πληροφοριακού συστήματος, κρίνεται πολύ σημαντική η ορθότητά του, ούτως ώστε να ικανοποιεί τις απαιτήσεις των χρηστών του. Πολλά πληροφοριακά συστήματα αποτυγχάνουν στο να ικανοποιήσουν τον σκοπό για τον οποίο φτιάχτηκαν χωρίς να τηρούν τις προδιαγραφές και τις απαιτήσεις του χρήστη. Για να γίνει αυτό, πρέπει να μελετηθούν και να γίνουν κατανοητές οι απαιτήσεις και οι προδιαγραφές από τον κατασκευαστή.

Στο υποκεφάλαιο αυτό περιγράφονται πιο αναλυτικά οι λειτουργίες που προσφέρει η εφαρμογή στους χρήστες, είτε αυτοί είναι επαγγελματίες είτε είναι πελάτες, κατά την πλοήγησή τους σε αυτή. Στις λειτουργίες αυτές περιλαμβάνονται κάποιες βασικές επιλογές όπως η δημιουργία λογαριασμού και η σύνδεση σε έναν ήδη υπάρχοντα λογαριασμό. Επίσης, η δημιουργία και ο τερματισμός μιας εργασίας που αφορά μόνο τους χρήστες με την ιδιότητα του πελάτη, η αποθήκευση αγαπημένων εργασιών για προβολή αργότερα και η αίτηση σε κάποια εργασία που αφορά μόνο τους χρήστες με την ιδιότητα του επαγγελματία. Για αμφότερους τους δύο τύπους χρηστών, η εφαρμογή υποστηρίζει την συνομιλία, εφόσων οι χρήστες αυτοί συνεργάζονται και αξιολόγηση των χρηστών εφόσων έχει λήξη η συνεργασία τους.

Θ. Αναστασίου17

(18)

2.4.1 Εγγραφή

Η πρώτη οθόνη που βλέπει ο χρήστης μόλις ανοίξει την εφαρμογή είναι η σελίδα εγγραφής/εισόδου. Αν ο χρήστης δεν έχει λογαριασμό, μπορεί να πατήσει το κουμπί εγγραφής και να δημιουργήσει νέο λογαριασμό, συμπληρώνοντας τα απαραίτητα στοιχεία που του ζητούνται. Μερικά από αυτά τα στοιχεία είναι το όνομα, το επίθετο, το όνομα εισόδου, τον κωδικό τον οποίο επιβεβαιώνει με διπλή καταχώρηση, τις ικανότητές του, τον τόπο διαμονής του, την ημερομηνία γέννησης, καθώς και το είδος χρήστη που θέλει να είναι, “πελάτης” ή “επαγγελματίας”. Απαραίτητη προϋπόθεση είναι κάποια στοιχεία όπως το email και το όνομα εισόδου να είναι μοναδικά. Κατάλληλο μήνυμα λάθους ενημερώνει τον χρήστη. Τα στοιχεία που δίνει ο χρήστης κατα την εγγραφή, αποθηκεύονται στη ΒΔ και χρησιμοποιούνται αργότερα είτε για απλή εμφάνιση είτε για να ξεχωρίζουν οι λειτουργίες που επιτρέπεται να κάνει ο κάθε χρήστης. Η λειτουργία αυτή είναι ίδια και για τους δύο τύπους χρηστών.

2.4.2 Είσοδος

Αν ο χρήστης έχει ήδη λογαριασμό εισάγει τα διαπιστευτήρια που ζητούνται και επικυρώνονται για να συνεχίσει στην επόμενη σελίδα. Αν τα διαπιστευτήρια δεν είναι σωστά τότε εμφανίζεται κατάλληλο μήνυμα. Ο κωδικός είναι σωστά κρυπτογραφημένος, παρέχοντας την απαραίτητη ασφάλεια στον χρήστη, ενώ και η λειτουργία αυτή είναι ίδια και για τους δύο τύπους χρηστών.

2.4.3 Κύρια Σελίδα

Στην κύρια σελίδα εμφανίζονται οι τρέχουσες εργασίες που είναι διαθέσιμες και στους δύο τύπους χρηστών καθώς και μπάρα αναζήτησης για εύρεση εργασιών. Υπάρχει ένα μενού το οποίο περιέχει κάποιες από τις υπόλοιπες σελίδες της εφαρμογής, οι οποίες είναι “My Profile”,”My Projects”, “Notifications”, ”Home”,“Messages” και ανάλογα με τον τύπο του χρήστη υπάρχει σελίδα ”Saved” για τους εργαζομένους και ”Post Project” για τους πελάτες.

2.4.4 Σελίδα Προφιλ

Στη σελίδα αυτή ο χρήστης μπορεί να δει τα στοιχεία του προφίλ του, να τα επεξεργαστεί και να τα αποθηκεύσει ξανά, να αλλάξει τόπο διαμονής, να προσθέσει επιπλέον ικανότητες, να αλλάξει φωτογραφία προφίλ, να προσθέσει επιπλέον πληροφορίες για τον εαυτό του κλπ. Μπορεί επίσης να δει τον μέσο όρο που έχει σχηματιστεί από τις αξιολογήσεις που του έκαναν οι υπόλοιποι χρήστες μέχρι στιγμής, ενώ παράλληλα μπορεί να δει τις αξιολογήσεις που έκαναν οι χρήστες για τον ίδιο. Οι λειτουργίες αυτές είναι ίδιες και για τους δύο τύπους χρηστών.

2.4.5 Οι δικές μου Εργασίες

Στη σελίδα αυτή ο χρήστης μπορεί να δει τις τρέχουσες εργασίες του και αν είναι πελάτης του δίνεται η δυνατότητα να τερματίσει μια εργασία η οποία ακόμη τρέχει.

Επίσης εμφανίζονται και οι εργασίες που έχουν πλέον ολοκληρωθεί.

2.4.6 Ειδοποιήσεις

Στη σελίδα αυτή ο χρήστης έχει την δυνατότητα να ενημερώνεται εάν έχει λάβει κάποιο νέο μήνυμα και αν το επιλέξει οδηγείται στην συγκεκριμένη σελίδα συνομιλίας.

Παράλληλα εάν ολοκληρωθεί κάποια εργασία, οι δύο χρήστες που σχετίζονται με αυτή

Θ. Αναστασίου18

(19)

ενημερώνονται μέσω σχετικής ειδοποίησης ότι μπορούν να αξιολογήσουν ο ένας τον άλλο. Έτσι ο χρήστης ενημερώνεται επίσης μέσω ειδοποίησης, εάν κάποιος έχει γράψει κάποια νέα αξιολόγηση για αυτόν και αν το επιλέξει οδηγείται στο προφίλ του, ούτως ώστε να μπορεί να διαβάσει την αξιολόγηση αυτή. Τελικά, εάν ο χρήστης είναι πελάτης μέσω ειδοποίησης όταν κάποιος επαγγελματίας κάνει αίτηση σε κάποια από τις εργασίες του. Ο χρήστης μπορεί να μαρκάρει τις ειδοποιήσεις σαν “διαβασμένες” ή και να τις διαγράψει.

2.4.7 Μηνύματα

Στη σελίδα αυτή μπορεί να βλέπει τις συνομιλίες του με τους χρήστες και να συνεχίσει την συνομιλία του με αυτούς. Η λειτουργία αυτή είναι ίδια και για τους δύο τύπους χρηστών.

2.4.8 Αποθηκευμένα

Στη σελίδα αυτή ο χρήστης μπορεί να δει τις εργασίες τις οποίες ο ίδιος αποθήκευσε και να ανατρέξει εύκολα σε αυτές, ενώ παράλληλα μπορεί να τις διαγράφει απο τα αποθηκευμένα του. Η λειτουργία αυτή υποστηρίζεται μόνο για τους επαγγελματίες.

2.4.9 Δημοσίευση Εργασίας

Στη σελίδα αυτή ο χρήστης μπορεί να δημοσιεύει μία εργασία συμπληρώνοντας τα απαραίτητα στοιχεία που του ζητούνται. Πρέπει να δίνει ένα τίτλο, μια περιγραφή, την κατηγορία που εντάσσεται η συγκεκριμένη εργασία, το ποσό που θα πληρωθεί ο επαγγελματίας μετά την ολοκλήρωση της εργασίας, τον τρόπο πληρωμής, το νόμισμα πληρωμής, καθώς και τις απαιτήσεις που έχει ο πελάτης από τον επαγγελματία για τη συγκεκριμένη εργασία. Η λειτουργία αυτή υποστηρίζεται μόνο για τους πελάτες.

2.4.10 Αίτηση Εργασίας

Η συγκεκριμένη λειτουργία είναι δυνατό να πραγματοποιηθεί μόνο από χρήστη με την ιδιότητα του επαγγελματία. Ο χρήστης έχει την δυνατότητα να κάνει αίτηση σε κάποια εργασία είτε από την αρχική σελίδα, είτε από την σελίδα προτεινόμενων, είτε από το αποτέλεσμα της αναζήτησης. Μπορεί να δουλέψει σε αυτή την εργασία μόνο εφόσον γίνει δεκτός από τον πελάτη που την δημοσίευσε.

2.4.11 Αναζήτηση

Οι χρήστες της εφαρμογής μπορούν να αναζητήσουν εργασίες από την αρχική σελίδα της εφαρμογής, μέσω κάποιας λέξης κλειδί, είτε αυτή είναι μέρος του τίτλου, της περιγραφής ή ακόμα και κάποια από τις ικανότητες που απαιτείται για την υλοποίηση της συγκεκριμένης εργασίας.

2.4.12 Αξιολόγηση χρήστη

Οι χρήστες έχουν την δυνατότητα να αξιολογούν τους συνεργάτες τους, αφού προηγηθεί μια συνεργασία για κάποια συγκεκριμένη εργασία. Εάν δηλαδή κάποιος επαγγελματίας δουλέψει με κάποιο πελάτη και ολοκληρωθεί η εργασία αυτή, τότε μπορεί ο κάθε χρήστης να αξιολογήσει τον συνεργάτη του και αυτή η αξιολόγηση θα μετρήσει στην διαμόρφωση του μέσου όρου αξιολόγησης του κάθε χρήστη. Παράλληλα ο κάθε χρήστης μπορεί να βλέπει τις αξιολογήσεις που έγραψαν για αυτόν οι υπόλοιποι

Θ. Αναστασίου19

(20)

χρήστες στο προφίλ του, ενώ ταυτόχρονα ο κάθε χρήστης μπορεί αφού μπει στο προφίλ κάποιου άλλου χρήστη, να δει τις αξιολογήσεις και τον μέσο όρο του, ούτως ώστε να είναι δυνατό να κρίνει αν μπορεί να συνεργαστεί μαζί του ή όχι κάποια άλλη φορά.

2.4.13 Recommended

Οι χρήστες με την ιδιότητα του εργαζομένου έχουν την δυνατότητα μετά από δική τους επιλογή στην αρχική σελίδα να βλέπουν κάποιες εργασίες που ταιριάζουν στα ενδιαφέροντά τους είτε ταιριάζουν με προηγούμενες εργασίες τους. Έτσι, είναι πιο εύκολο για τους χρήστες να βλέπουν και να εργάζονται σε κάτι που πραγματικά τους ενδιαφέρει χωρίς να χάνουν χρόνο να ψάχνουν σε όλες τις εργασίες που έχουν δημοσιευθεί και είναι διαθέσιμες.

2.5 Περιπτώσης Χρήσης ( Use Case Diagram ) Γενικά για τα διαγράμματα περιπτώσεων χρήσης

Είναι μια τεχνική αποτύπωσης των λειτουργικών απαιτήσεων του συστήματος, τα οποία περιγράφουν τις τυπικές αλληλεπιδράσεις μεταξύ των χρηστών ενός συστήματος και του συστήματος, οριοθετώντας τις αλληλεπιδράσεις αυτές του συστήματος με τον εξωτερικό κόσμο. Τα διαγράμματα περιπτώσεων χρήσης παρουσιάζουν την λειτουργική όψη του συστήματος.

Τα σχήματα 2 και 3, περιγράφουν κάποιες από τις βασικές λειτουργίες του συστήματος.

Είναι προφανές ότι το σύστημα αυτό έχει μόνο δύο πρωτεύοντες χειριστές τον Επαγγελματία και τον Πελάτη οι οποίοι συνδέονται με μια σχέση εξειδίκευσης.

Σχήμα 2 Περίπτωση Χρήσης - Login/Signup

Στο Σχήμα 2, περιγράφεται η λειτουργία της εισόδου ή της εγγραφής του χρήστη, με τους απαραίτητους ελέγχους ώστε να μπορέσει ο χρήστης να συνεχίσει στην αρχική σελίδα. Σε αρχική φάση και οι δύο τύποι χρηστών μπορούν να κάνουν ακριβώς τις ίδιες ενέργειες. Αν έχουν ήδη λογαριασμό στην εφαρμογή τότε συμπληρώνουν τα στοιχεία τους και περιμένουν την επιβεβαίωση ή αντίστοιχα το μήνυμα λάθους σε περίπτωση μη έγκυρων στοιχείων κατα την είσοδο. Αν ο χρήστης δεν έχει λογαριασμό μεταφέρεται σε μια φόρμα που πρέπει να συμπληρώσει για να αποκτήσει ένα λογαριασμό και αφού τα συμπληρώσει προχωράει στο βήμα εισόδου.

Θ. Αναστασίου20

(21)

Σχήμα 3 Περίπτωση χρήσης Post/Apply project

Στο σχήμα 3, περιγράφεται η διαδικασία δημιουργίας κάποιας εργασίας και η αίτηση σε κάποια εργασία από κάποιον επαγγελματία. Σε αυτή την φάση οι χρήστες ξεχωρίζουν, καθώς ο καθένας μπορεί να ακολουθήσει διαφορετικά βήματα π.χ μόνο ένας πελάτης έχει την δυνατότητα δημοσίευσης μιας εργασίας, ενώ αντίστοιχα μόνο ένας επαγγελματίας μπορεί να στείλει αίτημα εργασίας.

Ένας employer μπορεί να φτιάξει μια δική του εργασία συμπληρώνοντας τα απαραίτητα στοιχεία και στην συνέχεια να την δημοσιεύσει στην πλατφόρμα με σκοπό να βρεί έναν employee να την υλοποιήσει. Ο employee από την άλλη μεριά μπορεί να βρει στην αρχική του σελίδα κάποια εργασία που τον ενδιαφέρει και αφού την προβάλλει, μπορεί να κάνει αίτηση σε αυτή. Αφού κάνει την αίτηση μπορεί να συνομιλήσει με τον employer στον οποίο ανήκει η εργασία το ίδιο και το αντίστροφο. Μόλις ο employee κάνει αίτηση σε κάποια εργασία, ο employer που την δημοσίευσε ενημερώνεται με αντίστοιχη ειδοποίηση αιτήματος, ενώ ταυτόχρονα αν του στείλει κάποιο μήνυμα ενημερώνεται με αντίστοιχη ειδοποίηση μηνύματος.

Θ. Αναστασίου21

(22)

Σχήμα 4 Περίπτωση Χρήσης Accept Application

Στο σχήμα 4 περιγράφεται το σενάριο αποδοχής ή άρνησης ενός αιτήματος εργασίας από τον employer. Αν ο employer δεχτεί την αίτηση του employee τότε στέλνεται ειδοποίηση αποδοχής του αιτήματος στον employee που έκανε το αίτημα. Ο employer στη συνέχεια, μετά από επικοινωνία με τον employee που ανέλαβε να ολοκληρώσει την εργασία του, μπορεί να τερματίσει την εργασία, και έτσι τελικά ο employee να πληρωθεί.

Παράλληλα μετά την ολοκλήρωση μιας εργασίας οι δύο χρήστες μπορούν να αξιολογήσουν την συνεργασία τους, μετά από μια καινούρια αξιολόγηση ενημερώνεται ο μέσος όρος αξιολόγησης ενός χρήστη.

Θ. Αναστασίου22

(23)

3. ΑΝΑΛΥΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΟΣ

3.1 Δομημένη Ανάλυση

Γενικά για τη Δομημένη Ανάλυση

Η δομημένη ανάλυση ουσιαστικά βασίζεται στα δεδομένα και στις διαδικασίες ενός συστήματος, σε αντίθεση με την αντικειμενοστραφή ανάλυση που επικεντρώνεται στο να εντοπίσει κλάσεις αντικειμένων καθώς και τις συσχετίσεις μεταξύ τους όπως για παράδειγμα τα διαγράμματα κλάσεων.

Γενικά για τα Διαγράμματα Ροής Δεδομένων

Τα διαγράμματα ροής δεδομένων είναι μια τεχνική για την αναπαράσταση συσχετίσεων μεταξύ των διαδικασιών μέσω των δεδομένων που ανταλλάζουν μεταξύ τους. Τα διαγράμματα ροής δεδομένων αναπαριστώνται απο διαδικασίες, αποθήκες δεδομένων, εξωτερικές οντότητες και ροές δεδομένων.

Σχήματα για τα Διαγραμματα ροης δεδομενων

Σχήμα 5 Γενικό διάγραμμα ροής δεδομένων Επίπεδο 0

Στο σχήμα 5, περιγράφεται η γενική εικόνα των σχέσεων ανάμεσα στα αρχεία και τους χρήστες, που πρέπει να υποστηρίζει η εφαρμογή. Υπάρχει ο χρήστης 1 για τον πελάτη, και ο χρήστης 2 για τον επαγγελματία. Ο σκοπός της εργασίας είναι η δημοσίευση εργασιών και η εύρεση εργαζομένων και για αυτό η κύρια οντότητα έχει ονομαστεί αντίστοιχα. Στη συνέχεια παρουσιάζει τα κύρια αρχεία, αυτά δηλαδή που υπάρχουν στα κύρια σενάρια της εφαρμογής, το αρχείο χρηστών, το αρχείο εργασιών και το αρχείο αξιολογήσεων. Επίσης δείχνει τα δεδομένα που μεταφέρονται από τους χρήστες στα αρχεία μέσω κάποιων συγκεκριμένων διεργασιών, όπως τα στοιχεία του χρήστη, τα στοιχεία εργασιών, τα αιτήματα εργασιών, οι αξιολογήσεις που γίνονται μετά την ολοκλήρωση κάποιας εργασίας, καθώς και οι νέες αξιολογήσεις που λαμβάνουν μέρος στον υπολογισμό του μέσου όρου της αξιολόγησης κάποιου χρήστη.

Θ. Αναστασίου23

(24)

Σχήμα 6 Διάγραμμα ροής δεδομένων Επίπεδο 1

Στο σχήμα 6, περιγράφονται οι κύριες διεργασίες που λαμβάνουν μέρος στη λειτουργία της εφαρμογής, οι οποίες είναι η εγγραφή και η είσοδος του χρήστη, η δημιουργία ή η αναζήτηση μιας εργασίας, η δημιουργία συνεργασίας μετά από αίτηση κάποιου χρήστη και τέλος η δημιουργία αναφοράς που περιλαμβάνει την αξιολόγηση καθώς και αργότερα την πληρωμή ενός χρήστη. Κατα την εγγραφή και κατα την είσοδο ενός χρήστη στην εφαρμογή χρειάζεται να εισάγει τα στοιχεία του. Αν πρόκειται για είσοδο το αρχείο χρηστών δίνει στην εφαρμογή τα απαραίτητα στοιχεία για επιβεβαίωση του χρήστη, ενώ αν πρόκειται για εγγραφή εισάγει τα στοιχεία του χρήστη στο αρχείο χρηστών. Στη συνέχεια αν ο χρήστης είναι επαγγελματίας μπορεί να αναζητήσει μια εργασία να κάνει αίτηση σε αυτή και έτσι δημιουργηθεί μια συνεργασία ανάμεσα στον επαγγελματία αυτό και τον πελάτη στον οποίο ανήκει η συγκεκριμένη εργασία, εφόσον πρώτα ο δεύτερος επιβεβαιώσει την αίτηση του πρώτου. Αργότερα, ενημερώνεται κατάλληλα το αρχείο χρηστών και το αρχείο εργασιών. Όταν η εργασία ολοκληρωθεί, ακολουθεί η προαιρετική διεργασία της αξιολόγησης των χρηστών μεταξύ τους και η ενημέρωση των αντίστοιχων αρχείων αξιολόγησης.

Στο σχήμα 7, περιγράφεται πιο αναλυτικά η διεργασία της εγγραφής του χρήστη. Μετά την κατοχύρωση των στοιχείων, γίνεται έλεγχος αυτών αφού κοιτάξει στο αρχείο χρηστών αν πρόκειται για είσοδο, ενώ εάν πρόκειται για εγγραφή τα στοιχεία του χρήστη ελέγχονται και ενημερώνεται το αρχείο χρηστών.

Θ. Αναστασίου24

(25)

Σχήμα 7 Διαγράμματος ροής δεδομένων Επίπεδο 2.1: Εγγραφή - Είσοδος

Σχήμα 8 Διαγράμματος ροής δεδομένων Επίπεδο 2.2: Δημοσίευση - Αναζήτηση εργασίας

Στο σχήμα 8, περιγράφεται η δημοσίευση/αναζήτηση μιας εργασίας όπως σχολιάστηκε στο γενικότερο σχήμα. Ο χρήστης τύπου πελάτη μπορεί να δημοσιεύσει μια εργασία, και ένας χρήστης επαγγελματίας μπορεί να αναζητήσει κάποια εργασία.

Θ. Αναστασίου25

(26)

Σχήμα 9 Διαγράμματος ροής δεδομένων Επίπεδο 2.3: Δημιουργία συνεργασίας

Στο σχήμα 9, περιγράφεται η αποστολή αίτησης, ενώ επίσης και η διαδικασία απάντησης σε κάποια αίτηση είται αυτή είναι θετική ή αρνητική. Μετά την αποστολή μιας αίτησης ο χρήστης στον οποίο ανήκει η συγκεκριμένη εργασία μπορεί να αποστέλλει την απάντησή του και σε περίπτωση θετικής απάντησης δημιουργείται μια νεα συνεργασία.

Σχήμα 10 Διαγράμματος ροής δεδομένων Επίπεδο 2.4: Ολοκλήρωση εργασίας και αξιολόγηση χρηστών

Θ. Αναστασίου26

(27)

Στο σχήμα 10, περιγράφονται οι διαδικασίες που γίνονται μετά την επιβεβαίωση της αίτησης για κάποια εργασία, η κατάστασή της, αφού πλέον δεν είναι διαθέσιμη, και παρέχεται η δυνατότητα αξιολόγησης των χρηστών και η αντίστοιχη ενημέρωση των αρχείων.

3.2 Διαγράμματα UML Γενικά για την UML

Η Ενοποιημένη Γλώσσα Σχεδίασης Προτύπων (Unified Modeling Language-UML), είναι μια γλώσσα που χρησιμοποιείται σε διάφορες φάσεις ανάπτυξης συστημάτων, για την γραφική απεικόνιση, τον προσδιορισμό, την κατασκευή και την τεκμηρίωση των στοιχείων ενός συστήματος λογισμικού. Μπορεί να χρησιμοποιηθεί από την ανάλυση απαιτήσεων έως και τον έλεγχο ενός ολοκληρωμένου συστήματος. Υπάρχουν πολλά είδη γραφημάτων που την αποτελούν ενώ το καθένα έχει τον δικό του ρόλο στην ανάλυση του συστήματος.

Για την εργασία αυτή έχουν χρησιμοποιηθεί κάποια διαγράμματα UML για λόγους ανάλυσης και σχεδίασης πριν την υλοποίηση της εφαρμογής, οπως το Use Case (Κεφάλαιο 2), Sequence Diagram και Class Diagram.

3.2.1 Διάγραμμα Ακολουθίας (Sequence Diagram) Γενικά για τα διαγράμματα Ακολουθίας

Τα διαγράμματα ακολουθίας παρουσιάζουν την δυναμική όψη του συστήματος, περιγράφουν τις περιπτώσεις του και αυτό είναι χρήσιμο για τους σχεδιαστές και τους προγραμματιστές αλλά όχι για τους χρήστες. Κάθε διάγραμμα ακολουθίας περιγράφει την συμπεριφορά ενός και μόνο σεναρίου της περίπτωσης χρήσης. Στο διάγραμμα ακολουθίας απεικονίζεται ένας αριθμός αντικειμένων και μηνυμάτων που ανταλλάσσονται ανάμεσα στα αντικείμενα αυτά κατα την περίπτωση χρήσης.

Στο σχήμα 11, παρουσιάζεται με ένα άλλο τρόπο η διαδικασία εγγραφής ή εισόδου στην εφαρμογή. Δείχνει ότι στην διαδικασία αυτή υπάρχει αλληλεπίδραση με την εφαρμογή και την βάση δεδομένων. Ο χρήστης δίνει στοιχεία στην εφαρμογή, η εφαρμογή αντίστοιχα τα επιβεβαιώνει απο την ΒΔ και στην συνέχεια υπάρχει μια αντίστροφη διαδικασία για ενημέρωση του χρήστη με το ανάλογο μήνυμα.

Θ. Αναστασίου27

(28)

Σχήμα 11 Sequence Diagram Login

Στο σχήμα 12 περιγράφεται η διαδικασία αναζήτησης, προβολής και αίτησης για κάποια εργασία και αργότερα η δυνατότητα αποστολής μηνύματος στον πελάτη. Όπως και στο προηγούμενο sequence διάγραμμα φαίνεται η αλληλεπίδραση του χρήστη με την εφαρμογή, ενώ αντίστοιχα και η αλληλεπίδραση της εφαρμογής με την ΒΔ για να επιτευχθεί το επιθυμητό αποτέλεσμα.

Θ. Αναστασίου28

(29)

Σχήμα 12 Sequence Apply to Project

3.2.2 Διάγραμμα Κλάσης (Class Diagram) Γενικά για τα διαγράμματα κλάσης

Ένα διάγραμμα κλασης παρουσιάζει την στατική δομή των κλάσεων του συστήματος και των σχέσεων μεταξύ τους. Χρησιμοποιείται κατά την ανάλυση αφού περιγράφει τις λειτουργικές απαιτήσεις του συστήματος ενώ ταυτόχρονα κατά τον σχεδιασμό παρουσιάζει τις συνεργασίες και το λογικό σχήμα της ΒΔ. Κατά τη διαδικασία της ανάλυσης προδιαγραφών, οι κατασκευαστές αρχίζουν να αποκτούν γνώση για το πεδίο του προβλήματος του συστήματος. Στο διάγραμμα αυτό καταγράφονται ως κλάσεις οι έννοιες του πεδίου του προβλήματος χωρίς να υπάρχει δέσμευση πως αυτές οι κλάσεις θα υπάρχουν και στο λογισμικό που θα κατασκευαστεί. Αντίστοιχα οι λειτουργίες που αναγράφονται στο διάγραμμα αποτελούν υψηλού επιπέδου υποχρεώσεις των οντοτήτων του χώρου ανάπτυξη. Οι λειτουργίες την κλάσεων του λογισμικού αποτελούν μεθόδους των αντικειμένων αυτών των κλάσεων, οι οποίες καλούνται από άλλα αντικείμενα, άλλων συνεργαζόμενων κλάσεων, στο πλαίσιο της υλοποίησης ενός σεναρίου μιας περίπτωσης χρήσης.

Στο διάγραμμα κλάσεων παρουσιάζονται, όπως λέει και στον ορισμό των συγκεκριμένων διαγραμμάτων, οι συσχετίσεις ανάμεσα στις οντότητες και είναι σχεδιαστικά κοντά , με το τελικό σχήμα της ΒΔ.

Περιγράφει τις σχέσεις ένα-προς-ένα (+1,+1), ένα προς πολλά ( +1,0..*), και πολλά προς πολλά (0..*,0..*) που χρειάζονται για την σωστή υποστήριξη των απαιτήσεων της συγκεκριμένης εφαρμογής.

Θ. Αναστασίου29

(30)

Σχήμα 13 Class Diagram

Θ. Αναστασίου30

(31)

3.3 Σχεδίαση της εφαρμογής και κανόνες Nielsen

Στην τελική φάση της σχεδίασης και ανάλυσης της εφαρμογής χρειάστηκε να σχεδιαστούν κάποιες αντιπροσωπευτικές οθόνες που καλύπτουν τις ανάγκες και τις απαιτήσεις που τέθηκαν στο Κεφάλαιο 2, ενώ ταυτόχρονα θα ακολουθούσαν κανόνες ευχρηστίας και χρηστικότητας.

Όπως προαναφέρθηκε για την σχεδιαση της εφαρμογής θα χρειαστεί να ληφθούν υπόψη πολλοί σημαντικοί παράγοντες. Η εφαρμογή χρειάζεται να είναι αποτελεσματική, δηλαδή ο χρήστης είτε επαγγελματίας είτε πελάτης, περιμένει να βρει στην εφαρμογή αυτό που έψαχνε και έφτασε στο σημείο να την χρησιμοποιήσει. Η αποδοτικότητα της εφαρμογής κατέχει σημαντικό ρόλο στο πόσο θα χρησιμοποιηθεί από τους χρήστες και αυτό συνδέεται άμεσα με την ικανοποίηση που θα έχουν κατά την έξοδό τους από αυτή.

Για την σχεδίαση της εφαρμογής ακολουθήθηκαν οι περισσότεροι κανόνες του Nielsen :

● Ορατότητα της κατάστασης του συστήματος (Visibility)

● Ομοιότητα/αναλογία με πραγματικό κόσμο (Match)

● Δυνατότητα ελέγχου (Control)

● Συνέπεια (Consistency)

● Πρόληψη Λαθών (Prevention)

● Αναγνώριση έναντι επανάκτησης (Recognition)

● Ευελιξία (Flexibility)

● Μινιμαλιστική Σχεδίαση ( Minimalism)

● Βοήθεια (Help)

Ακολουθώντας τους παραπάνω κανόνες, η εφαρμογή είναι σε θέση να ενημερώνει τον χρήστη για το που βρίσκεται μέσα στην εφαρμογή, σε τι κατάσταση βρίσκεται το αίτημά του κάθε φορά, να τον αποτρέπει από το να κάνει λάθη όταν είναι δυνατό και να του δίνει τη δυνατότητα να ακυρώσει κάποια κίνησή του. Παράλληλα δεν του δίνει επιπλέον πληροφορία από αυτή που χρειάζεται ώστε να μην απαιτείται η διαδικασία επεξεργασίας δεδομένων τα οποία δεν του είναι χρήσιμα. Πρέπει να είναι απλή και μινιμαλιστικά σχεδιασμένη ώστε ο χρήστης να έχει μια ευχάριστη πλοήγηση στις σελίδες, χωρίς να χάνεται και να κουράζεται ψάχνοντας.

Οι αντιπροσωπευτικές οθόνες που ακολουθούν χρησιμοποιήθηκαν σαν πρότυπα για την τελική οπτικοποίηση και υλοποίηση της εφαρμογής. Παρόλα ταύτα το τελικό αποτέλεσμα δεν είναι ακριβώς το ίδιο, καθώς παρατηρήθηκαν κάποιες δυσλειτουργίες παρουσίασης των δεδομένων και έτσι ακολουθήθηκε ένα παρόμοιο σχεδιαστικό μοντέλο με τις πιο κατάλληλες λύσεις.

Οι αντιπροσωπευτικές οθόνες σχεδιάστηκαν στην εφαρμογή Edrwmax, και μερικές από αυτές φαίνονται στην Εικόνα 3.

Θ. Αναστασίου31

(32)

Εικόνα 3 Αντιπροσωπευτικές οθόνες για σελίδες εφαρμογής.

Θ. Αναστασίου32

(33)

4. ΤΕΧΝΙΚΗ ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΗΣ

4.1 Βάση Δεδομένων

4.1.1 Γενικά για την Βάση Δεδομένων

Η Βάση Δεδομένων έχει υλοποιηθεί σε MySQL, χρησιμοποιώντας την εφαρμογή WorkBench. Σε αυτό το κεφάλαιο θα αναλύσουμε τους πίνακες και τις συσχετίσεις που χρειάζεται η εφαρμογή για να λειτουργεί σωστά, βάση των απαιτήσεων και των προδιαγραφών που αναλύθηκαν σε προηγούμενο κεφάλαιο.

4.1.2 Πίνακες και Συσχετίσεις

Θεωρώντας δεδομένα τα στοιχεία και τις λειτουργίες που πρέπει να υποστηρίζει η εφαρμογή, δημιουργήθηκαν οι πίνακες και οι συσχετίσεις τους στην Βάση Δεδομένων.

Σχήμα 14 Σχηματική αναπαράσταση Βάσης Δεδομένων

Θ. Αναστασίου33

Referências

Documentos relacionados

Οι απαιτήσεις της GMP παρέχουν τους Κανόνες Υγιεινής για την Βιομηχανία Τροφίμων, αν και αρχικά αναπτύχθηκαν από τον WHO για την παραγωγή και τον έλεγχο ποιότητας των φαρμακευτικών