Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
ΠΑΡΟΥΣΙΑΣΗ ΕΡΓΑΛΕΙΟΥ ΑΦΑΙΡΕΣΗΣ
ΕΠΙΧΕΙΡΗΣΙΑΚΩΝ ΔΙΑΔΙΚΑΣΙΩΝ
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 Abstraction5. Εφαρµογή της Selective/Local Abstraction6. Υπολογισµός στατιστικών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