SlideShare a Scribd company logo
1 of 56
Download to read offline
Christopher Zolotas | 07.02.20 1
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων
λογισμικού αρχιτεκτονικής REST με τεχνικές Μηχανικής Λογισμικού Οδηγούμενης από
Μοντέλα.
Christopher Zolotas | 07.02.20 2
ΠΕΡΙ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ
Christopher Zolotas | 07.02.20 3
Στόχος Αυτοματοποίησης
Από τη «βιοτεχνία» Λογισμικού Στη «βιομηχανία» Λογισμικού
Αύξηση Παραγωγικότητας, Βελτίωση Ποιότητας - Μικρότερο Κόστος, Λιγότερα σφάλματα.
3
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Τ): κανόνες μετασχηματισμού όρων μοντέλου εισόδου σε κώδικα
Christopher Zolotas | 07.02.20 5
The big picture
Γραφική Διεπαφή Μηχανισμός Αυτοματοποίησης
Αυτοματοποίηση Μηχανικής Λογισμικού: Διαδικασία κατασκευής Μηχανισμού
Αυτοματοποίησης για μία ορισμένη κλάση συστημάτων Λογισμικού.
Αυτοματοποιημένη Μηχανική Λογισμικού: Χρήση Μηχανισμού Αυτοματοποίησης για
αυτόματη παραγωγή συστημάτων της κλάσης που αυτοματοποιήθηκε.
Christopher Zolotas | 07.02.20 6
Στόχοι διατριβής
1. Μείωση πολυπλοκότητας σχεδίασης και ανάπτυξης Μηχανισμών
Αυτοματοποίησης
2. Μοντελοποίηση και Αυτοματοποίηση παραγωγής REST συστημάτων με
δυνατότητες:
3. Πειραματική αξιολόγηση χρήσης Αυτοματοποιημένης Μηχανικής Λογισμικού
i) Αναζήτησης Δεδομένων
ii) Δικτύωσης με υπάρχοντα WS
iii) Ταυτοποίησης Χρήστη
iv) Εξουσιοδότησης Χρήστη
v) Αξιοποίησης Προτύπων Σχεδίασης
Christopher Zolotas | 07.02.20 7
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ
ΜΗΧΑΝΙΣΜΩΝ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ
Συνεισφορά:
1. Μετρικές και μεθοδολογία διάσπασης πεδίου προβλήματος
2. Δισδιάστατη Αρχιτεκτονική Μηχανισμών Αυτοματοποίησης
Christopher Zolotas | 07.02.20 8
Πολυπλοκότητα Μοντελοποίησης
Βασικά αίτια πολυπλοκότητας των διαδικασιών Αυτοματοποίησης της Μηχανικής
Λογισμικού:
1. Το πλήθος των προς μετα-μοντελοποίηση όρων
2.Το διευρυμένο τεχνολογικό υπόβαθρο του πεδίου προβλήματος
Από τη διάσπαση του πεδίου προβλήματος, στη δημιουργία μέτα-μοντέλων/μετασχηματισμών
και την κατασκευή του Μηχανισμού Αυτοματοποίησης.
Christopher Zolotas | 07.02.20 9
Συνήθεις μετρικές
Μετρική Επεξήγηση
S Μέγεθος μετα-μοντέλου
NSM Αριθμός μετα-μοντέλων εισόδου σε μετασχηματισμό Μ2Μ
NTM Αριθμός μετα-μοντέλων εξόδου σε μετασχηματισμό Μ2Μ
ASSM Μέσο μέγεθος μετα-μοντέλων εισόδου σε μετασχηματισμό Μ2Μ
ASTM Μέσο μέγεθος μετα-μοντέλων εξόδου από μετασχηματισμό Μ2Μ
CSM Κάλυψη όρων μετα-μοντέλων εισόδου σε μετασχηματισμό Μ2Μ
CTM Κάλυψη όρων μετα-μοντέλων εξόδου από μετασχηματισμό Μ2Μ
Christopher Zolotas | 07.02.20 10
Πρόσθετες Προτεινόμενες Μετρικές
Μετα-μοντέλα:
Μετασχηματισμοί Μ2Μ:
E (Expertise): Ποσοστό όρων μετα-μοντέλου που η ομάδα ανάπτυξης έχει το
απαιτούμενο τεχνικό υπόβαθρο.
SME (Source meta-model expertise): Ποσοστό όρων του μετα-μοντέλου-πηγή
που η ομάδα ανάπτυξης έχει το απαιτούμενο τεχνικό υπόβαθρο.
TME (Target meta-model expertise): Ποσοστό όρων του μετα-μοντέλου-στόχος
που η ομάδα ανάπτυξης έχει το απαιτούμενο τεχνικό υπόβαθρο.
Christopher Zolotas | 07.02.20 11
Βασικές περιπτώσεις ύπαρξης τεχνικού υποβάθρου
Περίπτωση Διαθεσιμότητα τεχνικού υποβάθρου
Α Πλήρης, για όλα τα γνωστικά υποπεδία
Β Πλήρης για κάποια γνωστικά υποπεδία, μηδενική για τα υπόλοιπα
Γ Μερική, για όλα τα γνωστικά υποπεδία
Δ Μηδενική, για όλα τα γνωστικά υποπεδία
Βασικές περιπτώσεις τεχνικού υποβάθρου της ομάδας υλοποίησης ενός
Μηχανισμού Αυτοματοποίησης.
Christopher Zolotas | 07.02.20 12
Περίπτωση ύπαρξης πλήρους υποβάθρου
Case S (Average) E (Average %)
Πα1 13 33.33
Πα2 4.33 100
Πα3 6.5 65.39
Πα4 3.25 100
Πα5 4.33 43.62
Case NSM ΝΤΜ ASSM ASTM CSM (%) CTM (%) SME (%) TME (%)
Πα1 1 1 13 13* 100 100 33.33 33.33
Πα2 2.33* 1 4.33 4.33* 55.56 100 100 100
Πα3 2* 1 6.5 6.5* 66.67 100 65.39 65.39
Πα4 2.5* 1 3.25 3.25* 50 100 100 100
Πα5 2.33* 1 4.33 4.33* 55.56 100 43.62 43.62
Αξιολόγηση Μετα-μοντέλων
Αξιολόγηση Μετασχηματισμών Μ2Μ
Όροι γνωστοί
Όροι άγνωστοι
Christopher Zolotas | 07.02.20 13
Διάγραμμα Σχεδιαστικών Αποφάσεων (1/2)
Πλήρης
Διαθεσιμότητα
Καθόλου
ή
μόνο
για
ένα
ΥΠ
Διάσπαση με
βάση μέγεθος
Διάσπαση με
βάση υπόβαθρο
Διάσπαση με
βάση μέγεθος
Μέγεθος βέλτιστο?
Βέλτιστο ή μικρότερο
Μεγαλύτερο
Μέγεθος βέλτιστο?
Βέλτιστο ή μικρότερο
Μεγαλύτερο
Christopher Zolotas | 07.02.20 14
Διάγραμμα Σχεδιαστικών Αποφάσεων (2/2)
Μερική
Διαθεσιμότητα
για
όλα
τα
ΥΠ
Διάσπαση με
βάση υπόβαθρο,
οι άγνωστοι
χωριστά
Διαμοιρασμός με
βάση μέγεθος ή
εξαρτήσεις
Μέγεθος γνωστών
ΥΠ βέλτιστο?
Βέλτιστο
Μεγαλύτερο
Μέγεθος άγνωστου
ΥΠ βέλτιστο?
Μικρότερο
Διαμοιρασμός με βάση
μέγεθος ή εξαρτήσεις ή
διάσπαση
Μεγαλύτερο
Διάσπαση με
βάση εξαρτήσεις
Μικρότερο
Μέγεθος
άγνωστου
ΥΠ βέλτιστο?
Μερικός/Πλήρης
διαμοιρασμός αγνώστων
στα γνωστά ΥΠ
Πλήρης διαμοιρασμός ή μερικός
διαμοιρασμός και διάσπαση με
βάση μέγεθος ή εξαρτήσεις
Βέλτιστο
ή μικρότερο
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
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.
Πιθανός διαχωρισμός με βάση υψηλή συνεκτικότητα και χαμηλή σύζευξη
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
ωστόσο, λόγω υψηλής
συνεκτικότητας του
υποπεδίου, πιθανώς η
διάσπαση δεν ειναι καλή
επιλογή.
Πιθανός διαχωρισμός με βάση υψηλή συνεκτικότητα και χαμηλή σύζευξη
Christopher Zolotas | 07.02.20 18
2D MDE - Αρχιτεκτονική
Αποδόμηση σε δύο άξονες:
1. Υποπεδίο εφαρμογής
2. Αφαιρετικό Επίπεδο
Christopher Zolotas | 07.02.20 19
2D-MDE - Μετα-μοντέλα
Δομή Μετα-μοντέλου
{C}: Σύνολο όρων υποπεδίου Ζ
{Α}: Σύνολο συσχετίσεων όρων υποπεδίου Ζ
{R}: Σύνολο αναφορών σε όρους άλλων υποπεδίων
{E}: Σύνολο αναφερόμενων όρων άλλων υποπεδίων
Περιγραφή ενός μετα-μοντέλου
Christopher Zolotas | 07.02.20 20
2D-MDE - Μετασχηματισμοί (1/2)
Απαιτούν μέτα-
μοντέλα Ζ επιπέδου
Χ και Χ+/-1
Christopher Zolotas | 07.02.20 21
2D-MDE - Μετασχηματισμοί (2/2)
1. Απαιτούν μέτα-
μοντέλα Υ επιπέδου
Χ και Χ+/-1
2. Eπαναχρηση
κανόνων μεταβολής
επιπέδου αφαίρεσης
υποπεδίου Y
Christopher Zolotas | 07.02.20 22
Συνολικά
Σύνολο Μετασχηματισμών Μ2Μ
Σύνολο Μετα-μοντέλων
Christopher Zolotas | 07.02.20 23
Πλεονεκτήματα - 2D MDE
1. Μικρότερα, νοητικώς ευκολότερα διαχειρίσιμα μετα-μοντέλα.
2. Μείωση απαιτούμενου γνωστικού υποβάθρου ανά μέτα-
μοντέλο/μετασχηματισμό.
3. Αύξηση βαθμού παραλληλοποίησης ανάπτυξης Μηχανισμών
Αυτοματοποίησης.
4. Αύξηση συντηρησιμότητας και επεκτασιμότητας Μηχανισμών
Αυτοματοποίησης.
Christopher Zolotas | 07.02.20 24
ΜΕΤΑ-ΜΟΝΤΕΛΟΠΟΙΗΣΗ
ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ REST
Συνεισφορά:
1. Μετα-μοντελοποίηση REST
2. Μετα-μοντελοποίηση αναζήτησης δεδομένων για REST
3. Μετα-μοντελοποίηση αλληλεπίδρασης με υπάρχουσες υπηρεσίες για REST
4. Μετα-μοντελοποίηση μετασχηματισμού υπαρχουσών υπηρεσιών σε REST.
5. Μετα-μοντελοποίηση ταυτοποίησης χρήστη για REST
6. Μετα-μοντελοποίηση εξουσιοδότησης χρήστη για REST
Christopher Zolotas | 07.02.20 25
2D MDE - Αρχιτεκτονική στο πεδίο της διατριβής
Όλα τα υποπεδία εξαρτώνται
από το REST.
Το ABAC εξαρτάται επιπλέον
από το υποπεδίο
ταυτοποίησης χρήστη.
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)
Christopher Zolotas | 07.02.20 27
Μετα-μοντέλο CIM Αναζήτησης Δεδομένων
A/A Περιορισμός
1 Τουλάχιστον ένας όρος SearchResource.
2
Τουλάχιστον ένας όρος SearchableResource.
3
Τουλάχιστον ένας όρος SearchableProperty ανά
SearchableResource.
4
Κάθε SearchResource αναφέρεται σε
αλγοριθμοκεντρικό Πόρο.
5
Κάθε SearchableResource αναφέρεται σε
δεδομενοκεντρικό Πόρο.
Δυνατότητα μοντελοποίησης:
1. Πόρων-Αναζήτησης δεδομένων
2. Δυναμικού πεδίου αναζήτησης ανά Πόρο-Αναζήτησης
3. Αποκρίσεων συστήματος με υπερσυνδέσμους ανά αποτέλεσμα αναζήτησης
Christopher Zolotas | 07.02.20 28
Μετα-μοντέλο CIM αλληλεπίδρασης με άλλες ΔΥ
A/A Περιορισμός
1
Ύπαρξη τουλάχιστον ενός όρου
RESTClientResource.
2
Κάθε RESTClientResource αναφέρεται σε ακριβώς
ένα αλγοριθμοκεντρικό Πόρο.
Δυνατότητα μοντελοποίησης:
1. Πόρων-Πελατών REST που αλληλεπιδρούν με Διαδικτυακές Υπηρεσίες τρίτων.
2. Αναδρομικών Δομών δεδομένων εισόδου-εξόδου της εξωτερικής ΔΥ
3. Διακράτησης δεδομένων-αποκρίσεων εξωτερικής ΔΥ στην οικεία ΒΔ
Christopher Zolotas | 07.02.20 29
Ασφάλεια στον κόσμο του REST
Στόχος η παραγωγή REST
συστημάτων που:
1. Επιτρέπουν πρόσβαση μόνο στους
Πόρους που ο αιτών δικαιούται
2. Οι αποκρίσεις τους περιέχουν
υπερσυνδέσμους μόνο σε Πόρους
που ο αιτών έχει πρόσβαση.
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 της ΔΥ.
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.
Christopher Zolotas | 07.02.20 32
Μετα-μοντέλο CIM Μετασχηματισμού Υπαρχουσών ΔΥ
A/A Περιορισμός
1 Περιέχεται τουλάχιστον ένα όρος TargetRelation.
2
Κάθε όρος TargetRelation συσχετίζεται με τουλάχιστον
ένα TargetColumn
3
Οι τύποι δεδομένων των TargetColumn/SourceColumn
ενός όρου TargetRelation είναι συμβατοί.
4
Η δομή δεδομένων στόχος έχει συμβατή αναφορική
ακεραιότητα με αυτή της δομής-πηγής
Δυνατότητα μοντελοποίησης:
1. Αντιστοίχισης Σχέσεων ΒΔ-πηγής με Πόρους της νέας ΔΥ.
2. Μετατροπής τύπων δεδομένων
3. Αυτόματου έλεγχου αναφορικής ακεραιότητας της νέας δομής δεδομένων σε σχέση με την παλιά.
Συνδυαστικά με τα υπόλοιπα μέτα-μοντέλα, κατά το μετασχηματισμό επιτυγχάνεταιεπιπλέον: α)
αυτόματη δεικτοδότηση δεδομένων, 2) αυτόματη ενσωματωση επιθυμητής ταυτοποίησης χρήστη και
εξουσιοδότησης χρήστη.
Christopher Zolotas | 07.02.20 33
Case Scenario - Εφαρμογή RESTBlogs
Οι απαιτήσεις της εφαρμογής RESTBlogs επιτάσσουν οι χρήστες της να μπορούν να:
1. δημιουργούν ένα προσωπικό λογαριασμό, τον οποίο μόνο οι ίδιοι μπορούν να
ανανεώνουν.
2. γράφουν νέα Blogs (κείμενο, περιγραφή, τίτλο) τα οποία μπορούν να τα βλέπουν όλοι,
αλλά να επεξεργάζονται και να διαγράφουν μόνο ο συγγραφέας τους.
3. αναζητούν Blogs με βάση τον τίτλο και την περιγραφή τους.
4. ενημερώνονται για τις τρέχουσες καιρικές συνθήκες στην πόλη τους τις οποίες παρέχει
άλλη υπηρεσία στο διαδίκτυο.
ADISPO 2020 | 29.01.20 34
RESTBlogs Demo
Christopher Zolotas | 07.02.20 35
ΜΕΤΑ-ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΣΧΕΔΙΑΣΤΙΚΩΝ
ΠΤΥΧΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ REST
Συνεισφορά:
1. Προσαρμογή διαδεδομένων Προτύπων Σχεδίασης στην αρχιτεκτονική REST.
2. Μετα-μοντελοποίηση των προαναφερθέντων Προτύπων για REST.
Christopher Zolotas | 07.02.20 36
Αυτοματοποιημένη Σχεδίαση Χαμηλού Επιπέδου
Η συντριπτική πλειοψηφία των Μηχανισμών Αυτοματοποίησης για REST
επικεντρώνεται στην αυτοματοποίηση παροχής λειτουργικότητας, αγνοώντας
την παροχή δυνατότητας αυτοματοποιημένης σχεδίασης χαμηλού επιπέδου.
Ως αποτέλεσμα, όταν χρειάζεται στην πράξη:
1. είτε η προσαρμογή γίνεται με προγραμματισμό
2. είτε αγνοείται η αντίστοιχη Απαίτηση Χρηστών.
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 Συμπεριφοράς
Απλοποιημένη εκδοχή μετα-μοντέλου Προτύπων Δημιουργίας.
Christopher Zolotas | 07.02.20 38
Builder
A/A Περιορισμός
1 Εφαρμογή σε Πόρους που έχουν ιδιότητες
2 Κάθε αναπαράσταση πρέπει να έχει τουλάχιστον μία ιδιότητα
3
Οι αποκρίσεις πρέπει να περιέχουν υπερσυνδέσμους για τις διαθέσιμες αναπαραστάσεις
του Πόρου
Δυνατότητα μοντελοποίησης (ανά Πόρο):
1. πολλαπλών Αναπαραστάσεων (βασική ιδιότητα REST)
2. λήψης επιθυμητού υποσυνόλου δεδομένων Πόρου για α) ευχρηστία, β) επίδοση
δικτύου (μείωση όγκου δεδομένων), γ) απόκρισης (μείωση αιτημάτων)
Christopher Zolotas | 07.02.20 39
Observer
A/A Περιορισμός
1
Εφαρμογή σε Πόρους που έχουν ιδιότητες και PUT/DELETE διεπαφές για ειδοποιήσεις
μεταβολής κατάστασης.
2 Εφαρμογή σε Πόρους για ειδοποιήσεις χρήσης συγκεκριμένης διεπαφής
3
Οι αποκρίσεις πρέπει να περιέχουν υπερσυνδέσμους για εγγραφή/διαγραφή από
ειδοποιήσεις.
Δυνατότητα μοντελοποίησης (ανά Πόρο):
1. ειδοποιήσεων για αλλαγή κατάστασης Πόρου
2. ειδοποιήσεων κατά την εκτέλεση συγκεκριμένης ενέργειας π.χ. HTTP POST/GET
3. της εκ των υστέρων, μη παρεμβατικής, προγραμματιστικής επέκτασης με νέου
τύπου ειδοποιήσεις.
Christopher Zolotas | 07.02.20 40
Memento
A/A Περιορισμός
1 Εφαρμογή σε Πόρους που έχουν ιδιότητες
2 Εφαρμογή σε Πόρους που έχουν PUT/DELETE διεπαφές.
3 Χρήση Memento μόνο μέσω PUT διεπαφής.
4 Οι αποκρίσεις πρέπει να περιέχουν υπερσυνδέσμους στις αποθηκευμένες καταστάσεις
Δυνατότητα μοντελοποίησης (ανά Πόρο):
1. λειτουργικότητας αναίρεσης ενέργειας (undo)
2. λειτουργικότητας διαχείρισης ιστορικού αλλαγών
Christopher Zolotas | 07.02.20 41
Case Scenario - Εφαρμογή Προτύπων
Οι απαιτήσεις της εφαρμογής RESTBlogs επιτάσσουν επιπλέον:
1. δυνατότητα δημιουργίας αναπαραστάσεων λογαριασμών χρηστών που δε
συμπεριλαμβάνουν τον κωδικό.
2. δυνατότητα ειδοποιήσεων όποτε δημιουργείται ή ανανεώνεται ένα Blog.
ADISPO 2020 | 29.01.20 42
RESTBlogs Demo: εφαρμογή Προτύπων
Christopher Zolotas | 07.02.20 43
ΠΕΙΡΑΜΑΤΙΚΑ ΑΠΟΤΕΛΕΣΜΑΤΑ ΧΡΗΣΗΣ
ΑΥΤΟΜΑΤΟΠΟΙΗΜΕΝΗΣ ΜΗΧΑΝΙΚΗΣ
ΛΟΓΙΣΜΙΚΟΥ
Συνεισφορά:
1. Πειραματικά αποτελέσματα ανάπτυξης REST εφαρμογών σε εταιρικό
περιβάλλον
2. Πειραματικά αποτελέσματα αυτόματης εφαρμογής Προτύπων Σχεδίασης σε
REST εφαρμογές.
Christopher Zolotas | 07.02.20 44
Αξιολόγηση επίδρασης στην παραγωγικότητα
Στόχος: Εκτίμηση πιθανού οφέλους στην παραγωγικότητα ομάδων προγραμματιστών
σε εταιρικό περιβάλλον.
Συμμετοχή: 3 ομάδες προγραμματιστών, τριών διακριτών τομέων δραστηριοποίησης
(Social Apps, IoT, IaaS)
Προπαρασκευή: 2 ώρες Webinars, 2 ώρες μελέτης εγχειριδίων χρήσης και επιπλέον 2
ώρες ερωταπαντήσεων
Φάσεις Πειράματος: Ανάπτυξη εφαρμογής με Α) χρήση Μηχανισμού Αυτοματοποίησης,
Β) χρήση της εταιρικής μεθοδολογίας και των αντίστοιχων εργαλείων.
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 ανάλυσης απαιτήσεων/σεναρίων
Christopher Zolotas | 07.02.20 46
Αυτόματη Εφαρμογή Προτύπων
Πειραματικοί στόχοι:
1. εκτίμηση μείωσης ανθρωποπροσπάθειας μέσω αυτοματοποίησης.
2. εκτίμηση επιπλέον απαιτούμενης προσπάθειας χρηστών με ελλιπές τεχνολογικό
υπόβαθρο σε σχέση με ειδικούς.
3. ευκολία σχεδίασης χαμηλού επιπέδου μέσω αυτοματοποίησης εφαρμογής Προτύπων
4. πόσο επιθυμητή είναι η αυτοματοποίηση για σχεδίαση χαμηλού επιπέδου
Christopher Zolotas | 07.02.20 47
Προφίλ Συμμετεχόντων
Οι συμμετέχοντες κατηγοριοποιήθηκαν με βάση τη γνώση τους σε α) Γενικό
Προγραμματισμό (ΓΠ), β) Διαδικτυακές Υπηρεσίες (ΔΥ), γ) Πρότυπα Σχεδίασης
(ΠΣ) με βάση την ακόλουθη κλίμακα:
Κλίμακα Περιγραφή
ΕΜΠ1 Καθόλου εμπειρία
ΕΜΠ2 Συμμετοχή σε λίγα μη επαγγελματικά πρότζεκτ
ΕΜΠ3 Συμμετοχή σε πολλά μη επαγγελματικά πρόζτεκτ
ΕΜΠ4
Έως 5 χρόνια συμμετοχή σε αντίστοιχα
επαγγελματικά πρότζεκτ.
ΕΜΠ5
Πάνω από 5 χρόνια συμμετοχή σε αντίστοιχα
επαγγελματικά πρότζεκτ. 0
14
29
43
57
ΓΠ ΔΥ ΠΣ
6
10
31
51
47
26
Μικρή Εμπειρία Μεγάλη Εμπειρία
Christopher Zolotas | 07.02.20 48
Πείραμα - Setup
Στους συμμετέχοντες δόθηκε το μοντέλο μιας RESTful υπηρεσίας με εφαρμοσμένα
κάποια Πρότυπα Σχεδίασης και ζητήθηκε να την τροποποιήσουν διατηρώντας,
προσθέτοντας ή αφαιρώντας Πρότυπα ώστε να ικανοποιηθούν οι παρακάτω απαιτήσεις.
Τύπος Περιγραφή
Διατήρηση
Το σύστημα πρέπει να είναι επεκτάσιμο για να υποστηρίζει στο μέλλον εύκολα και νέους
τύπους πληρωμών.
Διατήρηση
Το σύστημα πρέπει να παρέχει και αναπαραστάσεις Πόρων User Account δίχως
συμπερίληψη της ιδιότητας Password αυτών.
Απόρριψη
Το σύστημα πρέπει να παρέχει τη δυνατότητα ανάκλησης ενέργειας (undo) για διαγραφές
παραγγελιών ή για έως 5 τροποποιήσεις αυτών.
Απόρριψη
Το σύστημα πρέπει να παρέχει δυνατότητα εγγραφής για ειδοποιήσεις κατά τη δημιουργία
νέων κριτικών προϊόντων
Προσθήκη
Το σύστημα πρέπει να παρέχει δυνατότητα εγγραφής για ειδοποιήσεις κατά την
τροποποίηση παραγγελιών.
Προσθήκη
Το σύστημα πρέπει να παρέχει τη δυνατότητα εγγραφής για ειδοποιήσεις κατά την
προσθήκη νέων προϊόντων στο κατάστημα.
Προσθήκη
Το σύστημα πρέπει να είναι επεκτάσιμο προκειμένου να μπορεί στο μέλλον να υποστηρίξει
νέους αλγορίθμους αναζήτησης δεδομένων εύκολα.
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% επιπλέον προσπάθεια.
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
Επιτυχόντες Αποτυχόντες
Christopher Zolotas | 07.02.20 51
ΣΥΜΠΕΡΑΣΜΑΤΑ ΔΙΑΤΡΙΒΗΣ
Christopher Zolotas | 07.02.20 52
Αυτοματοποίηση Μηχανικής Λογισμικού
Πέρα από τις αρχές υψηλής συνεκτικότητας και χαμηλής σύζευξης, επιπλέον νοητικά
εργαλεία κατά τη σχεδίαση Μηχανισμών Αυτοματοποίησης αποτελούν:
1. Η αξιοποίηση μετρικών μεγέθους μετα-μοντέλων/μετασχηματισμών (Μ2Μ)
2. Η αξιοποίηση μετρικών τεχνικού υποβάθρου
Επιπλέον, για την αυτοματοποίηση REST συστημάτων, οι δύο παράγοντες που απαιτούν
προσοχή στη σχεδίαση Μηχανισμών Αυτοματοποίησης είναι:
1. Σχεδίαση μετα-μοντέλων δίνοντας έμφαση στη μοντελοποίηση των υπερσυνδέσμων
2. Ορισμός περιορισμών που διασφαλίζουν ορθή χρήση των HTTP endpoint του συστήματος
με βάση τη σημασία κάθε HTTP ρήματος.
Christopher Zolotas | 07.02.20 53
Αυτοματοποιημένη Μηχανική Λογισμικού
Μέσω της χρήσης Αυτοματοποιημένης Μηχανικής Λογισμικού για μία σειρά πτυχών των
REST υπηρεσιών, προκύπτει πως:
1. Αυξάνεται σημαντικά η παραγωγικότητα
2. Το τρέχον τεχνικό υπόβαθρο του εκάστοτε χρήστη διαδραματίζει σημαντικά μικρότερο
ρόλο όταν παρέχεται πλήρης αυτοματοποίηση.
3. Η παροχή πλήρους αυτοματοποίησης για μία κλάση προβλημάτων, καθιστά τους
Μηχανισμούς Αυτοματοποίησης εύκολους στη χρήση και επιθυμητούς ως μεθοδολογία
υλοποίησης συστημάτων Λογισμικού.
Christopher Zolotas | 07.02.20 54
Μελλοντικές Επεκτάσεις
1. Εφαρμογή της προτεινόμενης δισδιάστατης αρχιτεκτονικής Μηχανικής Λογισμικού
Οδηγούμενης από Μοντέλα και σε άλλα πεδία προβλήματος (π.χ. ρομποτική).
2. Προσαρμογή στην αρχιτεκτονική REST επιπλέον Προτύπων, μετα-μοντελοποίηση άλλων
διαδεδομένων μοντέλων ταυτοποίησης χρήστη (π.χ. OAUTH 2.0) και υποστήριξη και άλλων
τύπων αποθήκευσης μόνιμων δεδομένων (π.χ. NoSQL).
3. Διεξαγωγή πειραμάτων για:
A. Ελαχιστοποίηση λογικών και προγραμματιστικών λαθών κατά τη σχεδίαση και υλοποίηση
πολιτικών ασφάλειας με χρήση της προτεινόμενης μεθοδολογίας, σε σύγκριση με απλό
προγραμματισμό.
B. Πειραματικό έλεγχο της μείωσης της πολυπλοκότητας σχεδίασης και ανάπτυξης
Μηχανισμών Αυτοματοποίησης μέσω της χρήσης των προτεινόμενων κριτηρίων, εφόσον
διαδοθεί επαρκώς η Μηχανική Λογισμικού Οδηγούμενη από Μοντέλα.
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.
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

More Related Content

Similar to Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λογισμικού αρχιτεκτονικής REST με τεχνικές Μηχανικής Λογισμικού Οδηγούμενης από Μοντέλα

Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
ISSEL
 
Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο...
Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο...Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο...
Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο...
ISSEL
 
ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ...
ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ...ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ...
ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ...
ISSEL
 
Understanding the importance of demographic background for the website aesth...
Understanding the importance of demographic background  for the website aesth...Understanding the importance of demographic background  for the website aesth...
Understanding the importance of demographic background for the website aesth...
ISSEL
 
Detection of a DC Motor Operating Conditions Using Neural Networks in Micropr...
Detection of a DC Motor Operating Conditions Using Neural Networks in Micropr...Detection of a DC Motor Operating Conditions Using Neural Networks in Micropr...
Detection of a DC Motor Operating Conditions Using Neural Networks in Micropr...
ISSEL
 
Ανίχνευση Λειτουργικών Καταστάσεων Κινητήρα Συνεχούς Ρεύματος με Χρήση Νευρων...
Ανίχνευση Λειτουργικών Καταστάσεων Κινητήρα Συνεχούς Ρεύματος με Χρήση Νευρων...Ανίχνευση Λειτουργικών Καταστάσεων Κινητήρα Συνεχούς Ρεύματος με Χρήση Νευρων...
Ανίχνευση Λειτουργικών Καταστάσεων Κινητήρα Συνεχούς Ρεύματος με Χρήση Νευρων...
ISSEL
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
ISSEL
 
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
ISSEL
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
ISSEL
 

Similar to Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λογισμικού αρχιτεκτονικής REST με τεχνικές Μηχανικής Λογισμικού Οδηγούμενης από Μοντέλα (20)

Δούμας Οδυσσέας 7168
Δούμας Οδυσσέας 7168Δούμας Οδυσσέας 7168
Δούμας Οδυσσέας 7168
 
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
 
Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο...
Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο...Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο...
Υλοποίηση εργαλείου πλήρους στοίβας σε περιβάλλον Kubernetes για την αυτοµατο...
 
Μιλτιάδης Σιάββας 7523
Μιλτιάδης Σιάββας 7523Μιλτιάδης Σιάββας 7523
Μιλτιάδης Σιάββας 7523
 
Γεροκώστα
ΓεροκώσταΓεροκώστα
Γεροκώστα
 
Dontsios Dimitris
Dontsios DimitrisDontsios Dimitris
Dontsios Dimitris
 
ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ...
ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ...ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ...
ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΒΑΘΙΑΣ ΜΑΘΗΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΣΗΜΑΝΤΙΚΟΤΗΤΑΣ ΔΗΜΟΓΡΑΦΙΚ...
 
Understanding the importance of demographic background for the website aesth...
Understanding the importance of demographic background  for the website aesth...Understanding the importance of demographic background  for the website aesth...
Understanding the importance of demographic background for the website aesth...
 
Detection of a DC Motor Operating Conditions Using Neural Networks in Micropr...
Detection of a DC Motor Operating Conditions Using Neural Networks in Micropr...Detection of a DC Motor Operating Conditions Using Neural Networks in Micropr...
Detection of a DC Motor Operating Conditions Using Neural Networks in Micropr...
 
Ανίχνευση Λειτουργικών Καταστάσεων Κινητήρα Συνεχούς Ρεύματος με Χρήση Νευρων...
Ανίχνευση Λειτουργικών Καταστάσεων Κινητήρα Συνεχούς Ρεύματος με Χρήση Νευρων...Ανίχνευση Λειτουργικών Καταστάσεων Κινητήρα Συνεχούς Ρεύματος με Χρήση Νευρων...
Ανίχνευση Λειτουργικών Καταστάσεων Κινητήρα Συνεχούς Ρεύματος με Χρήση Νευρων...
 
Χατζηελευθερίου Ειρήνη
Χατζηελευθερίου ΕιρήνηΧατζηελευθερίου Ειρήνη
Χατζηελευθερίου Ειρήνη
 
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdfΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
 
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
 
SIEMENS PLC
SIEMENS  PLCSIEMENS  PLC
SIEMENS PLC
 
Mouzenidis Panagiotis
Mouzenidis PanagiotisMouzenidis Panagiotis
Mouzenidis Panagiotis
 
Angelos kaltsikis
Angelos kaltsikisAngelos kaltsikis
Angelos kaltsikis
 
Αλεξάνδρα Μπαλτζή 7485
Αλεξάνδρα Μπαλτζή 7485Αλεξάνδρα Μπαλτζή 7485
Αλεξάνδρα Μπαλτζή 7485
 
Labnotes 2758
Labnotes 2758Labnotes 2758
Labnotes 2758
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
 

More from ISSEL

Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...
ISSEL
 
Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...
ISSEL
 
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
ISSEL
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
ISSEL
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
ISSEL
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxΑνάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
ISSEL
 
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
ISSEL
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
ISSEL
 
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
ISSEL
 
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνΔημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
ISSEL
 
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταΕξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
ISSEL
 
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ISSEL
 
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςΑνάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
ISSEL
 
Camera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environments
ISSEL
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
ISSEL
 
Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...
ISSEL
 
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ISSEL
 
Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...
ISSEL
 
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
ISSEL
 
Design and Development of an Authorization and Access Control Mechanism for C...
Design and Development of an Authorization and Access Control Mechanism for C...Design and Development of an Authorization and Access Control Mechanism for C...
Design and Development of an Authorization and Access Control Mechanism for C...
ISSEL
 

More from ISSEL (20)

Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...
 
Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...
 
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxΑνάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
 
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
 
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
 
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνΔημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
 
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταΕξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
 
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
 
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςΑνάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
 
Camera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environments
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
 
Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...Design and implementation of an automation mechanism to automatically develop...
Design and implementation of an automation mechanism to automatically develop...
 
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΜΗΧΑΝΙΣΜΟΥ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ ΤΗΣ ΑΝΑΠΤΥΞΗΣ ΓΡΑΦΙΚΩΝ ΕΝΤΟΛ...
 
Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...Static Analysis of Python code and Identification of Potential Security Vulne...
Static Analysis of Python code and Identification of Potential Security Vulne...
 
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
Στατική Ανάλυση Κώδικα Python και Αναγνώριση Πιθανών Ευπαθειών Ασφαλείας για ...
 
Design and Development of an Authorization and Access Control Mechanism for C...
Design and Development of an Authorization and Access Control Mechanism for C...Design and Development of an Authorization and Access Control Mechanism for C...
Design and Development of an Authorization and Access Control Mechanism for C...
 

Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λογισμικού αρχιτεκτονικής REST με τεχνικές Μηχανικής Λογισμικού Οδηγούμενης από Μοντέλα

  • 1. Christopher Zolotas | 07.02.20 1 Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λογισμικού αρχιτεκτονικής REST με τεχνικές Μηχανικής Λογισμικού Οδηγούμενης από Μοντέλα.
  • 2. Christopher Zolotas | 07.02.20 2 ΠΕΡΙ ΑΥΤΟΜΑΤΟΠΟΙΗΣΗΣ
  • 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 Βασικές περιπτώσεις ύπαρξης τεχνικού υποβάθρου Περίπτωση Διαθεσιμότητα τεχνικού υποβάθρου Α Πλήρης, για όλα τα γνωστικά υποπεδία Β Πλήρης για κάποια γνωστικά υποπεδία, μηδενική για τα υπόλοιπα Γ Μερική, για όλα τα γνωστικά υποπεδία Δ Μηδενική, για όλα τα γνωστικά υποπεδία Βασικές περιπτώσεις τεχνικού υποβάθρου της ομάδας υλοποίησης ενός Μηχανισμού Αυτοματοποίησης.
  • 12. Christopher Zolotas | 07.02.20 12 Περίπτωση ύπαρξης πλήρους υποβάθρου Case S (Average) E (Average %) Πα1 13 33.33 Πα2 4.33 100 Πα3 6.5 65.39 Πα4 3.25 100 Πα5 4.33 43.62 Case NSM ΝΤΜ ASSM ASTM CSM (%) CTM (%) SME (%) TME (%) Πα1 1 1 13 13* 100 100 33.33 33.33 Πα2 2.33* 1 4.33 4.33* 55.56 100 100 100 Πα3 2* 1 6.5 6.5* 66.67 100 65.39 65.39 Πα4 2.5* 1 3.25 3.25* 50 100 100 100 Πα5 2.33* 1 4.33 4.33* 55.56 100 43.62 43.62 Αξιολόγηση Μετα-μοντέλων Αξιολόγηση Μετασχηματισμών Μ2Μ Όροι γνωστοί Όροι άγνωστοι
  • 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Μ Σύνολο Μετα-μοντέλων
  • 23. Christopher Zolotas | 07.02.20 23 Πλεονεκτήματα - 2D MDE 1. Μικρότερα, νοητικώς ευκολότερα διαχειρίσιμα μετα-μοντέλα. 2. Μείωση απαιτούμενου γνωστικού υποβάθρου ανά μέτα- μοντέλο/μετασχηματισμό. 3. Αύξηση βαθμού παραλληλοποίησης ανάπτυξης Μηχανισμών Αυτοματοποίησης. 4. Αύξηση συντηρησιμότητας και επεκτασιμότητας Μηχανισμών Αυτοματοποίησης.
  • 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. ενημερώνονται για τις τρέχουσες καιρικές συνθήκες στην πόλη τους τις οποίες παρέχει άλλη υπηρεσία στο διαδίκτυο.
  • 34. ADISPO 2020 | 29.01.20 34 RESTBlogs Demo
  • 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.
  • 42. ADISPO 2020 | 29.01.20 42 RESTBlogs Demo: εφαρμογή Προτύπων
  • 43. Christopher Zolotas | 07.02.20 43 ΠΕΙΡΑΜΑΤΙΚΑ ΑΠΟΤΕΛΕΣΜΑΤΑ ΧΡΗΣΗΣ ΑΥΤΟΜΑΤΟΠΟΙΗΜΕΝΗΣ ΜΗΧΑΝΙΚΗΣ ΛΟΓΙΣΜΙΚΟΥ Συνεισφορά: 1. Πειραματικά αποτελέσματα ανάπτυξης REST εφαρμογών σε εταιρικό περιβάλλον 2. Πειραματικά αποτελέσματα αυτόματης εφαρμογής Προτύπων Σχεδίασης σε REST εφαρμογές.
  • 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 Επιτυχόντες Αποτυχόντες
  • 51. Christopher Zolotas | 07.02.20 51 ΣΥΜΠΕΡΑΣΜΑΤΑ ΔΙΑΤΡΙΒΗΣ
  • 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