Αρχιτεκτονική και εξατομίκευση λογισμικού (backend)
Architecture and personalization for backend applications

Προβολή/ Άνοιγμα
Λέξεις κλειδιά
Ηexagonal architecture ; Backend ; Software personalizationΠερίληψη
Η παρούσα μεταπτυχιακή διατριβή εστιάζει στην ανάλυση, σχεδίαση και υλοποίηση ενός συστήματος συστάσεων (recommendation system) που υποστηρίζει την προσωποποιημένη αντιστοίχιση υποψηφίων με θέσεις εργασίας, αξιοποιώντας τεχνικές rule-based αξιολόγησης και μοντέρνες αρχιτεκτονικές αρχές λογισμικού. Το έργο αυτό εντάσσεται στο πεδίο της ευφυούς διαχείρισης ανθρώπινου δυναμικού (Intelligent Human Resource Management), όπου η ανάγκη για αυτοματοποίηση και προσωποποίηση των διαδικασιών πρόσληψης είναι ιδιαίτερα έντονη. Οι σύγχρονες αγορές εργασίας χαρακτηρίζονται από ταχύτητα, πολυπλοκότητα και όγκο πληροφορίας, καθιστώντας επιτακτική την ύπαρξη ενός πληροφοριακού συστήματος που να μπορεί να αξιολογεί, να προτείνει και να προσαρμόζεται δυναμικά στις ανάγκες χρηστών και επιχειρήσεων.
Η εφαρμογή αναπτύχθηκε με βάση την αρχιτεκτονική Hexagonal (Ports & Adapters), με στόχο να διασφαλιστούν η επεκτασιμότητα, η συντηρησιμότητα και η ανεξαρτησία από τεχνολογικές εξαρτήσεις. Η επιλογή αυτής της αρχιτεκτονικής επιτρέπει τον καθαρό διαχωρισμό της επιχειρησιακής λογικής από τα εξωτερικά συστήματα, προσφέροντας τη δυνατότητα αντικατάστασης τεχνολογιών (όπως βάσεις δεδομένων, APIs ή recommendation engines) χωρίς επιπτώσεις στη λειτουργικότητα. Με αυτόν τον τρόπο, η υλοποίηση εξασφαλίζει χαμηλή σύζευξη (loose coupling) και υψηλή συνοχή (high cohesion), χαρακτηριστικά που αποτελούν προϋπόθεση για την ανάπτυξη βιώσιμων και εξελίξιμων πληροφοριακών συστημάτων.
Κεντρικό ρόλο στο σύστημα διαδραματίζει η λογική υπολογισμού συστάσεων, η οποία στηρίζεται σε κανόνες αντιστοίχισης μεταξύ δεξιοτήτων υποψηφίων και απαιτήσεων θέσεων εργασίας. Οι δεξιότητες συλλέγονται μέσω ερωτηματολογίων που καλύπτουν τόσο τεχνικές δεξιότητες (hard skills) όσο και διαπροσωπικές δεξιότητες (soft skills). Ο μηχανισμός βαθμολόγησης παράγει μια ποσοτική αξιολόγηση της συμβατότητας κάθε υποψηφίου με κάθε θέση, επιτρέποντας την κατάταξη και προβολή των πιο κατάλληλων επιλογών.
Οι recruiters μπορούν να λαμβάνουν αυτόματα ταξινομημένες λίστες υποψηφίων, ενώ οι υποψήφιοι έχουν πρόσβαση σε προσωποποιημένες συστάσεις θέσεων, βάσει των χαρακτηριστικών και των απαντήσεών τους.
3
Η ευελιξία του συστήματος ενισχύεται περαιτέρω με τη χρήση του σχεδιαστικού προτύπου Strategy (Strategy Pattern), μέσω του οποίου καθίσταται δυνατή η εναλλαγή μεταξύ διαφορετικών recommendation στρατηγικών. Έτσι, το υπάρχον rule-based σύστημα μπορεί μελλοντικά να επεκταθεί με μοντέλα τεχνητής νοημοσύνης και μηχανικής μάθησης (AI/ML-based recommendation), χωρίς να απαιτούνται αλλαγές στην αρχιτεκτονική δομή ή στη ροή της εφαρμογής. Αυτή η προσέγγιση επιτρέπει τη σταδιακή μετάβαση προς πιο έξυπνες, προσαρμοστικές και αυτοματοποιημένες μεθόδους λήψης αποφάσεων.
Η υποδομή της εφαρμογής έχει οργανωθεί γύρω από domain services, τα οποία λειτουργούν αυτόνομα και επικοινωνούν μέσω καθορισμένων ports. Οι λειτουργίες του συστήματος εκτίθενται μέσω RESTful endpoints, επιτρέποντας τη διασύνδεση με οποιαδήποτε UI εφαρμογή, είτε πρόκειται για web είτε για mobile περιβάλλον. Το backend έχει υλοποιηθεί με χρήση Spring Boot, αξιοποιώντας την απλότητα της Java και τη δυνατότητα modular οργάνωσης που παρέχει το framework.
Στο πλαίσιο της διατριβής πραγματοποιήθηκε ανάλυση απαιτήσεων, μοντελοποίηση μέσω UML διαγραμμάτων, καθώς και υλοποίηση πλήρους backend λειτουργικότητας. Παρουσιάζονται αναλυτικά τα διαγράμματα περιπτώσεων χρήσης, τάξεων, δραστηριοτήτων και αλληλεπίδρασης, καθώς και ένα διάγραμμα ροής εξατομίκευσης που περιγράφει βήμα προς βήμα τη διαδικασία παραγωγής συστάσεων. Επίσης, περιλαμβάνονται παραδείγματα κώδικα, ενδεικτικά σενάρια χρήσης, καθώς και στιγμιότυπα οθόνης του περιβάλλοντος διεπαφής χρήστη.
Τέλος, η εργασία παρουσιάζει προτάσεις για μελλοντικές επεκτάσεις, όπως η ενσωμάτωση μοντέλων μηχανικής μάθησης, η δυναμική μάθηση από feedback, η βελτίωση της εμπειρίας χρήστη (UX) και η υποστήριξη A/B testing για την αξιολόγηση διαφορετικών recommendation στρατηγικών. Η προτεινόμενη αρχιτεκτονική μπορεί να αποτελέσει τη βάση για πιο εξελιγμένα και “έξυπνα” πληροφοριακά συστήματα στο πεδίο της απασχόλησης, συμβάλλοντας στην αποδοτικότερη αντιστοίχιση ανθρώπινου δυναμικού και θέσεων εργασίας.
Η διατριβή επομένως επιδιώκει να αναδείξει πώς οι σύγχρονες αρχιτεκτονικές αρχές και τα σχεδιαστικά πρότυπα μπορούν να ενισχύσουν τη λειτουργικότητα, τη βιωσιμότητα και την καινοτομία των συστημάτων λογισμικού, ανοίγοντας τον δρόμο για ευφυέστερες και περισσότερο προσωποποιημένες λύσεις στον χώρο της πληροφορικής και των ανθρωπίνων πόρων.


