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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

UML: Unified modelling language

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Transcript:

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

Πρόγραμμα Παραδόσεων 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 Ε. Ταμπούρης & Κ. Ταραμπάνης http://egov.it.uom.gr/wiki 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Παραδείγματα - όνομα : 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, Πληροφοριακά Συστήματα, ΕΑΠ. Ε. Ταμπούρης & Κ. Ταραμπάνης http://egov.it.uom.gr/wiki 21

Σχέσεις - 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 Ε. Ταμπούρης & Κ. Ταραμπάνης http://egov.it.uom.gr/wiki 22

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Παράδειγμα Συνάθροισης με Πολλαπλότητα 1 Ένα αυτοκίνητο έχει 4 τροχούς. http://www.ibm.com/developerworks/rational/library/content/rationaledge/sep04/bell/ Ε. 39 Ταμπούρης & Κ. Ταραμπάνης http://egov.it.uom.gr/wiki

Παράδειγμα Συνάθροισης με Πολλαπλότητα 2 Το τμήμα της Ιστορίας αποτελείται από πολλούς φοιτητές. http://tcle.wordpress.com/2008/05/20/aggregation-vs-composition-a-review-on-uml/ Τι πρόβλημα έχει η παραπάνω λύση; Ε. 40 Ταμπούρης & Κ. Ταραμπάνης http://egov.it.uom.gr/wiki

Παράδειγμα Συνάθροισης με Πολλαπλότητα 3 Μια παραγγελία περιλαμβάνει ένα ή περισσότερα προϊόντα. http://www.visualcase.com/tutorials/class-diagram.htm Τι πρόβλημα βλέπουμε σε αυτή τη λύση; Ε. 41 Ταμπούρης & Κ. Ταραμπάνης http://egov.it.uom.gr/wiki

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Παράδειγμα 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 Ταμπούρης & Κ. Ταραμπάνης http://egov.it.uom.gr/wiki

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

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

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

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

Αντιστοίχηση των αντικειμένων του 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 Ταμπούρης & Κ. Ταραμπάνης http://egov.it.uom.gr/wiki

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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