Εισαγωγή στη γλώσσα µοντελοποίησης UML

Σχετικά έγγραφα
Εισαγωγή στη γλώσσα µοντελοποίησης UML

Εισαγωγή στη γλώσσα µοντελοποίησης UML

Εισαγωγή στη γλώσσα µοντελοποίησης UML

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα

Διαχείριση Πληροφοριακών Συστημάτων

UML: Unified modelling language

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία

Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές

Εισαγωγή στη UML. Περιεχόμενα. Γενικά χαρακτηριστικά. Στοιχεία μοντέλων. Συσχετίσεις. Διαγράμματα. Παραδείγματα. Γλώσσες Προδιαγραφής 1

Πανεπιστήµιο Πειραιά Τµήµα Εκπαιδευτικής Τεχνολογίας και Ψηφιακών Συστηµάτων. Εισαγωγή στην UML. Βασίλειος Βεσκούκης

Εισαγωγή στη UML. Περιεχόµενα. Γενικά χαρακτηριστικά. Στοιχεία µοντέλων. Συσχετίσεις. ιαγράµµατα. Παραδείγµατα. Γλώσσες Προδιαγραφής

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 21/11/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο

Περιεχόμενο του μαθήματος

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 8 ο & 9 ο Εργαστήριο -

Rational Unified Process:

Tεχνολογία Λογισµικού II

Εισαγωγή στη γλώσσα UML

Τεχνολογία Λογισμικού

Περιεχόμενα. ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στη UML... 19

Τεχνολογία Λογισμικού

09 Η γλώσσα UML II. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

Ανάλυση Πληροφοριακών Συστημάτων. «Βασικές Έννοιες Αντικειμενοστρεφούς Προγραμματισμού Διαγράμματα κλάσεων» Βασίλειος Καρακόιδας

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

Ελληνικό Ανοικτό Πανεπιστήµιο. Τα διαγράµµατα UML. ρ. Πάνος Φιτσιλής

Ανάλυση Πληροφοριακών Συστημάτων. «Εισαγωγή στην UML» Βασίλειος Καρακόιδας

ΜΕΘΟΔΟΛΟΓΙΕΣ ΑΝΑΠΤΥΞΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στη Ενοποιηµένη Προσέγγιση Unified Process (UP) ρ. Πάνος Φιτσιλής

Περιεχόμενο του μαθήματος

Κεφάλαιο 2ο. Κατανοώντας την αντικειμενοστρέφεια

ΧΡΗΣΗ ΘΕΜΑΤΙΚΩΝ ΧΑΡΤΩΝ ΓΙΑ ΤΗΝ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΤΩΝ ΑΠΑ- ΡΑΙΤΗΤΩΝ ΕΝΝΟΙΩΝ ΓΙΑ ΤΗ Ι ΑΣΚΑΛΙΑ ΤΗΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΕΙΑΣ

Τεχνολογία Λογισμικού

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

Μοτίβα Σχεδίασης (Design Patterns)

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Τα διαγράµµατα κλάσεων

Ανάλυση Συστηµάτων και Τεχνολογία Λογισµικού

Τεχνολογία λογισμικού στην πράξη

Αρχιτεκτονική Λογισμικού

ΤΛΟΠΟΙΗΗ STANDALONE ΕΦΑΡΜΟΓΗ ΚΡΑΣΗΕΩΝ ΔΩΜΑΣΙΩΝ ΞΕΝΟΔΟΧΕΙΟΤ ΜΕ C-SHARP ΚΑΙ SQL-SERVER

Τα διαγράµµατα συστατικών

Μεθοδολογίες Παραγωγής Λογισµικού

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Rational Unified Process. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Ανάλυση Πληροφοριακών Συστημάτων. «Διαγράμματα περιπτώσεων χρήσης» Βασίλειος Καρακόιδας

Μέθοδοι μοντελοποίησης

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής

Ανάλυση / Σχεδίαση και Υλοποίηση Εφαρμογής Υποβοήθησης Καθηγητών

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

Αντικειµενοστραφής µοντελοποίηση των διαδικασιών της ανάπτυξης λογισµικού

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Διάλεξη 11: Αντικειμενοστρεφής Σχεδιασμός ΙII

ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ανάλυση απαιτήσεων Σε αυτό το μάθημα θα ασχοληθούμε με : Δημιουργία μοντέλων

Εισαγωγή στη UML ΑΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ 1

Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής

Θεωρίες Μάθησης και Εκπαιδευτικό Λογισμικό

Τα διαγράµµατα ακολουθίας

Διαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων

Ανάλυση Απαιτήσεων Mεθοδολογίες Ανάπτυξης

Εισαγωγή στην Τεχνολογία Λογισµικού

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής

Wrapper Classes, Abstract Classes and Interfaces

Σχεδίαση Περιβάλλοντος εργασίας ενός Οργανισμού και Σχεδίαση Χάρτη διαδικασιών ενός Οργανισμού και

Τι είναι η UML. H UML (Unified Modeling Language) είναι µιά γλώσσα µοντελοποίησης γιά

. Μεθοδολογία Προγραμματισμού. Abstract Κλάσεις και Interfaces. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

ΣΥΣΤΗΜΑΤΑ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Εισαγωγή στην Τεχνολογία Λογισµικού

Τα διαγράµµατα καταστάσεων

Ανάλυση Περιπτώσεων Χρήσης

ιαγράµµατα Αλληλεπίδρασης ιαγράµµατα Ακολουθίας ιαγράµµατα Επικοινωνίας

Τι είναι η λογική αρχιτεκτονική

Σχεδιασµός βασισµένος σε συνιστώσες

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 1: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (1ο Μέρος)

Οι περιπτώσεις χρήσης

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. της φοιτήτριας του Τμήματος Ηλεκτρολόγων Μηχανικών και. Τεχνολογίας Υπολογιστών της Πολυτεχνικής σχολής του Πανεπιστημίου Πατρών:

Τεχνολογία Λογισμικού

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Μάθημα «Υπηρεσίες Ηλεκτρονικής Υγείας»

Εισαγωγή στην Τεχνολογία Λογισµικού

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

Τεχνικές Προδιαγραφές ιαλειτουργικότητας

Μοντελοκεντρική Διαχείριση της Δομής του Διαδικτύου των Πραγμάτων ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Οι Τεχνικές Προδιαγραφές Υλοποίησης της Οδηγίας INSPIRE και ο ρόλος του ΤΕΕ

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Αλληλεπίδρασης. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

ΕΚΠΑΙΔΕΥΤΙΚΟ ΥΛΙΚΟ ΠΟΛΥΜΕΣΩΝ ΓΙΑ ΤΟ ΑΝΤΙΚΕΙΜΕΝΟ ΤΗΣ ΣΧΕΔΙΑΣΗΣ ΚΑΙ ΑΝΑΠΤΥΞΗΣ ΠΡΟΓΡΑΜΜΑΤΩΝ ΑΞΙΟΠΟΙΩΝΤΑΣ ΤΗ ΓΛΩΣΣΑ UML

Μοντελοποίηση Επιχειρησιακών Διαδικασιών

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

ΣΧΕΔΙΑΣΜΟΣ ΛΟΓΙΣΜΙΚΟΥ ΠΛΗ24 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΙΙ

Τεχνολογία Λογισμικού

Τεχνολογία Λογισμικού

Μέθοδοι. Υποσυστήµατα και πακέτα. Μοντέλα αντικειµενοστραφούς σχεδίασης. Αντικειµενοστραφής Σχεδίαση. Στα πρώτα στάδια της ανάλυσης

περιεχόμενα παρουσίασης Actors Σενάρια Περιεχόμενο περιπτώσεων χρήσης Πρότυπα περιπτώσεων χρήσης Διαγράμματα περιπτώσεων χρήσης

Ελληνικό Ανοικτό Πανεπιστήµιο. Η ιαχείριση Απαιτήσεων στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

ιαγράµµατα Συµπεριφοράς Ανάλυση Συστηµάτων 2009

Transcript:

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή ΗMMY Εισαγωγή στη γλώσσα µοντελοποίησης UML Ανδρέας Παπασαλούρος andpapas@softlab.ntua.gr Περίγραµµα Γενικά οµικά στοιχεία Τύποι διαγραµµάτων Παραδείγµατα Ειδικά θέµατα Βιβλιογραφία Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 2 Ένα µοντέλο Η Unified Modeling Language Αποτελεί µια αφηρηµένη περιγραφή ενός φυσικού συστήµατος Αποτελεί ένα σχέδιο για την κατασκευή ενός συστήµατος Βοηθάει στην κατανόηση ενός µεγάλου µεγέθους συστήµατος Βοηθάει στην επικοινωνία των µελών της κοινότητας που αναπτύσσει το σύστηµα είναι µια οπτική (visual) γλώσσα µοντελοποίησης. Έχει εκφραστικές δυνατότητες για την: Απεικόνιση (visualization) Προδιαγραφή (specification) Τεκµηρίωση (documentation) Κατασκευή (construction) των προϊόντων της αναπτυξιακής διαδικασίας συστηµάτων (λογισµικού ή όχι) Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 3 Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 4 Είδη συστηµάτων που µοντελοποιούνται µε τη UML Συστήµατα µε έµφαση στο λογισµικό (software-intensive systems) Επιχειρησιακά συστήµατα (business systems) Συστήµατα που δεν περιέχουν λογισµικό (non-software systems) Χαρακτηριστικά Προήλθε από την ενοποίηση των συµβολισµών που χρησιµοποιούσαν οι µεθοδολογίες Booch, OMT, OOSE κ.λπ. Ενσωµατώνει τις ιδέες καλής πρακτικής από τη βιοµηχανία Λογισµικού Είναι σήµερα βιοµηχανικό πρότυπο και αναπτύχθηκε στο πλαίσιο του οργανισµού OMG. Υλοποιεί την ανάγκη της βιοµηχανίας λογισµικού για µια εννοιαία γλώσσα µοντελοποίησης Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 5 Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 6 1

UML και µεθοδολογίες ανάπτυξης Τα δοµικά στοιχεία της UML ιαφορετικές µεθοδολογίες ανάπτυξης είναι δυνατόν να υϊοθετηθούν έχοντας τη UML ως γλώσσα µοντελοποίησης (π.χ. USDP, RUP, κλπ) Κάθε µεθοδολογία προτείνει τα δικά της µοντέλα Στο πλαίσιο του µαθήµατος χρησιµοποιείται η µεθοδολογία είναι η YASM Στοιχεία Σχέσεις ιαγράµµατα Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 7 Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 8 οµικά στοιχεία οµικά στοιχεία Κλάση (Class) Ένα σύνολο αντικειµένων που έχουν την ίδια δοµή και συµπεριφορά. ιαπροσωπεία (Interface) Ένα σύνολο από λειτουργίες που ορίζουν την εξωτερική συµπεριφορά ενός αντικειµένου Συνεργασία (Collaboration) Η περιγραφή µιας διάδρασης µεταξύ ενός συνόλου αντικειµένων Περίπτωση χρήσης (Use Case) Μια λειτουργία που επιτελεί ένα σύστηµα και είναι διαθέσιµη στο χρήστη Ενεργή κλάση (active class) Μια κλάση που περιγράφει µια διεργασία ή ένα νήµα εκτέλεσης Ψηφίδα (component) Ένα φυσικό και επαναχρησιµοποιήσιµο µέρος ενός συστήµατος που συνήθως υλοποιεί κάποιες διαπροσωπείες (interfaces) Κόµβος (Node) Ένας υπολογιστικός πόρος που έχει κάποια µνήµη και υπολογιστική ικανότητα. Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 9 Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 10 Συµπεριφορικά στοιχεία Οµαδοποιητικά στοιχεία Κατάσταση (State) Μια συνθήκη ή περίπτωση στο χρόνο ζωής ενός αντικειµένου, όπου ικανοποιεί κάποιες συνθήκες, εκτελεί κάποια δραστηριότητα ή αναµένει κάποιο γεγονός Μετάβαση (Transition) Μια σχέση µεταξύ δύο καταστάσεων ενός αντικειµένου που υποδηλώνει αλλαγή στην κατάσταση του αντικειµένου µε την εµφάνιση ενός γεγονότος ραστηριότητα (Activity) Μια εκτέλεση λειτουργίας κατά τη διάρκεια ζωής ενός αντικείµενου Πακέτο (Package) Ένα δοµικό στοιχείο γενικής χρήσης για την οργάνωση άλλων δοµικών στοιχείων, διαγραµµάτων ή και άλλων πακέτων της UML σε οµάδες. Υποσύστηµα (Subsystem) Μια µονάδα στην ιεραρχική αποσύνθεση ενός µεγάλου συστήµατος. Επικοινωνεί µε το περιβάλλον του µέσω διαπροσωπειών Μοντέλο (Model) Μια όψη ενός συστήµατος <<subsystem>> Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 11 Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 12 2

Επεξηγηµατικά στοιχεία Σχέσεις Σηµείωση (note) Ένα δοµικό στοιχείο κειµενικού σχολιασµού για την περιγραφή ή επεξήγηση ενός άλλου δοµικού στοιχείου ή µιας οµάδας δοµικών στοιχείων. Συσχέτιση (Association) Μια δοµική σχέση που περιγράφει ένα σύνολο συνδέσεων µεταξύ αντικειµένων Εξάρτηση (Dependency) Μια σχέση µεταξύ δυο δοµικών στοιχείων, όπου µια αλλαγή στο πρώτο επιδρά στο δεύτερο Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 13 Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 14 Σχέσεις οµικά ιαγράµµατα Γενίκευση (Generalization) Μια σχέση µεταξύ ενός δοµικού στοιχείου (πατέρας) και ενός δεύτερου (παιδί) που εξειδικεύει το πρώτο Πραγµατοποίηση (Realization) Μια σχέση µεταξύ δυο δοµικών στοιχείων, όπου το πρώτο προδιαγράφει µια συµπεριφορά, και το δεύτερο την υλοποιεί Κλάσεων (Class Diagram) Στατικά στοιχεία µοντελοποίησης, και τις σχέσεις µεταξύ τους Αντικειµένων (Component) Ένα σύνολο αντικειµένων και οι συσχετίσεις τους σε µια συγκεκριµένη χρονική στιγµή Ψηφιδικό (Component) Η οργάνωση και τις εξαρτήσεις των µελών ενός συνόλου συνθετηµάτων Παραταξιακό (Deployment) Η τοπολογία των υπολογιστικών κόµβων ενός συστήµατος και η κατανοµή των συνθετηµάτων µεταξύ τους Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 15 Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 16 Συµπεριφορικά διαγράµµατα ιάγραµµα κλάσεων: Κλάσεις-συσχετίσεις Περιπτώσεων Χρήσης (Use Case) Η λειτουργικότητα του συστήµατος, όπως φαίνεται από εξωτερικούς «Συνεργάτες» (Actors). Αλληλουχίας (Sequence) Μια αλληλεπίδραση αντικειµένων µε έµφαση στην χρονική σειρά ανταλλαγής µηνυµάτων Συνεργασίας (Collaboration) Μια αλληλεπίδραση αντικειµένων µε έµφαση στη δοµική τους οργάνωση Κατάστασης (Statechart) Οι καταστάσεις του κύκλου ζωής των αντικειµένων ραστηριότητας (Activity) Ο έλεγχος ροής σε ένα σύνολο δραστηριοτήτων Link theta : double Link() setpolygon() setlinestyle() contains() select() deselect() getfirstend() getsecondend() gettheta() +link 0..n Ρόλοι connects Συσχέτιση Πολλαπλό τητα ρόλων Χαρακτηριστικά Node width : int = 0 height : int = 0 Node() handlerpressed() Λειτουργίες +nodes setsize() 2 getposition() getcenter() getnodeelement() getwidth() getheight() getvirtualheight() Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 17 Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 18 3

ιάγραµµα κλάσεων: Γενίκευση ιάγραµµα Κλάσεων: Ενσωµάτωση GraphicsElement selected : boolean Κλάση DefaultGraphModel Σχέση Γενίκευσης updateposition() select() deselect() isselected() Link theta : double Node width : int = 0 height : int = 0 NodeElement LinkElement Link() setpolygon() setlinestyle() contains() select() deselect() getfirstend() getsecondend() gettheta() Node() handlerpressed() setsize() getposition() getcenter() getnodeelement() getwidth() getheight() getvirtualheight() Σχέση Ενσωµάτωσης Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 19 Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 20 ιάγραµµα Κλάσεων: ιαπροσωπείες ιάγγραµµα Κλάσεων: Πακέτα ιαπροσωπεία model DefaultGraphModel nodes : Logical View::java::util::Vector links : Logical View::java::util::Vector controllers DefaultGraphModel() insertnode() deletenode() deletelink() getnodes() getlinks() insertlink() GraphMo del ui Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 21 Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 22 ιάγραµµα Αντικειµένων ιάγραµµα Συνθετηµάτων : Link Link.java GraphComponent.java Αντικείµενο : Node Node.java Πολλαπλά στιγµιότυπα Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 23 Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 24 4

Παραταξιακό ιάγραµµα ιάγραµµα Περιπτώσεων Χρήσης Creates Graph PC Printer Designer Edits Graph Prints Graph Reviewer Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 25 Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 26 ιάγραµµα Καταστάσεων ιάγραµµα Αλληλουχίας SELECT Mo use U p mousepressed[ mouseonnode ] ^selectnode(point) mousedragged / repaintnode : Designer : Frame : DefaultGraphModel : NodeElement setmode( mode )[ mode=node ] mousereleased MouseDownOnSelected setmode( mode )[ mode=link ] 1: newnode() 2: insertnode() 3: setname() MouseUp NODE mousepressed( MouseEvent ) ^model.insertnode MouseDown LINK MouseUp 4: addnode() mousepressed[ not mouseonnode ] mousepressed[ mouseonnode ] / selectnode(point) mousereleased( MouseEvent ) mousedragged / redrawline mousereleased[ not MouseOnNode ] LinkGeneration mousereleased[ mouseonnode ] ^model.insertlink(node1, node2) Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 27 Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 28 ιάγραµµα Συνεργασίας ιάγραµµα ραστηριότητας 1: newnode() : Frame Designer Reviewer : Designer 2: insertnode() Create Diagram Review Diagram 3: setname() : DefaultGraphModel : NodeElement 4: addnode() Revise Diagram Finalize [ not OK ] [ OK ] Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 29 Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 30 5

Μηχανισµοί επέκτασης Επέκταση της UML Στερεότυπα (stereotypes) επεκτείνουν το λεξιλόγιο της UML ορίζοντας καινούρια δοµικά στοιχεία, βασισµένα σε ήδη υπάρχοντα <<subsystem>> Ετικέτες τιµών (tagged values) επεκτείνουν τις ιδιότητες των δοµικών στοιχείων,προσθέτοντας πληροφορία στις προδιαγραφές τους {Version=1.2} Περιορισµοί (constraints) επεκτείνουν τη σηµασιολογία των δοµικών στοιχείων της UML, ορίζοντας νέους κανόνες ή τροποποιώντας τους ήδη υπάρχοντες. {this.salary<boss.salary} Χρήση των µηχανισµών επέκτασης UML Profiles (πχ. Corba profile) Η αρχιτεκτονική τεσσάρων επιπέδων της γλώσσας: Meta-MetaModel M3 (π.χ.mof) MetaModel M2 (π.χ. UML) User Model M1 (π.χ. Μοντέλο του συστήµατος ABC) Instance M0 (π.χ. Στιγµιότυπα των στοιχείων του µοντέλου του ABC συστήµατος) Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 31 Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 32 Σχετικές τεχνολογίες και πρότυπα Βιβλιογραφία XML Metadata Interchange (XMI) Meta Object Facility (MOF) Model Driven Architecture (MDA) Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 33 G. Booch, J. Rumbaugh and I. Jacobson, The UML User Guide, Addison-Wesley, 1999. J. Rumbaugh, I. Jacobson and G. Booch, The UML Reference Manual, Addison-Wesley, 1999. H. Eriksson and M. Penker, UML Toolkit, John Wiley & Sons, 1998. G. Schneider and J. Winters, Applying Use Cases, Addison- Wesley, 1999. M. Fowler and, K. Scott, UML Distilled Applying the Standard Object Modeling Language, Addison-Wesley, 1997. John Cheesman and John Daniels, UML Components: A Simple Process for Specifying Component-Based Software, Addison- Wesley, 2000. Sinan Si Alhir, UML in a nutshell a desktop quick reference, O Reilly, 1998. Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 34 Σύνδεσµοι στο Web Object Management Group http://www.omg.org/uml Rational Software Corp. http://www.rational.com/uml Νοέµ. 2003 Εργαστήριο Τεχνολογίας Λογισµικού 35 6