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

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

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

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

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

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

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

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

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

Ενδεικτικές λύσεις ασκήσεων διαγραμμάτων κλάσης (2 ο Μέρος)

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

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

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

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

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

ΕΚΦΩΝΗΣΗ ΥΠΟΧΡΕΩΤΙΚΗΣ ΕΡΓΑΣΙΑΣ σε UML

ΠΑΡΑΔΕΙΓΜΑΤΑ USE CASE DIAGRAMS CLASS DIAGRAMS

Ηλεκτρονικό Κατάστημα

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

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

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

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

ΟΔΗΓΙΕΣ ΓΙΑ ΧΡΗΣΗ ΤΟΥ ΕΡΓΑΛΕΙΟΥ RATIONAL ROSE

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

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

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

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

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

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

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

Περίπτωση Χρήσης Use case

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

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 7: Διαγράμματα Καταστάσεων

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub

Θ.Ε. ΠΛΗ24 ΑΚΑΔ. ΕΤΟΣ ΠΡΩΤΗ ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ

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

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

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

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

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

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

Ενδεικτικές λύσεις ασκήσεων διαγραμμάτων καταστάσεων (2 ο επαναληπτικό μάθημα)

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

Διάγραμμα Οντοτήτων Συσχετίσεων (ΔΟΣ) Entity Relationship Diagram (ERD)

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

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

Σχεδιασμός Βάσεων Δεδομένων

UML

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

ΠΕΡΙΠΤΩΣΕΙΣ ΧΡΗΣΗΣ ΗΛΕΚΤΡΟΝΙΚΟΥ ΤΑΞΙΔΙΩΤΙΚΟΥ ΠΡΑΚΤΟΡΕΙΟΥ

Scheduling έργου 1 Τρίτη, 27 Οκτωβρίου 2015

Projects για το εργαστήριο. των Βάσεων Δεδομένων

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

Εισαγωγή στα Πληροφοριακά Συστήματα

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

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

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

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

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

Εισαγωγή στα Πληροφοριακά Συστήματα

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

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

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

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

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

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

ΕΝΝΟΙΟΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ ΔΕΔΟΜΕΝΩΝ (6)

Μάθημα: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Διδάσκων: Καθ. Ιωάννης Βασιλείου ΕΝΔΕΙΚΤΙΚΗ ΛΥΣΗ ΚΑΙ ΣΧΟΛΙΑ ΣΤΗΝ ΠΡΩΤΗ ΑΣΚΗΣΗ

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

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

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

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

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

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

Οδηγός Συμμετοχής στις Διαδικτυακές μας Δημοπρασίες

Εργαστηριακός Οδηγός. Βάσεις Δεδομένων της Γ' Τάξης ΕΠΑΛ

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

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

Εισαγωγή στα Πληροφοριακά Συστήματα

Βάσεις Δεδομένων. Εισαγωγή για το Εργαστήριο. Δρ. Τιάκας Ελευθέριος. Τμήμα Πληροφορικής ΑΠΘ

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

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

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

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

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


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

Εργαστήριο 8o. Ερωτήματα επιλογής Παραμετρικά ερωτήματα Ερωτήματα δημιουργίας πεδίων. Ευάγγελος Γ. Καραπιδάκης

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

Διαδικασία Ανάπτυξης ΣΔΒΔ

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

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

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

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

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

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Μετασχηµατισµός διαγράµµατος ER σε σχεσιακό σχήµα Β

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

Βελτιώνω μια λεπτομέρεια, σε σχέση με την Ανακοίνωση από 22/6/2009 (1.4.3)

Web Agents Handout Manual

12 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 ο ΕΞΑΜΗΝΟ Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 3 ο Εργαστήριο - ΕΠΙΜΕΛΕΙΑ ΜΑΘΗΜΑΤΟΣ: Πρέντζα Ανδριάννα ΕΠΙΜΕΛΕΙΑ ΕΡΓΑΣΤΗΡΙΟΥ: Στουγιάννου Ελευθερία Email Επικοινωνίας: estoug@unipi.gr

Περιεχόμενο Ενότητας: Διαγράμματα Κλάσεων Κλάσεις και Αντικείμενα Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων Εύρεση Χαρακτηριστικών & Μεθόδων Κλάσεων Εύρεση Σχέσεων & Συσχετίσεων Κλάσεων Παραδείγματα Δημιουργίας Διαγραμμάτων Κλάσεων με UMLet

Φάση Σχεδίασης Σχεδίαση: προσδιορισμός της δομής του πώς ένα σύστημα λογισμικού θα γραφτεί και θα λειτουργήσει, χωρίς να γραφτεί στην πραγματικότητα η πλήρης εφαρμογή του. Η μετάβαση από το "τι" πρέπει να κάνει το σύστημα, στο "πως" θα το κάνει το σύστημα. Ποιες κλάσεις θα χρειαστούμε για να εφαρμόσουμε ένα σύστημα που επιτυγχάνει τις απαιτήσεις μας? Ποια πεδία και ποιες μεθόδους θα έχει κάθε κλάση? Με ποιο τρόπο κάθε κλάση θα αλληλοεπιδρά με την άλλη?

Εισαγωγή Βασικά Στοιχεία Μοντελοποίησης Συστήματος: κλάσεις, αντικείμενα και συσχετίσεις Κλάσεις & Αντικείμενα: τι υπάρχει μέσα στο Σύστημα Συσχετίσεις: πως δομούνται τα συστατικά του Συστήματος μεταξύ τους Reverse Engineering (+): υπάρχουν case tools που μετατρέπουν τις κλάσεις και τα διαγράμματα κλάσεων σε κώδικα αντικειμενοστραφούς γλώσσας και το αντίθετο (π.χ. Rational Rose, Visual Paradigm, κ.α.).

Αντικείμενα & Κλάσεις Εντοπίζουμε τα πράγματα που είναι σημαντικά για το Σύστημα που θέλουμε να μοντελοποιήσουμε. Ένα αντικείμενο συνήθως υπάρχει στον πραγματικό κόσμο (π.χ. Πωλητής, Πελάτης, Παραγγελία, κλπ.) Μια κλάση είναι μια περιγραφή ενός τύπου αντικειμένου. Περιγράφει τα χαρακτηριστικά και τη συμπεριφορά του συγκεκριμένου τύπου αντικειμένου. Όλα τα αντικείμενα είναι στιγμιότυπα μιας κλάσης.

Διαγράμματα Κλάσεων Η καρδιά της UML: ο πρώτος τύπος διαγραμμάτων της UML με άμεση σχέση με τα αντικειμενοστρεφή συστήματα. Τα αντικειμενοστρεφή συστήματα λειτουργούν ως μια συλλογή συνεργαζόμενων αντικειμένων. Διαχωρίζει τα σχεδιαστικά στοιχεία από τον κώδικα του Συστήματος. Χρησιμοποιούνται στην ανάλυση των απαιτήσεων και στη σχεδίαση του λογισμικού. Δίνει μια στατική όψη των στοιχείων που αποτελούν το Σύστημα. Περιγράφουν επιπλέον και συμπεριφορά. Περιλαμβάνει ιδιότητες/χαρακτηριστικά, λειτουργίες (μεθόδους), ευθύνες, συσχετίσεις μεταξύ κλάσεων.

Δημιουργία Διαγραμμάτων Κλάσεων Βήμα 1: Βρίσκουμε τις κλάσεις του συστήματος Από την περιγραφή του συστήματος που μας δίνεται, προσπαθούμε να απαντήσουμε στα παρακάτω ερωτήματα: 1) Υπάρχει πληροφορία που θα πρέπει να περιγραφεί, αναλυθεί ή αποθηκευτεί; 2) Υπάρχουν εξωτερικά συστήματα τα οποία αλληλοεπιδρούν με το σύστημά μας; 3) Υπάρχουν πρότυπα, βιβλιοθήκες κλάσεων ή άλλα συστατικά από προηγούμενες μελέτες; 4) Υπάρχουν περιφερειακά που πρέπει να διαχειριστεί το σύστημα; 5) Ποιος είναι ο ρόλος των διαφόρων χρηστών στο σύστημα; Και καταγράφουμε αρχικά τις πιθανές κλάσεις.

Δομή Κλάσης Η κλάση συμβολίζεται με ένα παραλληλόγραμμο, το οποίο χωρίζεται σε τρία μέρη: (i) το όνομα της κλάσης, (ii) τις ιδιότητες (χαρακτηριστικά) της κλάσης και (iii) τις λειτουργίες τις κλάσεις (αντιστοιχούν στις μεθόδους). H γενική περιγραφή ενός χαρακτηριστικού είναι: ορατότητα όνομα : τύπος=αρχική τιμή {λίστα τιμών} Η γενική περιγραφή μιας μεθόδου είναι: ορατότητα όνομα (λίστα παραμέτρων): τύπος επιστροφή π.χ. 1 2 3 ή ή

Χαρακτηριστικά των Ιδιοτήτων & των Μεθόδων των Κλάσεων Οι ιδιότητες & οι μέθοδοι χαρακτηρίζονται από την ορατότητά τους (visibility) σε: public (+): απευθείας προσπελάσιμα από άλλες κλάσεις (και αντικείμενα) private (-) : το χαρακτηριστικό/μέθοδος δεν μπορεί να χρησιμοποιηθεί και δεν είναι ορατό από άλλες κλάσεις. package (~): προσπελάσιμα μόνο μέσα στα πακέτα περιέχουν αυτόν τον τύπο, και στα πακέτα τα οποία εισάγεται. protected (#): προσπελάσιμα μόνο από την ίδια την κλάση και τις υποκείμενες κλάσεις της. Οι ιδιότητες χαρακτηρίζονται επίσης από την πολλαπλότητά τους ως εξής: 1 (ακριβώς μία) 0..1 (μία ή καμία) *, ή 0..* (καμία ή οσεσδήποτε) n..m (από n έως m, όπου m μπορεί να είναι και *) Stereotype: <<abstract>> ή <<enumeration>> Static Methods: μέθοδοι που μπορούν να τις καλέσουμε χωρίς να χρειαστεί να δημιουργηθεί ένα αντικείμενο πρώτα (εμφανίζονται υπογραμμισμένες)

Χαρακτηριστικά των Ιδιοτήτων & των Μεθόδων των Κλάσεων

Δημιουργία Διαγραμμάτων Κλάσεων Βήμα 2: Βρίσκουμε τα χαρακτηριστικά & τις μεθόδους των κλάσεων Από την περιγραφή του Συστήματος (διατύπωση σε κείμενο) που θέλουμε να μοντελοποιήσουμε, αναζητούμε: Επιθετικούς προσδιορισμούς (ιδιότητες κλάσεων) Ρήματα (λειτουργίες μέθοδοι των κλάσεων) Οι ιδιότητες αναπαριστούν την κατάσταση των αντικειμένων. Είναι πληροφορία που τηρείται για κάθε αντικείμενο κλάσης. Οι μέθοδοι περιγράφουν τι υπηρεσίες προσφέρει η κάθε κλάση και κάποιες από αυτές παρέχουν την κατάλληλη διασύνδεση με άλλες κλάσεις.

Σχέσεις Κλάσεων Οι σχέσεις συνδέουν μεταξύ τους τις κλάσεις ενός διαγράμματος. Η UML ορίζει τις εξής βασικές σχέσεις: Συσχέτιση (association) μια σημασιολογική σχέση μεταξύ των αντικειμένων δύο ή περισσότερων κλάσεων. Γενίκευση (generalisation) η σχέση ανάμεσα σ ένα πιο γενικό και σ ένα πιο εξειδικευμένο στοιχείο. Το ειδικό στοιχείο θα πρέπει να περιέχει μόνο επιπρόσθετες πληροφορίες. Εξάρτηση (dependency) σχέση ανάμεσα σε ανεξάρτητο κι εξαρτημένο στοιχείο. Μια ενδεχόμενη αλλαγή στο ανεξάρτητο στοιχείο θα επηρεάσει το εξαρτημένο στοιχείο.

Παράδειγμα Συσχέτισης Κλάσεων * Μία κλάση που μετέχει σε μία συσχέτιση έχει ένα ρόλο (role) σε αυτήν. Γράφουμε το όνομα του ρόλου (ουσιαστικό) στο τέλος της σχέσης, δηλαδή στο σημείο σύνδεσης με την κλάση. 1: Ρόλος* της κλάσης ως προς τη σχέση 2: Όνομα της σχέσης 3: Ρόλος* της κλάσης ως προς τη σχέση 4: Κλάση 5: Περιορισμός (προαιρετικός)/αληθή συνθήκη για να γίνει μια ενέργεια, π.χ. στο παράδειγμά μας {ηλικία_ιδιοκτήτη>=18} 6: Πληθάριθμος 7: Γραμμή Σχέσης 8: Πληθάριθμος 9: Κλάση

Σύνθεση vs Συσσωμάτωση Συσσωμάτωση (Aggregation) Σύνθεση (Composition) Παρατηρήσεις: Εκφράζονται με τις λέξεις Περιέχει, Αποτελείται από ή Είναι μέρος του Τα τμήματα (π.χ. τροχός) συνθέτουν το σύνολο (π.χ. Αυτοκίνητο) Η διαφορά τους είναι ότι στην συσσωμάτωση τα τμήματα υπάρχουν, έστω κι αν το σύνολο καταστραφεί.

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

Κλάσεις Συσχέτισης Ένας υπάλληλος εργάζεται σε πολλές εταιρείες και κάθε εταιρεία έχει πολλούς υπαλλήλους Ερώτημα: Πώς θα απεικονιστεί ο μισθός που λαμβάνει ένας υπάλληλος από μία εταιρεία? Διαφορά: στο (1) με τη χρήση της κλάσης συσχέτισης, ο υπάλληλος δεν μπορεί να έχει δύο εργασίες στην ίδια εταιρεία, ενώ στο (2) με τη χρήση του ενδιάμεσου πίνακα μπορεί. 1 2 Κλάση Συσχέτισης Ενδιάμεσος Πίνακας

Παραδείγματα Ιεραρχίας Κλάσεων (Γενίκευση) 1 2 ΘΥΜΗΘΕΊΤΕ: Η ειδική κλάση θα περιέχει μόνον επιπρόσθετες πληροφορίες.

Παραδείγματα Εξάρτησης Κλάσεων (dependency) Εξάρτηση (dependency): δείχνει ότι μία αλλαγή σε μία κλάση επηρεάζει μία άλλη κλάση, αλλά όχι απαραίτητα και το αντίστροφο. Παριστάνεται με μια διακεκομμένη γραμμή με ανοιχτό βέλος που δείχνει προς την οντότητα που υπάρχει εξάρτηση: Ένα αντικείμενο μίας κλάσης μπορεί να χρησιμοποιεί ένα αντικείμενο μιας άλλης κλάσης στον κώδικα μιας μεθόδου, π.χ.

Βρίσκουμε τις σχέσεις (associations) μεταξύ των κλάσεων: Εξάρτηση Γενίκευση Δημιουργία Διαγραμμάτων Κλάσεων Βήμα 3: Βρίσκουμε τις σχέσεις και συσχετίσεις Αναδρομική Συσχέτιση μεταξύ των κλάσεων Προσπαθούμε να διακρίνουμε και να σχεδιάσουμε τυχόν συσχετίσεις που αφορούν συνθέσεις (compositions) και συσσωματώσεις (aggregations).

Παράδειγμα Διαγράμματος Κλάσεων

Ερωτήσεις για τον έλεγχο ενός «Καλού» Διαγράμματος Κλάσεων Μετά τη σχεδίαση του Διαγράμματος Κλάσεων πρέπει να θέσω τα παρακάτω ερωτήματα: Είναι όλες οι κλάσεις που έχουμε ορίσει απαραίτητες; Μήπως μας λείπουν κάποιες; Είναι πλήρως ορισμένες; Μήπως λείπουν γνωρίσματα ή λειτουργίες; Μήπως έχουν περιττά γνωρίσματα ή λειτουργίες; Μήπως υπάρχουν συγκρούσεις κληρονομικότητας; Υπάρχει κάποια αναποτελεσματικότητα (incafficiency) στο σχέδιο, και πως θα μπορούσαμε να τη διορθώσουμε; Μπορούμε να αντιστοιχίσουμε τις κλάσεις στη γλώσσα προγραμματισμού που θα χρησιμοποιήσουμε; Πως μπορούμε να επαναχρησιμοποιήσουμε κώδικα;

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

Διάγραμμα Κλάσης vs Διάγραμμα Αντικειμένων (1/2)

Διάγραμμα Κλάσης vs Διάγραμμα Αντικειμένων (2/2) Το διάγραμμα κλάσεων μας δίνει μία γενική δομή μίας ιεραρχίας. Το διάγραμμα αντικειμένων μας δίνει την ίδια την ιεραρχία.

UMLet: Δημιουργία Διαγραμμάτων Κλάσεων -Παράδειγμα- Ανοίγετε το Eclipse File New Other UMLet diagram (Σημείωση: έχετε ήδη δημιουργήσει ένα Project) Από τη Λίστα δεξιά επιλέγω UML Class Διπλό κλικ σε κάθε component για να το εισάγω στο κεντρικό παράθυρο σχεδίασης. Στο πεδίο Properties, εισάγω τα ονόματα και τις περιγραφές κάθε επιλεγμένου στοιχείου του διαγράμματός μου.

Διαγράμματα Κλάσεων - Άσκηση: «Λογαριασμός Τραπέζης» - (1/3) Αναγνωρίστε τις κλάσεις, τα χαρακτηριστικά και τις λειτουργίες, σύμφωνα με την παρακάτω περιγραφή και σχεδιάστε το Διάγραμμα Κλάσεων. Όσον αφορά την τράπεζα και τους πελάτες της: ένας πελάτης μπορεί να ανοίξει όσους λογαριασμούς επιθυμεί. Για κάθε πελάτη πρέπει να καταχωρούνται τα στοιχεία: όνομα, διεύθυνση και ημερομηνία γέννησης. Ένας πελάτης μπορεί να κλείσει οποιονδήποτε από τους λογαριασμούς που του ανήκουν. Όλοι οι λογαριασμοί έχουν ένα κοινό επιτόκιο. Κάθε λογαριασμός έχει ένα μοναδικό αριθμό λογαριασμού. Ένας πελάτης μπορεί να καταθέσει ή να κάνει ανάληψη οποιοδήποτε ποσό Για τον υπολογισμό των τόκων θα πρέπει να σημειώνεται για κάθε κίνηση λογαριασμού η ημερομηνία και το ποσό κίνησης.

Διαγράμματα Κλάσεων - Άσκηση: «Λογαριασμός Τραπέζης» - (2/3)

Διαγράμματα Κλάσεων - Άσκηση: «Λογαριασμός Τραπέζης» - (3/3) Σχεδιάστε το διάγραμμα αντικειμένων για τον πελάτη «John Smith» (γεννημένος στις 11/23/1978, και κατοικεί στο Basel) που έχει έναν λογαριασμό με αριθμό 0815 και οποίος κατέθεσε 2000 φράγκα (Fr.) στις 12/04/2008 και έκανες ανάληψη 500 Fr. στις 12/09/2008.

Διαγράμματα Κλάσεων - Άσκηση: «Πρωτάθλημα Χόκεϊ» - (1/2) Σχεδιάστε ένα UML Διάγραμμα Κλάσεων που αντιπροσωπεύει τον τρόπο λειτουργίας ενός πρωταθλήματος χόκεϊ. Ένα πρωτάθλημα χόκεϊ αποτελείται από τουλάχιστον τέσσερις ομάδες χόκεϊ. Κάθε ομάδα χόκεϊ αποτελείται από έξι έως δώδεκα παίκτες, και ένας παίκτης ηγείται της ομάδας. Μια ομάδα έχει ένα όνομα και μία εγγραφή (record). Οι παίκτες έχουν έναν αριθμό και μια θέση. Οι ομάδες χόκεϊ παίζουν παιχνίδια μεταξύ τους. Κάθε παιχνίδι έχει μια βαθμολογία (σκορ) και μια τοποθεσία. Οι ομάδες μερικές φορές καθοδηγούνται από έναν προπονητή. Ένας προπονητής έχει ένα επίπεδο διαπίστευσης (accreditation Level) και μια σειρά από χρόνια εμπειρίας, και μπορεί να προπονεί πολλές ομάδες. Οι προπονητές και οι παίκτες είναι άνθρωποι, και οι άνθρωποι έχουν ονόματα και διευθύνσεις. Σχεδιάστε ένα διάγραμμα κλάσης για αυτές τις πληροφορίες, περιλαμβάνοντας ονόματα και πολλαπλότητες στις συσχετίσεις, όπου αυτές απαιτούνται.

Διαγράμματα Κλάσεων - Άσκηση: «Πρωτάθλημα Χόκεϊ» - (2/2) Σημειώσεις: ο αρχηγός (captain) θα μπορούσε εναλλακτικά να παρουσιαστεί ως μία δεύτερη συσχέτιση με όνομα μεταξύ παίκτη και ομάδας. Παραδοχές: Κάθε παίκτης παίζει μόνον σε μία ομάδα, κάθε αρχηγός ηγείται μίας ομάδας, κάθε ομάδα παίζει μόνο σε ένα πρωτάθλημα.

Διαγράμματα Κλάσεων - Άσκηση: «Εταιρία» - (1/2) Μια εταιρία αποτελείται από τμήματα. Τα τμήματα λαμβάνουν χώρα σε ένα η περισσότερα γραφεία. Ένα γραφείο ενεργεί ως «κύριο/αρχηγείο (headquarter)». Κάθε τμήμα έχει έναν manager ο οποίος έχει οριστεί από το σύνολο των εργαζομένων. Μοντελοποιήστε το σύστημα για την εταιρία, φτιάχνοντας το κατάλληλο διάγραμμα κλάσεων.

Διαγράμματα Κλάσεων - Άσκηση: «Εταιρία» - (2/2)

Διαγράμματα Κλάσεων - Άσκηση: «Εταιρία Υπάλληλος - Διευθυντής» - Αν αλλάξουμε λίγο τα ζητούμενα του προηγούμενου διαγράμματος..

Διαγράμματα Κλάσεων - Άσκηση: «Μηχάνημα Αυτόματης Πώλησης» - (1/4) Μοντελοποιήστε με ένα διάγραμμα κλάσεων το ακόλουθο σύστημα: Μηχάνημα Αυτόματης Πώλησης. Ένα μηχάνημα αυτόματης πώλησης πουλάει μικρά, πακεταρισμένα, έτοιμα προϊόντα για φάγωμα (chocolate bars, cookies, candies, κ.α..). Κάθε προϊόν (item) έχει μία τιμή και ένα όνομα. Ένας πελάτης μπορεί να αγοράσει ένα προϊόν (item), χρησιμοποιώντας μία έξυπνη κάρτα -smart card -(η οποία έχει εκδοθεί από την εταιρία του μηχανήματος αυτόματης πώλησης) για να πληρώσει γι αυτό. Κανένας άλλος τρόπος πληρωμής δεν επιτρέπεται (π.χ. cash, credit card). Στην έξυπνη κάρτα καταγράφεται η ποσότητα των διαθέσιμων χρημάτων -υπόλοιπο-. Οι λειτουργίες που υποστηρίζονται από το σύστημα είναι: Πώληση ενός προϊόντος (επιλογή από μια λίστα προϊόντων, πληρωμή προϊόντος, διανομή προϊόντος) Επανατροφοδότηση του Μηχανήματος Ρύθμιση του μηχανήματος (ορισμός των πωληθέντων προϊόντων και της τιμής των προϊόντων) Παρακολούθηση του μηχανήματος (αριθμός προϊόντων που πουλήθηκαν, αριθμός προϊόντων που πουλήθηκαν ανά είδος, συνολικό κέρδος) Το σύστημα μπορεί να χρησιμοποιηθεί από έναν πελάτη, έναν εργαζόμενο μηχανικό συντήρησης του μηχανήματος (ο οποίος ανατροφοδοτεί με προϊόντα το μηχάνημα), και έναν administrator (που ρυθμίζει το μηχάνημα).

Διαγράμματα Κλάσεων - Άσκηση: «Μηχάνημα Αυτόματης Πώλησης» - (2/4)

Διαγράμματα Κλάσεων - Άσκηση: «Μηχάνημα Αυτόματης Πώλησης» - (3/4) Η λύση αυτή δεν είναι λάθος, αλλά η προηγούμενη είναι καλύτερη. Οι επιπλέον κλάσεις έχουν νόημα σε ένα διάγραμμα περιπτώσεων χρήσης (actors). Προδιαγραφές: δεν μας ενδιαφέρει να αποτυπώσουμε ποιος χρήστης αγόρασε κάτι ή να αποτυπώσουμε το id της έξυπνης κάρτας του (πχ. Δεν μας ενδιαφέρει αν ο Mario Rossi αγόρασε μία σοκολάτα με την smart card # 1). Μπορούμε να διακρίνουμε ότι δε χρειάζονται επειδή δεν αναλύεται στην περιγραφή κάποιο ιδιαίτερο χαρακτηριστικό τους. Αποφεύγω τις κλάσεις αυτές στο class diagram, ενώ είναι πολύ σημαντικό να παρουσιάζω ως actors στο use case diagram τους: Customer, Administrator και Employee.

Διαγράμματα Κλάσεων - Άσκηση: «Μηχάνημα Αυτόματης Πώλησης» - (4/4)

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

Διαγράμματα Κλάσεων - Παράδειγμα: «Δημοπρασία» - (2/2)

Παράδειγμα Διαγράμματος Κλάσεων - «Σύστημα Πανεπιστημιακών Εγγράφων» - (1/3) Βρείτε και σχεδιάστε τις κλάσεις για ένα σύστημα πανεπιστημιακών εγγραφών με τις απαιτήσεις: Κάθε πτυχίο έχει έναν αριθμό υποχρεωτικών και έναν αριθμό μαθημάτων επιλογής. Κάθε μάθημα έχει μία αξία σε credits και προσφέρεται σε κάποιο εξάμηνο. Έχει μέγιστο αριθμό φοιτητών. Ένα μάθημα μπορεί να είναι μέρος οποιουδήποτε προγράμματος σπουδών, είτε σαν υποχρεωτικό ή σαν επιλογής. Κάθε πτυχίο ορίζει ένα minimum σύνολο credits για την ολοκλήρωσή του. Οι φοιτητές μπορούν να συνδυάσουν μαθήματα σε προγράμματα σπουδών που να ταιριάζουν στις ανάγκες τους και να οδηγούν σε κάποιο πτυχίο, αρκεί να μην υπάρχουν αλληλοκαλύψεις στο ωρολόγιο πρόγραμμα του εξαμήνου.

Παράδειγμα Διαγράμματος Κλάσεων - «Σύστημα Πανεπιστημιακών Εγγράφων» - (2/3) Πιθανές Κλάσεις: -- Μάθημα (course) -- Πτυχίο (degree) -- Φοιτητής (student) -- Προσφορά Μαθήματος (Course_Offering) -- Υποχρεωτικό Μάθημα (Compulsory_Course) -- Μάθημα Επιλογής (Elective_Course) -- Πρόγραμμα Σπουδών (Study_Program)

Παράδειγμα Διαγράμματος Κλάσεων - «Σύστημα Πανεπιστημιακών Εγγράφων» - (3/3) Προσθέτοντας associations: Προσθέτοντας aggregations:

Παράδειγμα Διαγράμματος Κλάσεων - «Σύστημα Αεροπορικών Κρατήσεων» - (1/3) ΠΕΡΙΓΡΑΦΗ ΣΥΣΤΗΜΑΤΟΣ: Αεροπορικές εταιρίες προσφέρουν διάφορες πτήσεις. Κάθε πτήση ανοίγει και κλείνει για κρατήσεις. Ο πελάτης μπορεί να κάνει κρατήσεις για μία ή περισσότερες πτήσεις για επιβάτες. Κάθε κράτηση αφορά μία πτήση και έναν επιβάτη. Μία κράτηση επιβεβαιώνεται ή ακυρώνεται. Κάθε πτήση έχει αεροδρόμιο αναχώρησης και προορισμού Κάθε πτήση έχει ημερομηνία & ώρα αναχώρησης και άφιξης Μία πτήση μπορεί να έχει ενδιάμεσες στάσεις σε αεροδρόμια Η στάση έχει ώρα άφιξης και αναχώρησης Κάθε αεροδρόμιο εξυπηρετεί μία ή περισσότερες πόλεις

Παράδειγμα Διαγράμματος Κλάσεων - «Σύστημα Αεροπορικών Κρατήσεων» - (2/3) Πιθανές Κλάσεις: -- Αεροπορική Εταιρία -- Πτήση -- Αεροδρόμιο -- Πελάτης -- Κράτηση -- Επιβάτης

Παράδειγμα Διαγράμματος Κλάσεων - «Σύστημα Αεροπορικών Κρατήσεων» - (3/3)

Παράδειγμα Διαγράμματος Κλάσεων - «Σύστημα Video Club» - (1/3) Σχεδιάστε το διάγραμμα κλάσεων (κλάσεις, συσχετίσεις) για το παρακάτω σύστημα που περιγράφει τις λειτουργίες ενός Video Club. Στο σύστημα υπάρχει μία μεγάλη συλλογή από τίτλους ταινιών (movie title) Η ταινία μπορεί να προσφέρεται ως κασέτα (tape) ή δίσκος (disk) Το είδος της κασέτας είναι VHS, BETA και του δίσκου DVD Κάθε ταινία ενοικιάζεται για κάποια χρονική περίοδο και υπάρχει ένα κόστος Το κατάστημα θα πρέπει να ξέρει ανά πάσα στιγμή αν μία ταινία είναι νοικιασμένη ή όχι (condition) και πόσα διαθέσιμα αντίγραφα υπάρχουν. Η τιμή ενοικίασης είναι διαφορετική για κασέτα ή δίσκο

Παράδειγμα Διαγράμματος Κλάσεων Πιθανές Κλάσεις: -- MovieTitle -- VideoTape -- VideoDisk -- DVDDisk -- VHSTape -- BetaTape -- Rental -- VideoMedium - «Σύστημα Video Club» - (2/3)

Παράδειγμα Διαγράμματος Κλάσεων - «Σύστημα Video Club» - (3/3)