Abstract : | Οι βάσεις δεδομένων και τα συστήματα διαχείρισης τους αποτελούν αναπόσπαστο στοιχείο της αρχιτεκτονικής πλειοψηφίας των σύγχρονων εφαρμογών λογισμικού. Η αλληλεπίδραση μεταξύ του πηγαίου κώδικα αυτού του είδους των εφαρμογών, που είναι γνωστές ως εφαρμογές βάσεων δεδομένων, και της υποκείμενης βάσης δεδομένων εγείρει ένα πλήθος ερωτημάτων αναφορικά με την τεχνολογία λογισμικού τους. Παρόλη την ευρεία διάδοση και χρήση των εφαρμογών αυτών, το εν λόγω ερευνητικό αντικείμενο παραμένει σχετικά ανεξερεύνητο. Η παρούσα διατριβή εισάγει νέες τεχνικές για τον αυτόματο έλεγχο ορθότητας και τη συντήρηση των εφαρμογών βάσεων δεδομένων, καθώς επίσης και ένα σύστημα πολλαπλών πρακτόρων (multi agent system) λογισμικού που διευκολύνει τη χρήση των τεχνικών αυτών σε κατανεμημένα περιβάλλοντα, όπως αυτό του παγκόσμιου ιστού. Πιο συγκεκριμένα, η διατριβή εισάγει δύο νέες τεχνικές παραγωγής δοκιμαστικών περιπτώσεων για τον έλεγχο ορθότητας των εφαρμογών βάσεων δεδομένων, οι οποίες λαμβάνουν υπόψη τις ιδιαιτερότητες των προγραμμάτων με ενσωματωμένες εντολές SQL μέσω της χρήσης ενός γράφου που αναπαριστά με ακρίβεια τη ροή ελέγχου και τη ροή δεδομένων τους. Επιπρόσθετα, και βάσει των παραγόμενων δοκιμαστικών περιπτώσεων, ορίζει νέα κριτήρια για την επάρκεια του ελέγχου ορθότητας τους και διατυπώνει νέες μετρικές για την αξιολόγηση της ποιότητας του πηγαίου κώδικα των εφαρμογών αυτών. Αναφορικά με τη συντήρηση των εφαρμογών βάσεων δεδομένων, η διατριβή πραγματεύεται το ζήτημα της ανάλυσης των επιπτώσεων από αλλαγές του σχήματος της βάσης δεδομένων στον πηγαίο κώδικά τους και εισάγει μια νέα μέθοδο που βασίζεται στην τεχνική του τεμαχισμού προγράμματος (program slicing). Παράλληλα, χρησιμοποιεί συνδυαστικά τα αποτελέσματα των νέων τεχνικών ελέγχου ορθότητας και των κριτηρίων επάρκειας του για την περαιτέρω ανάλυση των επιπτώσεων των αλλαγών αυτών και ως προς τις παραχθείσες δοκιμαστικές περιπτώσεις. Ορίζει επίσης νέες μετρικές που αποσκοπούν στην αποτίμηση της συντηρησιμότητας (maintainability) των εφαρμογών βάσεων δεδομένων απέναντι σε τέτοιου είδους αλλαγές. Τέλος, και προκειμένου να καταστεί δυνατή η εφαρμογή των προαναφερθέντων τεχνικών σε κατανεμημένα περιβάλλοντα, η διατριβή εισάγει ένα σύστημα πολλαπλών πρακτόρων λογισμικού, ορίζοντας την αρχιτεκτονική, την οντολογία, καθώς και τα επιμέρους χαρακτηριστικά των πρακτόρων που το συνιστούν. Database systems lie at the core of almost every modern software application. The interaction between the application source code and the underlying database management system raises a number of software engineering issues concerning this type of applications, the so called database applications. Despite the substantial interest and importance that databases gained in modern software applications there is relatively little research work in particular as far as testing and maintaining such applications is concerned. This thesis introduces new techniques for the automatic testing and maintenance of database applications, as well as a multi-agent system that facilitates the deployment of these techniques in distributed environments, such as the world wide web. In this context, two new techniques for the automatic generation of test cases for database applications are described. Both techniques successfully address the peculiarities of programs with embedded SQL statements by utilizing a graph that accurately represents their control and data flow information. Furthermore, the derived test cases serve as a basis for the definition of new test adequacy criteria and new metrics for the assessment of the source code quality. With regard to the maintenance of database applications, the thesis introduces an impact analysis approach that aims to support software maintainers in performing major maintenance tasks, such as source code corrections and regression testing, in the occurrence of database schema changes. The presented approach is founded on program slicing and is two-folded: the impact is analyzed in terms of both the affected source code statements and the test suites of the database application. In addition, new metrics are defined for assessing the maintainability of such applications against the database schema changes. Finally, and in order to conform to the requirements of the distributed domain of database applications, the multi-agent system technology is exploited. In particular, the architecture, the ontology and the idioms of the specialized agents constituting the multi-agent system are defined and presented.
|
---|