Περίληψη
Η έρευνα στην τεχνολογία λογισμικού έχει εξελιχθεί σημαντικά κατά τη διάρκεια των τελευταίων πέντε δεκαετιών, παράγοντας ένα σημαντικό όγκο γνώσης, εργαλείων και μεθοδολογιών που υποστηρίζουν την πολυτρισεκατομμυριακή βιομηχανία λογισμικού. Ωστόσο, καθώς το πεδίο έχει επεκταθεί σε πολυπλοκότητα και εμβέλεια, έχουν προκύψει κρίσιμα ερωτήματα σχετικά με το πόσο αποτελεσματικά αυτή η έρευνα μεταφράζεται σε πρακτικό αντίκτυπο, τι ρόλο παίζουν αναδυόμενες τεχνολογίες όπως η μηχανική μάθηση στη βελτίωση των πρακτικών της τεχνολογίας λογισμικού, και πώς τα ερευνητικά τεχνουργήματα συνεισφέρουν ουσιαστικά στην ευρύτερη ερευνητική κοινότητα. Αυτή η διατριβή απαντάει σε αυτά τα θεμελιώδη ερωτήματα μέσω τεσσάρων διασυνδεδεμένων ερευνητικών κατευθύνσεων, που εξετάζουν συστηματικά διαφορετικές πτυχές του αντίκτυπου της έρευνας της τεχνολογίας λογισμικού, της μεθοδολογίας και της πρακτικής της. Η πρώτη συνεισφορά διερευνά τη χρήση και τον αντίκτυπο των εργασιών δεδομένων που δημοσιεύθηκαν στο συνέδρ ...
Η έρευνα στην τεχνολογία λογισμικού έχει εξελιχθεί σημαντικά κατά τη διάρκεια των τελευταίων πέντε δεκαετιών, παράγοντας ένα σημαντικό όγκο γνώσης, εργαλείων και μεθοδολογιών που υποστηρίζουν την πολυτρισεκατομμυριακή βιομηχανία λογισμικού. Ωστόσο, καθώς το πεδίο έχει επεκταθεί σε πολυπλοκότητα και εμβέλεια, έχουν προκύψει κρίσιμα ερωτήματα σχετικά με το πόσο αποτελεσματικά αυτή η έρευνα μεταφράζεται σε πρακτικό αντίκτυπο, τι ρόλο παίζουν αναδυόμενες τεχνολογίες όπως η μηχανική μάθηση στη βελτίωση των πρακτικών της τεχνολογίας λογισμικού, και πώς τα ερευνητικά τεχνουργήματα συνεισφέρουν ουσιαστικά στην ευρύτερη ερευνητική κοινότητα. Αυτή η διατριβή απαντάει σε αυτά τα θεμελιώδη ερωτήματα μέσω τεσσάρων διασυνδεδεμένων ερευνητικών κατευθύνσεων, που εξετάζουν συστηματικά διαφορετικές πτυχές του αντίκτυπου της έρευνας της τεχνολογίας λογισμικού, της μεθοδολογίας και της πρακτικής της. Η πρώτη συνεισφορά διερευνά τη χρήση και τον αντίκτυπο των εργασιών δεδομένων που δημοσιεύθηκαν στο συνέδριο Mining Software Repositories (MSR). Αυτή η μελέτη αποκαλύπτει ότι ενώ οι εργασίες δεδομένων έχουν υιοθετηθεί ευρέως από την ερευνητική κοινότητα, παραμένουν ευκαιρίες για τη βελτίωση της τεκμηρίωσης και της προσβασιμότητάς τους. Οι εργασίες δεδομένων αποτελούν πολύτιμα ερευνητικά αντικείμενα, με κάθε εργασία να αναφέρεται ισχυρά από άλλες εργασίες κατά μέσο όρο 5,4 φορές, υποδεικνύοντας τη χρησιμότητά τους για τη διεξαγωγή εμπειρικών μελετών. Η ανάλυση δείχνει ότι η κατηγορία ερευνών “data showcase” του MSR έχει επιτυχώς λειτουργήσει ως καταλύτης για τη δημοσίευση εργασιών δεδομένων, με αυτές να αποτελούν περισσότερο από το 15% των δημοσιεύσεων του MSR το 2019. Ωστόσο, τα εργασίες δεδομένων που είναι προσανατολισμένες σε προϊόντα υπερέχουν σε αριθμό αυτών που είναι προσανατολισμένες σε διαδικασίες, ενώ ορισμένες γνωστικές περιοχές του SWEBOK, όπως οι απαιτήσεις λογισμικού, η οικονομία, τα μοντέλα και οι μέθοδοι της τεχνολογίας λογισμικού, είναι ελλιπώς εκροσωπημένες. Η δεύτερη συνεισφορά εξετάζει τον πρακτικό αντίκτυπο της έρευνας της τεχνολογίας λογισμικού μέσω μιας καινοτόμας συνδυαστικής προσέγγισης ανάλυσης διπλωμάτων ευρεσιτεχνίας και έρευνας συγγραφέων. Αυτή η εργασία δείχνει ότι οι ερευνητές της τεχνολογίας λογισμικού έχουν εφοδιάσει επιτυχώς τους επαγγελματίες με διάφορα εργαλεία, διαδικασίες και μεθόδους, και έχουν βελτιώσει πολλά υπάρχοντα προϊόντα. Οι χώροι δημοσίευσης ερευνών που είναι προσανατολισμένοι στους επαγγελματίες φαίνονται πιο επηρεαστικοί από αυτούς που είναι προσανατολισμένοι στους ερευνητές, ενώ η ανεπαρκής χρηματοδότηση και τα δυσμενή ανταλλάγματα κόστους-οφέλους είναι τα κύρια εμπόδια για την υιοθέτηση της έρευνας. Η ανάλυση των διπλωμάτων ευρεσιτεχνίας αποκαλύπτει ότι ενώ μόνο ένας περιορισμένος αριθμός αυτών αναφέρονται σε ερευνητικά άρθρα της τεχνολογίας λογισμικού, σχεδόν τα μισά διπλώματα ευρεσιτεχνίας που αναφέρονται σε άρθρα της τεχνολογίας λογισμικού έχουν ανανεωθεί, υποδεικνύοντας την εμπορική τους αξία. Οι διεπιστημονικοί τομείς της τεχνολογίας λογισμικού, ειδικά αυτοί που σχετίζονται με τις γλώσσες προγραμματισμού, τους μεταγλωττιστές και τη διαχείριση λογισμικού, έχουν τον πιο σημαντικό πρακτικό αντίκτυπο. Η τρίτη συνεισφορά παρέχει μια ολοκληρωμένη τριτοβάθμια μελέτη των εφαρμογών μηχανικής μάθησης στην τεχνολογία λογισμικού, αποκαλύπτοντας ότι ενώ οι τεχνικές μηχανικής μάθησης έχουν εφαρμοστεί εκτενώς σε διάφορες εργασίες της τεχνολογίας λογισμικού, σημαντικά κενά παραμένουν στην εμπειρική επικύρωση και τη βιομηχανική υιοθέτηση αυτών. Η μηχανική μάθηση χρησιμοποιείται πρωτίστως για την αυτοματοποίηση και βελτιστοποίηση του ελέγχου, την πρόβλεψη σφαλμάτων λογισμικού και μετρικών ποιότητας, και την εκτίμηση του κόστους και της δουλειάς του έργου. Ωστόσο, παραμένουν ερευνητικές ευκαιρίες στην κατασκευή λογισμικού, τη διαχείριση των παραμέτρων των συστημάτων, τα μοντέλα και τις μεθόδους, ενώ υπάρχει κρίσιμη ανάγκη για περισσότερες εμπειρικές και βιομηχανικές μελέτες που να αξιολογούν τις τεχνικές μηχανικής μάθησης στα πλαίσια της τεχνολογίας λογισμικού. Τα ευρήματα δείχνουν ότι η έλλειψη εμπειρικών μελετών επικύρωσης, συγκριτικών αναλύσεων και βιομηχανικών δοκιμών αποτελεί σημαντικό εμπόδιο για την πρακτική υιοθέτηση των τεχνικών μηχανικής μάθησης στην τεχνολογία λογισμικού. Η τέταρτη συνεισφορά εξερευνά την εφαρμογή των Μεγάλων Γλωσσικών Μοντέλων (LLMs) σε εργασίες συμπλήρωσης κώδικα, με ιδιαίτερη εστίαση στην κατανόηση της αυτοπεποίθησης του μοντέλου μέσω ανάλυσης σύγχυσης (perplexity). Αυτή η εργασία παρέχει την πρώτη ανάλυση σύγχυσης κώδικα μεγάλης κλίμακας μετρώμενη μέσω LLMs και εστιασμένη σε γλώσσες προγραμματισμού, προσφέροντας πληροφορίες για το πώς η αυτοπεποίθηση ενός μοντέλου ποικίλλει μεταξύ των γλωσσών προγραμματισμού και πώς αυτό σχετίζεται με την ποιότητα και την ορθότητα του κώδικα. Η μελέτη αποκαλύπτει ότι η σύγχυση του κώδικα ποικίλλει σημαντικά μεταξύ των γλωσσών προγραμματισμού, με τις γλώσσες με ισχυρό σύστημα τύπων να παρουσιάζουν γενικά χαμηλότερη σύγχυση από τις γλώσσες σεναρίων. Οι γλώσσες προγραμματισμού υψηλού επιπέδου εμφανίζουν χαμηλότερη σύγχυση από τις γλώσσες χαμηλού επιπέδου, ενώ η γλωσσική κατανομή στα δεδομένα εκπαίδευσης δε φαίνεται να επηρεάζει σημαντικά τις μετρήσεις σύγχυσης. Επιπλέον, η σύγχυση του κώδικα εξαρτάται από το χρησιμοποιούμενο LLM, με μοντέλα από την ίδια οικογένεια να τείνουν να έχουν παρόμοιες κατατάξεις. Ωστόσο, η σύγχυση του κώδικα είναι ανεξάρτητη από το σύνολο δεδομένων κώδικα που χρησιμοποιείται για την αξιολόγηση αυτής. Συνολικά, οι παραπάνω συνεισφορές παρέχουν μια εμπεριστατωμένη κατανόηση του πώς η έρευνα της τεχνολογίας λογισμικού μεταφράζεται σε πρακτικές εφαρμογές και πώς οι αναδυόμενες τεχνολογίες μπορούν να ενισχύσουν τις πρακτικές ανάπτυξης λογισμικού. Τα ευρήματα δείχνουν ότι η έρευνα της τεχνολογίας λογισμικού έχει προσφέρει σημαντικές συνεισφορές στους επαγγελματίες, αν και υπάρχουν ευκαιρίες για ενίσχυση της εμπειρικής επικύρωσης, βελτίωση του σχεδιασμού των ερευνητικών τεχνουργημάτων, και επέκταση της διεπιστημονικής συνεργασίας. Οι συστηματικές προσεγγίσεις που χρησιμοποιήθηκαν σε αυτή τη διατριβή διασφαλίζουν ότι τα ευρήματα είναι ισχυρά και μπορούν να αναπαραχθούν ή να επεκταθούν από άλλους ερευνητές. Η παρούσα έρευνα θέτει μια βάση για τις μελλοντικές ερευνητικές κατευθύνσεις και παρέχει πολύτιμες γνώσεις στους ερευνητές, τους επαγγελματίες, τους φορείς χρηματοδότησης και την ευρύτερη κοινότητα της τεχνολογίας λογισμικού, προκειμένου να διασφαλιστεί ότι οι ακαδημαϊκές προσπάθειες θα συνεχίσουν να συνεισφέρουν ουσιωδώς στις βιομηχανικές ανάγκες και τις κοινωνικές προκλήσεις.
περισσότερα
Περίληψη σε άλλη γλώσσα
Software engineering research has evolved significantly over the past five decades, producing a substantial body of knowledge, tools, and methodologies that underpin the multi-trillion dollar software industry. However, as the field has grown in complexity and scope, critical questions have emerged about how effectively this research translates into practical impact, what role emerging technologies like machine learning (ML) play in advancing software engineering practices, and how research artifacts contribute meaningfully to the broader research community. This dissertation addresses these fundamental questions through four interconnected research strands that systematically examine different aspects of software engineering research impact, methodology, and practice. The first contribution investigates the usage and impact of data papers published in the Mining Software Repositories (MSR) conference. This study reveals that while data papers have been widely adopted by the research c ...
Software engineering research has evolved significantly over the past five decades, producing a substantial body of knowledge, tools, and methodologies that underpin the multi-trillion dollar software industry. However, as the field has grown in complexity and scope, critical questions have emerged about how effectively this research translates into practical impact, what role emerging technologies like machine learning (ML) play in advancing software engineering practices, and how research artifacts contribute meaningfully to the broader research community. This dissertation addresses these fundamental questions through four interconnected research strands that systematically examine different aspects of software engineering research impact, methodology, and practice. The first contribution investigates the usage and impact of data papers published in the Mining Software Repositories (MSR) conference. This study reveals that while data papers have been widely adopted by the research community, there are opportunities to improve their documentation and accessibility. Data papers constitute valuable research artifacts, with each paper being strongly cited on average 5.4 times, indicating their utility for conducting empirical studies. The MSR data showcase track has successfully catalyzed the publication of data papers, with data papers constituting more than 15% of MSR publications in 2019. However, product-oriented data papers outnumber process-oriented ones, while certain SWEBOK knowledge areas, such as software requirements, economics, and engineering models and methods, are underrepresented. The second contribution examines the practical impact of software engineering research through a novel combination of patent analysis and author surveys. This work demonstrates that software engineering researchers have successfully equipped practitioners with various tools, processes, and methods, and improved many existing products. Practitioner-oriented publication venues appear more impactful than researcher-oriented ones, while insufficient funding and unfavorable cost-benefit trade-offs are the main obstacles to research adoption. The patent analysis reveals that while only a limited number of patents cite software engineering research papers, almost half of the patents that do cite software engineering papers have been renewed, indicating their commercial value. Cross-disciplinary software engineering areas, particularly those related to programming languages, compilers, and management, have the most significant practical impact. The third contribution provides a comprehensive tertiary study of ML applications in software engineering, revealing that while ML techniques have been extensively applied across various software engineering tasks, significant gaps remain in their empirical validation and industrial adoption. ML is primarily employed for automating and optimizing testing, predicting software faults and quality metrics, and estimating project costs and effort. However, research opportunities exist in software construction, configuration management, and models and methods, while there is a critical need for more empirical and industrial studies evaluating ML techniques in software engineering contexts. The findings demonstrate that the lack of empirical validation studies, comparative analyses, and industrial trials represents a significant barrier to the practical adoption of ML techniques in software engineering. The fourth contribution explores the application of Large Language Models (LLMs) to code completion tasks, with a particular focus on understanding model confidence through perplexity analysis. This work provides the first large-scale, language-specific analysis of code perplexity measured through LLMs, offering insights into how model confidence varies across programming languages and how this relates to code quality and correctness. The study reveals that code perplexity varies significantly across programming languages, with strongly-typed languages generally exhibiting lower perplexity than scripting languages. High-level programming languages show lower perplexity than low-level ones, while the language distribution in training data does not appear to significantly affect perplexity measurements. Furthermore, code perplexity depends on the employed LLM, with models from the same family tending to have similar rankings, but is independent of the specific code dataset used for its evaluation. Altogether, these contributions provide a comprehensive understanding of how software engineering research translates into practical applications and how emerging technologies can enhance software development practices. The findings demonstrate that software engineering research has provided significant contributions to practice, though opportunities exist for enhancing empirical validation, improving research artifact design, and expanding cross-disciplinary collaboration. The systematic approaches employed throughout this dissertation ensure that the findings are robust and can be replicated or extended by other researchers. This research establishes a foundation for future research directions and provides valuable insights for researchers, practitioners, funding agencies, and the broader software engineering community to ensure that academic efforts continue to contribute meaningfully to industry needs and societal challenges.
περισσότερα