Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


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

1

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

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

4 Εισαγωγή Οι κλάσεις, τα αντικείμενα καί οι μεταξύ τους συσχετίσεις είναι τα πρωταρχικά στοιχεία μοντελοποίησης στην αντικειμενοστραφή θεώρηση Οι κλάσεις, τα αντικείμενα καί οι μεταξύ τους συσχετίσεις είναι τα πρωταρχικά στοιχεία μοντελοποίησης στην αντικειμενοστραφή θεώρηση Οι κλάσεις καί τα αντικείμενα περιγράφουν τι υπάρχει μέσα στο σύστημα που περιγράφουμε Οι κλάσεις καί τα αντικείμενα περιγράφουν τι υπάρχει μέσα στο σύστημα που περιγράφουμε Οι συσχετίσεις μεταξύ τους περιγράφουν πως δομούνται το ένα συστατικό σε σχέση με το άλλο Οι συσχετίσεις μεταξύ τους περιγράφουν πως δομούνται το ένα συστατικό σε σχέση με το άλλο Η ταξινόμηση χρησιμοποιείται εδώ καί χρόνια γιά απλοποιημένη περιγραφή πολύπλοκων συστημάτων Η ταξινόμηση χρησιμοποιείται εδώ καί χρόνια γιά απλοποιημένη περιγραφή πολύπλοκων συστημάτων Όταν η υλοποίηση του συστήματος γίνεται σε μιά αντικειμενοστραφή γλώσσα, οι κλάσεις καί οι συσχετίσεις τους μεταμορφώνονται απ’ ευθείας σε κώδικα προγραμματισμού. Όταν η υλοποίηση του συστήματος γίνεται σε μιά αντικειμενοστραφή γλώσσα, οι κλάσεις καί οι συσχετίσεις τους μεταμορφώνονται απ’ ευθείας σε κώδικα προγραμματισμού.

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

6 Κλάσεις Μιά κλάση είναι μιά περιγραφή ενός τύπου αντικειμένου: περιγράφει τα χαρακτηριστικά καί τη συμπεριφορά του συγκεκριμένου τύπου αντικειμένου Μιά κλάση είναι μιά περιγραφή ενός τύπου αντικειμένου: περιγράφει τα χαρακτηριστικά καί τη συμπεριφορά του συγκεκριμένου τύπου αντικειμένου Όλα τα αντικείμενα είναι στιγμιότυπα μιάς κλάσης Όλα τα αντικείμενα είναι στιγμιότυπα μιάς κλάσης Η σχέση ενός αντικειμένου με μιά κλάση είναι παρόμοια με τη σχέση μιάς μεταβλητής με τον τύπο της μεταβλητής σε μιά γλώσσα προγραμματισμού Η σχέση ενός αντικειμένου με μιά κλάση είναι παρόμοια με τη σχέση μιάς μεταβλητής με τον τύπο της μεταβλητής σε μιά γλώσσα προγραμματισμού

7 Μοντελοποίηση συστημάτων Χρήση εννοιών καί αντικειμένων από τον πραγματικό κόσμο -> κατανοήσιμα μοντέλα Χρήση εννοιών καί αντικειμένων από τον πραγματικό κόσμο -> κατανοήσιμα μοντέλα Ένα σύστημα γιά μιά ασφαλιστική εταιρεία, πρέπει να χρησιμοποιεί αντικείμενα όπως: συμβόλαιο ασφάλειας ζωής, ασφαλιζόμενος Ένα σύστημα γιά μιά ασφαλιστική εταιρεία, πρέπει να χρησιμοποιεί αντικείμενα όπως: συμβόλαιο ασφάλειας ζωής, ασφαλιζόμενος Ένα σύστημα γιά το στρατό πρέπει να χρησιμοποιεί αντικείμενα όπως: φαντάρος, όπλο, τανκς κλπ. Ένα σύστημα γιά το στρατό πρέπει να χρησιμοποιεί αντικείμενα όπως: φαντάρος, όπλο, τανκς κλπ. Η μοντελοποίηση πρέπει να βασίζεται στα κύρια αντικείμενα του συστήματος γιά να μπορεί εύκολα να αλλάζει Η μοντελοποίηση πρέπει να βασίζεται στα κύρια αντικείμενα του συστήματος γιά να μπορεί εύκολα να αλλάζει Τα μοντέλα πρέπει να είναι: κατανοήσιμα, να προσφέρονται γιά συζήτηση, εύκολα να πιστοποιηθούν καί εύκολα να συντηρηθούν Τα μοντέλα πρέπει να είναι: κατανοήσιμα, να προσφέρονται γιά συζήτηση, εύκολα να πιστοποιηθούν καί εύκολα να συντηρηθούν

8 Διαγράμματα Κλάσεων Είναι τύπος στατικού μοντέλου Είναι τύπος στατικού μοντέλου Περιγράφουν τη στατική άποψη ενός συστήματος με κλάσεις καί συσχετίσεις Περιγράφουν τη στατική άποψη ενός συστήματος με κλάσεις καί συσχετίσεις Η διαφορά τους απ’ τα μοντέλα δεδομένων είναι ότι περιγράφουν καί συμπεριφορά Η διαφορά τους απ’ τα μοντέλα δεδομένων είναι ότι περιγράφουν καί συμπεριφορά Αποτελούν τη βάση γιά άλλα διαγράμματα που δείχνουν άλλα χαρακτηριστικά του συστήματος Αποτελούν τη βάση γιά άλλα διαγράμματα που δείχνουν άλλα χαρακτηριστικά του συστήματος Μιά κλάση υλοποιείται απ’ ευθείας σε μιά αντικειμενοστραφή γλώσσα πού υποστηρίζει άμεσα τη δομή της κλάσης Μιά κλάση υλοποιείται απ’ ευθείας σε μιά αντικειμενοστραφή γλώσσα πού υποστηρίζει άμεσα τη δομή της κλάσης

9 Διάγραμμα Κλάσεων (παράδειγμα) Ασφαλιστικήεταιρεία Συμβόλαιοασφάλειας ΆτομοΕταιρεία 0..* 1..* (or) 10..* 0..* 1..*

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

11 Διάγραμμα Αντικειμένων (παράδειγμα) Bob : Ιδιοκτήτης Bob’s PC: Υπολογιστής Name =‘Bob.j’ age = 32 Name =‘Dell 466 memory=64 memory=64

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

13 Τί είναι η ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ (1/4); Μιά κλάση είναι μιά περιγραφή ενός τύπου αντικειμένου: περιγράφει τα χαρακτηριστικά καί τη συμπεριφορά του συγκεκριμένου τύπου αντικειμένου Μιά κλάση είναι μιά περιγραφή ενός τύπου αντικειμένου: περιγράφει τα χαρακτηριστικά καί τη συμπεριφορά του συγκεκριμένου τύπου αντικειμένου Όλα τα αντικείμενα είναι στιγμιότυπα μιάς κλάσης Όλα τα αντικείμενα είναι στιγμιότυπα μιάς κλάσης Η σχέση ενός αντικειμένου με μιά κλάση είναι παρόμοια με τη σχέση μιάς μεταβλητής με τον τύπο της μεταβλητής σε μιά γλώσσα προγραμματισμού Η σχέση ενός αντικειμένου με μιά κλάση είναι παρόμοια με τη σχέση μιάς μεταβλητής με τον τύπο της μεταβλητής σε μιά γλώσσα προγραμματισμού

14 Τί είναι η ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ (2/4); Οι κλάσεις χρησιμοποιούνται γιά τη μοντελοποίηση καί περιγραφή συστημάτων καί γιά την ταξινόμηση αντικειμένων που υπάρχουν στον πραγματικό κόσμο Οι κλάσεις χρησιμοποιούνται γιά τη μοντελοποίηση καί περιγραφή συστημάτων καί γιά την ταξινόμηση αντικειμένων που υπάρχουν στον πραγματικό κόσμο Σκεφτείτε τον Δαρβίνο που χρησιμοποίησε κλάσεις γιά να περιγράψει το ανθρώπινο είδος Σκεφτείτε τον Δαρβίνο που χρησιμοποίησε κλάσεις γιά να περιγράψει το ανθρώπινο είδος Γιά να περιγράψει τη θεωρία του περί εξέλιξης, ταξινόμησε τις κλάσεις σε ιεραρχίες Γιά να περιγράψει τη θεωρία του περί εξέλιξης, ταξινόμησε τις κλάσεις σε ιεραρχίες Η τεχνική της δημιουργίας ιεραρχίας υπάρχει καί στην αντικειμενοστραφή μοντελοποίηση καί προγραμματισμό Η τεχνική της δημιουργίας ιεραρχίας υπάρχει καί στην αντικειμενοστραφή μοντελοποίηση καί προγραμματισμό

15 Τί είναι η ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ (3/4); Μιά κλάση μπορεί να περιγράφει αντικείμενα οποιουδήποτε συστήματος: πληροφοριακό σύστημα, επιχειρησιακό σύστημα, τεχνικό σύστημα, κατανεμημένο σύστημα, λογισμικό κλπ. Μιά κλάση μπορεί να περιγράφει αντικείμενα οποιουδήποτε συστήματος: πληροφοριακό σύστημα, επιχειρησιακό σύστημα, τεχνικό σύστημα, κατανεμημένο σύστημα, λογισμικό κλπ. Παραδείγματα κλάσεων σε πληροφοριακά ή επιχειρησιακά συστήματα είναι: πελάτης, συμφωνία, τιμολόγιο, δελτίο αποστολής Παραδείγματα κλάσεων σε πληροφοριακά ή επιχειρησιακά συστήματα είναι: πελάτης, συμφωνία, τιμολόγιο, δελτίο αποστολής

16 Τί είναι η ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ (4/4); Παραδείγματα κλάσεων σε τεχνικά συστήματα: Παραδείγματα κλάσεων σε τεχνικά συστήματα: sensor, display, I/O card, engine, button, control class sensor, display, I/O card, engine, button, control class Παραδείγματα κλάσεων γιά system software: Παραδείγματα κλάσεων γιά system software: file, executable program, device, icon, window, scrollbar file, executable program, device, icon, window, scrollbar

17 Ερωτήματα γιά εύρεση κλάσεων Υπάρχει πληροφορία που θα πρέπει να περιγραφεί, αναλυθεί ή αποθηκευτεί ; Υπάρχει πληροφορία που θα πρέπει να περιγραφεί, αναλυθεί ή αποθηκευτεί ; Υπάρχουν εξωτερικά συστήματα τα οποία αλληλεπιδρούν με το σύστημά μας ; Υπάρχουν εξωτερικά συστήματα τα οποία αλληλεπιδρούν με το σύστημά μας ; Υπάρχουν πρότυπα, βιβλιοθήκες κλάσεων ή άλλα συστατικά από προηγούμενες μελέτες; Υπάρχουν πρότυπα, βιβλιοθήκες κλάσεων ή άλλα συστατικά από προηγούμενες μελέτες; Υπάρχουν περιφερειακά που πρέπει να διαχειριστεί το σύστημα ; Υπάρχουν περιφερειακά που πρέπει να διαχειριστεί το σύστημα ; Ποιος είναι ο ρόλος των διαφόρων χρηστών στο σύστημα ; Ποιος είναι ο ρόλος των διαφόρων χρηστών στο σύστημα ;

18 Αναπαράσταση κλάσης στη UML Name Attributes Operations

19 Αυτοκίνητο αριθμ.πινακίδαςμοντέλοταχύτητακατεύθυνση ΠΑΡΑΔΕΙΓΜΑ ΚΛΑΣΗΣ και ΑΝΤΙΚΕΙΜΕΝΟΥ Name Attribute Operation ΞεκίναΕπιτάχυνεΦρέναρε Αfro΄s car: Αυτοκίνητο YIX 5831 Renault Clio 140 km Βορειοδυτική

20 Χαρακτηριστικά (attributes) κλάσεων l H γενική περιγραφή ενός χαρακτηριστικού είναι : ορατότητα όνομα : τύπος=αρχική τιμή {property string} π.χ. +κατάσταση: Κατάσταση = απλήρωτο {απλήρωτο, πληρωμένο} l Μόνο το όνομα καί ο τύπος είναι υποχρεωτικά (αν η ανάπτυξη γίνει σε γλώσσα που δεν υποστηρίζει τύπους, ούτε ο τύπος είναι υποχρεωτικός) l Μπορεί να είναι πρωταρχικός τύπος όπως ακέραιος, πραγματικός, boolean, κ.λ.π. Μπορεί να είναι μιά κλάση αντικειμένων l Τύπος: Μπορεί να είναι πρωταρχικός τύπος όπως ακέραιος, πραγματικός, boolean, κ.λ.π. Μπορεί να είναι μιά κλάση αντικειμένων l Περιγράφει αν το χαρακτηριστικό είναι ορατό και αν μπορούν να αναφερθούν σε αυτό άλλες κλάσεις, εκτός από αυτή στην οποία ορίζεται (- + #). l Ορατότητα: Περιγράφει αν το χαρακτηριστικό είναι ορατό και αν μπορούν να αναφερθούν σε αυτό άλλες κλάσεις, εκτός από αυτή στην οποία ορίζεται (- + #). l Χαρακτηριστικό κλάσης: l Αφορά την κλάση καί όχι κάποιο συγκεκριμένο αντικείμενο. Η τιμή του είναι κοινή για όλα τα αντικείμενα. Υφίσταται χωρίς να υπάρχουν στιγμιότυπα της κλάσης. Δηλώνεται με υπογράμμιση. (Η UML παρέχει τη δυνατότητα να δηλώσουμε άν το χαρακτηριστικό παράγεται από άλλα χαρακτηριστικά ή άν είναι προαιρετικό)

21 Τιμολόγιο Τιμολόγιο + ποσό: Πραγματικός + ημερομηνία: Ημερομηνία=Τρέχουσα + πελάτης : Συμβολοσειρά - διοικητής:Συμβολοσειρά=‘Ανειδίκευτος’ Το σύμβολο μείον σημαίνει ότι το χαρακτηριστικό είναι ιδιωτικό (private), δηλαδή δεν μπορεί να χρησιμοποιηθεί και δεν είναι ορατό από άλλες κλάσεις. Το αντίθετο υποδηλώνει το σύμβολο συν το οποίο προσδιορίζει δημόσιο (public) χαρακτηριστικό. Το σύμβολο # δηλώνει ότι το χαρακτηριστικό είναι προστατευόμενο (protected). Μια κλάση με ιδωτικά, δημόσια ιδιοχαρακτηριστικά και εξ ορισμού τιμές (παράδειγμα)

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

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

24 Mέθοδοι (Λειτουργίες) κλάσεων Οι μέθοδοι χρησιμοποιούνται για να διαχειριζόμαστε τα χαρακτηριστικά ή να εκτελούμε συγκεκριμένες ενέργειες. Οι μέθοδοι χρησιμοποιούνται για να διαχειριζόμαστε τα χαρακτηριστικά ή να εκτελούμε συγκεκριμένες ενέργειες. Η γενική περιγραφή μιας μεθόδου (υπογραφή της μεθόδου) είναι : Η γενική περιγραφή μιας μεθόδου (υπογραφή της μεθόδου) είναι : ορατότητα όνομα (λίστα παραμέτρων): τύπος επιστροφής {property string} Οι μέθοδοι περιγράφουν τι υπηρεσίες προσφέρει η κάθε κλάση και κάποιες από αυτές παρέχουν την κατάλληλη διασύνδεση. Οι μέθοδοι περιγράφουν τι υπηρεσίες προσφέρει η κάθε κλάση και κάποιες από αυτές παρέχουν την κατάλληλη διασύνδεση. Οι μέθοδοι μπορούν: Οι μέθοδοι μπορούν: Να παίρνουν πληροφορίες Να παίρνουν πληροφορίες Nα ενημερώνουν Nα ενημερώνουν Να κάνουν κάποιες ενέργειες πάνω στο αντικείμενο ή/καί να καλούν άλλα αντικείμενα Να κάνουν κάποιες ενέργειες πάνω στο αντικείμενο ή/καί να καλούν άλλα αντικείμενα

25 Παράδειγμα κλάσης με διάφορες μεθόδους Αυτοκίνητο + αρ.πινακίδας : Συμβολοσειρά - δεδομένα : Δεδομένα_Αυτοκινήτου + ταχύτητα : Ακέραιος + κατεύθυνση : Κατεύθυνση + οδήγησε (ταχύτητα : ακέραιος, κατεύθυνση : Κατεύθυνση) + πάρε_Δεδομένα ( ) : Δεδομένα_Αυτοκινήτου οδήγησε πάρε_Δεδομένα Η μέθοδος οδήγησε δέχεται δύο παραμέτρους, ταχύτητα και κατεύθυνση. Η μέθοδος πάρε_Δεδομένα έχει έναν τύπο επιστροφής, Δεδομένα_Αυτοκινήτου.

26 Παράδειγμα κλάσης με μέθοδο κλάσης Σχήμα μέγεθος: Μέγεθος θέση: Θέση μετρητήςΣχημάτων: Ακέραιος σχεδίασε() διάβασεΜετρητή(): Ακέραιος

27 Παράδειγμα κλάσης με εξ ορισμού τιμές στις παραμέτρους των λειτουργιών Figure size: Size pos: Position + draw () + resize(percentX :Integer =25; percentY :Integer=25) + returnPos() : Position Call figure.resize(10,10) percentX=10, percentY=10 figure.resize(37) percentX=37, percentY =25 figure.resize ( ) percentX=25, percentY = 25

28 3. Σχέσεις μεταξύ Κλάσεων 3.0 Ορισμοί 3.1 Συσχέτιση (Association) 3.2 Γενίκευση (Generalization) 3.3 Εξάρτηση (Dependency) 3.4 Ανάλυση/Εκλέπτυνση (Refinement)

29 3.0 Ορισμοί 4 Συσχέτιση (association) : είναι μια σημασιολογική. 4 Συσχέτιση (association) : είναι μια σημασιολογική σχέση μεταξύ των αντικειμένων δύο ή περισσότερων κλάσεων. 4 Γενίκευση (generalization) : είναι η σχέση ανάμεσα σ’ένα πιο γενικό και σ’ένα πιο εξειδικευμένο στοιχείο.Το ειδικό στοιχείο θα πρέπει να περιέχει μόνο επιπρόσθετες πληροφορίες. 4 Εξάρτηση (dependency) : σχέση ανάμεσα σε ανεξάρτητο κι εξαρτημένο στοιχείο.Μια ενδεχόμενη αλλαγή στο ανεξάρτητο στοιχείο θα επηρεάσει το εξαρτημένο στοιχείο. 4 Εκλέπτυνση/Ανάλυση (refinement) : σχέση ανάμεσα σε δύο περιγραφές του ίδιου πράγματος, αλλά σε διαφορετικό επίπεδο ανάλυσης.

30 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)

31 ΚΑΝΟΝΙΚΗ ΣΥΣΧΕΤΙΣΗ (Normal association) (Normal association)Άτομο Αυτοκίνητο 1..* κατέχει 0..* κατέχεται από Ένα άτομο κατέχει πολλά (από μηδέν εως πολλά) αυτοκίνητα. Ένα αυτοκίνητο ανήκει σε πολλά (ένα ή πολλά ) άτομα. Χαρακτηριστικό σε μια σύνδεση αποτελεί η πολλαπλότητα δηλαδή ο αριθμός που δηλώνει το πλήθος των αντικειμένων που συνδέονται

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

33 Πολλαπλότητα (Multiplicity) Συσχετίσεων Ένας οποιοσδήποτε αριθμός “*” Ένας οποιοσδήποτε αριθμός “*” Ένα εύρος που καθορίζεται από το “..” Ένα εύρος που καθορίζεται από το “..” Πιθανοί αριθμοί που διαχωρίζονται με κόμμα Πιθανοί αριθμοί που διαχωρίζονται με κόμμα Το default είναι 1. Ακριβώς Ένα: 1  0: * ή (0..*) 0  1: 0..1 σταθερός αριθμός (π.χ. 3): 3 εύρος (π.χ. 3 ή περισσότερα): 3..* εύρος (π.χ. 3 έως και 6): 3..6 απαρίθμηση (π.χ. 3,6,7,8,9): 3,6..9

34 Πολιτικήασφάλισης ΣυμβόλαιοασφάλισηςΠελάτηςΑσφαλιστικήεταιρεία έχει Αναφέρεται σε έχει Αναφέρεταισε έχει Εκφράζεται σ’ένα εκφράζει 1 0..* 1..* 0..* 1 1..* ΔΙΑΓΡΑΜΜΑ ΚΛΑΣΕΩΝ (παράδειγμα)

35 ΔΙΑΓΡΑΜΜΑ ΚΛΑΣΕΩΝ ΚΑΙ ΔΙΑΓΡΑΜΜΑ ΑΝΤΙΚΕΙΜΕΝΩΝ (παράδειγμα) χρησιμοποιεί 0..*1..* Ιδιοκτήτης Υπολογιστής Name : string age : Integer Name : String memory: Integer Bob : Ιδιοκτήτης Bob’s PC: Υπολογιστής Name =‘Bob.j’ age = 32 Name =‘Dell 466 memory=64 memory=64 Ένα διάγραμμα αντικειμένων αντικειμένων περιγράφει τα στιγμιότυπα των κλάσεων

36 Αναδρομική συσχέτιση (recursive association) Υπάρχει η δυνατότητα συσχέτισης μιάς κλάσης με τον εαυτό της. Αποτελεί κι αυτή μιά σημασιολογική σύνδεση,μεταξύ όμως αντικειμένων της ίδιας κλάσης Υπάρχει η δυνατότητα συσχέτισης μιάς κλάσης με τον εαυτό της. Αποτελεί κι αυτή μιά σημασιολογική σύνδεση,μεταξύ όμως αντικειμένων της ίδιας κλάσης Κόμβος Συνδέει * *

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

38 ΑυτοκίνητοΆτομο οδηγεί * * Αυτοκίνητο εταιρείας οδηγός Ένα άτομο παίζει το ρόλο ενός οδηγού κι ένα αυτοκίνητο παίζει το ρόλο του αυτοκινήτου εταιρείας στα πλαίσια της συσχέτισης μεταξύ των αντίστοιχων κλάσεων. Ένα αυτοκίνητο μπορεί να παίζει κι άλλους ρόλους ρόλους όπως το ρόλο του ασθενοφόρου, αυτοκινήτου αστυνομίας κτλ. Οι ρόλοι αφορούν τις συσχετίσεις καί είναι προεραιτικοί. Δεν αποτελούν μέρος των κλάσεων. Ρόλοι σε μιά συσχέτιση

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

40 ΠΡΟΣΔΙΟΡΙΣΙΜΗ ΣΥΣΧΕΤΙΣΗ (Qualified Association) Canvas Figure Figure.id * προσδιοριστής Ο προσδιοριστής είναι ένα ή περισσότερα χαρακτηριστικά της κλάσης   οι τιμές των οποίων δημιουργούν ξένες μεταξύ τους ομάδες στη σχετιζόμενη κλάση   τις περισσότερες φορές μειώνουν την πολλαπλότητα σε 1 Χρησιμοποιείται σε συσχετίσεις 1:Μ ή Ν:Μ καί ουσιαστικά μετατρέπει τη συσχέτιση σε 1:1

41 ΣΥΣΧΕΤΙΣΗ ΔΙΑΖΕΥΞΗΣ (OR-Association) Ασφαλιστικήεταιρεία Συμβόλαιοασφάλειας ΆτομοΕταιρεία 0..* 1..* {or} 10..* 0..* 1..* Η συσχέτιση διάζευξης: -θέτει περιορισμό σε δύο ή περισσότερες συσχετίσεις -εξασφαλίζει ότι μόνο μια από τις συσχετίσεις είναι έγκυρη κάθε φορά

42 ΤΑΞΙΝΟΜΗΜΕΝΗ ΣΥΣΧΕΤΙΣΗ (Οrdered Association) ΣυμβόλαιοΑσφάλειας Πελάτης 0..* 1..* {ταξινομημένο κατά αύξουσα σειρά χρόνου} Πολλές φορές είναι απαραίτητο να προσδιορισθεί κάποια συγκεκριμένη σειρά ανάμεσα στ’αντικείμενα. Αυτό φανερώνεται τοποθετώντας {ταξινομημένο } ανάμεσα στους συνδέσμους, και κοντά στην κλάση του αντικειμένου που Ταξινομείται. Το default είναι μη ταξινομημένο.

43 ΚΛΑΣΗ ΣΥΣΧΕΤΙΣΗΣ (1/3) (Association class) Ουρά Έλεγχοςανελκυστήρα ανελκυστήρας Κουμπί * 4 Η κλάση συσχέτισης Ουρά μπορεί να επεκταθεί με διάφορες λειτουργίες όπως πρόσθεση αιτήσεων στην ουρά,ανάγνωση και μετακίνηση μηνυμάτων από την ουρά. Αν προστίθενται αιτήσεων στην ουρά,ανάγνωση και μετακίνηση μηνυμάτων από την ουρά. Αν προστίθενται λειτουργίες ή γνωρίσματα στην κλάση συσχέτισης, αυτά αναπαρίστανται όπως σε λειτουργίες ή γνωρίσματα στην κλάση συσχέτισης, αυτά αναπαρίστανται όπως σε μια κανονική κλάση μια κανονική κλάση

44 ΚΛΑΣΗ ΣΥΣΧΕΤΙΣΗΣ (2/3) (Association class) ä Απαραίτητη σε περιπτώσεις συσχετίσεων M:N ä Αυξάνει την ευελιξία σε περίπτωση συσχετίσεων 1:1 και 1:N UserAppointment 1..* * Participation isRelocatable Company name address Person name socSec# address loan position 1* Employment loan position

45 ΚΛΑΣΗ ΣΥΣΧΕΤΙΣΗΣ (3/3) (Association class) Person Project Employment qualificationProfile hours dailyRate 11 * * Person Project Employment qualificationProfile hours dailyRate * * Κάποιος μπορεί να έχει πάνω από μία σχέσεις employment για το ίδιο project. ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ  ΚΛΑΣΗ ΣΥΣΧΕΤΙΣΗΣ

46 TΡΙΑΔΙΚΗ ΣΥΣΧΕΤΙΣΗ (Ternary association) ΑσφαλιστικήεταιρείαΣυμβόλαιοασφάλισης Πελάτης Πολιτικήασφάλισης 1..* * 1 0..* Η τριαδική (Ν-αδική) συσχέτιση συσχετίζει τρεις (ή Ν) κλάσεις. Όπως φαίνεται από το σχήμα ο πελάτης μπορεί να έχει μηδέν εως πολλά συμβόλαια ασφάλισης, ασφάλισης, κάθε ένα από τα οποία έχει μηδέν εως μία πολιτική ασφάλισης ασφάλισης και σχετίζεται με μια ασφαλιστική εταιρεία. ασφαλιστής ασφαλιζόμενος

47 ΣΥΝΑΘΡΟΙΣΗ (ΑGGREGATION) Η συνάθροιση είναι μία ειδική περίπτωση συσχέτισης με τις ακόλουθες ιδιότητες: Μεταβατικότητα: Αν τα αντικείμενα της κλάσης C είναι part-of των αντικειμένων της κλάσης B και η B είναι part-of Α ΤΟΤΕ η C είναι part-of Α Αντι-συμμετρικότητα: Αν η Β είναι part-of Α ΤΟΤΕ η Α δεν είναι part-of B

48 Στόλος Πολεμικά πλοία περιέχει * H συνάθροιση εκφράζεται με τις λέξεις “Περιέχει”, “Αποτελείται-από” “Αποτελείται-από” ή “Είναι “Είναι μέρος του (part (part of)” Ο στόλος αποτελείται από πολλά πλοία. Ορισμένα πλοία μπορούν να μετακινηθούν, ο στόλος όμως εξακολουθεί να υφίσταται. υφίσταται. Όπως το ίδιο συμβαίνει κι αν προσθέσουμε κάποια πλοία. Τα τμήματα (πλοία) συνθέτουν το σύνολο (στόλος). Τα τμήματα υπάρχουν, έστω κι άν το σύνολο καταστραφεί. ΚΑΝΟΝΙΚΗ ΣΥΝΑΘΡΟΙΣΗ (NORMAL AGGREGATION)

49 ΔΙΑΜΟΙΡΑΖΟΜΕΝΗ ΣΥΝΑΘΡΟΙΣΗ (SHARED AGGREGATION) ΟμάδαΆτομο Αποτελείται από * * Mία συνάθροιση είναι διαμοιραζόμενη, αν η πολλαπλότητα στο μέρος του όλου είναι παραπάνω από 1. Τα μέρη είναι ανεξάρτητα του όλου καί μπορούν να αποτελούν μέρη καί άλλων αντικειμένων του ίδιου τύπου. Το παραπάνω μοντέλο αποτελεί ένα παράδειγμα διαμοιραζόμενης συνάθροισης, όπου τα άτομα είναι τα διαμοιραζόμενα μέρη. Μια ομάδα αποτελείται από διάφορα μέλη. Ένα άτομο μπορεί να είναι μέλος πολλών ομάδων. Yλοποιείται όπως καί η συσχέτιση, δηλαδή με κάποιο reference από το μέρος στο όλον.

50 ΣΥΝΑΘΡΟΙΣΗ ΣΥΝΘΕΣΗΣ (Composition Aggregation). Παρουσιάζει ισχυρή ιδιοκτησία των τμημάτων της. Τα τμήματα που «ζουν» μέσα στο σύνολο θα καταστραφούν, όταν καταστραφεί και το σύνολο. Η πολλαπλότητα στην πλευρά του συνόλου (wholeside) πρέπει να είναι 0..1, ενώ η πολλαπλότητα στην πλευρά τμήματος (partside) είναι οποιοδήποτε διάστημα

51 ΣΥΝΑΘΡΟΙΣΗ ΣΥΝΘΕΣΗΣ (Composition Aggregation) 1ος τρόπος απεικόνισης Παράθυρο Κείμενο Κουμπί Μενού * * * Το διαμάντι δείχνει τη συνάθροιση σύνθεσης.Το παράθυρο περιέχει πολλά μενού, κουμπιά και κείμενα.Όλοι οι τύποι της συνάθροισης μπορούν να έχουν ένα όνομα.

52 ΣΥΝΑΘΡΟΙΣΗ ΣΥΝΘΕΣΗΣ (Composition Aggregation) 2ος τρόπος απεικόνισης Παράθυρο Κείμενο Κουμπί Μενού περιέχει * * * Αν υπάρχουν περισσότερα από ένα τμήματα του ίδιου συνόλου, αυτά μπορούν να σχεδιαστούν σαν ένα δέντρο συγχωνεύοντας την κατάληξή τους σ’ένα κοινό τέλος.Μια συνάθροιση έχει μόνο ένα όνομα ρόλου κι αυτό είναι στην πλευρά του τμήματος.

53 Laurel and Hardy Movie Actor Stanlaurel Oliver Hardy Laurel and Hardie Movie Oliver Hardy 1 Stan Laure 1 Actor Laurel and Hardy Movie Oliver Hardy:Actor Stan Laurel:Actor ΣΥΝΑΘΡΟΙΣΗ ΣΥΝΘΕΣΗΣ (Composition Aggregation) 3ος τρόπος απεικόνισης Παράδειγμα: μιά ταινία με τους Laurel and Hardie, πάντα περιλαμβάνει τους ρόλους των Oliver Hardy and Stan Laurel

54 ΣΥΝΑΘΡΟΙΣΗ ΣΥΝΘΕΣΗΣ (Composition Aggregation) 4ος τρόπος απεικόνισης Κείμενο Κουμπί Μενού Παράθυρο * * * Οι κλάσεις των τμημάτων βρίσκονται μέσα στην κλάση του συνόλου. Η πολλαπλότητα των τμημάτων σημειώνεται σε κάθε κλάση στην πάνω δεξιά γωνία

55 Παράθυρομηνύματος ΚουμπίΕικονίδιο ok cancel information Παράθυρο μηνύματος ok [0..1] : Button cancel [0..1] : Button information[0..1] :Icon Το παράθυρο μηνυμάτων αποτελείται από μηδέν ή ένα OK κουμπιά,μηδέν ή ένα cancel κουμπιά ή ένα εικονίδιο πληροφορίας.Μια πληροφορίας.Μια συνάθροιση σύνθεσης αναπαρίσταται όπως τα γνωρίσματα σε μια κλάση.Η κλάση.Η πολλαπλότητα φαίνεται μέσα στις αγκύλες. ΔΙΑΓΡΑΜΜΑ ΣΥΝΑΘΡΟΙΣΗΣ ΣΥΝΘΕΣΗΣ (Composition Aggregation) ακόμη ένα παράδειγμα

56 3. Σχέσεις μεταξύ Κλάσεων 3.0 Ορισμοί 3.1 Συσχέτιση (Association) 3.2 Γενίκευση-Εξειδίκευση (Generalization-Specialization) 3.3 Εξάρτηση (Dependency) 3.4 Ραφινάρισμα/Εκλέπτυνση (Refinement)

57 ä Είναι η σχέση μεταξύ ενός πιο γενικού και ενός πιο εξειδικευμένου στοιχείου ä To πιο εξειδικευμένο στοιχείο περιέχει επιπλέον πληροφορία ä Επιτρέπει να γίνεται εξειδίκευση των στοιχείων σε άλλα πιο εξειδικευμένα, συνεπώς ειδικές περιπτώσεις και επεκτάσεις αντιμετωπίζονται ως διαφορετικά στοιχεία ä Χρησιμοποιείται για κλάσεις, use cases και πακέτα. Στις συσχετίσεις επιτρέπει τον περιορισμό των πιθανών συνδέσμων ανάμεσα σε αντικείμενα των οποίων οι υπερκλάσεις είναι συσχετισμένες. 3.2 ΓΕΝΙΚΕΥΣΗ-ΕΞΕΙΔΙΚΕΥΣΗ (GENERALIZATION-SPECIALIZATION)

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

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

60 Όχημα ΑυτοκίνητοΒάρκαΦορτηγό Ίδιο μοντέλο με το προηγούμενο,αλλά η κληρονομικότητα παίρνει τη μορφή ενός δέντρου (μόνο μ’ένα τρίγωνο) ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΟΗΓΟΥΜΕΝΟΥ ΜΟΝΤΕΛΟΥ ΜΕ ΤΗ ΜΟΡΦΗ ΔΕΝΤΡΟΥ

61 Γενίκευση με περιορισμό (Constrained generalization) Οverlapping: Άδεια γιά Πολλαπλή Κληρονομικότητα Οverlapping: Άδεια γιά Πολλαπλή Κληρονομικότητα Disjoint: Απαγόρευση Πολλαπλής Κληρονομικότητας (default) Disjoint: Απαγόρευση Πολλαπλής Κληρονομικότητας (default) Complete: Απαγόρευση περαιτέρω εξειδίκευσης των κλάσεων Complete: Απαγόρευση περαιτέρω εξειδίκευσης των κλάσεων Incomplete: Άδεια περαιτέρω εξειδίκευσης των κλάσεων (default) Incomplete: Άδεια περαιτέρω εξειδίκευσης των κλάσεων (default)

62 Γενίκευση: Αναπαράσταση περιορισμών Κλάση Α Κλάση Β Κλάση Γ Κλάση Δ { περιορισμός1, περιορισμός2,... } περιορισμός2,... } Κλάση Α Κλάση Β Κλάση Γ Κλάση Δ {περιορισμός 1, περιορισμός2..} ΤΡΟΠΟΣ Α ΤΡΟΠΟΣ Β

63 ΕΠΙΚΑΛΥΨΗ ΚΑΙ ΜΗ ΣΥΝΕΝΩΣΗ (Overlapping and disjoint)Ζώον ΘηλαστικόΨάρι Αμφίβιο { overlapping} Επικάλυψη σημαίνει ότι οι υποκλάσεις επιτρέπεται να εξειδικευτούν σε μια κοινή υποκλάση (πχ Αμφίβιο), ενώ ακριβώς το αντίθετο φανερώνει η μη συνένωση (disjoint) μη συνένωση (disjoint) που είναι καί το default.

64 ΟΛΟΚΛΗΡΩΜΕΝΗ Η ΜΗ ΟΛΟΚΛΗΡΩΜΕΝΗ ΓΕΝΙΚΕΥΣΗ (Complete or incomplete generalization) Άνθρωπος ΆντραςΓυναίκα {ολοκληρωμένη} Όταν σε κάποια γενίκευση υπάρχει ο περιορισμός περιορισμός ολοκληρωμένη, σημαίνει ότι δεν μπορούν να προστεθούν νέες υποκλάσεις. To default είναι η μη ολοκληρωμένη

65 3. Σχέσεις μεταξύ Κλάσεων 3.0 Ορισμοί 3.1 Συσχέτιση (Association) 3.2 Γενίκευση (Generalization) 3.3 Εξάρτηση (Dependency) 3.4 Ανάλυση/Εκλέπτυνση (Refinement)

66 3.3 ΣΧΕΣΗ ΕΞΑΡΤΗΣΗΣ (Dependency relationship) Κλάση Α Κλάση Β «φίλη» Είναι μία σημαντική συσχέτιση μεταξύ δύο κλάσεων ή πακέτων ή use cases, etc. (δηλαδή μεταξύ δύο στοιχείων του μοντέλου UML) Mία αλλαγή στο ανεξάρτητο στοιχείο, επηρεάζει το εξαρτημένο. Παρότι δεν υπάρχει σαφής συσχέτιση μεταξύ των δύο κλάσεων, υπάρχει εξάρτηση Παραδείγματα: Μια κλάση παίρνει το αντικείμενο αντικείμενο κάποιας άλλης κλάσης σαν παράμετρο. Μιά κλάση καλεί μία μέθοδο κλάσης κλάσης μιάς άλλης κλάσης. Όταν χρησιμοποιείται μια ετικέτα όπως στο παράδειγμά μας «φίλη», είναι ένα στερεότυπο που προσδιορίζει το είδος της εξάρτησης.

67 3.4 REFINEMENT RELATIONSHIP (Σχέση ραφιναρίσματος) Κλάση ανάλυσης Κλάση σχεδιασμού Μιά συσχέτιση refinement υπάρχει μεταξύ δύο διαφορετικών αναπαραστάσεων του ίδιου στοιχείου, αλλά σε διαφορετικό επίπεδο αφαίρεσης ανάμεσα σ’ένα στοιχείο και σε μια κλάση που το υλοποιεί Επίσης χρησιμοποιείται για να μοντελοποιήσει διαφορετικές υλοποιήσεις του ίδιου πράγματος.

68 Περιεχόμενα Κεφαλαίου 1. Γενικοί Ορισμοί 2. Κλάσεις καί η Περιγραφή τους 3. Σχέσεις Μεταξύ Κλάσεων 4. Αφαιρετικές Κλάσεις 5. Προχωρημένες Έννοιες

69 Όχημα ΑυτοκίνητοΒάρκα ΣπορΕπιβατηγόΦορτηγόΙστιοπλοϊκή Μηχανοκίνητη Πλοίο Mια ιεραρχία κλάσεων για οχήματα. οχήματα. Η κλάση Αυτοκίνητο είναι υποκλάση στο όχημα, αλλά υπερκλάση στο σπορ αυτοκίνητο,στο επιβατηγό και στο φορτηγό. Μια abstract κλάση δεν επιτρέπεται να έχει αντικείμενα, αντικείμενα, χρησιμοποιείται μόνο για να κληρονομείται από τις υποκλάσεις 4. Αφαιρετική Κλάση

70 Χαρακτηριστικά αφαιρετικής μεθόδου * Δεν υπάρχει μέθοδος υλοποίησης στην κλάση που εμφανίζεται η συγκεκριμένη λειτουργία * Μια κλάση που έχει τουλάχιστον μια abstract μέθοδο, είναι μια abstract κλάση. * Αν μια κλάση, που κληρονομεί από μια κλάση που έχει τουλάχιστον μια abstract μέθοδο, δεν μπορεί να υλοποιήσει αυτές τις μεθόδους, τότε γίνεται και η ίδια μια abstract κλάση

71 Όχημα{abstract} Drive(){abstract} Aυτοκίνητο Drive() Βάρκα Drive() Drive() αρχίζει τους τροχούς Drive () αρχίζει την προπέλα Αφαιρετική κλάση καί αφαιρετική μέθοδος Παράδειγμα

72 Άτομο οδηγεί Όχημα {abstract} χρώμα Drive(){abstract} ΑυτοκίνητοΒάρκα Drive( ) Ένα άτομο οδηγά οχήματα. Όταν καλείται η μέθοδος οδήγησης, η επιλεγόμενη υλοποίηση εξαρτάται από το αν το χρησιμοποιούμενο αντικείμενο είναι αυτοκίνητο ή βάρκα.Το βάρκα.Το όχημα είναι μια abstract κλάση. Ορισμός αφαιρετικών μεθόδων από υποκλάσεις

73 Figure{abstract} #position:Pos Draw(){abstract} Group Draw() Polygon Draw( ) Figures * Παράδειγμα

74 Γενίκευση με αφαιρετική κλάση καί προσδιοριστή #position:Pos Draw(){abstract} Car Drive() Boat Drive( ) Vehicle{abstract} Drive( ) {abstract} Propulsion Propulsion

75 5. Προχωρημένες Έννοιες 5.1 Περιορισμοί καί Κανόνες Παραγωγής (Constraints and Derivation Rules) 5.2 Διασύνδεση (Interface) 5.3 Πακέτα (Packages) 5.4 Πρότυπα (Τemplates)

76 5.1 Περιορισμοί και κανόνες παραγωγής (Constraints and derivation rules) Oι περιορισμοί θέτουν τα όρια σ’ ένα μοντέλο. Παραδείγματα περιορισμών είναι η συσχέτιση διάζευξης, ταξινομημένη συσχέτιση, περιορισμοί κληρονομικότητας (οverlapping, disjoint...) κτλ. Oι περιορισμοί θέτουν τα όρια σ’ ένα μοντέλο. Παραδείγματα περιορισμών είναι η συσχέτιση διάζευξης, ταξινομημένη συσχέτιση, περιορισμοί κληρονομικότητας (οverlapping, disjoint...) κτλ. Οι κανόνες παραγωγής περιγράφουν τον τρόπο που μπορούν να προέλθουν διάφορα πράγματα, π.χ. η ηλικία ενός ατόμου (αφαίρεση ημερομηνίας γέννησης από την τρέχουσα ημερομ). Οι κανόνες παραγωγής περιγράφουν τον τρόπο που μπορούν να προέλθουν διάφορα πράγματα, π.χ. η ηλικία ενός ατόμου (αφαίρεση ημερομηνίας γέννησης από την τρέχουσα ημερομ). Οι περιορισμοί καί οι κανόνες εφαρμόζονται κυρίως σε: χαρακτηριστικά, συσχετίσεις, κληρονομικότητα, ρόλους καί χρονικούς περιορισμούς στα δυναμικά μοντέλα Οι περιορισμοί καί οι κανόνες εφαρμόζονται κυρίως σε: χαρακτηριστικά, συσχετίσεις, κληρονομικότητα, ρόλους καί χρονικούς περιορισμούς στα δυναμικά μοντέλα Η γενίκευση (generalization) έχει μόνο περιορισμούς όχι κανόνες παραγωγής (derivations). Οι περιορισμοί είναι οι τέσσερεις που προαναφέρθηκαν (overlapping, disjoint, complete, incomplete) Η γενίκευση (generalization) έχει μόνο περιορισμούς όχι κανόνες παραγωγής (derivations). Οι περιορισμοί είναι οι τέσσερεις που προαναφέρθηκαν (overlapping, disjoint, complete, incomplete)

77 Αναπαράσταση περιορισμών καί κανόνων παραγωγής Αναπαρίστανται ανάμεσα σε αγκύλες { } κοντά στο τμήμα του μοντέλου που αφορούν ή ανάμεσα σε αγκύλες { } κοντά στο τμήμα του μοντέλου που αφορούν ή ανάμεσα σε παρενθέσεις σ’ένα σημείωμα που συνδέεται με το τμήμα του μοντέλου που αφορά ανάμεσα σε παρενθέσεις σ’ένα σημείωμα που συνδέεται με το τμήμα του μοντέλου που αφορά

78 Συσχέτιση με περιορισμό Πολιτικός Πολιτικό Κόμμα {υποσύνολο} 1 Αρχηγός Κόμματος 1 1…* Μέλος του 1

79 Περιορισμοί σε Χαρακτηριστικά + amount : Real + date :Date = Current date + customer : String - number of invoices : Integer +status :Status = Unpaid {unpaid,paid} Invoice

80 Προϊόν Τιμή κόστους Τιμή πώλησης /κέρδος { κέρδος = τιμή πώλησης - τιμή κόστους } Παραγώμενο Χαρακτηριστικό καί Κανόνας Παραγωγής

81 5.2 Διασύνδεση (Interface) Γενικά χαρακτηριστικά Το Το interface περιγράφεται σαν ένα σύνολο από αφαιρετικές μεθόδους/λειτουργίες, μεθόδους/λειτουργίες, δηλαδή σαν ένας αριθμός υπογραφών. Οι Οι αφαιρετικές αυτές μέθοδοι προσδιορίζουν μια συμπεριφορά, συμπεριφορά, η οποία υποστηρίζεται ή υλοποιείται υλοποιείται από κάποιο στοιχείο (κλάση, πακέτο, component) του μοντέλου Το Το interface παριστάνεται σχηματικά σαν ένας μικρός κύκλος με κάποιο όνομα που συνδέεται με το στοιχείο του μοντέλου που το υποστηρίζει ή το υλοποιεί Το προγραμματιστικό ισοδύναμο είναι τα OLE/COM ή τα Java interfaces, όπου ένα interface μπορεί να περιγραφεί ανεξαρτήτως κάποιας κλάσης καί στη συνέχεια κάποιες κλάσεις (ή components ή πακέτα) μπορούν να επιλέξουν να το υλοποιήσουν

82 Κλάση Α Κλάση Β Κλάση Γ Storable Runnable «Interface»Runnable{abstract} Run(){abstract} «Interface»Storable{abstract» Load() {abstract} save(){abstract} Τα interfaces προσδιορίζονται σαν κλάσεις με το στερεότυπο «interface» «interface» και περιέχουν τις abstract λειτουργίες που πρέπει να υλοποιήσουν οι κλάσεις. H κλάση Α υλοποιεί τα interface Runnable και Storage. H κλάση Γ υλοποιεί το interface Runnable. H Β χρησιμοποιεί το interface Runnable και Storage από την Α και το Runnable από τη Γ. Επιτρέπεται η κληρονομικότητα μεταξύ των interfaces Σχηματικό παράδειγμα ενός interface Runnable

83 5.3 ΠAKETA (Packages) 3 Ορίζεται 3 Ορίζεται σαν ένας μηχανισμός γενικού σκοπού για οργάνωση στοιχείων σε σημασιολογικές ομάδες 3 Tα 3 Tα πακέτα έχουν νόημα κατά τη διάρκεια της μοντελοποίησης. Δεν μεταφράζονται σε εκτελέσιμο κώδικα. 3 Οι 3 Οι επιτρεπόμενες συσχετίσεις ανάμεσα στα πακέτα είναι εξάρτηση, εξάρτηση, ραφινάρισμα (refinement) (refinement) και γενίκευση 3 Το 3 Το πακέτο έχει ομοιότητες με την συνάθροιση (aggregation). (aggregation). Aν Aν το πακέτο κατέχει τα περιεχόμενα του, τότε τότε είναι μια σύνθετη συνάθροιση συνάθροιση (composition aggregation),ενώ,ενώ αν αναφέρεται στα περιεχόμενά του (δηλαδή εισάγει στοιχεία από άλλα πακέτα) είναι μια διαμοιραζόμενη συνάθροιση (shared (shared aggregation) 3 Πολλές 3 Πολλές φορές χρησιμοποιείται ο όρος ΥΠΟΣΥΣΤΗΜΑ αντί γιά τον όρο πακέτο

84 Υποσύστημα Γ Υποσύστημα Ε Υποσύστημα Β Ύποσύστημα Α Υποσύστημα Δ Το υποσύστημα Ε εξαρτάται από το υποσύστημα Β. Το υποσύστημα Γ εξαρτάται από τα υπο- συστήματα Β και Δ.Τα υποσυστήματα Β, Γ και Ε είναι στο εσωτερικό του υποσυστήματος Α. Όλα τα υποσυστήματα εκπροσωπούνται από πακέτα. ΠΑΡΑΔΕΙΓΜΑΤΑ ΠΑΚΕΤΩΝ ΚΑΙ ΟΙ ΜΕΤΑΞΥ ΤΟΥΣ ΕΞΑΡΤΗΣΕΙΣ

85 Z W BW::Z A To πακέτο Ζ (που βρίσκεται μέσα στο πακέτο W) εισάγεται (is (is imported) imported) μέσα στο πακέτο A. Το πακέτο Β εξαρτάται από το εισαγόμενο πακέτο Ζ ΕΙΣΑΓΩΓΗ ΠΑΚΕΤΟΥ

86 Ακόμη ένα παράδειγμα Ένα πακέτο μπορεί να έχει ένα interface που «δημοσιοποιεί» τη συμπεριφορά του Ένα πακέτο μπορεί να έχει ένα interface που «δημοσιοποιεί» τη συμπεριφορά του Το πακέτο Α υλοποιεί το interface I Το πακέτο Α υλοποιεί το interface I H κλάση S του πακέτου Χ εξαρτάται από το Ι στο πακέτο Α H κλάση S του πακέτου Χ εξαρτάται από το Ι στο πακέτο Α Class P X BD A Class S I

87 Η ΟΡΑΤΟΤΗΤΑ (Visibility) ΤΩΝ ΠΑΚΕΤΩΝ Κατηγορίες Δημόσια ορατότητα :Kι άλλα στοιχεία μπορούν να δουν και να χρησιμοποιήσουν τα περιεχόμενα του πακέτου. Δημόσια ορατότητα :Kι άλλα στοιχεία μπορούν να δουν και να χρησιμοποιήσουν τα περιεχόμενα του πακέτου. Ιδιωτική ορατότητα : Μόνο το πακέτο που κατέχει ένα στοιχείο ή το πακέτο που εισάγει το στοιχείο μοντέλου μπορεί να το χρησιμοποιήσει. Ιδιωτική ορατότητα : Μόνο το πακέτο που κατέχει ένα στοιχείο ή το πακέτο που εισάγει το στοιχείο μοντέλου μπορεί να το χρησιμοποιήσει. Προστατευμένη ορατότητα : Μόνο το πακέτο που κατέχει ή εισάγει το στοιχείο μοντέλου μπορεί να το χρησιμοποιήσει, καθώς καί άλλα πακέτα που κληρονομούν από αυτό. Προστατευμένη ορατότητα : Μόνο το πακέτο που κατέχει ή εισάγει το στοιχείο μοντέλου μπορεί να το χρησιμοποιήσει, καθώς καί άλλα πακέτα που κληρονομούν από αυτό. Ορατότητα υλοποίησης : Παρόμοια με την ιδιωτική, αλλά τα στοιχεία μοντέλου που έχουν εξάρτηση από ένα πακέτο δεν μπορούν να χρησιμοποιήσουν τα στοιχεία μέσα στο πακέτο αν αυτό έχει ορατότητα υλοποίησης. Ορατότητα υλοποίησης : Παρόμοια με την ιδιωτική, αλλά τα στοιχεία μοντέλου που έχουν εξάρτηση από ένα πακέτο δεν μπορούν να χρησιμοποιήσουν τα στοιχεία μέσα στο πακέτο αν αυτό έχει ορατότητα υλοποίησης.

88 5.4 Πρότυπο (Template) Γενικά χαρακτηριστικά Το template είναι μια κλάση με παραμέτρους,μια κλάση που ο οριστικός της προσδιορισμός γίνεται μέσω του ορισμού των παραμέτρων του template. Το template είναι μια κλάση με παραμέτρους, δηλαδή μια κλάση που ο οριστικός της προσδιορισμός γίνεται μέσω του ορισμού των παραμέτρων του template. Oι παράμετροι του template μπορεί να είναι είτε πρωτογενείς τύποι όπως ακέραιοι, boolean ή ακόμη και κλάσεις Oι παράμετροι του template μπορεί να είναι είτε πρωτογενείς τύποι όπως ακέραιοι, boolean ή ακόμη και κλάσεις Χρησιμοποιείται γιά να ορίσει ομάδες κλάσεων Χρησιμοποιείται γιά να ορίσει ομάδες κλάσεων

89 Array ColorΑrray T,n : integer «bind» «bind» ΠΑΡΑΔΕΙΓΜΑΤΑ ΤΩΝ TEMPLATES To Αrray Αrray είναι μια κλάση με παραμέτρους το T (κλάση) και το n (ακέραιος). Φαίνονται δύο στιγμιότυπα. Το πρώτο παριστάνεται μόνο με το όνομα του template και τις παραμέτρους παραμέτρους εντός του συμβόλου κλάσης. Το δεύτερο παριστάνεται με μια σχέση refinement refinement από την κλάση (που έχει προκύψει σαν στιγμιότυπο του template) στο template.

90 6. Ποιότητα του Μοντέλου Tί είναι ένα Καλό Μοντέλο; Tί είναι ένα Καλό Μοντέλο; Σχετικό με τον προς μελέτη χώρο Σχετικό με τον προς μελέτη χώρο Συγκεκριμένο Συγκεκριμένο Συνεπές Συνεπές Πιστοποιήσιμο, Ελέγξιμο Πιστοποιήσιμο, Ελέγξιμο Συντηρήσιμο Συντηρήσιμο Πώς μπορούμε να επικοινωνήσουμε με το μοντέλο; Πώς μπορούμε να επικοινωνήσουμε με το μοντέλο; Εξυπηρετεί τον σκοπό του; Εξυπηρετεί τον σκοπό του; Περιέχει τα πιό σημαντικά στοιχεία; Περιέχει τα πιό σημαντικά στοιχεία; Έχει τα κατάλληλα ονόματα; Έχει τα κατάλληλα ονόματα; Συντονισμός των Μοντέλων Συντονισμός των Μοντέλων Πολυπολοκότητα του Μοντέλου Πολυπολοκότητα του Μοντέλου

91 Περίληψη Η επιτυχημένη μοντελοποίηση δίνει λεπτομέρειες γιά το αντικείμενο της μελέτης Η επιτυχημένη μοντελοποίηση δίνει λεπτομέρειες γιά το αντικείμενο της μελέτης Γιά τη μοντελοποίηση συστημάτων χρησιμοποιούνται οι κλάσεις, τα αντικείμενα και οι μεταξύ τους συσχετίσεις. Γιά τη μοντελοποίηση συστημάτων χρησιμοποιούνται οι κλάσεις, τα αντικείμενα και οι μεταξύ τους συσχετίσεις. Η UML υποστηρίζει Η UML υποστηρίζει Στατική μοντελοποίηση (με τα διαγράμματα κλάσεων καί αντικειμένων) Στατική μοντελοποίηση (με τα διαγράμματα κλάσεων καί αντικειμένων) Δυναμική Μοντελοποίηση (με τα διαγράμματα καταστάσεων, ακολουθίας, αλληλεπίδρασης καί δραστηριοτήτων) Δυναμική Μοντελοποίηση (με τα διαγράμματα καταστάσεων, ακολουθίας, αλληλεπίδρασης καί δραστηριοτήτων) Λειτουργική Μοντελοποίηση (με τα use case διαγράμματα) Λειτουργική Μοντελοποίηση (με τα use case διαγράμματα) Μοντελοποίηση Υλοποίησης (με τα component καί deployment διαγράμματα) Μοντελοποίηση Υλοποίησης (με τα component καί deployment διαγράμματα) Η UML παρέχει μηχανισμούς μοντελοποίησης, αλλά δεν εγγυάται την κατασκευή ενός σωστού καί ποιοτικού μοντέλου Η UML παρέχει μηχανισμούς μοντελοποίησης, αλλά δεν εγγυάται την κατασκευή ενός σωστού καί ποιοτικού μοντέλου Είναι σημαντικό να δίνεται έμφαση στην ποιότητα του μοντέλου Είναι σημαντικό να δίνεται έμφαση στην ποιότητα του μοντέλου


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

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google