Εισαγωγή στη γλώσσα µοντελοποίησης 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:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

περιεχόμενα παρουσίασης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ανάλυση Πληροφοριακών Συστημάτων. Εαρινό Εξάμηνο Lec06 (Εργαστήριο) 26/03/2019 Διδάσκων: Γεώργιος Χρ. Μακρής

Wrapper Classes, Abstract Classes and Interfaces

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

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

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

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

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

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

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

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

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

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

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας)

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

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

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες:

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

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

Κωδικός: <Κωδ.Αρ.Εγγράφου/ΚωδικόΌνομαΈργου/Αρ. Έκδοσης> <Company Name> <Όνομα - Κωδικό Όνομα Έργου> Έγγραφο Περιγραφής Σχεδίου Λογισμικού

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

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

ΕΚΦΩΝΗΣΗ ΥΠΟΧΡΕΩΤΙΚΗΣ ΕΡΓΑΣΙΑΣ σε UML

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

Ε ΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

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

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

Transcript:

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή ΗMMY Εισαγωγή στη γλώσσα µοντελοποίησης UML Ανδρέας Παπασαλούρος andpapas@softlab.ntua.gr

Περίγραµµα Γενικά Τύποι διαγραµµάτων οµικά στοιχεία Ειδικά θέµατα Βιβλιογραφία Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 2

Τι είναι µοντέλο Αποτελεί µια αφηρηµένη περιγραφή ενός φυσικού συστήµατος Αποτελεί ένα σχέδιο για την κατασκευή ενός συστήµατος Βοηθάει στην κατανόηση ενός µεγάλου µεγέθους συστήµατος Βοηθάει στην επικοινωνία των µελών της κοινότητας που αναπτύσσει το σύστηµα Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 3

UML: χαρακτηριστικά είναι µια οπτική (visual) γλώσσα µοντελοποίησης. Έχει εκφραστικές δυνατότητες για την: Απεικόνιση (visualization) Προδιαγραφή (specification) Τεκµηρίωση (documentation) Κατασκευή (construction) των προϊόντων της αναπτυξιακής διαδικασίας συστηµάτων (λογισµικού ή όχι) Αντικειµενοστρεφής Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 4

UML: Χαρακτηριστικά (2) Προήλθε από την ενοποίηση των συµβολισµών που χρησιµοποιούσαν οι µεθοδολογίες Booch, OMT, OOSE κ.λπ. Ενσωµατώνει τις ιδέες καλής πρακτικής από τη βιοµηχανία Λογισµικού Είναι σήµερα βιοµηχανικό πρότυπο και αναπτύχθηκε στο πλαίσιο του οργανισµού OMG. Υλοποιεί την ανάγκη της βιοµηχανίας λογισµικού για µια ενιαία γλώσσα µοντελοποίησης Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 5

Είδη συστηµάτων που µοντελοποιούνται µε τη UML Συστήµατα µε έµφαση στο λογισµικό (software-intensive systems) Επιχειρησιακά συστήµατα (business systems) Συστήµατα που δεν περιέχουν λογισµικό (non-software systems) Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 6

UML και µεθοδολογίες ανάπτυξης ιαφορετικές µεθοδολογίες ανάπτυξης είναι δυνατόν να υιοθετηθούν υιοθετώντας τη UML ως γλώσσα µοντελοποίησης (π.χ. USDP, RUP, κλπ) Κάθε µεθοδολογία προτείνει τα δικά της µοντέλα Στο πλαίσιο του µαθήµατος χρησιµοποιείται η µεθοδολογία είναι η YASM Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 7

Τα δοµικά συστατικά της UML ιαγράµµατα Στοιχεία Σχέσεις Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 8

οµικά ιαγράµµατα Κλάσεων (Class Diagram) Στατικά στοιχεία µοντελοποίησης, και τις σχέσεις µεταξύ τους Αντικειµένων (Component) Ένα σύνολο αντικειµένων και οι συσχετίσεις τους σε µια συγκεκριµένη χρονική στιγµή Ψηφιδικό (Component) Η οργάνωση και τις εξαρτήσεις των µελών ενός συνόλου συνθετηµάτων Παραταξιακό (Deployment) Η τοπολογία των υπολογιστικών κόµβων ενός συστήµατος και η κατανοµή των συνθετηµάτων µεταξύ τους Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 9

ιάγραµµα Περιπτώσεων Χρήσης Creates Graph Designer Edits Graph Prints Graph Reviewer Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 10

ιάγραµµα κλάσεων: Κλάσεις-συσχετίσεις Χαρακτηριστικά Link theta : double Ρόλοι Node width : int = 0 height : int = 0 Link() setpolygon() ison() paint() setposition() setlinestyle() contains() select() deselect() getfirstend() getsecondend() drawhandles() gettheta() +link 0..n connects Συσχέτιση +nodes 2 Node() ison() handlerpressed() paint() setposition() setsize() getposition() getcenter() getnodeelement() drawhandles() getwidth() getheight() getvirtualheight() Λειτουργίες Πολλαπλότητα ρόλων Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 11

ιάγραµµα κλάσεων: Σχέση Γενίκευσης GraphicsElement selected : boolean Κλάση Σχέση Γενίκευσης setposition() updateposition() select() deselect() isselected() ison() drawhandles() Link theta : double Link() setpolygon() ison() paint() setposition() setlinestyle() contains() select() deselect() getfirstend() getsecondend() drawhandles() gettheta() Node width : int = 0 height : int = 0 Node() ison() handlerpressed() paint() setposition() setsize() getposition() getcenter() getnodeelement() drawhandles() getwidth() getheight() getvirtualheight() Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 12

ιάγραµµα Κλάσεων: Ενσωµάτωση DefaultGraphModel NodeElement LinkElement Σχέσεις Ενσωµάτωσης Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 13

ιάγραµµα Κλάσεων: ιαπροσωπείες ιαπροσωπεία DefaultGraphModel nodes : java::util::vector links : java::util::vector DefaultGraphModel() insertnode() deletenode() deletelink() getnodes() getlinks() insertlink() GraphModel Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 14

ιάγγραµµακλάσεων: Πακέτα model controllers ui Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 15

ιάγραµµααντικειµένων : Link Αντικείµενο : Node Πολλαπλά στιγµιότυπα Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 16

ιάγραµµα Συνθετηµάτων Link.java GraphComponent.java Node.java Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 17

Παραταξιακό ιάγραµµα PC Printer Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 18

Συµπεριφορικά διαγράµµατα Περιπτώσεων Χρήσης (Use Case) Η λειτουργικότητα του συστήµατος, όπως φαίνεται από εξωτερικούς «Συνεργάτες» (Actors). Αλληλουχίας (Sequence) Μια αλληλεπίδραση αντικειµένων µε έµφαση στην χρονική σειρά ανταλλαγής µηνυµάτων Συνεργασίας (Collaboration) Μια αλληλεπίδραση αντικειµένων µε έµφαση στη δοµική τους οργάνωση Κατάστασης (Statechart) Οι καταστάσεις του κύκλου ζωής των αντικειµένων ραστηριότητας (Activity) Ο έλεγχος ροής σε ένα σύνολο δραστηριοτήτων Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 19

ιάγραµµα Καταστάσεων (1) State1 event[condition ]/action State2 Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 20

ιάγραµµα Καταστάσεων (2) SELECT Mo useu p mousepres sed [ mouseonnode ] ^selectnode(point) mousedragged / repaintnode mousereleased MouseDownOnSelected setmode( mode )[ mode=node ] setmode( mode )[ mode=link ] NODE LINK MouseUp mousepressed( MouseEv ent ) ^model.insertnode MouseDown MouseUp mousepressed[ not mouseonnode ] mousepressed[ mouseonnode ] / selectnode(point) mousereleased( MouseEvent ) mousedragged / redrawline mousereleased[ not MouseOnNode ] LinkGeneration mousereleased[ mouseonnode ] ^model.insertlink(node1, node2) Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 21

ιάγραµµα Αλληλουχίας : Designer : Frame : DefaultGraphModel : NodeElement 1: newnode() 2: insertnode() 3: setname() 4: addnode() Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 22

ιάγραµµα Συνεργασίας 1: newnode() : Frame : Designer 2: insertnode() 3: setname() : DefaultGraphModel : NodeElement 4: addnode() Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 23

ιάγραµµα ραστηριότητας Designer Rev iew er Create Diagram Review Diagram Revise Diagram [ not OK ] [ OK ] Finalize Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 24

οµικά στοιχεία (1) Κλάση (Class) Ένα σύνολο αντικειµένων που έχουν την ίδια δοµή και συµπεριφορά. ιαπροσωπεία (Interface) Ένα σύνολο από λειτουργίες που ορίζουν την εξωτερική συµπεριφορά ενός αντικειµένου Συνεργασία (Collaboration) Η περιγραφή µιας διάδρασης µεταξύ ενός συνόλου αντικειµένων Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 25

οµικά στοιχεία (2) Περίπτωση χρήσης (Use Case) Μια λειτουργία που επιτελεί ένα σύστηµα και είναι διαθέσιµη στο χρήστη Ενεργή κλάση (active class) Μια κλάση που περιγράφει µια διεργασία ή ένα νήµα εκτέλεσης Ψηφίδα (component) Ένα φυσικό και επαναχρησιµοποιήσιµο µέρος ενός συστήµατος που συνήθως υλοποιεί κάποιες διαπροσωπείες (interfaces) Κόµβος (Node) Ένας υπολογιστικός πόρος που έχει κάποια µνήµη και υπολογιστική ικανότητα. Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 26

Συµπεριφορικά στοιχεία Κατάσταση (State) Μια συνθήκη ή περίπτωση στο χρόνο ζωής ενός αντικειµένου, όπου ικανοποιεί κάποιες συνθήκες, εκτελεί κάποια δραστηριότητα ή αναµένει κάποιο γεγονός Μετάβαση (Transition) Μια σχέση µεταξύ δύο καταστάσεων ενός αντικειµένου που υποδηλώνει αλλαγή στην κατάσταση του αντικειµένου µε την εµφάνιση ενός γεγονότος ραστηριότητα (Activity) Μια εκτέλεση λειτουργίας κατά τη διάρκεια ζωής ενός αντικείµενου Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 27

Οµαδοποιητικά στοιχεία Πακέτο (Package) Ένα δοµικό στοιχείο γενικής χρήσης για την οργάνωση άλλων δοµικών στοιχείων, διαγραµµάτων ή και άλλων πακέτων της UML σε οµάδες. Υποσύστηµα (Subsystem) Μια µονάδα στην ιεραρχική αποσύνθεση ενός µεγάλου συστήµατος. Επικοινωνεί µε το περιβάλλον του µέσω διαπροσωπειών Μοντέλο (Model) Μια όψη ενός συστήµατος Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 28

Επεξηγηµατικά στοιχεία Σηµείωση (note) Ένα δοµικό στοιχείο κειµενικού σχολιασµού για την περιγραφή ή επεξήγηση ενός άλλου δοµικού στοιχείου ή µιας οµάδας δοµικών στοιχείων. Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 29

Σχέσεις Συσχέτιση (Association) Μια δοµική σχέση που περιγράφει ένα σύνολο συνδέσεων µεταξύ αντικειµένων Εξάρτηση (Dependency) Μια σχέση µεταξύ δυο δοµικών στοιχείων, όπου µια αλλαγή στο πρώτο επιδρά στο δεύτερο Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 30

Σχέσεις Γενίκευση (Generalization) Μια σχέση µεταξύ ενός δοµικού στοιχείου (πατέρας) και ενός δεύτερου (παιδί) που εξειδικεύει το πρώτο Πραγµατοποίηση (Realization) Μια σχέση µεταξύ δυο δοµικών στοιχείων, όπου το πρώτο προδιαγράφει µια συµπεριφορά, και το δεύτερο την υλοποιεί Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 31

Μηχανισµοί επέκτασης Στερεότυπα (stereotypes) επεκτείνουν το λεξιλόγιο της UML ορίζοντας καινούρια δοµικά στοιχεία, βασισµένα σε ήδη υπάρχοντα <<subsystem>> Ετικέτες τιµών (tagged values) επεκτείνουν τις ιδιότητες των δοµικών στοιχείων,προσθέτοντας πληροφορία στις προδιαγραφές τους {Version=1.2} Περιορισµοί (constraints) επεκτείνουν τη σηµασιολογία των δοµικών στοιχείων της UML, ορίζοντας νέους κανόνες ή τροποποιώντας τους ήδη υπάρχοντες. {this.salary<boss.salary} Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 32

Object Constraint Language H Object Constraint Language (OCL) είναι µια τυπική γλώσσα για την έκφραση περιορισµών σε διαγράµµατα UML Οι εκφράσεις OCL (που ορίζουν περιορισµούς) είναι τριών ειδών Αναλλοίωτες συνθήκες (invariant conditions) Προαπαιτούµενες συνθήκες (pre-conditions) Αποτελέσµατα (post-conditions) Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 33

context Company inv: self.numberofemployees > 50 context Person::birthdayHappens() post: age = age@pre + 1 Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 34

Επέκταση της UML Χρήση των µηχανισµών επέκτασης UML Profiles (πχ. Corba profile, EDOC, Testing, κλπ) Η αρχιτεκτονική τεσσάρων επιπέδων της γλώσσας: Meta-MetaModel M3 (π.χ.mof) MetaModel M2 (π.χ. UML) User Model M1 (π.χ. Μοντέλο του συστήµατος ABC) Instance M0 (π.χ. Στιγµιότυπα των στοιχείων του µοντέλου του ABC συστήµατος) Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 35

Σχετικές τεχνολογίες και πρότυπα XML Metadata Interchange (XMI) Meta Object Facility (MOF) Model Driven Architecture (MDA) Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 36

Βιβλιογραφία 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. Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 37

Σύνδεσµοι στο Web Object Management Group http://www.omg.org/uml Rational Software Corp. http://www.rational.com/uml Οκτ. 2004 Εργαστήριο Τεχνολογίας Λογισµικού 38