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

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

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

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΚΗΣ ΕΚΠΑΙ ΕΥΣΗΣ ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΣΧΕ ΙΑΣΜΟΣ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ρ. Βασίλειος Βεσκούκης ΠΕΙΡΑΙΑΣ, 2000

2

3 Περιεχόµενα 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗ ΤΕΧΝΟΛΟΓΙΑ Α ΥΝΑΜΙΕΣ ΤΗΣ ΟΜΗΜΕΝΗΣ ΑΝΑΛΥΣΗΣ ΚΑΙ ΣΧΕ ΙΑΣΗΣ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΗΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΟΥΣ ΤΕΧΝΟΛΟΓΙΑΣ Ορισµοί Σχέσεις µεταξύ κλάσεων ΕΝΑΣ ΑΛΛΟΣ ΤΡΟΠΟΣ ΠΑΡΑΣΤΑΣΗΣ ΤΟΥ ΚΟΣΜΟΥ ΣΥΜΒΟΛΙΣΜΟΙ ΚΑΙ ΠΡΟΤΥΠΑ ΣΥΝΟΨΗ ΘΕΜΑΤΑ ΓΙΑ ΠΕΡΑΙΤΕΡΩ ΕΝΑΣΧΟΛΗΣΗ - ΑΣΚΗΣΕΙΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ ΕΝΑ ΓΕΝΙΚΟ ΠΛΑΙΣΙΟ ΓΙΑ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Η ΕΝΝΟΙΑ ΤΗΣ ΠΕΡΙΠΤΩΣΗΣ ΧΡΗΣΗΣ Εισαγωγή Τι είναι "Περίπτωση Χρήσης"; Πώς προδιαγράφεται µια περίπτωση χρήσης; Ενα σηµείο αναφοράς Προσδιορισµός των λειτουργικών απαιτήσεων ως περιπτώσεων χρήσης ΑΠΟ ΤΙΣ ΠΕΡΙΠΤΩΣΕΙΣ ΧΡΗΣΗΣ ΣΤΟ ΜΟΝΤΕΛΟ ΑΝΑΛΥΣΗΣ Το µοντέλο ανάλυσης Κλάσεις στο µοντέλο ανάλυσης Πακέτα ανάλυσης ΒΗΜΑΤΑ ΣΤΗΝ ΑΝΑΛΥΣΗ Αρχιτεκτονική ανάλυση Ανάλυση περιπτώσεων χρήσης Ανάλυση κλάσεων Ανάλυση πακέτων ΣΥΝΟΨΗ ΘΕΜΑΤΑ ΓΙΑ ΠΕΡΑΙΤΕΡΩ ΕΝΑΣΧΟΛΗΣΗ - ΑΣΚΗΣΕΙΣ...62

4 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗ ΤΕΧΝΟΛΟΓΙΑ Σκοπός Σκοπός του κεφαλαίου είναι να εισάγει τον αναγνώστη στις βασικές έννοιες που χρησιµοποιούνται στην αντικειµενοστρεφή τεχνολογία και να εισάγει την ορολογία και τα βασικά στοιχεία των συµβολισµών αυτής. Εισαγωγικές παρατηρήσεις Οι ραγδαίες εξελίξεις στον χώρο των υπολογιστών, θεµελίωσαν την ανάγκη διαφοροποίησης του τρόπου σκέψης µας κατά την ανάλυση και σχεδίαση συστηµάτων λογισµικού. Το κύριο χαρακτηριστικό της διαφοροποίησης δεν εντοπίζεται στο γεγονός ότι σήµερα µιλάµε για κλάσεις και συνεργασία, ενώ στην δοµηµένη προσέγγιση µιλάµε για συναρτήσεις και δεδοµένα. Βρίσκεται αρκετά πιο πίσω. Οι πρώτες γλώσσες προγραµµατισµού σκόπευαν στο να κάνουν περισσότερο προσιτό στον άνθρωπο τον προγραµµατισµό των υπολογιστών, απ' ότι επέτρεπε η γλώσσα µηχανής. Με τις δοµικές µονάδες που προσέφεραν αυτές οι γλώσσες, έπρεπε να χτιστούν οι οσοδήποτε σύνθετες εφαρµογές λογισµικού. Μιλώντας µεταφορικά, ήταν τα υλικά που σε µεγάλο βαθµό καθόριζαν τον τρόπο σκέψης του χτίστη και όχι η σύλληψη του για το οικοδόµηµα. Αυτό σταδιακά άλλαξε και έτσι οι γλώσσες προγραµµατισµού, αλλά και ο τρόπος σκέψης όσων ασχολούνταν µε κατασκευή λογισµικού, απέκτησαν στοιχεία δοµής τα οποία δεν είχε το µέσο άµεσου προγραµµατισµού των υπολογιστών, δηλαδή η γλώσσα µηχανής. Η έννοια αυτή της δοµής χαρακτήρισε τον τρόπο σκέψης µας στην σύλληψη και σχεδίαση του λογισµικού, η οποία χαρακτηρίστηκε δοµηµένη. Όµως και πάλι, ο τρόπος σκέψης είχε έντονα τα χαρακτηριστικά του εργαλείου (της όποιας γλώσσας προγραµµατισµού) και, τουλάχιστον στην αρχή, καθοριζόταν από αυτό περισσότερο από ότι το καθόριζε. Η πολυπλοκότητα και η ανάγκη επεξεργασίας µεγάλου όγκου δεδοµένων έφεραν στην επιφάνεια σηµαντικές αδυναµίες της δοµηµένης φιλοσοφίας στην ανάπτυξη λογισµικού, όπως θα δούµε στην ενότητα 1 του κεφαλαίου αυτού. Το επόµενο βήµα, το οποίο µόνο πρόσφατα άρχισε να γίνεται συνειδητό, ήταν η ριζική µεταβολή του τρόπου σκέψης, έτσι ώστε, για να επανέλθουµε στη µεταφορά, να είναι τα εργαλεία του χτίστη που καθορίζονται από την άποψή του για το οικοδόµηµα και όχι το αντίστροφο. Αυτή η θεώρηση επικράτησε να ονοµάζεται αντικειµενοστρεφής φιλοσοφία ή παράδειγµα (object-oriented philosophy, paradigm) και αντιµετωπίζει µε έναν εντελώς διαφορετικό από την δοµηµένη προσέγγιση τρόπο, τη σύλληψη, την ανάλυση και τη σχεδίαση του λογισµικού. Με τις βασικές έννοιες που ενσωµατώνει η αντικειµενοστρεφής φιλοσοφία θα ασχοληθούµε στο κεφάλαιο αυτό. 4

5 1.1. Α ΥΝΑΜΙΕΣ ΤΗΣ ΟΜΗΜΕΝΗΣ ΑΝΑΛΥΣΗΣ ΚΑΙ ΣΧΕ ΙΑΣΗΣ Ποιο από τα χαρακτηριστικά των εφαρµογών λογισµικού καθιστά ανεπαρκή την προσέγγιση τους µε την δοµηµένη ανάλυση και σχεδίαση; Η απάντηση στο ερώτηµα αυτό αποτελεί κλειδί για την αναζήτηση και την κατανόηση µιας νέας φιλοσοφίας προσέγγισης του λογισµικού. Μπορεί κανείς να ανατρέξει εκτενώς στη βιβλιογραφία προκειµένου να βρει διάφορες απαντήσεις στο ερώτηµα. Εµείς θα επιλέξουµε τηνµονολεκτική απάντηση "η πολυπλοκότητα". Ηπολυπλοκότητααφοράόχι µόνο την καθαρά υπολογιστική εργασία του λογισµικού, αλλά και την ανάγκη διαχείρισης µεγάλου όγκου δεδοµένων. Σηµεία στα οποία η πολυπλοκότητα του λογισµικού κάνει φανερές τις αδυναµίες της δοµηµένης ανάλυσης και σχεδίασης, µπορούν να αναζητηθούν σε δύο κατευθύνσεις: σε αυτή που αφορά το θεωρητικό και σε αυτή που αφορά το πρακτικό µέρος αυτής. Στο θεωρητικό επίπεδο, η δοµηµένη ανάλυση και σχεδίαση παρουσιάζει µια εγγενή αδυναµία στην απεικόνιση των οντοτήτων του πραγµατικού κόσµου σε συστατικά λογισµικού. Επιχειρεί να αποσυνθέσει ένα πρόβληµα σε µια ιεραρχία συστατικών λογισµικού, καθένα εκ' των οποίων επιτελεί ένα µικρό µέρος της λύσης του. Αυτή η εφαρµογή της αρχαίας ρήσης "διαίρει και βασίλευε", έχει νόηµα όταν η λύση του προβλήµατος είναι µόνο υπόθεση αριθµητικών υπολογισµών. Στον πραγµατικό κόσµο, όµως, και ιδιαίτερα στο πεδίο εφαρµογών λογισµικού που σχετίζονται µε τηνεπιχειρηµατική δραστηριότητα, αυτή η προσέγγιση υστερεί για δύο λόγους: Πρώτον, δε λαµβάνει υπόψη τα δεδοµένα, τα οποία έχουν τη δική τους πολύπλοκη δοµή και εξαρτήσεις. Τα δεδοµένα στη δοµηµένη ανάλυση και σχεδίαση είναι ανεξάρτητα από τις λειτουργικές µονάδες που επιδρούν σε αυτά, πράγµα που δεν ισχύει στο επίπεδο του πραγµατικού κόσµου όπου η διαχείριση δεδοµένων δεν είναι ανεξάρτητη από αυτά. εύτερον, το υπολογιστικό µοντέλο που αποτελείται από το δίδυµο "συστατικά λογισµικού" και "ανεξάρτητα δεδοµένα", δεν αντιστοιχεί σε οντότητες του πραγµατικού κόσµου, δηλαδή δεν παριστά οντότητες που είναι αντιληπτές στον πραγµατικό κόσµο. Με µια άλλη διατύπωση, δεν µοντελοποιεί εύκολα και φυσικά την επιχειρησιακή λογική. Ως εκ τούτου, είναι ανεπαρκές ως µεθοδολογικό εργαλείο για την δόµηση λογισµικού. Σε πρακτικό επίπεδο µπορούµε να εντοπίσουµε τα ακόλουθα προβλήµατα: Ο προσδιορισµός των απαιτήσεων είναι το δυσκολότερο από τα βήµατα της ανάπτυξης Λογισµικού. Η ακριβής περιγραφή των πολλών, πολύπλοκων και αλληλοσυσχετιζόµενων απαιτήσεων µε χρήση µετασχηµατισµών και ανεξάρτητων δεδοµένων, καθώς και η αντιµετώπιση των µεταβολών ακόµα και κατά τη διάρκεια της ανάπτυξης του λογισµικού, φέρουν τη δοµηµένη προσέγγιση στα όριά της. Η διαχείριση των µοντέλων παράστασης λογισµικού είναι µια δύσκολη και επιρρεπής σε σφάλµατα εργασία. Το πλήθος, η πολυπλοκότητα και οι συσχετίσεις των συστατικών αυτών, η µεταβολή τους µε το χρόνο, αλλά και οι παρενέργειες κατά την πραγµατοποίηση µεταβολών καθιστούν την εργασία αυτή ακόµα δυσκολότερη. Η συντήρηση του Λογισµικού έχει εξελιχθεί σε µια πολύ δύσκολη διαδικασία που δυσκολεύει περισσότερο καθώς αυξάνεται το µέγεθος του Λογισµικού. Έχει αναφερθεί ότι η συνεισφορά της συντήρησης στο συνολικό κόστος κατά τον κύκλο ζωής λογισµικού, µπορεί να ξεπεράσει το 50%. Μολονότι κατά την ανάπτυξη µιαςνέαςεφαρµογής ενδέχεται να αναγνωριστούν οµοιότητες µε τα χαρακτηριστικά µιας υπάρχουσας, η επαναχρησιµοποίηση συστατικών λογισµικού που 5

6 έχουν κατασκευαστεί µε την δοµηµένη ανάλυση και σχεδίαση δεν ενθαρρύνεται. Αυτό ισχύει στη γενική περίπτωση, διότι η πολυπλοκότητα και η φύση των συσχετίσεων ενός συστατικού λογισµικού - µέρους µιας εφαρµογής που κατασκευάστηκε µε τη δοµηµένη φιλοσοφία, δεν επιτρέπουν τη γενίκευση και εύκολη επαναχρησιµοποίησή του. Ο κανόνας αυτός ισχύει ιδιαίτερα για λογισµικό που χρησιµοποιείται σε επιχειρηµατικές εφαρµογές και γενικά σε εφαρµογές που σχετίζονται µε τη διαχείριση δεδοµένων, ενώ εξαίρεση αποτελούν οι βιβλιοθήκες µαθηµατικών συναρτήσεων που αφορούν καθαρά υπολογιστικές εργασίες. Οσα αναφέρθηκαν, µε κανένα τρόπο δεν σηµαίνουν δύο πράγµατα: πρώτον, ότι η δοµηµένη ανάλυση και σχεδίαση είναι "άχρηστη", "εσφαλµένη", ή κάτι τέτοιο και δεύτερον, ότι η αντικειµενοστρεφής φιλοσοφία έχει τη λύση σε όλα τα προβλήµατα της ανάπτυξης του λογισµικού. Όπως εξάλλου αναφέρθηκε, η συζήτηση αυτή έχει το νόηµα της αντίληψης των εξελίξεων που εισήγαγαν µια νέα φιλοσοφία προσέγγισης του λογισµικού. Πολλά από τα προβλήµατα που υπήρχαν στην ανάπτυξη του λογισµικού εξακολουθούν να υπάρχουν µε την µία ή άλλη έννοια, ενδεχοµένως σε µικρότερο βαθµό. Η αντικειµενοστρεφής τεχνολογία είναι µόνο ένα καλύτερο εργαλείο στα χέρια του ανθρώπου για τη λύση των προβληµάτων, δεν είναι ίδια η λύση των προβληµάτων ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΗΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΟΥΣ ΤΕΧΝΟΛΟΓΙΑΣ Αξίζει να σηµειώσουµε από την αρχή ότι η ιδέα της αντικειµενοστρεφούς προσέγγισης υπήρχε από τη δεκαετία του '60 και η πρώτη γλώσσα που είχε τέτοια χαρακτηριστικά ήταν η Simula-67. Τότε, κανείς σχεδόν δεν έδινε µεγάλη σηµασία στις ιδέες που εισήγαγε η Simula: η κοινότητα του Λογισµικού είχε στραµµένη την προσοχή της στις ιδέες της δοµηµένης ανάλυσης/σχεδίασης. Αλλες γλώσσες προγραµµατισµού που είχαν τέτοια στοιχεία ήταν Alphard, η CLU, η ADA (η οποία γνώρισε µεγάλη διάδοση διότι υποστηρίχτηκε από το υπουργείο άµυνας των ΗΠΑ) και η Smalltalk. Η προσέγγιση της αντικειµενοστρεφούς τεχνολογίας µπορεί να γίνει από διάφορους εναλλακτικούς δρόµους. Την εποχή που παρατηρήθηκε έκρηξη ενδιαφέροντος για το θέµα, δηµοσιεύτηκαν πολλές θεωρητικές αναλύσεις µε παρεµφερή ορολογία και µε λιγότερο ή περισσότερο συγκεκριµένες αναφορές στις πρακτικές πλευρές της αντικειµενοστρεφούς προσέγγισης στον προγραµµατισµό. Ο αναγνώστης παραπέµπεται στη βιβλιογραφία για µια εκτενέστερη αναφορά στο θέµα Ορισµοί Μέχρι το σηµείο αυτό χρησιµοποιήσαµε τον όρο αντικειµενοστρεφής ως µετάφραση του αγγλικού όρου object-oriented. Καιρός είναι να δώσουµε έναν περισσότερο σαφή ορισµό και να εισάγουµε την ορολογία που σχετίζεται µε την αντικειµενοστρεφή τεχνολογία. Θα προσεγγίσουµε το θέµα ξεκινώντας από την κορυφή της πυραµίδας. Αντικειµενοστρεφής Αντικειµενοστρεφής (ο, η), αντικειµενοστρεφές (το), είναι χαρακτηρισµός που σηµαίνει "στραµµένος (προσανατολισµένος) σε αντικείµενα" και αποδίδεται σε εκείνο τον τρόπο σκέψης κατά την ανάπτυξη λογισµικού, στον οποίο τα "αντικείµενα" είναι οι βασικές δοµικές µονάδες. 6

7 Θα σηµειώσουµεότιεπιλέξαµε ναχρησιµοποιήσουµε τοεπίθεµα "-στρεφής" και όχι "-στραφής", όπως αναφέρεται σε άλλα σηµεία στη βιβλιογραφία, σύµφωνα µε τη λογική που αυτό χρησιµοποιείται στο δόκιµο "εσωστρεφής" (και όχι "εσωστραφής"), που σηµαίνει "στροφή προς τον εαυτό". Μια άλλη, κατά τη γνώµη µας άστοχη, απόδοση του όρου στην ελληνική γλώσσα είναι "αντικειµενικός", λέξη που υπήρχε ήδη στην ελληνική γλώσσα και σηµαίνει κάτι εντελώς διαφορετικό. Ο παραπάνω ορισµός χρησιµοποίησε τον όρο αντικείµενο, ο οποίος θα πρέπει επίσης να οριστεί στο πλαίσιο του λογισµικού. Αντικείµενο Ενα αντικείµενο είναι ένα δοµικό συστατικό λογισµικού. Κάθε αντικείµενο έχει κατάσταση, συµπεριφορά και ταυτότητα. Η κατάσταση περιγράφει όλες τις στατικές ιδιότητες του αντικειµένου, όπως τιµές σε µεταβλητές µνήµης. Οι ιδιότητες αυτές είναι το αποτέλεσµα της συµπεριφοράς του αντικειµένου, δηλαδή του τρόπου µε τον οποίο αυτό ανταποκρίνεται σε κλήσεις από το περιβάλλον του. Η ταυτότητα είναι η µοναδική διάκριση του αντικειµένου από τα οµοειδή του. Από τεχνικής πλευράς, το αντικείµενο µπορεί να θεωρηθεί ως η συγχώνευση δύο εννοιών που κατέχουν δεσπόζουσα θέση στη δοµηµένη ανάλυση, σχεδίαση και προγραµµατισµό: της εγγραφής (record στην Pascal) και της συνάρτησης ή διαδικασίας (function, procedure στην Pascal). Η εγγραφή είναι µια συλλογή µεταβλητών µνήµης, οι οποίες αποτελούν τη δοµή της και κάθε στιγµή έχουν κάποια συγκεκριµένη τιµή. Το σύνολο των τιµών των µεταβλητών µιας εγγραφής αποτελεί την κατάσταση αυτής. Αν στην εγγραφή, όπως την ορίσαµε µέχρι τώρα, προσθέσουµε ενεργά συστατικά λογισµικού, δηλαδή µονάδες προγράµµατος που εκτελούν υπολογισµούς, τότε µιλάµε για αντικείµενο και όχι για εγγραφή. ηλαδή, ένα αντικείµενο περικλείει ένα σύνολο δεδοµένων και ένα σύνολο συναρτήσεων που χειρίζονται τα δεδοµένα αυτά και επιτελούν τις λειτουργίες του πεδίου ευθύνης αυτού. Κλάση Το σύνολο των αντικειµένων που έχουν την ίδια δοµή και την ίδια συµπεριφορά, ονοµάζεται κλάση. Θα πρέπει να διακρίνουµε µεταξύ της έννοιας δοµή και της έννοιας κατάσταση. Η δοµή χαρακτηρίζεται από το ποιες και τι τύπου µεταβλητές περιγράφουν τις ιδιότητες του αντικειµένου, ενώ η κατάσταση είναι ένα σύνολο συγκεκριµένων τιµών στις µεταβλητές αυτές. Η διατύπωση ίδια συµπεριφορά σηµαίνει ίδια απόκριση στο ίδιο εξωτερικό ερέθισµα. Η κλάση είναι µια αφηρηµένη έννοια, όπως αφηρηµένη είναι η έννοια του τύπου (type) στις γλώσσες προγραµµατισµού. Ο τύπος δεν είναι κάτι που υπάρχει την ώρα της εκτέλεσης ενός προγράµµατος. Αυτό που υπάρχει είναι οι µεταβλητές µνήµης, καθεµία εκ των οποίων είναι κάποιου τύπου. Μπορούµε, λοιπόν, να αναγνωρίσουµε αντιστοιχία µεταξύ των εννοιών "τύπος - µεταβλητή" και "κλάση - αντικείµενο": Οπως ισχύει ότι "κάθε µεταβλητή µνήµης είναι κάποιου τύπου", έτσι ισχύει ότι "κάθε αντικείµενο ανήκει σε µία κλάση", η οποία καθορίζει πλήρως τη δοµή καιτησυµπεριφορά του. Με βάση τα παραπάνω, µια κλάση µπορεί να θεωρηθεί ως ηπεριγραφήτηςδοµής και της συµπεριφοράς των αντικειµένων που ανήκουν σε αυτή, τα οποία είναι τα συστατικά στοιχεία λογισµικού που έχουν τη δοµή και εκδηλώνουν τη συµπεριφορά. 7

8 Στιγµιότυπο, εκδοχή Κάθε αντικείµενο αποτελεί ένα µοναδικό και συγκεκριµένο στιγµιότυπο ή εκδοχή (instance) τηςκλάσηςστηνοποίαανήκει. Η κατάσταση ενός αντικειµένου καθορίζεται από τις µεταβλητές κατάστασης, οι οποίες αντιστοιχούν στα ιδιώµατά του. Πεδίο Ενα πεδίο (field) είναι µια µεταβλητή η οποία παριστάνει ένα ιδίωµα του αντικειµένου. Το σύνολο των τιµών όλων των πεδίων ενός αντικειµένου αποτελεί την κατάσταση αυτού. Ισοδύναµα χρησιµοποιείται και ο όρος ιδίωµα (attribute). Η συµπεριφορά ενός αντικειµένου καθορίζεται από τον τρόπο µε τον οποίο αυτό αντιδρά σε εξωτερικά ερεθίσµατα, δηλαδή σε κλήσεις από τα αντικείµενα που αποτελούν το περιβάλλον του. Μέθοδος Μια µέθοδος είναι ένα ενεργό συστατικό λογισµικού (συνάρτηση, διαδικασία), η οποία υλοποιεί ένα στοιχείο συµπεριφοράς ενός αντικειµένου. Το σύνολο όλων των µεθόδων ενός αντικειµένου καθορίζει την συµπεριφορά του. Μια χαρακτηριστική ιδιότητα των αντικειµένων, βασικό στοιχείο της αντικειµενοστρεφούς φιλοσοφίας, είναι η κελυφοποίηση (encapsulation) ή, όπως ισοδύναµα αναφέρεται στη βιβλιογραφία, η απόκρυψη πληροφοριών (information hiding). Στην ελληνική βιβλιογραφία η έννοια απαντάται και µε τον όρο "ενθυλάκωση". Κελυφοποίηση, απόκρυψη πληροφοριών Η απόκρυψη των λεπτοµερειών υλοποίησης ενός αντικειµένου από το περιβάλλον του, διαµέσω της ελεγχόµενης ορατότητας των πεδίων και των µεθόδων αυτού από άλλα αντικείµενα. Αρκετοί συγγραφείς συνδέουν την κελυφοποίηση µε την πρόσβαση σε ορισµένα µόνο πεδία και µεθόδους ενός αντικειµένου, τα οποία ορίζουν την διαπροσωπεία (interface) αυτού µε τον έξω κόσµο. Αυτή είναι η πρακτική εφαρµογή της απόκρυψης πληροφοριών, η οποία αποτελεί µια βασική αρχή της αντικειµενοστρεφούς φιλοσοφίας που εφαρµόζεται µε διάφορους τρόπους στις γλώσσες προγραµµατισµού οι οποίες την υποστηρίζουν. Ας σηµειωθεί ότι επιλέξαµε να χρησιµοποιήσουµε τον όρο "αντικείµενο" και όχι "κλάση", διότι η κλάση είναι µια γενική έννοια η οποία δεν έχει δικές της λεπτοµέρειες υλοποίησης, αλλά περιέχει την περιγραφή των λεπτοµερειών αυτών ώστε να δηµιουργούνται αντικείµενα, δηλαδή συγκεκριµένα στιγµιότυπα της κλάσης. Στις αναφορές που θα ακολουθήσουν σε όλο το βιβλίο, θα µιλάµε για κλάσεις όταν η συζήτηση µπορεί να διεξάγεται στο γενικό επίπεδο της περιγραφής των αντικειµένων, ενώ όταν είναι αναγκαίο να αναφερθούµε σε συγκεκριµένες εκδοχές, θα χρησιµοποιούµε τον όρο αντικείµενο. Παράδειγµα Ας θυµηθούµε τη µελέτη περίπτωσης του πρώτου τόµου, όπου ασχοληθήκαµε µε την εφαρµογή λογισµικού "ΕΠΙΚΟΥΡΟΣ" µε αντικείµενο την υποστήριξη των εργασιών της γραµµατείας µιας 8

9 εκπαιδευτικής µονάδας. Θα διακρίνουµε δύοκλάσειςαπότηνεφαρµογή αυτή, προς το παρόν µε τρόπο αυθαίρετο, έχοντας σκοπό όχι να µάθουµε να αναγνωρίζουµε κλάσεις, αλλά να αποκτήσουµε µια πρώτη άποψη. Πρόκειται για τις κλάσεις "Καθηγητής" και "Μάθηµα". Γνωρίζουµε τα πεδία τα οποία περιέχονται στην εγγραφή κάθε τέτοιας οντότητας. Οι µέθοδοι τις οποίες αποδίδουµε σε κάθε µία από τις κλάσεις αυτές δεν είναι παρά οι λειτουργίες που επιτελούνται επί των πεδίων τους. Οι λειτουργίες αυτές αναφέρονται στις λειτουργικές απαιτήσεις της "µελέτης περίπτωσης" του πρώτου τόµου. Οι κλάσεις που ορίσαµε φαίνονται στο Σχήµα 1.1. Ο συµβολισµός που χρησιµοποιείται είναι προφανής: στο πρώτο διαµέρισµα φιλοξενείταιτοόνοµα τηςκλάσης, στο δεύτερο τα ονόµατα των πεδίων και στο τρίτο τα ονόµατα των µεθόδων. Προσπερνάµε, προς το παρόν, τις λεπτοµέρειες του συµβολισµού, µε τον οποίο θα ασχοληθούµε στην ενότητα 1.4. Αρ.Ταυτ ότητας Ονοµα Επώνυµο ιεύθυνση Τηλέφωνο Καθηγητής Προσθήκη Καθηγητή() ιαγραφή Καθηγητή() Μεταβολή σχοιχείων Καθηγητή() Μάθηµα Κωδικός Μαθήµατος Θεµατική ενότητα Τίτλος ιδάσκων Προσθήκη Μαθήµατος() ιαγραφή Μαθήµατος() Μεταβολή στοιχείων Μαθήµατος() Ανάθεση Μαθήµατος() Σχήµα 1.1. ύο κλάσεις από την εφαρµογή λογισµικού "ΕΠΙΚΟΥΡΟΣ" Αντικείµενα που ανήκουν στην κλάση «Καθηγητής» αντιστοιχούν σε συγκεκριµένες εκδοχές (instances) αυτής, εν προκειµένω σε πραγµατικούς καθηγητές. Επίσης, αντικείµενα που ανήκουν στην κλάση «Μάθηµα» αντιστοιχούν σε συγκεκριµένα µαθήµατα. Τέτοια αντικείµενα εικονίζονται στο Σχήµα 1.2. Η κατάσταση των αντικειµένων, δηλαδή το χαρακτηριστικό εκείνο που τα προσδιορίζει και τα διαφοροποιεί µεταξύ τους, σηµειώνεται στο Σχήµα 1.2 µε έντονους χαρακτήρες. Η συµπεριφορά τους, όπως αναφέρθηκε, είναι κοινή και εξαρτάται µόνο από την κλάση στην οποία ανήκουν. Καθηγητής_01 Αρ.Ταυτότητας: Α Ονοµα: Βασίλειος Επώνυµο: Βασιλείου ιεύθυνση: Αγ.Βασιλείου 1 Τηλέφωνο: Προσθήκη Καθηγητή() ιαγραφή Καθηγητή() Μεταβολή στοιχείων Καθηγητή() Καθηγητής_02 Αρ.Ταυτότητας: Β Ονοµα: Γεώργιος Επώνυµο: Γεωργίου ιεύθυνση: Αγ.Γεωργίου 1 Τηλέφωνο: Προσθήκη Καθηγητή() ιαγραφή Καθηγητή() Μεταβολή στοιχείων Καθηγητή() Μάθηµα 01 Κωδικός µαθήµατος: ΠΛ-034 Θεµατική ενότητα: Πληροφορική Τίτλος: Προγραµµατισµός Η/Υ ιδάσκων: Β Προσθήκη Μαθήµατος() ιαγραφή Μαθήµατος() Μεταβολή στοιχείων Μαθήµατος() Ανάθεση Μαθήµατος() Σχήµα 1.2. Αντικείµενα στιγµιότυπα των κλάσεων που φαίνονται στο Σχήµα

10 Σχέσεις µεταξύ κλάσεων Έχοντας αναγνωρίσει σχέσεις µεταξύ δεδοµένων και ενεργών συστατικών λογισµικού ("Τεχνολογία Λογισµικού 1", κεφάλαια 3 και 4), µπορούµε να περιµένουµε ότι και µεταξύ των κλάσεων θα υπάρχουν σχέσεις. Όταν µεταξύ δύο κλάσεων αναγνωρίζουµε µια σχέση, τότε η σχέση αυτή υλοποιείται στο επίπεδο των αντικειµένων των κλάσεων αυτών. Μπορούµε ναπροσπαθήσουµε να "µαντέψουµε" το είδος των σχέσεων που υπάρχουν µεταξύ κλάσεων, κάνοντας τις ακόλουθες δύο παρατηρήσεις. Πρώτον, επειδήκαιοικλάσεις, όπως οι εγγραφές (records) και οι πίνακες (tables) (Θεµατικές Ενότητες «οµές εδοµένων» και «Βάσεις εδοµένων») περιέχουν δεδοµένα, θα πρέπει µε κάποιο τρόπο να παριστάνονται οι σχέσεις µεταξύ των δεδοµένων. εύτερον, εισάγαµε την έννοια της κλάσης αναφερόµενοι στην ανεπάρκεια της δοµηµένης φιλοσοφίας να µοντελοποιήσει τον πραγµατικό κόσµο. Φυσικό είναι, λοιπόν, να περιµένουµε οι κλάσεις να προσφέρουν δυνατότητες καλύτερης µοντελοποίησης του κόσµου, µέσα από την εσωτερική δοµή, αλλά και από τις δυνατές συσχετίσεις µεταξύ τους. Πράγµατι, οι σχέσεις µεταξύ των κλάσεων επαληθεύουν τις δύο αυτές παρατηρήσεις. Τρεις είναι οι κύριοι τύποι σχέσεων µεταξύ κλάσεων: Η συσχέτιση (association), η κληρονοµικότητα (inheritance) και η συναρµολόγηση (aggregation). Θα παρουσιάσουµε τις σχέσεις αυτές, χωρίς να σκοπεύουµε να δείξουµε πώς τις αναγνωρίζουµε, θέµα στο οποίο θα αναφερθούµε στα κεφάλαια 3 και 4. Συσχέτιση Ησυσχέτιση(association) είναιηπιογενικήαπότιςσχέσειςπουµπορεί να συνδέουν δύο κλάσεις. Μπορούµε µε αρκετή ασφάλεια να αντιληφθούµε τη συσχέτιση ως µια περισσότερο γενική απ' ότι στο σχεσιακό µοντέλο, σχέση µεταξύ δεδοµένων. Λέµε "περισσότερο γενική", διότι η συσχέτιση δεν περιορίζεται σε τρεις δυνατούς τύπους, όπως στο σχεσιακό µοντέλο, αλλά έχει οποιαδήποτε χαρακτηριστικά απαιτεί η φύση του προβλήµατος. Μια συσχέτιση χαρακτηρίζεται από: Ένα όνοµα, ενδεχοµένως διαφορετικό ανάλογα µε τη φορά ανάγνωσης. Την πολλαπλότητα, δηλαδή τον επιτρεπόµενο αριθµό των µελών κάθε µέρους της συσχέτισης. Τα ονόµατα του ρόλου (role) που παίζει κάθε µέρος στη συσχέτιση. Οι πολλαπλότητες "ένα προς ένα", "ένα προς πολλά" και "πολλά προς πολλά", είναι και στην περίπτωση αυτή οι περισσότερο γενικές, ωστόσο, όπως θα δούµε και στο παράδειγµα που θα ακολουθήσει, µπορούµε να ορίσουµε οποιαδήποτε πολλαπλότητα απαιτείται στις εκάστοτε συνθήκες. Παράδειγµα Στο Σχήµα 1.3 φαίνεται η συσχέτιση των κλάσεων "Καθηγητής" και "Μάθηµα". Ο ρόλος του "Καθηγητή" είναι διδάσκων, ενώ το "Μάθηµα" είναι το αντικείµενο της διδασκαλίας. Κάθε καθηγητής 10

11 µπορεί να διδάσκει από ένα έως τρία το πολύ µαθήµατα. Η πολλαπλότητα αυτή της συσχέτισης φαίνεται επίσης στο σχήµα. Αρ.Ταυτότ ητας Ονοµα Επώνυµο ιεύθυνση Τηλέφωνο Καθηγητής Προσθήκη Καθηγητή() ιαγραφή Καθηγητή() Μεταβολή σχοιχείων Καθηγητή() + ιδάσκων 1 ιδάσκει +Αντικείµενο 1..3 Μάθηµα Κωδικός Μαθήµατος Θεµατική ενότητα Τίτλος ιδάσκων Προσθήκη Μαθήµατος() ιαγραφή Μαθήµατος() Μεταβολή στοιχείων Μαθήµατος() Ανάθεση Μαθήµατος() Σχήµα 1.3. Μια συσχέτιση µεταξύ κλάσεων. Κληρονοµικότητα ή γενίκευση Η κληρονοµικότητα (inheritance) είναι, ίσως, η πιο πολυδιαφηµισµένη σχέση στην αντικειµενοστρεφή φιλοσοφία. ύο κλάσεις συνδέονται µε κληρονοµικότητα όταν η µία αποδίδει στην άλλη τα χαρακτηριστικά της, δηλαδή, κατά κάποιον τρόπο, της τα κληροδοτεί. Η πρώτη κλάση λέγεται κλάση-πατέρας, ενώ η δεύτερη κλάση-παιδί, και µπορεί να προσθέτει στα χαρακτηριστικά που κληρονοµεί (πεδία και µεθόδους) και δικά της. Μια κλάση-πατέρας µπορεί να αποδίδει τα χαρακτηριστικά της σε πολλές κλάσεις-παιδιά. Στην περίπτωση που κάθε κλάση που συµµετέχει σε σχέση κληρονοµικότητας έχει µόνο έναν πατέρα, τότε µιλάµε για απλή κληρονοµικότητα (single inheritance). Όταν µια κλάση κληρονοµεί χαρακτηριστικά από περισσότερες της µίας κλάσεις-πατέρα, τότε µιλάµε για πολλαπλή κληρονοµικότητα (multiple inheritance). Υπάρχουν πολλές πρακτικές πλευρές στην υλοποίηση της κληρονοµικότητας µεταξύ κλάσεων, οι οποίες αφορούν την κάθε συγκεκριµένη γλώσσα προγραµµατισµού που υποστηρίζει κληρονοµικότητα και δεν θα µας απασχολήσουν εδώ. Κοιτώντας από "πάνω προς τα κάτω", δηλαδή από την κλάση-πατέρα στην κλάση-παιδί, µιλάµε για κληρονοµικότητα, διότι η κλάση-παιδί έχει τουλάχιστον ό,τι χαρακτηριστικό έχει η κλάση-πατέρας. Όπως είπαµε όµως, έχει και κάποια επιπλέον χαρακτηριστικά τα οποία δεν έχει ο πατέρας (η περίπτωση που µια κλάση κληρονοµεί τα χαρακτηριστικά µιας άλλης χωρίς να προσθέτει τίποτε δικό της δεν εξετάζεται ως τετριµµένη). Τα επιπλέον χαρακτηριστικά εξειδικεύουν την κληρονοµούµενη κλάση, δηλαδή η κλάση-παιδί είναι µια εξειδίκευση της κλάσης πατέρα. Κοιτώντας, τώρα, τη σχέση κληρονοµικότητας από κάτω προς τα πάνω, παρατηρούµε ότι η κλάσηπατέρας έχει λιγότερα χαρακτηριστικά από την κλάση-παιδί, δηλαδή αποτελεί γενίκευσή της. Με την έννοια αυτή, µιλάµε ισοδύναµα γιαγενίκευση. Και στις δύο περιπτώσεις, έχουµε στηδιάθεσή µας ένα µηχανισµό ταξινόµησης των οντοτήτων που πραγµατικού κόσµο που αντιστοιχούν σε κλάσεις, από το γενικό στο ειδικό (κληρονοµικότητα) ή, ισοδύναµα, από το ειδικό στο γενικό (γενίκευση). Στην αντικειµενοστρεφή τεχνολογία, κληρονοµικότητα και γενίκευση αποτελούν τις δύο όψεις ενός µηχανισµού ταξινόµησης (classification) των οντοτήτων του πραγµατικού κόσµου. 11

12 Αυτός ο µηχανισµός ταξινόµησης αποτελεί κεντρικό στοιχείο της αντικειµενοστρεφούς φιλοσοφίας. Το τελευταίο διάστηµα γίνεται περισσότερος λόγος για γενίκευση και λιγότερος για κληρονοµικότητα (αν και πρόκειται για το ίδιο πράγµα), διότι η γενίκευση µπορεί να γίνει ευκολότερα αντιληπτή ως εργαλείο µοντελοποίησης, όπως θα δούµε και στη συνέχεια. Παράδειγµα Οι οντότητες "Καθηγητής" και "Σπουδαστής", αµφότερες περιγράφουν φυσικά πρόσωπα, τα οποία έχουν κοινά χαρακτηριστικά (λ.χ. όνοµα, επώνυµο). Μπορούµε, λοιπόν, να θεωρήσουµε ότι τα κοινά χαρακτηριστικά που έχουν όλα τα φυσικά πρόσωπα, περιγράφονται σε µια κλάση-πατέρα, η οποίατακληρονοµεί στις κλάσεις "Καθηγητής" και "Σπουδαστής", όπως φαίνεται στο Σχήµα 1.4. Φυσικό Πρόσωπο Αρ.Ταυτότητας Ονοµα Επώνυµο ιεύθυνση Τηλέφωνο Τµήµα Σπουδαστής Προσθήκη Σπουδαστή() ιαγραφή Σπουδαστή() Μεταβολή στοιχείων Σπουδαστή() Ειδικότητα Βαθµίδα Καθηγητής Προσθήκη Καθηγητή() ιαγραφή Καθηγητή() Μεταβολή σχοιχείων Καθηγητή() Σχήµα 1.4. Ένα παράδειγµα σχέσης κληρονοµικότητας γενίκευσης Να σηµειώσουµε ότιστοσχήµα 1.4 προσθέσαµε στηνκλάση"καθηγητής" τα πεδία "Ειδικότητα" και "Βαθµίδα". ιαβάζοντας το σχήµα από πάνω προς τα κάτω, διαπιστώνουµε ότικαθεµία από τις έννοιες "Καθηγητής" και "Σπουδαστής" είναι ειδικότερη από την έννοια "Φυσικό πρόσωπο" και κληρονοµεί όλα τα χαρακτηριστικά της. Γι' αυτό µιλάµε για κληρονοµικότητα. Αντίστροφα, θεωρώντας το σχήµα από κάτω προς τα πάνω, παρατηρούµε ότιηέννοια"φυσικό πρόσωπο" είναι γενικότερη από την έννοια "Σπουδαστής" και από την έννοια "Καθηγητής", οπότε µιλάµε για γενίκευση. Συναρµολόγηση Ησυναρµολόγηση (aggregation) είναι εκείνη η σχέση που εκφράζει ακριβώς αυτό που λέει το όνοµά της: την σύνθεση συνόλων από απλούστερα µέρη. Η έννοια της συναρµολόγησης δεν µπορεί να θεωρηθεί ως σχέση κληρονοµικότητας διότι δεν αναγνωρίζουµε χαρακτηριστικά που αποδίδονται από µία κλάση σε µία άλλη. Ενδεχοµένως η συναρµολόγηση να µπορεί να θεωρηθεί ως µια ειδική συσχέτιση την οποία, όµως, έχει νόηµα ναεξετάσουµε αυτοτελώς διότι είναι ένα 12

13 χρήσιµο εργαλείο για την µοντελοποίηση του πραγµατικού κόσµου, όπως θα δούµε και στην ενότητα 1.3. Παράδειγµα Ας θεωρήσουµε µια εφαρµογή λογισµικού που διαχειρίζεται τη συντήρηση των αεροσκαφών που χρησιµοποιούνται στις αεροµεταφορές. Η συντήρηση απαιτεί την παράσταση της δοµής κάθε αεροσκάφους, η οποία µπορεί να γίνει σε πάρα πολλά επίπεδα, ξεκινώντας από την περισσότερο σύνθετη οντότητα (ολόκληρο το αεροσκάφος) και φτάνοντας µέχρι και το µικρότερο εξάρτηµα. Στο Σχήµα 1.5 φαίνεται µια τέτοια σχέση συναρµολόγησης σε ένα πρώτο, πολύ γενικό, επίπεδο. Αεροσκάφος Ατρακτος Φτερό Κινητήρας Σύστηµα 1 τροχών οµικό τµήµα φτερού 1 εξαµενή καυσίµων 1 Υδραυλικό σύστηµα 1 Σύστηµα πλοήγησης Σχήµα 1.5. Ένα πολύ µικρό τµήµα της συναρµολόγησης ενός αεροσκάφους από επιµέρους συστατικά. Οι αριθµοί πάνω στις άκρες των ευθυγράµµων τµηµάτων που παριστάνουν τις σχέσεις, αντιστοιχούν στην πολλαπλότητα των αντίστοιχων συστατικών. Κάθε αεροσκάφος αποτελείται από ακριβώς µία άτρακτο, δύο φτερά, δύο κινητήρες, ένα σύστηµα τροχών και ένα σύστηµα πλοήγησης. Κάθε φτερό, αποτελείται από ένα δοµικό τµήµα, από µία δεξαµενή καυσίµων και από ένα υδραυλικό σύστηµα. Όπως καταλαβαίνει ο αναγνώστης, η ανάλυση µπορεί να συνεχίζεται για πάρα πολύ, φτάνοντας µέχρι και στις µικρότερες βίδες οι οποίες αποτελούν το αεροσκάφος. Αλλες σχέσεις Μελετώντας τη βιβλιογραφία µπορεί κανείς να βρει αναφορές και σε άλλες σχέσεις µεταξύ κλάσεων. Χαρακτηριστικά µπορούµε να αναφέρουµε τις σχέσεις "χρησιµοποιεί" (using), "στιγµιότυπο" (instantiation)και "µετακλάση" (metaclass).οι σχέσεις αυτές αφορούν περισσότερο την υλοποίηση ενός συστήµατος σε κάποια συγκεκριµένη γλώσσα προγραµµατισµού που τις υποστηρίζει και δεν είναι συστατικό του µηχανισµού ανάλυσης προβληµάτων µε την αντικειµενοστρεφή φιλοσοφία, ο οποίος θα µας απασχολήσει εδώ. 13

14 1.3. ΕΝΑΣ ΑΛΛΟΣ ΤΡΟΠΟΣ ΠΑΡΑΣΤΑΣΗΣ ΤΟΥ ΚΟΣΜΟΥ Έχοντας δει µια αρχική περιγραφή των χαρακτηριστικών της αντικειµενοστρεφούς προσέγγισης, µπορούµε τουλάχιστον να υποψιαστούµε ότι έχουµε στη διάθεσή µας όχι µόνο κάποιους νέους όρους που αφορούν τα συστατικά λογισµικού και τις σχέσεις µεταξύ τους, αλλά κάποια εργαλεία που µας επιτρέπουν να µοντελοποιήσουµε ένα πρόβληµα µε διαφορετικό τρόπο απ' ότι η δοµηµένη ανάλυση και σχεδίαση. Πριν ξεκινήσουµε τη συζήτηση, είναι χρήσιµο να εισάγουµε την έννοια της αφαίρεσης (abstraction). Αφαίρεση Αφαίρεση (abstraction) είναι η νοητική εκείνη λειτουργία όπου από το σύνολο των λεπτοµερειών µιας οντότητας ή ενός γεγονότος, επιλέγουµε ναεπικεντρώσουµετηνπροσοχή µας µόνο σε κάποιες, αφαιρώντας τις υπόλοιπες. Η αφαίρεση είναι χρήσιµο εργαλείο για τη δηµιουργία µοντέλων της πραγµατικότητας, τα οποία έχουν µόνο τη λεπτοµέρεια που µας απασχολεί και χρησιµοποιείται ευρύτατα στην αντικειµενοστρεφή προσέγγιση. Παράδειγµα Ένας χάρτης είναι µια αφαίρεση της πραγµατικότητας, η οποία απεικονίζει τα χαρακτηριστικά µιας γεωγραφικής περιοχής τα οποία µας ενδιαφέρουν. Ενας µορφολογικός χάρτης χρησιµοποιεί µια άλλη αφαίρεση απ' ότι ένας πολιτικός χάρτης της ίδιας περιοχής (Σχήµα 1.6). εν είναι εύκολο, ούτε και χρήσιµο, όλα τα χαρακτηριστικά της περιοχής να συµπεριληφθούν σε ένα και µόνο χάρτη. Για το λόγο αυτό, κάνουµε τις αφαιρέσεις που κάθε στιγµή είναι χρήσιµες στον σκοπό µας και δουλεύουµε µε αυτές. Σχήµα 1.6. Η έννοια της Αφαίρεσης. Αριστερά φαίνεται ένας µορφολογικός χάρτης της Ελλάδας, ενώ δεξιά ένας πολιτικός χάρτης. Η αφαίρεση στις δύο περιπτώσεις είναι διαφορετική, δηλαδή µας ενδιαφέρει να απεικονιστούν διαφορετικά χαρακτηριστικά. Θα προσπαθήσουµε ακολούθως να δώσουµε µια σύντοµη απάντηση στο ερώτηµα: 14

15 Ποια είναι εκείνα τα χαρακτηριστικά της αντικειµενοστρεφούς τεχνολογίας που συνηγορούν στο ότι αυτή αντιµετωπίζει κάποιες από τις αδυναµίες της δοµηµένης ανάλυσης και σχεδίασης που αναφέραµε στην ενότητα 1.1; Το πρώτο που µπορούµε ναυποστηρίξουµε, είναι ότι η οµαδοποίηση δεδοµένων και λειτουργιών µέσα στις κλάσεις, τις καθιστούν περισσότερο αντιστοιχίσιµες µε οντότητες του πραγµατικού κόσµου. Κάθε οντότητα του πραγµατικού κόσµου έχει και κατάσταση και συµπεριφορά και είναι περισσότερο κατανοητό να την παραστήσουµε µε ένα σύνθετο αλλά ενιαίο συστατικό λογισµικού που ενσωµατώνει και τα δύο, την κλάση, παρά µε πολλά ανεξάρτητα µεταξύ τους. εύτερο σηµείο, είναι η δυνατότητα αντίληψης της οµαδοποίησης δεδοµένων και λειτουργιών σε µια κλάση, ως την ευθύνη της κλάσης να χειρίζεται δια των λειτουργιών της (δηλαδή να µεταβάλλει και να διαθέτει στο περιβάλλον της) τα δεδοµένα που περικλείει. Η έννοια αυτή της ευθύνης αποτελεί κεντρικό σηµείο σε αρκετές µεθοδολογίες αντικειµενοστρεφούς ανάλυσης. Τρίτο σηµείοείναιοπλούτοςτωνσχέσεωνστηναντικειµενοστρεφή φιλοσοφίας. Οι σχέσεις της κληρονοµικότητας / γενίκευσης και της συναρµολόγησης, δεν υπάρχουν καν ως έννοιες στην δοµηµένη ανάλυση. Μπορεί να τις συναντήσει κανείς να εφαρµόζονται ως πρακτικές στην κατασκευή του λογισµικού, µόνο που αυτό συµβαίνει χωρίς να αποτελούν εργαλείο µοντελοποίησης αλλά κατασκευαστικό εύρηµα (για παράδειγµα, η παραµετρικοποίηση µιας συνάρτησης ώστε να χρησιµοποιείται σε πολλές περιπτώσεις µπορεί να θεωρηθεί ως µιας µορφής κληρονοµικότητα). Κοντολογίς, µε την αντικειµενοστρεφή προσέγγιση κάνουµε ανάλυση του εκάστοτε προβλήµατος σε διαφορετικά συστατικά από ότι µε την δοµηµένη. Η τοποθέτηση των δεδοµένων (πεδία) µαζί µε τις λειτουργίες που επιδρούν σε αυτά (µεθόδους) αναδεικνύει τα δεδοµένα σε κυρίαρχα στοιχεία της αναλυτικής σκέψης στην αντικειµενοστρεφή φιλοσοφία (Σχήµα 1.7). Functional abstraction Data abstraction f f f f f f Πρόβληµατου Πρόβληµατου πραγµατικού πραγµατικού κόσµου κόσµου d f d f d f d d d f d f d d Σχήµα 1.7. Αφαίρεση ως προς τους µετασχηµατισµούς και ως προς τα δεδοµένα 15

16 Στην αντικειµενοστρεφή φιλοσοφία ακολουθούµε αφαίρεση ως προς τα δεδοµένα (data abstraction) και µαζί µε αυτά τοποθετούµε τις λειτουργίες, πράγµα που δεν ισχύει στη δοµηµένη ανάλυση, όπου ακολουθούµε αφαίρεση ως προς τους µετασχηµατισµούς (functional abstraction) οι οποίοι τελικά είναι µονάδες προγράµµατος που επιδρούν σε εντελώς ανεξάρτητα δεδοµένα. Κλείνοντας την ενότητα αυτή, είναι χρήσιµο να σηµειώσουµε ότι η αντικειµενοστρεφής προσέγγιση δεν είναι εξ' ορισµού "η καλύτερη" για όλα τα προβλήµατα. Απλά, την εποχή που διανύουµε τη θεωρούµε ως την περισσότερο πρόσφορη για το είδος των υπολογιστικών προβληµάτων που αντιµετωπίζουµε. Όπως αναφέραµε, η ιδέα υπήρχε από τη δεκαετία του Τότε, όµως, επικρατούσε η άποψη ότι τα προβλήµατα στην ανάπτυξη του λογισµικού θα αντιµετωπιστούν µε την δοµηµένη ανάλυση και σχεδίαση. Ηταν, αναµφίβολα, και το είδος των εφαρµογών λογισµικού εκείνης της εποχής, που συνέβαλλε στην υποστήριξη αυτής της θέσης. Αύριο, το είδος των εφαρµογών λογισµικού που θα αναπτύσσουµε µπορεί να µας οδηγήσει στην άποψη ότι ο λογικός προγραµµατισµός (logic programming) είναι περισσότερο πρόσφορος για την αντιµετώπιση των νέων αναγκών στην ανάπτυξη λογισµικού (η ιδέα υπάρχει ήδη από δεκαετίες). Σήµερα, τόσο οι εξελίξεις που αναφέραµε, όσο και το είδος των εφαρµογών λογισµικού που κατασκευάζουµε, µας ωθούν στο να πιστεύουµε ότι η αντικειµενοστρεφής προσέγγιση είναι περισσότερο πρόσφορη και προσπαθούµε να την κάνουµε επαρκώς γενική και εφαρµόσιµη για τους σκοπούς µας ΣΥΜΒΟΛΙΣΜΟΙ ΚΑΙ ΠΡΟΤΥΠΑ Επί µακρόν, στην κοινότητα της αντικειµενοστρεφούς τεχνολογίας επικρατούσε µια σύγχυση και ένας πλουραλισµός συµβολισµών για τις διάφορες έννοιες. Αιτίες γι' αυτό µπορούν να αναζητηθούν σε πολλά επίπεδα, όπως ενδεικτικά: Το σχετικά νέο της εµφάνισης της αντικειµενοστρεφούς τεχνολογίας στους κατασκευαστές λογισµικού. Η ρευστότητα των εξελίξεων και η µη επικράτησηκαµίας προσέγγισης. Ο ανταγωνισµός στην αγορά εργαλείων και συµβουλευτικών υπηρεσιών ανάπτυξης λογισµικού. Η προερχόµενη από την δοµηµένη φιλοσοφία κουλτούρα πολλών συγγραφέων και ερευνητών, καθώς και των περισσότερων κατασκευαστών λογισµικού. Ησχετικάπεριορισµένη (την εποχή εκείνη) ευρύτητα του πεδίου εφαρµογών των οποίων η ανάπτυξη µε αντικειµενοστρεφή λογική θα ήταν περισσότερο πρόσφορη. Με την ωρίµανση της τεχνολογίας, όπως αναφέρθηκε και στο πρώτο κεφάλαιο του βιβλίου αυτού, δηµιουργήθηκαν οι συνθήκες για την ανάπτυξη ενός προτύπου συµβολισµών των σχετικών µε την αντικειµενοστρεφή τεχνολογία εννοιών. Τα πρώτα βήµατα έγιναν στις αρχές της δεκαετίας του 1990, από τους συγγραφείς των τριών επικρατέστερων αντικειµενοστρεφών προσεγγίσεων ανάπτυξης λογισµικού: τους Booch, Jacobson και Rumbaugh (προφέρεται "Ράµπο"). Αργότερα, αναγνωρίζοντας τη δυναµική που δηµιουργείτο, συνέπραξαν και µεγάλοι κατασκευαστές λογισµικού και εργαλείων, όπως η Digital Equipment (τότε υπήρχε ακόµη) η Hewlett Packard, η Oracle, η Texas Instruments, η Unisys, η MCI, και η Microsoft. Ακολουθώντας την πορεία που 16

17 φαίνεται στο Σχήµα 1.8, κατέληξαν στην περιγραφή ενός προτύπου συµβολισµών το οποίο ονοµάστηκε Unified Modeling Language και εν συντοµία UML. Το πρότυπο, στην τελευταία του έκδοση υιοθετήθηκε από τον οργανισµό OMG (Object Management Group, ως βιοµηχανικό πρότυπο παράστασης λογισµικού (OMG) UML 1.3 Σεπ 97 Ιαν 97 UML 1.1 UML 1.0 OOPSLA 95 Ιουν 96 & Οκτ 96 UML 0.9 & 0.91 UnifiedMethod0.8 Συµβολή συνεργατών UML Booch 93 OMT - 2 Λοιπές µεθοδολογίες Booch 91 OMT - 1 OOSE Σχήµα 1.8. ΗπορείαπροςτηνUML. Η UML από µόνη της µπορεί να αποτελέσει αυτοτελές αντικείµενο µακράς ενασχόλησης, κάτι που ξεφεύγει από το αντικείµενο του παρόντος βιβλίου. Είναι κατάλληλη για την παράσταση των εννοιών που απαντώνται όχι µόνο στην αντικειµενοστρεφή τεχνολογία ανάπτυξης λογισµικού, αλλά και σε αρκετά άλλα θεµατικά πεδία, όπως η µοντελοποίηση επιχειρησιακών διαδικασιών (Business Modeling), προσφέροντας ένα πρότυπο σύνολο συµβολισµών το οποίο τελικά αποτελεί µέσο επικοινωνίας. Ως τέτοιο θα την αντιµετωπίσουµε στο βιβλίο αυτό, χρησιµοποιώντας τα συστατικά που η ίδια διαθέτει προκειµένου να την ορίσουµε, πράγµα πουθακάνουµε διαδοχικά, σε σηµεία όπου θα είναι αναγκαίο να χρησιµοποιήσουµε κάποιο στοιχείο της(σύµβολο ή διάγραµµα). Με αυτό τον τρόπο θα επιδιώξουµε να επαληθεύσουµε την καταλληλότητά της ως εργαλείο επικοινωνίας και κοινό σηµείο αναφοράς συµβολισµών. 17

18 Συµβολισµοί UML Στο Σχήµα 1.9 φαίνονται ορισµένα από τα βασικά σύµβολα της UML, τα οποία σχετίζονται µε τις έννοιες που παρουσιάσαµε µέχρι το σηµείο αυτό. Τα σχόλια παριστάνονται µε αυτό το σύµβολο και µπορούν να αποδίδονται σε σύµβολα µε µια διακεκοµµένη γραµµή. Οι κλάσεις παριστάνονται µε ένα παραλληλόγραµµο µε τρία διαµερίσµατα. Στο πρώτο υπάρχει το όνοµα της κλάσης και σταάλλαδύοταπεδίακαιοιµέθοδοι. Εναλλακτικά, µπορεί να περιέχεται µόνο το όνοµα της κλάσης. Ονοµα κλάσης πεδίο 1 πεδίο 2 πεδίο 3... µέθοδος 1() µέθοδος 2...() Ονοµα κλάσης Σπουδαστής_01 Τα αντικείµενα παριστάνονται µε τον συµβολισµό των κλάσεων, µετοόνοµά τουςυπογραµµισµένο. Αρ.Ταυτότητας: Α Ονοµα: Νικόλαος Επώνυµο: Νικολάου ιεύθυνση: Αγ.Νικολάου 1 Τηλέφωνο: Τµήµα: Προγραµµατιστών Προσθήκη Σπουδαστή() ιαγραφή Σπουδαστή() Μεταβολή στοιχείων Σπουδαστή() 18

19 Φυσικό Πρόσωπο Αρ.Ταυτότητας_ Ονοµα_ Επώνυµο_ ιεύθυνση_ Τηλέφωνο_ Η κληρονοµικότητα/γενίκευση παριστάνεται µε έναβέλοςαπότην ειδικότερη προς τη γενικότερη κλάση Ειδικότητα Βαθµίδα Καθηγητής Προσθήκη Καθηγητή() ιαγραφή Καθηγητή() Μεταβολή σχοιχείων Καθηγητή() + ιδάσκων ιδάσκει +Αντικείµενο 1..3 Μάθηµα Κωδικός Μαθήµατος Θεµατική ενότητα Τίτλος ιδάσκων Προσθήκη Μαθήµατος() ιαγραφή Μαθήµατος() Μεταβολή στοιχείων Μαθήµατος() Ανάθεση Μαθήµατος() Η συσχέτιση παριστάνεται µε ένα ευθύγραµµο τµήµα που συνδέει τις συσχετιζόµενες κλάσεις και έχει το όνοµά της στο κέντρο. Στις άκρες γράφεται προαιρετικά η πολλαπλότητα και ο ρόλος των κλάσεων. Αεροσκάφος Η σχέση συναρµολόγησης παριστάνεται µε έναευθύγραµµο τµήµα το οποίο καταλήγει σε ρόµβο στο άκρο του σύνθετου µέρους της σχέσης. Προαιρετικά σηµειώνονται οι πολλαπλότητες στα άκρα του ευθύγραµµου τµήµατος Ατρακτος Κινητήρας Φτερό Σχήµα 1.9. Βασικοί συµβολισµοί UML 19

20 1.5. ΣΥΝΟΨΗ Με την πάροδο του χρόνου η δοµηµένη ανάλυση και σχεδίαση εκδήλωσε σηµαντικές αδυναµίες ώστε να συνεχίσει να αποτελεί το µεθοδολογικό µας εργαλείο κατά τη σύλληψη συστηµάτων λογισµικού. Το ρόλο αυτό διεκδικεί πλέον η αντικειµενοστρεφής φιλοσοφία, η οποία µας προσφέρει ένα νέο τρόπο να αναλύουµε τα προβλήµατα του πραγµατικού κόσµου σε συστατικά λογισµικού. Για το σκοπό αυτό εισάγει αρκετές νέες έννοιες και συµβολισµούς, σχετικά µε τις οποίες υπήρχε σύγχυση και πλουραλισµός απόψεων για πολλά χρόνια. Οι σηµαντικότερες από αυτές είναι οι έννοιες κλάση, αντικείµενο, συσχέτιση, κληρονοµικότητα, γενίκευση και συναρµολόγηση. Το ζητούµενο είναι πλέον να προσπαθούµε να αναλύουµε µε τέτοιους όρους τα συστήµατα λογισµικού που κατασκευάζουµε. Ηαντικειµενοστρεφής φιλοσοφία δεν είναι µε καµία έννοια πανάκεια, είναι ωστόσο το καλύτερο από τα εργαλεία που σήµερα έχουµε στα χέρια µας για να αντιµετωπίσουµε τα προβλήµατα στην ανάπτυξη του λογισµικού ΘΕΜΑΤΑ ΓΙΑ ΠΕΡΑΙΤΕΡΩ ΕΝΑΣΧΟΛΗΣΗ - ΑΣΚΗΣΕΙΣ Θέµα 1.1 Περιγράψτε χρησιµοποιώντας λιγότερο από 100 λέξεις συνολικά, τα έξι σηµεία που καθιστούν δύσκολη την ανάπτυξη λογισµικού µε τη δοµηµένη ανάλυση και σχεδίαση. Θέµα 1.2 Σε αντιστοιχία µε το παράδειγµα 1, προσπαθήστε να ορίσετε την κλάση "Σπουδαστής", χρησιµοποιώντας όσα αναφέρονται στις ενότητες 3.3 σελίδα 68, σελίδα 89 και σελίδα 96 του πρώτου τόµου. Επίσης, δώστε ένα παράδειγµα ενός αντικειµένου της κλάσης αυτής. Θέµα 1.3 Χαρακτηρίστε ως "Σωστό" ή "Λάθος", καθεµία από τις παρακάτω προτάσεις. Σωστό Λάθος 1. Μια κλάση περιέχει αντικείµενα. 2. Μια κλάση περιέχει µεθόδους και πεδία. 3. Μια κλάση είναι το στιγµιότυπο των αντικειµένων της. 4. Κάθε µέθοδος ορίζεται στον ορισµό του αντικειµένου όπου ανήκει. 5. Οι µέθοδοι αντιστοιχούν στην κατάσταση µιας κλάσης. 20

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

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

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

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

Αντικειµενοστρεφής ανάλυση και σχεδίαση ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Μάθηµα "Τεχνολογία Λογισµικού", 9ο εξάµηνο Αντικειµενοστρεφής ανάλυση και σχεδίαση Βασίλειος Βεσκούκης v.vescoukis@cs.ntua.gr

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

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

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

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

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

Αντικειµενοστρεφής ανάλυση και σχεδίαση ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Μάθηµα "Τεχνολογία Λογισµικού", 9ο εξάµηνο Από τη δοµηµένη στην αντικειµενοστρεφή σκέψη Ηδοµηµένη ανάλυση και σχεδίαση

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

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

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

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

Σκοπός του μαθήματος

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

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

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

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

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

Αρ.Ταυτότητας: Α Ονοµα: Νικόλαος Επώνυµο: Νικολάου ιεύθυνση: Αγ.Νικολάου 1 Τηλέφωνο:

Αρ.Ταυτότητας: Α Ονοµα: Νικόλαος Επώνυµο: Νικολάου ιεύθυνση: Αγ.Νικολάου 1 Τηλέφωνο: Εισαγωγή στην Αντικειµενοστρεφή Ανάλυση Ενδεικτικές απαντήσεις στα θέµατα για περαιτέρω ενασχόληση - ασκήσεις Θέµα 1.1 Όπως είδαµε, υπάρχουν οι ακόλουθες έκδηλες πλέον δυσκολίες στην ανάπτυξη λογισµικού

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

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

Πανεπιστήµιο Πειραιά Τµήµα Εκπαιδευτικής Τεχνολογίας και Ψηφιακών Συστηµάτων. Εισαγωγή στην UML. Βασίλειος Βεσκούκης Πανεπιστήµιο Πειραιά Τµήµα Εκπαιδευτικής Τεχνολογίας και Ψηφιακών Συστηµάτων Εισαγωγή στην UML Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών v.vescoukis@unipi.gr v.vescoukis@cs.ntua.gr

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

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

Εισαγωγή στην Τεχνολογία Λογισµικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Μάθηµα "Τεχνολογία Λογισµικού", 9ο εξάµηνο Εισαγωγή στην Τεχνολογία Λογισµικού Νίκος Παπασπύρου Γιάννης Μαΐστρος Βασίλης

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

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

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

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

Εισαγωγή στην Τεχνολογία Λογισµικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Μάθηµα "Τεχνολογία Λογισµικού", 9ο εξάµηνο Τι είναι Λογισµικό; Προγράµµατα ηλεκτρονικού υπολογιστή οµές δεδοµένων µε µόνιµη

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

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

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

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

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

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

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

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες:

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες: Άσκηση 5Α_5 26/3/2003 11.5. Άσκηση 5A - [αναγνώριση αντικειµένων-διάγραµµα κλάσεων] [Σε αντικατάσταση της άσκησης 5 του κεφαλαίου 11] 11.5.1. Περιγραφή Η άσκηση αυτή είναι η πρώτη από µία σειρά ασκήσεων

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

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

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

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

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

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

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

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

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 8: Σχεδίαση Συστήματος Σχεδίαση Συστήματος 2 Διεργασία μετατροπής του προβλήματος σε λύση. Από το Τί στο Πώς. Σχέδιο: Λεπτομερής περιγραφή της λύσης. Λύση:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 7.1. Ανάπτυξη Προγράµµατος Τι είναι το Πρόγραµµα; Το Πρόγραµµα: Είναι ένα σύνολο εντολών για την εκτέλεση ορισµένων λειτουργιών από τον υπολογιστή.

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

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

Τεχνολογία Λογισµικού Ι Κεφάλαια 1-21 ΕΛΛΗΝΙΚΟ ΑΝΟΙΧΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πρόγραµµα σπουδών "ΠΛΗΡΟΦΟΡΙΚΗ" - Θ.Ε. ΠΛΗ11 Τεχνολογία Λογισµικού Ι Κεφάλαια 1-21 Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών v.vescoukis@cs.ntua.gr

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

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

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται

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

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

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

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

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

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

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

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

Κανόνες για ανάπτυξη διαγραµµάτων κλάσεων 1 Ελληνικό Ανοικτό Πανεπιστήµιο Κανόνες για ανάπτυξη διαγραµµάτων κλάσεων ρ. Πάνος Φιτσιλής 2 Περιεχόµενα Προσδιορισµός κλάσεων Πως να ονοµάσουµε τις κλάσεις; Που να τις βρούµε; Τι να κοιτάξουµε; Τι να

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Η έννοια πρόβληµα Ανάλυση προβλήµατος Με τον όρο πρόβληµα εννοούµε µια κατάσταση η οποία χρήζει αντιµετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή ούτε προφανής. Μερικά προβλήµατα είναι τα εξής:

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

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

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 ΕΛΛΗΝΙΚΟ ΑΝΟΙΧΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πρόγραµµα σπουδών "ΠΛΗΡΟΦΟΡΙΚΗ" - Θ.Ε. ΠΛΗ11 Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών v.vescoukis@cs.ntua.gr

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

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

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

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

ΚΕΦΑΛΑΙΟ 3 ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ ΛΟΓΙΣΜΙΚΟΥ. Έννοιες-κλειδιά. Σύνοψη

ΚΕΦΑΛΑΙΟ 3 ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ ΛΟΓΙΣΜΙΚΟΥ. Έννοιες-κλειδιά. Σύνοψη ΚΕΦΑΛΑΙΟ 3 ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ ΛΟΓΙΣΜΙΚΟΥ Σκοπός του κεφαλαίου είναι η εισαγωγή της έννοιας της διάταξης λογισμικού, ως αρχιτεκτονικής δόμησης των υπολογιστικών πόρων και της ανάθεσης σε αυτούς συστατικών

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

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

Η εταιρεία είναι οργανωµένη σε τµήµατα Κάθε ΤΜΗΜΑένα όνοµα, κωδικό και έναν εργαζόµενο που διευθύνει το τµήµα. Αποθηκεύεται η ηµεροµηνία που ανέλαβε ιάγραµµα Οντοτήτων - Συσχετίσεων Παύλος Εφραιµίδης Βάσεις εδοµένων ιάγραµµα Ο-Σ 1 Σχεδιασµός µιας Βάσης εδοµένων Τα βασικά βήµατα για το σχεδιασµό και την ανάπτυξη µιας Βάσης εδοµένων είναι: Ανάλυση Απαιτήσεων

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

Οι περιπτώσεις χρήσης

Οι περιπτώσεις χρήσης 1 Ελληνικό Ανοικτό Πανεπιστήµιο Οι περιπτώσεις χρήσης ρ. Πάνος Φιτσιλής 2 Περιεχόµενα Το µοντέλο των περιπτώσεων χρήσης Τα διαγράµµατα των περιπτώσεων χρήσης Λεκτική περιγραφή των περιπτώσεων χρήσης Τρόπος

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

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

Τεχνολογία Λογισµικού Ι Κεφάλαιο 3 Μια αναλυτικότερη προσέγγιση στην δραστηριότητα 3.10 ΕΛΛΗΝΙΚΟ ΑΝΟΙΧΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πρόγραµµα σπουδών "ΠΛΗΡΟΦΟΡΙΚΗ" - Θ.Ε. ΠΛΗ11 Τεχνολογία Λογισµικού Ι Κεφάλαιο 3 Μια αναλυτικότερη προσέγγιση στην δραστηριότητα 3.10 Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος

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

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

4.3. Γραµµικοί ταξινοµητές

4.3. Γραµµικοί ταξινοµητές Γραµµικοί ταξινοµητές Γραµµικός ταξινοµητής είναι ένα σύστηµα ταξινόµησης που χρησιµοποιεί γραµµικές διακριτικές συναρτήσεις Οι ταξινοµητές αυτοί αναπαρίστανται συχνά µε οµάδες κόµβων εντός των οποίων

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

1 Ανάλυση Προβλήματος

1 Ανάλυση Προβλήματος 1 Ανάλυση Προβλήματος 1.1 Η Έννοια Πρόβλημα Τι είναι δεδομένο; Δεδομένο είναι οτιδήποτε μπορεί να γίνει αντιληπτό από έναν τουλάχιστον παρατηρητή, με μία από τις πέντε αισθήσεις του. Τι είναι επεξεργασία

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

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

Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων Βάσεις Δεδομένων Επαγγελματικού Λυκείου Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων Εισηγητής Δελησταύρου Κωνσταντίνος Καθηγητής Πληροφορικής ΠΕ20 Μηχανικός Πληροφορικής Τ.Ε. M.Sc. στα Συστήματα Υπολογιστών Περιεχόμενα

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

UML: Unified modelling language

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

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

ΠΕΡΙ ΜΕΤΑΒΑΣΗΣ ΑΠΟ ΤΑ ΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΕ ΙΑΓΡΑΜΜΑΤΑ ΟΜΗΣ Ε ΟΜΕΝΩΝ

ΠΕΡΙ ΜΕΤΑΒΑΣΗΣ ΑΠΟ ΤΑ ΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΕ ΙΑΓΡΑΜΜΑΤΑ ΟΜΗΣ Ε ΟΜΕΝΩΝ ΠΕΡΙ ΜΕΤΑΒΑΣΗΣ ΑΠΟ ΤΑ ΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΕ ΙΑΓΡΑΜΜΑΤΑ ΟΜΗΣ Ε ΟΜΕΝΩΝ Μερικές παρατηρήσεις και σκέψεις του συγγραφέα του βιβλίου Σχετικά µε τη µετάβαση από Ρ σε ΠΠ υπάρχουν 2 σηµαντικά ερωτήµατα:

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

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

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

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

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Αλγόριθµοι, στοιχεία

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

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

Προγραµµατιστικές τεχνικές Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Προγραµµατιστικές τεχνικές Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης

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

Πληροφορική 2. Γλώσσες Προγραμματισμού

Πληροφορική 2. Γλώσσες Προγραμματισμού Πληροφορική 2 Γλώσσες Προγραμματισμού 1 2 Γλώσσες προγραμματσιμού Επιτρέπουν την κωδικοποίηση των αλγορίθμων Η εκτέλεση ενός προγράμματος θα πρέπει να δίνει τα ίδια αποτελέσματα με την νοητική εκτέλεση

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

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Προγραµµατισµός Η/Υ Ο προγραµµατισµός είναι η διατύπωση του αλγορίθµου σε µορφή κατανοητή από τον Η/Υ ώστε να τον εκτελέσει («τρέξει» όπως λέµε στην ορολογία της

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

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

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

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

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

Γραµµική Αλγεβρα Ι. Ενότητα: Εισαγωγικές Εννοιες. Ευάγγελος Ράπτης. Τµήµα Μαθηµατικών

Γραµµική Αλγεβρα Ι. Ενότητα: Εισαγωγικές Εννοιες. Ευάγγελος Ράπτης. Τµήµα Μαθηµατικών Ενότητα: Εισαγωγικές Εννοιες Ευάγγελος Ράπτης Τµήµα Μαθηµατικών Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 15 Ιουνίου 2009 1 / 26 Εισαγωγή Η ϑεωρία

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

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

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

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

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

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

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες

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

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

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

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

2.2 Οργάνωση και ιοίκηση (Μάνατζµεντ -Management) 2.2.1. Βασικές έννοιες 2.2.2 Ιστορική εξέλιξη τον µάνατζµεντ.

2.2 Οργάνωση και ιοίκηση (Μάνατζµεντ -Management) 2.2.1. Βασικές έννοιες 2.2.2 Ιστορική εξέλιξη τον µάνατζµεντ. 2.2 Οργάνωση και ιοίκηση (Μάνατζµεντ -Management) 2.2.1. Βασικές έννοιες Έχει παρατηρηθεί ότι δεν υπάρχει σαφής αντίληψη της σηµασίας του όρου "διοίκηση ή management επιχειρήσεων", ακόµη κι από άτοµα που

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ UML ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΠΙΧΕΙΡΗΜΑΤΙΚΩΝ ΔΙΑΔΙΚΑΣΙΩΝ (ΔΙΑΓΡΑΜΜΑΤΑ ΔΡΑΣΤΗΡΙΟΤΗΤΩΝ & ΠΕΡΙΠΤΩΣΕΩΝ ΧΡΗΣΗΣ) (7-8)

ΕΙΣΑΓΩΓΗ ΣΤΗΝ UML ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΠΙΧΕΙΡΗΜΑΤΙΚΩΝ ΔΙΑΔΙΚΑΣΙΩΝ (ΔΙΑΓΡΑΜΜΑΤΑ ΔΡΑΣΤΗΡΙΟΤΗΤΩΝ & ΠΕΡΙΠΤΩΣΕΩΝ ΧΡΗΣΗΣ) (7-8) ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΜΕΣΟΛΟΓΓΙ) ΑΝΑΛΥΣΗ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ UML ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΠΙΧΕΙΡΗΜΑΤΙΚΩΝ ΔΙΑΔΙΚΑΣΙΩΝ (ΔΙΑΓΡΑΜΜΑΤΑ ΔΡΑΣΤΗΡΙΟΤΗΤΩΝ & ΠΕΡΙΠΤΩΣΕΩΝ

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

Διδακτική της Πληροφορικής ΙΙ

Διδακτική της Πληροφορικής ΙΙ Διδακτική της Πληροφορικής ΙΙ Ομάδα Γ Βότσης Ευστάθιος Γιαζιτσής Παντελής Σπαής Αλέξανδρος Τάτσης Γεώργιος Προβλήματα που αντιμετωπίζουν οι αρχάριοι προγραμματιστές Εισαγωγή Προβλήματα Δυσκολίες Διδακτικό

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

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

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Βάσεις εδοµένων Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης v.vescoukis@cs.ntua.gr ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ Συστήµατα ιαχείρισης Βάσεων

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

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

ΕΝ ΕΙΚΤΙΚΗ ΛΥΣΗ ΚΑΙ ΣΧΟΛΙΑ ΣΤΗΝ ΠΡΩΤΗ ΑΣΚΗΣΗ ΣΧΕ ΙΑΣΜΟΙ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΕΘΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΕΙΟ Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Ακαδηµαϊκό Έτος 2007-2008 Μάθηµα: ΒΑΣΕΙΣ Ε ΟΜΕΩ ιδάσκων: Καθ. Ιωάννης Βασιλείου Ε ΕΙΚΤΙΚΗ ΛΥΣΗ ΚΑΙ ΣΧΟΛΙΑ ΣΤΗ ΠΡΩΤΗ ΑΣΚΗΣΗ

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

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος ΑΛΓΟΡΙΘΜΟΙ Στο σηµείωµα αυτό αρχικά εξηγείται η έννοια αλγόριθµος και παραθέτονται τα σπουδαιότερα κριτήρια που πρέπει να πληρεί κάθε αλγόριθµος. Στη συνέχεια, η σπουδαιότητα των αλγορίθµων συνδυάζεται

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

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

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

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

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

Προγραµµατιστικές τεχνικές Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Προγραµµατιστικές τεχνικές Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης

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

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

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

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

Εισαγωγή στην Τοπολογία

Εισαγωγή στην Τοπολογία Ενότητα: Συνεκτικότητα Γεώργιος Κουµουλλής Τµήµα Μαθηµατικών Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε

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

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

Μοντέλο Οντοτήτων-Συσχετίσεων Εισαγωγή Σχεδιασµός µιας Β : Βήµατα Ανάλυση Απαιτήσεων Τι δεδοµένα θα αποθηκευτούν, ποιες εφαρµογές θα κτιστούν πάνω στα δεδοµένα, ποιες λειτουργίες είναι συχνές Εννοιολογικός Σχεδιασµός Υψηλού-επιπέδου

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

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

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.

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

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

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

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

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

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

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

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

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

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

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

Μηχανική ΙI. Λαγκρανζιανή συνάρτηση. Τµήµα Π. Ιωάννου & Θ. Αποστολάτου 3/2001

Μηχανική ΙI. Λαγκρανζιανή συνάρτηση. Τµήµα Π. Ιωάννου & Θ. Αποστολάτου 3/2001 Τµήµα Π Ιωάννου & Θ Αποστολάτου 3/2001 Μηχανική ΙI Λαγκρανζιανή συνάρτηση Είδαµε στο προηγούµενο κεφάλαιο ότι ο δυναµικός νόµος του Νεύτωνα είναι ισοδύναµος µε την απαίτηση η δράση ως το ολοκλήρωµα της

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

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

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

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

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

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

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

Πολύγωνο αθροιστικών σχετικών συχνοτήτων και διάµεσος µιας τυχαίας µεταβλητής ρ. Παναγιώτης Λ. Θεοδωρόπουλος πρώην Σχολικός Σύµβουλος ΠΕ03 e-mail@p-theodoropoulos.gr Πρόλογος Στην εργασία αυτή αναλύονται

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

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή Οι σηµερινές δραστηριότητες των επιχειρήσεων δηµιουργούν την ανάγκη για όσο το δυνατό µεγαλύτερη υποστήριξη από τα πληροφοριακά τους

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

o AND o IF o SUMPRODUCT

o AND o IF o SUMPRODUCT Πληροφοριακά Εργαστήριο Management 1 Information Συστήματα Systems Διοίκησης ΤΕΙ Τμήμα Ελεγκτικής Ηπείρου Χρηματοοικονομικής (Παράρτημα Πρέβεζας) και Αντικείµενο: Μοντελοποίηση προβλήµατος Θέµατα που καλύπτονται:

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

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ Ο κύκλος ζωής λογισµικού (συνοπτικά) Η παραδοσιακή φάση ανάπτυξης του κύκλου ζωής λογισµικού Φάση καθορισµού απαιτήσεων (1/2) ΤΙ πρέπει να κάνει το

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

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραµµατισµό ( ιάλεξη 2) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγικές Έννοιες - Ορισµοί Ο κύκλος ανάπτυξης προγράµµατος Παραδείγµατα Πότε χρησιµοποιούµε υπολογιστή?

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

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Προγραμματισμός Η/Υ Προτεινόμενα θέματα εξετάσεων Εργαστήριο Μέρος 1 ό ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Ιανουάριος 2011 Καλογιάννης Γρηγόριος Επιστημονικός/ Εργαστηριακός

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

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

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

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

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

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

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

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

Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στη Ενοποιηµένη Προσέγγιση Unified Process (UP) ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στη Ενοποιηµένη Προσέγγιση Unified Process (UP) ρ. Πάνος Φιτσιλής 2 Περιεχόµενα Τι είναι η UP Βασικές αρχές µηχανικής λογισµικού Οι βασικές έννοιες της UP Οι τέσσερις

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

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

ΜΕΡΟΣ Ι: ΓΕΩΓΡΑΦΙΚΑ Ε ΟΜΕΝΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΓΕΩΓΡΑΦΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ Η ΦΥΣΗ ΤΩΝ ΓΕΩΓΡΑΦΙΚΩΝ Ε ΟΜΕΝΩΝ... ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΜΕΡΟΣ Ι: ΓΕΩΓΡΑΦΙΚΑ Ε ΟΜΕΝΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΓΕΩΓΡΑΦΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ...1 1. Η ΦΥΣΗ ΤΩΝ ΓΕΩΓΡΑΦΙΚΩΝ Ε ΟΜΕΝΩΝ...3 Κατηγορίες των Γεωγραφικών εδοµένων...3 Γεωγραφικές οντότητες...3 ιαστάσεις

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

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Θεσσαλονίκη 17-12-2006 Αγαπητοί φοιτητές & φοιτήτριες, στη συνέχεια θα συνοψίσω το περιεχόµενο της δεύτερης φετινής ΟΣΣ, η οποία διεξήχθη την Κυριακή 10 εκεµβρίου µε παρόντες τους 23 από τους 32+2 φοιτητές

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,

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

ΗΜΙΟΥΡΓΙΑ ΠΑΙΧΝΙ ΙΟΥ ΣΤΟ SCRATCH ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ

ΗΜΙΟΥΡΓΙΑ ΠΑΙΧΝΙ ΙΟΥ ΣΤΟ SCRATCH ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ ΗΜΙΟΥΡΓΙΑ ΠΑΙΧΝΙ ΙΟΥ ΣΤΟ SCRATCH ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ ΣΕΝΑΡΙΟ ΠΑΙΧΝΙ ΙΟΥ Το παιχνίδι θα αποτελείται από δυο παίκτες, οι οποίοι θα βρίσκονται αντικριστά στις άκρες ενός γηπέδου δεξιά και αριστερά, και µια µπάλα.

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

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Υλοποίηση στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Η Υλοποίηση στην Ενοποιηµένη ιαδικασία ρ. Πάνος Φιτσιλής Περιεχόµενα Πρωτοτυποποίηση Προγραµµατισµός υλοποίησης Ανάπτυξη συστήµατος Μοναδιαίος έλεγχος Ολοκλήρωση 2 3 Η υλοποίηση

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

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

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

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

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

Γνωριµία µε τη Microsoft Access

Γνωριµία µε τη Microsoft Access Γνωριµία µε τη Microsoft Access ηµιουργία νέας βάσης δεδοµένων Έναρξη - Προγράµµατα - Microsoft Access - ηµιουργία νέας βάσης δεδοµένων µε χρήση Κενής βάσης δεδοµένων - ΟΚ Επιλέγουµε Φάκελο και στο Όνοµα

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

Αρµονική Ανάλυση. Ενότητα: Το ϑεώρηµα παρεµβολής του Riesz και η ανισότητα Hausdorff-Young. Απόστολος Γιαννόπουλος.

Αρµονική Ανάλυση. Ενότητα: Το ϑεώρηµα παρεµβολής του Riesz και η ανισότητα Hausdorff-Young. Απόστολος Γιαννόπουλος. Ενότητα: Το ϑεώρηµα παρεµβολής του Riesz και η ανισότητα Hausdorff-Young Απόστολος Γιαννόπουλος Τµήµα Μαθηµατικών Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει.

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει. οµηµένες τεχνικές Ο στόχος των δοµηµένων τεχνικών είναι: Υψηλής ποιότητας προγράµµατα Εύκολη τροποποίηση προγραµµάτων Απλοποιηµένα προγράµµατα Μείωση κόστους και χρόνου ανάπτυξης. Οι βασικές αρχές τους

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

Σχεδιασµός µιας Β. Εισαγωγή. Μετατροπή σε σχεσιακό -> είσοδο σε ένα Σ Β. Εισαγωγή. Ιδέες Ο/Σ Σχέσεις Σχεσιακό Σ Β

Σχεδιασµός µιας Β. Εισαγωγή. Μετατροπή σε σχεσιακό -> είσοδο σε ένα Σ Β. Εισαγωγή. Ιδέες Ο/Σ Σχέσεις Σχεσιακό Σ Β Εισαγωγή Σχεδιασµός µιας Β ανάλυση ποιας πληροφορίας και της σχέσης ανάµεσα στα στοιχεία της περιγραφή της δοµής - σχήµα σε διάφορους συµβολισµούς ή µοντέλα Μοντέλο Οντοτήτων - Συσχετίσεων γραφικό µοντέλο

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

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

Μεθοδολογίες Παραγωγής Λογισµικού Μεθοδολογίες Παραγωγής Λογισµικού Βασικά Γενικά Μοντέλα Μοντέλο καταρράκτη (waterfall model) Ξεχωριστές φάσεις καθορισµού απαιτήσεων και ανάπτυξης, επικύρωσης, εξέλιξης Εξελικτική ανάπτυξη (evolutionary

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

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 2: Περιβάλλον Βάσεων Δεδομένων Μοντέλα Δεδομένων 2.1

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

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

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

ΕΙΣΑΓΩΓΗ ΣΤΟ MANAGEMENT ΣΗΜΕΙΩΣΕΙΣ ΕΡΓΑΣΤΗΡΙΟΥ. Ορισμοί

ΕΙΣΑΓΩΓΗ ΣΤΟ MANAGEMENT ΣΗΜΕΙΩΣΕΙΣ ΕΡΓΑΣΤΗΡΙΟΥ. Ορισμοί Ορισμοί Ηγεσία είναι η διαδικασία με την οποία ένα άτομο επηρεάζει άλλα άτομα για την επίτευξη επιθυμητών στόχων. Σε μια επιχείρηση, η διαδικασία της ηγεσίας υλοποιείται από ένα στέλεχος που κατευθύνει

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