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



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

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

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

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

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

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

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

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

Αντικειµενοστρεφής ανάλυση και σχεδίαση

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

Τα διαγράµµατα συστατικών

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

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

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

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

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

Rational Unified Process:

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

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

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

Αντικειµενοστρεφής ανάλυση και σχεδίαση

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

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

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

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

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

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Ευάγγελος Γ. Ούτσιος Θεόδωρος Γ. Λάντζος Διάλεξη Νο6

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

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

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

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

Σχεδιασµός Λογισµικού

Τεχνολογία Λογισµικού Ι Κεφάλαιο 3 Μια αναλυτικότερη προσέγγιση στην δραστηριότητα 3.10

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

Πληροφορική 2. Τεχνολογία Λογισμικού

ΚΕΦΑΛΑΙΟ 7 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ. Έννοιες-κλειδιά

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

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

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

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

ΣΧΕ ΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟ ΙΟΤΗΤΕΣ. Ορισµός σχεδιαστικών προτύπων Εφαρµογή των 9 GRASP προτύπων

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

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

ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΣΧΕ ΙΑΣΜΟΣ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

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

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

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

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

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

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

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

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

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

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

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

UML: Unified modelling language

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

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

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

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

Στην ενότητα αυτή θα µελετηθούν:

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

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

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

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

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

Database System Concepts and Architecture (Αρχιτεκτονική, οµές, και Μοντέλα)

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

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Οργάνωση Γεωγραφικών. πληροφοριών

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

Π2 Το Σύστηµα Κανόνων CLIPS

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

Μοτίβα Σχεδίασης (Design Patterns)

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

Τι είναι η UML. H UML (Unified Modeling Language) είναι µιά γλώσσα µοντελοποίησης γιά

Outline. 4 Object-Oriented Programming

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

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4

Περιεχόμενα. ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στη UML... 19

Σχεδίαση Κλάσεων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

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

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

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

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες.

Εισαγωγή στην Τεχνολογία Λογισµικού

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

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

ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ ΜΕΛΕΤΗΣ ΤΗΣ Θ.Ε. ΠΛΗ24

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

Μεθοδολογίες Παραγωγής Λογισµικού

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

Περιεχόμενα. Κεφάλαιο 2 Κοινωνικοτεχνικά συστήματα 49

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

Εισαγωγή στην Τεχνολογία Λογισµικού

Transcript:

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

Περιεχόµενα Βασικές έννοιες αντικειµενοστεφούς τρόπου ανάπτυξης Τι είναι κλάση Τι είναι αντικείµενο 2

Βασικές έννοιες Τέσσερις βασικές έννοιες Αφαίρεση (abstraction) Κελυφοποίηση (encapsulation) οµικότητα (modularity) Ιεραρχία (hierarchy) Object Orientation Abstraction Encaptulation Modularity Hierarchy 3

4 Τι είναι αφαίρεση Πωλητής Πελάτης Προϊόν

5 Πως ορίζεται η αφαίρεση Είναι βασικός τρόπος για να χειρισθούµε την πολυπλοκότητα Ορισµοί: Αναγνωρίζουµε τις οµοιότητες των αντικειµένων, καταστάσεων και διαδικασιών και εστιάζουµε την προσοχή µας στα κοινά χαρακτηριστικά που µας αφορούν [Hoare] Είναι µια απλοποιηµένη περιγραφή ενός συστήµατος που εστιάζει την προσοχή στα φαινόµενα-ιδιότητες που µας αφορούν [Shaw] Περιγράφει τα βασικά χαρακτηριστικά που διαφοροποιούν τα αντικείµενα από άλλα και προσδιορίζουν τα πλαίσια αυτών [Booch]

6 Είδη αφαίρεσης Τέσσερα είδη αφαίρεσης Αφαίρεση οντοτήτων Ένα αντικείµενο του πεδίου προβλήµατος Αφαίρεση ενεργειών Οµαδοποίηση όµοιων ενεργειών Αφαίρεση αρχιτεκτονικών επιπέδων ηµιουργία επιπέδων για χειρισµό πολυπλοκότητας Τυχαία αφαίρεση Τίποτε από τα παραπάνω Απλή οµαδοποίηση, απλοποίηση

7 Τι είναι κελυφοποίηση? Κελυφοποίηση (encapsulation) είναι η ενέργεια του κρυψίµατος των λεπτοµερειών υλοποίησης ενός αντικειµένου από τον χρήστη Κανένα σύνθετο σύστηµα δεν πρέπει να εξαρτάται από τις λεπτοµέρειες ενός άλλου σύνθετου συστήµατος Κελυφοποίηση είναι συνώνυµη ως έννοια µε το κρύψιµο πληροφορίας (information hiding) Κελυφοποίηση και αφαίρεση είναι συµπληρωµατικές έννοιες η αφαίρεση εστιάζεται στην εξωτερική εικόνα ενός αντικειµένου Η κελυφοποίηση απαγορεύει στον χρήστη να δει το εσωτερικό του αντικειµένου

8 οµικότητα (modularity) Είναι ο χωρισµός του συστήµατος σε συστατικά (components) µε σκοπό τον καλύτερο χειρισµό της πολυπλοκότητας [Myers] Ο στόχος είναι να µειώσουµε το κόστος ανάπτυξης λογισµικού επιτρέποντας την ανεξάρτητη ανάπτυξη και συντήρηση των συστατικών [Britton, Parnas] Το κάθε συστατικό πρέπει να µπορεί να αλλάζει χωρίς να έχει γνώση της υλοποίησης άλλων συστατικών Το κάθε συστατικό πρέπει να είναι κατανοητό στους προγραµµατιστές

Ιεραρχία (hierarchy) Ηιεραρχίαείναιµια ταξινόµηση των αφαιρέσεων που χρησιµοποιείται για την µοντελοποίηση σύνθετων συστηµάτων Η ιεραρχία έχει δύο µορφές Κληρονοµικότητα (inheritance) Συναρµολόγηση (aggregation) 9

10 Κληρονοµικότητα Γενίκευση Απλή κληρονοµικότητα Πολλαπλή κληρονοµικότητα Σχέση γενίκευσης-ειδίκευσης (generalisation specialisation) Όχηµα Ειδίκευση

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

12 Τι είναι αντικείµενο... Ένα άτοµο ή ένα πράγµα προς το οποίο κατευθύνεται µια ενέργεια, σκέψη ή συναίσθηµα. Αντικείµενο είναι οτιδήποτε πραγµατικό ή αφηρηµένο στο οποίο αποθηκεύουµε δεδοµένα και έχει µεθόδους που διαχειρίζονται αυτά τα δεδοµένα. Παραδείγµατα Ένα τιµολόγιο Ένας πελάτης Ένα παράθυρο κ.λπ.

Ένα αντικείµενο έχει... Κατάσταση (state) Συµπεριφορά (behavior) Ταυτότητα (identity) ΚΑΤΑΣΤΑΣΗ ΣΥΜΠΕΡΙΦΟΡΑ ΤΑΥΤΟΤΗΤΑ 13

14 Ένα αντικείµενο έχει... Κατάσταση (state) Στατικά στοιχεία του αντικειµένου υναµικές τιµές για τα στατικά στοιχεία Συµπεριφορά (behavior) Η συµπεριφορά των αντικειµένων ορίζεται από τις ενέργειες του αντικειµένου Οτρόποςµε τον οποίο αλλάζει την εσωτερική του κατάσταση Τα µηνύµατα που ανταλλάσει µε το περιβάλλον Ταυτότητα (identity) Ο τρόπος µε τον οποίο ένα αντικείµενο διαφοροποιείται από άλλα αντικείµενα του ιδίου είδους

15 Τι είναι κλάση Κλάση «εργαζόµενος» τικείµενα Μηχανικός. Μηχανικός Λογιστής Πωλητής ιευθυντής

Τι είναι κλάση Μια κλάση είναι ένα σύνολο αντικειµένων που έχουν κοινή δοµή και κοινή συµπεριφορά Μια κλάση είναι µια κατηγορία αντικειµένων Ένα αντικείµενο είναι ένα στιγµιότυπο (instances) µια κλάσης Μια κλάση παρουσιάζει στο περιβάλλον µια διαπροσωπία (interface) ο τρόπος µε τον οποίο το περιβάλλον βλέπει την κλάση και έχει µια εσωτερική υλοποίηση 16

17 Γιατί έχει επικρατήσει ο αντικειµενοστρεφής τρόπος ανάπτυξης Επιτρέπει το χειρισµό πολύπλοκων συστηµάτων Επιτρέπει τον τµηµατική ανάπτυξη συστηµάτων Επιτρέπει την καλύτερη επαναχρησιµοποίηση κώδικα Είναι πιο κοντά στον τρόπο που σκεπτόµαστε Υπάρχει η κατάλληλη τεχνολογία UML CASE εργαλεία Γλώσσες προγραµµατισµού (C++, C#, Java) Αρχιτεκτονικές (J2EE,.Net) Περιβάλλοντα προγραµµατισµού (JBuilder, Visual Café,.Net Studio κ.λπ.)

18 Τι να θυµόµαστε... Βασικές έννοιες Αφαίρεση (abstraction) ίνει την εξωτερική εικόνα του προβλήµατος Κελυφοποίηση (encapsulation) Κρύβει τις εσωτερικές λεπτοµέρειες υλοποίησης του προβλήµατος οµικότητα (modularity) οµεί το σύστηµα απόένασύνολοανεξάρτητων συστατικών Ιεραρχία (hierarchy) Απλοποιεί και οργανώνει το σύστηµα Τι είναι κλάση, αντικείµενα Ποια είναι τα πλεονεκτήµατα του αντικειµενοστρεφούς τρόπου ανάπτυξης.