SlideShare a Scribd company logo
1 of 22
Περιβάλλον ανάπτυξης για δέντρα απόφασης
Τσιουμπρής Ιωάννης
Πτυχιακή Εργασία - HOU-CS-UGP-2015-21
Επιβλέπων: Δημήτρης Καλλές
Η πτυχιακή έχει σαν αποκλειστικό αντικείμενο την
εφαρμογή Decision Tree Toolkit (DTT) και είχε σαν
στόχους τους παρακάτω:
 Αναβάθμιση : Διερεύνηση επανασχεδίασης και
αλλαγής της αρχιτεκτονικής του συστήματος
 Επέκταση: Ανάπτυξη Διεπαφών με τρίτα
συστήματα.
 Ανάπτυξη : Ανάπτυξη & συντήρηση της
εφαρμογής , ένταξη σε Source Version Control
2
Σκοπός της Πτυχιακής
Πάτρα 11/07/2015 Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
Πεδίο Εφαρμογής
Τα δέντρα απόφασης αποτελούν ένα εξαιρετικά
ενδιαφέρον υποπεδίο της μηχανικής μάθησης με
σκοπό την αξιοποίηση υπαρχόντων πληροφοριών και
την εξαγωγή συμπερασμάτων που είναι εύκολα στην
κατανόηση. Αυτό ακριβώς είναι και το αντικείμενο της
εφαρμογής DTT .
Πάτρα 11/07/2015 3Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
Η εφαρμογή Decision Tree Toolkit
Η εφαρμογή Decision Tree Toolkit αναπτύχθηκε σε γλώσσα Java
στις αρχές του 2000 στην αρχή σαν βιβλιοθήκη αλγορίθμων και
στην συνέχεια επεκτάθηκε με την προσθήκη γραφικού
περιβάλλοντος αλληλεπίδρασης (GUI)
Πάτρα 11/07/2015 4Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
Αρχική εικόνα – Θετικά/Αρνητικά
 Θετικά
 Εύρωστη εφαρμογή χωρίς προβλήματα,αξιόπιστη με
πλήθος δυνατοτήτων στο αντικείμενο που πραγματεύεται.
 Χρήση προγραμματιστικών τεχνικών με εξαιρετικό
ενδιαφέρον : Reflection,2D graphics
 Πλούσιο Documentation
 Αρνητικά
 Κλάσεις μεγάλου μεγέθους με προβληματική ονοματολογία
μεταβλητών, στοιχείων.
 Παρωχημένο γραφικό περιβάλλον αλληλεπίδρασης χρήστη.
 Περιορισμένες δυνατότητες εξαγωγής των αποτελεσμάτων.
 Έλλειψη έργου-project που θα έκανε δυνατή την ανάπτυξη
της μέσα από ένα σύγχρονο Ολοκληρωμένο Περιβάλλον
Ανάπτυξης (IDE) .
Πάτρα 11/07/2015 5Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
Σχεδιασμός
Η επέμβαση σε μια εφαρμογή τόσο περίπλοκη
απαίτησε προσεκτικό σχεδιασμό ώστε να βρεθεί η
καλύτερη δυνατή λύση
Πάτρα 11/07/2015 6Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
•Αξιολόγηση υπάρχοντος συστήματος με
προσεκτική ανάγνωση του κώδικα και την
καταγραφή του.
•Προτάσεις και αντιπροτάσεις για την
καλύτερη διαχείριση και την
αποτελεσματική ανάπτυξη της νέας
έκδοσης της εφαρμογής.
Μεταφορά σε Project
 Σχεδίαση (συνέχεια)
Πολύ γρήγορα έγινε αντιληπτό ότι η υπάρχουσα
δομή της εφαρμογής από άποψη οργάνωσης θα
αποτελούσε τροχοπέδη στην περαιτέρω ανάπτυξη
οπότε η 1η κίνηση ήταν να μεταφερθεί σε project του
Eclipse IDE
Πάτρα 11/07/2015 7Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
Υπάρχουσες κλάσεις
Πάτρα 11/07/2015 8
Η ανάγνωση του κώδικα κατά το στάδιο του
σχεδιασμού έφερε στην επιφάνεια το πρόβλημα
των γιγάντιων κλάσεων(π.χ Visualize) που έκανε
ιδιαίτερα δυσχερή την παρακολούθηση της
λειτουργίας της εφαρμογής
Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
Η διαμοίραση της λειτουργικότητας
Πάτρα 11/07/2015 9
Μετά την μεταφορά στο
IDE ως project η 2η κίνηση
που έπρεπε να γίνει ήταν
να «διαμοιραστούν » οι
κλάσεις με υπερβολικό
μέγεθος και η
λειτουργικότητα τους να
διαμοιραστεί σε μικρότερες
κλασεις. Κύριος
εκπρόσωπος η κλάση
Visualize που ουσιαστικά
αποτελούσε το GUI του
DTT.
Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
JavaFX 8
Πάτρα 11/07/2015 10Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
To GUI ήταν αρκετά παρωχημένο και παρόλο που ήταν απόλυτα
λειτουργικό δεν προδιάθετε για την δυναμικότητα της εφαρμογής.
Η λύση που δόθηκε ήταν η νέα πλατφόρμα της Java για ανάπτυξη
εφαρμογών σε επίπεδο πελάτη που είναι η Java FX 8.
Η επίδραση στην ανάπτυξη της εφαρμογής ήταν καταλυτική λόγω
της ιδιαίτερης προσέγγισης στην ανάπτυξη γραφικών με την χρήση
FXML
Η νέα αντίληψη στην συγγραφή
εφαρμογών με γραφικό περιβάλλον
Πάτρα 11/07/2015 11Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
Έως τώρα η δημιουργία γραφικών περιβαλλόντων περιοριζόταν είτε στην
συγγραφή τους με την χρήση κώδικα είτε με την βοήθεια κάποιου editor
που αναλάμβανε την συγγραφή κώδικα με υποβοήθηση
H JavaFX με την χρήση του FXML φέρνει μια καινούργια εποχή στην
ανάπτυξη GUI με την χρήση κατανοητής και δυναμικά εκτελούμενης
γλώσσας με σύνταξη παρόμοια με XML
Η νέα αντίληψη (συνέχεια)
Με την χρήση FXML το γραφικό μας περιβάλλον είναι ανεξάρτητο
από την κύρια εφαρμογή και μπορεί να αναπτύσσεται ανεξάρτητα
και δυναμικά. Μια κλάση controller αναλαμβάνει την διασύνδεση
με την κυρίως εφαρμογή.
Πάτρα 11/07/2015 12Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
Η καταλυτική επίδραση της
JavaFX+FXML
Πάτρα 11/07/2015 13Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
Η ανάγκη για διαμοιρασμό της λειτουργικότητας της εφαρμογής
είχε επισημανθεί από την αρχή και τώρα με την χρήση της
JavaFX ήταν μια σχεδιαστική αναγκαιότητα.
• Όλες οι φόρμες
ξανασχεδιάστηκαν από
την αρχή με την βοήθεια
του Scene Builder.
• Η λειτουργικότητα που
επιτελούνταν σε κάθε
φόρμα μεταφέρθηκε στον
αντίστοιχο controller.
Η νέα δομή της εφαρμογής
Πάτρα 11/07/2015 14Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
Το γραφικό
Περιβάλλον
Βοηθητικές κλάσεις
αποκλειστικά για το
γραφικό
περιβάλλον
Κλάσεις κοινές
για γραφικό
περιβάλλον &
αλγοριθμικό
πυρήνα
Μικροεφαρμογή
Text editor
Το νέο πρόσωπο της εφαρμογής
Πάτρα 11/07/2015 15Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
Από την πλευρά του χρήστη
Από την πλευρά
του
προγραμματιστή
Η συνεργασία με τρίτες εφαρμογές
Ένας από τους βασικούς στόχους που είχαν τεθεί ήταν η εφαρμογή να
μπορεί να παράγει αρχεία που να εμπεριέχουν την πληροφορία των
παραγόμενων δέντρων και είναι δυνατό να επεξεργαστούν από
τρίτες εφαρμογές. Τώρα μπορεί να παράγει αρχεία που να
διαβάζονται από εφαρμογές που υποστηρίζουν το πρότυπο
GraphViz
Πάτρα 11/07/2015 16Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
Η συνεργασία με τρίτες
εφαρμογές(συνέχεια)
Πάτρα 11/07/2015 17
Επιπλέον της εξαγωγής σε GraphViz προστέθηκε η δυνατότητα της
εξαγωγής των παραγόμενων δέντρων και σε μορφή XML
Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
Αν και αυτή την στιγμή δεν
ανευρέθηκε εφαρμογή που να
παράγει το καλαίσθητο
αποτέλεσμα του GraphViz το
εύρος της πληροφορίας που
μπορεί να αποθηκευτεί σε 1
αρχείο XML είναι σίγουρο ότι
θα αποτελέσει το επόμενο
βήμα της εφαρμογής DTT
Version Control System
Πάτρα 11/07/2015 18
Μια εφαρμογή με τόση δυναμική ήταν αδύνατο να αναπτυχθεί χωρίς
τον έλεγχο και τις αυξημένες δυνατότητες ενός συστήματος
διαχείρισης πηγαίου κώδικα (Version Control System)
Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
Συμπεράσματα
 Μια καθόλα εξαιρετική εφαρμογή απέκτησε μια
καινούργια δομή με σαφώς πιο ξεκάθαρη εικόνα για
τον κάθε προγραμματιστή που θα θελήσει να
ασχοληθεί μαζί της.
 Προστέθηκαν νέες δυνατότητες που της επιτρέπουν
την διασύνδεση με τρίτες εφαρμογές
 Ένα σημαντικό τμήμα της είναι γραμμένο σε μια
καινούργια πλατφόρμα που θέτει από μόνη της νέες
προγραμματιστικές προκλήσεις.
Πάτρα 11/07/2015 19Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
Εμπειρία
Πάτρα 11/07/2015 20
 Αποκτήθηκε σημαντική εμπειρία στην διαχείριση
μια μεγάλης εφαρμογής στην γλώσσα Java που
είναι μια σημαντική παρακαταθήκη για το μέλλον
ειδικά με την προσθήκη της πλατφόρμας JavaFX.
 Οι απαιτήσεις της εφαρμογής οδήγησαν στην
χρήση και εξοικείωση με εργαλεία που ήταν
άγνωστα μέχρι που απαιτήθηκαν και που έδωσαν
νέες προγραμματιστικές κατευθύνσεις.
 Δόθηκαν σε αρκετά σημεία δύσκολες λύσεις που
ήταν αποτέλεσμα καθαρά ατομικής σκέψης και
περισυλλογής.
Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
Μελλοντικές επεκτάσεις
Η εφαρμογή μπορεί να χαρακτηριστεί «ανεξάντλητη» καθώς
έχει κυριολεκτικά απεριόριστες δυνατότητες για επέκταση,
αναβάθμιση και εξέλιξη.
Ενδεικτικά αναφέρω μερικές :
• Πολυνηματική επεξεργασία δεδομένων
• Χρήση XML στον Visualizer για την παραγωγή
οπτικοποιημένων δέντρων απόφασης
• Web Interface
• Πολυγλωσσική υποστήριξη.
Πάτρα 11/07/2015 21Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
Ευχαριστίες
Ευχαριστώ για την προσοχή σας
Ερωτήσεις
Πάτρα 11/07/2015 Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 ) 22

More Related Content

Similar to Τσιουμπρής_HOU-CS-UGP-2015-21

Presentation psi - καινοτομώντας με ανοικτά δεδομένα
Presentation psi -  καινοτομώντας με ανοικτά δεδομέναPresentation psi -  καινοτομώντας με ανοικτά δεδομένα
Presentation psi - καινοτομώντας με ανοικτά δεδομέναGeorgios Karamanolis
 
Diploma Thesis:Angular vs React
Diploma Thesis:Angular vs ReactDiploma Thesis:Angular vs React
Diploma Thesis:Angular vs ReactEvagelosManousakis
 
C3 1 operating systems
C3 1 operating systemsC3 1 operating systems
C3 1 operating systemspapettas
 
Development of an automatic procedure for Continuous Integration
Development of an automatic procedure for Continuous IntegrationDevelopment of an automatic procedure for Continuous Integration
Development of an automatic procedure for Continuous IntegrationISSEL
 
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούΑνάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούISSEL
 
Thesis.Net - Training
Thesis.Net - TrainingThesis.Net - Training
Thesis.Net - TrainingAnna Tsolakou
 
Hewlett-Packard Enterprise Case Study
Hewlett-Packard Enterprise Case StudyHewlett-Packard Enterprise Case Study
Hewlett-Packard Enterprise Case StudyStavros Koloniaris
 
Presentation 6
Presentation 6Presentation 6
Presentation 6Annaa77
 
Παρουσίαση θεμάτων διπλωματικών 2010
Παρουσίαση θεμάτων διπλωματικών 2010Παρουσίαση θεμάτων διπλωματικών 2010
Παρουσίαση θεμάτων διπλωματικών 2010ISSEL
 
Micro Front-ends and Microservices Architecture in Web Application Development
Micro Front-ends and Microservices Architecture in Web Application DevelopmentMicro Front-ends and Microservices Architecture in Web Application Development
Micro Front-ends and Microservices Architecture in Web Application DevelopmentISSEL
 
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...ISSEL
 
ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΕΡΓΑΛΕΙΟΥ ΓΙΑ ΔΗΜΙΟΥΡΓΙΑ ΨΗΦΙΑΚΗΣ ΑΦΙΣΑΣ
ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΕΡΓΑΛΕΙΟΥ ΓΙΑ ΔΗΜΙΟΥΡΓΙΑ ΨΗΦΙΑΚΗΣ ΑΦΙΣΑΣΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΕΡΓΑΛΕΙΟΥ ΓΙΑ ΔΗΜΙΟΥΡΓΙΑ ΨΗΦΙΑΚΗΣ ΑΦΙΣΑΣ
ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΕΡΓΑΛΕΙΟΥ ΓΙΑ ΔΗΜΙΟΥΡΓΙΑ ΨΗΦΙΑΚΗΣ ΑΦΙΣΑΣathanasia trakada
 

Similar to Τσιουμπρής_HOU-CS-UGP-2015-21 (20)

Presentation psi - καινοτομώντας με ανοικτά δεδομένα
Presentation psi -  καινοτομώντας με ανοικτά δεδομέναPresentation psi -  καινοτομώντας με ανοικτά δεδομένα
Presentation psi - καινοτομώντας με ανοικτά δεδομένα
 
Diploma Thesis:Angular vs React
Diploma Thesis:Angular vs ReactDiploma Thesis:Angular vs React
Diploma Thesis:Angular vs React
 
SingularLogic Galaxy
SingularLogic GalaxySingularLogic Galaxy
SingularLogic Galaxy
 
C3 1 operating systems
C3 1 operating systemsC3 1 operating systems
C3 1 operating systems
 
Development of an automatic procedure for Continuous Integration
Development of an automatic procedure for Continuous IntegrationDevelopment of an automatic procedure for Continuous Integration
Development of an automatic procedure for Continuous Integration
 
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικούΑνάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
Ανάπτυξη αυτοματοποιημένης διαδικασίας Continuous Integration σε έργα λογισμικού
 
Thesis.Net - Training
Thesis.Net - TrainingThesis.Net - Training
Thesis.Net - Training
 
Agile Point
Agile PointAgile Point
Agile Point
 
AgilePoint BPMs
AgilePoint BPMsAgilePoint BPMs
AgilePoint BPMs
 
Agile Point
Agile PointAgile Point
Agile Point
 
Hewlett-Packard Enterprise Case Study
Hewlett-Packard Enterprise Case StudyHewlett-Packard Enterprise Case Study
Hewlett-Packard Enterprise Case Study
 
Presentation 6
Presentation 6Presentation 6
Presentation 6
 
Presentation 6
Presentation 6Presentation 6
Presentation 6
 
Presentation 6
Presentation 6Presentation 6
Presentation 6
 
Presentation 6 (1)
Presentation 6 (1)Presentation 6 (1)
Presentation 6 (1)
 
Presentation 6 (1)
Presentation 6 (1)Presentation 6 (1)
Presentation 6 (1)
 
Παρουσίαση θεμάτων διπλωματικών 2010
Παρουσίαση θεμάτων διπλωματικών 2010Παρουσίαση θεμάτων διπλωματικών 2010
Παρουσίαση θεμάτων διπλωματικών 2010
 
Micro Front-ends and Microservices Architecture in Web Application Development
Micro Front-ends and Microservices Architecture in Web Application DevelopmentMicro Front-ends and Microservices Architecture in Web Application Development
Micro Front-ends and Microservices Architecture in Web Application Development
 
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
Η αρχιτεκτονική των Microservices και Micro Front-ends στην Ανάπτυξη Εφαρµογώ...
 
ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΕΡΓΑΛΕΙΟΥ ΓΙΑ ΔΗΜΙΟΥΡΓΙΑ ΨΗΦΙΑΚΗΣ ΑΦΙΣΑΣ
ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΕΡΓΑΛΕΙΟΥ ΓΙΑ ΔΗΜΙΟΥΡΓΙΑ ΨΗΦΙΑΚΗΣ ΑΦΙΣΑΣΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΕΡΓΑΛΕΙΟΥ ΓΙΑ ΔΗΜΙΟΥΡΓΙΑ ΨΗΦΙΑΚΗΣ ΑΦΙΣΑΣ
ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΕΡΓΑΛΕΙΟΥ ΓΙΑ ΔΗΜΙΟΥΡΓΙΑ ΨΗΦΙΑΚΗΣ ΑΦΙΣΑΣ
 

Τσιουμπρής_HOU-CS-UGP-2015-21

  • 1. Περιβάλλον ανάπτυξης για δέντρα απόφασης Τσιουμπρής Ιωάννης Πτυχιακή Εργασία - HOU-CS-UGP-2015-21 Επιβλέπων: Δημήτρης Καλλές
  • 2. Η πτυχιακή έχει σαν αποκλειστικό αντικείμενο την εφαρμογή Decision Tree Toolkit (DTT) και είχε σαν στόχους τους παρακάτω:  Αναβάθμιση : Διερεύνηση επανασχεδίασης και αλλαγής της αρχιτεκτονικής του συστήματος  Επέκταση: Ανάπτυξη Διεπαφών με τρίτα συστήματα.  Ανάπτυξη : Ανάπτυξη & συντήρηση της εφαρμογής , ένταξη σε Source Version Control 2 Σκοπός της Πτυχιακής Πάτρα 11/07/2015 Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
  • 3. Πεδίο Εφαρμογής Τα δέντρα απόφασης αποτελούν ένα εξαιρετικά ενδιαφέρον υποπεδίο της μηχανικής μάθησης με σκοπό την αξιοποίηση υπαρχόντων πληροφοριών και την εξαγωγή συμπερασμάτων που είναι εύκολα στην κατανόηση. Αυτό ακριβώς είναι και το αντικείμενο της εφαρμογής DTT . Πάτρα 11/07/2015 3Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
  • 4. Η εφαρμογή Decision Tree Toolkit Η εφαρμογή Decision Tree Toolkit αναπτύχθηκε σε γλώσσα Java στις αρχές του 2000 στην αρχή σαν βιβλιοθήκη αλγορίθμων και στην συνέχεια επεκτάθηκε με την προσθήκη γραφικού περιβάλλοντος αλληλεπίδρασης (GUI) Πάτρα 11/07/2015 4Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
  • 5. Αρχική εικόνα – Θετικά/Αρνητικά  Θετικά  Εύρωστη εφαρμογή χωρίς προβλήματα,αξιόπιστη με πλήθος δυνατοτήτων στο αντικείμενο που πραγματεύεται.  Χρήση προγραμματιστικών τεχνικών με εξαιρετικό ενδιαφέρον : Reflection,2D graphics  Πλούσιο Documentation  Αρνητικά  Κλάσεις μεγάλου μεγέθους με προβληματική ονοματολογία μεταβλητών, στοιχείων.  Παρωχημένο γραφικό περιβάλλον αλληλεπίδρασης χρήστη.  Περιορισμένες δυνατότητες εξαγωγής των αποτελεσμάτων.  Έλλειψη έργου-project που θα έκανε δυνατή την ανάπτυξη της μέσα από ένα σύγχρονο Ολοκληρωμένο Περιβάλλον Ανάπτυξης (IDE) . Πάτρα 11/07/2015 5Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
  • 6. Σχεδιασμός Η επέμβαση σε μια εφαρμογή τόσο περίπλοκη απαίτησε προσεκτικό σχεδιασμό ώστε να βρεθεί η καλύτερη δυνατή λύση Πάτρα 11/07/2015 6Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 ) •Αξιολόγηση υπάρχοντος συστήματος με προσεκτική ανάγνωση του κώδικα και την καταγραφή του. •Προτάσεις και αντιπροτάσεις για την καλύτερη διαχείριση και την αποτελεσματική ανάπτυξη της νέας έκδοσης της εφαρμογής.
  • 7. Μεταφορά σε Project  Σχεδίαση (συνέχεια) Πολύ γρήγορα έγινε αντιληπτό ότι η υπάρχουσα δομή της εφαρμογής από άποψη οργάνωσης θα αποτελούσε τροχοπέδη στην περαιτέρω ανάπτυξη οπότε η 1η κίνηση ήταν να μεταφερθεί σε project του Eclipse IDE Πάτρα 11/07/2015 7Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
  • 8. Υπάρχουσες κλάσεις Πάτρα 11/07/2015 8 Η ανάγνωση του κώδικα κατά το στάδιο του σχεδιασμού έφερε στην επιφάνεια το πρόβλημα των γιγάντιων κλάσεων(π.χ Visualize) που έκανε ιδιαίτερα δυσχερή την παρακολούθηση της λειτουργίας της εφαρμογής Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
  • 9. Η διαμοίραση της λειτουργικότητας Πάτρα 11/07/2015 9 Μετά την μεταφορά στο IDE ως project η 2η κίνηση που έπρεπε να γίνει ήταν να «διαμοιραστούν » οι κλάσεις με υπερβολικό μέγεθος και η λειτουργικότητα τους να διαμοιραστεί σε μικρότερες κλασεις. Κύριος εκπρόσωπος η κλάση Visualize που ουσιαστικά αποτελούσε το GUI του DTT. Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
  • 10. JavaFX 8 Πάτρα 11/07/2015 10Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 ) To GUI ήταν αρκετά παρωχημένο και παρόλο που ήταν απόλυτα λειτουργικό δεν προδιάθετε για την δυναμικότητα της εφαρμογής. Η λύση που δόθηκε ήταν η νέα πλατφόρμα της Java για ανάπτυξη εφαρμογών σε επίπεδο πελάτη που είναι η Java FX 8. Η επίδραση στην ανάπτυξη της εφαρμογής ήταν καταλυτική λόγω της ιδιαίτερης προσέγγισης στην ανάπτυξη γραφικών με την χρήση FXML
  • 11. Η νέα αντίληψη στην συγγραφή εφαρμογών με γραφικό περιβάλλον Πάτρα 11/07/2015 11Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 ) Έως τώρα η δημιουργία γραφικών περιβαλλόντων περιοριζόταν είτε στην συγγραφή τους με την χρήση κώδικα είτε με την βοήθεια κάποιου editor που αναλάμβανε την συγγραφή κώδικα με υποβοήθηση H JavaFX με την χρήση του FXML φέρνει μια καινούργια εποχή στην ανάπτυξη GUI με την χρήση κατανοητής και δυναμικά εκτελούμενης γλώσσας με σύνταξη παρόμοια με XML
  • 12. Η νέα αντίληψη (συνέχεια) Με την χρήση FXML το γραφικό μας περιβάλλον είναι ανεξάρτητο από την κύρια εφαρμογή και μπορεί να αναπτύσσεται ανεξάρτητα και δυναμικά. Μια κλάση controller αναλαμβάνει την διασύνδεση με την κυρίως εφαρμογή. Πάτρα 11/07/2015 12Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
  • 13. Η καταλυτική επίδραση της JavaFX+FXML Πάτρα 11/07/2015 13Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 ) Η ανάγκη για διαμοιρασμό της λειτουργικότητας της εφαρμογής είχε επισημανθεί από την αρχή και τώρα με την χρήση της JavaFX ήταν μια σχεδιαστική αναγκαιότητα. • Όλες οι φόρμες ξανασχεδιάστηκαν από την αρχή με την βοήθεια του Scene Builder. • Η λειτουργικότητα που επιτελούνταν σε κάθε φόρμα μεταφέρθηκε στον αντίστοιχο controller.
  • 14. Η νέα δομή της εφαρμογής Πάτρα 11/07/2015 14Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 ) Το γραφικό Περιβάλλον Βοηθητικές κλάσεις αποκλειστικά για το γραφικό περιβάλλον Κλάσεις κοινές για γραφικό περιβάλλον & αλγοριθμικό πυρήνα Μικροεφαρμογή Text editor
  • 15. Το νέο πρόσωπο της εφαρμογής Πάτρα 11/07/2015 15Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 ) Από την πλευρά του χρήστη Από την πλευρά του προγραμματιστή
  • 16. Η συνεργασία με τρίτες εφαρμογές Ένας από τους βασικούς στόχους που είχαν τεθεί ήταν η εφαρμογή να μπορεί να παράγει αρχεία που να εμπεριέχουν την πληροφορία των παραγόμενων δέντρων και είναι δυνατό να επεξεργαστούν από τρίτες εφαρμογές. Τώρα μπορεί να παράγει αρχεία που να διαβάζονται από εφαρμογές που υποστηρίζουν το πρότυπο GraphViz Πάτρα 11/07/2015 16Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
  • 17. Η συνεργασία με τρίτες εφαρμογές(συνέχεια) Πάτρα 11/07/2015 17 Επιπλέον της εξαγωγής σε GraphViz προστέθηκε η δυνατότητα της εξαγωγής των παραγόμενων δέντρων και σε μορφή XML Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 ) Αν και αυτή την στιγμή δεν ανευρέθηκε εφαρμογή που να παράγει το καλαίσθητο αποτέλεσμα του GraphViz το εύρος της πληροφορίας που μπορεί να αποθηκευτεί σε 1 αρχείο XML είναι σίγουρο ότι θα αποτελέσει το επόμενο βήμα της εφαρμογής DTT
  • 18. Version Control System Πάτρα 11/07/2015 18 Μια εφαρμογή με τόση δυναμική ήταν αδύνατο να αναπτυχθεί χωρίς τον έλεγχο και τις αυξημένες δυνατότητες ενός συστήματος διαχείρισης πηγαίου κώδικα (Version Control System) Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
  • 19. Συμπεράσματα  Μια καθόλα εξαιρετική εφαρμογή απέκτησε μια καινούργια δομή με σαφώς πιο ξεκάθαρη εικόνα για τον κάθε προγραμματιστή που θα θελήσει να ασχοληθεί μαζί της.  Προστέθηκαν νέες δυνατότητες που της επιτρέπουν την διασύνδεση με τρίτες εφαρμογές  Ένα σημαντικό τμήμα της είναι γραμμένο σε μια καινούργια πλατφόρμα που θέτει από μόνη της νέες προγραμματιστικές προκλήσεις. Πάτρα 11/07/2015 19Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
  • 20. Εμπειρία Πάτρα 11/07/2015 20  Αποκτήθηκε σημαντική εμπειρία στην διαχείριση μια μεγάλης εφαρμογής στην γλώσσα Java που είναι μια σημαντική παρακαταθήκη για το μέλλον ειδικά με την προσθήκη της πλατφόρμας JavaFX.  Οι απαιτήσεις της εφαρμογής οδήγησαν στην χρήση και εξοικείωση με εργαλεία που ήταν άγνωστα μέχρι που απαιτήθηκαν και που έδωσαν νέες προγραμματιστικές κατευθύνσεις.  Δόθηκαν σε αρκετά σημεία δύσκολες λύσεις που ήταν αποτέλεσμα καθαρά ατομικής σκέψης και περισυλλογής. Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
  • 21. Μελλοντικές επεκτάσεις Η εφαρμογή μπορεί να χαρακτηριστεί «ανεξάντλητη» καθώς έχει κυριολεκτικά απεριόριστες δυνατότητες για επέκταση, αναβάθμιση και εξέλιξη. Ενδεικτικά αναφέρω μερικές : • Πολυνηματική επεξεργασία δεδομένων • Χρήση XML στον Visualizer για την παραγωγή οπτικοποιημένων δέντρων απόφασης • Web Interface • Πολυγλωσσική υποστήριξη. Πάτρα 11/07/2015 21Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 )
  • 22. Ευχαριστίες Ευχαριστώ για την προσοχή σας Ερωτήσεις Πάτρα 11/07/2015 Τσιουμπρής Ι.(HOU-CS-UGP-2015-21 ) 22