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

Σχετικά έγγραφα
Τα διαγράµµατα συστατικών

Τα διαγράµµατα πακέτων

Μοντελοποίηση Συστημάτων. Διαγράμματα Κλάσεων ClassDiagrams

Διαγράμματα Κλάσεων στη Σχεδίαση

Διαγράμματα UML στην Ανάλυση. Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων

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

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

Διάγραμμα Κλάσεων. Class Diagram

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

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

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

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

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

Από τη UML στον Κώδικα. Μέρος Β

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

Κανόνες για ανάπτυξη διαγραµµάτων κλάσεων

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

ΔΟΜΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΣΥΜΠΕΡΙΦΟΡΑΣ (9)

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

1 η ΑΣΚΗΣΗ ΕΡΓΑΣΤΗΡΙΟΥ (ομαδική: 2 ή 3 ατόμων) (Ημερομηνία Παράδοσης: 18/11/2017) (Ζητούμενο)

UML: Unified modelling language

ΣΥΣΧΕΤΙΣΕΙΣ ΚΛΑΣΕΩΝ (Class relationships)

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

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

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

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

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

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

Η εταιρεία είναι οργανωµένη σε τµήµατα Κάθε ΤΜΗΜΑένα όνοµα, κωδικό και έναν εργαζόµενο που διευθύνει το τµήµα. Αποθηκεύεται η ηµεροµηνία που ανέλαβε

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού

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

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

(Απλή) Κληρονομικότητα

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

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

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

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

Πληροφοριακά Συστήµατα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

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

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

ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++

Αντικειμενοστρεφής Προγραμματισμός

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

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

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

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

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

Μοντελοποίηση Πεδίου

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

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

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

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

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

Από τη UML στον Κώδικα. Μέρος Α

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

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

Σύνθεση και Κληρονομικότητα

Βασικά της γλώσσας JAVA

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

Περιπτώσεις Χρήσης και Διαγράµµατα Περιπτώσεων Χρήσης. Use Cases and Use Case Diagrams

ΠΕΛΑΤΗΣ ΠΑΡΑΓΓΕΛΙΑ ΠΡΟΪΟΝ

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

υαδικό έντρο Αναζήτησης (BSTree)

Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

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

Προγράμματα με δομή Κληρονομικότητας

Διάλεξη 10: Αντικειμενοστρεφής Σχεδιασμός ΙI. Διδάσκων: Παναγιώτης Ανδρέου

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

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

Η γλώσσα μοντελοποίησης UML. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 7

Επιχειρηµατικές ιαδικασίες: Εισαγωγικές Έννοιες & Αρχικά στάδια µοντελοποίησης

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα

Wrapper Classes, Abstract Classes and Interfaces

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 4: ER I. Data Modeling Using the ER Model

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

Διάλεξη 03: Εννοιολογική Σχεδίαση Βάσης Δεδομένων I (Entity Relationship Modelling) Διδάσκων: Παναγιώτης Ανδρέου

Εργαστήρια Τεχνολογίας Λογισµικού Κακαρόντζας Γιώργος Τµήµα Τεχν. Πληροφορικής & Τηλ/νιών ΤΕΙ Λάρισας. Εισαγωγή

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΜΟΝΤΕΛΟΠΟΙΗΣΗ Ε ΟΜΕΝΩΝ, ΚΛΑΣΙΚΑ ΜΟΝΤΕΛΑ Ε ΟΜΕΝΩΝ

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

Προγραµµατιστικές τεχνικές

Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών Φθινόπωρο οµική Μοντελοποίηση Class Diagrams

Διαγράμματα Αλληλεπίδρασης. Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Θέµατα εξετάσεων µε απαντήσεις

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις.

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

Η γλώσσα μοντελοποίησης UML. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

ΜοντέλοΟντοτήτωνΣυσχετίσεων & ΔιάγραμμαΟντοτήτων Συσχετίσεων. Μοντέλο Οντοτήτων Συσχετίσεων

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

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

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 5: Διαγράμματα Κλάσης (1ο Μέρος)

Θέματα εξετάσεων. Τύπος: B

Πακέτα (Packages) Φωλιασμένες ή Εσωτερικές Κλάσεις (Inner Classes) Παναγιώτης Σφέτσος, PhD

Συναρτησιακές Εξαρτήσεις. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΑΦΗΡΗΜΕΝΕΣ ΚΛΑΣΕΙΣ

Σύνθεση και Κληρονομικότητα

Πληροφοριακό σύστημα για online βιβλιοθήκη

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

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

Transcript:

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

2 Περιεχόµενα Βασικές έννοιες µοντέλου κλάσεων Βασικές συσχετίσεις Παραδείγµατα

3 ιαγράµµατα κλάσεων (class diagrams) Είναι το βασικότερο των διαγραµµάτων της UML Ένα διάγραµµα κλάσεων δείχνει την στατική δοµή των κλάσεων του συστήµατος και των σχέσεων µεταξύ τους Ένα διάγραµµα κλάσεων συνήθως αποτελείται από: Κλάσεις (classes) ιαπροσωπίες (interfaces) Συνεργασίες (collaborations) Συσχετίσεις (relationships)

4 Το µοντέλο των κλάσεων χρησιµοποιείται για... Κατά την διάρκεια της ανάλυσης για να περιγράψει τις λειτουργικές απαιτήσεις (functional requirements) Κατά τη διάρκεια του σχεδιασµού για να περιγράψει το λεξιλόγιο του συστήµατος (system s vocabulary) τις συνεργασίες (collaborations) και το λογικό σχήµα της βάσης δεδοµένων (logical database schema) Και προφανώς κατά τη διάρκεια της υλοποίησης...

Μια κλάση Ορίζει ένα σύνολο αντικειµένων Ορίζεται µε όνοµα Πεδία (attributes) Μεθόδους (operations) Task startdate: Date = default enddate: Date name setstartdate (d : Date) setenddate (d : Date) getduration () : Date 5

6 Ορατότητα πεδίων και µεθόδων Τελεστές που δείχνουν την εµβέλεια-ορατότητα-visibility των πεδίων και των µεθόδων. + σηµαίνει Public γενική ορατότητα (όλοι) # σηµαίνει Protected προστατευµένη όρατότητα (µερικοί) - σηµαίνει Private ιδιωτική όρατότητα (κανείς εκτός) Εξ ορισµού, τα πεδία είναι private και οι µέθοδοι public Αρκετές φορές τα δύο τελευταία τµήµατα παραλείπονται για την απλοποίηση των διαγραµµάτων. Task + startdate: Date = default # enddate: Date - name + setstartdate (d : Date) - setenddate (d : Date) + getduration () : Date

Οι συσχετίσεις (relationships) µεταξύ των κλάσεων Τρεις είναι οι βασικές συσχετίσεις: Γενίκευσης (Generalization) Σύνδεσης (Association) Αλληλεξάρτησης (Dependency) 7

8 Συσχέτιση γενίκευσης vehicle Κλάση πατέρας land vehicle water vehicle Κλάσεις παιδιά car amphibian vehicle ship

Συσχέτιση γενίκευσης Τα πεδία και οι µέθοδοι µιας κλάσης πατέρα κληρονοµούνται από τις κλάσεις παιδιά. Επεκτάσεις:Στις κλάσεις παιδιά µπορούµε να ορίσουµε συµπληρωµατικά πεδία και µεθόδους οι οποίες επεκτείνουν την κλάση πατέρα. Περιορισµοί: Στις κλάσεις παιδιά µπορούµε να ξαναορίσουµε ταπεδίακαι τις µεθόδους της κλάσης πατέρα, τα οποία περιορίζουν την συµπεριφορά της κλάσης πατέρα 9

10 Ειδικές περιπτώσεις κλάσεων Αφηρηµένες κλάσεις (abstract classes) Κλάσεις που δεν έχουν αντικείµενα Το όνοµα της κλάσης γράφεται µε italics Κλάσεις ρίζα (root classes) Κλάσεις που δεν έχουν πατέρα Γράφουµε τηλέξηroot κάτωαπότοόνοµα της κλάσης Κλάσεις φύλο (leaf classes) Κλάσεις που δεν έχουν παιδιά Γράφουµε τηνλέξηleaf κάτωαπότοόνοµα της κλάσης

Παράδειγµα αφηρηµένης κλάσης 11

12 Συσχέτιση σύνδεσης (association) Όνοµα σύνδεσης Κατεύθυνση σχέσης Παραγγελία datereceived isprepaid number : String price : Money dispatch( ) δίνεται από * 1 Πελάτης name address creditrating( ) Ο πελάτης κάνει πολλές παραγγελίες Οι παραγγελίες δίνονται από 1 πελάτη

Πολλαπλότητα (Multiplicity) και ρόλοι 1 φοιτητής * Πανεπιστήµιο Άτοµο Σύµβολο Νόηµα 0..1 εργαζόµενος 1 Ένα και µόνο ένα 0..1 Μηδέν ή ένα M..N Από M έως N * Από µηδέν έως οποιαδήποτε αρ. 0..Ν 1..Ν Από µηδέν έως Ν Από ένα έως Ν * καθηγητής ρόλος Ρόλος «Σε ένα πανεπιστήµιο έχουµε πολλούς ρόλους: σπουδαστές και δάσκαλοι» 13

Συσχέτιση συναρµολόγηση Κλάση A Κλάση A ή Κλάση B Κλάση B Κλάση C Κλάση C Είναι µια ειδική µορφή συσχέτισης σύνδεσης ιαχωρίζει το ολόκληρο whole από τα µέρη parts 14

Συσχέτιση συναρµολόγηση Συναρµολόγηση (aggregation) Σύνθεση (composition) Αυτοκίνητο Τσάντα Αποτελείται περιέχει Μηχανή Τιµόνι Μήλα Πορτοκάλια Σύνθεση Συναρµολόγηση 15

ιαφορά συναρµολόγησης και σύνθεσης Στη σύνθεση (composition) Τα µέρη (parts) ανήκουν σε ένα και µόνο ένα όλο (whole). Τα µέρη (parts) ζουν και πεθαίνουν µε τοόλο(whole) cascading delete Στην συναρµολόγηση (aggregation) τα µέρη µπορούν να υπάρχουν ανεξάρτητα 16

17 Σχέσεις αλληλεξάρτησης (dependency) Υπάρχουν οκτώ τύποι σχέσης αλληλεξάρτησης που µοντελοποιούνται µε στερεότυπα bind: Προσδιορίζει ότι η κλάση πηγή αρχικοποιεί τη κλάση στόχο χρησιµοποιώντας τις παραµέτρους. derive: Η κλάση στόχος υπολογίζεται από τη κλάση πηγή friend: Η κλάση στόχος έχει ειδικά προνόµια ορατότητας instanceof: Το αντικείµενο είναι ένα στιγµιότυπο της κλάσης instantiate: Η κλάση πηγή δηµιουργεί ένα στιγµιότυπο της κλάσης στόχου powertype: Προσδιορίζει ότι η κλάση στόχος είναι powertype. Όλα τα αντικείµενα ενός Powertype είναι του ιδίου τύπου refine: Προσδιορίζει ότι η κλάση πηγή είναι λεπτοµερέστερη από τη κλάση στόχος Use: H κλάση πηγή εξαρτάται από την κλάση στόχος

18 Στερεότυπα (stereotypes) Είναι γενικότερος µηχανισµός επέκτασης της γλώσσας UML ίνει τη δυνατότητα καινούργιων δοµικών στοιχείων που έχουν τη δική τους σηµασιολογία ιδιότητες γραφική αναπαράσταση Λεκτικός συµβολισµός «interface»

ιάγραµµα κλάσεων Παράδειγµα Όνοµα κλάσης Πεδία Μέθοδοι Παραγγελία -Ηµεροµηνία : Date -# Παραγγελίας : int -Τιµή : Currency +αποστολή() : boolean(idl) +κλείσιµο() : boolean(idl) 1 -Ανήκει -Κάνει * Σχέση Γενίκευσης -Έγινε 1 Πελάτης -Ονοµα - ιεύθυνση +πίστωση() * -Περιέχει Εταιρεία Πρόσωπο ΕπιµέρουςΠαραγγελία Σχέση Αλληλεξάρτησης µε ορισµό πολλαπλότητας 19

20 Κλάσεις και διαπροσωπίες (interfaces) Μια κλάση περιέχει εδοµένα Μεθόδους και την υλοποίηση Public µέθοδοι είναι το interface της κλάσης προς τον έξω κόσµο Ένα interface περιέχει µόνο των ορισµό των µεθόδων χωρίς υλοποίηση και χωρίς δεδοµένα Είναι ένα πρωτόκολλο Προσδιορίζει το πως θα χρησιµοποιηθεί ένα αντικείµενο Χρησιµοποιούµε το στερεότυπο «interface» Σχέση πραγµατοποίησης (realisation)

Παράδειγµα interface 21

22 Εναλλακτικός συµβολισµός ενός interface DataInput OrderReader Interface DataInputStream Dependency

Κλάσεις σύνδεσης Είναι µια κλάση που δηµιουργούµε όταν Τα πεδία δεν ανήκουν σε καµία από τις κλάσεις που συνδέονται αλλά στην ίδια τη σύνδεση 23

24 Εναλλακτική αναπαράσταση κλάσης σύνδεσης Υπάρχει µόνο ένα στιγµιότυπο της κλάσης σύνδεσης µεταξύ των δύο κλάσεων που συµµετέχουν

25 Προσδιορισµένες συνδέσεις (Qualified associations) OrderLine 0..1 Product * Order Κλάση στόχος Περιορισµός (qualifier) Περιορισµένη κλάση Σε κάθε παραγγελία (order) δεν υπάρχουν δύο παραγγελίες (orderline) για το ίδιο προϊόν (product)

26 Προσδιορισµένες συνδέσεις Βελτιώνει την κατανόηση των εννοιών του µοντέλου Κάνει τις σχέσεις σύνδεσης πιο κατανοητές Stock exchange Stock exchange Μη περιορισµένη noted * Company StockID noted περιορισµένη StockID Company

Παρουσιάσαµε... Τις βασικές έννοιες του µοντέλου των κλάσεων Τις τρεις βασικές συσχετίσεις και τις διάφορες µορφές αυτών: Γενίκευσης (Generalization) Σύνδεσης (Association) Αλληλεξάρτησης (Dependency) 27