Διαγράμματα δραστηριότητας
Το λήμμα δεν περιέχει πηγές ή αυτές που περιέχει δεν επαρκούν. |
Τα Διαγράμματα δραστηριότητας (Activity diagrams) είναι γραφικές αναπαραστάσεις των ροών εργασίας (workflows) των σταδιακών δραστηριοτήτων και δράσεων [1] με υποστήριξη για επιλογή, επανάληψη και συγχρονισμό. Στην UML (Unified Modeling Language), είναι διαγράμματα που προορίζονται να μοντελοποιήσουν τόσο τις υπολογιστικές όσο και τις οργανωτικές διαδικασίες (π.χ. ροές εργασίας)[2][3]. Τα διαγράμματα δραστηριότητας παρουσιάζουν τη συνολική ροή του ελέγχου.
Τα Διαγράμματα δραστηριότητας είναι κατασκευασμένα από ένα περιορισμένο αριθμό σχημάτων, που συνδέονται με βέλη. Οι πιο σημαντικοί τύποι σχημάτων είναι:
- στρογγυλεμένα ορθογώνια, αντιπροσωπεύουν ενέργειες,
- ρόμβοι, αντιπροσωπεύουν αποφάσεις,
- μπάρες, αντιπροσωπεύουν την έναρξη (split) ή το τέλος (join) των ταυτόχρονων δραστηριοτήτων,
- ένας μαύρος κύκλος αντιπροσωπεύει την αρχή (initial state) της ροής εργασίας,
- ένας περικυκλωμένος μαύρος κύκλος αντιπροσωπεύει το τέλος της (final state).
Τα Βέλη αντιπροσωπεύουν τη σειρά με την οποία συμβαίνουν οι δραστηριότητες.
Ως εκ τούτου, τα διαγράμματα δραστηριότητας μπορούν να θεωρηθούν ως μια μορφή διαγραμμάτων ροής (flowcharts). Tα τυπικά διαγράμματα ροής υστερούν κατασκευαστικά να εκφράσουν συγχρονισμό. Ωστόσο, τα σύμβολα ένωσης (join) και διάσπασης (split) στα διαγράμματα δραστηριότητας επιλύουν αυτή την αδυναμία, αλλά μόνο για απλές περιπτώσεις. Η έννοια του μοντέλου δεν είναι σαφή σε περιπτώσεις που είναι αυθαίρετα συνδεδεμένα με αποφάσεις (decisions) ή βρόχους (loops).
Ενώ στην UML 1.x, τα διαγράμματα δραστηριότητας ήταν μια εξειδικευμένη μορφή των διαγραμμάτων κατάστασης (state diagrams), στην UML 2.x, τα διαγράμματα δραστηριότητας μετασχηματίστηκαν να βασίζονται σε Petri net - όπως η σημασιολογία, αυξάνοντας έτσι τη διεύρυνση του πεδίου των καταστάσεων που μπορεί να μοντελοποιηθεί χρησιμοποιώντας διαγράμματα δραστηριότητας. Αυτές οι αλλαγές οδηγούν πολλά διαγράμματα δραστηριότητας της UML 1.x να ερμηνεύονται διαφορετικά στην UML 2.x.