Σπύρος Σκουμπάκης

30
“Εξαγωγή της διαδικασίας ροής της πληροφορίας απο εικόνες UML διαγραμμάτων δραστηριοτήτων” Σκουμπάκης Σπυρίδων ΑΕΜ: 6585 υπό την επίβλεψη του Επικ. Καθηγητή Ανδρέα Συμεωνίδη Θεσσαλονίκη 2013

Transcript of Σπύρος Σκουμπάκης

“Εξαγωγή της διαδικασίας ροής της πληροφορίας απο εικόνες UML

διαγραμμάτων δραστηριοτήτων”

Σκουμπάκης ΣπυρίδωνΑΕΜ: 6585

υπό την επίβλεψη του Επικ. Καθηγητή Ανδρέα Συμεωνίδη

Θεσσαλονίκη 2013

Δομή της ΠαρουσίασηςΟρισμός Προβλήματος Σκοπός της ΔιπλωματικήςState of the ArtΤο εργαλείο UADxTractorΗ Oντολογία Workflow_RDFΠειράματα και ΑποτελέσματαΣυμπεράσματαΜελλοντικές Επεκτάσεις

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 2

Ορισμός Προβλήματος

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 3

Παρελθόν

Παρόν

Στόχος

SYSTEM

Search of System’s Workflow(*)

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 4

Δυναμικό μέρος

Activity Diagram

sWorkflo

w

Η δημιουργία ενός εύχρηστου εργαλείου για τους Μηχανικούς Λογισμικού(και όχι μόνο) για:

την αποδόμηση και κατανόηση

του δυναμικού μέρους του μελετώμενου συστήματος.

Σκοπός της Διπλωματικής

Διαμοιρασμός και Επαναχρησιμοποίηση της πληροφορίας

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 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

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 6

Το εργαλείο UADxTractor

• Σύστημα αυτόματης επεξεργασίας εικόνων Διαγραμμάτων Δραστηριοτήτων με άμεσο σκοπό την εξαγωγή της διαδικασίας ροής της πληροφορίας (Workflow) και την εισαγωγή της σε μια σημασιολογικά ενήμερη δομή (Οντολογία).

In a nutshell

• Αναγνώριση Οντοτήτων και κατευθυνόμενων Συσχετίσεων απο εικόνες UML διαγραμμάτων.

Novelty

• Δημιουργία μιας ολοκληρωμένης μηχανής εξόρυξης δεδομένων η οποία θα καλύπτει όλο το φάσμα των διαγραμμάτων της UML.

Ultimate goal

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 7

Περιβάλλον Ανάπτυξης (Cont. 1)

StarUML 5.0.2

ArgoUML 0.34

Java 1.6 SE

OpenCV 2.4.5

Jena API 2.10.1

IDE Eclipse SDK 3.7.2

Protégé OWL 4.1.0

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 8

Αρχιτεκτονική του εργαλείου (Cont. 2)

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 9

2.1 Image Pre-Processing

Canny Edge Detection

Edge detection via Thresholding

Smooth image to reduce noise

Convert colored image to grayscale

Template Matching

Shape Detection

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 10

2.2 Shape & Entities Detection

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 11

2.2 Shape & Entities Detection

Αναγνώριση μόνο των βασικών Οντοτήτων:

Initial and Final Node: Template MatchingTransitions: γραμμή – 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())

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 12

2.3 Associations of Entities Recognition

1. Initial Node – Action2. Final Node – Action3. Final Node – Diamond 4. Final Node – Synchronization5. Diamond – Synchronization6. Action – Synchronization7. Action – Diamond8. Action – Action

Συντεταγμένες 1ης οντότητας, γραμμής και 2ης οντότητας σε πίνακα.

Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 13

2.5 OCR Emulation

Μονόδρομες σχέσεις:1. Initial Node – Action2. Final Node – Action3. Final Node – Diamond 4. Final Node – Synchronization

Αμφίδρομες σχέσεις: (κανόνες της UML + αλγόριθμος 2 βημάτων)5. Diamond – Synchronization6. Action – Synchronization7. Action – Diamond8. Action – Action

Αποτυχία υπαρχόντων εργαλείων(π.χ. Asprise OCR) Επέμβαση του χρήστη μέσω εικόνων και κονσόλας

01/05/2023

2.4 Transitions/Lines Direction Detection

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 14

Η Οντολογία Workflow_RDF

Γενικά:• «Είναι ένας επίσημος, σαφής και

λεπτομερής ορισμός ενός πεδίου γνώσης».Ειδικά:• Κοινό μοντέλο αναπαράστασης των

βασικών εννοιών των Activity Diagrams.

• Δημιουργία – Επεξεργασία – Προβολή με το εργαλείο Protégé OWL.

• Όλες οι κλάσεις με τις υποκλάσεις του συνδέονται με τη σχέση isA.

Ιεραχική δομή Οντολογίας

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 15

Μέρος 1ο – Γενικά Χαρακτηριστικά

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 16

Μέρος 2ο – Βασικές Δομές και κόμβοι

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 17

Συσχετίσεις μεταξύ των εννοιών της Οντολογίας

[…….]

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 18

2.6 Connection with OntologyΑρχική πληροφορία (κώδικας) – Συντεταγμένες Ζητούμενη πληροφορία (Οντολογία) – Κείμενο

Έτοιμη πληροφορία – OCR Emulation: Actions (*)Guard Conditions

Sorting Entities – Ονοματοδοσία: (auto - sorted): Synchronizations, Diamonds (απο κάτω δεξιά) (*) (for sorting): Lines (απο πάνω αριστερά προς τα κάτω) (μοναδικά): Initial & Final Node

Η πληροφορία αποθηκεύεται σε πίνακες απο strings.

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 19

Πειράματα και ΑποτελέσματαΠείραμα 1ο – “Display Bowling Score”

Display Score

Show Animation

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 20

Image Pre -Processing

Input Image

Gray Scaled Image

Smoothed Image

Thresholded Image

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 21

Εντοπισμός Οντοτήτων & Συσχετίσεων

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 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

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

Οντότητες

ΣυσχετίσειςΣυντεταγμένες

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 23

Εντοπισμός κατεύθυνσης συσχετίσεων

Kateu8unsh Susxetishs ActDiam[0] = 1Kateu8unsh Susxetishs ActDiam[1] = 3Kateu8unsh Susxetishs ActDiam[2] = 1-----------------------------------------------------Kateu8unsh Susxetishs ActionsRel[0] = 1Kateu8unsh Susxetishs ActionsRel[1] = 1

1. Όταν η γραμμή πάει προς τα κάτω (αυξανόμενα y)2. Όταν η γραμμή πάει προς τα πάνω (μειούμενα y)3. Όταν η γραμμή πάει προς τα δεξιά (αυξανόμενα x)4. Όταν η γραμμή πάει προς τα αριστερά (μειούμενα x)

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 24

Σύνδεση UADxTractor & Workflow_RDF (console)

================ General Infoz ============Project Title: BowlingActivity Diagram: Display_Bowling_ScoreDomain: SportsType of Requirements: FunctionalRequirements---------------

Method of Finding Sub - Activities has started...InitialNode->Line1->Calculate_numbers_of_knocked_out_pinsDo 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_pinsSub-Act[1]:Display_Score->Line7->FinalNodeSub-Act[2]:Decision0->Line6->Non_Strike->Display_ScoreSub-Act[3]:Decision0->Line4->Strike->Show_AnimationSub-Act[4]:Calculate_the_score->Line3->Decision0Sub-Act[5]:Show_Animation->Line5->Display_ScoreSub-Act[6]:Calculate_numbers_of_knocked_out_pins->Line2->Calculate_the_score--------------------Number of Sub - Activities = 7THE END!

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 25

Σύνδεση UADxTractor & Workflow_RDF (Protégé)

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 26

Πείραμα 2ο – “Broken Lines”

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 27

Εντοπισμός Κατεύθυνσης & Οντολογία

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 28

ΣυμπεράσματαΗ εξόρυξη της διαδικασίας ροής γίνεται με επιτυχία για τα διαγράμματα

δραστηριοτήτων με κάθετη ανάπτυξη (top-down).

Έγινε το πρώτο βήμα για την αυτόματη αποκρυπτογράφηση του δυναμικού μέρους ενός έργου λογισμικού με επεξεργασία εικόνας.

Δημιουργήθηκε Βάση Γνώσης για το διαμοιρασμό της διαδικασίας ροής παρόμοιων έργων μεταξύ των Μηχανικών.

Προβλήματα παρατηρoύνται όταν δεν ακολουθούνται οι συμβάσεις και κυρίως όταν η ροή επιστρέφει προς τα πάνω μέσω decision node.

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 29

Μελλοντικές ΕπεκτάσειςΔιεύρυνση της λύσης συμπεριλαμβάνοντας όλες τις οντότητες των UML Activity Diagrams.

Βελτίωση του αλγορίθμου εύρεσης κατεύθυνσης και για τις περιπτώσεις οριζόντιας ανάπτυξης των διαγραμμάτων.

Δημιουργία διεπαφής χρήστη και ελαχιστοποίηση της παρέμβασης του.

Δημιουργία ενός αυτόνομου αποτελεσματικού OCR εργαλείου.

Επέκταση της εξόρυξης δεδομένων με βάση το εν λόγω εργαλείο και για τα υπόλοιπα «δυναμικά» διαγράμματα της UML.

01/05/2023 Σκουμπάκης Σπύρος - ΤΗΜΜΥ ΑΠΘ 30

[email protected]

Απορίες - Σχολιασμός