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

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

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

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

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

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

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

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

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

Διάγραμμα Οντοτήτων - Συσχετίσεων

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

Βάσεις Δεδομένων Ι. 4 ο Φροντιστήριο. Πέρδικα Πολίνα [perdika]

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

Βάσεις Δεδομένων. Σταύρος Βαλσαμίδης Βάσεις Δεδομένων Διάγραμμα Ο-Σ 1

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

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

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

Βάσεις Δεδομένων Ενότητα 4

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

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 1: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (1ο Μέρος)

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

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

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

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

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

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

Μοντέλα Οντοτήτων Συσχετίσεων 2

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

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

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

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

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

Βάσεις δεδομένων. (4 ο μάθημα) Ηρακλής Βαρλάμης

Μοντέλο Οντοτήτων-Συσχετίσεων. Η ανάγκη Διαγράμματα ΟΣ Σύνολα Οντοτήτων-Συσχετίσεων Απεικονίσεις Επεκτάσεις

ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

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

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

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

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

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

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

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

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 21/11/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.

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

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


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

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

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

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

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός

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

Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 2: Μοντελο Συσχετίσεων Οντοτήτων, Μελέτη Περίπτωσης: Η βάση δεδομένων των CD

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

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

Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Ανάλυση και Σχεδιασμός ΠΣ Σχεδίαση: Σχεδίαση Κλάσεων και Μεθόδων

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1

2.1 Αντικειµενοστρεφής προγραµµατισµός

Certified Java Programmer (CJP)

Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ

Κλάσεις και Αντικείµενα

Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής - Εβδομάδα 1

Υποδείγματα Ανάπτυξης

Μοντέλο Οντοτήτων-Συσχετίσεων

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

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


Βάσεις Δεδομένων Εισαγωγή

Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό

Ειδικά θέματα τεχνολογίας λογισμικού

Οντοκεντρικός Προγραμματισμός

(Διαφάνειες Νίκου Βιδάκη)

Γραφικά υπολογιστών Εργαστήριο 9 Κλάσεις στην Python. Σκοπός της 9ης άσκησης είναι να μάθουμε αντικειμενοστρεφή προγραμματισμό στην Python.

Μετατροπή Σχήματος Ο/Σ σεσχεσιακό

Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό Σχήμα. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Βάσεις Δεδομένων. Εισαγωγή Ανάλυση Απαιτήσεων. Φροντιστήριο 1 ο

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο

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

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

Παύλος Εφραιµίδης. Java. Κληρονοµικότητα

Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Εφαρμογή Μεθοδολογίας ICONIX


Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων ιαχείριση ικτύων ρ.αρίστη Γαλάνη Ακαδημαϊκό Έτος

Ανάπτυξη συστήματος λογισμικού βάσει της μεθοδολογίας ICONIX

Μετατροπή Σχήματος Ο/Σ σε Σχεσιακό Σχήμα. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

UML: Unified modelling language

Copyright 2007 Ramez Elmasri and Shamkant B. NavatheΕλληνικήΈκδοση ίαυλος. ιαφάνεια 4-1

Με τι ασχολείται ο αντικειμενοστραφής προγραμματισμός

Ειδικά Θέματα Προγραμματισμού

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

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

Transcript:

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

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

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

κλάσεις Ο συμβολισμός των κλάσεων έχει τρία τμήματα: Το όνομα της κλάσης Τις ιδιότητες (attributes) της κλάσης Τις λειτουργίες (operations) της κλάσης

ιδιότητες Οι ιδιότητες (attributes) παραπέμπουν στα πεδία της Java και σχετίζονται με δεδομένα της κλάσης Τυπική σύνταξη ιδιοτήτων Όνομα : Τύπος = αρχική_τιμή Ο τύπος μπορεί να είναι ένας τύπος της UML, κάποιος τύπος της γλώσσας προγραμματισμού ή κάποια κλάση Παραγόμενες (derived) ιδιότητες είναι αυτές που η τιμή τους προκύπτει από άλλες ιδιότητες της κλάσης. Οι παραγόμενες ιδιότητες έχουν το σύμβολο / πριν από το όνομα.

λειτουργίες Οι λειτουργίες (operations) παραπέμπουν στις μεθόδους της Java Τυπική σύνταξη Όνομα(Παράμετρος1 : Τύπος1, Παράμετρος2 : Τύπος2, ) : Τύπος_Επιστροφής

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

συσχετίσεις Η συσχέτιση (association) αναπαριστά κάποια σύνδεση των αντικειμένων δύο κλάσεων Απεικονίζει τη σχέση μεταξύ των κλάσεων Οι συσχετίσεις μεταξύ κλάσεων «μοιάζουν» με τις σχέσεις των πινάκων μίας βάσης δεδομένων

πολλαπλότητα συσχετίσεων Η πολλαπλότητα αναφέρεται στα άκρα των συσχετίσεων. Ακριβώς ένα -> 1 Ένα ή περισσότερα -> 1..* Κανένα ή περισσότερα -> * Κανένα ή ένα -> 0..1

πολλαπλότητες συσχετίσεων 1 Ακριβώς ένα 10 Ακριβώς δέκα * Κανένα, ένα ή περισσότερα 1..* Ένα ή περισσότερα 1..10 Ένα έως δέκα

συσσωμάτωση Η συσσωμάτωση (aggregation) είναι μία ειδική μορφή συσχέτισης. Είναι μία συσχέτιση όλου τμήματος. Η κλάση Α αναπαριστά το «όλο» και η κλάση Β το «τμήμα» Δεν επιτρέπονται «κύκλοι» συσσωματώσεων Η διάκριση από τη συσχέτιση έχει περισσότερο εννοιολογικό χαρακτήρα: το «όλο» δεν μπορεί να «λειτουργήσει» χωρίς το «τμήμα».

παράδειγμα συσσωμάτωσης Το αυτοκίνητο έχει ως τμήμα του ένα κινητήρα. Ο κινητήρας μπορεί να είναι τμήμα πολλών αυτοκινήτων. Σημασιολογική ερμηνεία: «Το αυτοκίνητο δεν μπορεί να λειτουργήσει χωρίς τον κινητήρα».

σύνθεση Η σύνθεση (composition) είναι μία ισχυρή μορφή συσσωμάτωσης Το όλο ελέγχει πλήρως τα τμήματά του και ιδιαίτερα τον κύκλο ζωής τους. Π.χ. η διαγραφή ενός αντικειμένου «όλου» διαγράφει και τα τμήματά του. Η πρόσβαση σε κάποιο «τμήμα» γίνεται αποκλειστικά μέσω του «όλου»

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

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

κλάση συσχέτισης Μία κλάση συσχέτισης (association class) αποδίδει ιδιότητες και λειτουργίες σε μία συσχέτιση Η κλάση C είναι η κλάση συσχέτισης των Α και B Χρησιμοποιείται συνήθως σε συσχετίσεις «πολλά-προς-πολλά»

παράδειγμα κλάσης συσχέτισης Ένας υπάλληλος εργάζεται σε πολλές εταιρείες και κάθε εταιρεία έχει πολλούς υπαλλήλους Ερώτημα: Πώς θα απεικονιστεί ο μισθός που λαμβάνει ένας υπάλληλος από μία εταιρεία?

παράδειγμα κλάσης συσχέτισης Υπάρχουν δύο λύσεις. Η πρώτη είναι με την κλάση συσχέτισης. Η δεύτερη είναι με «ενδιάμεση» κλάση. Ο περιορισμός της κλάσης συσχέτισης είναι ότι ο υπάλληλος δεν μπορεί να έχει δύο εργασίες στην ίδια εταιρεία. Στο συγκεκριμένο παράδειγμα η κλάση συσχέτισης είναι η σωστή λύση

ιδιαιτερότητες κλάσης συσχέτισης Οι δύο λύσεις μοιάζουν, αλλά δεν είναι ίδιες. Η χρήση της κλάσης συσχέτισης υπονοεί επιπλέον ότι δεν μπορεί να υπάρξουν δύο αντικείμενα της κλάσης συσχέτισης για τον ίδιο συνδυασμό αντικειμένων των κλάσεων που συσχετίζονται. Στο συγκεκριμένο παράδειγμα η κλάση συσχέτισης Εργασία μάς λέει ότι ένας εργαζόμενος μπορεί να εργάζεται σε διαφορετικές εταιρείες, αλλά δεν μπορεί ταυτόχρονα να έχει δύο εργασίες στην ίδια εταιρεία. Αντίθετα, στη λύση όπου η κλάση Εργασία απλώς παρεμβάλλεται μεταξύ του εργαζομένου και τις εταιρείας, επιτρέπεται ένας εργαζόμενος να έχει πολλές εργασίες στην ίδια εταιρεία και να εισπράττει βέβαια πολλούς μισθούς από την ίδια εταιρεία. Έτσι στις συσχετίσεις πολλά-προς-πολλά, ανάλογα με τη σημασιολογία που προκύπτει από το πρόβλημα, επιλέγεται η κλάση συσχέτισης ή η παρεμβαλλόμενη κλάση

γενίκευση Η γενίκευση παραπέμπει στην κληρονομικότητα. Η κλάση Β είναι υποκλάση της κλάσης Α. Η υποκλάση κληρονομεί ιδιότητες, συσχετίσεις και λειτουργίες της υπερκλάσης. Μία υποκλάση μπορεί να επαναορίσει (override) λειτουργίες της υπερκλάσης της.

παράδειγμα γενίκευσης

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

αντικείμενα Ο συμβολισμός των αντικειμένων είναι όμοιος με το συμβολισμό των κλάσεων με τη διαφορά ότι το τμήμα του ονόματος είναι υπογραμμισμένο Τυπική σύνταξη αντικειμένου όνομα_αντικειμένου : όνομα_κλάσης Για ανώνυμα αντικείμενα : όνομα_κλάσης Οι ιδιότητες των κλάσεων έχουν πλέον και τιμές Σε ένα διάγραμμα αντικειμένων απεικονίζουμε ένα δίκτυο αντικειμένων για κάποια χρονική στιγμή

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

χρήση διαγραμμάτων αντικειμένων Το διάγραμμα κλάσεων μας δίνει μία γενική δομή μίας ιεραρχίας Το διάγραμμα αντικειμένων μας δίνει την ίδια την ιεραρχία