ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Διαχείριση Πληροφοριακών Συστημάτων Ενότητα #7: UML Χρήστος Δρόσος Τμήμα Μηχανικών Αυτοματισμού Τ.Ε.
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Σκοποί ενότητας Ορισμός της UML Στοιχειά των Διαγραμμάτων Βασικοί άξονες της UML Τύποι διαγραµµάτων στη UML Σχέσεις διαγραµµάτων στη UML Μοντελοποιώντας µε τη UML 4
Περιεχόμενα ενότητας (1) Χαρακτηριστικά τής UML Στοιχεία των διαγραμμάτων Ορισμός του μοντέλου Ορισμός της UML Χαρακτηριστικά της UML Είδη συστημάτων που µοντελοποιούνται µε τη UML 5
Περιεχόμενα ενότητας (2) Χρήση της UML Οι πέντε βασικοί άξονες της UML Μια κατηγοριοποίηση των στοιχείων της UML οµικά στοιχεία της UML Στοιχεία συμπεριφοράς στη UML Στοιχεία ομαδοποίησης στη UML 6
Περιεχόμενα ενότητας (3) Επεξηγηματικά στοιχεία της UML Συσχετίσεις στη UML Τύποι διαγραµµάτων στη UML Σχέσεις διαγραµµάτων στη UML Class Diagrams Object Diagrams 7
Περιεχόμενα ενότητας (4) Component Diagrams Deployment Diagrams Use Case Diagrams Sequence Diagrams Collaboration Diagrams ιαφορές Sequence Diagrams & Collaboration Diagrams 8
Περιεχόμενα ενότητας (5) Activity Diagrams State chart Diagrams Μοντελοποιώντας µε τη UML Αντιστοιχία διαγραµµάτων στις διάφορες φάσεις ανάπτυξης συστήματος Λειτουργίες των εργαλείων µοντελοποίησης (Case Tools) 9
Εισαγωγή στη UML
Χαρακτηριστικά της UML Μηχανισμοί επέκτασής Νήματα & διεργασίες Κατανομή & συνδρομικότητα Patterns Διαγράμματα δραστηριοτήτων Εκλεπτύνσεις Διασυνδέσεις & συνιστώσες Μια γλώσσα περιορισμών 11
Στοιχεία των διαγραμμάτων Οι γράφοι και το περιεχόμενό τους Έκφραση Διαχείριση μοντέλων 12
Ορισμός του μοντέλου Αποτελεί µια αφηρημένη περιγραφή ενός Φυσικού συστήματος. Αποτελεί ένα σχέδιο για την κατασκευή ενός συστήματος. Βοηθάει στην κατανόηση ενός μεγάλου μεγέθους συστήματος. Βοηθάει στην επικοινωνία των µελών της οµάδας που αναπτύσσει το σύστηµα. 13
Ορισμός της UML Η UML είναι µια οπτική αντικειμενοστραφής γλώσσα µοντελοποίησης που χρησιμοποιείται για: Απεικόνιση (visualization) Προδιαγραφή(specification) Τεκμηρίωση (documentation) Κατασκευή (construction) Των δοµικών συστατικών ενός συστήµατος (λογισµικού ή όχι). 14
Χαρακτηριστικά της UML
Χαρακτηριστικά της UML (1) Ιδιαίτερα εκφραστική. Σημασιολογικά, είναι εκτενής. Υποστηρίζει τη σημασιολογία τύπων και µοντέλων για όλα τα µοντέλα ενός συστήματος. Σε επίπεδο βασικών αρχών, είναι µικρή και απλή.διακρίνουμε πέντε βασικούς άξονες. Είναι επεκτάσιμή.υπάρχει η δυνατότητα εμπλουτισμού του µετα-µοντέλου µε κλάσεις, ιδιότητες και σημασιολογία. Είναι επακριβώς ορισμένη µε βάση τα δομικά συστατικά ενός αντικειμενοστραφούς συστήματος. 16
Χαρακτηριστικά της UML (2) Προήλθε από την ενοποίηση των συμβολισμών που χρησιμοποιούσαν οι µεθοδολογίες Booch, OMT, κ.λπ. Ενσωματώνει τις ιδέες καλής πρακτικής από τη βιομηχανία λογισμικού. Είναι σήμερα βιομηχανικό πρότυπο και αναπτύχθηκε στο πλαίσιο του οργανισμού OMG. Υλοποιεί την ανάγκη της βιομηχανίας λογισμικού για μια ενιαία γλώσσα µοντελοποίησης. 17
Χαρακτηριστικά της UML (3) Αντιμετώπιση σημερινών και βραχυπρόθεσμων προβλημάτων στην ανάπτυξη λογισμικού: Κλίμακα Γλώσσες: Java, C++, Smalltalk, Ada, Visual Basic Πολυεπεξεργασία και παραλληλία Πρότυπα Λογισμικού (Patterns) Ψηφίδες λογισμικού (Componentware) Μοντελοποίηση επιχειρησιακής πρακτικής 18
Είδη συστημάτων που µοντελοποιούνται µε τη UML
Είδη συστημάτων που µοντελοποιούνται µε τη UML (1) Συστήματα µε έμφαση στο λογισμικό (software-intensive systems) Επιχειρησιακά συστήματα (business systems) Συστήματα που δεν περιέχουν λογισμικό (non-software systems) 20
Χρήση της UML
Χρήση της UML (1) 22
Βασικοί άξονες της UML
Οι πέντε βασικοί άξονες της UML Στοιχεία του µοντέλου (model elements) Συσχετίσεις (relationships) Μηχανισμοί (mechanisms) ιαγράµµατα (diagrams) Αρχιτεκτονικές όψεις (architectural views) 24
Κατηγοριοποίηση των στοιχείων της UML
Μια κατηγοριοποίηση των στοιχείων της UML 26
οµικά στοιχεία της UML
οµικά στοιχεία της UML (1) 28
οµικά στοιχεία της UML (2) 29
Στοιχεία συμπεριφοράς στη UML
Στοιχεία συμπεριφοράς στη UML (1) 31
Στοιχεία ομαδοποίησης στη UML
Στοιχεία ομαδοποίησης στη UML (1) 33
Επεξηγηματικά στοιχεία της UML 34
Συσχετίσεις στη UML
Συσχετίσεις στη UML (1) 36
Συσχετίσεις στη UML (2) 37
Τύποι διαγραµµάτων στη UML
Τύποι διαγραµµάτων στη UML (1) οµικά ιαγράµµατα (Structural Diagrams): Περιγράφουν την εσωτερική λογική δομή ενός συστήματος, δηλαδή τα συστατικά του και τις σχέσεις µεταξύ τους. ιάγραµµα Κλάσεων (Class Diagram) ιάγραµµα Αντικειµένων(Object Diagram) ιάγραµµα Συνιστωσών(Component Diagram) Παραταξιακό ιάγραµµα (Deployment Diagram) 39
Τύποι διαγραµµάτων στη UML (2) ιαγράµµατα Συμπεριφοράς (Behavior Diagrams): Περιγράφουν τη δυναμική συμπεριφορά ενός συστήματος, δηλαδή την απόκρισή του σε γεγονότα του περιβάλλοντός του. ιάγραµµα Περιπτώσεων Χρήσης (Use Case Diagram) ιάγραµµα Αλληλουχίας (Sequence Diagram) ιάγραµµα δραστηριοτήτων (Activity Diagram) ιάγραµµα Συνεργασίας (Collaboration Diagram) ιάγραµµα Καταστάσεων (Statechart Diagram) 40
Τύποι διαγραµµάτων στη UML (3) ιαγράµµατα ιαχείρισης Μοντέλου (Model Management Diagrams): Περιγράφουν τη φυσική δομή ενός συστήματος, δηλαδή τις µονάδες λογισμικού που το αποτελούν, σε όρους περιβάλλοντος υλοποίησης. ιάγραµµα Πακέτων(Package Diagram) ιάγραµµα Υποσυστηµάτων(Subsystem Diagram) ιάγραµµα Μοντέλων (Model Diagram) 41
Σχέσεις διαγραµµάτων στη UML 42
Class Diagrams Τα Class Diagrams παρουσιάζουν κάποια στατικά στοιχεία µοντελοποίησης και τις σχέσεις µεταξύ τους. Όπως έχει ήδη αναφερθεί, οι κλάσεις µπορεί να συσχετίζονται µε σχέσεις εξάρτησης, συσχέτισης, γενίκευσης, συσσωμάτωσης, σύνθεσης, πραγματοποίησης,... 43
Object Diagrams 44
Component Diagrams 45
Deployment Diagrams 46
Use Case Diagrams 47
Sequence Diagrams 48
Collaboration Diagrams 49
ιαφορές Sequence Diagrams & Collaboration Diagrams Sequence diagram: δείχνει την ακολουθία µηνυμάτων ανάμεσα στα αντικείμενα, µε την πάροδο του χρόνου. Collaboration diagram: δίνει μεγαλύτερη έμφαση στο περιεχόμενο και στις σχέσεις μεταξύ των αντικειμένων. 50
Activity Diagrams 51
State chart Diagrams 52
Μοντελοποιώντας µε τη UML
Μοντελοποιώντας µε τη UML (1) 54
Αντιστοιχία διαγραµµάτων στις διάφορες φάσεις ανάπτυξης συστήματος
Αντιστοιχία διαγραµµάτων στις διάφορες φάσεις ανάπτυξης συστήµατος (1) 56
Λειτουργίες των εργαλείων µοντελοποίησης (Case Tools)
Λειτουργίες των εργαλείων µοντελοποίησης (Case Tools) (1) Σχεδιασμός διαγραµµάτων που εξασφαλίζουν την σωστή χρήστη των στοιχείων του µοντέλου. Αποθήκευση δεδομένων. Αν το όνομα µιας κλάσης αλλάζει σ ένα διάγραµµα, η αλλαγή αυτή διαδίδεται και στα υπόλοιπα. Υποστήριξη διάδοσης ενός στοιχείου από ένα διάγραµµα σε ένα άλλο κι επέκταση της περιγραφής του στοιχείου. Υποστήριξη πολλών χρηστών. ίνει την δυνατότητα να δουλεύουν πολλοί χρήστες ταυτόχρονα. ηµιουργία κώδικα 58
Λειτουργίες των εργαλείων µοντελοποίησης (Case Tools) (2) Αντίστροφη παραγωγή, δηλαδή δυνατότητα παραγωγής µοντέλων από τον κώδικα (reverse engineering). Συμβατότητα µε άλλα εργαλεία όπως editors, µμεταγλωττιστές κι άλλα επιχειρησιακά εργαλεία. Κάλυψή όλων των επιπέδων ανάπτυξης του συστήματος, από το επίπεδο περιγραφής του συστήματος στο επίπεδο κώδικα. Επικοινωνία ανάμεσα στα µοντέλα. Ένα διάγραµµα σε κάποιο µοντέλο θα πρέπει να έχει τη δυνατότητα να εισάγεται από το ένα µοντέλο στο άλλο. 59
Τέλος Ενότητας