BPMN Abstraction Tool ΠΑΡΟΥΣΙΑΣΗ ΕΡΓΑΛΕΙΟΥ ΑΦΑΙΡΕΣΗΣ ΕΠΙΧΕΙΡΗΣΙΑΚΩΝ ΔΙΑΔΙΚΑΣΙΩΝ
Agenda Θεωρητικό Υπόβαθρο Εισαγωγή Αφαίρεση BPMN Μοντέλων Παρουσίαση Εργαλείου Λειτουργικότητα Αρχιτεκτονική και Τεχνολογίες Επίδειξη Στάδια Ανάπτυξης Δηµήτριος-Αλέξανδρος Σίνης
Περιγραφή Εργαλείο για την αφαίρεση των επιχειρησιακών διαδικασιών Στοχεύει στη µείωση του µεγέθους και της πολυπλοκότητας των ΒΡΜΝ µοντέλων Συνεισφέρει θετικά στη διαχείριση των επιχειρησιακών διαδικασιών
Agenda Θεωρητικό Υπόβαθρο Εισαγωγή Αφαίρεση BPMN Μοντέλων Παρουσίαση Εργαλείου Λειτουργικότητα Αρχιτεκτονική και Τεχνολογίες Επίδειξη Στάδια Ανάπτυξης Δηµήτριος-Αλέξανδρος Σίνης
Abstraction (Αφαίρεση) Δύο µέθοδοι αφαίρεσης: Εξάλειψη (Elimination) Συνένωση (Aggregation) Για να εφαρµοσθεί η αφαίρεση πρέπει να πληρούνται ορισµένες προϋποθέσεις Κανόνες αφαίρεσης Η αφαίρεση εφαρµόζεται στα συστατικά στοιχεία των BPMN µοντέλων Όχι µόνο στα activities, αλλά και στα data, στους participants, στα artifacts κ.ο.κ
Κανόνες Αφαίρεσης Αφαίρεση στα Lanes Αφαίρεση στα Text Annotations Αφαίρεση στα Data Objects Αφαίρεση στα Message Flows Αφαίρεση στα Paths Αφαίρεση στα Tasks *ΟΙ ΚΑΝΟΝΕΣ ΕΦΑΡΜΟΖΟΝΤΑΙ ΜΕ ΤΗΝ ΣΕΙΡΑ ΠΟΥ ΑΝΑΦΕΡΟΝΤΑΙ ΠΑΡΑΠΑΝΩ
Αφαίρεση στα Lanes Lane: αντιπροσωπεύει κάποιο ρόλο ενός Participant ΒΡΜΝ στοιχείο: Lane Abstraction Object: Role Συνθήκη: Lanes που αφορούν σε διαφορετικούς ρόλους του ίδιου Participant Μέθοδος αφαίρεσης: Συνένωση Ο κανόνας συνενώνει όλα τα lane sets που υπάρχουν στο διάγραµµα
Αφαίρεση στα Lanes
Αφαίρεση στα Lanes
Αφαίρεση στα Text Annotation Κείµενο για σχόλια/επιπλέον πληροφορίες ΒΡΜΝ στοιχείο: Text Annotation Abstraction Object: Text Annotation Συνθήκη: Πάντα Μέθοδος αφαίρεσης: Εξάλειψη
Αφαίρεση στα Text Annotation
Αφαίρεση στα Tasks 1 ΒΡΜΝ στοιχείο: Sequence Abstraction Object: Task Συνθήκη: Ακολουθίες από Tasks ίδιου τύπου Χρησιµοποιούν όλα τα ίδια Data Objects ή κανένα δε χρησιµοποιεί κάποιο Data Object Θέτονται σε ενέργεια από το ίδιο event Εκτελούνται από ίδιο Participant Μέθοδος αφαίρεσης: Συνένωση
Αφαίρεση στα Tasks 1: Κατηγορίες Ακολουθιών από Tasks Ακολουθίες ενδιάµεσα σε Events Ακολουθίες ενδιάµεσα σε Gateways
Αφαίρεση στα Tasks 1: Κατηγορίες Ακολουθιών από Tasks Ακολουθίες ενδιάµεσα σε Sub-Processes
Αφαίρεση στα Tasks 1: Κατηγορίες Ακολουθιών από Tasks Ακολουθίες που δεν έχουν εισερχόµενο sequence flow ή Ακολουθίες που δεν έχουν εξερχόµενο sequence flow
Αφαίρεση στα Tasks 1: Κατηγορίες Ακολουθιών από Tasks Ακολουθίες ενδιάµεσα σε συνδυασµό των παραπάνω κατηγοριών
Αφαίρεση στα Tasks 1
Αφαίρεση στα Tasks 2 ΒΡΜΝ στοιχείο: Task Abstraction Object: Task Συνθήκη: Είναι τύπου Business Rule, Manual ή Script Δεν εµπλέκονται σε ανταλλαγή µηνυµάτων Δεν παράγουν data outputs Μέθοδος αφαίρεσης: Εξάλειψη
Αφαίρεση στα Tasks 2
Αφαίρεση στα Data Objects 1 ΒΡΜΝ στοιχείο: Data Object Abstraction Object: Data Συνθήκη: Ένα data object συνδέεται σε ένα µόνο flow element Μέθοδος αφαίρεσης: Εξάλειψη
Αφαίρεση στα Data Objects 2 ΒΡΜΝ στοιχείο: Data Object Abstraction Object: Data Συνθήκη: Παραπάνω από ένα data objects ίδιου τύπου συνδέονται στο ίδιο flow element Μέθοδος αφαίρεσης: Συνένωση
Αφαίρεση στα Data Objects 3 ΒΡΜΝ στοιχείο: Data Object Abstraction Object: Data Συνθήκη: Παραπάνω από ένα data objects ίδιου τύπου συνδέονται σε ακολουθία από Tasks Μέθοδος αφαίρεσης: Συνένωση
Αφαίρεση στα Data Objects
Αφαίρεση στα Data Objects
Αφαίρεση στα Data Objects
Αφαίρεση στα Message Flows ΒΡΜΝ στοιχείο: Message Flow Abstraction Object: Message Συνθήκη: Ανταλλάσσονται παραπάνω από ένα µηνύµατα Ανάµεσα σε δύο συγκεκριµένα µέρη του process (Task, event, sequence, pool, loop, expanded sub-process) Κάθε µέρος του process ανήκει σε διαφορετικό participant Εισερχόµενα προς το ένα και εξερχόµενα προς το άλλο Μέθοδος αφαίρεσης: Συνένωση
Αφαίρεση στα Message Flows
Αφαίρεση στα Message Flows
Αφαίρεση στα Paths Αρχικά τα πρέπει να εντοπιστούν τα paths Στη συνέχεια σε κάθε path εφαρµόζεται η αφαίρεση για τα Tasks
Αφαίρεση στα Paths 1 ΒΡΜΝ στοιχείο: Gateway Abstraction Object: Path Συνθήκη: Ενδιάµεσα σε Gateways Περιέχουν πάνω από ένα Task Εκτελούνται από τον ίδιο Participant Το πλήθος των εξερχοµένων του ενός ισούται µε το πλήθος των εισερχοµένων του άλλου Μέθοδος αφαίρεσης: Συνένωση
Αφαίρεση στα Paths 1
Αφαίρεση στα Paths 2 ΒΡΜΝ στοιχείο: Event Abstraction Object: Path Συνθήκη: Ξεκινούν µε Start ή Intermediate Event Καταλήγουν σε Intermediate ή End Event Περιέχουν πάνω από ένα Task Εκτελούνται από τον ίδιο Participant Μέθοδος αφαίρεσης: Συνένωση
Αφαίρεση στα Paths 2
Αφαίρεση στα Paths 3 ΒΡΜΝ στοιχείο: Loop Abstraction Object: Path Συνθήκη: Κάθε loop συνοδεύεται από µια συνθήκη, η οποία όσο είναι αληθής, το loop εκτελείται Ένα Gateway αντιπροσωπεύσει µια συνθήκη Περιέχουν πάνω από ένα Task Μέθοδος αφαίρεσης: Συνένωση
Αφαίρεση στα Paths 3
Είδη/Επιλογές Αφαίρεσης στα πλαίσια της εφαρµογής Default/Global Abstraction Εξαλείφει και συνενώνει τα όλα τα υποψήφια προς αφαίρεση στοιχεία χωρίς να υπάρξει αλληλεπίδραση µε το χρήστη Δε λαµβάνει υπόψη επιλεκτικά κάποιο σηµείο του διαγράµµατος, ούτε και κάποιο συγκεκριµένο είδος στοιχείου Selective/Local Abstraction Δίνει τη δυνατότητα να ορίσει ο χρήστης σε ποιο σηµείο του µοντέλου θα γίνει η αφαίρεση(πχ σε µέσα σε ένα µεγάλο loop µόνο) και ποια είδη στοιχείων (πχ τα lanes µόνο) θα αφαιρεθούν Αξιολογεί ένα προς ένα τα στοιχεία, αν θα εξαλειφθούν, αν θα συνενωθούν ή αν θα µείνουν ως έχουν
Agenda Θεωρητικό Υπόβαθρο Εισαγωγή Αφαίρεση BPMN Μοντέλων Παρουσίαση Εργαλείου Λειτουργικότητα Αρχιτεκτονική και Τεχνολογίες Επίδειξη Στάδια Ανάπτυξης Δηµήτριος-Αλέξανδρος Σίνης
Λειτουργικότητα του εργαλείου Παίρνει σαν είσοδο ένα αρχικό µοντέλο BPMN Στο αρχικό µοντέλο εφαρµόζει τους κανόνες της αφαίρεσης Δίνει σαν έξοδο ένα άλλο µοντέλο στο οποίο έχει εφαρµοστεί η αφαίρεση Το τελικό µοντέλο συσχετίζεται µε το αρχικό, αφού στην ουσία πρόκειται για µια απλούστερη µορφή του Δίνει σαν έξοδο, επίσης, τα στατιστικά στοιχεία της αφαίρεσης Παρέχει τη δυνατότητα της επιπλέον επεξεργασίας, µέσω της οποίας ο χρήστης επιλέγει σε ποια στοιχεία του µοντέλου επιθυµεί να γίνει η αφαίρεση
Βασικές λειτουργίες του εργαλείου 1. Κατασκευή ενός BPMN µοντέλου 2. Ανέβασµα αρχείου που περιέχει ένα ΒΡΜΝ µοντέλο 3. Αναζήτηση στο Ιστορικό 4. Εφαρµογή της Default/Global Abstraction 5. Εφαρµογή της Selective/Local Abstraction 6. Υπολογισµός στατιστικών 7. Αποθήκευση µοντέλου στη Βάση Δεδοµένων 8. Αποθήκευση µοντέλου στον υπολογιστή του χρήστη
1.Κατασκευή BPMN µοντέλου O χρήστης κατασκευάζει εκείνη την ώρα το µοντέλο Οδηγείται στο site bpmn.io για να κατασκευάσει το µοντέλο Έξοδος Το µοντέλο που σχεδιάζει ο χρήστης Το µοντέλο γράφεται σε αρχείο που αποθηκεύεται στον υπολογιστή του χρήστη Το αρχείο αυτό είναι µια από τις επιλογές εισόδου της επόµενης λειτουργίας
2.Ανέβασµα αρχείου που περιέχει ένα ΒΡΜΝ µοντέλο Είσοδος Το αρχείο.bpmn στο οποίο περιέχεται το ΒΡΜΝ µοντέλο Μπορεί να έχει παραχθεί από την προηγούµενη διαδικασία Έλεγχος Ύπαρξη αρχείου Μορφή αρχείου (.bpmn ή.bpmn2) Επανάληψη διαδικασίας µέχρι να ολοκληρωθεί σωστά το ανέβασµα Έξοδος Το αρχείο ανεβασµένο στον server
3.Αναζήτηση στη Ιστορικό Είσοδος Το αρχείο που εισήχθη Έλεγχος Αν το µοντέλο που περιέχει το αρχείο έχει υποστεί ήδη επεξεργασία Αναζήτηση στη ΒΔ Αποτέλεσµα Το πολύ δύο µοντέλα και δύο σετ από στατιστικά Κανένα αποτέλεσµα από τη ΒΔ Default/Global Abstraction Default/Global Abstraction και Selective/Local Abstraction Έξοδος Ο χρήστης µπορεί να δει και να αποθηκεύσει όποιο αποτέλεσµα θέλει ή να τα αγνοήσει Το µοντέλο και τα στατιστικά που θα επιλέξει
4.Εφαρµογή της Default/Global Abstraction Είσοδος Το µοντέλο που περιέχεται στο αρχείο Έλεγχος Αν το µοντέλο δεν είναι έγκυρο σύµφωνα µε την Camunda 7.5 Ανέβασµα ενός αρχείου που περιέχει έγκυρο µοντέλο Λειτουργικότητα Γίνεται σε δύο φάσεις (Εδώ δεν είναι διακριτές) Ορίζονται τα υποψήφια προς αφαίρεση στοιχεία ύστερα από την εφαρµογή των κανόνων αφαίρεσης Συνενώνονται ή εξαλείφονται όλα Έξοδος Το µοντέλο µετά την εφαρµογή της Default/Global Abstraction
5.Εφαρµογή της Selective/Local Abstraction Είσοδος Το µοντέλο που περιέχεται στο αρχείο Λειτουργικότητα Γίνεται σε δύο φάσεις, που σε αυτό το σηµείο είναι διακριτές Φάση 1 Ορίζονται τα υποψήφια προς αφαίρεση στοιχεία Παρουσιάζονται στο χρήστη Του ζητείται να αποδεχτεί ή να απορρίψει την αφαίρεση για κάθε στοιχείο Η έξοδος της φάσης αυτής είναι οι επιλογές του χρήστη Φάση 2 Η είσοδος της φάσης αυτής εκτός από το µοντέλο είναι και η έξοδος της φάσης 1 Συνενώνονται, εξαλείφονται ή παραµένουν όποια στοιχεία επιθυµεί ο χρήστης. Έξοδος Το µοντέλο µετά την εφαρµογή της Selective/Local Abstraction
6.Υπολογισµός Στατιστικών Είσοδος Το µοντέλο πριν την αφαίρεση Το µοντέλο µετά την αφαίρεση Έξοδος Ποσοστό µείωσης στοιχείων για: Lanes Tasks Message Flows Data Text Annotation Total Παρουσιάζεται παράλληλα µε τις εξόδους των 3,4,5 λειτουργιών
7.Αποθήκευση µοντέλου στη ΒΔ Η λειτουργία αυτή συµβαίνει ανεξάρτητα από τις επιλογές του χρήστη Tα µοντέλα που παράγονται και ενώ υπάρχουν ήδη, ενηµερώνονται στη ΒΔ µε την τελευταία έκδοση Όµοια και για τα στατιστικά Tα µοντέλα που παράγονται από τις λειτουργίες 4 και 5 αποθηκεύονται στη βάση δεδοµένων Όµοια και για τα στατιστικά
8.Αποθήκευση µοντέλου στον υπολογιστή του χρήστη Τα µοντέλα που παράγονται ως έξοδοι των λειτουργιών 3,4 και 5 αποθηκεύονται σε αρχεία αν το επιθυµεί ο χρήστης Η αποθήκευση γίνεται σε προκαθορισµένο φάκελο Αν δεν επιθυµεί, τα µοντέλα δεν αποθηκεύονται στον υπολογιστή του
Agenda Θεωρητικό Υπόβαθρο Εισαγωγή Αφαίρεση BPMN Μοντέλων Παρουσίαση Εργαλείου Λειτουργικότητα Αρχιτεκτονική και Τεχνολογίες Επίδειξη Στάδια Ανάπτυξης Δηµήτριος-Αλέξανδρος Σίνης
Αρχιτεκτονική εργαλείου client-server technology 3-tier architecture
Αρχιτεκτονική 3 επιπέδων Επίπεδο 1 (Presentation Layer) Browsers για πρόσβαση στην εφαρµογή Μετατροπή του κώδικα των jsp σελίδων (σε µορφή κατανοητή από τον χρήστη) Οπτικοποίηση διαγραµµάτων (bpmn.io) Επίπεδο 2 (Business Logic Layer) Web Server: Apache Tomcat version 8.0.24 Jsp σελίδες Java program (application) Επικοινωνία µε τη βάση δεδοµένων Επίπεδο 3 (Database Services Layer) PostgreSQL
Αρχιτεκτονική 3 επιπέδων Προγραµµατιστικό περιβάλλον Eclipse Neon, Java EE Developer Edition Apache Tomcat 8.0.24 JDBC driver
Προγραµµατισµός στον server Server-side programs Java Servlets JSPs Client-side programs scripts που έχουν γραφεί στις JSP σελίδες µε Scriplet
Το εργαλείο ως Web εφαρµογή Client-Server Technology 3-tier Architecture Java Servlets & JSP pages HTTP protocol over TCP/IP JavaScript Scriplet CSS
Προγράµµατα, Βιβλιοθήκες, jar files κ.ά. Eclipse Neon, Java EE Developer Edition Apache Tomcat 8.0.24 Camunda 7.5, για παροχή διεπαφών του ΒΡΜΝ στη Java git, npm & bower bpmn-io/bpmn-js, για προβολή µοντέλων Refresher for Eclipse Jar files για το ανέβασµα αρχείου (common-io-2.4 & common-fileupload-1.2.2) PostgreSQL Database 9.6
Agenda Θεωρητικό Υπόβαθρο Εισαγωγή Αφαίρεση BPMN Μοντέλων Παρουσίαση Εργαλείου Λειτουργικότητα Αρχιτεκτονική και Τεχνολογίες Επίδειξη Στάδια Ανάπτυξης Δηµήτριος-Αλέξανδρος Σίνης
Ας δούµε και την εφαρµογή
Agenda Θεωρητικό Υπόβαθρο Εισαγωγή Αφαίρεση BPMN Μοντέλων Παρουσίαση Εργαλείου Λειτουργικότητα Αρχιτεκτονική και Τεχνολογίες Επίδειξη Στάδια Ανάπτυξης Δηµήτριος-Αλέξανδρος Σίνης
1.Καθορισµός απαιτήσεων Για το εργαλείο που αναπτύχτηκε Για το πλάνο εργασίας και το χρονοδιάγραµµα
2.Διάβασµα Βιβλιογραφίας Για το πρότυπο µοντελοποίησης επιχειρησιακών διαδικασιών BPMN 2.0 Για τους κανόνες αφαίρεσης επιχειρησιακών διαδικασιών
3.Σχεδιασµός Λειτουργικότητα και λειτουργικές προδιαγραφές του εργαλείου Αρχιτεκτονική του εργαλείου Διαγράµµατα UML Activity Class Component Deployment
4.Προπαρασκευαστικό στάδιο για την υλοποίηση του εργαλείου Διάβασµα για τις γλώσσες προγραµµατισµού του εργαλείου Εγκατάσταση προγραµµάτων, βιβλιοθηκών, server, plug-ins και κάποιων ήδη υλοποιηµένων προγραµµάτων
5.Σκελετός εφαρµογής Κατασκευή JSP σελίδων Servlets web.xml αρχείο, που ορίζει το πώς θα καλείται το κάθε servlet Σύνδεση της εφαρµογής µε τον Server Δοκιµαστικές εφαρµογές, για την αλληλουχία των σελίδων και την επιβεβαίωση της ορθής λειτουργίας των servlets
6.Ενασχόληση µε τη βιβλιοθήκη για την BPMN 2.0 Έρευνα για την επιλογή της καταλληλότερης Επιλογή βιβλιοθήκης και εγκατάσταση αυτής Μελέτη της βιβλιοθήκης για: Parsing bpmn αρχείων Συµπεριλαµβανόµενες κλάσεις Διαχείριση των µοντέλων και των συστατικών στοιχείων της bpmn Τροποποίηση µοντέλων Γράψιµο µοντέλων σε αρχείο Εντοπισµό ελλείψεων και ανάλογος χειρισµός αυτών Δοκιµές
7.Υλοποίηση κλάσεων Κώδικας για τον εντοπισµό και τη διαχείριση µονοπατιών µέσα στο µοντέλο Κώδικας για τους κανόνες αφαίρεσης, που επιστρέφουν τα υποψήφια για αφαίρεση στοιχεία Κώδικας για την εφαρµογή της αφαίρεσης στα στοιχεία αυτά Κώδικας για υπολογισµό των στατιστικών της αφαίρεσης Κατασκευή αρχείων.bpmn για την επαλήθευση της ορθής λειτουργίας
8.Προβολή και κατασκευή µοντέλων Προβολή µοντέλων Εγκατάσταση npm και bower Προσθήκη έτοιµου κώδικα javascript Προσθήκη refresher και χρονοκαθυστέρησης για την προβολή των µοντέλων Κατασκευή µοντέλων Προσθήκη υπερσυνδέσµου στην εφαρµογή που µεταφέρει τον πελάτη σε κάποιο site για την κατασκευή µοντέλων
9.Βάση Δεδοµένων Σύνδεση της εφαρµογής µε µία βάση δεδοµένων Για αποθήκευση µοντέλων που έχουν υποστεί αφαίρεση Για αποθήκευση στατιστικών στοιχείων Για αποφυγή της επεξεργασίας ενός ήδη επεξεργασµένου αρχείου κατά το παρελθόν Ανάκτηση αρχείου και στατιστικών
10.Εµφάνιση της εφαρµογής Προσθήκη CSS στις JSP σελίδες για την εµφάνιση του εργαλείου στο χρήστη Επιλογή γραµµατοσειράς Φόντου Χρωµάτων Και άλλα
Ερωτήσεις
BPMN Abstraction Tool ΠΑΡΟΥΣΙΑΣΗ ΕΡΓΑΛΕΙΟΥ ΑΦΑΙΡΕΣΗΣ ΕΠΙΧΕΙΡΗΣΙΑΚΩΝ ΔΙΑΔΙΚΑΣΙΩΝ