Your browser does not support JavaScript!

Αρχική    Software architecture mining from source code  

Αποτελέσματα - Λεπτομέρειες

Προσθήκη στο καλάθι
[Προσθήκη στο καλάθι]
Κωδικός Πόρου 000441658
Τίτλος Software architecture mining from source code
Άλλος τίτλος Εξαγωγή της αρχιτεκτονικής λογισμικού από τον πηγαίο κώδικα
Συγγραφέας Σαββάκη, Κρυσταλλία Χ.
Σύμβουλος διατριβής Σαββίδης, Αντώνιος
Μέλος κριτικής επιτροπής Τραχανιάς, Παναγιώτης
Πρατικάκης, Πολύβιος
Περίληψη Η αρχιτεκτονική λογισμικού έχει βασικό ρόλο στον προσδιορισμό των προδιαγραφών και το σχεδιασμό της δομής ενός συστήματος, αποτελώντας τον συνδετικό κρίκο μεταξύ των απαιτήσεων και της υλοποίησης του. Παρόλα αυτά, κατά την διαδικασία ανάπτυξης λογισμικού, υπάρχει πιθανότητα να παραβιαστεί η αρχιτεκτονική του εκάστοτε συστήματος. Ως εκ τούτου, ενδέχεται να προκύψουν απροσδόκητες ή ανεπιθύμητες εξαρτήσεις μεταξύ των τμημάτων στον πηγαίο κώδικα. Επιπλέον, η κατανόηση της βασικής αρχιτεκτονικής σε συστήματα μεγάλης κλίμακας είναι απαραίτητη για την αποτελεσματική συντήρηση και συνεχή βελτίωση τους. Ωστόσο, είναι αδύνατο να αντικατοπτριστεί άμεσα στον πηγαίο κώδικα, καθώς δεν αποτελεί δομικό στοιχείο των γλωσσών προγραμματισμού. Επομένως, είναι αναγκαία η ανάπτυξης μεθόδων και εργαλείων που βοηθούν στην κατανόηση της δομής ενός συστήματος, εξάγοντας πληροφορίες σχετικά με την αρχιτεκτονική του απευθείας από τον πηγαίο κώδικα. Η αντίστροφη μηχανική είναι η διαδικασία ανάλυσης ενός συστήματος με σκοπό τον εντοπισμό και την αναπαράσταση των σχέσεων μεταξύ των βασικών του στοιχείων. Η εξαγωγή της αρχιτεκτονικής αποτελεί υποσύνολο της αντίστροφης μηχανικής, η οποία στοχεύει στην ανίχνευση αφαιρέσεων που αντανακλούν τα βασικά στοιχεία του συστήματος σε υψηλό επίπεδο. Στο πλαίσιο αυτό, μέθοδοι αντίστροφης μηχανικής μπορούν να χρησιμοποιηθούν στην διαδικασία υπολογισμού της πραγματικής αρχιτεκτονική όπως αυτή αντικατοπτρίζεται, ώστε να συγκριθεί μετέπειτα με την αρχικά σχεδιασμένη αρχιτεκτονική. Στην εργασία αυτή, προτείνουμε ένα εργαλείο το οποίο στοχεύει στην ανακατασκευή της αρχιτεκτονικής ενός συστήματος όπου ο πηγαίος κώδικας έχει αναπτυχθεί σε C++. Για να το πετύχουμε αυτό, εστιάζουμε στις σχέσεις μεταξύ των κλάσεων, καθώς αποτελούν τα πιο βασικά στοιχεία σε επίπεδο πηγαίου κώδικα. Πιο συγκεκριμένα, το εργαλείο που έχουμε αναπτύξει πραγματοποιεί στατική ανάλυση σε C++ εφαρμογές, εξάγοντας δεδομένα σχετικά με τις κλάσεις και τις μεταξύ τους σχέσεις. Έπειτα, η προσέγγισή μας δημιουργεί και οπτικοποιεί ένα γράφο εξαρτήσεων που αντιπροσωπεύει όλες τις σχέσεις μεταξύ των κλάσεων. Στην συνέχεια, στον εξαγόμενο γράφο εφαρμόζουμε αλγορίθμους ομαδοποίησης, ώστε να δημιουργήσουμε μία αφαιρετική εικόνα του συστήματος εντοπίζοντας τα αρχιτεκτονικά του στοιχεία. Συγκεκριμένα χρησιμοποιήσαμε αλγορίθμους ομαδοποίησης, όπως τους Louvain, Infomap και Layered Label Propagation, ενώ δίνεται η δυνατότητα στους χρήστες να επιλέξουν ομαδοποίηση βάση συγκεκριμένων χαρακτηριστικών μέσω χώρων ονομάτων και φακέλων. Τέλος, έχουμε αναπτύξει αρκετά σενάρια χρήσης ώστε να ελέγξουμε την εγκυρότητα και την αποτελεσματικότητα της προσέγγισής μας.
Φυσική περιγραφή vi, 73 σ. : σχεδ., πιν., εικ. (μερ. εγχρ.) ; 30 εκ.
Γλώσσα Αγγλικά
Θέμα Reverse engineering
Αντίστροφη μηχανική
Ημερομηνία έκδοσης 2021-07-30
Συλλογή   Σχολή/Τμήμα--Σχολή Θετικών και Τεχνολογικών Επιστημών--Τμήμα Επιστήμης Υπολογιστών--Μεταπτυχιακές εργασίες ειδίκευσης
  Τύπος Εργασίας--Μεταπτυχιακές εργασίες ειδίκευσης
Εμφανίσεις 580

Ψηφιακά τεκμήρια
No preview available

Κατέβασμα Εγγράφου
Προβολή Εγγράφου
Εμφανίσεις : 17