Ανάπτυξη μηχανισμών αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λογισμικού αρχιτεκτονικής REST με τεχνικές μηχανικής λογισμικού οδηγούμενης από μοντέλα
Creators: name: Ζολώτας, Χριστόφορος Κ.
Publisher: name: Aristotle University of Thessaloniki
Year: 2020
Subjects: Αυτοματοποιημένη Μηχανική Λογισμικού
Μηχανική Λογισμικού Οδηγούμενη από Μοντέλα
Διαδικτυακές υπηρεσίες REST
Αυτοματοποίηση μη λειτουργικών πτυχών λογισμικού
Automated Software Engineering
Model Driven Engineering
RESTful Web Services
Automation of non-functional Software aspects

description: Όπως έχει αποτυπωθεί στην ιστορία μέσω των συντελεσθεισών βιομηχανικών επαναστάσεων, βαρύνουσας σημασίας στην εξέλιξη της ανθρωπότητας υπήρξε, και συνεχίζει να είναι, η αυτοματοποίηση διαδικασιών στην επαγγελματική και ιδιωτική ζωή του ανθρώπου. Η εξάπλωση της τεχνολογίας σε αυτές και η δεσπόζουσα θέση του διαδικτυακού «παράλληλου σύμπαντος», οδηγούν στην ψηφιοποίηση ολοένα και περισσότερων διαδικασιών, που επομένως βασίζονται σε Λογισμικό. Συνεπώς, το στοίχημα κάλυψης της ταχέως αυξανόμενης ανάγκης ψηφιοποίησης αποτελεί η έτι περαιτέρω αυτοματοποίηση της παραγωγής Λογισμικού μέσω της ανάπτυξης νέων μεθοδολογιών, στοχεύοντας στην παραγωγή ορθού και ποιοτικού Λογισμικού. Στο πλαίσιο αυτό, η παρούσα διατριβή πραγματεύεται τη σχεδίαση και εφαρμογή καινοτόμων μηχανισμών για την αυτοματοποίηση των διαδικασιών παραγωγής λογισμικού, εν προκειμένω RESTful Διαδικτυακών Υπηρεσιών. Προς επίτευξη των στόχων αυτής (μεταξύ άλλων και η ανάπτυξη αντίστοιχου Μηχανισμού Αυτοματοποίησης), χρησιμοποιείται ως μέσο αυτοματοποίησης η Μηχανική Λογισμικού Οδηγούμενη από Μοντέλα, με τους βασικούς δομικούς λίθους της οποίας (μετα-μοντέλα και μετασχηματισμούς) επιχειρείται η επίτευξη αυτοματοποίησης στο ευρύτερο πεδίο των RESTful διαδικτυακών υπηρεσιών. Στη συνεισφορά της παρούσας διατριβής στον τομέα της αυτοματοποίησης συγκαταλέγεται καταρχάς, η δισδιάστατη Αρχιτεκτονική Μηχανισμών Αυτοματοποίησης με χρήση Μηχανικής Λογισμικού Οδηγούμενης από Μοντέλα, η οποία διευκολύνει την παραλληλοποίηση της ανάπτυξής τους, τη μείωση της πολυπλοκότητάς τους και αυξάνει την συντηρησιμότητα και επεκτασιμότητά τους. Επιπλέον, συνοδεύεται από μία συνεκτική στρατηγική διάσπασης του συνολικού προβλήματος σε μικρότερα, τόσο σε επίπεδο μετα-μοντέλων όσο και σε επίπεδο μετασχηματισμών, λαμβάνοντας υπόψιν τα εγγενή αίτια πολυπλοκότητας της μεθοδολογίας, προκειμένου να διευκολύνει επιπλέον την κατασκευή τους. Ακολούθως, συνεισφέρει μετα-μοντέλα και μετασχηματισμούς που αφορούν την αυτοματοποίηση των πτυχών των Διαδικτυακών Υπηρεσιών με τις οποίες ασχολείται όπως: α) δόμηση συστημάτων αρχιτεκτονικής REST, β) με δυνατότητες ταυτοποίησης χρήστη, γ) εξουσιοδότησης χρήστη, δ) αυτόματης εφαρμογής Προτύπων Σχεδίασης για την ικανοποίηση μη λειτουργικών πτυχών αυτών, ε) αναζήτησης δεδομένων, ζ) αλληλεπίδρασης με υπάρχουσες υπηρεσίες στο Διαδίκτυο και, τέλος, η) δυνατότητας μετασχηματισμού υπηρεσιών σε RESTful με ταυτόχρονη διατήρηση των δεδομένων τους. Τέλος, η παρούσα διατριβή απαντά σε ερευνητικά ερωτήματα που άπτονται: α) της βελτίωσης της παραγωγικότητας των Μηχανικών Λογισμικού για την παραγωγή RESTful Διαδικτυακών Υπηρεσιών, β) της βελτίωσης της παραγωγικότητάς τους κατά την εφαρμογή Προτύπων Σχεδίασης για την επίλυση συχνά συναντώμενων προβλημάτων, γ) την εκτίμηση του χάσματος προσπάθειας ανάμεσα σε χρήστες με/χωρίς το απαιτούμενο τεχνικό υπόβαθρο, δ) το ποσοστό αποδοχής ανάλογων μεθοδολογιών, και ε) της επιθυμίας η εφαρμογής τους και σε άλλα προβλήματα.
description: The former Industrial Revolutions have historically proven that the evolution of humanity goes through the automation of processes in both professional and private facets of human life. The technological advancements that permeate both of these facets accompanied by the dominance of the Internet, have led to the digitization of an increasing number of processes, which in turn rely mostly on Software. Hence, the principal challenge to cope with this increasing need for Software throughout modern societies is to further increase our capabilities to automate the Software production, by evolving existing or inventing new Software Engineering methodologies, in order to facilitate the even faster production of qualitative Software. In this context, this dissertation focuses on the design and implementation of innovative mechanisms aiming to automate the process of producing Software in the realm of RESTful Web Services. In order to achieve this goal, on top of the production of an appropriate Automation Mechanism for RESTful Services, Model Driven Engineering (MDE) has been used as means of Automation. Its principal building blocks (meta-models and transformations) have been used to unambiguously define and automate the production of RESTful Web Services applications. This dissertation contributes to the realm of Automation by introducing a new Two-Dimensional Architecture for Automation Mechanisms, which employs Model Driven Engineering and facilitates the in-parallel design and development of them, thus reducing the involved complexity and increasing their extensibility. On top of that, the architecture builds upon a strategy of problem domain decomposition to smaller ones, both at the level of meta-models and transformations, which takes into account the inherent roots of complexity in MDE methodologies. This way the proposed architecture alleviates the effect of MDE methodologies on Software Engineers’ performance and further facilitates the construction of Automation Mechanisms. It also contributes a set of meta-models and transformation chains that have to do with the automation of several aspects of the REST domain that include: a) building Web Services that are fully compliant with the REST design, b) authentication capabilities, c) authorization capabilities, d) automated application of Design Patterns so as to satisfy design goals in modeling time, e) Web Service data searching, f) interaction with existing services in the Web and g) the capability to transform existing Web Services that are not RESTful, to embed the REST design qualities, while still retaining their data. Finally, this dissertation provides answers to several research questions related to the application of MDE in REST domain. These include: a) the productivity gains in the realm of RESTful Services design and implementation, as well as b) on automated application of (adapted to REST) Design Patterns, c) the reduction in the effort gap by automating the application of Design Patterns between users that have or lack the required technological background, d) the acceptance rate and e) the desirability of such methodologies as motivation to apply them in other problem domains as well.