Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λογισμικού αρχιτεκτονικής REST με τεχνικές Μηχανικής Λογισμικού Οδηγούμενης από Μοντέλα
Όπως έχει αποτυπωθεί στην ιστορία μέσω των συντελεσθεισών βιομηχανικών
επαναστάσεων, βαρύνουσας σημασίας στην εξέλιξη της ανθρωπότητας υπήρξε, και συνεχίζει να είναι, η αυτοματοποίηση διαδικασιών στην επαγγελματική και ιδιωτική ζωή του ανθρώπου. Η εξάπλωση της τεχνολογίας σε αυτές και η δεσπόζουσα θέση του διαδικτυακού «παράλληλου σύμπαντος», οδηγούν στην ψηφιοποίηση ολοένα και περισσότερων διαδικασιών, που επομένως βασίζονται σε Λογισμικό. Συνεπώς, το στοίχημα κάλυψης της ταχέως αυξανόμενης ανάγκης ψηφιοποίησης αποτελεί η έτι περαιτέρω αυτοματοποίηση της παραγωγής Λογισμικού μέσω της ανάπτυξης νέων μεθοδολογιών, στοχεύοντας στην παραγωγή ορθού και ποιοτικού Λογισμικού. Στο πλαίσιο αυτό, η παρούσα διατριβή πραγματεύεται τη σχεδίαση και εφαρμογή καινοτόμων μηχανισμών για την αυτοματοποίηση των διαδικασιών παραγωγής λογισμικού, εν προκειμένω RESTful Διαδικτυακών Υπηρεσιών. Προς επίτευξη των στόχων αυτής (μεταξύ άλλων και η ανάπτυξη αντίστοιχου Μηχανισμού Αυτοματοποίησης), χρησιμοποιείται ως μέσο αυτοματοποίησης η Μηχανική Λογισμικού Οδηγούμενη από Μοντέλα, με τους βασικούς δομικούς λίθους της οποίας (μετα-μοντέλα και μετασχηματισμούς) επιχειρείται η επίτευξη αυτοματοποίησης στο ευρύτερο πεδίο
των RESTful διαδικτυακών υπηρεσιών.
Στη συνεισφορά της παρούσας διατριβής στον τομέα της αυτοματοποίησης
συγκαταλέγεται καταρχάς, η διδιάστατη Αρχιτεκτονική Μηχανισμών αυτοματοποίησης με χρήση Μηχανικής Λογισμικού Οδηγούμενης από Μοντέλα, η οποία διευκολύνει την παραλληλοποίηση της ανάπτυξής τους, τη μείωση της πολυπλοκότητάς τους και αυξάνει την συντηρησιμότητα και επεκτασιμότητά τους. Επιπλέον, συνοδεύεται από μία συνεκτική στρατηγική διάσπασης του συνολικού προβλήματος σε μικρότερα, τόσο σε επίπεδο μετα-μοντέλων όσο και σε επίπεδο μετασχηματισμών, λαμβάνοντας υπόψιν τα εγγενή αίτια πολυπλοκότητας της μεθοδολογίας, προκειμένου να διευκολύνει επιπλέον την κατασκευή τους.
Ακολούθως, συνεισφέρει μετα-μοντέλα και μετασχηματισμούς που αφορούν την
αυτοματοποίηση των πτυχών των Διαδικτυακών Υπηρεσιών με τις οποίες ασχολείται όπως: α) δόμηση συστημάτων αρχιτεκτονικής REST, β) με δυνατότητες ταυτοποίησης χρήστη, γ) εξουσιοδότησης χρήστη, δ) αυτόματης εφαρμογής Προτύπων Σχεδίασης για την ικανοποίηση μη λειτουργικών πτυχών αυτών, ε) αναζήτησης δεδομένων, ζ) αλληλεπίδρασης με υπάρχουσες υπηρεσίες στο Διαδίκτυο και, τέλος, η) δυνατότητας μετασχηματισμού υπηρεσιών σε RESTful με ταυτόχρονη διατήρηση των δεδομένων τους.
Τέλος, η παρούσα διατριβή απαντά σε ερευνητικά ερωτήματα που άπτονται: α) της βελτίωσης της παραγωγικότητας των Μηχανικών Λογισμικού για την παραγωγή RESTful Διαδικτυακών Υπηρεσιών, β) της βελτίωσης της παραγωγικότητάς τους κατά την εφαρμογή Προτύπων Σχεδίασης για την επίλυση συχνά συναντώμενων προβλημάτων, γ) την εκτίμηση του χάσματος προσπάθειας ανάμεσα σε ...
Autonomous car position calculation with particle filters using traffic data ...ISSEL
More Related Content
Similar to Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λογισμικού αρχιτεκτονικής REST με τεχνικές Μηχανικής Λογισμικού Οδηγούμενης από Μοντέλα
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούISSEL
Similar to Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λογισμικού αρχιτεκτονικής REST με τεχνικές Μηχανικής Λογισμικού Οδηγούμενης από Μοντέλα (20)
Design and Development of an Authorization and Access Control Mechanism for C...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λογισμικού αρχιτεκτονικής REST με τεχνικές Μηχανικής Λογισμικού Οδηγούμενης από Μοντέλα
1. Christopher Zolotas | 07.02.20 1
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων
λογισμικού αρχιτεκτονικής REST με τεχνικές Μηχανικής Λογισμικού Οδηγούμενης από
Μοντέλα.
3. Christopher Zolotas | 07.02.20 3
Στόχος Αυτοματοποίησης
Από τη «βιοτεχνία» Λογισμικού Στη «βιομηχανία» Λογισμικού
Αύξηση Παραγωγικότητας, Βελτίωση Ποιότητας - Μικρότερο Κόστος, Λιγότερα σφάλματα.
3
4. Christopher Zolotas | 07.02.20 4
Μηχανική Λογισμικού Οδηγούμενη από Μοντέλα
Μοντέλο: απλουστευμένη αναπαράσταση συστήματος που διατηρεί τις επιθυμητές προς
ανάλυση ιδιότητες αυτού.
Μετα-μοντέλο: σύνολο όρων, των μεταξύ τους συσχετίσεων και των περιορισμών
αμφότερων. Ορίζει πλήρως το σύνολο των μοντέλων που είναι έγκυρα ως προς αυτό.
Αμφότερα τοποθετούνται (συνήθως) σε ένα από τα ακόλουθα αφαιρετικά επίπεδα:
Computational Independent (CIM), Platform Independent (PIM) και Platform Specific
(PSM)
Μετασχηματισμοί:
1. Model-to-Model (Μ2Μ): κανόνες μετασχηματισμού όρων μοντέλου εισόδου σε όρους
μοντέλου εξόδου.
2. Model-to-Text (Μ2Τ): κανόνες μετασχηματισμού όρων μοντέλου εισόδου σε κώδικα
5. Christopher Zolotas | 07.02.20 5
The big picture
Γραφική Διεπαφή Μηχανισμός Αυτοματοποίησης
Αυτοματοποίηση Μηχανικής Λογισμικού: Διαδικασία κατασκευής Μηχανισμού
Αυτοματοποίησης για μία ορισμένη κλάση συστημάτων Λογισμικού.
Αυτοματοποιημένη Μηχανική Λογισμικού: Χρήση Μηχανισμού Αυτοματοποίησης για
αυτόματη παραγωγή συστημάτων της κλάσης που αυτοματοποιήθηκε.
6. Christopher Zolotas | 07.02.20 6
Στόχοι διατριβής
1. Μείωση πολυπλοκότητας σχεδίασης και ανάπτυξης Μηχανισμών
Αυτοματοποίησης
2. Μοντελοποίηση και Αυτοματοποίηση παραγωγής REST συστημάτων με
δυνατότητες:
3. Πειραματική αξιολόγηση χρήσης Αυτοματοποιημένης Μηχανικής Λογισμικού
i) Αναζήτησης Δεδομένων
ii) Δικτύωσης με υπάρχοντα WS
iii) Ταυτοποίησης Χρήστη
iv) Εξουσιοδότησης Χρήστη
v) Αξιοποίησης Προτύπων Σχεδίασης
7. Christopher Zolotas | 07.02.20 7
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ
ΜΗΧΑΝΙΣΜΩΝ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ
Συνεισφορά:
1. Μετρικές και μεθοδολογία διάσπασης πεδίου προβλήματος
2. Δισδιάστατη Αρχιτεκτονική Μηχανισμών Αυτοματοποίησης
8. Christopher Zolotas | 07.02.20 8
Πολυπλοκότητα Μοντελοποίησης
Βασικά αίτια πολυπλοκότητας των διαδικασιών Αυτοματοποίησης της Μηχανικής
Λογισμικού:
1. Το πλήθος των προς μετα-μοντελοποίηση όρων
2.Το διευρυμένο τεχνολογικό υπόβαθρο του πεδίου προβλήματος
Από τη διάσπαση του πεδίου προβλήματος, στη δημιουργία μέτα-μοντέλων/μετασχηματισμών
και την κατασκευή του Μηχανισμού Αυτοματοποίησης.
9. Christopher Zolotas | 07.02.20 9
Συνήθεις μετρικές
Μετρική Επεξήγηση
S Μέγεθος μετα-μοντέλου
NSM Αριθμός μετα-μοντέλων εισόδου σε μετασχηματισμό Μ2Μ
NTM Αριθμός μετα-μοντέλων εξόδου σε μετασχηματισμό Μ2Μ
ASSM Μέσο μέγεθος μετα-μοντέλων εισόδου σε μετασχηματισμό Μ2Μ
ASTM Μέσο μέγεθος μετα-μοντέλων εξόδου από μετασχηματισμό Μ2Μ
CSM Κάλυψη όρων μετα-μοντέλων εισόδου σε μετασχηματισμό Μ2Μ
CTM Κάλυψη όρων μετα-μοντέλων εξόδου από μετασχηματισμό Μ2Μ
10. Christopher Zolotas | 07.02.20 10
Πρόσθετες Προτεινόμενες Μετρικές
Μετα-μοντέλα:
Μετασχηματισμοί Μ2Μ:
E (Expertise): Ποσοστό όρων μετα-μοντέλου που η ομάδα ανάπτυξης έχει το
απαιτούμενο τεχνικό υπόβαθρο.
SME (Source meta-model expertise): Ποσοστό όρων του μετα-μοντέλου-πηγή
που η ομάδα ανάπτυξης έχει το απαιτούμενο τεχνικό υπόβαθρο.
TME (Target meta-model expertise): Ποσοστό όρων του μετα-μοντέλου-στόχος
που η ομάδα ανάπτυξης έχει το απαιτούμενο τεχνικό υπόβαθρο.
11. Christopher Zolotas | 07.02.20 11
Βασικές περιπτώσεις ύπαρξης τεχνικού υποβάθρου
Περίπτωση Διαθεσιμότητα τεχνικού υποβάθρου
Α Πλήρης, για όλα τα γνωστικά υποπεδία
Β Πλήρης για κάποια γνωστικά υποπεδία, μηδενική για τα υπόλοιπα
Γ Μερική, για όλα τα γνωστικά υποπεδία
Δ Μηδενική, για όλα τα γνωστικά υποπεδία
Βασικές περιπτώσεις τεχνικού υποβάθρου της ομάδας υλοποίησης ενός
Μηχανισμού Αυτοματοποίησης.
13. Christopher Zolotas | 07.02.20 13
Διάγραμμα Σχεδιαστικών Αποφάσεων (1/2)
Πλήρης
Διαθεσιμότητα
Καθόλου
ή
μόνο
για
ένα
ΥΠ
Διάσπαση με
βάση μέγεθος
Διάσπαση με
βάση υπόβαθρο
Διάσπαση με
βάση μέγεθος
Μέγεθος βέλτιστο?
Βέλτιστο ή μικρότερο
Μεγαλύτερο
Μέγεθος βέλτιστο?
Βέλτιστο ή μικρότερο
Μεγαλύτερο
14. Christopher Zolotas | 07.02.20 14
Διάγραμμα Σχεδιαστικών Αποφάσεων (2/2)
Μερική
Διαθεσιμότητα
για
όλα
τα
ΥΠ
Διάσπαση με
βάση υπόβαθρο,
οι άγνωστοι
χωριστά
Διαμοιρασμός με
βάση μέγεθος ή
εξαρτήσεις
Μέγεθος γνωστών
ΥΠ βέλτιστο?
Βέλτιστο
Μεγαλύτερο
Μέγεθος άγνωστου
ΥΠ βέλτιστο?
Μικρότερο
Διαμοιρασμός με βάση
μέγεθος ή εξαρτήσεις ή
διάσπαση
Μεγαλύτερο
Διάσπαση με
βάση εξαρτήσεις
Μικρότερο
Μέγεθος
άγνωστου
ΥΠ βέλτιστο?
Μερικός/Πλήρης
διαμοιρασμός αγνώστων
στα γνωστά ΥΠ
Πλήρης διαμοιρασμός ή μερικός
διαμοιρασμός και διάσπαση με
βάση μέγεθος ή εξαρτήσεις
Βέλτιστο
ή μικρότερο
15. Christopher Zolotas | 07.02.20 15
Εφαρμογή
Πιθανός διαχωρισμός με βάση υψηλή συνεκτικότητα και χαμηλή σύζευξη
CASE S E (%)
REST CIM 13 100
REST PIM 83 100
REST PSM 72 100
SEC CIM 62 82.86
SEC PIM 85 82.85
SEC PSM 78 75.64
SEARCH CIM 14 78.57
SEARCH PIM 20 75
SEARCH PSM 21 71.43
EXT CIM 35 94.29
EXT PIM 41 90.24
EXT PSM 41 90.24
MOD CIM 24 79.17
MOD PIM 23 82.61
MOD PSM 23 82.61
DES CIM 73 64.38
DES PIM 80 66.25
DES PSM 83 65.06
16. Christopher Zolotas | 07.02.20 16
Εφαρμογή
CASE S E (%)
REST CIM 13 100
REST PIM 83 100
REST PSM 72 100
SEC CIM 62 82.86
SEC PIM 85 82.85
SEC PSM 78 75.64
SEARCH CIM 14 78.57
SEARCH PIM 20 75
SEARCH PSM 21 71.43
EXT CIM 35 94.29
EXT PIM 41 90.24
EXT PSM 41 90.24
MOD CIM 24 79.17
MOD PIM 23 82.61
MOD PSM 23 82.61
DES CIM 73 64.38
DES PIM 80 66.25
DES PSM 83 65.06
}
CASE S E (%)
AUTH CIM 21 85.71
AUTH PIM 20 85
AUTH PSM 21 80.95
ABAC CIM 41 80.49
ABAC PIM 65 81.54
ABAC PSM 57 73.68
Διάσπαση του υποπεδίου
ασφάλειας σε υποπεδία
ταυτοποίησης και
εξουσιοδότησης ABAC.
Πιθανός διαχωρισμός με βάση υψηλή συνεκτικότητα και χαμηλή σύζευξη
17. Christopher Zolotas | 07.02.20 17
Εφαρμογή
CASE S E (%)
REST CIM 13 100
REST PIM 83 100
REST PSM 72 100
SEC CIM 62 82.86
SEC PIM 85 82.85
SEC PSM 78 75.64
SEARCH CIM 14 78.57
SEARCH PIM 20 75
SEARCH PSM 21 71.43
EXT CIM 35 94.29
EXT PIM 41 90.24
EXT PSM 41 90.24
MOD CIM 24 79.17
MOD PIM 23 82.61
MOD PSM 23 82.61
DES CIM 73 64.38
DES PIM 80 66.25
DES PSM 83 65.06
}
Στην περίπτωση του REST
ωστόσο, λόγω υψηλής
συνεκτικότητας του
υποπεδίου, πιθανώς η
διάσπαση δεν ειναι καλή
επιλογή.
Πιθανός διαχωρισμός με βάση υψηλή συνεκτικότητα και χαμηλή σύζευξη
18. Christopher Zolotas | 07.02.20 18
2D MDE - Αρχιτεκτονική
Αποδόμηση σε δύο άξονες:
1. Υποπεδίο εφαρμογής
2. Αφαιρετικό Επίπεδο
19. Christopher Zolotas | 07.02.20 19
2D-MDE - Μετα-μοντέλα
Δομή Μετα-μοντέλου
{C}: Σύνολο όρων υποπεδίου Ζ
{Α}: Σύνολο συσχετίσεων όρων υποπεδίου Ζ
{R}: Σύνολο αναφορών σε όρους άλλων υποπεδίων
{E}: Σύνολο αναφερόμενων όρων άλλων υποπεδίων
Περιγραφή ενός μετα-μοντέλου
20. Christopher Zolotas | 07.02.20 20
2D-MDE - Μετασχηματισμοί (1/2)
Απαιτούν μέτα-
μοντέλα Ζ επιπέδου
Χ και Χ+/-1
21. Christopher Zolotas | 07.02.20 21
2D-MDE - Μετασχηματισμοί (2/2)
1. Απαιτούν μέτα-
μοντέλα Υ επιπέδου
Χ και Χ+/-1
2. Eπαναχρηση
κανόνων μεταβολής
επιπέδου αφαίρεσης
υποπεδίου Y
22. Christopher Zolotas | 07.02.20 22
Συνολικά
Σύνολο Μετασχηματισμών Μ2Μ
Σύνολο Μετα-μοντέλων
24. Christopher Zolotas | 07.02.20 24
ΜΕΤΑ-ΜΟΝΤΕΛΟΠΟΙΗΣΗ
ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ REST
Συνεισφορά:
1. Μετα-μοντελοποίηση REST
2. Μετα-μοντελοποίηση αναζήτησης δεδομένων για REST
3. Μετα-μοντελοποίηση αλληλεπίδρασης με υπάρχουσες υπηρεσίες για REST
4. Μετα-μοντελοποίηση μετασχηματισμού υπαρχουσών υπηρεσιών σε REST.
5. Μετα-μοντελοποίηση ταυτοποίησης χρήστη για REST
6. Μετα-μοντελοποίηση εξουσιοδότησης χρήστη για REST
25. Christopher Zolotas | 07.02.20 25
2D MDE - Αρχιτεκτονική στο πεδίο της διατριβής
Όλα τα υποπεδία εξαρτώνται
από το REST.
Το ABAC εξαρτάται επιπλέον
από το υποπεδίο
ταυτοποίησης χρήστη.
26. Christopher Zolotas | 07.02.20 26
REST CIM Μετα-μοντέλο
A/A Περιορισμός
1 Μοναδικά ονόματα Πόρων (unique URIs)
2 Το πολύ ένα CRUDActivity ανά CRUDVerb.
3
Οι αλγοριθμοκεντρικοί Πόροι δεν επιτρέπεται
να έχουν Properties.
4
Οι δεδομενοκεντρικοί Πόροι πρέπει να έχουν
τουλάχιστoν ένα Property.
Based on
Richardson’s
Maturity Model
Δυνατότητα μοντελοποίησης:
1. Ποροστρεφούς συστήματος με Πόρους δεδομένων ή αλγορίθμων
2. Διαδικτυακών endpoints που δεν παραβιάζουν σημασιολογικά τα HTTP ρήματα
3. Πολλαπλών αναπαραστάσεων ανά Πόρο
4. Υπερσυνδέσμων ανάμεσα στους Πόρους (HATEOAS)
27. Christopher Zolotas | 07.02.20 27
Μετα-μοντέλο CIM Αναζήτησης Δεδομένων
A/A Περιορισμός
1 Τουλάχιστον ένας όρος SearchResource.
2
Τουλάχιστον ένας όρος SearchableResource.
3
Τουλάχιστον ένας όρος SearchableProperty ανά
SearchableResource.
4
Κάθε SearchResource αναφέρεται σε
αλγοριθμοκεντρικό Πόρο.
5
Κάθε SearchableResource αναφέρεται σε
δεδομενοκεντρικό Πόρο.
Δυνατότητα μοντελοποίησης:
1. Πόρων-Αναζήτησης δεδομένων
2. Δυναμικού πεδίου αναζήτησης ανά Πόρο-Αναζήτησης
3. Αποκρίσεων συστήματος με υπερσυνδέσμους ανά αποτέλεσμα αναζήτησης
28. Christopher Zolotas | 07.02.20 28
Μετα-μοντέλο CIM αλληλεπίδρασης με άλλες ΔΥ
A/A Περιορισμός
1
Ύπαρξη τουλάχιστον ενός όρου
RESTClientResource.
2
Κάθε RESTClientResource αναφέρεται σε ακριβώς
ένα αλγοριθμοκεντρικό Πόρο.
Δυνατότητα μοντελοποίησης:
1. Πόρων-Πελατών REST που αλληλεπιδρούν με Διαδικτυακές Υπηρεσίες τρίτων.
2. Αναδρομικών Δομών δεδομένων εισόδου-εξόδου της εξωτερικής ΔΥ
3. Διακράτησης δεδομένων-αποκρίσεων εξωτερικής ΔΥ στην οικεία ΒΔ
29. Christopher Zolotas | 07.02.20 29
Ασφάλεια στον κόσμο του REST
Στόχος η παραγωγή REST
συστημάτων που:
1. Επιτρέπουν πρόσβαση μόνο στους
Πόρους που ο αιτών δικαιούται
2. Οι αποκρίσεις τους περιέχουν
υπερσυνδέσμους μόνο σε Πόρους
που ο αιτών έχει πρόσβαση.
30. Christopher Zolotas | 07.02.20 30
Μετα-μοντέλο CIM Ταυτοποίησης Χρήστη
A/A Περιορισμός
1 Περιέχεται ακριβώς ένας όρος AuthenticationModel.
2
Περιέχεται όρος AuthenticationMode για κάθε
CRUDActivity του μοντέλου.
3
Ο όρος AuthenticationModel συσχετίζεται με ακριβώς
2 όρους AuthenticationToken.
4
Ένας εκ των 2 όρων AuthenticationToken είναι τύπου
Password.
5
Ο όρος AuthenticationModel αναφέρεται απαραιτήτως
σε δεδομενοκεντρικό Πόρο.
Δυνατότητα μοντελοποίησης:
1. Πόρου-Μοντέλου ταυτοποίησης χρήση.
2. Επιπέδου ταυτοποίησης ανά endpoint της ΔΥ.
31. Christopher Zolotas | 07.02.20 31
Μετα-μοντέλο CIM Εξουσιοδότησης Χρήστη (ABAC)
A/A Περιορισμός
1 Περιέχεται ακριβώς ένας όρος AuthorizationSubject.
2
Συνθήκες με τελεστέους τύπου PARENT_RESOURCE
επιτρέπονται μόνο για Πόρους που έχουν Πόρους-γονείς.
3
Συνθήκες με τελεστέους τύπου CHILD_RESOURCE
επιτρέπονται μόνο για Πόρους που έχουν Πόρους-τέκνα.
4
Συνθήκες με τελεστέους τύπου INCLUDED_RESOURCE
επιτρέπονται μόνο για Πόρους που έχουν HTTP ενέργειες
τύπου POST/PUT.
Δυνατότητα μοντελοποίησης:
1. Πολιτικής εξουσιοδότησης ABAC ανά Πόρο
2. Πολιτικών εξουσιοδότησης συμβατών με το πρότυπο XACML
3. Πολιτικών εξουσιοδότησης by-design συμβατών με το REST.
32. Christopher Zolotas | 07.02.20 32
Μετα-μοντέλο CIM Μετασχηματισμού Υπαρχουσών ΔΥ
A/A Περιορισμός
1 Περιέχεται τουλάχιστον ένα όρος TargetRelation.
2
Κάθε όρος TargetRelation συσχετίζεται με τουλάχιστον
ένα TargetColumn
3
Οι τύποι δεδομένων των TargetColumn/SourceColumn
ενός όρου TargetRelation είναι συμβατοί.
4
Η δομή δεδομένων στόχος έχει συμβατή αναφορική
ακεραιότητα με αυτή της δομής-πηγής
Δυνατότητα μοντελοποίησης:
1. Αντιστοίχισης Σχέσεων ΒΔ-πηγής με Πόρους της νέας ΔΥ.
2. Μετατροπής τύπων δεδομένων
3. Αυτόματου έλεγχου αναφορικής ακεραιότητας της νέας δομής δεδομένων σε σχέση με την παλιά.
Συνδυαστικά με τα υπόλοιπα μέτα-μοντέλα, κατά το μετασχηματισμό επιτυγχάνεταιεπιπλέον: α)
αυτόματη δεικτοδότηση δεδομένων, 2) αυτόματη ενσωματωση επιθυμητής ταυτοποίησης χρήστη και
εξουσιοδότησης χρήστη.
33. Christopher Zolotas | 07.02.20 33
Case Scenario - Εφαρμογή RESTBlogs
Οι απαιτήσεις της εφαρμογής RESTBlogs επιτάσσουν οι χρήστες της να μπορούν να:
1. δημιουργούν ένα προσωπικό λογαριασμό, τον οποίο μόνο οι ίδιοι μπορούν να
ανανεώνουν.
2. γράφουν νέα Blogs (κείμενο, περιγραφή, τίτλο) τα οποία μπορούν να τα βλέπουν όλοι,
αλλά να επεξεργάζονται και να διαγράφουν μόνο ο συγγραφέας τους.
3. αναζητούν Blogs με βάση τον τίτλο και την περιγραφή τους.
4. ενημερώνονται για τις τρέχουσες καιρικές συνθήκες στην πόλη τους τις οποίες παρέχει
άλλη υπηρεσία στο διαδίκτυο.
35. Christopher Zolotas | 07.02.20 35
ΜΕΤΑ-ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΣΧΕΔΙΑΣΤΙΚΩΝ
ΠΤΥΧΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ REST
Συνεισφορά:
1. Προσαρμογή διαδεδομένων Προτύπων Σχεδίασης στην αρχιτεκτονική REST.
2. Μετα-μοντελοποίηση των προαναφερθέντων Προτύπων για REST.
36. Christopher Zolotas | 07.02.20 36
Αυτοματοποιημένη Σχεδίαση Χαμηλού Επιπέδου
Η συντριπτική πλειοψηφία των Μηχανισμών Αυτοματοποίησης για REST
επικεντρώνεται στην αυτοματοποίηση παροχής λειτουργικότητας, αγνοώντας
την παροχή δυνατότητας αυτοματοποιημένης σχεδίασης χαμηλού επιπέδου.
Ως αποτέλεσμα, όταν χρειάζεται στην πράξη:
1. είτε η προσαρμογή γίνεται με προγραμματισμό
2. είτε αγνοείται η αντίστοιχη Απαίτηση Χρηστών.
37. Christopher Zolotas | 07.02.20 37
Προσαρμογή Προτύπων στην αρχιτεκτονική REST
Όνομα Κατηγορία
Singleton Δημιουργίας
Prototype Δημιουργίας
Factory Method Δημιουργίας
Builder Δημιουργίας
Abstract Factory Δημιουργίας
Proxy Δομής
Adapter Δομής
Bridge Δομής
Decorator Δομής
Template Συμπεριφοράς
Chain of
Responsibility
Συμπεριφοράς
Observer Συμπεριφοράς
Memento Συμπεριφοράς
State Συμπεριφοράς
Strategy Συμπεριφοράς
Απλοποιημένη εκδοχή μετα-μοντέλου Προτύπων Δημιουργίας.
38. Christopher Zolotas | 07.02.20 38
Builder
A/A Περιορισμός
1 Εφαρμογή σε Πόρους που έχουν ιδιότητες
2 Κάθε αναπαράσταση πρέπει να έχει τουλάχιστον μία ιδιότητα
3
Οι αποκρίσεις πρέπει να περιέχουν υπερσυνδέσμους για τις διαθέσιμες αναπαραστάσεις
του Πόρου
Δυνατότητα μοντελοποίησης (ανά Πόρο):
1. πολλαπλών Αναπαραστάσεων (βασική ιδιότητα REST)
2. λήψης επιθυμητού υποσυνόλου δεδομένων Πόρου για α) ευχρηστία, β) επίδοση
δικτύου (μείωση όγκου δεδομένων), γ) απόκρισης (μείωση αιτημάτων)
39. Christopher Zolotas | 07.02.20 39
Observer
A/A Περιορισμός
1
Εφαρμογή σε Πόρους που έχουν ιδιότητες και PUT/DELETE διεπαφές για ειδοποιήσεις
μεταβολής κατάστασης.
2 Εφαρμογή σε Πόρους για ειδοποιήσεις χρήσης συγκεκριμένης διεπαφής
3
Οι αποκρίσεις πρέπει να περιέχουν υπερσυνδέσμους για εγγραφή/διαγραφή από
ειδοποιήσεις.
Δυνατότητα μοντελοποίησης (ανά Πόρο):
1. ειδοποιήσεων για αλλαγή κατάστασης Πόρου
2. ειδοποιήσεων κατά την εκτέλεση συγκεκριμένης ενέργειας π.χ. HTTP POST/GET
3. της εκ των υστέρων, μη παρεμβατικής, προγραμματιστικής επέκτασης με νέου
τύπου ειδοποιήσεις.
40. Christopher Zolotas | 07.02.20 40
Memento
A/A Περιορισμός
1 Εφαρμογή σε Πόρους που έχουν ιδιότητες
2 Εφαρμογή σε Πόρους που έχουν PUT/DELETE διεπαφές.
3 Χρήση Memento μόνο μέσω PUT διεπαφής.
4 Οι αποκρίσεις πρέπει να περιέχουν υπερσυνδέσμους στις αποθηκευμένες καταστάσεις
Δυνατότητα μοντελοποίησης (ανά Πόρο):
1. λειτουργικότητας αναίρεσης ενέργειας (undo)
2. λειτουργικότητας διαχείρισης ιστορικού αλλαγών
41. Christopher Zolotas | 07.02.20 41
Case Scenario - Εφαρμογή Προτύπων
Οι απαιτήσεις της εφαρμογής RESTBlogs επιτάσσουν επιπλέον:
1. δυνατότητα δημιουργίας αναπαραστάσεων λογαριασμών χρηστών που δε
συμπεριλαμβάνουν τον κωδικό.
2. δυνατότητα ειδοποιήσεων όποτε δημιουργείται ή ανανεώνεται ένα Blog.
44. Christopher Zolotas | 07.02.20 44
Αξιολόγηση επίδρασης στην παραγωγικότητα
Στόχος: Εκτίμηση πιθανού οφέλους στην παραγωγικότητα ομάδων προγραμματιστών
σε εταιρικό περιβάλλον.
Συμμετοχή: 3 ομάδες προγραμματιστών, τριών διακριτών τομέων δραστηριοποίησης
(Social Apps, IoT, IaaS)
Προπαρασκευή: 2 ώρες Webinars, 2 ώρες μελέτης εγχειριδίων χρήσης και επιπλέον 2
ώρες ερωταπαντήσεων
Φάσεις Πειράματος: Ανάπτυξη εφαρμογής με Α) χρήση Μηχανισμού Αυτοματοποίησης,
Β) χρήση της εταιρικής μεθοδολογίας και των αντίστοιχων εργαλείων.
45. Christopher Zolotas | 07.02.20 45
Αποτελέσματα
Μετρική
Εφαρμογή
IoT
Εφαρμογή κοινωνικής
δικτύωσης
Εφαρμογή IaaS
Αριθμός απαιτήσεων/
σεναρίων
13 14 12
Παραχθείσες γραμμές
Java κώδικα
7430 8115 6466
Προσπάθεια με
Μηχανισμό* (ώρες)
2 2.4 1.4
Προσπάθεια με
εταιρική μεθοδολογία
(ώρες)
10.5 10.8 9.3
Μείωση προσπάθειας 80.9% 77.8% 85 %
* Συνδυαστικά με εργαλείo NLP ανάλυσης απαιτήσεων/σεναρίων
46. Christopher Zolotas | 07.02.20 46
Αυτόματη Εφαρμογή Προτύπων
Πειραματικοί στόχοι:
1. εκτίμηση μείωσης ανθρωποπροσπάθειας μέσω αυτοματοποίησης.
2. εκτίμηση επιπλέον απαιτούμενης προσπάθειας χρηστών με ελλιπές τεχνολογικό
υπόβαθρο σε σχέση με ειδικούς.
3. ευκολία σχεδίασης χαμηλού επιπέδου μέσω αυτοματοποίησης εφαρμογής Προτύπων
4. πόσο επιθυμητή είναι η αυτοματοποίηση για σχεδίαση χαμηλού επιπέδου
47. Christopher Zolotas | 07.02.20 47
Προφίλ Συμμετεχόντων
Οι συμμετέχοντες κατηγοριοποιήθηκαν με βάση τη γνώση τους σε α) Γενικό
Προγραμματισμό (ΓΠ), β) Διαδικτυακές Υπηρεσίες (ΔΥ), γ) Πρότυπα Σχεδίασης
(ΠΣ) με βάση την ακόλουθη κλίμακα:
Κλίμακα Περιγραφή
ΕΜΠ1 Καθόλου εμπειρία
ΕΜΠ2 Συμμετοχή σε λίγα μη επαγγελματικά πρότζεκτ
ΕΜΠ3 Συμμετοχή σε πολλά μη επαγγελματικά πρόζτεκτ
ΕΜΠ4
Έως 5 χρόνια συμμετοχή σε αντίστοιχα
επαγγελματικά πρότζεκτ.
ΕΜΠ5
Πάνω από 5 χρόνια συμμετοχή σε αντίστοιχα
επαγγελματικά πρότζεκτ. 0
14
29
43
57
ΓΠ ΔΥ ΠΣ
6
10
31
51
47
26
Μικρή Εμπειρία Μεγάλη Εμπειρία
48. Christopher Zolotas | 07.02.20 48
Πείραμα - Setup
Στους συμμετέχοντες δόθηκε το μοντέλο μιας RESTful υπηρεσίας με εφαρμοσμένα
κάποια Πρότυπα Σχεδίασης και ζητήθηκε να την τροποποιήσουν διατηρώντας,
προσθέτοντας ή αφαιρώντας Πρότυπα ώστε να ικανοποιηθούν οι παρακάτω απαιτήσεις.
Τύπος Περιγραφή
Διατήρηση
Το σύστημα πρέπει να είναι επεκτάσιμο για να υποστηρίζει στο μέλλον εύκολα και νέους
τύπους πληρωμών.
Διατήρηση
Το σύστημα πρέπει να παρέχει και αναπαραστάσεις Πόρων User Account δίχως
συμπερίληψη της ιδιότητας Password αυτών.
Απόρριψη
Το σύστημα πρέπει να παρέχει τη δυνατότητα ανάκλησης ενέργειας (undo) για διαγραφές
παραγγελιών ή για έως 5 τροποποιήσεις αυτών.
Απόρριψη
Το σύστημα πρέπει να παρέχει δυνατότητα εγγραφής για ειδοποιήσεις κατά τη δημιουργία
νέων κριτικών προϊόντων
Προσθήκη
Το σύστημα πρέπει να παρέχει δυνατότητα εγγραφής για ειδοποιήσεις κατά την
τροποποίηση παραγγελιών.
Προσθήκη
Το σύστημα πρέπει να παρέχει τη δυνατότητα εγγραφής για ειδοποιήσεις κατά την
προσθήκη νέων προϊόντων στο κατάστημα.
Προσθήκη
Το σύστημα πρέπει να είναι επεκτάσιμο προκειμένου να μπορεί στο μέλλον να υποστηρίξει
νέους αλγορίθμους αναζήτησης δεδομένων εύκολα.
49. Christopher Zolotas | 07.02.20 49
Ποσοστό επιτυχίας - Απαιτούμενη προσπάθεια.
Εμπειρία < 5 λ [5, 10] λ (10, 15] λ > 15 λ
ΠΡ/ΔΥ/ΠΣ - ΜΚΕ 81.25% 12.5% 6.25% 0 %
ΠΡ - ΜΓΕ, ΔΥ/ΠΣ -
ΜΚΕ
75 % 25 % 0 % 0 %
ΠΡ/ΠΣ - ΜΓΕ, ΔΥ -
ΜΚΕ
100 % 0 % 0 % 0 %
ΠΡ/ΔΥ - ΜΓΕ, ΠΣ -
ΜΚΕ
100 % 0 % 0 % 0 %
ΠΡ/ΔΥ/ΠΣ - ΜΓΕ 80 % 20 % 0 % 0 %
Σε όλα ΜΚΕ
ΠΡ-ΜΓΕ
ΔΥ-ΜΚΕ
ΠΣ-ΜΚΕ
Σε όλα ΜΓΕ
0 7,5 15 22,5 30
5
5
1
12
16
5
5
1
20
26
Σύνολο Επιτυχόντες 1. Η εμπειρία στον προγραμματισμό δεν επηρεάζει το
αποτέλεσμα σε άγνωστο πεδίο προβλήματος, παρά η έστω
και μερική γνώση του πεδίου προβλήματος
2. Μείωση της προσπάθειας εφαρμογής Προτύπων σε REST
προς επίτευξη σχεδιαστικών στόχων από μέρες σε λεπτά.
3. Μείωση χάσματος προσπάθειας έμπειρων-άπειρων από
~200% σε 14% επιπλέον προσπάθεια.
50. Christopher Zolotas | 07.02.20 50
Ευκολία Χρήσης - Επιθυμία Χρήσης
Θεωρήθηκε σε ποσοστό 75.43% εύκολη - 96.49% (εύκολη ή αρκετά εύκολη)
και επιθυμητή για την εφαρμογή Προτύπων σε ποσοστό 84.65% (αποτυχόντες) - 89.47% (επιτυχόντες).
0
10
20
30
40
Εύκολη Αρκετά Εύκολη Αρκετά Δύσκολη Δύσκολη
0
2
5
11
0
0
7
32
0
4,5
9
13,5
18
Σίγουρα Μάλλον Ναι Μάλλον Όχι Σίγουρα Όχι
0
2
13
4
0
6
17
16
Επιτυχόντες Αποτυχόντες
52. Christopher Zolotas | 07.02.20 52
Αυτοματοποίηση Μηχανικής Λογισμικού
Πέρα από τις αρχές υψηλής συνεκτικότητας και χαμηλής σύζευξης, επιπλέον νοητικά
εργαλεία κατά τη σχεδίαση Μηχανισμών Αυτοματοποίησης αποτελούν:
1. Η αξιοποίηση μετρικών μεγέθους μετα-μοντέλων/μετασχηματισμών (Μ2Μ)
2. Η αξιοποίηση μετρικών τεχνικού υποβάθρου
Επιπλέον, για την αυτοματοποίηση REST συστημάτων, οι δύο παράγοντες που απαιτούν
προσοχή στη σχεδίαση Μηχανισμών Αυτοματοποίησης είναι:
1. Σχεδίαση μετα-μοντέλων δίνοντας έμφαση στη μοντελοποίηση των υπερσυνδέσμων
2. Ορισμός περιορισμών που διασφαλίζουν ορθή χρήση των HTTP endpoint του συστήματος
με βάση τη σημασία κάθε HTTP ρήματος.
53. Christopher Zolotas | 07.02.20 53
Αυτοματοποιημένη Μηχανική Λογισμικού
Μέσω της χρήσης Αυτοματοποιημένης Μηχανικής Λογισμικού για μία σειρά πτυχών των
REST υπηρεσιών, προκύπτει πως:
1. Αυξάνεται σημαντικά η παραγωγικότητα
2. Το τρέχον τεχνικό υπόβαθρο του εκάστοτε χρήστη διαδραματίζει σημαντικά μικρότερο
ρόλο όταν παρέχεται πλήρης αυτοματοποίηση.
3. Η παροχή πλήρους αυτοματοποίησης για μία κλάση προβλημάτων, καθιστά τους
Μηχανισμούς Αυτοματοποίησης εύκολους στη χρήση και επιθυμητούς ως μεθοδολογία
υλοποίησης συστημάτων Λογισμικού.
54. Christopher Zolotas | 07.02.20 54
Μελλοντικές Επεκτάσεις
1. Εφαρμογή της προτεινόμενης δισδιάστατης αρχιτεκτονικής Μηχανικής Λογισμικού
Οδηγούμενης από Μοντέλα και σε άλλα πεδία προβλήματος (π.χ. ρομποτική).
2. Προσαρμογή στην αρχιτεκτονική REST επιπλέον Προτύπων, μετα-μοντελοποίηση άλλων
διαδεδομένων μοντέλων ταυτοποίησης χρήστη (π.χ. OAUTH 2.0) και υποστήριξη και άλλων
τύπων αποθήκευσης μόνιμων δεδομένων (π.χ. NoSQL).
3. Διεξαγωγή πειραμάτων για:
A. Ελαχιστοποίηση λογικών και προγραμματιστικών λαθών κατά τη σχεδίαση και υλοποίηση
πολιτικών ασφάλειας με χρήση της προτεινόμενης μεθοδολογίας, σε σύγκριση με απλό
προγραμματισμό.
B. Πειραματικό έλεγχο της μείωσης της πολυπλοκότητας σχεδίασης και ανάπτυξης
Μηχανισμών Αυτοματοποίησης μέσω της χρήσης των προτεινόμενων κριτηρίων, εφόσον
διαδοθεί επαρκώς η Μηχανική Λογισμικού Οδηγούμενη από Μοντέλα.
55. Christopher Zolotas | 07.02.20 55
Λίστα Δημοσιεύσεων
Εργασίες σε Περιοδικά με κριτές που έγιναν δεκτές
1.Christoforos Zolotas, Themistoklis Diamantopoulos, Kyriakos Chatzidimitriou, and Andreas Symeonidis, "From Requirements to
Source Code: A Model-Driven Engineering Approach for RESTful Web Services," Journal of Automated Software Engineering,
Special Issue on Realizing AI Synergies in Software Engineering, Vol. 24, pp 791-838, December 2017.
2.Christoforos Zolotas, Kyriakos C. Chatzidimitriou & Andreas L. Symeonidis, "RESTsec: a low-code platform for generating secure
by design enterprise services", Enterprise Information Systems, Vol. 12, pp. 1007-1033, March 2018, DOI:
10.1080/17517575.2018.1462403
Εργασίες σε Περιοδικά με κριτές που βρίσκονται στο στάδιο της κρίσης
1. Christoforos Zolotas, Andreas L. Symeonidis, "On Automated Application of Design Patterns to RESTful Web Services", Journal
of Science of Computer Programming, Elsevier.
Εργασίες για Περιοδικά με κριτές που βρίσκονται στο στάδιο της συγγραφής
1. Christoforos Zolotas, Andreas L. Symeonidis, "A Multi-dimensional Methodology to Design and Build Automation Mechanisms
for RESTful Services"
Δημοσιεύσεις σε Πρακτικά Συνεδρίων με Σύστημα Κριτών
1. Christoforos Zolotas, Andreas L. Symeonidis, "Towards an MDA Mechanism for RESTful Services Development", accepted at the
CLOUDMDE workshop of the 18th International Conference on Model Driven Engineering Languages and Systems in Ottawa,
Canada, September 2015.
56. Christopher Zolotas | 07.02.20 56
Time for a fruitful Q&A session!
Online support material: https://github.com/christopherzolotas/phd
Contact: christopherzolotas@issel.ee.auth.gr