ΚΛΑΣΕΙΣ, ΑΝΤΙΚΕΙΜΕΝΑ ΚΑΙ ΟΙ ΣΥΣΧΕΤΙΣΕΙΣ ΤΟΥΣ

90
ΚΛΑΣΕΙΣ, ΑΝΤΙΚΕΙΜΕΝΑ ΚΑΙ ΟΙ ΣΥΣΧΕΤΙΣΕΙΣ ΤΟΥΣ 1. 1. Γενικοί Ορισμοί Γενικοί Ορισμοί 2. Κλάσεις καί η Περιγραφή 2. Κλάσεις καί η Περιγραφή τους τους 3. Σχέσεις Μεταξύ Κλάσεων 3. Σχέσεις Μεταξύ Κλάσεων 4. Αφαιρετικές Κλάσεις 4. Αφαιρετικές Κλάσεις 5. Προχωρημένες Έννοιες 5. Προχωρημένες Έννοιες 6. Ποιότητα του Μοντέλου 6. Ποιότητα του Μοντέλου

description

ΚΛΑΣΕΙΣ, ΑΝΤΙΚΕΙΜΕΝΑ ΚΑΙ ΟΙ ΣΥΣΧΕΤΙΣΕΙΣ ΤΟΥΣ. 1. Γενικοί Ορισμοί 2. Κλάσεις καί η Περιγραφή τους 3. Σχέσεις Μεταξύ Κλάσεων 4. Αφαιρετικές Κλάσεις 5. Προχωρημένες Έννοιες 6. Ποιότητα του Μοντέλου. 1. Γενικοί Ορισμοί. Εισαγωγή Αντικείμενα Κλάσεις Μοντελοποίηση Συστημάτων - PowerPoint PPT Presentation

Transcript of ΚΛΑΣΕΙΣ, ΑΝΤΙΚΕΙΜΕΝΑ ΚΑΙ ΟΙ ΣΥΣΧΕΤΙΣΕΙΣ ΤΟΥΣ

ΚΛΑΣΕΙΣ, ΑΝΤΙΚΕΙΜΕΝΑ ΚΑΙ ΟΙ

ΣΥΣΧΕΤΙΣΕΙΣ ΤΟΥΣ

ΚΛΑΣΕΙΣ, ΑΝΤΙΚΕΙΜΕΝΑ ΚΑΙ ΟΙ

ΣΥΣΧΕΤΙΣΕΙΣ ΤΟΥΣ

1. 1. Γενικοί ΟρισμοίΓενικοί Ορισμοί

2. Κλάσεις καί η Περιγραφή τους2. Κλάσεις καί η Περιγραφή τους

3. Σχέσεις Μεταξύ Κλάσεων3. Σχέσεις Μεταξύ Κλάσεων

4. Αφαιρετικές Κλάσεις4. Αφαιρετικές Κλάσεις

5. Προχωρημένες Έννοιες5. Προχωρημένες Έννοιες

6. Ποιότητα του Μοντέλου6. Ποιότητα του Μοντέλου

1. Γενικοί Ορισμοί1. Γενικοί Ορισμοί

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

ΕισαγωγήΕισαγωγή

• Οι Οι κλάσειςκλάσεις, τα , τα αντικείμενα αντικείμενα καί οι μεταξύ τουςκαί οι μεταξύ τους συσχετίσεις συσχετίσεις είναι τα πρωταρχικά στοιχεία μοντελοποίησης στην είναι τα πρωταρχικά στοιχεία μοντελοποίησης στην αντικειμενοστραφή θεώρησηαντικειμενοστραφή θεώρηση

• Οι κλάσεις καί τα Οι κλάσεις καί τα αντικείμενααντικείμενα περιγράφουν περιγράφουν τι υπάρχειτι υπάρχει μέσα στο σύστημα που περιγράφουμεμέσα στο σύστημα που περιγράφουμε

• Οι Οι συσχετίσειςσυσχετίσεις μεταξύ τους περιγράφουν μεταξύ τους περιγράφουν πως δομούνταιπως δομούνται το ένα συστατικό σε σχέση με το άλλοτο ένα συστατικό σε σχέση με το άλλο

• Η Η ταξινόμηση ταξινόμηση χρησιμοποιείται εδώ καί χρόνια γιά χρησιμοποιείται εδώ καί χρόνια γιά απλοποιημένη περιγραφή πολύπλοκων συστημάτωναπλοποιημένη περιγραφή πολύπλοκων συστημάτων

• Όταν η υλοποίηση του συστήματος γίνεται σε μιά Όταν η υλοποίηση του συστήματος γίνεται σε μιά αντικειμενοστραφή γλώσσα, οι κλάσεις καί οι συσχετίσεις αντικειμενοστραφή γλώσσα, οι κλάσεις καί οι συσχετίσεις τους μεταμορφώνονται απ’ ευθείας σε κώδικα τους μεταμορφώνονται απ’ ευθείας σε κώδικα προγραμματισμού.προγραμματισμού.

ΑντικείμεναΑντικείμενα

• Ένα αντικείμενο υπάρχει στον πραγματικό κόσμο Ένα αντικείμενο υπάρχει στον πραγματικό κόσμο (π.χ. Πελάτης) ή αντιστοιχεί στη θεώρηση που (π.χ. Πελάτης) ή αντιστοιχεί στη θεώρηση που έχουμε γιά τον πραγματικό κόσμο (π.χ. Αντικείμενα έχουμε γιά τον πραγματικό κόσμο (π.χ. Αντικείμενα που αναπαριστούν δομές δεδομένων: στοίβα, ουρά, που αναπαριστούν δομές δεδομένων: στοίβα, ουρά, κλπ.)κλπ.)

• Τα αντικείμενα μπορεί να μην υπάρχουν απ’ ευθείας Τα αντικείμενα μπορεί να μην υπάρχουν απ’ ευθείας στον κόσμο (π.χ. Αντικείμενα υλοποίησης σ’ένα στον κόσμο (π.χ. Αντικείμενα υλοποίησης σ’ένα πρόγραμμα) – είναι παράγωγα της αντίληψής μας γιά πρόγραμμα) – είναι παράγωγα της αντίληψής μας γιά τη συμπεριφορά καί τη δομή των αντικειμένων του τη συμπεριφορά καί τη δομή των αντικειμένων του πραγματικού κόσμουπραγματικού κόσμου

ΚλάσειςΚλάσεις

• Μιά κλάση είναι μιά περιγραφή ενός τύπου Μιά κλάση είναι μιά περιγραφή ενός τύπου αντικειμένου: περιγράφει τα χαρακτηριστικά καί αντικειμένου: περιγράφει τα χαρακτηριστικά καί τη συμπεριφορά του συγκεκριμένου τύπου τη συμπεριφορά του συγκεκριμένου τύπου αντικειμένουαντικειμένου

• Όλα τα αντικείμενα είναι στιγμιότυπα μιάς Όλα τα αντικείμενα είναι στιγμιότυπα μιάς κλάσηςκλάσης

• Η σχέση ενός αντικειμένου με μιά κλάση είναι Η σχέση ενός αντικειμένου με μιά κλάση είναι παρόμοια με τη σχέση μιάς μεταβλητής με τον παρόμοια με τη σχέση μιάς μεταβλητής με τον τύπο της μεταβλητής σε μιά γλώσσα τύπο της μεταβλητής σε μιά γλώσσα προγραμματισμούπρογραμματισμού

Μοντελοποίηση συστημάτωνΜοντελοποίηση συστημάτων

• Χρήση εννοιών καί αντικειμένων από τον Χρήση εννοιών καί αντικειμένων από τον πραγματικό κόσμο -> κατανοήσιμα μοντέλαπραγματικό κόσμο -> κατανοήσιμα μοντέλα

• Ένα σύστημα γιά μιά ασφαλιστική εταιρεία, πρέπει να χρησιμοποιεί Ένα σύστημα γιά μιά ασφαλιστική εταιρεία, πρέπει να χρησιμοποιεί αντικείμενα όπως: συμβόλαιο ασφάλειας ζωής, ασφαλιζόμενοςαντικείμενα όπως: συμβόλαιο ασφάλειας ζωής, ασφαλιζόμενος

• Ένα σύστημα γιά το στρατό πρέπει να χρησιμοποιεί αντικείμενα Ένα σύστημα γιά το στρατό πρέπει να χρησιμοποιεί αντικείμενα όπως: φαντάρος, όπλο, τανκς κλπ.όπως: φαντάρος, όπλο, τανκς κλπ.

• Η μοντελοποίηση πρέπει να βασίζεται στα κύρια Η μοντελοποίηση πρέπει να βασίζεται στα κύρια αντικείμενα του συστήματος γιά να μπορεί εύκολα αντικείμενα του συστήματος γιά να μπορεί εύκολα να αλλάζεινα αλλάζει

• Τα μοντέλα πρέπει να είναι: κατανοήσιμα, να Τα μοντέλα πρέπει να είναι: κατανοήσιμα, να προσφέρονται γιά συζήτηση, εύκολα να προσφέρονται γιά συζήτηση, εύκολα να πιστοποιηθούν καί εύκολα να συντηρηθούνπιστοποιηθούν καί εύκολα να συντηρηθούν

Διαγράμματα ΚλάσεωνΔιαγράμματα Κλάσεων

• Είναι τύπος στατικού μοντέλουΕίναι τύπος στατικού μοντέλου• Περιγράφουν τη στατική άποψη ενός συστήματος με Περιγράφουν τη στατική άποψη ενός συστήματος με

κλάσεις καί συσχετίσειςκλάσεις καί συσχετίσεις• Η διαφορά τους απ’ τα μοντέλα δεδομένων είναι ότι Η διαφορά τους απ’ τα μοντέλα δεδομένων είναι ότι

περιγράφουν περιγράφουν καί συμπεριφοράκαί συμπεριφορά• Αποτελούν τη Αποτελούν τη βάσηβάση γιά άλλα διαγράμματα που γιά άλλα διαγράμματα που

δείχνουν άλλα χαρακτηριστικά του συστήματοςδείχνουν άλλα χαρακτηριστικά του συστήματος• Μιά κλάση υλοποιείται απ’ ευθείας σε μιά Μιά κλάση υλοποιείται απ’ ευθείας σε μιά

αντικειμενοστραφή γλώσσα πού υποστηρίζει άμεσα αντικειμενοστραφή γλώσσα πού υποστηρίζει άμεσα τη δομή της κλάσηςτη δομή της κλάσης

Διάγραμμα Κλάσεων(παράδειγμα)

Διάγραμμα Κλάσεων(παράδειγμα)

ΑσφαλιστικήΑσφαλιστικήεταιρείαεταιρεία

ΣυμβόλαιοΣυμβόλαιοασφάλειαςασφάλειας

ΆτομοΆτομο ΕταιρείαΕταιρεία

0..*0..*

1..*1..*

((or)or)

11 0..*0..* 0..*0..*

1..*1..*

Διαγράμματα ΑντικειμένωνΔιαγράμματα Αντικειμένων

• Δείχνουν συσχετίσεις μεταξύ αντικειμένων Δείχνουν συσχετίσεις μεταξύ αντικειμένων (μπορούν να αναφέρονται σε συγκεκριμένο (μπορούν να αναφέρονται σε συγκεκριμένο σενάριο)σενάριο)

• Τα διαγράμματα κλάσεων δείχνουν μόνο τις Τα διαγράμματα κλάσεων δείχνουν μόνο τις κλάσεις (δηλαδή των τύπο των κλάσεις (δηλαδή των τύπο των αντικειμένων)αντικειμένων)

Διάγραμμα Αντικειμένων(παράδειγμα)

Διάγραμμα Αντικειμένων(παράδειγμα)

Bob : ΙδιοκτήτηςBob : Ιδιοκτήτης Bob’s PC:Bob’s PC:ΥπολογιστήςΥπολογιστής

Name =‘Bob.j’Name =‘Bob.j’age = 32age = 32

Name =‘Dell 466Name =‘Dell 466 memory=64memory=64

2. Κλάσεις καί η Περιγραφή τους2. Κλάσεις καί η Περιγραφή τους

Τι είναι η ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝΤι είναι η ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ Ερωτήματα γιά την εύρεση ΚλάσεωνΕρωτήματα γιά την εύρεση Κλάσεων Αναπαράσταση Κλάσης στην Αναπαράσταση Κλάσης στην UMLUML Παραδείγματα Κλάσεων καί ΑντικειμένωνΠαραδείγματα Κλάσεων καί Αντικειμένων Χαρακτηριστικά (attributes) KΧαρακτηριστικά (attributes) Kλάσεωνλάσεων Λειτουργίες (Μέθοδοι) ΚλάσεωνΛειτουργίες (Μέθοδοι) Κλάσεων ΠαραδείγματαΠαραδείγματα

Τί είναι η ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ (1/4);

Τί είναι η ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ (1/4);

• Μιά κλάση είναι μιά περιγραφή ενός τύπου Μιά κλάση είναι μιά περιγραφή ενός τύπου αντικειμένου: περιγράφει τα χαρακτηριστικά καί τη αντικειμένου: περιγράφει τα χαρακτηριστικά καί τη συμπεριφορά του συγκεκριμένου τύπου αντικειμένουσυμπεριφορά του συγκεκριμένου τύπου αντικειμένου

• Όλα τα αντικείμενα είναι στιγμιότυπα μιάς κλάσηςΌλα τα αντικείμενα είναι στιγμιότυπα μιάς κλάσης

• Η σχέση ενός αντικειμένου με μιά κλάση είναι Η σχέση ενός αντικειμένου με μιά κλάση είναι παρόμοια με τη σχέση μιάς μεταβλητής με τον τύπο παρόμοια με τη σχέση μιάς μεταβλητής με τον τύπο της μεταβλητής σε μιά γλώσσα προγραμματισμούτης μεταβλητής σε μιά γλώσσα προγραμματισμού

Τί είναι η ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ (2/4);

Τί είναι η ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ (2/4);

• Οι κλάσεις χρησιμοποιούνται γιά τη Οι κλάσεις χρησιμοποιούνται γιά τη μοντελοποίηση καί μοντελοποίηση καί περιγραφήπεριγραφή συστημάτων καί γιά την συστημάτων καί γιά την ταξινόμηση ταξινόμηση αντικειμένων που υπάρχουν στον πραγματικό κόσμοαντικειμένων που υπάρχουν στον πραγματικό κόσμο

• Σκεφτείτε τον Δαρβίνο που χρησιμοποίησε κλάσεις γιά να Σκεφτείτε τον Δαρβίνο που χρησιμοποίησε κλάσεις γιά να περιγράψει το ανθρώπινο είδοςπεριγράψει το ανθρώπινο είδος

• Γιά να περιγράψει τη θεωρία του περί εξέλιξης, ταξινόμησε Γιά να περιγράψει τη θεωρία του περί εξέλιξης, ταξινόμησε τις κλάσεις σε ιεραρχίεςτις κλάσεις σε ιεραρχίες

• Η τεχνική της δημιουργίας ιεραρχίας υπάρχει καί στην Η τεχνική της δημιουργίας ιεραρχίας υπάρχει καί στην αντικειμενοστραφή μοντελοποίηση καί προγραμματισμόαντικειμενοστραφή μοντελοποίηση καί προγραμματισμό

Τί είναι η ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ (3/4);

Τί είναι η ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ (3/4);

• Μιά κλάση μπορεί να περιγράφει αντικείμενα Μιά κλάση μπορεί να περιγράφει αντικείμενα οποιουδήποτε συστήματος: πληροφοριακό σύστημα, οποιουδήποτε συστήματος: πληροφοριακό σύστημα, επιχειρησιακό σύστημα, τεχνικό σύστημα, επιχειρησιακό σύστημα, τεχνικό σύστημα, κατανεμημένο σύστημα, λογισμικό κλπ.κατανεμημένο σύστημα, λογισμικό κλπ.

• Παραδείγματα κλάσεων σε πληροφοριακά ή Παραδείγματα κλάσεων σε πληροφοριακά ή επιχειρησιακά συστήματα είναι: επιχειρησιακά συστήματα είναι: πελάτης, συμφωνία, πελάτης, συμφωνία, τιμολόγιο, δελτίο αποστολήςτιμολόγιο, δελτίο αποστολής

Τί είναι η ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ (4/4);

Τί είναι η ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ (4/4);

• Παραδείγματα κλάσεων σε τεχνικά συστήματα:Παραδείγματα κλάσεων σε τεχνικά συστήματα:• sensor, display, I/O card, engine, button, control classsensor, display, I/O card, engine, button, control class

• Παραδείγματα κλάσεων γιά Παραδείγματα κλάσεων γιά system softwaresystem software: : • file, executable program, device, icon, window, scrollbarfile, executable program, device, icon, window, scrollbar

Ερωτήματα γιά εύρεση κλάσεωνΕρωτήματα γιά εύρεση κλάσεων

• Υπάρχει πληροφορία που θα πρέπει να Υπάρχει πληροφορία που θα πρέπει να περιγραφεί, περιγραφεί, αναλυθεί ή αποθηκευτείαναλυθεί ή αποθηκευτεί ;;

• Υπάρχουν Υπάρχουν εξωτερικά συστήματαεξωτερικά συστήματα τα οποία τα οποία αλληλεπιδρούν με το σύστημά μας αλληλεπιδρούν με το σύστημά μας ;;

• Υπάρχουν Υπάρχουν πρότυπα, βιβλιοθήκες κλάσεων ή άλλα πρότυπα, βιβλιοθήκες κλάσεων ή άλλα συστατικά συστατικά από προηγούμενες μελέτεςαπό προηγούμενες μελέτες;;

• Υπάρχουν περιφερειακά που πρέπει να διαχειριστεί Υπάρχουν περιφερειακά που πρέπει να διαχειριστεί το σύστημα το σύστημα ;;

• Ποιος είναι ο Ποιος είναι ο ρόλος των διαφόρων χρηστώνρόλος των διαφόρων χρηστών στο στο σύστημα σύστημα ;;

Αναπαράσταση κλάσης στη UML

Αναπαράσταση κλάσης στη UML

NameName

AttributesAttributes

OperationsOperations

ΑυτοκίνητοΑυτοκίνητο

αριθμ.πινακίδαςαριθμ.πινακίδαςμοντέλομοντέλοταχύτηταταχύτητακατεύθυνσηκατεύθυνση

ΠΑΡΑΔΕΙΓΜΑ ΚΛΑΣΗΣ και ΑΝΤΙΚΕΙΜΕΝΟΥΠΑΡΑΔΕΙΓΜΑ ΚΛΑΣΗΣ και ΑΝΤΙΚΕΙΜΕΝΟΥ

NameName

AttributeAttribute

OperationOperation

ΞεκίναΞεκίναΕπιτάχυνεΕπιτάχυνεΦρέναρεΦρέναρε

ΑΑfrofro΄́s car: s car: ΑυτοκίνητοΑυτοκίνητο

YIX 5831YIX 5831Renault ClioRenault Clio140 km140 kmΒορειοδυτικήΒορειοδυτική

Χαρακτηριστικά (attributes) κλάσεωνΧαρακτηριστικά (attributes) κλάσεων

H H γενική περιγραφή ενός χαρακτηριστικούγενική περιγραφή ενός χαρακτηριστικού είναι είναι ::

ορατότητα ορατότητα όνομα όνομα : : τύποςτύπος=αρχική τιμή {=αρχική τιμή {property stringproperty string}}

π.χ. π.χ. +κατάσταση+κατάσταση: : Κατάσταση = απλήρωτο {απλήρωτο, πληρωμένο}Κατάσταση = απλήρωτο {απλήρωτο, πληρωμένο}

Μόνο το όνομα καί ο τύπος είναι υποχρεωτικά (αν η ανάπτυξη γίνει σε γλώσσα που δεν Μόνο το όνομα καί ο τύπος είναι υποχρεωτικά (αν η ανάπτυξη γίνει σε γλώσσα που δεν υποστηρίζει τύπους, ούτε ο τύπος είναι υποχρεωτικός)υποστηρίζει τύπους, ούτε ο τύπος είναι υποχρεωτικός)

Τύπος: Μπορεί να είναι πρωταρχικός τύπος όπως ακέραιος, πραγματικός, Μπορεί να είναι πρωταρχικός τύπος όπως ακέραιος, πραγματικός, boolean, κ.λ.π. boolean, κ.λ.π. Μπορεί να είναι μιά κλάση αντικειμένωνΜπορεί να είναι μιά κλάση αντικειμένων

Ορατότητα: Π Περιγράφει αν το χαρακτηριστικό είναι ορατό και αν μπορούν να αναφερθούν σε εριγράφει αν το χαρακτηριστικό είναι ορατό και αν μπορούν να αναφερθούν σε αυτό άλλες κλάσεις, εκτός από αυτή στην οποία ορίζεται (- + #).αυτό άλλες κλάσεις, εκτός από αυτή στην οποία ορίζεται (- + #).

Χαρακτηριστικό κλάσηςΧαρακτηριστικό κλάσης::

Αφορά την κλάση καί όχι κάποιο συγκεκριμένο αντικείμενο. Η τιμή του είναι κοινή για όλα Αφορά την κλάση καί όχι κάποιο συγκεκριμένο αντικείμενο. Η τιμή του είναι κοινή για όλα τα αντικείμενα. Υφίσταται χωρίς να υπάρχουν στιγμιότυπα της κλάσης. Δηλώνεται με τα αντικείμενα. Υφίσταται χωρίς να υπάρχουν στιγμιότυπα της κλάσης. Δηλώνεται με υπογράμμιση.υπογράμμιση.

(Η (Η UML UML παρέχει τη δυνατότητα να δηλώσουμε άν το χαρακτηριστικό παράγεται από άλλα παρέχει τη δυνατότητα να δηλώσουμε άν το χαρακτηριστικό παράγεται από άλλα χαρακτηριστικά ή άν είναι προαιρετικό)χαρακτηριστικά ή άν είναι προαιρετικό)

ΤιμολόγιοΤιμολόγιο

+ + ποσόποσό: : ΠραγματικόςΠραγματικός+ ημερομηνία+ ημερομηνία:: Ημερομηνία=Τρέχουσα Ημερομηνία=Τρέχουσα+ πελάτης + πελάτης : : ΣυμβολοσειράΣυμβολοσειρά- διοικητής- διοικητής::Συμβολοσειρά=‘Ανειδίκευτος’Συμβολοσειρά=‘Ανειδίκευτος’

Το σύμβολο Το σύμβολο μείονμείον σημαίνει ότι το χαρακτηριστικό είναι σημαίνει ότι το χαρακτηριστικό είναι ιδιωτικόιδιωτικό (private) (private), , δηλαδή δεν μπορεί να χρησιμοποιηθεί και δηλαδή δεν μπορεί να χρησιμοποιηθεί και δεν είναι ορατό από άλλες κλάσεις. Το αντίθετο υποδηλώνει το δεν είναι ορατό από άλλες κλάσεις. Το αντίθετο υποδηλώνει το σύμβολο σύμβολο συνσυν το οποίο προσδιορίζει το οποίο προσδιορίζει δημόσιοδημόσιο (public) (public) χαρακτηριστικόχαρακτηριστικό.. Το σύμβολο Το σύμβολο ## δηλώνει ότι το χαρακτηριστικό δηλώνει ότι το χαρακτηριστικό είναι προστατευόμενο (είναι προστατευόμενο (protected)protected)..

Μια κλάση με ιδωτικά, δημόσια ιδιοχαρακτηριστικάΜια κλάση με ιδωτικά, δημόσια ιδιοχαρακτηριστικάκαι και εξ ορισμού εξ ορισμού τιμές (παράδειγμα)τιμές (παράδειγμα)

Μια κλάση με ιδωτικά, δημόσια ιδιοχαρακτηριστικάΜια κλάση με ιδωτικά, δημόσια ιδιοχαρακτηριστικάκαι και εξ ορισμού εξ ορισμού τιμές (παράδειγμα)τιμές (παράδειγμα)

Μια κλάση με χαρακτηριστικό κλάσηςΜια κλάση με χαρακτηριστικό κλάσης(class attribute)(class attribute)

Μια κλάση με χαρακτηριστικό κλάσηςΜια κλάση με χαρακτηριστικό κλάσης(class attribute)(class attribute)

ΤιμολόγιΤιμολόγιοο

+ + ποσόποσό: : ΠραγματικόςΠραγματικός+ ημερομηνία+ ημερομηνία: H: Hμερομηνία = Τρέχουσα μερομηνία = Τρέχουσα Ημερ.Ημερ.+ + πελάτηςπελάτης: : ΣυμβολοσειράΣυμβολοσειρά- διοικητής- διοικητής: : Συμβολοσειρά = ‘Ανειδίκευτος’Συμβολοσειρά = ‘Ανειδίκευτος’- αριθμός τιμολογίων - αριθμός τιμολογίων : : ΑκέραιοςΑκέραιος

Το χαρακτηριστικό Το χαρακτηριστικό αριθμός τιμολογίωναριθμός τιμολογίων χρησιμοποιείται για χρησιμοποιείται για να μετρήσει το πλήθος των τιμολογίων. Η τιμή αυτού του να μετρήσει το πλήθος των τιμολογίων. Η τιμή αυτού του χαρακτηριστικού είναι κοινή για όλα τα αντικείμενα και χαρακτηριστικού είναι κοινή για όλα τα αντικείμενα και υπάρχει και όταν δεν υπάρχει στιγμιότυπο της κλάσης υπάρχει και όταν δεν υπάρχει στιγμιότυπο της κλάσης (είναι 0).(είναι 0).

Μια κλάση με Μια κλάση με property stringproperty string(συμβολοσειρά ιδιοτήτων)(συμβολοσειρά ιδιοτήτων)

Μια κλάση με Μια κλάση με property stringproperty string(συμβολοσειρά ιδιοτήτων)(συμβολοσειρά ιδιοτήτων)

ΤιμολόγιΤιμολόγιοο+ + ποσόποσό: : ΠραγματικόςΠραγματικός

+ ημερομηνία+ ημερομηνία: H: Hμερομηνία =Τρέχουσα Ημερομηνίαμερομηνία =Τρέχουσα Ημερομηνία+ + πελάτηςπελάτης: : ΣυμβολοσειράΣυμβολοσειρά- διοικητής- διοικητής: : Συμβολοσειρά = ‘Ανειδίκευτος’Συμβολοσειρά = ‘Ανειδίκευτος’- αριθμός τιμολογίων- αριθμός τιμολογίων: : ΑκέραιοςΑκέραιος+κατάσταση+κατάσταση: : Κατάσταση = απλήρωτο {απλήρωτο, Κατάσταση = απλήρωτο {απλήρωτο, πληρωμένο}πληρωμένο}

Mέθοδοι (Λειτουργίες) κλάσεων Mέθοδοι (Λειτουργίες) κλάσεων

• Οι μέθοδοι χρησιμοποιούνται για να διαχειριζόμαστε τα Οι μέθοδοι χρησιμοποιούνται για να διαχειριζόμαστε τα χαρακτηριστικά ή να εκτελούμε συγκεκριμένες ενέργειες.χαρακτηριστικά ή να εκτελούμε συγκεκριμένες ενέργειες.

• Η γενική περιγραφή μιας μεθόδου (υπογραφή της μεθόδου) είναι Η γενική περιγραφή μιας μεθόδου (υπογραφή της μεθόδου) είναι ::

ορατότητα όνομα (λίστα παραμέτρων)ορατότητα όνομα (λίστα παραμέτρων): : τύπος επιστροφής {τύπος επιστροφής {property stringproperty string}}

• Οι μέθοδοι περιγράφουν Οι μέθοδοι περιγράφουν τι υπηρεσίεςτι υπηρεσίες προσφέρει η κάθε κλάση και προσφέρει η κάθε κλάση και κάποιες από αυτές παρέχουν την κατάλληλη διασύνδεση.κάποιες από αυτές παρέχουν την κατάλληλη διασύνδεση.

• Οι μέθοδοι μπορούν: Οι μέθοδοι μπορούν: • Να παίρνουν πληροφορίες Να παίρνουν πληροφορίες • Nα ενημερώνουνNα ενημερώνουν• Να κάνουν κάποιες ενέργειες πάνω στο αντικείμενο ή/καί να καλούν άλλα Να κάνουν κάποιες ενέργειες πάνω στο αντικείμενο ή/καί να καλούν άλλα

αντικείμενα αντικείμενα

Παράδειγμα κλάσης με διάφορες μεθόδουςΠαράδειγμα κλάσης με διάφορες μεθόδουςΠαράδειγμα κλάσης με διάφορες μεθόδουςΠαράδειγμα κλάσης με διάφορες μεθόδους

ΑυτοκίνητοΑυτοκίνητο

++ αρ.πινακίδας αρ.πινακίδας : : ΣυμβολοσειράΣυμβολοσειρά- δεδομένα - δεδομένα : : Δεδομένα_ΑυτοκινήτουΔεδομένα_Αυτοκινήτου+ ταχύτητα + ταχύτητα : : ΑκέραιοςΑκέραιος+ κατεύθυνση + κατεύθυνση : : ΚατεύθυνσηΚατεύθυνση

+ οδήγησε (ταχύτητα + οδήγησε (ταχύτητα : : ακέραιος, κατεύθυνση ακέραιος, κατεύθυνση : : Κατεύθυνση)Κατεύθυνση)+ πάρε_Δεδομένα ( ) + πάρε_Δεδομένα ( ) : : Δεδομένα_ΑυτοκινήτουΔεδομένα_Αυτοκινήτου

Η μέθοδος οδήγησεοδήγησε δέχεται δύο παραμέτρους, ταχύτητα και κατεύθυνση. Η μέθοδος πάρε_Δεδομένα πάρε_Δεδομένα έχει έναν τύπο επιστροφής, Δεδομένα_Αυτοκινήτου.

Παράδειγμα κλάσης με μέθοδο κλάσηςΠαράδειγμα κλάσης με μέθοδο κλάσηςΠαράδειγμα κλάσης με μέθοδο κλάσηςΠαράδειγμα κλάσης με μέθοδο κλάσης

ΣχήμαΣχήμα

μέγεθος: μέγεθος: ΜέγεθοςΜέγεθοςθέσηθέση: : ΘέσηΘέσημετρητήςΣχημάτωνμετρητήςΣχημάτων: : ΑκέραιοςΑκέραιος

σχεδίασε()σχεδίασε()διάβασεΜετρητή()διάβασεΜετρητή(): : ΑκέραιοςΑκέραιος

Παράδειγμα κλάσης με Παράδειγμα κλάσης με εξ ορισμού εξ ορισμού τιμές στις τιμές στις παραμέτρους των λειτουργιώνπαραμέτρους των λειτουργιών

Παράδειγμα κλάσης με Παράδειγμα κλάσης με εξ ορισμού εξ ορισμού τιμές στις τιμές στις παραμέτρους των λειτουργιώνπαραμέτρους των λειτουργιών

FigureFigure

size: Sizesize: Sizepos: Positionpos: Position

+ draw ()+ draw ()+ resize(percentX :Integer =25; percentY :Integer=25)+ resize(percentX :Integer =25; percentY :Integer=25)+ returnPos() : Position+ returnPos() : Position

CallCallfigure.resize(10,10) figure.resize(10,10) percentX=10, percentY=10percentX=10, percentY=10figure.resize(37)figure.resize(37) percentX=37, percentY =25percentX=37, percentY =25figure.resize ( ) figure.resize ( ) percentX=25, percentY = 25percentX=25, percentY = 25

3. Σχέσεις μεταξύ Κλάσεων3. Σχέσεις μεταξύ Κλάσεων

3.0 Ορισμοί3.0 Ορισμοί

3.1 Συσχέτιση (3.1 Συσχέτιση (Association)Association)

3.2 3.2 Γενίκευση (Γενίκευση (Generalization)Generalization)

3.3 Εξάρτηση (Dependency)3.3 Εξάρτηση (Dependency)

3.4 Ανάλυση/Εκλέπτυνση (Refinement)3.4 Ανάλυση/Εκλέπτυνση (Refinement)

3.0 Ορισμοί3.0 Ορισμοί

Συσχέτιση (Συσχέτιση (association)association) : : είναι μια είναι μια σημασιολογική σημασιολογική σχέση μεταξύ των αντικειμένων δύο ή περισσότερων κλάσεων..

Γενίκευση (Γενίκευση (generalization)generalization) : : είναι η σχέση ανάμεσα σ’ένα πιο είναι η σχέση ανάμεσα σ’ένα πιο γενικό γενικό και σ’ένα πιο εξειδικευμένο στοιχείο.και σ’ένα πιο εξειδικευμένο στοιχείο.Το ειδικό στοιχείο θα πρέπει να Το ειδικό στοιχείο θα πρέπει να περιέχει μόνο επιπρόσθετες πληροφορίες.περιέχει μόνο επιπρόσθετες πληροφορίες.

Εξάρτηση (Εξάρτηση (dependency)dependency) : : σχέση ανάμεσα σε σχέση ανάμεσα σε ανεξάρτητο κι ανεξάρτητο κι εξαρτημένο στοιχείο.εξαρτημένο στοιχείο.Μια ενδεχόμενη αλλαγή στο ανεξάρτητο Μια ενδεχόμενη αλλαγή στο ανεξάρτητο στοιχείο θα επηρεάσει το εξαρτημένο στοιχείο.στοιχείο θα επηρεάσει το εξαρτημένο στοιχείο.

Εκλέπτυνση/Ανάλυση (refinement)Εκλέπτυνση/Ανάλυση (refinement) : σχέση ανάμεσα σε δύο : σχέση ανάμεσα σε δύο περιγραφές του ίδιου πράγματος , αλλά περιγραφές του ίδιου πράγματος , αλλά σε διαφορετικό επίπεδο σε διαφορετικό επίπεδο ανάλυσηςανάλυσης..

3.1 Συσχετίσεις (Αssocations) EIΔΗ ΣΥΣΧΕΤΙΣΕΩΝ

3.1 Συσχετίσεις (Αssocations) EIΔΗ ΣΥΣΧΕΤΙΣΕΩΝ

Κανονική Συσχέτιση (Normal Association)

Αναδρομική Συσχέτιση (Recursive Association)

Προσδιορίσιμη Συσχέτιση (Qualified Association)

Συσχέτιση Διάζευξης (OR-Assocation)

Ταξινομημένη Συσχέτιση (Ordered Association)

Tριαδική ή Ν-αδική Συσχέτιση (Τernary or N-ary Association)

Kλάση συσχέτισης (Association Class)

Συναθροίσεις (ειδική περίπτωση συσχέτισης) Kανονική Συνάθροιση (Normal Aggregation) Διαμοιραζόμενη ή Ασθενής Συνάθροιση (Shared or Weak

Aggregation) Συνάθροιση Σύνθεσης (Composition Aggregation)

ΚΑΝΟΝΙΚΗ ΣΥΣΧΕΤΙΣΗΚΑΝΟΝΙΚΗ ΣΥΣΧΕΤΙΣΗ ((Normal association)Normal association)

ΆτομοΆτομο ΑυτοκίνητοΑυτοκίνητο1..* κατέχει 0..*1..* κατέχει 0..*

κατέχεται απόκατέχεται από

Ένα άτομο κατέχει πολλά Ένα άτομο κατέχει πολλά (από μηδέν εως πολλά(από μηδέν εως πολλά)) αυτοκίνητα. αυτοκίνητα.Ένα αυτοκίνητο ανήκει σε Ένα αυτοκίνητο ανήκει σε πολλά (ένα ή πολλά )πολλά (ένα ή πολλά ) άτομα. άτομα.

Χαρακτηριστικό σε μια σύνδεση αποτελεί η Χαρακτηριστικό σε μια σύνδεση αποτελεί η πολλαπλότηταπολλαπλότητα δηλαδή ο αριθμός που δηλώνειδηλαδή ο αριθμός που δηλώνειτο πλήθος των αντικειμένων που συνδέονταιτο πλήθος των αντικειμένων που συνδέονται

Αναπαράσταση Συσχετίσεων Αναπαράσταση Συσχετίσεων

Συσχετίσεις μεταξύ κλάσεωνΣυσχετίσεις μεταξύ κλάσεων όνομα συσχέτισης (προαιρετικό)όνομα συσχέτισης (προαιρετικό) το βέλος πάνω από κάθε ακμή δηλώνει την το βέλος πάνω από κάθε ακμή δηλώνει την κατεύθυνση ανάγνωσηςκατεύθυνση ανάγνωσης

(προαιρετικό)(προαιρετικό) το βέλος στο τέλος μίας ακμής δηλώνει το βέλος στο τέλος μίας ακμής δηλώνει κατεύθυνση πλοήγησηςκατεύθυνση πλοήγησης

(προαιρετικό)(προαιρετικό) κάθε άκρο της συσχέτισης προσδιορίζεται από την πολλαπλότητα κάθε άκρο της συσχέτισης προσδιορίζεται από την πολλαπλότητα

(multiplicity)(multiplicity) για δυαδικές συσχετίσεις, η πολλαπλότητα στο τελικό άκρο δηλώνει για δυαδικές συσχετίσεις, η πολλαπλότητα στο τελικό άκρο δηλώνει

πόσα αντικείμενα της τελικής κλάσης μπορούν να συσχετιστούν με πόσα αντικείμενα της τελικής κλάσης μπορούν να συσχετιστούν με ένα αντικείμενο του άλλου (πηγαίου) άκρουένα αντικείμενο του άλλου (πηγαίου) άκρου

Συσχετίσεις μεταξύ αντικειμένωνΣυσχετίσεις μεταξύ αντικειμένων αναπαριστούν ένα αναπαριστούν ένα στιγμιότυπο της συσχέτισηςστιγμιότυπο της συσχέτισης

Πολλαπλότητα (Multiplicity) ΣυσχετίσεωνΠολλαπλότητα (Multiplicity) Συσχετίσεων

• Ένας οποιοσδήποτε αριθμός “*”Ένας οποιοσδήποτε αριθμός “*”• Ένα εύρος που καθορίζεται από το “..”Ένα εύρος που καθορίζεται από το “..”• Πιθανοί αριθμοί που διαχωρίζονται με κόμμαΠιθανοί αριθμοί που διαχωρίζονται με κόμμα

Το Το default default είναι 1.είναι 1.

Ακριβώς Ένα: 1

0: * ή (0..*)

0 1: 0..1

σταθερός αριθμός (π.χ. 3): 3

εύρος (π.χ. 3 ή περισσότερα): 3..*

εύρος (π.χ. 3 έως και 6): 3..6

απαρίθμηση (π.χ. 3,6,7,8,9): 3,6..9

Πολιτική Πολιτική ασφάλισηςασφάλισης

ΣυμβόλαιοΣυμβόλαιοασφάλισηςασφάλισης ΠελάτηςΠελάτηςΑσφαλιστικήΑσφαλιστική

εταιρείαεταιρεία

έχειέχει

Αναφέρεται σεΑναφέρεται σε

έχειέχει

ΑναφέρεταιΑναφέρεταισεσε

έχειέχει

Αναφέρεται σεΑναφέρεται σε

Εκ

φρ

άζετα

ι σ’ένα

Εκ

φρ

άζετα

ι σ’ένα

εκφ

ρά

ζειεκ

φρ

άζει

11 0..*0..*

1..*1..*

0..*0..*

11

1..*1..*

11

0..10..1

ΔΙΑΓΡΑΜΜΑ ΚΛΑΣΕΩΝ (παράδειγμα)

ΔΙΑΓΡΑΜΜΑ ΚΛΑΣΕΩΝ ΚΑΙ ΔΙΑΓΡΑΜΜΑ ΑΝΤΙΚΕΙΜΕΝΩΝΔΙΑΓΡΑΜΜΑ ΚΛΑΣΕΩΝ ΚΑΙ ΔΙΑΓΡΑΜΜΑ ΑΝΤΙΚΕΙΜΕΝΩΝ(παράδειγμα)(παράδειγμα)

χρησιμοποιείχρησιμοποιεί

0..*0..* 1..*1..*

ΙδιοκτήτηςΙδιοκτήτης ΥπολογιστήςΥπολογιστής

Name : stringName : stringage : Integerage : Integer

Name : StringName : Stringmemory: Integermemory: Integer

Bob : ΙδιοκτήτηςBob : Ιδιοκτήτης Bob’s PC:Bob’s PC:ΥπολογιστήςΥπολογιστής

Name =‘Bob.j’Name =‘Bob.j’age = 32age = 32

Name =‘Dell 466Name =‘Dell 466 memory=64memory=64

Ένα διάγραμμα Ένα διάγραμμα αντικειμένωναντικειμένων περιγράφει τα στιγμιότυπα των κλάσεων περιγράφει τα στιγμιότυπα των κλάσεων

Αναδρομική συσχέτιση (recursive association)Αναδρομική συσχέτιση (recursive association)

Υπάρχει η δυνατότητα συσχέτισης μιάς κλάσης με τον Υπάρχει η δυνατότητα συσχέτισης μιάς κλάσης με τον εαυτό της. Αποτελεί κι αυτή μιά σημασιολογική εαυτό της. Αποτελεί κι αυτή μιά σημασιολογική σύνδεση,μεταξύ όμως αντικειμένων της ίδιας κλάσηςσύνδεση,μεταξύ όμως αντικειμένων της ίδιας κλάσης

ΚόμβοςΚόμβος

ΣυνδέειΣυνδέει

**

**

AA BB

ΑΑ CC BB** 11 11 **

** **

Μπορεί να μετατραπείΜπορεί να μετατραπεί

Σε μερικές γλώσσες δεν είναι δυνατή η απ’ευθείας Σε μερικές γλώσσες δεν είναι δυνατή η απ’ευθείας υλοποίηση μιάς συσχέτισης Μυλοποίηση μιάς συσχέτισης Μ:N. :N. Σε τέτοια περίπτωση, Σε τέτοια περίπτωση, μετατρέπουμε τη συσχέτιση από μετατρέπουμε τη συσχέτιση από MM:Ν σε δύο 1:Μ:Ν σε δύο 1:Μ

Μετατροπή συσχέτισης από Μετατροπή συσχέτισης από Μ:Ν Μ:Ν

σε δύο 1:Μ συσχετίσειςσε δύο 1:Μ συσχετίσεις

ΑυτοκίνητοΑυτοκίνητο ΆτομοΆτομοοδηγείοδηγεί** **

Αυτοκίνητο εταιρείαςΑυτοκίνητο εταιρείας οδηγόςοδηγός

Ένα άτομο παίζει το ρόλο ενός οδηγού κι ένα αυτοκίνητο παίζει το ρόλο τουΈνα άτομο παίζει το ρόλο ενός οδηγού κι ένα αυτοκίνητο παίζει το ρόλο τουαυτοκινήτου εταιρείας στα πλαίσια της συσχέτισης μεταξύ των αντίστοιχωναυτοκινήτου εταιρείας στα πλαίσια της συσχέτισης μεταξύ των αντίστοιχωνκλάσεων. κλάσεων.

Ένα αυτοκίνητο Ένα αυτοκίνητο μπορεί να παίζει κι άλλους ρόλουςμπορεί να παίζει κι άλλους ρόλους όπως το ρόλο του όπως το ρόλο του ασθενοφόρου, αυτοκινήτου αστυνομίας κτλ. ασθενοφόρου, αυτοκινήτου αστυνομίας κτλ.

Οι ρόλοι αφορούν τις συσχετίσεις καί είναι προεραιτικοί. Δεν αποτελούν Οι ρόλοι αφορούν τις συσχετίσεις καί είναι προεραιτικοί. Δεν αποτελούν μέρος των κλάσεων.μέρος των κλάσεων.

Ρόλοι σε μιά συσχέτισηΡόλοι σε μιά συσχέτιση

ΆτομοΆτομο

Ο ΣύζυγοςΟ Σύζυγος

Η ΣύζυγοςΗ Σύζυγος

παντρεύεταιπαντρεύεται

Ο άντρας παντρεύεται μια γυναίκα. Τόσο ο άντρας όσο κι η γυναίκα είναι άτομα. Αν κάποιο άτομο δεν είναι παντρεμένο τότε δεν μπορεί να παίξει το ρόλο του συζύγου ή της συζύγου, που σημαίνει ότι η συσχέτιση «παντρεύεται» δεν είναι εφαρμόσιμη γι’ αυτό το άτομο.

Παραδειγμα στο οποίο οι ρόλοι μπορεί Παραδειγμα στο οποίο οι ρόλοι μπορεί να μην είναι εφαρμόσιμοινα μην είναι εφαρμόσιμοι

ΠΡΟΣΔΙΟΡΙΣΙΜΗ ΣΥΣΧΕΤΙΣΗΠΡΟΣΔΙΟΡΙΣΙΜΗ ΣΥΣΧΕΤΙΣΗ((Qualified Association)Qualified Association)

CanvasCanvas FigureFigureFigure.idFigure.id **

προσδιοριστήςπροσδιοριστής

• Ο προσδιοριστής είναι ένα ή περισσότερα χαρακτηριστικά της κλάσηςοι τιμές των οποίων δημιουργούν ξένες μεταξύ τους ομάδες στη σχετιζόμενη κλάσητις περισσότερες φορές μειώνουν την πολλαπλότητα σε 1

• Χρησιμοποιείται σε συσχετίσεις 1:Μ ή Ν:Μ καί ουσιαστικά μετατρέπει τη συσχέτιση σε 1:1

ΣΥΣΧΕΤΙΣΗ ΔΙΑΖΕΥΞΗΣΣΥΣΧΕΤΙΣΗ ΔΙΑΖΕΥΞΗΣ((OR-Association)OR-Association)

ΑσφαλιστικήΑσφαλιστικήεταιρείαεταιρεία

ΣυμβόλαιοΣυμβόλαιοασφάλειαςασφάλειας

ΆτομοΆτομο ΕταιρείαΕταιρεία

0..*0..*

1..*1..*

{{oror}}

11 0..*0..* 0..*0..*

1..*1..*

Η συσχέτιση διάζευξης:Η συσχέτιση διάζευξης:- θέτει περιορισμό σε δύο ή περισσότερες συσχετίσειςθέτει περιορισμό σε δύο ή περισσότερες συσχετίσεις- εξασφαλίζει ότι μόνο μια από τις συσχετίσεις εξασφαλίζει ότι μόνο μια από τις συσχετίσεις είναι έγκυρη κάθε φοράείναι έγκυρη κάθε φορά

ΤΑΞΙΝΟΜΗΜΕΝΗ ΣΥΣΧΕΤΙΣΗΤΑΞΙΝΟΜΗΜΕΝΗ ΣΥΣΧΕΤΙΣΗ(Ο(Οrdered Association)rdered Association)

ΣυμβόλαιοΣυμβόλαιοΑσφάλειαςΑσφάλειας

ΠελάτηςΠελάτης

0..*0..*

1..*1..*

{ταξινομημένο κατά αύξουσα σειρά χρόνου}{ταξινομημένο κατά αύξουσα σειρά χρόνου}

Πολλές φορές είναι απαραίτητο να προσδιορισθεί κάποια συγκεκριμένη σειράΠολλές φορές είναι απαραίτητο να προσδιορισθεί κάποια συγκεκριμένη σειράανάμεσα στ’αντικείμενα. Αυτό φανερώνεται τοποθετώντας {ταξινομημένο }ανάμεσα στ’αντικείμενα. Αυτό φανερώνεται τοποθετώντας {ταξινομημένο }ανάμεσα στους συνδέσμους, και κοντά στην κλάση του αντικειμένου που ανάμεσα στους συνδέσμους, και κοντά στην κλάση του αντικειμένου που Ταξινομείται.Ταξινομείται.

Το Το default default είναι μη ταξινομημένο.είναι μη ταξινομημένο.

ΚΛΑΣΗ ΣΥΣΧΕΤΙΣΗΣ (1/3)(Association class)

ΟυράΟυρά

ΈλεγχοςΈλεγχοςανελκυστήραανελκυστήρα ανελκυστήραςανελκυστήρας

ΚουμπίΚουμπί

**

44

Η κλάση συσχέτισης Ουρά μπορεί να επεκταθεί με διάφορες λειτουργίες όπως πρόσθεση Η κλάση συσχέτισης Ουρά μπορεί να επεκταθεί με διάφορες λειτουργίες όπως πρόσθεση αιτήσεων στην ουρά,ανάγνωση και μετακίνηση μηνυμάτων από την ουρά. Αν προστίθενται αιτήσεων στην ουρά,ανάγνωση και μετακίνηση μηνυμάτων από την ουρά. Αν προστίθενται λειτουργίες ή γνωρίσματα στην κλάση συσχέτισης, αυτά αναπαρίστανται όπως σελειτουργίες ή γνωρίσματα στην κλάση συσχέτισης, αυτά αναπαρίστανται όπως σε μια κανονική κλάσημια κανονική κλάση

ΚΛΑΣΗ ΣΥΣΧΕΤΙΣΗΣ (2/3)(Association class)

ΚΛΑΣΗ ΣΥΣΧΕΤΙΣΗΣ (2/3)(Association class)

Απαραίτητη σε περιπτώσεις συσχετίσεων Απαραίτητη σε περιπτώσεις συσχετίσεων M:NM:N

Αυξάνει την ευελιξία σε περίπτωση συσχετίσεων 1:1 και 1:Αυξάνει την ευελιξία σε περίπτωση συσχετίσεων 1:1 και 1:NN

User Appointment1..*

*Participation

isRelocatable

Company

name

address

Person

name

socSec#

address

loan

position

1 *

Employment

loan

position

ΚΛΑΣΗ ΣΥΣΧΕΤΙΣΗΣ (3/3)(Association class)

ΚΛΑΣΗ ΣΥΣΧΕΤΙΣΗΣ (3/3)(Association class)

Person Project

Employment

qualificationProfile

hours

dailyRate

1 1

* *

Person Project

Employment

qualificationProfile

hours

dailyRate

* *

Κάποιος μπορεί να έχει πάνω από μία σχέσεις employment για το ίδιο project.

ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΚΛΑΣΗ ΣΥΣΧΕΤΙΣΗΣ

TΡΙΑΔΙΚΗ ΣΥΣΧΕΤΙΣΗTΡΙΑΔΙΚΗ ΣΥΣΧΕΤΙΣΗ((Ternary association)Ternary association)

ΑσφαλιστικήΑσφαλιστικήεταιρείαεταιρεία

ΣυμβόλαιοΣυμβόλαιοασφάλισηςασφάλισης

ΠελάτηςΠελάτης

Πολιτική Πολιτική ασφάλισηςασφάλισης

1..*1..*

0..10..1

0..*0..*

11 0..*0..*

Η τριαδική (Ν-αδική) συσχέτιση Η τριαδική (Ν-αδική) συσχέτιση συσχετίζει τρεις (ή Ν) κλάσειςσυσχετίζει τρεις (ή Ν) κλάσεις..Όπως φαίνεται από το σχήμα ο πελάτης μπορεί να έχει Όπως φαίνεται από το σχήμα ο πελάτης μπορεί να έχει μηδέν εως μηδέν εως πολλά συμβόλαια ασφάλισηςπολλά συμβόλαια ασφάλισης, κάθε ένα από τα οποία έχει , κάθε ένα από τα οποία έχει μηδέν μηδέν εως μία πολιτική ασφάλισηςεως μία πολιτική ασφάλισης και σχετίζεται με μια ασφαλιστική και σχετίζεται με μια ασφαλιστική εταιρεία.εταιρεία.

ασφαλιστήςασφαλιστής

ασφαλιζόμενοςασφαλιζόμενος

ΣΥΝΑΘΡΟΙΣΗ (ΑGGREGATION)ΣΥΝΑΘΡΟΙΣΗ (ΑGGREGATION)

Η συνάθροιση είναι μία ειδική περίπτωση συσχέτισης με τις ακόλουθες ιδιότητες:

Μεταβατικότητα: Αν τα αντικείμενα της κλάσης C είναι part-of των αντικειμένων της κλάσης B και η B είναι part-of Α ΤΟΤΕ η C είναι part-of Α

Αντι-συμμετρικότητα: Αν η Β είναι part-of Α ΤΟΤΕ η Α δεν είναι part-of B

ΣτόλοςΣτόλος Πολεμικά πλοίαΠολεμικά πλοίαπεριέχειπεριέχει

**

H H συνάθροιση εκφράζεται με τις λέξεις συνάθροιση εκφράζεται με τις λέξεις ““ΠεριέχειΠεριέχει””, , ““Αποτελείται-απόΑποτελείται-από” ” ή ή ““Είναι μέρος του (Είναι μέρος του (part of)”part of)”

Ο στόλος αποτελείται από πολλά πλοία. Ορισμένα πλοία Ο στόλος αποτελείται από πολλά πλοία. Ορισμένα πλοία μπορούν να μετακινηθούν, μπορούν να μετακινηθούν, ο στόλος όμως εξακολουθεί να ο στόλος όμως εξακολουθεί να υφίσταταιυφίσταται. Όπως το ίδιο συμβαίνει κι αν προσθέσουμε κάποια . Όπως το ίδιο συμβαίνει κι αν προσθέσουμε κάποια πλοία. πλοία.

Τα τμήματα (πλοία) συνθέτουν το σύνολο (στόλος). Τα Τα τμήματα (πλοία) συνθέτουν το σύνολο (στόλος). Τα τμήματα υπάρχουν, έστω κι άν το σύνολο καταστραφεί.τμήματα υπάρχουν, έστω κι άν το σύνολο καταστραφεί.

ΚΑΝΟΝΙΚΗ ΣΥΝΑΘΡΟΙΣΗ (ΚΑΝΟΝΙΚΗ ΣΥΝΑΘΡΟΙΣΗ (NORMAL AGGREGATIONNORMAL AGGREGATION))

ΔΙΑΜΟΙΡΑΖΟΜΕΝΗ ΣΥΝΑΘΡΟΙΣΗΔΙΑΜΟΙΡΑΖΟΜΕΝΗ ΣΥΝΑΘΡΟΙΣΗ((SHARED AGGREGATION)SHARED AGGREGATION)

ΟμάδαΟμάδα ΆτομοΆτομοΑποτελείται απόΑποτελείται από

****

Mία συνάθροιση είναι διαμοιραζόμενη, αν η πολλαπλότητα στο μέρος του όλου είναι Mία συνάθροιση είναι διαμοιραζόμενη, αν η πολλαπλότητα στο μέρος του όλου είναι παραπάνω από 1.παραπάνω από 1.

Τα μέρη είναι ανεξάρτητα του όλου καί μπορούν να αποτελούν μέρη καί άλλων Τα μέρη είναι ανεξάρτητα του όλου καί μπορούν να αποτελούν μέρη καί άλλων αντικειμένων του ίδιου τύπου.αντικειμένων του ίδιου τύπου.

Το παραπάνω μοντέλο αποτελεί ένα παράδειγμα Το παραπάνω μοντέλο αποτελεί ένα παράδειγμα διαμοιραζόμενης συνάθροισηςδιαμοιραζόμενης συνάθροισης, , όπου τα όπου τα άτομα είναι τα διαμοιραζόμενα μέρηάτομα είναι τα διαμοιραζόμενα μέρη. .

Μια ομάδα αποτελείται από διάφορα μέλη. Μια ομάδα αποτελείται από διάφορα μέλη. Ένα άτομο μπορεί να είναι μέλος πολλών Ένα άτομο μπορεί να είναι μέλος πολλών ομάδων.ομάδων.

YYλοποιείται όπως καί η συσχέτιση, δηλαδή με κάποιο λοποιείται όπως καί η συσχέτιση, δηλαδή με κάποιο reference reference από το μέρος στο από το μέρος στο όλον.όλον.

ΣΥΝΑΘΡΟΙΣΗ ΣΥΝΘΕΣΗΣ(Composition Aggregation)

ΣΥΝΑΘΡΟΙΣΗ ΣΥΝΘΕΣΗΣ(Composition Aggregation)

Παρουσιάζει Παρουσιάζει ισχυρή ιδιοκτησίαισχυρή ιδιοκτησία των τμημάτων της των τμημάτων της

Τα τμήματα που «ζουν» μέσα στο σύνολο θα Τα τμήματα που «ζουν» μέσα στο σύνολο θα καταστραφούν , όταν καταστραφεί και το σύνολοκαταστραφούν , όταν καταστραφεί και το σύνολο

Η πολλαπλότητα στην πλευρά του συνόλου (Η πολλαπλότητα στην πλευρά του συνόλου (wholeside) wholeside) πρέπει να είναι 0..1 , ενώ η πολλαπλότητα στην πλευρά πρέπει να είναι 0..1 , ενώ η πολλαπλότητα στην πλευρά τμήματος (τμήματος (partside) partside) είναι οποιοδήποτε διάστημαείναι οποιοδήποτε διάστημα

ΣΥΝΑΘΡΟΙΣΗ ΣΥΝΘΕΣΗΣ (Composition Aggregation)1ος τρόπος απεικόνισης

ΠαράθυροΠαράθυρο

ΚείμενοΚείμενο

ΚουμπίΚουμπί

ΜενούΜενού

**

**

**

Το διαμάντι δείχνει τη συνάθροιση σύνθεσης.Το παράθυρο περιέχει πολλά μενού,Το διαμάντι δείχνει τη συνάθροιση σύνθεσης.Το παράθυρο περιέχει πολλά μενού,κουμπιά και κείμενα.Όλοι οι τύποι της συνάθροισης μπορούν να έχουν ένα όνομακουμπιά και κείμενα.Όλοι οι τύποι της συνάθροισης μπορούν να έχουν ένα όνομα..

ΣΥΝΑΘΡΟΙΣΗ ΣΥΝΘΕΣΗΣ (Composition Aggregation)2ος τρόπος απεικόνισης

ΠαράθυροΠαράθυρο

ΚείμενοΚείμενο

ΚουμπίΚουμπί

ΜενούΜενού

περιέχειπεριέχει

**

**

**

Αν υπάρχουν περισσότερα από ένα τμήματα του ίδιου Αν υπάρχουν περισσότερα από ένα τμήματα του ίδιου συνόλου,συνόλου,αυτά μπορούν να σχεδιαστούν σαν ένα δέντρο αυτά μπορούν να σχεδιαστούν σαν ένα δέντρο συγχωνεύοντας την συγχωνεύοντας την κατάληξή τους σ’ένα κοινό τέλος.Μια συνάθροιση έχει μόνο κατάληξή τους σ’ένα κοινό τέλος.Μια συνάθροιση έχει μόνο ένα ένα όνομα ρόλου κι αυτό είναι στην πλευρά του τμήματος.όνομα ρόλου κι αυτό είναι στην πλευρά του τμήματος.

Laurel andLaurel andHardy MovieHardy Movie

ActorActor

Stan Stan laurellaurel

Oliver HardyOliver Hardy

Laurel and Hardie MovieLaurel and Hardie Movie

Oliver Hardy 1Oliver Hardy 1

Stan Laure Stan Laure 1 1

ActorActorLaurel and Hardy MovieLaurel and Hardy Movie

Oliver Hardy:ActorOliver Hardy:ActorStan Laurel:ActorStan Laurel:Actor

ΣΥΝΑΘΡΟΙΣΗ ΣΥΝΘΕΣΗΣ (Composition Aggregation)3ος τρόπος απεικόνισης

Παράδειγμα: μιά ταινία με τους Παράδειγμα: μιά ταινία με τους Laurel and Laurel and Hardie, Hardie, πάντα περιλαμβάνει τους ρόλους των πάντα περιλαμβάνει τους ρόλους των Oliver Hardy and Stan LaurelOliver Hardy and Stan Laurel

ΣΥΝΑΘΡΟΙΣΗ ΣΥΝΘΕΣΗΣ (Composition Aggregation)4ος τρόπος απεικόνισης

ΚείμενοΚείμενο

ΚουμπίΚουμπί

ΜενούΜενού

ΠαράθυροΠαράθυρο

**

**

**

Οι κλάσεις των τμημάτων βρίσκονται μέσα στην κλάση του συνόλου. Οι κλάσεις των τμημάτων βρίσκονται μέσα στην κλάση του συνόλου. Η πολλαπλότητα των τμημάτων σημειώνεται σε κάθε κλάση στην πάνω Η πολλαπλότητα των τμημάτων σημειώνεται σε κάθε κλάση στην πάνω δεξιά γωνίαδεξιά γωνία

ΠαράθυροΠαράθυρομηνύματοςμηνύματος

ΚουμπίΚουμπί ΕικονίδιοΕικονίδιο

0..10..1 0..10..1 0..10..1

ok

ok

cancel

cancel

inform

atio

ninfo

rma

tion

Παράθυρο μηνύματοςΠαράθυρο μηνύματος

ok [0..1] : Buttonok [0..1] : Buttoncancel [0..1] : Buttoncancel [0..1] : Buttoninformation[0..1] :Iconinformation[0..1] :Icon

Το παράθυρο μηνυμάτων αποτελείται από Το παράθυρο μηνυμάτων αποτελείται από μηδέν ή ένα μηδέν ή ένα OK OK κουμπιά ,μηδέν ήκουμπιά ,μηδέν ήένα ένα cancel cancel κουμπιά ή ένα εικονίδιο πληροφορίαςκουμπιά ή ένα εικονίδιο πληροφορίας.Μια συνάθροιση σύνθεσης .Μια συνάθροιση σύνθεσης αναπαρίσταται όπως τα γνωρίσματα σε μια κλάσηαναπαρίσταται όπως τα γνωρίσματα σε μια κλάση.Η πολλαπλότητα φαίνεται .Η πολλαπλότητα φαίνεται μέσα στις αγκύλες.μέσα στις αγκύλες.

ΔΙΑΓΡΑΜΜΑ ΣΥΝΑΘΡΟΙΣΗΣ ΣΥΝΘΕΣΗΣ (Composition Aggregation)ακόμη ένα παράδειγμα

3. Σχέσεις μεταξύ Κλάσεων3. Σχέσεις μεταξύ Κλάσεων

3.0 Ορισμοί3.0 Ορισμοί

3.1 Συσχέτιση (3.1 Συσχέτιση (Association)Association)

3.2 3.2 Γενίκευση-Εξειδίκευση Γενίκευση-Εξειδίκευση ((Generalization-Specialization)Generalization-Specialization)

3.3 Εξάρτηση (Dependency)3.3 Εξάρτηση (Dependency)

3.4 3.4 ΡαφινάρισμαΡαφινάρισμα/Εκλέπτυνση /Εκλέπτυνση (Refinement)(Refinement)

Είναι η σχέση μεταξύ ενός πιο γενικού και ενός πιο εξειδικευμένου Είναι η σχέση μεταξύ ενός πιο γενικού και ενός πιο εξειδικευμένου στοιχείουστοιχείου

To To πιο εξειδικευμένο στοιχείο περιέχει επιπλέον πληροφορίαπιο εξειδικευμένο στοιχείο περιέχει επιπλέον πληροφορία

Επιτρέπει να γίνεται εξειδίκευση των στοιχείων σε άλλα πιο Επιτρέπει να γίνεται εξειδίκευση των στοιχείων σε άλλα πιο εξειδικευμένα, συνεπώς ειδικές περιπτώσεις και επεκτάσεις εξειδικευμένα, συνεπώς ειδικές περιπτώσεις και επεκτάσεις αντιμετωπίζονται ως διαφορετικά στοιχείααντιμετωπίζονται ως διαφορετικά στοιχεία

Χρησιμοποιείται για κλάσεις, Χρησιμοποιείται για κλάσεις, use cases use cases και πακέτακαι πακέτα. Στις . Στις συσχετίσεις επιτρέπει τον συσχετίσεις επιτρέπει τον περιορισμόπεριορισμό των πιθανών συνδέσμων των πιθανών συνδέσμων ανάμεσα σε αντικείμενα των οποίων οι υπερκλάσεις είναι ανάμεσα σε αντικείμενα των οποίων οι υπερκλάσεις είναι συσχετισμένες.συσχετισμένες.

3.2 ΓΕΝΙΚΕΥΣΗ-ΕΞΕΙΔΙΚΕΥΣΗ 3.2 ΓΕΝΙΚΕΥΣΗ-ΕΞΕΙΔΙΚΕΥΣΗ (GENERALIZATION-SPECIALIZATION)(GENERALIZATION-SPECIALIZATION)

ΓενίκευσηΓενίκευση

Είναι Είναι σχέση κατηγοριοποίησης (ταξονομίας) σχέση κατηγοριοποίησης (ταξονομίας) μεταξύ μίας εξειδικευμένης κλάσης και μίας μεταξύ μίας εξειδικευμένης κλάσης και μίας περισσότερο γενικευμένης.περισσότερο γενικευμένης. η εξειδικευμένη κλάση η εξειδικευμένη κλάση κληρονομείκληρονομεί όλες τις ιδιότητες της όλες τις ιδιότητες της

γενικευμένηςγενικευμένης μπορούν να προστεθούν μπορούν να προστεθούν επιπλέον ιδιότητεςεπιπλέον ιδιότητες ένα στιγμιότυπο της υποκλάσης μπορεί να χρησιμοποιηθεί όπου ένα στιγμιότυπο της υποκλάσης μπορεί να χρησιμοποιηθεί όπου

επιτρέπεται η χρήση της υπερκλάσηςεπιτρέπεται η χρήση της υπερκλάσης επιτρέπεται επιτρέπεται πολλαπλή κληρονομικότηταπολλαπλή κληρονομικότητα

ΌχημαΌχημα

ΑυτοκίνητοΑυτοκίνητο ΒάρκαΒάρκα ΦορτηγόΦορτηγό

Το όχημα είναι μια Το όχημα είναι μια γενική κλάση (υπερκλάσηγενική κλάση (υπερκλάση) που προέρχεται ) που προέρχεται από εξειδικευμένες από εξειδικευμένες κλάσεις (υποκλάσεις)κλάσεις (υποκλάσεις) μέσω της κληρονομικότητας μέσω της κληρονομικότητας (γενίκευσης-εξειδίκευσης(γενίκευσης-εξειδίκευσης).).Μια κλάση Μια κλάση μπορεί να κληρονομήσειμπορεί να κληρονομήσει από μια κλάση(οπότε είναι υποκλάση σ’ από μια κλάση(οπότε είναι υποκλάση σ’αυτή) ,όπως αυτή) ,όπως ταυτόχρονα μπορεί να κληρονομηθείταυτόχρονα μπορεί να κληρονομηθεί από κάποια άλλη από κάποια άλλη( υπερκλάση σ’αυτή)( υπερκλάση σ’αυτή)

ΓενίκευσηΓενίκευση

ΌχημαΌχημα

ΑυτοκίνητοΑυτοκίνητο ΒάρκαΒάρκα ΦορτηγόΦορτηγό

Ίδιο μοντέλο με το προηγούμενο ,αλλά η κληρονομικότητα παίρνει Ίδιο μοντέλο με το προηγούμενο ,αλλά η κληρονομικότητα παίρνει τη μορφή ενός δέντρου (μόνο μ’ένα τρίγωνο)τη μορφή ενός δέντρου (μόνο μ’ένα τρίγωνο)

ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΟΗΓΟΥΜΕΝΟΥ ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΟΗΓΟΥΜΕΝΟΥ ΜΟΝΤΕΛΟΥ ΜΕ ΤΗ ΜΟΡΦΗ ΔΕΝΤΡΟΥΜΟΝΤΕΛΟΥ ΜΕ ΤΗ ΜΟΡΦΗ ΔΕΝΤΡΟΥ

Γενίκευση με περιορισμό(Constrained generalization)

Γενίκευση με περιορισμό(Constrained generalization)

• ΟΟverlapping:verlapping: Άδεια γιά Πολλαπλή Κληρονομικότητα Άδεια γιά Πολλαπλή Κληρονομικότητα

• Disjoint:Disjoint: Απαγόρευση Πολλαπλής Κληρονομικότητας Απαγόρευση Πολλαπλής Κληρονομικότητας (default)(default)

• Complete: Complete: Απαγόρευση περαιτέρω εξειδίκευσης των Απαγόρευση περαιτέρω εξειδίκευσης των κλάσεωνκλάσεων

• Incomplete: Incomplete: Άδεια περαιτέρω εξειδίκευσης των κλάσεων Άδεια περαιτέρω εξειδίκευσης των κλάσεων ((default)default)

Γενίκευση: Αναπαράσταση περιορισμώνΓενίκευση: Αναπαράσταση περιορισμών

Κλάση ΑΚλάση Α

Κλάση ΒΚλάση Β Κλάση ΓΚλάση Γ Κλάση ΔΚλάση Δ

{ περιορισμός1,{ περιορισμός1, περιορισμός2, ... }περιορισμός2, ... }

Κλάση ΑΚλάση Α

Κλάση ΒΚλάση Β Κλάση ΓΚλάση Γ Κλάση ΔΚλάση Δ

{περιορισμός 1,{περιορισμός 1,περιορισμός2..}περιορισμός2..}

ΤΡΟΠΟΣ ΑΤΡΟΠΟΣ Α ΤΡΟΠΟΣ ΒΤΡΟΠΟΣ Β

ΕΠΙΚΑΛΥΨΗ ΚΑΙ ΜΗ ΣΥΝΕΝΩΣΗ(Overlapping and disjoint)

ΖώονΖώον

ΘηλαστικόΘηλαστικό ΨάριΨάρι

ΑμφίβιοΑμφίβιο

{ overlapping}{ overlapping}

ΕπικάλυψηΕπικάλυψη σημαίνει ότι οι υποκλάσεις σημαίνει ότι οι υποκλάσεις επιτρέπεται να εξειδικευτούν σε μια κοινήεπιτρέπεται να εξειδικευτούν σε μια κοινήυποκλάσηυποκλάση (πχ Αμφίβιο), ενώ ακριβώς το αντίθετο φανερώνει η (πχ Αμφίβιο), ενώ ακριβώς το αντίθετο φανερώνει η μη συνένωση (μη συνένωση (disjoint) disjoint) που είναι καί το default.

ΟΛΟΚΛΗΡΩΜΕΝΗ Η ΜΗ ΟΛΟΚΛΗΡΩΜΕΝΗ ΓΕΝΙΚΕΥΣΗ(Complete or incomplete generalization)

ΆνθρωποςΆνθρωπος

ΆντραςΆντρας ΓυναίκαΓυναίκα

{ολοκληρωμένη}{ολοκληρωμένη}

Όταν σε κάποια γενίκευση υπάρχει ο περιορισμόςΌταν σε κάποια γενίκευση υπάρχει ο περιορισμός ολοκληρωμένη, ολοκληρωμένη, σημαίνει ότι δενσημαίνει ότι δενμπορούν να προστεθούν νέες υποκλάσειςμπορούν να προστεθούν νέες υποκλάσεις..

To default To default είναι η είναι η μη ολοκληρωμένημη ολοκληρωμένη

3. Σχέσεις μεταξύ Κλάσεων3. Σχέσεις μεταξύ Κλάσεων

3.0 Ορισμοί3.0 Ορισμοί

3.1 Συσχέτιση (3.1 Συσχέτιση (Association)Association)

3.2 3.2 Γενίκευση (Γενίκευση (Generalization)Generalization)

3.3 Εξάρτηση (Dependency)3.3 Εξάρτηση (Dependency)

3.4 Ανάλυση/Εκλέπτυνση (Refinement)3.4 Ανάλυση/Εκλέπτυνση (Refinement)

3.3 ΣΧΕΣΗ ΕΞΑΡΤΗΣΗΣ 3.3 ΣΧΕΣΗ ΕΞΑΡΤΗΣΗΣ (Dependency relationship)(Dependency relationship)

Κλάση ΑΚλάση Α Κλάση ΒΚλάση Β«φίλη»«φίλη»

Είναι μία σημαντική συσχέτιση μεταξύ δύο κλάσεων ή πακέτων ή use cases, etc.(δηλαδή μεταξύ δύο στοιχείων του μοντέλου UML)

Mία αλλαγή στο ανεξάρτητο στοιχείο, επηρεάζει το εξαρτημένο. Παρότι δεν υπάρχει σαφής συσχέτιση μεταξύ των δύο κλάσεων, υπάρχει εξάρτηση

Παραδείγματα: •Μια κλάση παίρνει το αντικείμενοπαίρνει το αντικείμενο κάποιας άλλης κλάσης σαν παράμετρο.•Μιά κλάση καλεί μία μέθοδο κλάσηςκαλεί μία μέθοδο κλάσης μιάς άλλης κλάσης.

Όταν χρησιμοποιείται μια ετικέτα όπως στο παράδειγμά μας «φίλη»,είναι ένα στερεότυπο που προσδιορίζει το είδος της εξάρτησης.

3.4 REFINEMENT RELATIONSHIP(Σχέση ραφιναρίσματος)

Κλάση ανάλυσηςΚλάση ανάλυσης Κλάση σχεδιασμούΚλάση σχεδιασμού

Μιά συσχέτιση Μιά συσχέτιση refinement υπάρχει refinement υπάρχει

• μεταξύ δύο διαφορετικών αναπαραστάσεων του ίδιου στοιχείου, αλλά σε μεταξύ δύο διαφορετικών αναπαραστάσεων του ίδιου στοιχείου, αλλά σε διαφορετικό επίπεδο αφαίρεσηςδιαφορετικό επίπεδο αφαίρεσης

• ανάμεσα σ’ένα στοιχείο και ανάμεσα σ’ένα στοιχείο και σε μια κλάση που το υλοποιείσε μια κλάση που το υλοποιεί

Επίσης χρησιμοποιείται για να Επίσης χρησιμοποιείται για να μοντελοποιήσει διαφορετικές υλοποιήσεις τουμοντελοποιήσει διαφορετικές υλοποιήσεις τουίδιου πράγματος.ίδιου πράγματος.

Περιεχόμενα ΚεφαλαίουΠεριεχόμενα Κεφαλαίου

1. 1. Γενικοί ΟρισμοίΓενικοί Ορισμοί

2. Κλάσεις καί η Περιγραφή τους2. Κλάσεις καί η Περιγραφή τους

3. Σχέσεις Μεταξύ Κλάσεων3. Σχέσεις Μεταξύ Κλάσεων

4. Αφαιρετικές Κλάσεις4. Αφαιρετικές Κλάσεις

5. Προχωρημένες Έννοιες5. Προχωρημένες Έννοιες

ΌχημαΌχημα

ΑυτοκίνητοΑυτοκίνητο ΒάρκαΒάρκα

ΣπορΣπορ ΕπιβατηγόΕπιβατηγό ΦορτηγόΦορτηγό ΙστιοπλοϊκήΙστιοπλοϊκή ΜηχανοκίνητηΜηχανοκίνητη ΠλοίοΠλοίο

Mια ιεραρχία κλάσεων για οχήματαMια ιεραρχία κλάσεων για οχήματα. Η κλάση Αυτοκίνητο είναι υποκλάση στο . Η κλάση Αυτοκίνητο είναι υποκλάση στο όχημα, αλλά υπερκλάση στο σπορ αυτοκίνητο,στο επιβατηγό και στο φορτηγό.όχημα, αλλά υπερκλάση στο σπορ αυτοκίνητο,στο επιβατηγό και στο φορτηγό.Μια Μια abstract abstract κλάση κλάση δεν επιτρέπεται να έχει αντικείμεναδεν επιτρέπεται να έχει αντικείμενα, χρησιμοποιείται , χρησιμοποιείται μόνο μόνο για να κληρονομείται από τις υποκλάσειςγια να κληρονομείται από τις υποκλάσεις

4. Αφαιρετική Κλάση4. Αφαιρετική Κλάση

Χαρακτηριστικά αφαιρετικής μεθόδουΧαρακτηριστικά αφαιρετικής μεθόδου

Δεν υπάρχει μέθοδος υλοποίησηςΔεν υπάρχει μέθοδος υλοποίησης στην κλάση που στην κλάση που εμφανίζεται η συγκεκριμένη λειτουργίαεμφανίζεται η συγκεκριμένη λειτουργία

Μια κλάση που Μια κλάση που έχει τουλάχιστον μια έχει τουλάχιστον μια abstract μέθοδοabstract μέθοδο,, είναι μια είναι μια abstract abstract κλάσηκλάση..

Αν μια κλάση, που κληρονομεί από μια κλάση που έχει Αν μια κλάση, που κληρονομεί από μια κλάση που έχει τουλάχιστον μια τουλάχιστον μια abstract μέθοδοabstract μέθοδο, , δεν μπορεί να υλοποιήσει δεν μπορεί να υλοποιήσει αυτές τις μεθόδουςαυτές τις μεθόδους,, τότε γίνεται και η ίδια μια τότε γίνεται και η ίδια μια abstract abstract κλάσηκλάση

ΌχημαΌχημα{abstract}{abstract}

Drive(){abstract}Drive(){abstract}

AυτοκίνητοAυτοκίνητο

Drive()Drive()

ΒάρκαΒάρκα

Drive()Drive()

Drive() αρχίζει τουςDrive() αρχίζει τουςτροχούςτροχούς

Drive () Drive () αρχίζει τηναρχίζει τηνπροπέλαπροπέλα

ΑφαιρετικήΑφαιρετική κλάση καί κλάση καί αφαιρετική αφαιρετική μέθοδοςμέθοδοςΠαράδειγμαΠαράδειγμα

ΆτομοΆτομοοδηγείοδηγεί

ΌχημαΌχημα{{abstract}abstract}

χρώμαχρώμα

Drive(){abstract}Drive(){abstract}

ΑυτοκίνητοΑυτοκίνητο ΒάρκαΒάρκα

Drive( )Drive( ) Drive( )Drive( )

Ένα άτομο οδηγά οχήματα. Όταν καλείται η μέθοδος οδήγησης, η επιλεγόμενη Ένα άτομο οδηγά οχήματα. Όταν καλείται η μέθοδος οδήγησης, η επιλεγόμενη υλοποίηση υλοποίηση εξαρτάται από το αν το χρησιμοποιούμενο αντικείμενο είναι αυτοκίνητοεξαρτάται από το αν το χρησιμοποιούμενο αντικείμενο είναι αυτοκίνητοή βάρκα.ή βάρκα.Το όχημα είναι μια Το όχημα είναι μια abstract abstract κλάσηκλάση..

Ορισμός αφαιρετικών μεθόδων από υποκλάσεις

FigureFigure{abstract}{abstract}#position:Pos#position:Pos

Draw(){abstract}Draw(){abstract}

GroupGroup

Draw()Draw()

PolygonPolygon

Draw( )Draw( )

Figures Figures **

ΠαράδειγμαΠαράδειγμα

Γενίκευση με αφαιρετική κλάση καί προσδιοριστή

Γενίκευση με αφαιρετική κλάση καί προσδιοριστή

#position:Pos#position:Pos

Draw(){abstract}Draw(){abstract}

CarCar

Drive()Drive()

BoatBoat

Drive( )Drive( )

VehicleVehicle{abstract}{abstract}

Drive( ) {abstract}Drive( ) {abstract}

PropulsionPropulsion PropulsionPropulsion

5. Προχωρημένες Έννοιες5. Προχωρημένες Έννοιες

5.1 Περιορισμοί καί Κανόνες Παραγωγής 5.1 Περιορισμοί καί Κανόνες Παραγωγής ((Constraints and Derivation Rules)Constraints and Derivation Rules)

5.2 5.2 Διασύνδεση (Διασύνδεση (Interface)Interface)

5.3 5.3 Πακέτα (Πακέτα (Packages)Packages)

5.4 5.4 Πρότυπα (ΤΠρότυπα (Τemplates)emplates)

5.1 Περιορισμοί και κανόνες παραγωγής(Constraints and derivation rules)

5.1 Περιορισμοί και κανόνες παραγωγής(Constraints and derivation rules)

• Oι περιορισμοί Oι περιορισμοί θέτουν τα όρια σ’ ένα μοντέλοθέτουν τα όρια σ’ ένα μοντέλο. Παραδείγματα περιορισμών . Παραδείγματα περιορισμών είναι η συσχέτιση διάζευξης, ταξινομημένη συσχέτιση, περιορισμοί είναι η συσχέτιση διάζευξης, ταξινομημένη συσχέτιση, περιορισμοί κληρονομικότητας (οκληρονομικότητας (οverlapping, disjoint ...) verlapping, disjoint ...) κτλ.κτλ.

• Οι κανόνες παραγωγής περιγράφουν Οι κανόνες παραγωγής περιγράφουν τον τρόπο που μπορούν να προέλθουν τον τρόπο που μπορούν να προέλθουν διάφορα πράγματαδιάφορα πράγματα, π.χ. η ηλικία ενός ατόμου (αφαίρεση ημερομηνίας , π.χ. η ηλικία ενός ατόμου (αφαίρεση ημερομηνίας γέννησης από την τρέχουσα ημερομ).γέννησης από την τρέχουσα ημερομ).

• Οι περιορισμοί καί οι κανόνες εφαρμόζονται κυρίως σε: χαρακτηριστικά, Οι περιορισμοί καί οι κανόνες εφαρμόζονται κυρίως σε: χαρακτηριστικά, συσχετίσεις, κληρονομικότητα, ρόλους καί χρονικούς περιορισμούς στα συσχετίσεις, κληρονομικότητα, ρόλους καί χρονικούς περιορισμούς στα δυναμικά μοντέλαδυναμικά μοντέλα

• Η Η γενίκευση (γενίκευση (generalization) generalization) έχει μόνο περιορισμούςέχει μόνο περιορισμούς όχι κανόνες όχι κανόνες παραγωγής (παραγωγής (derivations)derivations). Οι περιορισμοί είναι οι τέσσερεις που . Οι περιορισμοί είναι οι τέσσερεις που προαναφέρθηκαν (προαναφέρθηκαν (overlapping, disjoint, complete, incomplete)overlapping, disjoint, complete, incomplete)

Αναπαράσταση περιορισμών καί κανόνων παραγωγής

Αναπαράσταση περιορισμών καί κανόνων παραγωγής

Αναπαρίστανται Αναπαρίστανται • ανάμεσα σε αγκύλες { } κοντά στο τμήμα του ανάμεσα σε αγκύλες { } κοντά στο τμήμα του

μοντέλου που αφορούν ήμοντέλου που αφορούν ή• ανάμεσα σε παρενθέσεις σ’ένα σημείωμα που ανάμεσα σε παρενθέσεις σ’ένα σημείωμα που

συνδέεται με το τμήμα του μοντέλου που συνδέεται με το τμήμα του μοντέλου που αφοράαφορά

Συσχέτιση με περιορισμόΣυσχέτιση με περιορισμό

ΠολιτικόςΠολιτικός Πολιτικό ΚόμμαΠολιτικό Κόμμα{υποσύνολο}

1 Αρχηγός Κόμματος 11 Αρχηγός Κόμματος 1

1…* Μέλος του 11…* Μέλος του 1

Περιορισμοί σε ΧαρακτηριστικάΠεριορισμοί σε Χαρακτηριστικά

++ amount : Real amount : Real+ date :Date = Current date+ date :Date = Current date+ customer : String+ customer : String- number of invoices : Integer- number of invoices : Integer+status :Status = Unpaid {unpaid,paid}+status :Status = Unpaid {unpaid,paid}

InvoiceInvoice

ΠροϊόνΠροϊόν

Τιμή κόστουςΤιμή κόστουςΤιμή πώλησηςΤιμή πώλησης/κέρδος/κέρδος

{ κέρδος = τιμή πώλησης - τιμή κόστους }{ κέρδος = τιμή πώλησης - τιμή κόστους }

Παραγώμενο Χαρακτηριστικό καί Παραγώμενο Χαρακτηριστικό καί Κανόνας ΠαραγωγήςΚανόνας Παραγωγής

5.2 Διασύνδεση (Interface) 5.2 Διασύνδεση (Interface)

Γενικά χαρακτηριστικάΓενικά χαρακτηριστικά• Το Το interface interface περιγράφεται σαν ένα σύνολο από περιγράφεται σαν ένα σύνολο από αφαιρετικές αφαιρετικές

μεθόδουςμεθόδους/λειτουργίες/λειτουργίες, δηλαδή σαν ένας αριθμός υπογραφών., δηλαδή σαν ένας αριθμός υπογραφών.

• Οι αφαιρετικές αυτές μέθοδοι προσδιορίζουν μια Οι αφαιρετικές αυτές μέθοδοι προσδιορίζουν μια συμπεριφοράσυμπεριφορά, η οποία , η οποία υποστηρίζεται ή υλοποιείταιυποστηρίζεται ή υλοποιείται από κάποιο στοιχείο (κλάση, πακέτο, από κάποιο στοιχείο (κλάση, πακέτο, component) component) του μοντέλουτου μοντέλου

• Το Το interface interface παριστάνεται σχηματικά σαν παριστάνεται σχηματικά σαν ένας μικρός κύκλος με ένας μικρός κύκλος με κάποιο όνομα κάποιο όνομα που συνδέεται με το στοιχείο του μοντέλου που το υποστηρίζει ή το υλοποιεί

• Το προγραμματιστικό ισοδύναμο είναι τα OLE/COM ή τα Java interfaces, όπου ένα interface μπορεί να περιγραφεί ανεξαρτήτως κάποιας κλάσης καί στη συνέχεια κάποιες κλάσεις (ή components ή πακέτα) μπορούν να επιλέξουν να το υλοποιήσουν

Κλάση ΑΚλάση Α Κλάση ΒΚλάση Β

Κλάση ΓΚλάση Γ

StorableStorable

RunnableRunnable

«Interface»«Interface»RunnableRunnable{abstract}{abstract}

Run(){abstract}Run(){abstract}

«Interface»«Interface»StorableStorable{abstract»{abstract»

Load() {abstract}Load() {abstract}save(){abstract}save(){abstract}

• Τα Τα interfaces interfaces προσδιορίζονται προσδιορίζονται σαν κλάσεις με το στερεότυπο «σαν κλάσεις με το στερεότυπο «interfaceinterface» και » και περιέχουνπεριέχουν τις τις abstract abstract λειτουργίες που πρέπει να υλοποιήσουν οι κλάσεις.λειτουργίες που πρέπει να υλοποιήσουν οι κλάσεις.• H κλάση Α υλοποιεί τα H κλάση Α υλοποιεί τα interface Runnable interface Runnable και και Storage. Storage. • H H κλάση Γ υλοποιεί το κλάση Γ υλοποιεί το interface Runnable.interface Runnable.• H H Β χρησιμοποιεί το Β χρησιμοποιεί το interface Runnable interface Runnable και και Storage Storage από την Α και το από την Α και το Runnable Runnable από από τη Γ.τη Γ.• Επιτρέπεται η κληρονομικότητα μεταξύ των Επιτρέπεται η κληρονομικότητα μεταξύ των interfacesinterfaces

Σχηματικό παράδειγμα ενός Σχηματικό παράδειγμα ενός interfaceinterface

RunnableRunnable

5.3 ΠAKETA (Packages) 5.3 ΠAKETA (Packages)

Ορίζεται Ορίζεται σαν ένας μηχανισμός γενικού σκοπού για οργάνωση στοιχείων σε σαν ένας μηχανισμός γενικού σκοπού για οργάνωση στοιχείων σε σημασιολογικές ομάδεςσημασιολογικές ομάδες

TTα πακέτα έχουν νόημα κατά τη διάρκεια της μοντελοποίησης. Δεν α πακέτα έχουν νόημα κατά τη διάρκεια της μοντελοποίησης. Δεν μεταφράζονται σε εκτελέσιμο κώδικα.μεταφράζονται σε εκτελέσιμο κώδικα.

Οι επιτρεπόμενες συσχετίσεις ανάμεσα στα πακέτα είναι Οι επιτρεπόμενες συσχετίσεις ανάμεσα στα πακέτα είναι εξάρτησηεξάρτηση, , ραφινάρισμα ραφινάρισμα ((refinement) refinement) και γενίκευσηκαι γενίκευση

Το πακέτο έχει ομοιότητες με την συνάθροιση (Το πακέτο έχει ομοιότητες με την συνάθροιση (aggregation). Aaggregation). Aν το πακέτο ν το πακέτο κατέχει τα περιεχόμενα του, τότε κατέχει τα περιεχόμενα του, τότε είναι μια είναι μια σύνθετη συνάθροισησύνθετη συνάθροιση (composition (composition aggregation) ,aggregation) ,ενώ ενώ αν αναφέρεται στα περιεχόμενά του (δηλαδή εισάγει στοιχεία αν αναφέρεται στα περιεχόμενά του (δηλαδή εισάγει στοιχεία από άλλα πακέτα) είναι μια από άλλα πακέτα) είναι μια διαμοιραζόμενη συνάθροιση διαμοιραζόμενη συνάθροιση ((shared aggregation)shared aggregation)

Πολλές φορές χρησιμοποιείται ο όρος ΥΠΟΣΥΣΤΗΜΑ αντί γιά τον όρο πακέτοΠολλές φορές χρησιμοποιείται ο όρος ΥΠΟΣΥΣΤΗΜΑ αντί γιά τον όρο πακέτο

Υποσύστημα ΓΥποσύστημα Γ

Υποσύστημα ΕΥποσύστημα Ε

Υποσύστημα ΒΥποσύστημα Β

Ύποσύστημα ΑΎποσύστημα Α

Υποσύστημα ΔΥποσύστημα Δ

Το υποσύστημα Ε εξαρτάται από το υποσύστημα Β. Το υποσύστημα Γ εξαρτάται από τα υπο-Το υποσύστημα Ε εξαρτάται από το υποσύστημα Β. Το υποσύστημα Γ εξαρτάται από τα υπο-συστήματα Β και Δ.Τα υποσυστήματα Β, Γ και Ε είναι στο εσωτερικό του υποσυστήματος Α.συστήματα Β και Δ.Τα υποσυστήματα Β, Γ και Ε είναι στο εσωτερικό του υποσυστήματος Α.Όλα τα υποσυστήματα εκπροσωπούνται από πακέτα. Όλα τα υποσυστήματα εκπροσωπούνται από πακέτα.

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

ZZ

WW

BB W::ZW::Z

AA

To πακέτο Ζ (που βρίσκεται μέσα στο πακέτο To πακέτο Ζ (που βρίσκεται μέσα στο πακέτο W) W) εισάγεται (εισάγεται (is imported)is imported) μέσα στο πακέτο μέσα στο πακέτο A .A .Το πακέτο Β εξαρτάται από το εισαγόμενο πακέτο ΖΤο πακέτο Β εξαρτάται από το εισαγόμενο πακέτο Ζ

ΕΙΣΑΓΩΓΗ ΠΑΚΕΤΟΥ

Ακόμη ένα παράδειγμαΑκόμη ένα παράδειγμα

• Ένα πακέτο μπορεί να έχει ένα Ένα πακέτο μπορεί να έχει ένα interface interface που «δημοσιοποιεί» τη συμπεριφορά τουπου «δημοσιοποιεί» τη συμπεριφορά του• Το πακέτο Α υλοποιεί το Το πακέτο Α υλοποιεί το interface Iinterface I• H H κλάση κλάση S S του πακέτου Χ εξαρτάται από το Ι στο πακέτο Ατου πακέτου Χ εξαρτάται από το Ι στο πακέτο Α

Class PClass P

XX

BB DD

AA

Class SClass S

I

Η ΟΡΑΤΟΤΗΤΑ (Visibility) ΤΩΝ ΠΑΚΕΤΩΝ Κατηγορίες

Η ΟΡΑΤΟΤΗΤΑ (Visibility) ΤΩΝ ΠΑΚΕΤΩΝ Κατηγορίες

• Δημόσια ορατότηταΔημόσια ορατότητα :K:Kι άλλα στοιχεία μπορούν να δουν ι άλλα στοιχεία μπορούν να δουν και να χρησιμοποιήσουν τα περιεχόμενα του πακέτου.και να χρησιμοποιήσουν τα περιεχόμενα του πακέτου.

• Ιδιωτική ορατότητα Ιδιωτική ορατότητα :: Μόνο το πακέτο που κατέχει ένα Μόνο το πακέτο που κατέχει ένα στοιχείο ή το πακέτο που εισάγει το στοιχείο μοντέλου στοιχείο ή το πακέτο που εισάγει το στοιχείο μοντέλου μπορεί να το χρησιμοποιήσει.μπορεί να το χρησιμοποιήσει.

• Προστατευμένη ορατότητα Προστατευμένη ορατότητα :: Μόνο το πακέτο που Μόνο το πακέτο που κατέχει ή εισάγει το στοιχείο μοντέλου μπορεί να το κατέχει ή εισάγει το στοιχείο μοντέλου μπορεί να το χρησιμοποιήσει, καθώς καί άλλα πακέτα που κληρονομούν χρησιμοποιήσει, καθώς καί άλλα πακέτα που κληρονομούν από αυτό.από αυτό.

• Ορατότητα υλοποίησηςΟρατότητα υλοποίησης : : Παρόμοια με την ιδιωτική, Παρόμοια με την ιδιωτική, αλλά τα στοιχεία μοντέλου που έχουν εξάρτηση από ένα αλλά τα στοιχεία μοντέλου που έχουν εξάρτηση από ένα πακέτο δεν μπορούν να χρησιμοποιήσουν τα στοιχεία μέσα πακέτο δεν μπορούν να χρησιμοποιήσουν τα στοιχεία μέσα στο πακέτο αν αυτό έχει ορατότητα υλοποίησης.στο πακέτο αν αυτό έχει ορατότητα υλοποίησης.

5.4 Πρότυπο (Template)5.4 Πρότυπο (Template)

Γενικά χαρακτηριστικά

• Το Το template template είναι είναι μια κλάση με παραμέτρους,μια κλάση με παραμέτρους, δηλαδή μια κλάση που μια κλάση που ο οριστικός της προσδιορισμός γίνεται μέσω του ορισμού των ο οριστικός της προσδιορισμός γίνεται μέσω του ορισμού των παραμέτρων του παραμέτρων του template.template.

• OOι παράμετροι του ι παράμετροι του template template μπορεί να είναι μπορεί να είναι είτε πρωτογενείς τύποιείτε πρωτογενείς τύποι όπως ακέραιοι, όπως ακέραιοι, boolean boolean ή ακόμη ή ακόμη και κλάσειςκαι κλάσεις

• Χρησιμοποιείται γιά να ορίσει ομάδες κλάσεωνΧρησιμοποιείται γιά να ορίσει ομάδες κλάσεων

Array <Car,100> Array

ColorΑrray

T,n : integer

«bind» <Color,50>«bind» <Color,50>

ΠΑΡΑΔΕΙΓΜΑΤΑ ΤΩΝ TEMPLATES

To ΑTo Αrray rray είναι μια κλάση με παραμέτρους το είναι μια κλάση με παραμέτρους το T T (κλάση) και το (κλάση) και το n (ακέραιος). n (ακέραιος). Φαίνονται δύο στιγμιότυπα. Φαίνονται δύο στιγμιότυπα.

Το πρώτο παριστάνεται Το πρώτο παριστάνεται μόνο με το όνομα του template μόνο με το όνομα του template και τις παραμέτρουςκαι τις παραμέτρους εντός του εντός του συμβόλου κλάσης. Το δεύτερο παριστάνεται με μια συμβόλου κλάσης. Το δεύτερο παριστάνεται με μια σχέση σχέση refinementrefinement από την κλάση από την κλάση (που έχει προκύψει σαν στιγμιότυπο του (που έχει προκύψει σαν στιγμιότυπο του template) template) στο στο template.template.

6. Ποιότητα του Μοντέλου6. Ποιότητα του Μοντέλου

• TTί είναι ένα Καλό Μοντέλο;ί είναι ένα Καλό Μοντέλο;• Σχετικό με τον προς μελέτη χώροΣχετικό με τον προς μελέτη χώρο• ΣυγκεκριμένοΣυγκεκριμένο• ΣυνεπέςΣυνεπές• Πιστοποιήσιμο, ΕλέγξιμοΠιστοποιήσιμο, Ελέγξιμο• ΣυντηρήσιμοΣυντηρήσιμο

• Πώς μπορούμε να επικοινωνήσουμε με το μοντέλο;Πώς μπορούμε να επικοινωνήσουμε με το μοντέλο;• Εξυπηρετεί τον σκοπό τουΕξυπηρετεί τον σκοπό του;;• Περιέχει τα πιό σημαντικά στοιχεία;Περιέχει τα πιό σημαντικά στοιχεία;• Έχει τα κατάλληλα ονόματα;Έχει τα κατάλληλα ονόματα;• Συντονισμός των Μοντέλων Συντονισμός των Μοντέλων • Πολυπολοκότητα του ΜοντέλουΠολυπολοκότητα του Μοντέλου

ΠερίληψηΠερίληψη

• Η επιτυχημένη μοντελοποίηση δίνει λεπτομέρειες γιά το αντικείμενο Η επιτυχημένη μοντελοποίηση δίνει λεπτομέρειες γιά το αντικείμενο της μελέτηςτης μελέτης

• Γιά τη μοντελοποίηση συστημάτων χρησιμοποιούνται οι κλάσεις, τα Γιά τη μοντελοποίηση συστημάτων χρησιμοποιούνται οι κλάσεις, τα αντικείμενα και οι μεταξύ τους συσχετίσεις.αντικείμενα και οι μεταξύ τους συσχετίσεις.

• Η Η UML UML υποστηρίζει υποστηρίζει • Στατική μοντελοποίηση (με τα διαγράμματα κλάσεωνΣτατική μοντελοποίηση (με τα διαγράμματα κλάσεων καί αντικειμένων)καί αντικειμένων)• Δυναμική Μοντελοποίηση (με τα διαγράμματα καταστάσεων, Δυναμική Μοντελοποίηση (με τα διαγράμματα καταστάσεων,

ακολουθίας, αλληλεπίδρασης καί δραστηριοτήτων)ακολουθίας, αλληλεπίδρασης καί δραστηριοτήτων)• Λειτουργική Μοντελοποίηση (με τα Λειτουργική Μοντελοποίηση (με τα use case use case διαγράμματα)διαγράμματα)• Μοντελοποίηση Υλοποίησης (με τα Μοντελοποίηση Υλοποίησης (με τα component component καί καί deployment deployment

διαγράμματα)διαγράμματα)• Η Η UML UML παρέχει μηχανισμούς μοντελοποίησης, αλλά δεν εγγυάται την παρέχει μηχανισμούς μοντελοποίησης, αλλά δεν εγγυάται την

κατασκευή ενός σωστού καί ποιοτικού μοντέλουκατασκευή ενός σωστού καί ποιοτικού μοντέλου• Είναι σημαντικό να δίνεται έμφαση στην ποιότητα του μοντέλουΕίναι σημαντικό να δίνεται έμφαση στην ποιότητα του μοντέλου