2. Δομή της Παρουσίασης
Ορισμός Προβλήματος
Σκοπός της Διπλωματικής
State of the Art
Το εργαλείο UADxTractor
Η Oντολογία Workflow_RDF
Πειράματα και Αποτελέσματα
Συμπεράσματα
Μελλοντικές Επεκτάσεις
4/1/2017 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 2
4. Δυναμικό
μέρος
Activity
Diagrams
Workflow
Η δημιουργία ενός εύχρηστου εργαλείου για τους Μηχανικούς
Λογισμικού(και όχι μόνο) για:
την αποδόμηση και
κατανόηση
του δυναμικού μέρους του μελετώμενου συστήματος.
Σκοπός της Διπλωματικής
4/1/2017 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 4
Διαμοιρασμός και
Επαναχρησιμοποίηση της πληροφορίας
5. State of the Art
Gronmo et al.(2005)
Yang και Chung(2006)
Il-Woong Kim et al.(2007)
Ali Hanzala Khan et al.(2008)
Διαφορές – Προβλήματα:
Χρήση υπαρχουσών οντολογιών(OWL-S)
Είσοδος XMI αρχείο και όχι (.jpg) εικόνα
Επιφανειακή/Ελλιπής μελέτη των Activity Diagrams
4/1/2017 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 5
6. Το εργαλείο UADxTractor
• Σύστημα αυτόματης επεξεργασίας εικόνων Διαγραμμάτων
Δραστηριοτήτων με άμεσο σκοπό την εξαγωγή της διαδικασίας
ροής της πληροφορίας (Workflow) και την εισαγωγή της σε μια
σημασιολογικά ενήμερη δομή (Οντολογία).
In a nutshell
• Αναγνώριση Οντοτήτων και κατευθυνόμενων Συσχετίσεων απο
εικόνες UML διαγραμμάτων.
Novelty
• Δημιουργία μιας ολοκληρωμένης μηχανής εξόρυξης δεδομένων
η οποία θα καλύπτει όλο το φάσμα των διαγραμμάτων της UML.
Ultimate goal
4/1/2017 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 6
11. 2.2 Shape & Entities Detection
Αναγνώριση μόνο των βασικών Οντοτήτων:
Initial and Final Node: Template Matching
Transitions: γραμμή – Line Detection Algorithm
(cvHoughLines2())
Action: ορθογώνιο – Contour Detection
(cvFindContours() + cvBoundingRect())
Diamond(Decision & Merge Nodes): ρόμβος – Contour Detection
(cvFindContours() + cvBoundingRect())
Synchronization Box(Fork & Join Nodes): ορθογώνιο – i) Template
Matching ii) via Line Detection
(μικρά όρια στο cvHoughLines2())
4/1/2017 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 11
12. 2.3 Associations of Entities Recognition
1. Initial Node – Action
2. Final Node – Action
3. Final Node – Diamond
4. Final Node – Synchronization
5. Diamond – Synchronization
6. Action – Synchronization
7. Action – Diamond
8. Action – Action
Συντεταγμένες 1ης οντότητας, γραμμής και 2ης οντότητας σε πίνακα.
4/1/2017 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 12
13. 2.5 OCR Emulation
Μονόδρομες σχέσεις:
1. Initial Node – Action
2. Final Node – Action
3. Final Node – Diamond
4. Final Node – Synchronization
Αμφίδρομες σχέσεις: (κανόνες της UML + αλγόριθμος 2 βημάτων)
1. Diamond – Synchronization
2. Action – Synchronization
3. Action – Diamond
4. Action – Action
Αποτυχία υπαρχόντων εργαλείων(π.χ. Asprise OCR)
Επέμβαση του χρήστη μέσω εικόνων και κονσόλας
4/1/2017 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 13
2.4 Transitions/Lines Direction Detection
14. 4/1/2017 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 14
Η Οντολογία
Workflow_RDF
Γενικά:
• «Είναι ένας επίσημος, σαφής και
λεπτομερής ορισμός ενός πεδίου γνώσης».
Ειδικά:
• Κοινό μοντέλο αναπαράστασης των
βασικών εννοιών των Activity Diagrams.
• Δημιουργία – Επεξεργασία – Προβολή με
το εργαλείο Protégé OWL.
• Όλες οι κλάσεις με τις υποκλάσεις του
συνδέονται με τη σχέση isA.
Ιεραχική δομή Οντολογίας
15. Μέρος 1ο – Γενικά Χαρακτηριστικά
4/1/2017 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 15
16. Μέρος 2ο – Βασικές Δομές και κόμβοι
4/1/2017 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 16
17. Συσχετίσεις μεταξύ των εννοιών της Οντολογίας
4/1/2017 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 17
[…….]
18. 2.6 Connection with Ontology
Αρχική πληροφορία (κώδικας) – Συντεταγμένες
Ζητούμενη πληροφορία (Οντολογία) – Κείμενο
Έτοιμη πληροφορία – OCR Emulation:
Actions (*)
Guard Conditions
Sorting Entities – Ονοματοδοσία:
(auto - sorted): Synchronizations, Diamonds (απο κάτω δεξιά) (*)
(for sorting): Lines (απο πάνω αριστερά προς τα κάτω)
(μοναδικά): Initial & Final Node
Η πληροφορία αποθηκεύεται σε πίνακες απο strings.
4/1/2017 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 18
22. Πληροφορίες απο την κονσόλα του Eclipse
After all checks ---> 8 Line(s)--- were detected, (Without Line Connection)
After all checks ---> 7 Line(s)--- were detected, (With Line Connection)
After all checks ---> 4 Action(s)--- were detected
After all checks ---> 1 Diamond(s)--- were detected
After all checks ---> 0 Synchronization-Box(es)--- were detected, (With LineD)
----------- Associations -----------
Number of [Initial Node - Action] Relationships = 1
Number of [Final Node - Action] Relationships = 1
Number of [Final Node - Diamond] Relationships = 0
Number of [Final Node - Synchronization] Relationships = 0
Number of [Diamond - Synchronization] Relationships = 0
Number of [Action - Synchronization] Relationships = 0
Number of [Action - Diamond] Relationships = 3
Number of [Action - Action] Relationships = 2
4/1/2017 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 22
InitialNode :
Upper Left Corner: (107,20)
Width of initial node: 21
Height of initial node: 21
------------------------------------------------
FinalNode :
Upper Left Corner: (100,543)
Width of final node: 26
Height of final node: 26
23. Εντοπισμός κατεύθυνσης συσχετίσεων
4/1/2017 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 23
Kateu8unsh Susxetishs ActDiam[0] = 1
Kateu8unsh Susxetishs ActDiam[1] = 3
Kateu8unsh Susxetishs ActDiam[2] = 1
-----------------------------------------------------
Kateu8unsh Susxetishs ActionsRel[0] = 1
Kateu8unsh Susxetishs ActionsRel[1] = 1
1. Όταν η γραμμή πάει προς τα κάτω (αυξανόμενα y)
2. Όταν η γραμμή πάει προς τα πάνω (μειούμενα y)
3. Όταν η γραμμή πάει προς τα δεξιά (αυξανόμενα x)
4. Όταν η γραμμή πάει προς τα αριστερά (μειούμενα x)
24. 4/1/2017 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 24
Σύνδεση UADxTractor & Workflow_RDF (console)
================ General Infoz ============
Project Title: Bowling
Activity Diagram: Display_Bowling_Score
Domain: Sports
Type of Requirements: FunctionalRequirements
---------------
Method of Finding Sub - Activities has started...
InitialNode->Line1->Calculate_numbers_of_knocked_out_pins
Do you agree with this activity? Press y(Yes) or n(No)
y
---- Dhmiourghse NEO Fakelo !!!!!!!!!!!!!!! ----
========================
So, the [Sub - Activities] of 2 entities are:
---------------------------------------------
Sub-Act[0]:InitialNode->Line1->Calculate_numbers_of_knocked_out_pins
Sub-Act[1]:Display_Score->Line7->FinalNode
Sub-Act[2]:Decision0->Line6->Non_Strike->Display_Score
Sub-Act[3]:Decision0->Line4->Strike->Show_Animation
Sub-Act[4]:Calculate_the_score->Line3->Decision0
Sub-Act[5]:Show_Animation->Line5->Display_Score
Sub-Act[6]:Calculate_numbers_of_knocked_out_pins->Line2->Calculate_the_score
--------------------
Number of Sub - Activities = 7
THE END!
28. Συμπεράσματα
Η εξόρυξη της διαδικασίας ροής γίνεται με επιτυχία για τα διαγράμματα
δραστηριοτήτων με κάθετη ανάπτυξη (top-down).
Έγινε το πρώτο βήμα για την αυτόματη αποκρυπτογράφηση του
δυναμικού μέρους ενός έργου λογισμικού με επεξεργασία εικόνας.
Δημιουργήθηκε Βάση Γνώσης για το διαμοιρασμό της διαδικασίας ροής
παρόμοιων έργων μεταξύ των Μηχανικών.
Προβλήματα παρατηρoύνται όταν δεν ακολουθούνται οι συμβάσεις και
κυρίως όταν η ροή επιστρέφει προς τα πάνω μέσω decision node.
4/1/2017 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 28
29. Μελλοντικές Επεκτάσεις
Διεύρυνση της λύσης συμπεριλαμβάνοντας όλες τις οντότητες των UML
Activity Diagrams.
Βελτίωση του αλγορίθμου εύρεσης κατεύθυνσης και για τις περιπτώσεις
οριζόντιας ανάπτυξης των διαγραμμάτων.
Δημιουργία διεπαφής χρήστη και ελαχιστοποίηση της παρέμβασης του.
Δημιουργία ενός αυτόνομου αποτελεσματικού OCR εργαλείου.
Επέκταση της εξόρυξης δεδομένων με βάση το εν λόγω εργαλείο και για
τα υπόλοιπα «δυναμικά» διαγράμματα της UML.
4/1/2017 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 29
Η εξαγωγή και η αποθήκευση της πληροφορίας κάθε συστήματος σε κατάλληλη μορφή προσπελάσιμη και επεξεργάσιμη τόσο από άνθρωπο, όσο και από μηχανή (πρόγραμμα), γίνονται ολοένα και περισσότερο αναγκαίες στην πορεία προς τη δημιουργία του Σημασιολογικού Ιστού (Semantic Web) ως αντικαταστάτη του σημερινού Διαδικτύου (Web 2.0).
Ένα πρόβλημα που συχνά αντιμετωπίζουν οι Μηχανικοί Λογισμικού κατά την ανάπτυξη ενός νέου έργου λογισμικού είναι ότι δεν μπορούν να βρουν εύκολα(στο διαδίκτυο) τη διαδικασία ροής της πληροφορίας για παρόμοιους τύπους συστημάτων. Το μόνο που μπορούν να βρουν είναι .jpg εικόνες των UML διαγραμμάτων δραστηριοτήτων από αντίστοιχα έργα λογισμικού, τα οποία και αναπαριστούν γραφικά τη διαδικασία ροής.
Η αυτοματοποίηση του διαμοιρασμού και της επαναχρησιμοποίησης της διαδικασία ροής της πληροφορίας(workflow) είναι λειτουργία καίριας σημασίας και εξελίσσεται σε επιτακτική ανάγκη στις μέρες μας. Αυτό αφορά μια μελέτη της UML υπό το πρίσμα της μοντελοποίησης συστημάτων λογισμικού και πιο συγκεκριμένα μια αναλυτική παρουσίαση των διαγραμμάτων Activity, τα οποία και περιέχουν τη ζητούμενη ως εξαγόμενη πληροφορία, δηλαδή τη διαδικασία ροής.
Η βασικότερη έννοια στην Οντολογία είναι η ActivityDiagram η οποία ουσιαστικά αναπαριστά το εισαγόμενο διάγραμμα και επομένως ενώνεται πρακτικά με όλες τις υπόλοιπες έννοιες. Οι μόνες έννοιες με τις οποίες δεν συνδέεται με ρητή συσχέτιση είναι η CompositeActivity και η AtomicActivity_Action καθώς με αυτές υπάρχει η υπονοούμενη isA σχέση.
Αποφασίστηκε η επιλογή της έννοιας Transition_Edge ως ενοποιό στοιχείο όλων των βασικών δομικών συστατικών που περιγράφονται. Οι συζυγείς σχέσεις που αναλαμβάνουν τη σημασιολογική ανακατασκευή του κάθε διαγράμματος είναι οι has_source_state, is_source_state_of και οι has_target_state, is_target_state_of, συνδέοντας ταυτόχρονα κάθε γραμμή με την οντότητα από την οποία ξεκινάει και με την οντότητα στην οποία καταλήγει.