Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 13/11/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr
Activity Diagrams Διαγράμματα Δραστηριοτήτων
Διαγράμματα UML Διάγραμμα περιπτώσεων χρήσης (use case diagram) Διάγραμμα δραστηριοτήτων (activity diagram) Διάγραμμα κλάσεων (class diagram) Διάγραμμα αντικειμένων (object diagram) Διάγραμμα καταστάσεων (state diagram) Διαγράμματα αλληλεπίδρασης (interaction diagrams) Διάγραμμα ακολουθίας (sequence diagram) Διάγραμμα επικοινωνίας (communication diagram) Διαγράμματα υλοποίησης (physical diagrams) Διάγραμμα συστατικών (component diagram) Διάγραμμα ανάπτυξης (deployment diagram)
Άξονες Μοντελοποίησης Λειτουργικότητα functionality Τι κάνει το σύστημα; Ποιες λειτουργίες υποστηρίζει; Ανάλυση απαιτήσεων Περιγραφές από κείμενο Στατικά διαγράμματα Πώς είναι οργανωμένα τα συστατικά του τμήματα; Δυναμική συμπεριφορά Πώς ανταποκρίνεται και από ποιες καταστάσεις περνάει; Δομή structure Συμπεριφορά behaviour
Κατηγοριοποίηση Διαγραμμάτων UML 2.0
Μοντελοποίηση με τη γλώσσα UML Περιγραφή Λειτουργίας από την πλευρά του χρήστη Στατική δομή Δυναμικά χαρακτηριστικά - Συμπεριφορά Μοντελοποίηση Απαιτήσεων / Λειτουργιών Μοντελοποίηση στατικής δομής του συστήματος Μοντελοποίηση δυναμικών χαρακτηριστικών του συστήματος Μοντελοποίηση της συμπεριφοράς συγκεκριμένων αντικειμένων Μοντελοποίηση των βημάτων εκτέλεσης μιας διαδικασίας Σενάρια, Διαγράμματα περιπτώσεων χρήσης, Διαγράμματα Δραστηριότητας (Scenaria, Use Case Diagrams, Activity Diagrams) Διαγράμματα Κλάσεων (Class Diagrams) Διαγράμματα Αντικειμένων (Object Diagrams) Διαγράμματα Συστατικών (Component Diagrams) Διαγράμματα Ανάπτυξης (Deployment Diagrams) Διαγράμματα Ακολουθίας (Sequence Diagrams) Διαγράμματα Επικοινωνίας (Collaboration Diagrams Communication Diagrams στη UML 2.0) Διαγράμματα Κατάστασης (State Machine Diagrams) Διαγράμματα Δραστηριότητας (Activity Diagrams)
Διάγραμμα Δραστηριοτήτων Παρουσιάζουν την ακολουθιακή ή παράλληλη εκτέλεση δραστηριοτήτων. Είναι διαγράμματα με μεγάλο εύρος χρήσης και μπορούν να αναπαραστήσουν δραστηριότητες ενός οργανισμού στα πλαίσια της επιχειρηματικής μοντελοποίησης ή την εκτέλεση λειτουργιών του λογισμικού. Χρησιμοποιούνται κυρίως ως εργαλείο κατανόησης πολύπλοκων διαδικασιών ή παρουσίασης και επικοινωνίας απλούστερων.
Διάγραμμα Δραστηριοτήτων Τα διαγράμματα δραστηριοτήτων μπορούν να χρησιμοποιηθούν στην ανάλυση απαιτήσεων του λογισμικού για τη μοντελοποίηση των περιπτώσεων χρήσης. Διαγραμματική παρουσίαση ενεργειών συστήματος ή actor για μία περίπτωση χρήσης. Η μοντελοποίηση των περιπτώσεων χρήσης με ΔΔ είναι ιδιαίτερα χρήσιμη, γιατί μπορούμε να εξετάσουμε διαγραμματικά τη βασική και τις εναλλακτικές ροές. Η οπτικοποίηση των διαφορετικών μονοπατιών σε μία ροή βοηθά στην κατανόηση της περίπτωσης χρήσης και της αναμενόμενης συμπεριφοράς του συστήματος.
Διάγραμμα Δραστηριοτήτων Αναπαριστά τη ροή ενεργειών (ροή εργασίας - workflow) που εκτελούνται στο σύστημα, ποιες δραστηριότητες μπορεί να γίνονται παράλληλα και πότε υπάρχουν εναλλακτικές διαδρομές: συνθήκες (conditions), σημεία αποφάσεων (decisions) & παράλληλες εκτελέσεις ενεργειών. Καταγράφει μια συγκεκριμένη επιχειρησιακή διαδικασία ή τη δυναμική μιας ομάδας αντικειμένων. Κύριο στοιχείο: οι δραστηριότητες (activities).
Μοντελοποίηση Διεργασιών Ο πηγαίος κώδικας που γράφουμε εκτελεί διεργασίες χρησιμοποιώντας ακολουθιακή εκτέλεση, έλεγχο ροής και λογικές συνθήκες. Θέλουμε να καταλαβαίνουμε πώς ρέει ο έλεγχος ανάμεσα στις διεργασίες. Παραδοσιακά, είχαμε τα διαγράμματα ροής (flowcharts). Στη UML, η εξέλιξή τους ονομάζεται «διάγραμμα δραστηριοτήτων». Η αντικειμενοστρεφής προσέγγιση υποβαθμίζει τη μοντελοποίηση της συμπεριφοράς, αφού έχει σε πρώτη προτεραιότητα τα διαγράμματα κλάσεων / αντικειμένων.
Τι διαφέρουν τα Activity diagrams από τα Use Case diagrams? Activity Diagrams Τα χρησιμοποιούμε για να μοντελοποιήσουμε τις «εσωτερικές» λειτουργίες του συστήματος. Π.χ. για να περιγράψουμε πώς λειτουργεί ένας οργανισμός, να μοντελοποιήσουμε τις επιχειρηματικές διαδικασίες του οργανισμού. Use Cases & Use Case Diagrams Τα χρησιμοποιούμε για να μοντελοποιήσουμε τις «εξωτερικές» λειτουργίες του συστήματος. Π.χ. πώς αλληλεπιδρά με τους χρήστες του συστήματος ή με άλλα πληροφοριακά συστήματα.
Τι μπορούμε να μοντελοποιήσουμε με Διαγράμματα Δραστηριοτήτων? Μπορούν να χρησιμοποιηθούν για να μοντελοποιήσουν οποιαδήποτε διαδικασία. Από επιχειρηματικές υψηλού επιπέδου έως τη ροή ελέγχου μιας μεθόδου μιας κλάσης. Μοιάζουν με διαγράμματα ροής (flow charts) αλλά έχουν την επιπλέον δυνατότητα να αναπαριστούν παραλληλία (parallelism), σύμπτωση (concurrency) και σύνθετες αποφάσεις (complex decisions). Συνδυάζουν ιδέες από διάφορες τεχνικές όπως: event diagrams, workflow modeling.
Δραστηριότητες και Διαγράμματα Δραστηριοτήτων Activity (or activity state) Είναι μια κατάσταση πράττειν (state of doing something): είτε στον πραγματικό κόσμο (π.χ. πληκτρολόγηση ενός γράμματος) ή στον υπολογιστή (π.χ. εκτέλεση μιας ρουτίνας λογισμικού). Μπορεί να παριστάνει μια χειρονακτική ή μια αυτοματοποιημένη δραστηριότητα. Κάθε δραστηριότητα έχει ένα όνομα. Παραδείγματα ονομάτων: Λήψη Παραγγελίας, Κράτηση Ραντεβού, κλπ. Activity Diagram Περιγράφει την ακολουθία των δραστηριοτήτων και υποστηρίζει συνθήκες και παραλληλία.
Διαγράμματα Δραστηριοτήτων Τα διαγράμματα δραστηριοτήτων χρησιμοποιούν διχάλες, σημεία αποφάσεων και σημεία ένωσης: Μία διχάλα (fork) χρησιμοποιείται όταν πολλαπλές δραστηριότητες πραγματοποιούνται την ίδια στιγμή. Όταν έχουμε διακλαδώσεις, τότε συνοδεύονται από ένα αντικείμενο ένωσης «merge» που δηλώνει το τέλος της συνθήκης. Επίσης, μετά από ένα αντικείμενο ένωσης, όλες οι παράλληλες δραστηριότητες πρέπει να ενωθούν με ένα αντικείμενο σύνδεσης «join» πριν τη μετάβαση στην τελική κατάσταση.
Διαγράμματα Δραστηριοτήτων Στοιχεία Διαγραμμάτων Δραστηριοτήτων Σύμβολο Αρχική Δραστηριότητα - Initial Activity: Αναπαριστά το σημείο εκκίνησης ή την πρώτη δραστηριότητα μιας ροής. Δραστηριότητα - Activity: Αποφάσεις - Decisions: Σημείο/κόμβος απόφασης που οδηγεί σε δύο δρόμους ανάλογα με την απόφαση.
Διαγράμματα Δραστηριοτήτων Στοιχεία Διαγραμμάτων Δραστηριοτήτων Σύμβολο Ενώσεις Merge: Σημείο/κόμβος ένωσης/συγχώνευσης χρησιμοποιείται συνήθως μετά από ένα σημείο απόφασης Ταυτόχρονες Δραστηριότητες - Concurrent Activities: Μερικές δραστηριότητες εκτελούνται ταυτόχρονα. Διακλάδωση/Ένωση - Fork/Join: Τελική Δραστηριότητα - Final Activity: Το τέλος ενός διαγράμματος δραστηριοτήτων.
Διαγράμματα Δραστηριοτήτων Η διακλάδωση της ροής ελέγχου πραγματοποιείται μετά τον έλεγχο κάποιας συνθήκης ελέγχου. Ένας κόμβος απόφασης μπορεί να έχει μία ακμή εισόδου και δύο ή περισσότερες ακμές εξόδου. Οι ακμές εξόδου φέρουν αμοιβαία αποκλειόμενες συνθήκες (guard conditions) μέσα σε αγκύλες. Κάθε έκφραση θεωρείται ως μία έκφραση boolean που μπορεί να είναι αληθής ή ψευδής. Ένας κόμβος συγχώνευσης δέχεται πολλές ακμές εισόδου, αλλά μία ακμή εξόδου, συγχωνεύοντας πιθανές διακλαδώσεις σε μία ροή.
Παράδειγμα Διάγραμμα δραστηριοτήτων για την επιχειρηματική περίπτωση χρήσης (Business Use Case) για ατομικό Check- In στο Business Use-Case Model για Check-in αεροδρομίου.
Συμβολισμός Activity states: αναπαριστούν την εκτέλεση μιας δραστηριότητας στο workflow. Transitions: δείχνουν ποιο activity state ακολουθεί (δεν χρειάζεται explicit trigger event; γίνεται triggered από την ολοκλήρωση της δραστηριότητας που το activity state αναπαριστά. Decisions: για τις οποίες ορίζονται guard conditions (συνθήκες οι οποίες ελέγχουν ποια μετάβαση από ένα σύνολο εναλλακτικών μεταβάσεων θα ακολουθήσει όταν ολοκληρωθεί η δραστηριότητα). Synchronization bars: δείχνουν παράλληλα subflows ή concurrent threads στο workflow ενός business use case.
Conditional Threads Συνθήκες οι οποίες δείχνουν ότι κάποιο από ένα σύνολο παράλληλων διαδρομών (concurrent threads) είναι conditional (υπό προϋποθέσεις). Στο παράδειγμα του individual check-in, ο επιβάτης που κάνει check in μπορεί να είναι frequent flyer member, οπότε πρέπει να λάβει τα frequent flyer miles.
Nested Activity Diagrams Ένα activity state μπορεί να αναφέρεται σε ένα άλλο διάγραμμα δραστηριοτήτων, το οποίο απεικονίζει την εσωτερική δομή του activity state (δηλαδή, έχουμε nested activity graphs). Nested activity graph μέσα σε ένα activity state. Το activity graph το βάζουμε σε ξεχωριστό διάγραμμα και το activity state αναφέρεται σε εκείνο το διάγραμμα.
Παραδείγματα Η έντονη γραμμή φανερώνει ότι οι ενέργειες που ακολουθούν εκτελούνται παράλληλα. Επίσης, υποδηλώνουν την ενοποίηση των διακλαδιζόμενων ενεργειών.
Ένα απλό παράδειγμα Διαγράμματος Δραστηριοτήτων Περιγράφει τον «κλασσικό» τρόπο Λήψεως Παραγγελιών σε ένα ιστότοπο.
Ένα διάγραμμα δραστηριοτήτων
Ένα διάγραμμα δραστηριοτήτων Το διάγραμμα αναπαριστά τη ροή των ενεργειών. Με τη λήψη μιας παραγγελίας, οι δραστηριότητες διαχωρίζονται σε δυο παράλληλες ομάδες δραστηριοτήτων: Η μία πλευρά συμπληρώνει και αποστέλλει την παραγγελία, ενώ Η άλλη πλευρά διαχειρίζεται την πληρωμή Στην αριστερή πλευρά, η μέθοδος αποστολής αποφασίζεται ύστερα από την ικανοποίηση συνθήκης: είτε η δραστηριότητα «Νυχτερινή Αποστολή» (Overnight Delivery) ή η δραστηριότητα «Κανονική Αποστολή» (Regular Delivery) πραγματοποιείται. Oι παράλληλες δραστηριότητες συνδυάζονται για να ολοκληρώσουν την παραγγελία.
Ένα διάγραμμα δραστηριοτήτων Διαχείριση παραγγελιών Αυτό σημαίνει ότι έχει αναλυθεί Δηλ., η συγκεκριμένη δραστηριότητα αντιμετωπίζεται σε ξεχωριστό διάγραμμα δραστηριότητας
Άλλο διάγραμμα δραστηριοτήτων
Άλλο παράδειγμα με conditional thread Ετοιμασία δείπνου
Διαμερίσματα Δραστηριότητας ή Γραμμές Κολύμβησης Τα activity diagrams περιγράφουν τι συμβαίνει, αλλά δεν μας λένε ποιος κάνει τι. Π.χ. δεν μας λέει ποια κλάση ή ποια ομάδα είναι υπεύθυνη για την κάθε εργασία? Management Customer service Shipment Finance => Διαμερίσματα Δραστηριότητας ή Γραμμές Κολύμβησης (activity partitions or swimlanes) ποιο τμήμα ή αντικείμενο είναι υπεύθυνο για την εκτέλεση κάποιων ενεργειών σε μια δραστηριότητα Χωρίζουν το διάγραμμα σε κατακόρυφες ζώνες. Κάθε ζώνη είναι αρμοδιότητα ενός συγκεκριμένου δράστη ή κλάσης UML V.2.0:Partitions
Διαμερίσματα Δραστηριότητας ή Γραμμές Κολύμβησης Επομένως, τα περιεχόμενα ενός διαγράμματος δραστηριοτήτων μπορεί να οργανωθούν σε partitions (swimlanes) χρησιμοποιώντας κάθετες γραμμές. Ένα partition δεν έχει κάποια τυπική σημασιολογική ερμηνεία αλλά συχνά χρησιμοποιείται στο business modeling για την αναπαράσταση μίας οργανωτικής μονάδας κάποιου είδους. Στα διαγράμματα δραστηριοτήτων που διαχωρίζονται σε Swimlanes, κάθε δραστηριότητα ανήκει αποκλειστικά σε ένα Swimlane, αλλά οι μεταβάσεις από τη μία στην άλλη δραστηριότητα μπορεί να διαπερνά τα Swimlanes.
Γραμμές Κολύμβησης: Παράδειγμα Αναπαριστά το workflow ενός Business Use Case, το οποίο αναπαριστά ένα (Generic) Sales Process. Σε αυτό το παράδειγμα, τα swimlanes (partitions) αναπαριστούν τα διάφορα τμήματα του οργανισμού.
Διαμερίσματα Δραστηριότητας ή Γραμμές Κολύμβησης Παράδειγμα Διαμερίσματα δραστηριότητας για μια παραγγελία Η παραλαβή της παραγγελίας γίνεται από το τμήμα πωλήσεων/γραφείο εξυπηρέτησης πελατών Η αποστολή προϊόντων γίνεται από την αποθήκη/τμήμα αποστολών Η αποστολή και εξόφληση τιμολογίου γίνεται από το τμήμα οικονομικών Τα διαφορετικά τμήματα απεικονίζονται ως διαμερίσματα και εντός κάθε διαμερίσματος τοποθετούνται οι ενέργειες που πραγματοποιούνται από κάθε διαφορετικό τμήμα.
Γραμμές Κολύμβησης: Παράδειγμα Διαχείριση Παραγγελιών
Παράδειγμα: Login (and register if new user)
Παράδειγμα: Login (and register if new user) Κάποια εργαλεία παρέχουν μία μέθοδο τοποθέτησης Use Cases πάνω σε activity diagrams. Τα 'Use Case Instances' έχουν τοποθετηθεί πάνω από τις σχετιζόμενες δραστηριότητες για να δείξουν πώς συγκεκριμένες επιχειρηματικές διαδικασίες μπορούν να υλοποιηθούν στο σύστημα. Βλέπουμε τη συμπεριφορά συστήματος πάνω σε επιχειρηματικές διαδικασίες.
Παράδειγμα: Login (and register if new user) Διάγραμμα δραστηριοτήτων Περιπτώσεις χρήσης πάνω στο Διάγραμμα δραστηριοτήτων
Απλοποιημένο παράδειγμα activity diagram για το use case Withdraw money στο use-case model ενός ΑΤΜ.
Είδη μεταβάσεων στα Διαγράμματα Δραστηριοτήτων Διαφορά με τα διαγράμματα καταστάσεων: Οι μεταβάσεις γίνονται όταν τελειώσει ένα βήμα και ΔΕΝ γίνονται triggered από ένα εξωτερικό γεγονός!
Ροή Αντικειμένων (Object flow) Πώς μπορούμε να δείξουμε τα αντικείμενα που εμπλέκονται στη ροή ελέγχου?
Ανάδειξη της Ροής Αντικειμένων (Adding Object Flow)
Object Flow ως Κατάσταση (1/2) Ειδική περίπτωση βήματος (state) που αναπαριστά τη διαθεσιμότητα ενός συγκεκριμένου είδους του αντικειμένου. Καμία action ή subactivity εμπλέκεται και ο έλεγχος περνάει αμέσως στο επόμενο βήμα. Απλά, θέτει κάποιους περιορισμούς σε παραμέτρους εισόδου και εξόδου στα βήματα πριν και μετά. Class [State]
Object Flow ως Κατάσταση (2/2) Η Take Order πρέπει να έχει μία παράμετρο εξόδου που να δίνει μία order. Η Fill Order πρέπει να έχει μία παράμετρο εισόδου που να παίρνει μία order. Take Order Order [Taken] Fill Order
Παραδείγματα ανάλυσης μιας δραστηριότητας Τι λείπει?
Παραδείγματα ανάλυσης μιας δραστηριότητας - Περιοχές Επέκτασης (Expansion Regions) Expansion Regions (Περιοχές επέκτασης): μας επιτρέπουν να μοντελοποιήσουμε βρόχους (π.χ. για την απεικόνιση λειτουργιών πάνω σε ένα σύνολο στοιχείων).
Άλλο ένα παράδειγμα με περιοχές επέκτασης Choose topics Prepare slides Publish slides Choose topics Prepare slides Publish slides List of topics Choose topics Collect material from books Collect material from articles Make slides Publish slides
Περιοχές επέκτασης και Τέρματα Ροής (Flow finals) Υποδηλώνουν το τέλος μια συγκεκριμένης ροής, χωρίς να τερματίζουν όλη τη διαδικασία. List of topics Choose topics Collect material from books Collect material from articles Make slides Publish slides List of topics Choose topics Collect material from books Collect material from articles Make slides Topic not good Publish slides
Παράδειγμα: Δραστηριότητα Τελική Εξέταση (1/2)
Παράδειγμα: Δραστηριότητα Τελική Εξέταση (2/2)
Δραστηριότητα Τελική Εξέταση προσθήκη partitions Καθηγητής Γραμματέας
Σήματα (Signals) Τα διαγράμματα δραστηριοτήτων έχουν ένα ξεκάθαρο σημείο εκκίνησης (start point) που μπορεί να είναι η κλήση ενός προγράμματος ή μιας ρουτίνας. Μπορούμε όμως να έχουμε και actions που ανταποκρίνονται σε σήματα. Τύποι Σημάτων Γεγονός Χρόνου (accept time signal) Μπορεί να υποδηλώνουν το τέλος ενός μήνα, το τέλος του ακαδημαικού έτους, ή το τέλος ενός χιλιοστού του δευτερολέπτου σε έναν ελεγκτή πραγματικού χρονου (real time controller). Λήψη γεγονότος (accept event) Αποστολή σήματος (send signal)
Σήματα (Signals) Wake Up Signal send Signal μετάβαση με send action Turn on Coffee Pot Signal receipt Signal Get Cups Coffee Pot κατάσταση αναμονής μέχρι να λάβει το σήμα Coffee Done Drink Coffee
Παράδειγμα με Χρονικό Σήμα (Time Signal) 23:00 Full Backup [weekend] Web Site Backup Μία δραστηριότητα ενεργοποιείται από κάποιο γεγονός στο χρόνο.
Παράδειγμα με Σήμα Χρόνου & Σήμα Αποδοχής (Time and Accept signals) 3 hours before flight Pack luggage Leave for airport Taxi arrives
Παράδειγμα με Σήμα Χρόνου & Σήμα Αποστολής (Time & Send Signal) (1/2) 23:00 Full Backup Administrator login Do backup Backup [weekend] Web Site Backup
Παράδειγμα με Σήμα Χρόνου & Σήμα Αποστολής (Time & Send Signal) (2/2) 23:00 Full Backup Administrator login Do backup Backup [weekend] Web Site Backup Ποια η διαφορά???
Περιγραφή των Ζεύξεων Join specifications Λογικές εκφράσεις (boolean) μπορούν να προσδεθούν στις ζεύξεις. Choose drink D Insert coins C [value of C >= value of D] Deliver drink
Κόμβος ολοκλήρωσης ροής Η ολοκλήρωση ροής σημαίνει ότι τερματίζει κάποια ροή χωρίς να τερματιστεί η δραστηριότητα. Α Β [ x > y ]
Παράδειγμα Αίτηση για άδεια
Παράδειγμα Προγραμματισμός μαθήματος
Διαγράμματα Δραστηριότητας & Μεθοδολογίες Ανάπτυξης Πληροφοριακών Συστημάτων Αρχικά, η Αντικειμενοστρεφής Ανάλυση και Σχεδίαση δεν περιελάμβανε Διαγράμματα Δραστηριοτήτων (αλλά μόνο Περιπτώσεις Χρήσης). Σήμερα, η τάση είναι να φτιάχνουμε μερικά μέσα από τις απαιτήσεις, αφού συχνά βοηθούν την επικοινωνία με τον πελάτη. Δεν πρέπει όμως, να υπερβάλλουμε και να καταλήξουμε να κάνουμε αναλυτική αποσύνθεση λειτουργιών (functional decomposition). Στις περισσότερες περιπτώσεις, κάθε δραστηριότητα θα συσχετισθεί με μια Περίπτωση Χρήσης.
Πότε πρέπει και πότε δεν πρέπει να χρησιμοποιούμε Διαγράμματα Δραστηριότητας (1/2) Πότε πρέπει: Για κατανόηση και εικονογράφηση των επιχειρηματικών ροών (business workflow). Για εικονογράφηση της ροής δραστηριοτήτων σε μια Περίπτωση χρήσης. Για μοντελοποίηση πολυνηματικού (multithreaded) προγραμματισμού. Για μοντελοποίηση ενός σύνθετου σειριακού αλγορίθμου (flow chart).
Πότε πρέπει και πότε δεν πρέπει να χρησιμοποιούμε Διαγράμματα Δραστηριότητας (2/2) Πότε ΔΕΝ πρέπει: Για περιγραφή του τρόπου συνεργασίας των αντικειμένων (τότε, χρησιμοποιούμε Interaction Diagrams). Για περιγραφή του τρόπου συμπεριφοράς ενός αντικειμένου κατά τη διάρκεια της ύπαρξής του (τότε, χρησιμοποιούμε State Diagram). Για περιγραφή σύνθετων αποφάσεων με πολλές συνθήκες (τότε, καλύτερα να χρησιμοποιήσουμε έναν Πίνακα Αλήθειας).
Οδηγίες για τη σύνταξη Διαγραμμάτων Δραστηριοτήτων Βήματα: 1. Καθορισμός της εμβέλειας του διαγράμματος 2. Καθορισμός τίτλου διαγράμματος 3. Αναγνώριση των δραστηριοτήτων και της ροής ελέγχου μεταξύ αυτών 4. Αναγνώριση πιθανών αποφάσεων που αφορούν τη διαδικασία που μοντελοποιείται 5. Εντοπισμός ενδεχομένης παραλληλίας στη διαδικασία 6. Ζωγράφισμα του διαγράμματος
Οδηγίες για τη σύνταξη Διαγραμμάτων Δραστηριοτήτων Άλλες συμβουλές: Προσπαθήστε να ελαχιστοποιήσετε τις διασταυρώσεις και βελτιώστε την αναγνωσιμότητα του διαγράμματος. Βεβαιωθείτε για την ορθότητα των «θαυματουργών» (miracle) δραστηριοτήτων (αυτών χωρίς είσοδο) και των «μαύρων οπών» (δραστηριότητες χωρίς έξοδο).
Συχνά λάθη
Συχνά λάθη
Συχνά λάθη
Παραδείγματα =>
Δημιουργία τραπεζικού λογαριασμού (1/2) Θέλουμε να αναπτύξουμε ένα σύστημα που να επιτρέπει το άνοιγμα τραπεζικών λογαριασμών σε πελάτες της τράπεζας που ήδη έχουν πιστωτική κάρτα, η οποία μάλιστα είναι συνδεδεμένη με έναν λογαριασμό τράπεζας. Ο λογαριασμός αυτός πρέπει να έχει υπόλοιπο τουλάχιστον 150 Ευρώ. Αλλιώς, το άνοιγμα νέου τραπεζικού λογαριασμού απορρίπτεται.
Δημιουργία τραπεζικού λογαριασμού (2/2)
Εγκατάσταση εφαρμογής (1/2) Εκφράστε με διάγραμμα δραστηριότητας τον κλασσικό διάλογο των συστημάτων αυτόματης εγκατάστασης λογισμικού.
Εγκατάσταση εφαρμογής (2/2)
Ανάληψη μετρητών από ΑΤΜ
Πηγές Ε. Κιουντούζης, Μεθοδολογίες Ανάλυσης και Σχεδιασμού Πληροφοριακών Συστημάτων,Εκδόσεις Α.Σταμούλη, Αθήνα 2002 Γιάννης Τζίτζικας. Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων, Πανεπιστήμιο Κρήτης Shari Lawrence Pfleeger. Τεχνολογία Λογισμικού: Θεωρία και Πράξη, τόμος 1, Κλειδάριθμος, Αθήνα, 2003 Leszek A. Maciaszek, Requirements Analysis and System Design (2nd edition), Addison Wesley, 2005 A.Dennis, B. Haley Wixom, D. Tegarden, Systems Analysis and Design with UML Version 2.0 (2nd edition) Wiley, 2005 Booch G., Rumbaugh J., Jacobson I. Unified Modeling Language User Guide. Addison- Wesley Professional 2 Edition, ISBN 0321267974. Pascal Roques, UML in Practice, John Wiley, 2004 UML Fundamentals & OOAD UML 2.0, www.acm.org Αφροδίτη Τσαλγατίδου. Εισαγωγή στη UML, Καποδιστριακό Πανεπιστήμιο Αθηνών Αντικειμενοστρεφής Ανάπτυξη Λογισμικού με τη UML, επιμέλεια Π. Φιτσιλής, Κλειδάριθμος 2006 Ιωάννης Γαβιώτης. Πληροφοριακά Συστήματα Μοντελοποίηση με UML, Πανεπιστήμιο Αιγαίου http://www.ibm.com/developerworks/rational/library/content/rationaledge Μ. Γιακουμάκης, Ν. Διαμαντίδης, Τεχνολογία Λογισμικού, Εκδόσεις Σταμούλη