Ελληνικό Ανοικτό Πανεπιστήµιο Τα διαγράµµατα UML ρ. Πάνος Φιτσιλής
Περιεχόµενα Σύντοµη περιγραφή των διαγραµµάτων UML Στατική δοµή υναµική δοµή
ιαγράµµατα UML - 1 Περιγράφουν τη στατική δοµή του συστήµατος κλάσεων (Class diagram) αντικειµένων (Object diagram) στοιχείων (Component diagram) διάταξης(deployment diagram)
ιαγράµµατα UML - 2 Περιγράφουν τη δυναµική δοµή του συστήµατος ΠεριπτώσεωνΧρήσης(Use case diagram) ραστηριοτήτων (Activity diagram) Ακολουθίας (Sequence diagram) Συνεργασίας(Collaboration diagram) Καταστάσεων(Statechart diagram)
ιαγράµµατα κλάσεων (class diagrams) Ένα διάγραµµα κλάσεων δείχνει την στατική δοµή τωνκλάσεωντου συστήµατος και των σχέσεων µεταξύ τους Ένα διάγραµµα κλάσεωνσυνήθως αποτελείται από: Κλάσεις (classes) ιαπροσωπίες (interfaces) Συνεργασίες (collaborations) Συσχετίσεις (relationships)
Το µοντέλο των κλάσεων χρησιµοποιείται για... Κατά την διάρκεια της ανάλυσης για να περιγράψει τις λειτουργικές απαιτήσεις (functional requirements) Κατά τη διάρκεια του σχεδιασµού για να περιγράψει το λεξιλόγιο του συστήµατος (system s vocabulary) τις συνεργασίες (collaborations) και το λογικό σχήµα της βάσης δεδοµένων (logical database schema)
ιαγράµµατα αντικειµένων (object diagrams) Τα διαγράµµατα αντικειµένων περιγράφουν ένα σύνολο αντικειµένων καθώς και την σχέσεις τους µια δεδοµένη χρονική στιγµή Ένα διάγραµµα αντικειµένων συνήθως περιέχει Αντικείµενα (objects) και Συνδέσµους (Links) Τα διαγράµµατα αντικειµένων χρησιµοποιούνται για να καταγράψουν στατικές δοµές αντικειµένων είναι ένα στιγµιότυπο του διαγράµµατος κλάσεων Η στατική όψη ενός διαγράµµατος συνεργασίας
ιαγράµµατα στοιχείων (component diagrams) Τα διαγράµµατα στοιχείων είναι ένα από τα δύο διαγράµµατα τα οποία χρησιµοποιούνται για να περιγράψουνε την φυσική διάσταση του συστήµατος µε όρους Εκτελέσιµων αρχείων Βιβλιοθηκών κώδικα Σελίδων html Εγγράφων Πίνακες βάσεων δεδοµένων κ.λπ. Τα διαγράµµατα στοιχείων περιέχουν Στοιχεία (components) ιαπροσωπίες (interfaces) Σχέσεις Χρησιµοποιούνται για να µοντελοποιήσουν Τον πηγαίο κώδικα Την παραγωγή των εκτελέσιµων προγραµµάτων Την δοµή της βάσης δεδοµένων Την σχέση του συστήµατος µε άλλα εξωτερικά δυναµικά συστήµατα
ιαγράµµατα διάταξης (deployment diagrams) Τα διαγράµµατα διάταξης περιγράφουν τον τρόπο µε τον οποίο διατάσσεται το λογισµικό (software) και το υλικό (hardware) για την τελική λειτουργία του συστήµατος Ένα διάγραµµα διάταξης περιέχει Κόµβους (nodes) και Συσχετίσεις Ένα διάγραµµα διάταξης χρησιµοποιείται για την αρχιτεκτονική περιγραφή σύνθετων συστηµάτων Πελάτη-εξυπηρετητή (client-server) Συστηµάτων πραγµατικού χρόνου (real time systems) Κατανεµηµένων συστηµάτων (distributed
ιαγράµµατα περιπτώσεων χρήσης (use case diagrams) Οι περιπτώσεις χρήσης περιγράφουν την δυναµική συµπεριφορά του συστήµατος είχνουν το πως οι χειριστές χρησιµοποιούνε το σύστηµα Αποτελούνε το σηµείο αναφοράς µια και χρησιµοποιούνται για να καθοδηγήσουν την ανάπτυξη του συστήµατος σε όλες τις φάσεις ανάπτυξης Τα διαγράµµατα περιπτώσεων χρήσης περιέχουν Περιπτώσεις χρήσης (use cases) Χειριστές (actors) και Συσχετίσεις Είναι το βασικότερο είδος διαγράµµατος της UML
ιαγράµµατα δραστηριοτήτων (activity diagrams) Ένα διάγραµµα δραστηριοτήτων περιγράφει την ροή των εργασιών µέσα στο σύστηµα Ένα διάγραµµα δραστηριοτήτων βασικά περιέχει ραστηριότητες (activities) Ενέργειες (actions) και Μεταβάσεις (transitions) Τα διαγράµµατα δραστηριοτήτων χρησιµοποιούνται για την περιγραφή: µιας περίπτωσης χρήσης ροών εργασιών (workflows) διεργασιών (processes) Επιχειρηµατικών διαδικασιών
ιαγράµµατα συνεργασίας (collaboration diagrams) Τα διαγράµµατα συνεργασίας παρουσιάζουν την αλληλεπίδραση των αντικειµένων µέσω της ανταλλαγής µηνυµάτων ίνουν έµφαση στη οργάνωση των αντικειµένων για να υλοποιήσουν την απαιτούµενη συµπεριφορά Ένα διάγραµµα συνεργασίας περιέχει Χειριστές Αντικείµενα και Μηνύµατα που ανταλλάσσουν τα αντικείµενα Τα διαγράµµατα συνεργασίας χρησιµοποιούνται για να περιγράψουν τη ροή του ελέγχου µέσα στο σύστηµα Τα διαγράµµατα συνεργασίας είναι σηµασιολογικά ισοδύναµα µε τα διαγράµµατα ακολουθίας
ιαγράµµατα ακολουθίας (sequence diagrams) Τα διαγράµµατα ακολουθίας παρουσιάζουν την αλληλεπίδραση των αντικειµένων µέσω της ανταλλαγής µηνυµάτων ίνουν έµφαση στη χρονική αλληλουχία των µηνυµάτων Ένα διάγραµµα ακολουθίας περιέχει Χειριστές Αντικείµενα και Μηνύµατα που ανταλλάσσουν τα αντικείµενα Τα διαγράµµατα ακολουθίας χρησιµοποιούνται για να περιγράψουν Τον κύκλο ζωής των αντικειµένων Τα διαγράµµατα ακολουθίας είναι σηµασιολογικά ισοδύναµα µε ταδιαγράµµατα συνεργασίας
ιαγράµµατα καταστάσεων (statechart diagrams) Ένα διάγραµµα καταστάσεων περιγράφει µια µηχανή καταστάσεων δίνοντας έµφαση στην ροή του ελέγχου από κατάσταση σε κατάσταση Μια µηχανή καταστάσεων προσδιορίζει Τις καταστάσεις (states) που µπορεί να βρεθεί ένα αντικείµενο Τα γεγονότα (events) στα οποία αντιδρά ένα αντικείµενο Την απόκριση (response) του αντικειµένου στα γεγονότα Ένα διάγραµµα καταστάσεων περιέχει Καταστάσεις (states) και Μεταβάσεις (transitions) Ένα διάγραµµα καταστάσεων χρησιµοποιείται για την περιγραφή ενεργών (reactive) αντικειµένων
Ποια διαγράµµατα να χρησιµοποιήσω H UML είναι γλώσσα και µπορείς να περιγράψεις ένα σύστηµα µε πολλούς τρόπους Η UML δεν ορίζει πια διαδικασία να ακολουθήσουµε Μερικά από τα διαγράµµατα είναι ισοδύναµα Τα διαγράµµατα περιγράφουν το σύστηµα από διαφορετικές οπτικές γωνίες (views) Η γλώσσα είναι δυναµική και σου επιτρέπει να χρησιµοποιήσεις φτιάξεις την δική σου διάλεκτο
να µοντέλο είναι µια πλήρης περιγραφή υ συστήµατος από µια οπτική γωνία Τα διαγράµµατα είναι όψεις ενός µοντέλου Use Use Case Use Use Case Case ραστηριοτήτων ραστηριοτήτων Use Use Case Use Use Case Case Περιπτώσεων Περιπτώσεων Χρήσης Χρήσης State State State Κλάσεων State State State Αντικειµένων Αντικειµένων Scenario Scenario Scenario Ακολουθίας Ακολουθίας Μοντέλο State State State Καταστάσεων Καταστάσεων Scenario Scenario Scenario Συνεργασίας Συνεργασίας ιάταξης Component Component Component Component Στοιχείων
Æ Á ¹ ¼- ëçñ º ±â»ç ëàú äã»çñ Ù. È-ÀÏ ü ÀÚ Â Àоî  ¹ ¼-ÀÇ Á º ÇØ ç ¹ ¼- ü ¼³Á À» äã»çñ Ù. È- é ü  ÀоîµéÀΠüµé ëçø ÀÌ º Î Á ÄÀ» ½ÃÄÑ È- é º ÁØ Ù. 1: Doc view request ( ) 1: Doc view request ( ) 9: sortbyname ( ) 2: fetchdoc( ) L 3: create ( ) 6: filldocument ( ) 9: sortbyname ( ) 2: fetchdoc( ) 7: readfile ( ) 5: readdoc ( ) 4: create ( ) 8: fillfile ( ) 5: readdoc ( ) 7: readfile ( ) 4: create ( ) 8: fillfile ( ) 3: create ( ) 6: filldocument ( ) FileMgr fetchdoc( ) sortbyname( ) rep Repository (from Persistence) name : char * = 0 readdoc( ) readfile( ) UI DocumentApp Persistence FileList add( ) delete( ) File read( ) DocumentList add( ) delete( ) flist 1 GrpFile read( ) open( ) create( ) fillfile( ) Document name : int docid : int numfield : int get( ) open( ) close( ) read( ) sortfilelist( ) create( ) filldocument( ) global MFC RogueWave read() fill the code.. Openning Reading add file [ numberoffile==max ] / flag OFF close file Closing close file add file Writing ºÐ»ê È æàç Çϵå þ¾î¹ ³ Æ À ÎÀÇ Á º ½Ã½ºÅÛ á ðµ - À µµ ì 95 : Å óàì¾ðæ - À µµ ì NT: ÀÀ ë¼-¹ö - À нº Ó½Å: ÀÀ ë ¼-¹ö ¹ µ ÀÌÅ ¼-¹ö, Åë½Å ¼-¹ö - IBM ÞÀÎÇÁ ¹ÀÓ: µ ÀÌÅ ¼-¹ö, Åë½Å ¼-¹ö Window95 ¹ ¼- ü Å óàì¾ðæ.exe Windows NT Windows NT ¹ ¼- ü Áø.EXE Windows95 IBM Mainframe µ ÀÌÅ º À̽º¼-¹ö Solaris ÀÀ ë¼-¹ö.exe Windows95 ¹ ¼- ü ¾ÖÇà Alpha UNIX Μοντελοποίηση µε UML διαγράµµατα περιπτώσεων χρήσης Actor A Use Case 1 Actor B Κλάσεων Καταστάσεων Εδικός Use Case 2 Use Case 3 <<entity>> Customer name addr receive() withdraw() fetch() send() Κλάση ιάταξης Repository DocumentList Χρήστης mainwnd : MainWnd gfile : GrpFile Πακέτα FileManager Document user :»ç ëàú filemgr : FileMgr GraphicFile File FileList repository : Repository document : Document Συνεργασίας Στοιχείων mainwnd filemgr : document : gfile repository user FileMgr Document Κώδικας Ακολουθίας Εκτελέσιµο Σύστηµα
Για παράδειγµα... Εάν φτιάχνετε µια απλή µονολιθική εφαρµογή που τρέχει σε έναν υπολογιστή τότε χρειαζόµαστε µόνον: Use case view ιαγράµµατα περιπτώσεων χρήσης Design view ιαγράµµατα κλάσεων (στατική δοµή) ιαγράµµατα συνεργασίας (δυναµική συµπεριφορά) Process view εν χρειάζεται Implementation view εν χρειάζεται Deployment view εν χρειάζεται
Τι είναι σηµαντικό... Σκοπός της UML δεν είναι να φτιάξουµε όµορφα διαγράµµατα αλλά να προδιαγράψουµε τοσύστηµα Σκοπός µας είναι να κατασκευάσουµε το σύστηµα και όχι τα διαγράµµατα εν είναι σηµαντικό ποιο είδος διαγραµµάτων θα χρησιµοποιήσουµε Μερικά διαγράµµατα χρησιµοποιούνται κατά τη διάρκεια της ανάπτυξης του συστήµατος και όχι ως τελικά παραδοτέα
Τι να θυµόµαστε... Η UML έχει εννιά διαφορετικά είδη διαγραµµάτων το καθένα εκ των οποίων περιγράφει µια διαφορετική συµπληρωµατική όψη του συστήµατος Η στατική δοµή περιγράφεται µε τα διαγράµµατα κλάσεων, αντικειµένων, στοιχείων, διάταξης Η δυναµική δοµή περιγράφεται µε τα διαγράµµατα περιπτώσεων χρήσης, δραστηριοτήτων, ακολουθίας, συνεργασίας, καταστάσεων Τα πιο βασικά και συχνά χρησιµοποιούµενα διαγράµµατα στην UML είναι τα παρακάτω: τα διαγράµµατα κλάσεων τα διαγράµµατα περιπτώσεων χρήσης τα διαγράµµατα συνεργασίας