dc.contributor.author | Μυλωνάς, Δημήτριος - Κωνσταντίνος Ε.![]() |
|
dc.contributor.author | Mylonas, Dimitrios - Konstantinos E.![]() |
|
dc.date.accessioned | 2025-06-17T07:17:08Z | |
dc.date.available | 2025-06-17T07:17:08Z | |
dc.identifier.uri | https://dspace.lib.ntua.gr/xmlui/handle/123456789/62083 | |
dc.identifier.uri | http://dx.doi.org/10.26240/heal.ntua.29779 | |
dc.rights | Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα | * |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-nd/3.0/gr/ | * |
dc.subject | υποβάθμιση ποιότητας συστημάτων | el |
dc.subject | μετρικές ομοιότητας | el |
dc.subject | ανάπτυξη λογισμικού βασισμένη σε μοντέλα | el |
dc.subject | εχνικές clustering, | el |
dc.subject | ευριστικοί αλγόριθμοι αναζήτησης | el |
dc.subject | Software evolution | en |
dc.subject | software evolution metrics | en |
dc.subject | similarity measures | en |
dc.subject | model-driven engineering | en |
dc.subject | heuristic searching algorithms | en |
dc.title | Εξόρυξη Αρχιτεκτονικής Συστήματος λογισμικού μέσω ανάλυσης αρχείων πηγαίου κώδικα. | el |
dc.contributor.department | Τομέας τεχνολογίας πληροφορικής και υπολογιστών | el |
heal.type | bachelorThesis | |
heal.classification | Εξέλιξη συστημάτων | el |
heal.language | el | |
heal.access | free | |
heal.recordProvider | ntua | el |
heal.publicationDate | 2007-09-01 | |
heal.abstract | Η παρούσα διπλωματική εργασία μελετά τις μεθόδους εξαγωγής αρχιτεκτονικής συστήματος λογισμικού μέσω ανάλυσης των αρχείων πηγαίου κώδικα που το αποτελούν. Ένα από τα προβλήματα που άπτονται του τομέα της Τεχνολογίας Λογισμικού, είναι η αλλοίωση της δομής ενός συστήματος λογισμικού κατά τη διάρκεια του κύκλου ζωής του. H παρατηρούμενη υποβάθμιση των συστημάτων λογισμικού οφείλεται κυρίως στις επεμβάσεις συντήρησης και αναβάθμισης στον πηγαίο κώδικά τους από μηχανικούς που δεν γνωρίζουν επακριβώς τον τρόπο λειτουργίας τους και τις αλληλεπιδράσεις μεταξύ των επιμέρους δομικών μερών τους, ελλείψει πλήρους και συνεπούς ως προς την υλοποίηση τεκμηρίωσης. Tα συστήματα σταδιακά μετατρέπονται σε legacy systems, συστήματα δηλαδή που χρησιμοποιούνται χωρίς να υπάρχει πλήρης κατανόηση του τρόπου λειτουργίας τους. Στην κατεύθυνση εύρεσης ενός τρόπου επίλυσης αυτού του προβλήματος, κινείται η ανάπτυξη μεθόδων εξαγωγής αρχιτεκτονικής ενός υλοποιημένου συστήματος σε διάφορα επίπεδα αφαιρετικότητας, μέσω ανάλυσης του πηγαίου κώδικά του και εφαρμογής της τεχνικής της διαμερισματοποίησης (clustering). Η παρούσα εργασία είναι μια προσπάθεια ανάπτυξης ενός εργαλείου που χρησιμοποιεί την τεχνική αυτή. Ο πηγαίος κώδικας αναλύθηκε με το εργαλείο ανάλυσης RIGI και ο αλγόριθμος διαμερισματοποίησης του συστήματος υλοποιήθηκε στη γλώσσα προγραμματισμού Java. Για την υλοποίηση του αλγορίθμου χρησιμοποιήθηκε το προγραμματιστικό περιβάλλον ανάπτυξης Eclipse και τα εργαλεία μοντελοποίησης σε UML που αυτό προσφέρει. Χρησιμοποιήθηκαν επίσης τα εργαλεία ανάπτυξης βασισμένης σε μοντέλα (model-driven engineering)του Eclipse-EMF για την δημιουργία των βασικών κλάσεων του μοντέλου των δεδομένων προς ανάλυση, και στη συνέχεια προστέθηκαν κλάσεις που υλοποιούν την επιλεγμένη μέθοδο clustering. Η μέθοδος που επιλέχθηκε είναι η από κάτω προς τα επάνω (bottom – up agglomerative) διαμερισματοποίηση με χρήση ενός ευριστικού αλγορίθμου αναζήτησης και της μετρικής MQ ως μετρικής αξιολόγησης της ποιότητας της διαίρεσης του συστήματος. Το εργαλείο που αναπτύχθηκε, χρησιμοποιήθηκε για την ανάλυση του CLIPS, ενός μεσαίου μεγέθους συστήματος τεχνητής νοημοσύνης (40 ΚLΟC περίπου) γραμμένο στη γλώσσα προγραμματισμού C, που αναπτύχθηκε από το Κέντρο Υποστήριξης Τεχνολογίας Λογισμικού της NASA. | el |
heal.abstract | A major problem in the field of Software Engineering is to develop techniques to cope with the structural degradation of a software system during the maintenance phase of its life cycle. More specifically, as maintenance operations are applied on software systems in an ad hoc manner due to the lack of complete system documentation, partial system understanding or simply due to lack of time, these systems are gradually transformed into legacy systems and consequently their original design and overall structure degrades. Therefore, there is a point in time where the architecture of such a degraded system must be re-captured, re-analyzed and re-factored so that its design qualities can be restored to a certain degree. There are several methods proposed in the literature for the architecture extraction of legacy systems. These methods are based on the extraction of information from the source code and the consequent manipulation of this information to identify cohesive modules and subsystems that will form a specific view of the current architecture of the system being analyzed. In this respect, a great number of these methods use clustering techniques. Clustering techniques concern with the decomposition of a large system into meaningful subsystems, making good use of code artifacts extracted from the system’s source code files. This thesis discusses the problem of extracting and recovering the architecture of a software system by implementing source code analysis and clustering methods, and by utilizing a model driven software engineering approach. More specifically, the approach taken in this thesis is to first extract information from the source code files using the RIGI C extractor. Second, the information being extracted is used to populate an XMI compliant model that is fed to the EMF tool. Third, a bottom-up agglomerative clustering technique is implemented and applied along with a heuristic search algorithm that utilizes the Module Quality (MQ) metric as a graph quality evaluation metric for the clustering process. The overall clustering process aims to identify cohesive subsystems that can be obtained from the source code being analyzed. The level of granularity for the extraction of these subsystems is at the function and file level. For the implementation of the tool in this thesis we utilized the Eclipse IDE and the corresponding EMF Application Programming Interface (API). For the evaluation of the clustering technique and the corresponding tool, we analyzed and extracted the architecture of CLIPS, a medium size C-based software system (approx. 40 KLOC). | en |
heal.sponsor | ΕΜΠ | el |
heal.advisorName | Κοντογιάννης, Κώστας | |
heal.committeeMemberName | Κοντογιάννης, Κώστας | |
heal.committeeMemberName | Βασιλείου, Ιωάννης | |
heal.committeeMemberName | Σελλής, Τιμολέων | |
heal.academicPublisher | Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών | el |
heal.academicPublisherID | ntua | |
heal.numberOfPages | 71 σ. | |
heal.fullTextAvailability | false |
Οι παρακάτω άδειες σχετίζονται με αυτό το τεκμήριο: