Μεθοδολογίες Προγραμματισμού ΙΙ

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Κληρονομικότητα. Εισαγωγή  Κληρονομικότητα (Inheritance) καλείται ο μηχανισμός με τον οποίο μία νέα κλάση που ονομάζεται παράγωγη (derived class) δημιουργείται.
Advertisements

Δαμιανός Χατζηαντωνίου Οικονομικό Πανεπιστήμιο Αθηνών
Μεθοδολογίες Προγραμματισμού ΙΙ Διάγραμμα Περίπτωσης Χρήσης
POINTERS, AGGREGATION, COMPOSITION. POINTERS TO OBJECTS.
Μεθοδολογίες Προγραμματισμού ΙΙ
Μεθοδολογίες Προγραμματισμού ΙΙ
Copyright ©: SAMSUNG & Samsung Hope for Youth. Με επιφύλαξη κάθε νόμιμου δικαιώματος Εκπαιδευτικό υλικό Λογισμικό: Δημιουργία εφαρμογών Επίπεδο.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΟΠΑ - Τεχνολογία Λογισμικού - Εμμ. Γιακουμάκης
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
 Αυδίκου Χριστίνα  Γιουμούκης Παναγιώτης  Κιντσάκης Θάνος  Πάπιστας Γιάννης.
Μεθοδολογίες Προγραμματισμού ΙΙ Μ Ε Τ Ρ Ι Κ Ε Σ ΑΝΤΚΕΙΜΕΝΟΣΤΡΕΦΟΥΣ ΣΧΕΔΙΑΣΗΣ Ποιότητα Λογισμικού Παναγιώτης Σφέτσος, PhD
Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος Λογισμικού - ECLIPSE JUNIT – TDD TFD + Refactoring Παναγιώτης Σφέτσος, PhD
Μηχανική Λογισμικού ΙΙ
HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ
Αρχή της ενσωμάτωσης Η εσωτερική κατάσταση ενός αντικειμένου πρέπει να είναι τροποποιήσιμη μόνο μέσω της δημόσιας διασύνδεσής του.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 4: Exceptions Εβδομάδα 4: Εξαιρέσεις [Exceptions]
Μεθοδολογίες Προγραμματισμού ΙΙ JUNIT - Test First Design
Επανάληψη βασικών αρχών του αντικειμενοστρεφούς προγραμματισμού
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
Μεθοδολογίες Προγραμματισμού ΙΙ Σχεδιαστικά Πρότυπα (1) Παναγιώτης Σφέτσος, PhD
Java A Crash Course in (Προσέγγιση μέσω UML)
ΣΥΝΑΡΤΗΣΕΙΣ.
Πρότυπα Σχεδίασης Design Patterns Μεταπτυχιακό Πρόγραμμα Σπουδών, Τμ. Εφ. Πληροφορικής.
Μοντελοποίηση συμπεριφοράς. Συμβάντα - Καταστάσεις - Μεταβάσεις Στην UML για παράσταση συμβάντων και καταστάσεων σε αντικείμενα. Συμβάν Πρόκληση λειτουργίας.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Χειμερινό Εξάμηνο (Ε') - Κωδ. Μαθήματος:
Μοντέλα Συστημάτων Παρουσιάσεις των συστημάτων των οποίων οι απαιτήσεις αναλύονται.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Κληρονομικότητα.
Μεθοδολογίες Προγραμματισμού ΙΙ Αναδόμηση Λογισμικού - 2 Software Refactoring - Εφαρμογές Παναγιώτης Σφέτσος, PhD
HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π.
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό Κλάσεις και αντικείμενα Κλάσεις και αντικείμενα Κατασκευαστές κλάσεων (constructors) Κατασκευαστές κλάσεων.
ΟΠΑ - Τεχνολογία Λογισμικού - Εμμ. Γιακουμάκης
7.9 Δρομολόγηση Δίκτυα Υπολογιστών ΙΙ.
7.8 Πρωτόκολλο DNS Δίκτυα Υπολογιστών ΙΙ.
HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π.
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό
Applets Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη δυνατότητα προβολής γραφικών και τη δυνατότητα υλοποίησης ενός γραφικού.
ΟΡΙΣΜΟΣ ΣΥΜΠΕΡΙΦΟΡΑΣ ΔΙΑΓΡΑΜΜΑTA ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ
Έλεγχος Ονομάτων (Name Control) Για ένα πρόγραμμα που αποτελείται από πολλά τμήματα κάποια από τα οποία έχουν πιθανώς γραφτεί από άλλους προγραμματιστές.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
1 Κεφάλαιο 2 Εισαγωγή στον αντικειμενοστραφή προγραμματισμό.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 9: Κληρονομικότητα. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
Παράδειγμα Εφαρμογής Σύστημα για Online Αγορές Αθανασόπουλος Γιώργος ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ.
Τεχνολογία ΛογισμικούSlide 1 Τεχνολογία Απαιτήσεων u Καθορίζει τι θέλει ο πελάτης από ένα σύστημα λογισμικού.
Βάσεις Δεδομένων ER-Διάγραμμα.
Αντικειμενοστραφής Προγραμματισμός Ι
Κανονικοποίηση, συναρτησιακές εξαρτήσεις
Αρχές Τεχνολογίας Λογισμικού Εργαστήριο 1: Εισαγωγή.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πίνακας Συμβόλων Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Site: ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ.
1 State Diagrams. 2 Τα διαγράμματα καταστάσεων (State diagrams) χρησιμοποιούνται: Για να βοηθήσουν στην ανάπτυξη ενός συστήματος Για να βοηθήσουν στην.
Διαγράμματα Πακέτων (Package Diagrams)
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Οντοκεντρικός Προγραμματισμός
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ (SOFTWARE ENGINEERING) UML – διαγράμματα περιπτώσεων χρήσης, διαγράμματα κλάσεων, διαγράμματα ακολουθίας, διαγράμματα δραστηριότητας,
Κατανεμημένα Συστήματα
Software Engineering for Web Applications
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Κλάσεις και αντικείμενα
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου

Activity Diagrams.
ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης
Ειδικά Θέματα στον προγραμματισμό Υπολογιστών
ΥΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ
Εφαρμογή Μεθοδολογίας ICONIX
ΕΙΣΑΓΩΓΗ ΣΤΗ UML ΕΙΣΑΓΩΓΗ ΣΤΗ UML.
Μεταγράφημα παρουσίασης:

Μεθοδολογίες Προγραμματισμού ΙΙ Διαγράμματα Κλάσεων Παναγιώτης Σφέτσος, PhD http://aetos.it.teithe.gr/~sfetsos/ sfetsos@it.teithe.gr Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Στόχοι Στόχοι Διαγράμματα Κλάσεων Διασυνδέσεις (interfaces) Συνεργασίες Συσχετίσεις και Σχέσεις, Εξαρτήσεις, Γενικεύσεις Σημειώσεις και Περιορισμοί Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Διαγράμματα κλάσεων (Class Diagrams) Στόχοι Μια κλάση είναι ένα πρότυπο για ένα σύνολο αντικειμένων με παρόμοιες: ιδιότητες (attributes), λειτουργίες (operations), σχέσεις (relationships) και σημασιολογία - όρους συμβολισμού (semantics). Τα αντικείμενα μιας κλάσης έχουν κατάσταση (state) και συμπεριφορά (behavior). Είναι στατικά διαγράμματα που δείχνουν κλάσεις, ιδιότητες, λειτουργίες και σχέσεις μεταξύ κλάσεων Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Διαγράμματα κλάσεων (Class Diagrams) Στόχοι Χρησιμοποιούνται στην ανάλυση των απαιτήσεων και στη σχεδίαση του λογισμικού Περιγράφουν την δομή και συμπεριφορά των ΠΧ Δίνουν ένα εννοιολογικό μοντέλο του συστήματος, με τους όρους οντοτήτων και σχέσεων Τα αναλυτικά διαγράμματα κλάσεων χρησιμοποιούνται από τους προγραμματιστές Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Στόχοι Απεικόνιση Κλάσεων Στην UML οι κλάσεις απεικονίζονται με ένα τετράγωνο τριών τμημάτων που περιέχουν: το όνομα της κλάσης, τις ιδιότητες (attributes) της κλάσης, τις λειτουργίες (operations) της κλάσης και τις υπευθυνότητες (responsibilities) που είναι συμβόλαια ή υποχρεώσεις της κλάσης. Όνομα Κλάσης Window size: Size visibility: boolean display() hide() Window size: Size visibility: boolean Window Ιδιότητες Λειτουργίες Μπορούμε να απεικονίσουμε μέρη της κλάσης, π.χ. μόνο ιδιότητες ή μόνο το όνομα της κλάσης. responsibilities Show items in a predefined area Υπευθυνότητες Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Διαγράμματα Κλάσεων Ιδιότητες - 1 Στόχοι Μια κλάση μπορεί να έχει ιδιότητες ή να μην έχει Οι ιδιότητες είναι κοινές για όλα τα αντικείμενα της κλάσης Σε οποιαδήποτε χρονική στιγμή ένα αντικείμενο της κλάσης θα έχει συγκεκριμένες τιμές για κάθε μια ιδιότητα της κλάσης Μπορεί να φαίνεται το όνομα της ιδιότητας, ο τύπος των δεδομένων, αλλά και αρχική τιμή σε όλες ή κάποιες από αυτές Customer name address phone birthdate Wall height : Float width : Float thickness : Float isLoadBearing : Boolean = false Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Διαγράμματα Κλάσεων Ιδιότητες - 2 Στόχοι Τυπική σύνταξη ιδιοτήτων Όνομα : Τύπος = αρχική_τιμή Παραγόμενες (derived) ιδιότητες: η τιμή τους προκύπτει από άλλες ιδιότητες της κλάσης. Οι παραγόμενες ιδιότητες έχουν το σύμβολο / πριν από το όνομα. Wall height : Float width : Float thickness : Float isLoadBearing : Boolean = false Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Διαγράμματα Κλάσεων Λειτουργίες - 1 Στόχοι Λειτουργία είναι η υλοποίηση μιας υπηρεσίας που απαιτείται από ένα αντικείμενο της κλάσης Η λειτουργία επιδρά στην συμπεριφορά του αντικειμένου και συχνά οδηγεί στην αλλαγή των δεδομένων ή της κατάστασης του Μια κλάση μπορεί να έχει ή να μην έχει καθόλου λειτουργίες Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Διαγράμματα Κλάσεων Λειτουργίες - 2 Στόχοι Στις λειτουργίες μπορεί να αναγράφεται: μόνο το όνομα της λειτουργίας το όνομα και η υπογραφή (signature), δηλαδή ο τύπος και οι αρχικές τιμές όλων των παραμέτρων και στις περιπτώσεις των συναρτήσεων ο τύπος του επιστρεφόμενου αποτελέσματος Customer add() remove() edit() Book title : String copiesOnShelf() : Integer borrow(c:Copy) Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Διαγράμματα Κλάσεων Λειτουργίες - 2 Στόχοι Στις λειτουργίες μπορεί να αναγράφεται: μόνο το όνομα της λειτουργίας το όνομα και η υπογραφή (signature), δηλαδή ο τύπος και οι αρχικές τιμές όλων των παραμέτρων και ο τύπος του επιστρεφόμενου αποτελέσματος. Όνομα(Παράμετρος1 : Τύπος1, Παράμετρος2 : Τύπος2, …) : Τύπος_Επιστροφής Customer add() remove() edit() Book title : String copiesOnShelf() : Integer borrow(c:Copy) Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Στόχοι Προσπελασημότητα - 1 Ορατότητα (Visibility) Η ορατότητα ορίζει αν μια ιδιότητα ή λειτουργία είναι ορατή, δηλαδή μπορεί να προσπελαθεί από άλλες κλάσεις. Η UML παρέχει τέσσερα σύμβολα για την ορατότητα : + δημόσια ορατότητα (public). Προσπέλαση και από άλλες κλάσεις. – ιδιωτική ορατότητα (private). Προσπέλαση μόνο μέσα στην ίδια κλάση. # προστατευμένη ορατότητα (protected). Προσπέλαση έξω από το πακέτο αλλά από υποκλάσεις της τρέχουσας (κληρονομικότητα) ~ ορατότητα πακέτου (package). Προσπέλαση μόνο από το γκρουπ των κλάσεων του πακέτου Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Στόχοι Προσπελασημότητα - 2 Person +getName : String -calculateAge : int Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Σχέσεις μεταξύ Κλάσεων (Relationships) Στόχοι Οι πιο σημαντικές σχέσεις στην αντικειμενοστρεφή τεχνολογία λογισμικού οι : Συσχετίσεις (associations) Εξαρτήσεις (dependencies) Γενικεύσεις (generalizations) Συσσωματώσεις (aggregations) Συνθέσεις (Compositions) Διαφορετικές γραμμές και βέλη χαρακτηρίζουν τις σχέσεις Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Διαγράμματα Κλάσεων Συσχετίσεις - 1 Στόχοι Η συσχέτιση (association) αναπαριστά κάποια σύνδεση των αντικειμένων δύο κλάσεων Απεικονίζει τη σχέση μεταξύ των κλάσεων Γραφικά απεικονίζονται με συμπαγείς γραμμές Παράδειγμα : “Ένας υπάλληλος εργάζεται σε μία εταιρία“ Εταιρία Τμήμα Εργαζόμενος Εργαζόμενος Εταιρία Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Διαγράμματα Κλάσεων Συσχετίσεις - 2 Στόχοι Όνομα σχέσης: γράφεται σαν ετικέτα στο μέσο της γραμμής σύνδεσης (ρήμα). Το όνομα φανερώνει το είδος της συσχέτισης. Μία κλάση που μετέχει σε μία συσχέτιση έχει ένα ρόλο (role) σε αυτήν. Γράφουμε το όνομα του ρόλου (ουσιαστικό) στο τέλος της σχέσης, δηλαδή στο σημείο σύνδεσης με την κλάση. Association name Ανήκει Άτομο Εταιρία εργοδότης εργαζόμενος Role name Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Διαγράμματα Κλάσεων Συσχετίσεις - 3 Στόχοι Πολλαπλότητα (multiplicity) Καθορίζει πόσα αντικείμενα μετέχουν σε μια συσχέτιση (από 0 έως οποιοδήποτε πλήθος). Ακριβώς ένα 1 Μηδέν ή ένα 0..1 Μηδέν ή περισσότερα 0..* Ένα ή περισσότερα 1..* Από..Έως m..n Πολλαπλά διαφορετικά όρια 2, 4..6, 8 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Εξαρτήσεις (dependencies) Στόχοι Εξαρτήσεις (dependencies) Εξάρτηση είναι σχέση “χρήσης” δύο κλάσεων, δηλαδή μια αλλαγή στη χρήση της μιας από αυτές μπορεί να επιφέρει αλλαγές και στην άλλη Γραφικά απεικονίζεται με διακεκομμένη γραμμή Ένα στερεότυπο χρησιμοποιείται για να δείξει το είδος της εξάρτησης Στο παράδειγμα : Η κλάση Window χρησιμοποιεί την Event Window <<minimize>> Event handleEvent() Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Διαγράμματα Κλάσεων Συσσωμάτωση - 1 Στόχοι Η συσσωμάτωση (aggregation) είναι μία ειδική μορφή συσχέτισης τύπου “όλου / μερών...” ή “έχει…”, όπου μία μεγάλη κλάση αποτελείται από άλλες μικρότερες κλάσεις. Γραφικά απεικονίζεται με βέλος αιχμής σχήματος διαμαντιού Εταιρία Τμήμα Η κλάση Εταιρία αναπαριστά το «όλο» και η κλάση Τμήμα το «τμήμα» Το «όλο» δεν μπορεί να «λειτουργήσει» χωρίς το «τμήμα» Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Διαγράμματα Κλάσεων Συσσωμάτωση - 2 Στόχοι Ολική κλάση Αυτοκίνητο 1 1 1 1 1 4..* Σασί Μηχανή Ρόδες Μερικές κλάσεις Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Διαγράμματα Κλάσεων Σύνθεση (composition) - 1 Στόχοι Είναι μια ισχυρότερη σχέση τύπου συσσωμάτωσης (όλου / μερών…) μόνο που τα μέρη θεωρούνται αχώριστα από το όλο Το όλο ελέγχει πλήρως τα τμήματά (κύκλο ζωής τους). Για παράδειγμα η διαγραφή ενός αντικειμένου «όλου» διαγράφει και τα τμήματά του. Η πρόσβαση σε κάποιο «τμήμα» γίνεται αποκλειστικά μέσω του «όλου» Γραφικά απεικονίζεται με βέλος αιχμής σχήματος γεμάτου διαμαντιού Παράθυρο Πλαίσιο Παραθύρου Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Διαγράμματα Κλάσεων Σύνθεση - 2 Στόχοι Παράδειγμα: Το αυτοκίνητο έχει ως αχώριστο τμήμα του τον κινητήρα. Ο κινητήρας δεν μπορεί να ανήκει ταυτόχρονα σε άλλο αυτοκίνητο. Η πρόσβαση στον κινητήρα μπορεί να γίνει μόνο μέσω του αυτοκινήτου. Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Διαγράμματα Κλάσεων Αυτοσυσχέτιση Στόχοι Παράδειγμα: Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Διαγράμματα Κλάσεων Κλάση Συσχέτισης - 1 Στόχοι Μία κλάση συσχέτισης (association class) αποδίδει ιδιότητες και λειτουργίες σε μία συσχέτιση Η κλάση C είναι η κλάση συσχέτισης των Α και B Εκφράζει συσχετίσεις του τύπου «πολλά-προς-πολλά» Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Διαγράμματα Κλάσεων Γενίκευση - Κληρονομικότητα Στόχοι Γενίκευση (generalization) είναι η σχέση όπου μία κλάση (συνήθως υποκλάση ή “κλάση παιδί”) κληρονομεί τις λειτουργίες και τα δεδομένα από μία γενικότερη κλάση (υπερκλάση ή “κλάση γονέα”). Οι κλάσεις Circle και Rectangle είναι υποκλάσεις της Shape, και κληρονομούν ιδιότητες, συσχετίσεις και λειτουργίες της. Η υποκλάση μπορεί να επαναορίσει (override) λειτουργίες της υπερκλάσης της. Shape Circle Rectangle Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ

Διαγράμματα Κλάσεων Γενίκευση - Κληρονομικότητα Στόχοι IS-A relationships: Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ