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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

1 Ανάλυση και Σχεδιασμός ΠΣ Σχεδίαση: Σχεδίαση Κλάσεων και Μεθόδων Καθ. Κωνσταντίνος Ταραμπάνης, Αν. Καθ. Ευθύμιος Ταμπούρης, 1

2 Πρόγραμμα Παραδόσεων 1. Φάσεις ΑΣΠΣ και η Φάση Προετοιμασίας 2. Μεθοδολογίες Ανάπτυξης ΠΣ 3. Ανάλυση: Επιχειρηματική μοντελοποίηση - activity diagrams 4. Ανάλυση: Προσδιορισμός Απαιτήσεων - use case diagrams 5. Ανάλυση: Λειτουργική μοντελοποίηση - use case descriptions και διεπαφές 6. Ανάλυση: Λειτουργική μοντελοποίηση - use case points 7. Ανάλυση: Δομική Μοντελοποίηση - class/object diagrams 8. Σχεδίαση: Στρατηγικές, Ανάλυση ευρωστίας - robustness diagrams 9. Σχεδίαση: Μοντελοποίηση Συμπεριφοράς - sequence & state diagrams 10. Σχεδίαση: Σχεδίαση κλάσεων και μεθόδων - class diagrams 11. Σχεδίαση: Διαγράμματα Φυσικής Αρχιτεκτονικής - deployment diagrams 12. Υλοποίηση: Μετατροπή UML σε Java Ε. Ταμπούρης & Κ. Ταραμπάνης 2

3 Μαθησιακά Αποτελέσματα Στο τέλος του μαθήματος, οι φοιτητές θα είναι σε θέση να: ερμηνεύουν τις βασικές αρχές της αντικειμενοστρέφειας και τις σχέσεις μεταξύ των κλάσεων εξετάζουν τις σχέσεις μεταξύ των κλάσεων και των συστατικών τους εφαρμόζουν τις αρχές των διαγραμμάτων κλάσεων ερμηνεύουν τα διαγράμματα κλάσεων και τις σχέσεις μεταξύ των κλάσεων δημιουργούν διαγράμματα κλάσεων προδιαγράφουν περιορισμούς, συμβόλαια και προδιαγραφές μεθόδων Ε. Ταμπούρης & Κ. Ταραμπάνης 3

4 Εισαγωγή Το σημαντικότερο βήμα του σχεδιασμού είναι ο σχεδιασμός των επιμέρους κλάσεων και μεθόδων Παρά την ύπαρξη βιβλιοθηκών και έτοιμων έτοιμου κώδικα σε μορφή components, ο λεπτομερής σχεδιασμός είναι κρίσιμη δραστηριότητα Ο λεπτομερής σχεδιασμός βασίζεται στην Ανάλυση Ο λεπτομερής σχεδιασμός όλων των υπολοίπων επιπέδων βασίζεται στο σχεδιασμό του επιπέδου του problem domain Ε. 4 Ταμπούρης & Κ. Ταραμπάνης

5 Περιεχόμενα Βασικά Χαρακτηριστικά Αντικειμενοστρέφειας Διαγράμματα Κλάσεων: Γνωρίσματα, Λειτουργίες και Σχέσεις Διαγράμματα Κλάσεων: Πολλαπλότητα Διαγράμματα Κλάσεων: Προχωρημένες έννοιες Δραστηριότητες Σχεδίασης Αντικειμένων Περιορισμοί (Constraints) και Συμβόλαια (Contracts) Προδιαγραφή Μεθόδων Περίληψη Ε. 5 Ταμπούρης & Κ. Ταραμπάνης

6 Επίπεδα Αφαίρεσης (Levels of Abstraction) A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010 Ε. 6 Ταμπούρης & Κ. Ταραμπάνης

7 Στοιχεία Αντικειμενοστρέφειας Κλάσεις (Classes): ορίζουν τα δεδομένα και τις λειτουργίες που περιέχει κάθε αντικείμενο Αντικείμενα (Objects): instances από κλάσεις Γνωρίσματα (Attributes): περιγράφουν τα δεδομένα του αντικειμένου Καταστάσεις (States): ορίζονται από τις τιμές των γνωρισμάτων και τις σχέσεις με άλλα αντικείμενα μια δεδομένη στιγμή Μέθοδοι (Methods): ορίζουν τι λειτουργίες μπορεί να κάνει ένα αντικείμενο Μηνύματα (Messages): είναι ουσιαστικά μια κλήση συνάρτησης ή ρουτίνας από ένα αντικείμενο προς ένα άλλο Ε. 7 Ταμπούρης & Κ. Ταραμπάνης

8 Ενθυλάκωση (Encapsulation) και Απόκρυψη Πληροφοριών Είναι ο μηχανισμός που συνενώνει τις λειτουργίες και τα δεδομένα σε ένα αντικείμενο Το περιεχόμενο (δεδομένα) ενός αντικειμένου είναι κρυμμένα και άρα μη γνωστά και μη προσπελάσιμα από τον εξωτερικό κόσμο Η επικοινωνία γίνεται μόνο μέσω των μεθόδων του αντικειμένου Αποτελεί κλειδί για την επαναχρησιμοποίηση (reusability) Ε. 8 Ταμπούρης & Κ. Ταραμπάνης

9 Πολυμορφισμός (Polymorphism) Είναι η δυνατότητα να έχει κάποιος διαφορετικές μορφές Το ίδιο μήνυμα εκκινεί διαφορετικές μεθόδους σε διαφορετικά αντικείμενα Η δυναμική σύνδεση (dynamic binding) σημαίνει πως διαφορετικοί μέθοδοι επιλέγονται σε χρόνο εκτέλεσης (run time) Π.χ. Μέθοδος «compute payment» για μόνιμους και ωρομίσθιους Η υλοποίηση του dynamic binding εξαρτάται από τη γλώσσα προγραμματισμού Απαιτείται προσοχή: πολλά λάθη συμβαίνουν μόνο κατά την εκτέλεση (είναι run time errors) Επίσης απαιτείται προσοχή στη διασφάλιση της εννοιολογικής συνέπειας (semantic consistency) Π.χ. Όλες οι μέθοδοι με το ίδιο όνομα πρέπει να υλοποιούν την ίδια γενική λειτουργία όχι compute payment για υπαλλήλους και πελάτες Ε. 9 Ταμπούρης & Κ. Ταραμπάνης

10 Κληρονομικότητα (Inheritance) Απλή κληρονομικότητα μια κλάση γονέας Πολλαπλή κληρονομικότητα πολλές κλάσεις γονείς Υπάρχει δυνατότητα να επανακαθοριστούν κάποια ή όλα από τα γνωρίσματα (attributes) και/ή τις μεθόδους (methods) της υπερκλάσης (superclass) Προσοχή στις διενέξεις κληρονομικότητας (inheritance conflicts) Οι περισσότερες διενέξεις είναι λόγω κακής κατηγοριοποίησης Ε. 10 Ταμπούρης & Κ. Ταραμπάνης

11 Rumbaugh s Rules Οι λειτουργίες ερωτημάτων (Query operations) δεν πρέπει να επανακαθορίζονται Οι μέθοδοι που επανακαθορίζουν κληρονομημένες μεθόδους θα πρέπει μόνο να περιορίζουν τη σημασιολογία των κληρονομημένων Η σημασιολογία των κληρονομημένων μεθόδων δεν θα πρέπει να αλλάζει ποτέ Η υπογραφή - signature (δηλαδή η λίστα παραμέτρων - argument list) των κληρονομημένων μεθόδων δεν θα πρέπει να αλλάζει ποτέ Ε. 11 Ταμπούρης & Κ. Ταραμπάνης

12 Επιπλέον διενέξεις από πολλαπλή κληρονομικότητα Δύο κληρονομημένα γνωρίσματα ή μέθοδοι έχουν το ίδιο όνομα και σημασιολογία Δύο κληρονομημένα γνωρίσματα ή μέθοδοι έχουν διαφορετικό όνομα αλλά ίδια σημασιολογία (συνώνυμα) Δύο κληρονομημένα γνωρίσματα ή μέθοδοι έχουν ίδιο όνομα αλλά διαφορετική σημασιολογία (ομώνυμα) Ε. 12 Ταμπούρης & Κ. Ταραμπάνης

13 Διενέξεις κληρονομικότητας από πολλαπλή κληρονομικότητα Ίδιο όνομα, ίδια σημασιολογία Διαφορετικό όνομα, πιθανώς ίδια σημασιολογία Χρόνος που τρέχει 1 km Χρόνος μεταξύ checkup A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010??? Ε. 13 Ταμπούρης & Κ. Ταραμπάνης

14 Περιεχόμενα Βασικά Χαρακτηριστικά Αντικειμενοστρέφειας Διαγράμματα Κλάσεων: Γνωρίσματα, Λειτουργίες και Σχέσεις Διαγράμματα Κλάσεων: Πολλαπλότητα Διαγράμματα Κλάσεων: Προχωρημένες έννοιες Δραστηριότητες Σχεδίασης Αντικειμένων Περιορισμοί (Constraints) και Συμβόλαια (Contracts) Προδιαγραφή Μεθόδων Περίληψη Ε. 14 Ταμπούρης & Κ. Ταραμπάνης

15 Δομικά Μοντέλα Ένα δομικό μοντέλο structural model περιγράφει την δομή των δεδομένων που υποστηρίζει τις διαδικασίες μιας επιχείρησης ή ενός οργανισμού Η δομή αυτή των δεδομένων αναπαρίσταται με Διαγράμματα κλάσεων - Class diagrams Διαγράμματα αντικειμένων - Object diagrams Αναπαράσταση πραγμάτων, εννοιών, προσώπων, τοποθεσιών του πεδίου εφαρμογής και πώς σχετίζονται μεταξύ τους σε εννοιολογικό και όχι φυσικό επίπεδο σε αυτό το στάδιο της ανάλυσης Στο στάδιο του σχεδιασμού μετεξέλιξη του εννοιολογικού μοντέλου σε μοντέλο σχεδιασμού Π.χ. Πώς θα αποθηκευθούν Π.χ. Programming objects έτσι δημιουργείται ένα λεξιλόγιο για τους αναλυτές και τους χρήστες και μειώνεται το «εννοιολογικό χάσμα» μεταξύ του πραγματικού κόσμου και του χώρου του λογισμικού Ε. Ταμπούρης & Κ. Ταραμπάνης 15

16 Διάγραμμα Κλάσεων Class Diagrams Περιέχει για τις κλάσεις στοιχεία κατάστασης με βάση τα γνωρίσματα και συμπεριφοράς με βάση τις λειτουργίες καθώς και τις σχέσεις μεταξύ των κλάσεων Είναι ένα στατικό μοντέλο δεν μεταβάλλεται στο χρόνο Ε. Ταμπούρης & Κ. Ταραμπάνης 16

17 Απεικόνιση των Κλάσεων A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010 Systems Analysis and Design with UML,Dennis, Wixom, Tegarden Ε. 17 Ταμπούρης & Κ. Ταραμπάνης

18 Απεικόνιση των Κλάσεων Μια κλάση (class): Αναπαριστά ένα είδος ατόμου, μέρους ή πράγματος για το οποίο το σύστημα πρέπει να συγκεντρώσει ή να αποθηκεύσει πληροφορίες Έχει ένα όνομα, μια λίστα γνωρισμάτων και μια λίστα λειτουργιών Ένα γνώρισμα ή ιδιότητα (attribute): Αναπαριστά ιδιότητες που περιγράφουν την κατάσταση ενός αντικειμένου Μπορεί να εξαχθεί από άλλα γνωρίσματα (οπότε χρησιμοποιούμαι /) Μια λειτουργία (operation): Αναπαριστά τις ενέργειες ή τις λειτουργίες που μπορεί να εκτελέσει η κλάση Περιέχει παρενθέσεις που μπορεί να περιέχουν παραμέτρους ή πληροφορίες που χρειάζονται για να εκτελεστεί η λειτουργία Μια σχέση (association) Αναπαριστά μια συσχέτιση μεταξύ πολλαπλών κλάσεων ή μιας κλάσης και του εαυτού της Έχει όνομα μια φράση με ρήμα ή όνομα που υποδηλώνει έναν ρόλο Μπορεί να υπάρχει μεταξύ μιας ή περισσοτέρων κλάσεων Περιέχει σύμβολα που περιέχουν τον ελάχιστο και το μέγιστο αριθμό που τα στιγμιότυπα μιας κλάσης μπορούν να συσχετιστούν με το σχετικό στιγμιότυπο της κλάσης Ε. Ταμπούρης & Κ. Ταραμπάνης 18

19 Γνώρισμα ή Ιδιότητα ορατότητα όνομα : τύπος = προκαθορισμένη_τιμή Η ορατότητα μπορεί να λάβει τις τιμές: δημόσια (public) συμβολίζεται με (+), προστατευμένη (protected) συμβολίζεται με (#) ιδιωτική (private) συμβολίζεται με (-). - μία ιδιότητα με δημόσια ορατότητα είναι απευθείας προσπελάσιμη από άλλες κλάσεις (και αντικείμενα) - μία ιδιότητα με ιδιωτική ορατότητα είναι προσπελάσιμη μόνο από την ίδια την κλάση - μία ιδιότητα με προστατευμένη ορατότητα είναι προσπελάσιμη μόνο από την ίδια την κλάση και τις υποκείμενες κλάσεις της. Α. Χατζηγεωργίου, ΠΛΣ61, Πληροφοριακά Συστήματα, ΕΑΠ. Ε. Ταμπούρης & Κ. Ταραμπάνης

20 Λειτουργίες ΔΠΜΣ στα Πληροφοριακά Συστήματα Οι λειτουργίες των κλάσεων προσδιορίζονται με τον ακόλουθο συμβολισμό: ορατότητα όνομα (λίστα παραμέτρων) : επιστρεφόμενος_τύπος παράμετροι 1,2,, n Αριθμός Μητρώου Όνομα Εύρεση ονόματος φοιτητή επιστρεφόμενος τύπος αλφαριθμητικό Α. Χατζηγεωργίου, ΠΛΣ61, Πληροφοριακά Συστήματα, ΕΑΠ. Ε. Ταμπούρης & Κ. Ταραμπάνης

21 Παραδείγματα - όνομα : string - ΑΜ : string - Ημ.Γεν. : Date Φοιτητής E m p lo y e e - N a m e : S trin g - ID : In te g e r - S a la ry : In te g e r + εγγραφήσεμάθημα(μάθημα x) : boolean + άφησεμάθημα() + εκτύπωσεονομα() + p rin ts a la ry (ID : In te g e r) + p rin tn a m e (ID : In te g e r) Γενικά δεν είναι πρακτικό να αναπαριστώνται όλες οι ιδιότητες και κυρίως όλες οι λειτουργίες. Έτσι οι λειτουργίες get() και set() δεν φαίνονται συνήθως σε διαγράμματα κλάσεων Α. Χατζηγεωργίου, ΠΛΣ61, Πληροφοριακά Συστήματα, ΕΑΠ. Ε. Ταμπούρης & Κ. Ταραμπάνης 21

22 Σχέσεις - Relationships Κατηγορίες σχέσεων Γενίκευση - Generalization a-kind-of Δίδει την δυνατότητα κληρονομικότητας των γνωρισμάτων και των λειτουργιών και μείωσης του πλεονασμού στον ορισμό των κλάσεων Συνάθροιση - Aggregation Συσχετίζει τα μέρη με το όλον A-part-of, has-parts π.χ. the door is a-part-of a car, an employee is a-part-of a department, department is a-part-of an organization Σχέση ή Συσχέτιση - Association Άλλες σχέσεις μεταξύ κλάσεων Ασθενέστερη μορφή σχέσης συνάθροισης Π.χ. A patient schedules an appointment Ε. Ταμπούρης & Κ. Ταραμπάνης 22

23 Γενίκευση - Generalization Δίδει την δυνατότητα κληρονομικότητας των γνωρισμάτων και των λειτουργιών και μείωσης του πλεονασμού στον ορισμό των κλάσεων Υπερκλάση που περιέχει τα βασικά γνωρίσματα και τις λειτουργίες που θα χρησιμοποιηθούν σε διάφορες υποκλάσεις Οι υποκλάσεις θα περιέχουν τα μοναδικά για αυτές γνωρίσματα και λειτουργίες Σχέση a-kind-of Η άλλη όψη: ειδίκευση specialization Γενίκευση ειδίκευση σε πολλαπλά επίπεδα - hierarchies Άτομο -Όνομα -Επίθετο -Διεύθυνση Υπάλληλος -ΑΦΜ Πελάτης -Ασφάλεια Ε. Ταμπούρης & Κ. Ταραμπάνης 23

24 Συνάθροιση ή Συναρμολόγηση (aggregation) Συσχετίζει τα μέρη με το όλον A-part-of, has-parts, a-member-of, contained-in, related-to, associated-with Μπορεί να γίνει σε πολλαπλά επίπεδα hierarchies Η άλλη όψη: κατάτμηση - decomposition Όχημα Μηχανή Σκελετός Ρόδες Ε. Ταμπούρης & Κ. Ταραμπάνης 24

25 Σχέση ή Συσχέτιση - Association Οι διάφορες άλλες σχέσεις μεταξύ κλάσεων Δεν ανήκουν στις άλλες δύο κατηγορίες Παίκτης Παίζει σε Ομάδα Όταν μια κλάση συσχετίζεται με μια άλλη, συνήθως η καθεμιά παίζει κάποιο ρόλο στα πλαίσια αυτής της συσχέτισης Π.χ. στη συσχέτιση του παίκτη με την ομάδα του, εάν είναι επαγγελματική, η ομάδα είναι εργοδότης και ο παίκτης ο εργαζόμενος. Παίκτης Παίζει σε Ομάδα Εργαζόμενος Εργοδότης Παίκτης Παίζει σε Έχει προσλάβει Ομάδα Unified Modeling Language", Ν. Σπ. Βώρος & Α. Σπ. Βώρος Ε. Ταμπούρης & Κ. Ταραμπάνης 25

26 Αυτόσυσχέτιση Σχέση μεταξύ διαφορετικών αντικειμένων της ίδιας κλάσης προαπαιτούμενο Μάθημα Α. Χατζηγεωργίου, ΠΛΣ61, Πληροφοριακά Συστήματα, ΕΑΠ. Ε. Ταμπούρης & Κ. Ταραμπάνης 26

27 Περιορισμοί σχέσεων Μερικές φορές μια συσχέτιση μεταξύ δυο κλάσεων πρέπει να υπακούει σε κάποιο κανόνα Καθορίζουμε τον κανόνα βάζοντας ένα περιορισμό (constraint) δίπλα στη γραμμή συσχέτισης Τραπεζικός Εξυπηρετεί Πελάτης {αριθμημένος} Ένας άλλος τύπος περιορισμού είναι η σχέση είτε, που παριστάνεται σαν {είτε} σε μια διακεκομμένη γραμμή που συνδέει δυο γραμμές συσχέτισης Παράδειγμα: ένας μαθητής λυκείου επιλέγει μια ακαδημαϊκή σχολή είτε την αγορά εργασίας Μαθητής Λυκείου Επιλέγει {είτε} Επιλέγει Πανεπιστήμιο/ΤΕΙ ΑγοράΕργασίας Unified Modeling Language", Ν. Σπ. Βώρος & Α. Σπ. Βώρος Ε. Ταμπούρης & Κ. Ταραμπάνης 27

28 Κλάση Συσχέτισης - Association class Μερικές φορές μία ιδιότητα αναγνωρίζεται ως σημαντική για το μοντέλο, ωστόσο δεν εντοπίζεται ότι ανήκει με ιδανικό τρόπο σε κάποια κλάση. Έστω για παράδειγμα η περίπτωση μιας συσχέτισης μεταξύ ενός Φοιτητή και ενός Μαθήματος που παρακολουθεί: π α ρ α κ ο λ ο υ θ εί Φο ιτ η τή ς * * Μάθημα Τ ά ξη Στο τέλος κάθε εξαμήνου, ο φοιτητής λαμβάνει τη βαθμολογία για το μάθημα που παρακολούθησε. Ωστόσο, που ανήκει η ιδιότητα Βαθμός; Δεν πρόκειται για ιδιότητα της κλάσης Φοιτητής διότι ένας φοιτητής δεν λαμβάνει ένα συγκεντρωτικό βαθμό για όλα τα μαθήματα που παρακολούθησε αλλά ένα διαφορετικό βαθμό για κάθε μάθημα. Δεν πρόκειται για ιδιότητα της κλάσης Μάθημα διότι οι φοιτητές που παρακολουθούν ένα μάθημα δεν λαμβάνουν τον ίδιο βαθμό. Α. Χατζηγεωργίου, ΠΛΣ61, Πληροφοριακά Συστήματα, ΕΑΠ. Ε. Ταμπούρης & Κ. Ταραμπάνης

29 Κλάση Συσχέτισης - Association class Εξετάζοντας μία τέτοια κατάσταση, καταλήγουμε στο ότι ο βαθμός είναι στην πραγματικότητα μία ιδιότητα της συσχέτισης μεταξύ ενός αντικειμένου Φοιτητής και ενός αντικειμένου Μάθημα. Στη UML, για τη φιλοξενία ιδιοτήτων που ανήκουν στη συσχέτιση δημιουργούμε μία ξεχωριστή κλάση, γνωστή ως κλάση συσχέτισης (association class), η οποία συμβολίζεται ως εξής: Φο ιτ η τή ς π α ρ α κ ο λ ο υ θ εί * * Τ ά ξη Μάθημα Β α θ μ ο λο γία - Β α θμ ό ς : in t Α. Χατζηγεωργίου, ΠΛΣ61, Πληροφοριακά Συστήματα, ΕΑΠ. Ε. Ταμπούρης & Κ. Ταραμπάνης

30 Κλάση Συσχέτισης - Association class Ωστόσο, κάθε φορά που εντοπίζεται μία κλάση συσχέτισης σε ένα διάγραμμα κλάσεων, θα πρέπει να είναι γνωστό ότι υπάρχει εναλλακτική δυνατότητα αναπαράστασης της ίδιας κατάστασης χωρίς τη χρήση κλάσης συσχέτισης. Στην περίπτωση μιας συσχέτισης πολλά-προς-πολλά στην οποία εμπλέκεται και μία κλάση συσχέτισης, η συσχέτιση μπορεί να διασπαστεί σε δύο ένα-προςπολλά συσχετίσεις, εισάγοντας την κλάση που προηγουμένως ήταν η κλάση συσχέτισης ως 'κανονική' κλάση μεταξύ των δύο άλλων. Φ ο ιτ η τ ή ς 1 λ α μ β ά ν ει * Β α θ μ ο λο γία - Β α θ μ ό ς : in t * κ α τα χ ω ρ εί 1 Τ ά ξη Μάθημα π α ρ α κ ο λ ο υ θ εί Α. Χατζηγεωργίου, ΠΛΣ61, Πληροφοριακά Συστήματα, ΕΑΠ. Ε. Ταμπούρης & Κ. Ταραμπάνης

31 Κλάση Συσχέτισης - Association class Μια σχέση μπορεί να έχει γνωρίσματα και λειτουργίες όπως μια κλάση Η απεικόνιση γίνεται με ένα πλαίσιο συνδεδεμένο με διακεκομμένη γραμμή με την σχέση Παίκτης Ομάδα {εργαζόμενος} {εργοδότης} Συμβόλαιο Μάνατζερ Διαπραγματεύεται Unified Modeling Language", Ν. Σπ. Βώρος & Α. Σπ. Βώρος Ε. Ταμπούρης & Κ. Ταραμπάνης 31

32 Κλάση Συσχέτισης - Association class A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010 Ε. Ταμπούρης & Κ. Ταραμπάνης

33 Περιεχόμενα Βασικά Χαρακτηριστικά Αντικειμενοστρέφειας Διαγράμματα Κλάσεων: Γνωρίσματα, Λειτουργίες και Σχέσεις Διαγράμματα Κλάσεων: Πολλαπλότητα Διαγράμματα Κλάσεων: Προχωρημένες έννοιες Δραστηριότητες Σχεδίασης Αντικειμένων Περιορισμοί (Constraints) και Συμβόλαια (Contracts) Προδιαγραφή Μεθόδων Περίληψη Ε. 33 Ταμπούρης & Κ. Ταραμπάνης

34 Πολλαπλότητα - Multiplicity Πολλαπλότητα (multiplicity) είναι ο αριθμός των αντικειμένων από μία κλάση που σχετίζονται με ένα αντικείμενο σε μία συσχετισμένη κλάση A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010 Ε. 34 Ταμπούρης & Κ. Ταραμπάνης

35 Πολλαπλότητες Κάποιες πολλαπλότητες είναι πιθανά «καθολικές» για όλες τις εφαρμογές σε ένα πεδίο προβλήματος Π.χ. Όταν μιλάμε για 4τροχα αυτοκίνητα, τότε ένα αυτοκίνητο έχει 4 τροχούς ανεξάρτητα από την εφαρμογή που θα δημιουργήσουμε Κάποιες άλλες ωστόσο εξαρτώνται από τη συγκεκριμένη εφαρμογή Π.χ. Σε μια εφαρμογή για ένα πανεπιστήμιο μπορεί ο αριθμός φοιτητών ανά τάξη να είναι 1-60 ενώ σε μια άλλη εφαρμογή για ένα άλλο πανεπιστήμιο να είναι 1-30 (π.χ. διότι έχει μικρότερες αίθουσες ή διότι επιθυμεί πιο ποιοτική εκπαίδευση) Συνεπώς, πολλές φορές οι πολλαπλότητες εξαρτώνται από το υπό ανάπτυξη σύστημα και για το λόγο αυτό απαιτούν ιδιαίτερη προσοχή και κατανόηση των απαιτήσεων (καθώς είναι στενά συνδεδεμένες με τις απαιτήσεις) Ε. Ταμπούρης & Κ. Ταραμπάνης

36 Παραδείγματα Συσχέτισης με Πολλαπλότητα 1 Ένα τιμολόγιο σχετίζεται με μία μόνο παραγγελία. Ωστόσο, μια παραγγελία μπορεί να συσχετίζεται με 0 ή και πολλά τιμολόγια (δεν υπάρχει άνω όριο) Να σχεδιαστεί το domain model A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010 Ε. Ταμπούρης & Κ. Ταραμπάνης

37 Παραδείγματα Συσχέτισης με Πολλαπλότητα Ποια είναι η σχέση μεταξύ ενός πιλότου και ενός αεροσκάφους; Να σχεδιαστεί το domain model (πόσο σημαντική είναι η πολιτική της εταιρίας; Και τελικά οι απαιτήσεις από το νέο σύστημα; Μπορούμε να διαχωρίσουμε πολλαπλότητες που είναι καθολικές για όλο το πεδίο και άλλες που διαφέρουν ανάλογα με τις απαιτήσεις του υπό ανάπτυξη συστήματος;) A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010 Ε. Ταμπούρης & Κ. Ταραμπάνης

38 Παραδείγματα Συσχέτισης με Πολλαπλότητα Ποια είναι η σχέση μεταξύ ρεζέρβας και πορτμπαγκάζ; Να σχεδιαστεί το domain model A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010 Ε. Ταμπούρης & Κ. Ταραμπάνης

39 Παράδειγμα Συνάθροισης με Πολλαπλότητα 1 Ένα αυτοκίνητο έχει 4 τροχούς. Ε. 39 Ταμπούρης & Κ. Ταραμπάνης

40 Παράδειγμα Συνάθροισης με Πολλαπλότητα 2 Το τμήμα της Ιστορίας αποτελείται από πολλούς φοιτητές. Τι πρόβλημα έχει η παραπάνω λύση; Ε. 40 Ταμπούρης & Κ. Ταραμπάνης

41 Παράδειγμα Συνάθροισης με Πολλαπλότητα 3 Μια παραγγελία περιλαμβάνει ένα ή περισσότερα προϊόντα. Τι πρόβλημα βλέπουμε σε αυτή τη λύση; Ε. 41 Ταμπούρης & Κ. Ταραμπάνης

42 Παραδείγματα Συνάθροισης με Πολλαπλότητα 4 Ποια είναι η σχέση μεταξύ τροχού και οχήματος; Τι ισχύει; Ένας τροχός μπορεί να είναι μέρος ενός μόνο οχήματος. Ωστόσο ένα όχημα μπορεί να περιέχει ένα ή περισσότερους τροχούς. Το διάγραμμα είναι: A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010 Ε. Ταμπούρης & Κ. Ταραμπάνης

43 Παραδείγματα Συνάθροισης με Πολλαπλότητα 5 Ποια είναι η σχέση μεταξύ υπαλλήλου και τμήματος; Τι ισχύει; Ένας υπάλληλος ανήκει σε ένα ή περισσότερα τμήματα. Κάθε τμήμα έχει τουλάχιστον ένα υπάλληλο. Το διάγραμμα είναι: A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010 Ε. Ταμπούρης & Κ. Ταραμπάνης

44 Παραδείγματα Συνάθροισης με Πολλαπλότητα 6 Ποια είναι η σχέση μεταξύ φωριαμού και επαγγελματικού χώρου; Τι ισχύει; Ένας επαγγελματικός χώρος περιέχει μηδέν ή κάποιους φωριαμούς. Ωστόσο, ένας φωριαμός ανήκει σε έναν μόνο επαγγελματικό χώρο. Το διάγραμμα είναι: A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010 Ε. Ταμπούρης & Κ. Ταραμπάνης

45 Περιεχόμενα Βασικά Χαρακτηριστικά Αντικειμενοστρέφειας Διαγράμματα Κλάσεων: Γνωρίσματα, Λειτουργίες και Σχέσεις Διαγράμματα Κλάσεων: Πολλαπλότητα Διαγράμματα Κλάσεων: Προχωρημένες έννοιες Δραστηριότητες Σχεδίασης Αντικειμένων Περιορισμοί (Constraints) και Συμβόλαια (Contracts) Προδιαγραφή Μεθόδων Περίληψη Σημείωση: Οι διαφάνειες αυτής της ενότητας έχουν δημιουργηθεί από τον Α. Χατζηγεωργίου στα πλαίσια του μεταπτυχιακού στα Πληροφοριακά Συστήματα του Ελληνικού Ανοικτού Πανεπιστημίου. Ε. 45 Ταμπούρης & Κ. Ταραμπάνης

46 Πλεονάζουσα Πληροφορία 1 Η ύπαρξη μιας συσχέτισης υπονοεί τη χρήση ιδιοτήτων ως «δείκτες» σε όλες τις συσχετιζόμενες κλάσεις: Μάθημα προσφέρεταιως 1 προσφέρεται ως n Τάξη αντιπροσωπεύει Κίνδυνος διπλής παραγωγής ιδιοτήτων στον κώδικα Ε. Ταμπούρης & Κ. Ταραμπάνης

47 Πλεονάζουσα Πληροφορία 2 Συχνά εισάγεται πλεονάζουσα πληροφορία υπό μορφή ιδιοτήτων: getname( ) Καθηγητής όνομα τίτλος μαθήματα προεδρεύει Τμήμα όνομα αριθμόςεισακτέων όνομαπροέδρου Η πληροφορία ορθά ενσωματώνεται εδώ Αλλά κακώς επαναλαμβάνεται εδώ Ε. Ταμπούρης & Κ. Ταραμπάνης

48 Πολλαπλή Κληρονομικότητα Αν μία κλάση έχει πολλαπλές γονικές κλάσεις, κληρονομεί την περιγραφή κάθε μίας από αυτές. Οι ιδιότητες και οι λειτουργίες είναι η ένωση των ιδιοτήτων και λειτουργιών των γονικών κλάσεων. Εργαζόμενος - μισθός : Integer + υπολογισμός φόρου() Πολίτης - Αρ.Ταυτότητας : string + φορολογική έκπτωση() Ιδ. Υπάλληλος - εταιρεία : string Η κλάση αυτή κληρονομεί τις ιδιότητες και λειτουργίες και των δύο γονικών κλάσεων Ε. Ταμπούρης & Κ. Ταραμπάνης

49 Γενίκευση με Πολλαπλότητες Δεν είναι λογικό να υπάρχει πολλαπλότητα σε σχέσεις κληρονομικότητας, καθώς η κληρονομικότητα αφορά κλάσεις και όχι αντικείμενα Γονική Κλάση Υποκείμενη Κλάση Υποδηλώνει ότι κάθε αντικείμενο της υποκείμενης κλάσης είναι ταυτοχρόνως και αντικείμενο της γονικής κλάσης Αν θέλουμε να παραστήσουμε κάποιου είδους σχέση μεταξύ αντικειμένων των δύο κλάσεων, μπορούμε να εισάγουμε μία ξεχωριστή συσχέτιση Άτομο 0..1 είναι σύζυγος του 0..1 Φοιτητής Ε. Ταμπούρης & Κ. Ταραμπάνης

50 Κλάσεις Συσχετίσεων Σε περίπτωση που μία κλάση συσχέτισης υπάρχει σε μία συσχέτιση ένα-προς-πολλά όπως στο ακόλουθο παράδειγμα Κ α θ η γη τ ή ς * ερ γ ά ζ ετα ι γ ια 1 Τ μή μ α Σχέση αιτίου- αιτιατού: ο μοναδικός λόγος που ο καθηγητής έχει ένα μισθό, είναι ότι εργάζεται για ένα τμήμα Μ ισ θ ο δ ο σ ία - μ ισ θ ό ς : flo a t οι ιδιότητες της κλάσης συσχέτισης μπορούν, θεωρητικά, να ενσωματωθούν στην κλάση με πολλαπλότητα πολλά Μείωση της πληροφορίας Κ α θ η γη τ ή ς - μ ισ θ ό ς : flo a t * ερ γ ά ζ ετα ι γ ια η γνώση αυτή χάνεται με την απαλοιφή της κλάσης συσχέτισης 1 Τμ ή μ α Ε. Ταμπούρης & Κ. Ταραμπάνης

51 Μίξη Συμβολισμών Πανεπιστήμιο συσχέτιση κλάσεων σε διαφορετικά επίπεδα μιας σύνθεσης Απόγονοι σε μία σχέση τύπου είναι κληρονομούν τις συσχετίσεις, δηλ. ένας φοιτητής μπορεί να εργάζεται για ένα τμήμα 0..1 χρηματοδοτεί R&D 1 1..* Σχολή ένας καθηγητής μπορεί να είναι σύμβουλος ενός Ατόμου (Καθηγητή ή Φοιτητή). τι θα σήμαινε? 1 συμβουλεύει 1..* 1..* Τμήμα απασχολεί Άτομο * 0..* συμβουλεύει Φοιτητής Ε. Ταμπούρης & Κ. Ταραμπάνης Καθηγητής +σύμβουλος

52 Πότε μια κλάση είναι καλή; Η ανάθεση λειτουργιών σε μια κλάση ισοδυναμεί με ανάθεση "προσωπικότητας" Dan Rawsthorne: "Αν θεωρήσετε τα αντικείμενά σας (κλάσεις) ως ανθρώπους, τότε το σύνολο των λειτουργιών που τους έχουν ανατεθεί αποτελούν ένα είδος προσωπικότητας. Πρέπει να προσέχουμε για την ύπαρξη σχιζοφρενικών αντικειμένων (αντικειμένων με πολλαπλές προσωπικότητες), καθώς ένα αντικείμενο πρέπει να εστιάζει σε ένα συνεκτικό σύνολο λειτουργιών" Ε. Ταμπούρης & Κ. Ταραμπάνης

53 Πότε μια κλάση είναι καλή; Μετά το πέρας της σχεδίασης πρέπει να αξιολογηθεί η ποιότητα του σχεδίου Είναι αρκετά δύσκολο να διαπιστωθεί εάν ένα σχέδιο είναι "καλής" ποιότητας Ωστόσο, είναι εύκολο να διαπιστωθεί η "κακή" ποιότητα λόγω των συμπτωμάτων που θα εμφανίζει Αξιολόγηση Σχεδίασης Συμμόρφωση με διαδεδομένες αρχές σχεδίασης Αξιολόγηση με τη χρήση μετρικών λογισμικού Παραβίαση ευρετικών κανόνων Ε. Ταμπούρης & Κ. Ταραμπάνης

54 Περιεχόμενα Βασικά Χαρακτηριστικά Αντικειμενοστρέφειας Διαγράμματα Κλάσεων: Γνωρίσματα, Λειτουργίες και Σχέσεις Διαγράμματα Κλάσεων: Πολλαπλότητα Διαγράμματα Κλάσεων: Προχωρημένες έννοιες Δραστηριότητες Σχεδίασης Αντικειμένων Περιορισμοί (Constraints) και Συμβόλαια (Contracts) Προδιαγραφή Μεθόδων Περίληψη Ε. 54 Ταμπούρης & Κ. Ταραμπάνης

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

56 Προσθήκη προδιαγραφών Επιβεβαίωση ότι οι κλάσεις είναι επαρκείς και αναγκαίες για το πρόβλημα Τελικός καθορισμός της ορατότητας των γνωρισμάτων και των μεθόδων κάθε κλάσης Καθορισμός της υπογραφής (signature) κάθε μεθόδου της κάθε κλάσης (δηλ. όνομα, λίστα παραμέτρων, τύπο της τιμής που επιστρέφει η μέθοδος) Ορισμός των περιορισμών που πρέπει να ισχύουν για τα αντικείμενα Προσυνθήκες - Pre-conditions Μετασυνθήκες - Post-conditions Αναλλοίωτες συνθήκες - Invariants Χειρισμός εξαιρέσεων exceptions handling Ε. 56 Ταμπούρης & Κ. Ταραμπάνης

57 Προσδιορισμός Ευκαιριών για Επαναχρησιμοποίηση Analysis patterns (μοτίβα ανάλυσης) Design patterns (μοτίβα σχεδιασμού) Χρήσιμη ομαδοποίηση συνεργαζόμενων κλάσεων που παρέχουν λύση σε ένα συνηθισμένο πρόβλημα Frameworks (πλαίσια εργασίας) Ένα σύνολο υλοποιημένων κλάσεων Class Libraries (βιβλιοθήκες κλάσεων) Συνήθως θεματικά εξειδικευμένες Π.χ. Στατιστική, file management, user interface Components (συστατικά στοιχεία) Κομμάτι λογισμικού που παρέχει συγκεκριμένη λειτουργικότητα μέσω συγκεκριμένου API Ε. 57 Ταμπούρης & Κ. Ταραμπάνης

58 Παράδειγμα Design Pattern Whole-Part και Command Processor A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2011 Ε. 58 Ταμπούρης & Κ. Ταραμπάνης To Whole-part υποστηρίζει τις σχέσεις Aggregation και Composition (Apart-of) To Command Processor μας βοηθά να χωρίσουμε το interface ενός αντικειμένου (command) από την εκτέλεση της λειτουργίας (Supplier)

59 Παράδειγμα Design Pattern Forwarder-Receiver pattern Κάποια patterns υποστηρίζουν διαφορετικές αρχιτεκτονικές To Forward-receiver υποστηρίζει την αρχιτεκτονική peer-to-peer A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010 Ε. 59 Ταμπούρης & Κ. Ταραμπάνης

60 Προσδιορισμός Ευκαιριών για Επαναχρησιμοποίηση Συνήθως χρήση Frameworks για την ανάπτυξη αντικειμένων στις στρώσεις physical architecture, human computer interaction, data management Components για την ανάπτυξη αντικειμένων στις στρώσεις Problem domain Human computer interaction Class libraries για την ανάπτυξη αντικειμένων στη στρώση foundation frameworks και components Ε. 60 Ταμπούρης & Κ. Ταραμπάνης

61 Αναδόμηση του Σχεδιασμού Factoring: η διαδικασία διαχωρισμού πτυχών (aspects) από μια μέθοδο ή κλάση σε μια νέα μέθοδο ή κλάση για την απλοποίηση του συνολικού σχεδίου Normalization: για την εύρεση κλάσεων που λείπουν και για την υλοποίηση των σχέσεων association και aggregation ως γνωρίσματα (attributes) Σχέσεις κληρονομικότητας Έλεγχος για να διασφαλισθεί ότι αντιστοιχούν μόνον σε περιπτώσεις generalization/specialization (Α-kind-of) Ε. 61 Ταμπούρης & Κ. Ταραμπάνης

62 Βελτιστοποίηση του Σχεδιασμού Ως τώρα στόχος του σχεδιασμού ήταν η ευκολία κατανόησης Τώρα αντιμετωπίζουμε και την αποδοτικότητα του σχεδιασμού optimization Παραδείγματα Μήκος διαδρομής access paths για να φθάσει ένα μήνυμα από ένα αντικείμενο σε ένα άλλο Αν είναι μακριά η διαδρομή δημιουργία μιας πλεονάζουσας διαδρομής μέσω ενός νέου γνωρίσματος Είναι σωστή η θέση των γνωρισμάτων της κάθε κλάσης; π.χ. μήπως η θέση του γνωρίσματος είναι σε άλλη κλάση και δεν υπάρχει ανάγκη για επικοινωνία μεταξύ καλούσης και καλούμενης κλάσης; Ε. 62 Ταμπούρης & Κ. Ταραμπάνης

63 Βελτιστοποίηση του Σχεδιασμού Παραδείγματα Μελέτη της εξερχόμενης ροής (fan-out) της κάθε μεθόδου δηλ. του αριθμού των μηνυμάτων που αποστέλλει η ίδια η μέθοδος ή/και οι μέθοδοι που καλούνται στη συνέχεια Μεγάλο fan-out μιας μεθόδου σημαίνει ότι θα ωφελούσε η δημιουργία δεικτών για τα γνωρίσματα που χρησιμοποιούνται για την αποστολή μηνυμάτων Μελέτη της σειράς εκτέλεσης των εντολών για πιθανή βελτιστοποίηση Δημιουργία υπολογιζόμενων γνωρισμάτων για την αποφυγή του επαναϋπολογισμού Ε. 63 Ταμπούρης & Κ. Ταραμπάνης

64 Αντιστοίχηση των αντικειμένων του Problem Domain στην γλώσσα προγραμματισμού Αντιστοίχηση των αντικειμένων σε προγραμματιστικές δομές στην γλώσσα προγραμματισμού που επιλέχθηκε Αν η γλώσσα προγραμματισμού έχει δυνατότητα μόνο απλής κληρονομικότητας - single-inheritance language π.χ. Java, Smalltalk, Visual Basic.net: Rule 1a. Μετατροπή των σχέσεων κληρονομικότητας σε σχέσεις 1:1 και XOR μεταξύ τους ή Rule 1b. Ισοπέδωση της ιεραρχίας κληρονομικότητας με την αντιγραφή των γνωρισμάτων και των μεθόδων των επιπλέον υπερκλάσεων στις υποκλάσεις Προτίμηση της λύσης 1a όταν η υπερκλάση είναι concrete και της λύσης 1b όταν η υπερκλάση είναι abstract Αν η γλώσσα προσφέρει αντικείμενα αλλά όχι κληρονομικότητα - Object-Based Language Εφαρμογή των προηγούμενων κανόνων σε όλες τις υπερκλάσεις του problem domain π.χ. Visual Basic 6 ή προηγούμενες εκδόσεις Ε. 64 Ταμπούρης & Κ. Ταραμπάνης

65 Παράδειγμα αν η γλώσσα προσφέρει απλή κληρονομικότητα Rule 1a Rule 1b A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010 Ε. 65 Ταμπούρης & Κ. Ταραμπάνης

66 Παράδειγμα αν η γλώσσα προσφέρει αντικείμενα αλλά όχι κληρονομικότητα - Object-Based Language Rule 1a Rule 1b A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010 Ε. 66 Ταμπούρης & Κ. Ταραμπάνης

67 Υλοποίηση σε μια Παραδοσιακή Γλώσσα Προγραμματισμού Δεν είναι καθόλου καλή ιδέα! Εάν πρέπει να γίνει, τότε το σχέδιο θα πρέπει να ξαναγίνει χωρίς τα παρακάτω: Polymorphism Dynamic binding Encapsulation Information hiding Ε. 67 Ταμπούρης & Κ. Ταραμπάνης

68 Περιεχόμενα Βασικά Χαρακτηριστικά Αντικειμενοστρέφειας Διαγράμματα Κλάσεων: Γνωρίσματα, Λειτουργίες και Σχέσεις Διαγράμματα Κλάσεων: Πολλαπλότητα Διαγράμματα Κλάσεων: Προχωρημένες έννοιες Δραστηριότητες Σχεδίασης Αντικειμένων Περιορισμοί (Constraints) και Συμβόλαια (Contracts) Προδιαγραφή Μεθόδων Περίληψη Ε. 68 Ταμπούρης & Κ. Ταραμπάνης

69 Περιορισμοί (Constraints) και Συμβόλαια (Contracts) Το συμβόλαιο επισημοποιεί την αλληλεπίδραση μεταξύ ενός αντικειμένου server και ενός client, όπου ο client (consumer) είναι ένα instance μιας κλάσης που στέλνει ένα μήνυμα στον server (supplier) που εκτελεί μια από τις μεθόδους του ως απάντηση στο αίτημα Πρακτικά είναι ένα σύνολο περιορισμών και εγγυήσεων Εάν οι περιορισμοί ισχύουν, το αντικείμενο server εγγυάται κάποια καθορισμένη συμπεριφορά Οι περιορισμοί μπορεί να γραφούν σε φυσική γλώσσα (Ελληνικά, δομημένα Αγγλικά, ψευδοκώδικα κλπ) ή σε μια formal γλώσσα (π.χ. UML Object Constraint Language) Ε. 69 Ταμπούρης & Κ. Ταραμπάνης

70 Είδη Περιορισμών Προσυνθήκες - Pre-Conditions Ένας περιορισμός που πρέπει να ισχύει για να επιτραπεί η εκτέλεση μιας μεθόδου Μετασυνθήκες - Post-condition Ένας περιορισμός που πρέπει να ικανοποιείται μετά την εκτέλεση μιας μεθόδου (αλλιώς το αποτέλεσμα της ακυρώνεται) Π.χ. Τα γνωρίσματα δεν μπορούν να πάρουν κάποιες τιμές. Εάν αυτό γίνει, ένα exception θα δημιουργηθεί και το αποτέλεσμα της μεθόδου θα ακυρωθεί Αναλλοίωτες συνθήκες - Invariants Περιορισμοί που πρέπει να ισχύουν για όλα τα στιγμιότυπα μιας κλάσης Π.χ. Έγκυρες τιμές γνωρισμάτων (συμπεριλαμβανομένων αυτών που μοντελοποιούν σχέσεις association και aggregation) Αναφέρονται σε κλάσεις άρα μπορούν να προστεθούν στις CRC κάρτες Ε. 70 Ταμπούρης & Κ. Ταραμπάνης

71 Αναλλοίωτες συνθήκες - Invariants A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2011 Ε. 71 Ταμπούρης & Κ. Ταραμπάνης

72 Συμβόλαια-Contracts Θεωρητικά ένα συμβόλαιο για κάθε ανταλλαγή μηνύματος Πρακτικά ένα συμβόλαιο για κάθε μέθοδο που είναι ορατή Μέρη συμβολαίου (ενδεικτικά): Λίστα κλάσεων ή μεθόδων που στέλνουν μήνυμα στη μέθοδο (από sequence diagram) Ανεπίσημη περιγραφή του τι θα κάνει η μέθοδος αλλά όχι πώς θα το κάνει Μαζί με το Name αποτελούν το signature της μεθόδου A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2011 Ε. 72 Ταμπούρης & Κ. Ταραμπάνης

73 Περιεχόμενα Βασικά Χαρακτηριστικά Αντικειμενοστρέφειας Διαγράμματα Κλάσεων: Γνωρίσματα, Λειτουργίες και Σχέσεις Διαγράμματα Κλάσεων: Πολλαπλότητα Διαγράμματα Κλάσεων: Προχωρημένες έννοιες Δραστηριότητες Σχεδίασης Αντικειμένων Περιορισμοί (Constraints) και Συμβόλαια (Contracts) Προδιαγραφή Μεθόδων Περίληψη Ε. 73 Ταμπούρης & Κ. Ταραμπάνης

74 Προδιαγραφή Μεθόδων (method specification) Γενικές πληροφορίες Γεγονότα Events: τα γεγονότα που εκκινούν (trigger) τη μέθοδο. Η πληροφορία μπορεί να βρίσκεται στα state diagrams Ανταλλαγή μηνυμάτων - Message passing: Ποιά μηνύματα στέλνει και δέχεται η μέθοδος. Η πληροφορία βρίσκεται στα sequence και στα collaboration diagrams Προδιαγραφή Αλγορίθμου Δομημένη γλώσσα - Structured English Ψευδοκώδικας - Pseudocode UML activity diagram Ε. 74 Ταμπούρης & Κ. Ταραμπάνης

75 Παράδειγμα Structured English A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2011 Ε. 75 Ταμπούρης & Κ. Ταραμπάνης

76 Παράδειγμα Ψευδοκώδικα A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2011 Ε. 76 Ταμπούρης & Κ. Ταραμπάνης

77 Φόρμα Εξειδίκευσης των Μεθόδων A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010 Ε. 77 Ταμπούρης & Κ. Ταραμπάνης

78 : revised Class Diagram A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010 Ε. 78 Ταμπούρης & Κ. Ταραμπάνης

79 : Πίσω όψη κάρτας CRC A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010 Ε. 79 Ταμπούρης & Κ. Ταραμπάνης

80 : Contract για την ΛήψηΚριτικής A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010 Ε. 80 Ταμπούρης & Κ. Ταραμπάνης

81 : Προδιαγραφή Μεθόδου ΛήψηΚριτικής A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010 Ε. 81 Ταμπούρης & Κ. Ταραμπάνης

82 : Revised CD Package Diagram A. Dennis, B. H. Wixom, D. Tegarden, Ανάλυση και Σχεδιασμός Συστημάτων με την UML 2.0. Μια αντικειμενοστρεφής Προσέγγιση, 3η έκδοση, (μετάφραση: Γ. Τζίτζικας), Εκδ. Κλειδάριθμος, 2010 Ε. 82 Ταμπούρης & Κ. Ταραμπάνης

83 Περιεχόμενα Βασικά Χαρακτηριστικά Αντικειμενοστρέφειας Διαγράμματα Κλάσεων: Γνωρίσματα, Λειτουργίες και Σχέσεις Διαγράμματα Κλάσεων: Πολλαπλότητα Διαγράμματα Κλάσεων: Προχωρημένες έννοιες Δραστηριότητες Σχεδίασης Αντικειμένων Περιορισμοί (Constraints) και Συμβόλαια (Contracts) Προδιαγραφή Μεθόδων Περίληψη Ε. 83 Ταμπούρης & Κ. Ταραμπάνης

84 Περίληψη Είδαμε τα βασικά χαρακτηριστικά της αντικειμενοστρέφειας Τα διαγράμματα κλάσεων και αντικειμένων δείχνουν τη δομή ενός αντικειμενοστραφούς συστήματος. Τα τελικά διαγράμματα κλάσεων προκύπτουν από τα διαγράμματα ακολουθίας Σύμφωνα με τους Dennis et al. για την μετεξέλιξη των μοντέλων της ανάλυσης σε μοντέλα σχεδιασμού, θα πρέπει να επανεξετάζουμε τα μοντέλα ανάλυσης και κατόπιν να προσθέτουμε πληροφορίες για το περιβάλλον του συστήματος. Γνωρίσαμε τις βασικές ενέργειες σχεδιασμού: Προσθήκη προδιαγραφών Εύρεση ευκαιριών για επαναχρησιμοποίηση Αναδιάρθρωση (restructuring) του σχεδίου Βελτιστοποίηση του σχεδίου Αντιστοίχηση των κλάσεων του σχεδίου σε μια γλώσσα προγραμματισμού Κατανοήσαμε τις έννοιες συμβόλαια και περιορισμοί Είδαμε πως γίνεται η εξειδίκευση των προδιαγραφών των μεθόδων Ε. 84 Ταμπούρης & Κ. Ταραμπάνης

85 Διαβάστε: Dennis: chapter 10 Για τη Φάση του Σχεδιασμού θα πρέπει να συμβουλευτείτε ένα καλό βιβλίο της γλώσσας προγραμματισμού που θα χρησιμοποιήσετε στη Φάση της Υλοποίησης Το βιβλίο θα πρέπει να αναφέρεται περιεκτικά στη συγκεκριμένη εταιρία, πακέτο και έκδοση που θα χρησιμοποιήσετε έτσι θα δείτε τις ιδιαιτερότητες της συγκεκριμένης υλοποίησης της γλώσσας Αυτό θα σας δώσει όλες τις πληροφορίες που χρειάζεστε σχετικά με τις ιδιαιτερότητες της γλώσσας και του πακέτου Σχετικά με τη φάση του Σχεδιασμού και την Αντικειμενοστρέφεια δείτε και τις παραπομπές στο βιβλίο του Dennis. Ε. 85 Ταμπούρης & Κ. Ταραμπάνης

86 Ανοικτά ερευνητικά θέματα Η αντικειμενοστρέφεια συνεχίζει να εξελίσσεται Μαζί με αυτήν και οι τεχνικές Σχεδίασης για αυτήν Τα μοτίβα Σχεδιασμού (design patterns) επίσης συνεχώς επεκτείνονται σε νέους τομείς Ε. 86 Ταμπούρης & Κ. Ταραμπάνης

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

Διαγράμματα Κλάσεων στη Σχεδίαση Διαγράμματα Κλάσεων στη Σχεδίαση περιεχόμενα παρουσίασης Αφηρημένες κλάσεις Ιδιότητες Λειτουργίες Απλοί τύποι Συσχετίσεις Εξάρτηση Διεπαφές αφηρημένες κλάσεις Οι αφηρημένες κλάσεις δεν μπορούν να δημιουργήσουν

Διαβάστε περισσότερα

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

Διαγράμματα UML στην Ανάλυση. Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων Διαγράμματα UML στην Ανάλυση Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων περιεχόμενα παρουσίασης Διαγράμματα κλάσεων Διαγράμματα αντικειμένων διαγράμματα κλάσεων Χρησιμοποιούνται στην ανάλυση

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΔΟΜΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΣΥΜΠΕΡΙΦΟΡΑΣ (9) ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΜΕΣΟΛΟΓΓΙ) ΑΝΑΛΥΣΗ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΔΟΜΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΣΥΜΠΕΡΙΦΟΡΑΣ (9) ΓΙΩΡΓΟΣ ΜΟΥΡΚΟΥΣΗΣ Μηχανικός Η/Υ & Πληροφορικής

Διαβάστε περισσότερα

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

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο 08 Η γλώσσα UML I Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Unified Modeling Language

Διαβάστε περισσότερα

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

Διαχείριση Πληροφοριακών Συστημάτων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Διαχείριση Πληροφοριακών Συστημάτων Ενότητα #7: UML Χρήστος Δρόσος Τμήμα Μηχανικών Αυτοματισμού Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 14/11/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Class Diagrams Διαγράμματα Κλάσεων Άξονες

Διαβάστε περισσότερα

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

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα ΕΙΣΑΓΩΓΗ ΣΤΗ UML UML Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις ιαγράµµατα Παραδείγματα Ορισμός του μοντέλου Αποτελεί µια αφηρηµένη περιγραφή ενός Φυσικού συστήµατος. Αποτελεί ένα σχέδιο για την

Διαβάστε περισσότερα

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

Περιεχόμενο του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Η Αντικειμενοστρεφής Τεχνολογία Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 202-203 Περιεχόμενο του μαθήματος Η έννοια

Διαβάστε περισσότερα

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

Περιεχόμενο του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Απαιτήσεις Λογισμικού Περιπτώσεις χρήσης Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Περιεχόμενο του μαθήματος

Διαβάστε περισσότερα

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

Μοντελοποίηση Συστημάτων. Διαγράμματα Κλάσεων ClassDiagrams Μοντελοποίηση Συστημάτων Διαγράμματα Κλάσεων ClassDiagrams Διαγράμματα Κλάσεων Χρησιμοποιούνται στα βήματα: Ανάλυση απαιτήσεων Π.Σ. Σχεδιασμός Π.Σ. Είναι στατικά διαγράμματα που δείχνουν: Κλάσεις Ιδιότητες

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Κεφάλαιο 2ο. Κατανοώντας την αντικειμενοστρέφεια Περιεχόμενα Πρόλογος... 11 Κεφάλαιο 1ο. Εισαγωγή στη γλώσσα UML 1.1 Προσθέτοντας μια νέα μέθοδο...13 1.2 Πως αναπτύχθηκε η UML...14 1.3 Κατανοώντας την UML...15 1.4 Αναγνωρίζοντας τα επί μέρους τμήματα

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Τεχνολογία Λογισμικού 8ο Εξάμηνο 2018 19 Unified Modeling Language II Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Μοντελοποίηση δομής Διαγράμματα κλάσεων Class diagrams

Διαβάστε περισσότερα

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Μέθοδοι μοντελοποίησης

Μέθοδοι μοντελοποίησης Μέθοδοι μοντελοποίησης Ευθύμιος Ταμπούρης tambouris@uom.gr Περιεχόμενα Ο ρόλος των μοντέλων Διαγράμματα Δραστηριοτήτων Διαγράμματα Περιπτώσεων Χρήσης Διαγράμματα Κλάσεων Διαγράμματα Ακολουθίας Διαγράμματα

Διαβάστε περισσότερα

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

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο 09 Η γλώσσα UML I Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Εαρινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Unified Modeling Language

Διαβάστε περισσότερα

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

public void printstatement() { System.out.println(Employee:  + name +  with salary:  + salary); Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας

Διαβάστε περισσότερα

Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές

Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές Ελληνικό Ανοικτό Πανεπιστήμιο ΓΤΠ61 Πληροφορική Πολυμέσα Αγγελική Μαζαράκη Τι είναι η UML Είναι μια γραφική γλώσσα μοντελοποίησης συστημάτων.

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Μοντελοποίηση Πεδίου Μοντελοποίηση Πεδίου περιεχόμενα παρουσίασης Εννοιολογικές κλάσεις Συσχετίσεις εννοιολογικών κλάσεων Τύποι ιδιοτήτων Γενίκευση Συχνά σφάλματα μοντελοποίησης πεδίου Εννοιολογικές κλάσεις και κλάσεις λογισμικού

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

UML: Unified modelling language

UML: Unified modelling language UML: Διαγράμματα UML: Unified modelling language Γλώσσα μοντελοποίησης για ανάλυση και σχεδιασμό Παρέχει το συμβολισμό για ανάλυση και σχεδιασμό. Είναι γλώσσα συμβολισμού. Δεν είναι ολόκληρη μεθοδολογία.

Διαβάστε περισσότερα

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

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ. Καθηγητής

Διαβάστε περισσότερα

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

Τα διαγράµµατα κλάσεων 1 Ελληνικό Ανοικτό Πανεπιστήµιο Τα διαγράµµατα κλάσεων ρ. Πάνος Φιτσιλής 2 Περιεχόµενα Βασικές έννοιες µοντέλου κλάσεων Βασικές συσχετίσεις Παραδείγµατα 3 ιαγράµµατα κλάσεων (class diagrams) Είναι το βασικότερο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αρχές Τεχνολογίας Λογισμικού Αρχές Τεχνολογίας Λογισμικού Επισκόπηση του μαθήματος 2 Διδάσκοντες ΘΕΩΡΙΑ Νίκος Παπαδάκης ΕΡΓΑΣΤΗΡΙΟ Αϊβαλής Κώστας costis@teicrete.gr Κονδυλάκης Χάρης kondylak@gmail.com 3 Το μάθημα στο πρόγραμμα σπουδών

Διαβάστε περισσότερα

Τα στοιχεία των ΠΣ στο πλαίσιο της ΔΔ Μοντέλο Δεδομένων Data Model

Τα στοιχεία των ΠΣ στο πλαίσιο της ΔΔ Μοντέλο Δεδομένων Data Model Κωνσταντίνος Ταραμπάνης Καθηγητής kat@uom.gr Τα στοιχεία των ΠΣ στο πλαίσιο της ΔΔ Μοντέλο Δεδομένων Data Model ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΙ ΚΑΙ ΔΗΜΟΣΙΑ ΔΙΟΙΚΗΣΗ - Κ. - Κ. ΤΑΡΑΜΠΑΝΗΣ 2015 2015 1/ 1 Σχέσεις

Διαβάστε περισσότερα

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Αλληλεπίδρασης. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Αλληλεπίδρασης Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

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

ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Sites:

Διαβάστε περισσότερα

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

02 Αντικειμενοστρεφής Προγραμματισμός 02 Αντικειμενοστρεφής Προγραμματισμός Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Εαρινό εξάμηνο 2016 17 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Αντικειμενοστρέφεια Στον προγραμματισμό object

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ανάλυση Πληροφοριακών Συστημάτων. Εαρινό Εξάμηνο Lec08 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Ανάλυση Πληροφοριακών Συστημάτων Εαρινό Εξάμηνο 2018-2019 Lec08 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Διαγράμματα Κλάσεων Τα βασικά στοιχεία Διαλέξεις παρουσιάσεις Το υλικό του μαθήματος στηρίζεται

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα #8: Μοντέλο σχεδίασης Σταμέλος Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

06 Αντικειμενοστρεφής ανάλυση και σχεδιασμός

06 Αντικειμενοστρεφής ανάλυση και σχεδιασμός 06 Αντικειμενοστρεφής ανάλυση και σχεδιασμός Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Εαρινό εξάμηνο 2016 17 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Αφαίρεση Abstraction "Η εννοιολογική

Διαβάστε περισσότερα

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

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 1: Αντικειμενοστραφής Προγραμματισμός Εισαγωγή OBJECT-ORIENTED PROGRAMMING ΔΙΔΑΣΚΟΝΤΕΣ: Iωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

. Μεθοδολογία Προγραμματισμού. Abstract Κλάσεις και Interfaces. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014 .. Μεθοδολογία Προγραμματισμού Abstract Κλάσεις και Interfaces Νικόλαος Πεταλίδης Τμήμα Μηχανικών Η/Υ ΤΕΙ Κεντρικής Μακεδονίας Εισαγωγή Εαρινό Εξάμηνο 2014 Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία

Διαβάστε περισσότερα

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

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 5: Διαγράμματα Κλάσης (1ο Μέρος) Πληροφοριακά Συστήματα Διοίκησης Ενότητα 5: Διαγράμματα Κλάσης (1ο Μέρος) Γρηγόριος Μπεληγιάννης Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων και Τροφίμων

Διαβάστε περισσότερα

Διαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων

Διαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων Διαγράμματα UML στην Ανάλυση Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων περιεχόμενα παρουσίασης Διαγράμματα επικοινωνίας Διαγράμματα ακολουθίας Διαγράμματα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Κλάσεων. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Κλάσεων Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Αντικειμενοστρεφής Ανάλυση Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

Διάγραμμα Κλάσεων. Class Diagram Διάγραμμα Κλάσεων Class Diagram Γενικά Ορίζει τις κλάσεις αντικειμένων σε ένα σύστημα, τις μεθόδους και τις συναρτήσεις τους, και τις συσχετίσεις μεταξύ των κλάσεων. Περιγράφουν την δομή και συμπεριφορά

Διαβάστε περισσότερα

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

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία 1 Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στην αντικειµενοστρεφή τεχνολογία ρ. Πάνος Φιτσιλής Περιεχόµενα Γιατί µοντελοποιούµε Εισαγωγή στη UML Ένα απλό παράδειγµα 2 Γιατί µοντελοποιούµε; Ησηµασία της µοντελοποίησης

Διαβάστε περισσότερα

Αρχιτεκτονική Λογισμικού

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

Διαβάστε περισσότερα

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Χειμερινό Εξάμηνο 2013 - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ Δρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 Αρχιτεκτονική

Διαβάστε περισσότερα

Σχεδίαση Λογισμικού. Σημείωση

Σχεδίαση Λογισμικού. Σημείωση Το έργο υλοποιείται στο πλαίσιο του υποέργου 2 με τίτλο «Ανάπτυξη έντυπου εκπαιδευτικού υλικού για τα νέα Προγράμματα Σπουδών» της Πράξης «Ελληνικό Ανοικτό Πανεπιστήμιο» η οποία έχει ενταχθεί στο Επιχειρησιακό

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ. Ι. Ψαρομήλιγκος Χ. Κυτάγιας

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ. Ι. Ψαρομήλιγκος Χ. Κυτάγιας ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Προγραμματισμός Η/Υ Ενότητα 6 η : Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα Λογιστικής

Διαβάστε περισσότερα

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 Μ6. Φάσεις ανάπτυξης λογισμικού: προδιαγραφές, σχεδίαση, υλοποίηση, επαλήθευση, τεκμηρίωση, συντήρηση προγραμμάτων Δρ. Γεώργιος Παπαλάμπρου Επικ.

Διαβάστε περισσότερα

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

Μέθοδοι. Υποσυστήµατα και πακέτα. Μοντέλα αντικειµενοστραφούς σχεδίασης. Αντικειµενοστραφής Σχεδίαση. Στα πρώτα στάδια της ανάλυσης Αντικειµενοστραφής Σχεδίαση Αντώνης Καραγεώργος Τµήµα Μηχανικών Η/Υ και ικτύων Πανεπιστήµιο Θεσσαλίας karageorgos@inf.uth.gr Μέθοδοι Στα πρώτα στάδια της γράφουµε µόνο τα ονόµατα των µεθόδων Γράφουµε τις

Διαβάστε περισσότερα

Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων

Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων ΕΣΔ516 Τεχνολογίες Διαδικτύου Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων Περιεχόμενα - Βιβλιογραφία Ενότητας Περιεχόμενα Ορισμοί Συστατικά στοιχεία εννοιολογικής σχεδίασης Συστατικά

Διαβάστε περισσότερα

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

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης ΠΟΛΥΜΟΡΦΙΣΜΟΣ Λόγω της θεμελιώδους σημασίας της έννοιας του πολυμορφισμού (polymorphism) στην αντικειμενοστρεφή σχεδίαση, κρίνεται σκόπιμο στο σημείο αυτό του βιβλίου να αναλυθεί εκτενέστερα. Ο πολυμορφισμός

Διαβάστε περισσότερα

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

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού Πρόλογος...21 μέρος A Εισαγωγή στην Τεχνολογία Λογισμικού 1 Εισαγωγή στην Τεχνολογία Λογισμικού 1.1 Το λογισμικό...25 1.1.1 Ο ρόλος και η σημασία του λογισμικού...26 1.1.2 Οικονομική σημασία του λογισμικού...28

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 3/12/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Physical Diagrams Διαγράμματα Υλοποίησης Διαγράμματα UML Διάγραμμα

Διαβάστε περισσότερα

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

Υποδείγματα Ανάπτυξης Υποδείγματα Ανάπτυξης περιεχόμενα παρουσίασης Αποσύνθεση Αφαίρεση Μοντελοποίηση Η δεδομένο λειτουργική προσέγγιση Η αντικειμενοστρεφής προσέγγιση αποσύνθεση Όταν επιχειρούμε τη λύση ενός προβλήματος, πρώτα

Διαβάστε περισσότερα

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 Μ6. Φάσεις ανάπτυξης λογισμικού: προδιαγραφές, σχεδίαση, υλοποίηση, επαλήθευση, τεκμηρίωση, συντήρηση προγραμμάτων Δρ. Γεώργιος Παπαλάμπρου Επικ.

Διαβάστε περισσότερα

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

Διαβάστε περισσότερα

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

ΕΝΝΟΙΟΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ ΔΕΔΟΜΕΝΩΝ (6) ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΜΕΣΟΛΟΓΓΙ) ΑΝΑΛΥΣΗ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΕΝΝΟΙΟΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ ΔΕΔΟΜΕΝΩΝ (6) ΓΙΩΡΓΟΣ ΜΟΥΡΚΟΥΣΗΣ Μηχανικός Η/Υ & Πληροφορικής Διδάκτορας

Διαβάστε περισσότερα

Γλώσσες προγραµµατισµού. Ανάπτυξη Συστηµάτων Λογισµικού

Γλώσσες προγραµµατισµού. Ανάπτυξη Συστηµάτων Λογισµικού ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ http://courses.softlab.ntua.gr/softeng/ ιδάσκοντες: (nickie@softlab.ntua.gr) Βασίλης Βεσκούκης (bxb@softlab.ntua.gr) Γλώσσες Προγραµµατισµού και Ανάπτυξη Συστηµάτων Λογισµικού ΤΛ

Διαβάστε περισσότερα

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

Σχεδιασμός Βάσεων Δεδομένων Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σχεδιασμός Βάσεων Δεδομένων Εργαστήριο 1 Δρ. Βασιλική Κούφη Περιεχόμενα 1. Εισαγωγή 2. Κύκλος ζωής ανάπτυξης Βάσεως Δεδομένων 3. Oracle SQL Developer Data

Διαβάστε περισσότερα

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

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 7: Εισαγωγή στη UML Τι είναι η UML; 2 Βασικό πρόβλημα τεχνολογίας λογισμικού Έλλειψη κοινά αποδεκτής «γλώσσας» για την έκφραση των σχεδίων λογισμικού. Το

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων. Εισαγωγή Ανάλυση Απαιτήσεων. Φροντιστήριο 1 ο Βάσεις Δεδομένων Εισαγωγή Ανάλυση Απαιτήσεων Φροντιστήριο 1 ο 16-10-2008 Εισαγωγή - Ορισμοί Βάση Δεδομένων είναι μία συλλογή από σχετιζόμενα αντικείμενα Ένα σύστημα διαχείρισης βάσεων δεδομένων (ΣΔΒΔ)

Διαβάστε περισσότερα

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

Διαγράμματα Αλληλεπίδρασης. Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας Διαγράμματα Αλληλεπίδρασης Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας 1 Διαγράμματα αλληλεπίδρασης Απεικονίζουν την αλληλεπίδραση των αντικειμένων μέσω μηνυμάτων Η ανάθεση αρμοδιοτήτων περιλαμβάνει

Διαβάστε περισσότερα

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Συνεργασίας. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Διαγράμματα Συνεργασίας Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

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

Διάγραμμα Οντοτήτων - Συσχετίσεων Διάγραμμα Οντοτήτων - Συσχετίσεων Παύλος Εφραιμίδης Βάσεις Δεδομένων Διάγραμμα Ο-Σ 1 Σχεδιασμός μιας Βάσης Δεδομένων Τα βασικά βήματα για το σχεδιασμό και την ανάπτυξη μιας Βάσης Δεδομένων είναι: Ανάλυση

Διαβάστε περισσότερα

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

ΜΕΘΟΔΟΛΟΓΙΕΣ ΑΝΑΠΤΥΞΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΘΟΔΟΛΟΓΙΕΣ ΑΝΑΠΤΥΞΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Μεθοδολογίες Ανάπτυξης Συστημάτων Πληροφορικής Απαντούν στα εξής ερωτήματα Ποιά βήματα θα ακολουθηθούν? Με ποιά σειρά? Ποιά τα παραδοτέα και πότε? Επομένως,

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. Αλλιώς: Πεπερασμένη

Διαβάστε περισσότερα

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

Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής - Εβδομάδα 1 Στόχοι Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής (Αντικειμενοστρεφής Προγραμματισμός) Αντώνιος Συμβώνης www.math.ntua.gr/~symvonis Καλή γνώση βασικών αρχών προγραμματισμού Καλή γνώση βασικών αρχών αντικειμενοστρεφή

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

09 Η γλώσσα UML II. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο 09 Η γλώσσα UML II Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Μοντελοποίηση συμπεριφοράς

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Σύνθεση και Κληρονομικότητα Σύνθεση και Κληρονομικότητα Σύνθεση (composition) Κληρονομικότητα (inheritance) Υπερφόρτωση κληρονομημένων μελών Εικονικές συναρτήσεις και Πολυμορφισμός Αφηρημένες (abstract) βασικές κλάσεις 1 Σύνθεση

Διαβάστε περισσότερα

Σχεδιασµός βασισµένος σε συνιστώσες

Σχεδιασµός βασισµένος σε συνιστώσες Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 2: Μοντελο Συσχετίσεων Οντοτήτων, Μελέτη Περίπτωσης: Η βάση δεδομένων των CD Ενότητα 2: Μοντελο Συσχετίσεων Οντοτήτων, Μελέτη Περίπτωσης: Η βάση δεδομένων των CD Ευαγγελίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

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

Σύνθεση και Κληρονομικότητα Σύνθεση και Κληρονομικότητα Σύνθεση (composition) Κληρονομικότητα (inheritance) Υπερφόρτωση κληρονομημένων μελών Εικονικές συναρτήσεις και Πολυμορφισμός Αφηρημένες (abstract) βασικές κλάσεις 1 Σύνθεση

Διαβάστε περισσότερα

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

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός ΗΥ : Αντικειµενοστρεφής Προγραµµατισµός http://www.csd.uoc.gr/~hy Β. Χριστοφίδης christop@ics.forth.gr Τµήµα Επιστήµης Υπολογιστών, Πανεπιστήµιο Κρήτης Ηράκλειο Κρήτης Γενικές Πληροφορίες Ώρες ιδασκαλίας

Διαβάστε περισσότερα

Επεκτεταμένο Μοντέλο Οντοτήτων-Συσχετίσεων Αντζουλάτος Γεράσιμος antzoulatos@upatras.gr Τμήμα Εφαρμογών Πληροφορικής στην Διοίκηση και Οικονομία ΤΕΙ Πατρών - Παράρτημα Αμαλιάδας 08 Νοεμβρίου 2012 Περιεχομενα

Διαβάστε περισσότερα

Ανάλυση Απαιτήσεων Mεθοδολογίες Ανάπτυξης

Ανάλυση Απαιτήσεων Mεθοδολογίες Ανάπτυξης ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Ανάλυση Απαιτήσεων Mεθοδολογίες Ανάπτυξης Μάρα Νικολαϊδου Μοντελοποίηση Συστήµατος Περιπτώσεις χρήσης Οι περιπτώσεις χρήσης είναι µια τεχνική

Διαβάστε περισσότερα

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

Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων ιαχείριση ικτύων ρ.αρίστη Γαλάνη Ακαδημαϊκό Έτος Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων ιαχείριση ικτύων ρ.αρίστη Γαλάνη Ακαδημαϊκό Έτος 2016-2017 Πρότυπο διαχείρισης ISO/OSI Ένα περιβάλλον OSI μπορεί να αποτελείται από ετερογενή «ανοικτά» διασυνδεδεμένα

Διαβάστε περισσότερα

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

Ανάλυση Περιπτώσεων Χρήσης Ανάλυση Περιπτώσεων Χρήσης ανάλυση απαιτήσεων ü Διαγράμματα Δραστηριότητας. Επιχειρησιακή μοντελοποίηση και ροή εργασιών σε περιπτώσεις χρήσης ü Μοντελοποίηση Πεδίου. Δημιουργία διαγραμμάτων κλάσεων για

Διαβάστε περισσότερα

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

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

Διαβάστε περισσότερα

Εισαγωγή στη γλώσσα UML

Εισαγωγή στη γλώσσα UML Κεφάλαιο 1 o Εισαγωγή στη γλώσσα UML 1.1 Προσθέτοντας μια νέα μέθοδο Στις πρώτες εποχές των υπολογιστών, οι προγραμματιστές συνήθιζαν να περιορίζονται στην ανάλυση σε βάθος των προβλημάτων που αντιμετώπιζαν.

Διαβάστε περισσότερα

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

Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής περιεχόμενα παρουσίασης Διαγράμματα πακέτων Διαγράμματα συστατικών Διαγράμματα παράταξης Το μοντέλο των 4+1 όψεων τεκμηρίωση αρχιτεκτονικής και UML

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 31/10/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Class Diagrams Διαγράμματα Κλάσεων Διαγράμματα

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΣΧΕΔΙΑΣΜΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ.

Διαβάστε περισσότερα

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

Ειδικά θέματα τεχνολογίας λογισμικού Ειδικά θέματα τεχνολογίας λογισμικού Σχεδιασμός λογισμικού Διομήδης Σπινέλλης Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας Οικονομικό Πανεπιστήμιο Αθηνών dds@aueb.gr http://www.dmst.aueb.gr/dds @CoolSWEng

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

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

Διαβάστε περισσότερα

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

ΠΑΡΑΔΕΙΓΜΑΤΑ USE CASE DIAGRAMS CLASS DIAGRAMS ΠΑΡΑΔΕΙΓΜΑΤΑ USE CASE DIAGRAMS CLASS DIAGRAMS Διάγραμμα Περιπτώσεων χρήσης 2 Να κατασκευάσουμε ένα διάγραμμα περιπτώσεων χρήσης για το παρακάτω σύστημα. Το σύστημα τηρεί αρχεία μαθητών, καθηγητών και μαθημάτων.

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΜοντέλοΟντοτήτωνΣυσχετίσεων & ΔιάγραμμαΟντοτήτων Συσχετίσεων. Μοντέλο Οντοτήτων Συσχετίσεων ΜοντέλοΟντοτήτωνΣυσχετίσεων & ΔιάγραμμαΟντοτήτων Συσχετίσεων Μοντέλο Οντοτήτων Συσχετίσεων Το Μοντέλο Οντοτήτων-Συσχετίσεων βασίζεται στην αντίληψη ότι ο πραγματικός κόσμος αποτελείται από οντότητες (entities)

Διαβάστε περισσότερα

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

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός ΗΥ : Αντικειµενοστρεφής Προγραµµατισµός http://www.csd.uoc.gr/~hy Β. Χριστοφίδης christop@ics.forth.gr Τµήµα Επιστήµης Υπολογιστών, Πανεπιστήµιο Κρήτης Ηράκλειο Κρήτης Γενικές Πληροφορίες Ώρες ιδασκαλίας

Διαβάστε περισσότερα

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Η μεθοδολογία ICONIX. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Η μεθοδολογία ICONIX Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

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

Βάσεις δεδομένων. (2 ο μάθημα) Ηρακλής Βαρλάμης Βάσεις δεδομένων (2 ο μάθημα) Ηρακλής Βαρλάμης varlamis@hua.gr Περιεχόμενα Μοντελοποίηση δεδομένων Μοντέλο Οντοτήτων Συσχετίσεων Παραδείγματα Διαγραμματικές τεχνικές Συμβολισμοί Τριαδικές συσχετίσεις 2

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 14/11/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Μοντέλα Παράστασης

Διαβάστε περισσότερα