Εμπειρική μελέτη χρήσης αντικειμενοστραφών προτύπων σχεδίασης σε λογισμικό ανοικτού κώδικα
|
|
- Ζηνόβιος Τρικούπης
- 9 χρόνια πριν
- Προβολές:
Transcript
1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών του τμήματος Πληροφορικής Κατεύθυνση "Πληροφοριακά Συστήματα Εμπειρική μελέτη χρήσης αντικειμενοστραφών προτύπων σχεδίασης σε λογισμικό ανοικτού κώδικα Καραμάνου Ευγενία Επιβλέπων καθηγητής: Ιωάννης Σταμέλος Θεσσαλονίκη 2009
2 Πρόλογος Η εφαρμογή των αντικειμενοστραφών προτύπων σχεδίασης στην ανάπτυξη λογισμικού και τα αποτελέσματα της είναι ένα πολυσυζητημένο θέμα στις μέρες μας. Αν και είναι παραδεκτό ότι τα πρότυπα σχεδίασης βελτιώνουν τη σχεδίαση του λογισμικού, τι γίνεται όταν το λογισμικό είναι παιχνίδια ανοικτού κώδικα; Αντικείμενο της παρούσας μεταπτυχιακής εργασίας είναι η συγκέντρωση λογισμικού με τη μορφή ενός repository, που προέρχεται από στιγμιότυπα υλοποίησης προτύπων σχεδίασης σε α- νοικτού κώδικα παιχνίδια. Έπειτα, χρήση του λογισμικού αυτού ως δείγμα για εμπειρική μελέτη σχετικά με τα αντικειμενοστραφή πρότυπα σχεδίασης, ώστε να εξαχθούν αποτελέσματα που να δείχνουν αν υπάρχουν πρότυπα σχεδίασης που είναι πιο κατάλληλα για χρήση σε κώδικα παιχνιδιού και αν υπάρχουν είδη παιχνιδιών που είναι πιο προσοδοφόρα για εφαρμογή προτύπων σχεδίασης. 2
3 Αbstract Use of Object-Oriented design patterns in game development and its effects appears to be an extremely well-known and discussed issue. Although it is widely accepted that design patterns are beneficial during the software development, what happens if the software under development is an open-source game? The objective of this master thesis is the introduction of a web repository recording object-oriented design patterns employed in open-source games. Additionally, use of this repository in order to carry out an empirical study concerning object-oriented design patterns and retrieve results that show if there exist any design patterns that are more applicable in game development than others and if some game genres are more fertile to the use of design patterns than others. 3
4 Ευχαριστίες Σε αυτό το σημείο θα ήθελα να ευχαριστήσω κάποια άτομα που το καθένα από αυτά συνέβαλλε με διαφορετικό τρόπο στη δημιουργία αυτής της μεταπτυχιακής εργασίας. Πρώτα από όλους θα ήθελα να ευχαριστήσω τον επιβλέπων καθηγητή μου κ. Σταμέλο Ιωάννη για την αρχική εμπιστοσύνη και ανάθεση της μεταπτυχιακής εργασίας και για την κατανόηση που έδειξε κατά τη διάρκεια ολοκλήρωσής της. Στη συνέχεια ένα μεγάλο ευχαριστώ αξίζει ο υποψήφιος διδάκτορας Αμπατζόγλου Αποστολής για την άριστη συνεργασία μας, την καθοδήγηση, και κυρίως για την εμπιστοσύνη του. Επίσης, θα ήθελα να ευχαριστήσω τη φίλη και συνεργάτιδα Μίχου Όλγα για όλη μας τη συνεργασία, με τις εύκολες αλλά κυρίως τις δύσκολες μας στιγμές. Τέλος, θα ήθελα να ευχαριστήσω την οικογένειά μου, και ιδιαίτερα την αδελφή μου για όλη τη βοήθεια και συμβολή της στις μέρες άγχους και πίεσης. 4
5 Περιεχόμενα 1 Εισαγωγή-Βασικές Έννοιες Τι είναι ένα πρότυπο σχεδίασης Ταξινόμηση προτύπων σχεδίασης Πρότυπα Σχεδίασης Design Patterns Προσαρμογέας-Adapter Γενικά Γενική Δομή - Εφαρμογή Πρωτότυπο Prototype Γενικά Γενική Δομή - Εφαρμογή Σύνθετο-Composite Γενικά Γενική Δομή - Εφαρμογή Διακοσμητής-Decorator Γενικά Γενική Δομή - Εφαρμογή Μοναδιαίο-Singleton Γενικά Γενική Δομή Εφαρμογή Επισκέπτης-Visitor Γενικά Γενική Δομή Εφαρμογή Παρατηρητής-Observer Γενικά Γενική Δομή Εφαρμογή Κατάσταση-State Γενικά Γενική Δομή Εφαρμογή Στρατηγική-Strategy Γενικά Γενική Δομή Εφαρμογή Template Method Γενικά Γενική Δομή Εφαρμογή Εργοστάσιο-Factory Method
6 Γενικά Γενική Δομή Εφαρμογή Ποιότητα Προτύπων Σχεδίασης Σπουδαιότητα Προτύπων Σχεδίασης Ηλεκτρονικά Παιχνίδια Ιστορική Αναδρομή Ηλεκτρονικών Παιχνιδιών Ιστορία Ηλεκτρονικών Παιχνιδιών στην Ελλάδα Είδη Ηλεκτρονικών Παιχνιδιών Παιχνίδια Δράσης Action Games Παιχνίδια Βολής Shooter Games Παιχνίδια Περιπέτειας Παιχνίδια Στρατηγικής Strategy Games Real Time Strategy Games Turn Based Strategy Games Παιχνίδια Ρόλων Role Playing Games Παιχνίδια Προσομοίωσης Simulation Games Arcade Games Puzzle Games Board Games Card Games Πρότυπα Σχεδίασης και Είδος Παιχνιδιού Λόγοι Μελέτης Προτύπων Σχεδίασης σε Παιχνίδια Ελεύθερο και Ανοικτού Κώδικα Λογισμικό Ιστορική Αναδρομή και Ορισμός Ελεύθερου και Ανοικτού Κώδικα Λογισμικού Ελεύθερο Λογισμικό και Βιομηχανία Παιχνιδιών Συμμετέχοντες και Τρόπος Ανάπτυξης Ελεύθερου Λογισμικού Ελεύθερου και Ανοικτού Κώδικα Repositories DePRe- OSS Project Ιστοσελίδα DePRe Χρησιμοποιούμενο Εργαλείο Προηγούμενη Έρευνα Σκοπός Έρευνας Περιγραφική Στατιστική Μεθοδολογία Ανάλυσης Δεδομένων Συμπεράσματα Περιορισμοί Απειλές
7 4.9 Θέματα για Μελλοντική Έρευνα Βιβλιογραφία ΠΑΡΑΡΤΗΜΑ Α
8 1 Εισαγωγή - Βασικές Έννοιες Στο κεφάλαιο αυτό παρουσιάζονται έννοιες που αφορούν το γνωστικό υπόβαθρο για την ανάγνωση και κατανόηση της παρούσης μεταπτυχιακής εργασίας. Αρχικά παρουσιάζονται έννοιες που αφορούν τα πρότυπα σχεδίασης. Στη συνέχεια ακολουθεί ο ορισμός και περιγραφή των προτύπων σχεδίασης που μελετήθηκαν. Τέλος, παρουσιάζεται η έννοια της ποιότητας των προτύπων σχεδίασης καθώς και η σπουδαιότητα χρήσης των προτύπων σχεδίασης. 1.1 Τι είναι ένα πρότυπο σχεδίασης Ο σχεδιασμός αντικειμενοστραφούς λογισμικού είναι μια αρκετά δύσκολη διαδικασία για τους προγραμματιστές. Η διαδικασία αυτή γίνεται αρκετά πιο επίπονη, εάν οι προγραμματιστές επιθυμούν να δημιουργήσουν λογισμικό το οποίο θα είναι επαναχρησιμοποιήσιμο ή θα συντηρείται εύκολα. Αυτό οφείλεται στο γεγονός ότι η σχεδίαση λογισμικού που γίνεται μια δεδομένη στιγμή, θα πρέπει να είναι τόσο συγκεκριμένη ώστε να επιλύει το υπάρχον πρόβλημα, όσο και γενική ώστε να μπορέσει να επιλύσει πιθανά προβλήματα και απαιτήσεις που θα προκύψουν στο μέλλον [1]. Τα προβλήματα ωστόσο, που αντιμετωπίζει ένας προγραμματιστής κατά τη διάρκεια σχεδίασης και υλοποίησης ενός συστήματος λογισμικού, πολύ σπάνια εμφανίζονται για πρώτη φορά στο συγκεκριμένο έργο. Αν και η φύση του λογισμικού δίνει στους προγραμματιστές την αίσθηση ότι κάθε πρόβλημα είναι ξεχωριστό και διαφορετικό από τα υπόλοιπα, συνήθως τα προβλήματα που εμφανίζονται, θα έχουν παρουσιαστεί και αντιμετωπισθεί επιτυχώς και σε κάποιο προηγούμενο έργο λογισμικού από κάποιον άλλον προγραμματιστή [2]. Αυτό γίνεται εμφανές και από τον τρόπο με τον οποίο επιλύουν τα προβλήματα που ανακύπτουν οι έμπειροι προγραμματιστές. Σε αντίθεση με τους υπόλοιπους προγραμματιστές που επιλύουν κάθε πρόβλημα ξεκινώντας από μηδενική βάση, οι έμπειροι προγραμματιστές ανατρέχουν σε παρόμοια προβλήματα και λύσεις που έχουν αντιμετωπίσει σε προηγούμενα έργα λογισμικού και 8
9 επαναχρησιμοποιούν κάποια επιτυχημένη σχεδίαση. Η στρατηγική επίλυσης πολλών προβλημάτων, ειδικά όταν αυτή αποτυπώνεται στη στατική δομή ενός αντικειμενοστραφούς συστήματος λογισμικού, είναι κοινή ή παρόμοια σε πολλές περιπτώσεις [1]. Τα πρότυπα σχεδίασης έχουν ως στόχο να συστηματοποιήσουν συνηθισμένες λύσεις σε συνηθισμένα προβλήματα λογισμικού. Κάθε πρότυπο σχεδίασης κατονομάζει τη συγκεκριμένη λύση, παρέχει μια περιγραφή του προβλήματος στο οποίο μπορεί να εφαρμοστεί, προδιαγράφει τη λύση και τις συνέπειες της, συνήθως σε επίπεδο αρχιτεκτονικής σχεδίασης. Σύμφωνα με [1], ένα πρότυπο σχεδίασης αποτελείται από τέσσερα βασικά στοιχεία: Το όνομα κάθε προτύπου σχεδίασης είναι ο τρόπος με τον οποίο μπορούμε να περιγράψουμε το πρόβλημα, τη λύση του και τις συνέπειες της, με μία ή δύο λέξεις. Δίνοντας ένα όνομα σε ένα πρότυπο σχεδίασης, άμεσα δημιουργούμε ένα εξειδικευμένο λεξικό που διευκολύνει την επικοινωνία μεταξύ των προγραμματιστών. Το πρόβλημα σε κάθε πρότυπο περιγράφει ένα γενικότερο πλαίσιο όπου υπό κανονική αντιμετώπιση χωρίς τη χρήση προτύπων θα προέκυπταν ανεπιθύμητες συνέπειες αναφορικά με την λειτουργία, τον έλεγχο και τη συντήρηση του λογισμικού. Μερικές φορές το πρόβλημα μπορεί να περιλαμβάνει κάποιες προϋποθέσεις που θα πρέπει να συναντώνται προκειμένου να έχει αποτέλεσμα η χρήση ενός προτύπου σχεδίασης. Η λύση περιγράφει τα στοιχεία από τα οποία πρέπει να συγκροτείται η σχεδίαση, τις μεταξύ τους σχέσεις, τις ιδιότητες και τις αρμοδιότητες αυτών. Ωστόσο, η λύση δεν περιγράφει μια συγκεκριμένη σχεδίαση ή υλοποίηση, επειδή το πρότυπο είναι σαν πλαίσιο και μπορεί να εφαρμοστεί σε πολλές διαφορετικές περιπτώσεις. Οι συνέπειες είναι το αποτέλεσμα της εφαρμογής των προτύπων σχεδίασης. Αν και δεν αναφέρονται ρητά, όταν περιγράφουμε τρόπους σχεδίασης, είναι κρίσιμες για την εκτίμηση των εναλλακτικών που υπάρχουν στη σχεδίαση και για την κατανόηση του κόστους και της ωφέλειας από τη χρήση του προτύπου. Οι συνέπειες συχνά αφορούν ζητήματα χώρου μνήμης και χρόνου εκτέλεσης. Επιπλέον, επειδή η επαναχρησιμοποίηση ενός κώδικα είναι συχνά ένας 9
10 παράγοντας που δηλώνει καλή αντικειμενοστραφή σχεδίαση, οι συνέπειες συχνά αναφέρονται στην επεκτασιμότητα και την ευελιξία του συστήματος. Η έμπνευση για τη χρήση προτύπων στην Τεχνολογία Λογισμικού προήλθε από το χώρο της Αρχιτεκτονικής και την σημαντική προσφορά του αρχιτέκτονα Christopher Alexander με το βιβλίο A Pattern Language: Towns, Buildings, Construction (1977). Στο βιβλίο αυτό, γίνεται μια προσπάθεια να δοθεί απάντηση στο ερώτημα εάν η ποιότητα (στην αρχιτεκτονική) είναι μια αντικειμενική ιδιότητα. Αν γίνει δεκτό ότι είναι δυνατόν να αναγνωρίσει και να περιγράψει κάποιος ένα αρχιτεκτονικό σχέδιο, τότε το ερώτημα που προκύπτει σύμφωνα με τον Alexander είναι τι υπάρχει σε ένα σχέδιο καλής ποιότητας το οποίο δεν εμφανίζεται σε ένα σχέδιο κακής ποιότητας; Έπειτα, από μελέτη πληθώρας αρχιτεκτονικών κατασκευασμάτων, παρατηρήθηκε ότι αυτές οι κατασκευές που θεωρούνταν καλές είχαν κοινά στοιχεία μεταξύ τους. Τα κοινά αυτά στοιχεία, συνήθως αφορούν κοινές λύσεις ή λύσεις σε κοινά προβλήματα. Σύμφωνα με τον Alexander [3], κάθε πρότυπο περιγράφει ένα πρόβλημα το οποίο προκύπτει ξανά και ξανά στο περιβάλλον, και μετά περιγράφει τον πυρήνα της λύσης αυτού του προβλήματος, με τέτοιο τρόπο που να μπορεί η λύση να χρησιμοποιηθεί πολλές φορές, χωρίς να επαναλαμβάνεται αυτούσια. Αν και ο Alexander διατύπωνε τις ιδέες του σκεπτόμενος την αρχιτεκτονική των κτηρίων, το ίδιο συμβαίνει και με τα αντικειμενοστραφή πρότυπα σχεδίασης του λογισμικού. Πολλοί ερευνητές και ιδιαίτερα στα πλαίσια του αντικειμενοστραφούς προγραμματισμού είχαν θετική άποψη και πρότειναν διάφορες στρατηγικές επίλυσης γνωστών προβλημάτων. Το 1987, ο Kent Beck και ο Ward Cunningham άρχισαν να πειραματίζονται με την ιδέα εφαρμογής προτύπων στο προγραμματισμό και παρουσίασαν τα αποτελέσματα τους στο συνέδριο OOPSLA εκείνου του έτους. Ωστόσο, ο πρώτος συστηματικός κατάλογος προτύπων σχεδίασης λογισμικού προτάθηκε το 1995 από τους Gamma, Helm, Johnson και Vlissides, οι οποίοι είναι γνωστοί ως η Ομάδα των Τεσσάρων (Gang of Four GoF). Στο βιβλίο τους Design Patterns: Elements of Reusable Object-Oriented Software (1995) δημιούργησαν έναν κατάλογο με 23 πρότυπα σχεδίασης δίνοντας για το καθένα από αυτά το όνομα, το πρόβλημα, τη λύση και τις συνέπειες από την εφαρμογή τους, χρησιμοποιώντας παραδείγματα από τη C++ και τη Smalltalk. 1.2 Ταξινόμηση Προτύπων Σχεδίασης 10
11 Ορισμένα από τα πρότυπα σχεδίασης είναι προφανή ή αποτελούν την εξ ορισμού επιλογή ενός σχεδιαστή λογισμικού. Άλλα πρότυπα αποτελούν λιγότερο προφανείς λύσεις και απαιτείται προσπάθεια για την κατανόηση του προβλήματος που επιλύουν όσο και του τρόπου υλοποίησης τους. Επειδή τα πρότυπα σχεδίασης ποικίλουν ως προς τη χρησιμότητα και το επίπεδο αφαιρετικότητας τους, χρειαζόμαστε έναν τρόπο για να τα οργανώσουμε σε ομάδες. Η πρώτη προσπάθεια ταξινόμησης των προτύπων σχεδίασης έγινε από την Ομάδα των Τεσσάρων [1] με βάση δύο κριτήρια. Το πρώτο κριτήριο είναι ο σκοπός (purpose) που αντανακλά το τι κάνει ένα πρότυπο σχεδίασης. Σύμφωνα με το κριτήριο αυτό τα πρότυπα σχεδίασης χωρίζονται σε τρεις κατηγορίες: Κατασκευαστικά (creational), τα οποία διαπραγματεύονται τη διεργασία δημιουργίας αντικειμένων Δομικά (structural), τα οποία ασχολούνται με τη σύνθεση κλάσεων/αντικειμένων Πρότυπα συμπεριφοράς (behavioral), που χαρακτηρίζουν τους τρόπους με τους οποίους οι κλάσεις αλληλεπιδρούν και κατανέμουν τις αρμοδιότητες. Το δεύτερο κριτήριο αφορά το αντικείμενο επίδρασης (scope), δηλαδή πού κυρίως θα εφαρμοστεί το πρότυπο σχεδίασης σε κλάσεις ή σε αντικείμενα. Τα πρότυπα κλάσεων διαπραγματεύονται τις σχέσεις μεταξύ των κλάσεων και των υποκλάσεων. Αυτές οι σχέσεις δημιουργούνται μέσω κληρονομικότητας, για αυτό είναι στατικές, σταθερές κατά τη διάρκεια μεταγλώττισης (compile-time). Τα πρότυπα αντικειμένων διαπραγματεύονται τις σχέσεις των αντικειμένων που είναι πιο δυναμικές και μπορούν να αλλάξουν κατά τη διάρκεια εκτέλεσης (run-time). Στον Πίνακα 1 εμφανίζεται η ταξινόμηση των προτύπων σχεδίασης σύμφωνα με τα δύο κριτήρια. 11
12 Purpose Creational Structural Behavioral Interpreter Factory Class Adapter(class) Template Method Method Chain of Responsibility Command Adapter(object) Abstract Iterator Scope Bridge Factory Mediator Composite Object Builder Memento Decorator Prototype Flyweight Facade Singleton Observer Proxy State Strategy Visitor Πίνακας 1: Ταξινόμηση των προτύπων σχεδίασης σύμφωνα με Gamma et all [1] Τα κατασκευαστικά πρότυπα διαχωρίζουν τη διαδικασία δημιουργίας στιγμιότυπων από τις υπόλοιπες διαδικασίες. Ειδικότερα, βοηθούν το σύστημα να είναι ανεξάρτητο από τη δημιουργία, σύνθεση και αναπαράσταση των αντικειμένων του. Ένα κατασκευαστικό πρότυπο κλάσης χρησιμοποιεί την κληρονομικότητα για να διαφοροποιήσει την κλάση που δημιουργείται σαν στιγμιότυπο, ενώ ένα κατασκευαστικό πρότυπο αντικειμένου αναθέτει τη δημιουργία στιγμιότυπου σε κάποιο άλλο αντικείμενο. Τα κατασκευαστικά πρότυπα γίνονται σημαντικά όσο περισσότερο τα συστήματα εξελίσσονται και βασίζονται στη σύνθεση των αντικειμένων, παρά στην κληρονομικότητα των κλάσεων. Προσθέτουν ευελιξία στο «τι» κατασκευάζεται, «ποιος» το κατασκευάζει, «πώς» κατασκευάζεται και «πότε». Επιπλέον, επιτρέπουν τη διαμόρφωση ενός συστήματος με αντικείμενα-προϊόντα τα οποία ποικίλουν σε δομή και λειτουργικότητα. Η διαμόρφωση αυτή μπορεί να είναι είτε στατική (κατά τη διάρκεια μεταγλώττισης), είτε δυναμική (κατά τη διάρκεια εκτέλεσης). 12
13 Τα δομικά πρότυπα σχεδίασης, ασχολούνται με το πώς συνθέτονται οι κλάσεις και τα αντικείμενα προκειμένου να σχηματίσουν ευρύτερες δομές. Τα δομικά πρότυπα κλάσεων χρησιμοποιούν κληρονομικότητα ώστε να συνθέσουν διεπαφές ή υλοποιήσεις. Αντίθετα, τα δομικά πρότυπα αντικειμένων περιγράφουν τρόπους για τη σύνθεση αντικειμένων που προσθέτουν νέα λειτουργικότητα. Όλη αυτή η επιπρόσθετη ευελιξία της σύνθεσης αντικειμένων προέρχεται από τη δυνατότητα αλλαγής της σύνθεσης στη διάρκεια εκτέλεσης, γεγονός που είναι αδύνατο να συμβεί με τη στατική σύνθεση των κλάσεων. Τα πρότυπα συμπεριφοράς ασχολούνται με τους αλγόριθμους και την ανάθεση των αρμοδιοτήτων ανάμεσα στα αντικείμενα. Τα πρότυπα συμπεριφοράς δεν περιγράφουν απλά πρότυπα αντικειμένων ή κλάσεων αλλά επιπλέον πρότυπα επικοινωνίας μεταξύ τους. Τέλος, μεταφέρουν το ενδιαφέρον από την ροή της εκτέλεσης στο τρόπο ενδοεπικοινωνίας των αντικειμένων. Τα πρότυπα συμπεριφοράς κλάσης χρησιμοποιούν κληρονομικότητα για να ελέγξουν θέματα συμπεριφοράς μεταξύ των κλάσεων. Τα πρότυπα συμπεριφοράς αντικειμένων εστιάζουν περισσότερο στη σύνθεση αντικειμένων παρά στην κληρονομικότητα. Ενδεικτικό είναι το γεγονός ότι, μερικά πρότυπα συμπεριφοράς αντικειμένων περιγράφουν τον τρόπο με τον οποίο μια ομάδα από ομότιμα αντικείμενα συνεργάζονται, ώστε να εκτελέσουν μια εργασία ο- πού ένα μοναδικό αντικείμενο δεν θα μπορούσε να εκτελέσει. Μια άλλη προσέγγιση στη ταξινόμηση των προτύπων σχεδίασης δόθηκε από τον Frank Buschman στο βιβλίο [4]. Στην προσέγγιση αυτή τα πρότυπα σχεδίασης ταξινομούνται σύμφωνα με τρία κριτήρια, τη λειτουργικότητα τους (functionality), τις δομικές αρχές τους (structural principles) και το βαθμό λεπτομέρειας που θα περιλαμβάνει ένα αντικείμενο (granularity). Σε αντίθεση με την ταξινόμηση των Gamma et. al, στην ταξινόμηση του Buschman, ένα πρότυπο σχεδίασης μπορεί να ανήκει σε παραπάνω από μια κατηγορία ανά κριτήριο, γι αυτό δεν είναι και τόσο διαδεδομένη. Τέλος, η ταξινόμηση του Zimmer [5] αναφέρεται στις σχέσεις των προτύπων σχεδίασης που περιγράφονται στο βιβλίο των Gamma et. al. Πιο συγκεκριμένα, η ταξινόμηση αυτή καλύπτει όλες τις σχέσεις μεταξύ των προτύπων όπως ένα πρότυπο χρησιμοποιεί ένα άλλο για τη λύση του ή ένα πρότυπο είναι ίδιο με ένα άλλο στην δημιουργία δομής αντικειμένων. 13
14 1.3 Πρότυπα σχεδίασης - Design Patterns Στο βιβλίο των Gamma et al [1], καταρτίζεται ένας κατάλογος από 23 πρότυπα σχεδίασης δίνοντας για το καθένα τις παρακάτω πληροφορίες. Όνομα και Κατηγόρια Σκοπός Συνώνυμα Κίνητρο (παράδειγμα προβλήματος) Εφαρμοσιμότητα Δομή (διάγραμμα κλάσεων) Συμμετέχοντες Συνεργασία Συνέπειες (επιτυγχανόμενα πλεονέκτηματα) Υλοποίηση (language specific) Sample Code Γνωστές Χρήσεις (παραδείγματα σε πραγματικά συστήματα) Σχετιζόμενα Πρότυπα Στα πλαίσια της εργασίας, τα παιχνίδια ανοιχτού λογισμικού εξετάζονται για την εμφάνιση 10, από τα συνολικά 23 πρότυπα σχεδίασης, που είναι τα Adapter, Prototype, Composite, Decorator, Singleton, Visitor, Observer, State/Strategy, Template Method, Method Factory. Τα πρότυπα σχεδίασης περιγράφονται αναλυτικότερα παρακάτω Προσαρμογέας - Adapter Το πρότυπο σχεδίασης Προσαρμογέας (Adapter) έχει ως στόχο τη μετατροπή της διασύνδεσης μιας κλάσης σε μια άλλη που αναμένει το πρόγραμμα πελάτης. Ο προσαρμογέας επιτρέπει τη συνεργασία κλάσεων, η οποία σε διαφορετική περίπτωση θα ήταν αδύνατη λόγω ασύμβατων διασυνδέσεων. 14
15 Γενικά Συχνά, ο κώδικας μιας κλάσης προσφέρεται για επαναχρησιμοποίηση, αλλά αυτή δεν είναι δυνατή λόγω του ότι τα προγράμματα που επιθυμούν να χρησιμοποιήσουν τις λειτουργίες της, αναμένουν διαφορετική διασύνδεση. Έστω για παράδειγμα ότι μια κλάση Σχεδίασης είναι σε θέση να σχεδιάσει γραμμές, αλλά απαιτεί ως παραμέτρους τις συντεταγμένες στη μορφή (x1, y1, x2, y2), ενώ τα προγράμματα πελάτες είναι σε θέση να παρέχουν τις συντεταγμένες στη μορφή (x1, x2, y1, y2). Στη συνήθη περίπτωση όπου τα προγράμματα πελάτες δεν είναι δυνατόν να τροποποιηθούν (καθώς βρίσκονται ήδη εγκατεστημένα σε διάφορα πεδία εφαρμογών), ενώ η κλάση Σχεδίασης είναι επιθυμητό να χρησιμοποιηθεί χωρίς τροποποίηση (καθώς οποιαδήποτε επέμβαση στον κώδικα μιας μεθόδου είναι δυνατόν να προκαλέσει σφάλματα στις υπόλοιπες μεθόδους), βρίσκει εφαρμογή το πρότυπο Adapter Γενική Δομή - Εφαρμογή Ένας προσαρμογέας κλάσης (class adapter) χρησιμοποιεί πολλαπλή κληρονομικότητα για να προσαρμόσει μια διασύνδεση σε μια άλλη. Εικόνα 1: Δομή του Προσαρμογέας Κλάσης Ένας προσαρμογέας αντικειμένου (object adapter) βασίζεται στη σύνθεση αντικειμένων και στη διαβίβαση μηνυμάτων (delegation). 15
16 Εικόνα 2: Δομή του Προσαρμογέα Αντικειμένου Πρωτότυπο - Prototype Το πρότυπο σχεδίασης Πρωτότυπο (Prototype) καθορίζει το είδος των αντικειμένων που θα δημιουργηθούν χρησιμοποιώντας ένα στιγμιότυπο-πρωτότυπο και δημιουργεί νέα αντικείμενα αντιγράφοντας αυτό το πρωτότυπο Γενικά Το Prototype είναι ένα σχεδιαστικό πρότυπο με το οποίο ένα νέο αντικείμενο κατασκευάζεται με "κλωνοποίηση" κάποιου υπάρχοντος. Η κλωνοποίηση αυτή γίνεται μέσω μίας μεθόδου clone η οποία παρέχεται από μία αφηρημένη κλάση ή διασύνδεση Α και υλοποιείται σε κάθε παραγόμενη κλάση Β η οποία κληρονομεί την Α. Έτσι η κλήση της clone σε ένα στιγμιότυπο της Β επιστρέφει ένα αντίγραφο του εν λόγω στιγμιότυπου, το οποίο αναλόγως με την υλοποίηση μπορεί να είναι είτε ρηχό, δηλαδή να περιέχει δείκτες προς τις εσωτερικές δομές δεδομένων του αρχικού στιγμιότυπου, είτε βαθύ, δηλαδή να περιέχει πλήρη, νεοδημιουργηθέντα αντίγραφα αυτών των δομών δεδομένων. Το Prototype χρειάζεται σε περιπτώσεις όπου πρέπει να κατασκευαστεί ένα αντίγραφο ενός αντικειμένου, αλλά με κάποιον άλλον τρόπο, π.χ. στην Java με χρήση του τελεστή new και ενός κατασκευαστή αντιγράφου (copy constructor), προσβάλλεται η αρχή Ανοικτής Κλειστής Σχεδίασης. Η μέθοδος clone μπορεί να επικαλύπτει την κλήση του εκάστοτε κατασκευαστή αντιγράφου με ένα κοινό επίπεδο αφαίρεσης έτσι ώστε να μη χρειάζεται το εξωτερικό πρόγραμμα να γνωρίζει ό- λους τους παραγόμενους τύπους δεδομένων που υλοποιούν τη διασύνδεση Α, καθώς η clone επιστρέφει αναφορά του αφηρημένου τύπου Α. 16
17 Γενική Δομή Εφαρμογή To πρότυπο σχεδίασης Prototype θα πρέπει να χρησιμοποιείται όταν ένα σύστημα θα πρέπει να είναι ανεξάρτητο από το πώς κατασκευάζονται, συνθέτονται και αναπαριστώνται τα προϊόντα του και όταν οι κλάσεις που δημιουργούν στιγμιότυπα καθορίζονται στη διάρκεια εκτέλεσης. Εναλλακτικά, χρησιμοποιείται όταν αποφεύγεται η δημιουργία μιας ιεραρχίας κλάσεων «εργοστασίου», που παραλληλίζει την ιεραρχία κλάσεων των προϊόντων ή όταν τα στιγμιότυπα μιας κλάσης μπορούν να έ- χουν μόνο μία από μερικούς διαφορετικούς συνδυασμούς καταστάσεων. Είναι πιο εύκολο να δημιουργηθεί εξαρχής ένας σχετικός αριθμός από πρωτότυπα τα οποία κλωνοποιούνται, παρά να δημιουργούνται στιγμιότυπα από μια κλάση κάθε φορά, για κάθε επιλεγμένη κατάσταση. Εικόνα 3: Δομή του προτύπου σχεδίασης Prototype Σύνθετο - Composite Το πρότυπο σχεδίασης Σύνθετο (Composite) επιτρέπει τη σύνθεση αντικειμένων σε δενδροειδείς δομές για την αναπαράσταση ιεραρχιών τμήματος-όλου. Το πρότυπο σχεδίασης Σύνθετο επιτρέπει στα προγράμματα πελάτες να διαχειρίζονται με ενιαίο τρόπο τόσο τα ανεξάρτητα αντικείμενα όσο και συνθέσεις αντικειμένων Γενικά Συχνά, σε μία εφαρμογή, εκτός από μεμονωμένα αντικείμενα (π.χ. μαξιλάρι, ξύλο), υφίστανται και σύνθετα αντικείμενα που περιέχουν ή περιλαμβάνουν άλλα α- ντικείμενα (π.χ. καναπές). Η σχέση περιεκτικότητας μπορεί να είναι ασθενούς μορ- 17
18 φής (συσσωμάτωση) είτε ισχυρής μορφής (σύνθεση). Η συνήθης αντιμετώπιση μίας τέτοιας περίπτωσης με τη χρήση μιας σχέσης περιεκτικότητας μεταξύ της κλάσης που αντιπροσωπεύει το όλον (περικλείουσα κλάση) και των κλάσεων που αντιπροσωπεύουν τα τμήματα, έχει το μειονέκτημα ότι δεν επιτρέπει τον ομοιόμορφο χειρισμό των αντικειμένων από ένα πρόγραμμα πελάτη. Για παράδειγμα, μία άλλη εφαρμογή θα πρέπει να διατηρεί δείκτες και προς αντικείμενα τύπου Μαξιλάρι, Ξύλο, αλλά και δείκτες προς αντικείμενα τύπου Καναπές. Λαμβάνοντας υπόψη τους πρωταρχικούς στόχους του αντικειμενικού προγραμματισμού, αν προστεθεί στο σύστημα μία νέα σύνθετη κλάση (π.χ. Κρεβάτι), τότε ο κώδικας του προγράμματος πελάτη, θα πρέπει να τροποποιηθεί για να είναι δυνατός ο χειρισμός των νέων αντικειμένων τύπου Κρεβάτι. Η αντιμετώπιση αυτού του προβλήματος, επιτυγχάνεται με έξυπνο τρόπο με το πρότυπο σχεδίασης Composite. Ένα άλλο παράδειγμα που μπορεί να δοθεί αφορά τις εφαρμογές που σχεδιάζουν πολύπλοκα ψηφιακά κυκλώματα VLSI (όπως για παράδειγμα το κύκλωμα ενός επεξεργαστή). Οι εφαρμογές αυτές αντιμετωπίζουν οποιαδήποτε οντότητα ως αντικείμενο. Κάθε αντικείμενο έχει ορισμένες λειτουργίες, μεταξύ αυτών η σχεδίαση του. Ορισμένα από τα αντικείμενα είναι πρωταρχικά και δεν αναλύονται περαιτέρω (π.χ. λογικές πύλες AND, OR, NOT), ενώ άλλα αντικείμενα είναι σύνθετα και αποτελούνται από πρωταρχικές πύλες (π.χ. ένας πλήρης αθροιστής). Ο χρήστης είναι σε θέση να δημιουργήσει οποιαδήποτε σύνθετη οντότητα και να την προσθέσει στην εφαρμογή. Η σχεδίαση ενός σύνθετου αντικειμένου ουσιαστικά συνίσταται στη σχεδίαση των επιμέρους τμημάτων του. Για το λόγο αυτό, είναι επιθυμητή η ενιαία αντιμετώπιση όλων των αντικειμένων. Το πρότυπο Composite, επιτρέπει τον αναδρομικό ορισμό περιεκτικότητας, ώστε οι πελάτες να μην αντιλαμβάνονται τη διαφορά μεταξύ πρωταρχικών και σύνθετων αντικειμένων. Το σημείο-κλειδί στο πρότυπο σχεδίασης Composite είναι η ύπαρξη μιας αφηρημένης κλάσης που αναπαριστά τόσο πρωταρχικές όσο και περικλείουσες κλάσεις Γενική Δομή Εφαρμογή Το πρότυπο Σύνθετο χρησιμοποιείται όταν είναι επιθυμητό τα προγράμματα πελάτες να μπορούν να χειρίζονται μεμονωμένα αντικείμενα και σύνθετα αντικείμενα με τον ίδιο τρόπο. 18
19 Εικόνα 4: Διάγραμμα Κλάσεων προτύπου Σύνθετο Διακοσμητής - Decorator Το πρότυπο σχεδίασης Decorator προσδίδει νέες αρμοδιότητες σε ένα αντικείμενο δυναμικά. Ο Decorator παρέχει έναν ευέλικτο εναλλακτικό τρόπο για δημιουργία υποκλάσεων έτσι ώστε να προστίθεται λειτουργικότητα Γενικά Πιο συγκεκριμένα, επιτρέπει την εύκολη και δυναμική επέκταση της λειτουργικότητας κάποιων υπαρχόντων κλάσεων Α, Β κλπ, οι οποίες υλοποιούν την ίδια διασύνδεση ή κληρονομούν την ίδια αφηρημένη κλάση (έστω Interface), σε χρόνο εκτέλεσης. Αυτό γίνεται μέσω του Decorator, μίας νέας κλάσης η οποία επίσης υλοποιεί την Interface αλλά περιέχει ως ιδιωτικό πεδίο και μία αναφορά σε ένα στιγμιότυπο του γενικού τύπου Interface (έστω το instance), η οποία τυπικά μεταβιβάζεται ως ό- ρισμα στον κατασκευαστή της Decorator r. Έτσι οι μέθοδοι της τελευταίας υλοποιούν εσωτερικά την καινούργια λειτουργικότητα αλλά για τις κοινές εργασίες καλούν τις αντίστοιχες μεθόδους του instance. Κατά τον χρόνο εκτέλεσης θα μπορούσε το αντικείμενο Decorator να κατασκευάζεται με όρισμα οποιοδήποτε στιγμιότυπο τύπου Interface (ακόμα και του ίδιου του Decorator, αν και αυτό δε θα είχε ιδιαίτερο νόημα) ώστε κατά περίπτωση το αντικείμενο να παρέχει τη λειτουργικότητα οποιασδήποτε κλάσης τύπου Interface, είτε της Α είτε κάποιας άλλης, εκτεταμένης με ένα συγκεκριμένο σύνολο δυνατοτήτων. Με αυτόν τον τρόπο γίνεται εφικτός ένας δυναμικός 19
20 συνδυασμός λειτουργιών από στοιχειώδεις δομικούς λίθους κατά τον χρόνο εκτέλεσης. Η εναλλακτική λύση, χωρίς χρήση κάποιου σχεδιαστικού προτύπου, θα ήταν η απλή κληρονομικότητα, με τον ορισμό κλάσεων οι οποίες επεκτείνουν τις Α, Β κλπ. και προσθέτουν τη νέα λειτουργικότητα. Ωστόσο η λύση αυτή δεν είναι εφικτή σε περίπτωση που οι Α, Β κλπ. δεν μπορούν να επεκταθούν με κληρονομικότητα, ενώ σε άλλες περιπτώσεις δεν είναι καθόλου πρακτική, π.χ. αν έχουμε πολλαπλά διαφορετικά σύνολα νέων δυνατοτήτων τα οποία πρέπει να συνδυαστούν με τις Α, Β κλπ. Το πρόβλημα έγκειται στο ότι με την κληρονομικότητα όλοι οι πιθανοί συνδυασμοί δυνατοτήτων πρέπει να προβλεφθούν και να ληφθούν υπ όψιν κατά τη συγγραφή του προγράμματος. Αντιθέτως με την κλάση Decorator, η οποία δρα ως περίβλημα (Wrapper) άλλων αντικειμένων τύπου Interface προς τα οποία περιέχει αναφορές / δείκτες, η σύνθεση νέων αντικειμένων ουσιαστικά γίνεται δυναμικά ενώ το πρόγραμμα εκτελείται Γενική Δομή - Εφαρμογή Το πρότυπο σχεδίασης Decorator χρησιμοποιείται όταν πρέπει να αυξηθούν οι υπευθυνότητες ξεχωριστών αντικειμένων, δυναμικά και με διαφανή τρόπο, χωρίς να επηρεαστούν άλλα αντικείμενα. Επιπλέον χρησιμοποιείται, όταν κάποιες υπευθυνότητες αντικειμένων μπορούν να παραμεριστούν και όταν η επέκταση με χρήση υποκλάσεων είναι μη πρακτική. Εικόνα 5: Διάγραμμα κλάσεων προτύπου Decorator 20
21 1.3.5 Μοναδιαίο - Singleton Το πρότυπο σχεδίασης Μοναδιαίο (Singleton) εξασφαλίζει ότι μια κλάση θα έχει μόνο ένα στιγμιότυπο και παρέχει ένα καθολικό σημείο πρόσβασης σε αυτό Γενικά Συνήθως μεταξύ κλάσεων και στιγμιοτύπων τους υπάρχει μία σχέση ένα-προςπολλά. Κατά τη διαδικασία ανάλυσης, η ύπαρξη πολλών στιγμιοτύπων της ίδιας έννοιας στο σύστημα υποδηλώνει την αναγκαιότητα μιας κλάσης. Τα αντικείμενα δημιουργούνται δεσμεύοντας χώρο στη μνήμη όποτε κρίνεται σκόπιμο και διαγράφονται από τη μνήμη όταν τερματιστεί η χρήση τους. Ορισμένες φορές όμως, απαιτείται η ύπαρξη κλάσεων από τις οποίες παράγεται ένα μόνο αντικείμενο. Πολύ συχνά, το α- ντικείμενο αυτό συνήθως δημιουργείται κατά την έναρξη της εφαρμογής και διαγράφεται με το πέρας της. Ο ρόλος του μοναδικού αυτού αντικειμένου είναι η διαχείριση των υπολοίπων αντικειμένων της εφαρμογής και για το λόγο αυτό, αποτελεί λογικό σφάλμα να δημιουργηθούν περισσότερα του ενός τέτοια αντικείμενα διαχειριστές (managers ή controllers). Σε μια τέτοια περίπτωση, η εφαρμογή θα έχει περισσότερα του ενός σημεία εκκίνησης, και ο υποθετικός χρήστης, ανάλογα με το σημείο εκκίνησης, μπορεί να καταλήξει να χρησιμοποιεί ένα υποσύνολο των αντικειμένων του συστήματος. Επιπρόσθετα, αν υπάρχουν περισσότεροι του ενός διαχειριστές, ενώ ο επιθυμητός στόχος είναι η ακολουθιακή εκτέλεση δραστηριοτήτων, πολλές δραστηριότητες θα εκτελούνται παράλληλα. Το πρότυπο σχεδίασης Singleton, εξασφαλίζει τη δημιουργία ενός και μόνο α- ντικειμένου, περιλαμβάνοντας μια ειδικά μέθοδο κατασκευής στιγμιοτύπων: Όταν καλείται αυτή η μέθοδος, ελέγχει αν κάποιο αντικείμενο έχει ήδη δημιουργηθεί. Αν έχει δημιουργηθεί, η μέθοδος επιστρέφει απλώς ένα δείκτη προς το υπάρχον αντικείμενο, σε αντίθετη περίπτωση, η μέθοδος δημιουργεί ένα νέο αντικείμενο και επιστρέφει δείκτη προς αυτό. Για να εξασφαλιστεί ότι αυτός είναι ο μοναδικός τρόπος δημιουργίας αντικειμένων από αυτή την κλάση, ο κατασκευαστής της κλάσης δηλώνεται ως προστατευμένος (protected) ή ιδιωτικός (private). Με τον τρόπο αυτό, δεν είναι δυνατόν να δημιουργηθεί ένα αντικείμενο παρακάμπτοντας την παραπάνω ειδική μέθοδο. 21
22 Παρακάτω αναφέρονται παραδείγματα τα οποία δείχνουν τη πιθανή χρήση του προτύπου σχεδίασης Singleton. Ενώ σε ένα σύστημα μπορεί να υπάρχουν πολλοί ε- κτυπωτές συνδεδεμένοι, υπάρχει μόνο μια εφαρμογή διαχείρισης των αρχείων που πρόκειται να εκτυπωθούν. Επιπλέον, υπάρχει μόνο ένα σύστημα αρχείων και ένας διαχειριστής παραθύρων. Ένα λογιστικό πρόγραμμα σχεδιάζεται για τη διαχείριση των οικονομικών μιας μόνο εταιρίας. Τέλος, σε μια κεντρική μονάδα επεξεργασίας ενός υπολογιστή, παρόλο που είναι δυνατόν να υπάρχουν πολλοί καταχωρητές γενικής χρήσης, πρέπει να υπάρχει μόνο ένας καταχωρητής (συσσωρευτής Accumulator) στον οποίο καταλήγουν τα αποτελέσματα των αριθμητικών και λογικών πράξεων Γενική Δομή - Εφαρμογή Το πρότυπο σχεδίασης Singleton χρησιμοποιείται όταν σε κάποιο σύστημα λογισμικού υπάρχει η απαίτηση από μια κλάση να δημιουργείται ένα και μόνο ένα αντικείμενο. Εικόνα 6: Δομή του προτύπου Μοναδιαίο Επισκέπτης - Visitor Το πρότυπο σχεδίασης Επισκέπτης (Visitor) έχει ως στόχο την αναπαράσταση μιας λειτουργίας που πρόκειται να πραγματοποιηθεί στα στοιχεία μιας δομής α- ντικειμένων. Ειδικότερα, το πρότυπο επιτρέπει τον ορισμό μιας νέας λειτουργίας χωρίς την τροποποίηση των κλάσεων των στοιχείων στα οποία επιδρά Γενικά Πολύ συχνά απαιτείται η προσθήκη μιας νέας μεθόδου σε μια υπάρχουσα ιεραρχία κλάσεων αλλά είναι εξαιρετικά δύσκολο να τροποποιηθούν οι ίδιες κλάσεις της ιεραρχίας. Η προσέγγιση αυτή ενθαρρύνει τη σχεδίαση ιεραρχιών από στοιχεία 22
ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αξιολόγηση των Σχεδιαστικών Προτύπων και της Ποιότητας του Λογισμικού μέσω Μετρικών, στις Περιπτώσεις Προσθήκης Λειτουργικότητας και
ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αξιολόγηση των Σχεδιαστικών Προτύπων και της Ποιότητας του Λογισμικού μέσω Μετρικών, στις Περιπτώσεις Προσθήκης Λειτουργικότητας και Αναδόμησης του Κώδικα Η πτυχιακή περιλαμβάνει τα παρακάτω:
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Πρότυπα Σχεδίασης. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Πρότυπα Σχεδίασης Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Μοτίβα Σχεδίασης (Design Patterns)
Ενότητα 6 Μοτίβα Σχεδίασης (Design Patterns) Ορισµοί βασικές έννοιες. Σηµαντικά µοτίβα σχεδίασης: Παρατηρητής (Observer). Πρόσοψη (Façade). Προσαρµογέας (Adapter). Πληρεξούσιος (Proxy). Μοναχοπαίδι (Singleton).
. Μεθοδολογία Προγραμματισμού. Μοτίβα σχεδίασης (Design Patterns) Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014
.. Μεθοδολογία Προγραμματισμού Μοτίβα σχεδίασης (Design Patterns) Νικόλαος Πεταλίδης Τμήμα Μηχανικών Η/Υ ΤΕΙ Κεντρικής Μακεδονίας Εισαγωγή Εαρινό Εξάμηνο 2014 Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία
Εισαγωγή στη Σχεδίαση Λογισμικού
Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του
Διαγράμματα Κλάσεων στη Σχεδίαση
Διαγράμματα Κλάσεων στη Σχεδίαση περιεχόμενα παρουσίασης Αφηρημένες κλάσεις Ιδιότητες Λειτουργίες Απλοί τύποι Συσχετίσεις Εξάρτηση Διεπαφές αφηρημένες κλάσεις Οι αφηρημένες κλάσεις δεν μπορούν να δημιουργήσουν
Τα γραφικά του παιχνιδιού ήταν στην ουσία χαρακτήρες ASCII, προσεκτικά προγραµµατισµένοι ώστε να σχηµατίζουν αντικείµενα και να ξεγελούν το ανθρώπινο
Τα αρχικά παιχνίδια είχαν ένα βασικό χαρακτηριστικό : Ήταν απλές ιδέες υλοποιηµένες πολύπλοκα. Αυτό αργότερα έδωσε τη δυνατότητα στους προγραµµατιστές να δηµιουργήσουν πολύπλοκες ιδέες µε πολύπλοκη υλοποίηση,
Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)
Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 8: Σχεδίαση Συστήματος Σχεδίαση Συστήματος 2 Διεργασία μετατροπής του προβλήματος σε λύση. Από το Τί στο Πώς. Σχέδιο: Λεπτομερής περιγραφή της λύσης. Λύση:
Στόχοι της Πτυχιακής
Αξιολόγηση της επίδρασης της χρήσης προτύπων σχεδίασης στις τιμές των μετρικών αντικειμενοστρεφούς σχεδίασης. Εφαρμογή σε εργαλείο σχεδίασης λογισμικού Βούλγαρης Μιχάλης Στόχοι της Πτυχιακής Επίδραση των
ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών
44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.
Υποδείγματα Ανάπτυξης
Υποδείγματα Ανάπτυξης περιεχόμενα παρουσίασης Αποσύνθεση Αφαίρεση Μοντελοποίηση Η δεδομένο λειτουργική προσέγγιση Η αντικειμενοστρεφής προσέγγιση αποσύνθεση Όταν επιχειρούμε τη λύση ενός προβλήματος, πρώτα
Αντικειμενοστρεφής Προγραμματισμός
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 15: Σχεδίαση Εφαρμογών Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ
ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ Κ Υ Κ Λ Ο Υ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Κ Α Ι Υ Π Η Ρ Ε Σ Ι Ω Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η
ΑΝΙΧΝΕΥΣΗ ΠΡΟΤΥΠΩΝ ΣΧΕΔΙΑΣΗΣ ΣΕ ΛΟΓΙΣΜΙΚΟ ΑΝΟΙΧΤΟ ΚΩΔΙΚΑ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΓΚΟΥΝΤΙΝΑΣ ΛΑΖΑΡΟΣ(ΑΜ:708) ΕΠΙΒΛΕΠΩΝ : ΑΛΕΞΑΝΔΡΟΣ ΛΑΖΑΡΙΔΗΣ
Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Ο Ε Κ Π Α Ι Δ Ε Υ Τ Ι Κ Ο Ι Δ Ρ Υ Μ Α Σ Ε Ρ Ρ Ω Ν Σ Χ Ο Λ Η Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Ω Ν Ε Φ Α Ρ Μ Ο Γ Ω Ν Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ & Ε Π Ι Κ Ο Ι Ν Ω Ν Ι Ω Ν ΑΝΙΧΝΕΥΣΗ ΠΡΟΤΥΠΩΝ
Πρότυπα Σχεδίασης. Design Patterns
Πρότυπα Σχεδίασης Design Patterns 1 Bridge (Γέφυρα) Κατηγορία: Structural Σκοπός: Η αποσύνδεση μιας αφαίρεσης από την υλοποίησή της, ώστε να μπορούν να μεταβάλλονται ανεξάρτητα. Συνώνυμα: Handle/Body 2
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ. Καθηγητής
Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση
Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Sites:
ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης
ΠΟΛΥΜΟΡΦΙΣΜΟΣ Λόγω της θεμελιώδους σημασίας της έννοιας του πολυμορφισμού (polymorphism) στην αντικειμενοστρεφή σχεδίαση, κρίνεται σκόπιμο στο σημείο αυτό του βιβλίου να αναλυθεί εκτενέστερα. Ο πολυμορφισμός
K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων
K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού
Διαφορές single-processor αρχιτεκτονικών και SoCs
13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό
Υπολογιστικής Σκέψης
Απόκτηση και καλλιέργεια Υπολογιστικής Σκέψης Διακριτά Μαθηματικά Εισαγωγή στους Αλγόριθμους Αλγοριθμικά Θέματα Ασύρματων Δικτύων Υπολογιστική Επιστήμη και Πολιτισμός Τι είναι η υπολογιστική σκέψη; Οι
Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα
Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Ενότητες βιβλίου: 6.4, 6.7 Ώρες διδασκαλίας: 1 Τεχνικές σχεδίασης προγραμμάτων Στο βιβλίο γίνεται αναφορά σε μία τεχνική για την ανάπτυξη
αντίστοιχο γεγονός. Όταν όντως το κουμπί
Εισαγωγή στην αλληλεπίδραση Τα έργα που έχουμε αναπτύξει έως τώρα τρέχουν ένα σενάριο και σταματούν. Τα αντικείμενά μας αλλάζουν θέση και ενδυμασίες, παίζουν διαφορετικούς ήχους και ζωγραφίζουν διάφορα
ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ
ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΙΣΧΥΕΙ ΚΑΤΑ ΤΟ ΜΕΡΟΣ ΠΟΥ ΑΦΟΡΑ ΤΟ ΛΥΚΕΙΟ ΓΙΑ ΤΗΝ ΥΠΟΧΡΕΩΤΙΚΗ ΕΚΠΑΙΔΕΥΣΗ ΙΣΧΥΟΥΝ ΤΟ ΔΕΠΠΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΔΙΑΔΙΚΑΣΙΕΣ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ Διδάσκων: Γ. Χαραλαμπίδης,
1 Συστήματα Αυτοματισμού Βιβλιοθηκών
1 Συστήματα Αυτοματισμού Βιβλιοθηκών Τα Συστήματα Αυτοματισμού Βιβλιοθηκών χρησιμοποιούνται για τη διαχείριση καταχωρήσεων βιβλιοθηκών. Τα περιεχόμενα των βιβλιοθηκών αυτών είναι έντυπα έγγραφα, όπως βιβλία
Μεθοδολογία επαναχρησιμοποίησης κώδικα βασισμένη σε πρότυπα σχεδίασης
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών του τμήματος Πληροφορικής Κατεύθυνση "Πληροφοριακά Συστήματα Μεθοδολογία επαναχρησιμοποίησης κώδικα βασισμένη σε
3 Αλληλεπίδραση Αντικειμένων
Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή
Προγραμματισμός ΙI (Θ)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017
Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)
Τεχνολογία Λογισμικού Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Τεχνολογίες Υλοποίησης Αλγορίθµων
Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Γρηγόρης Πράσινος Υποψήφιος ιδάκτωρ Τµήµα Μηχ/κων Η/Υ &
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
Αντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου
Αντικειμενοστρέφεια Henri Matisse, Harmony in Red, 1908 Κωστής Σαγώνας Νίκος Παπασπύρου Ορισμοί αντικειμενοστρέφειας Ποιοι είναι οι ορισμοί των παρακάτω; Αντικειμενοστρεφής
public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);
Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας
ΠΛΗΡΟΦΟΡΙΚΗ Γ ΤΑΞΗΣ ΓΕΛ ΚΛΕΙΩ ΣΓΟΥΡΟΠΟΥΛΟΥ. ΣΥΓΧΡΟΝΑ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ Αντικειμενοστραφής Προγραμματισμός
ΠΛΗΡΟΦΟΡΙΚΗ Γ ΤΑΞΗΣ ΓΕΛ ΣΥΓΧΡΟΝΑ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ Αντικειμενοστραφής Προγραμματισμός ΚΛΕΙΩ ΣΓΟΥΡΟΠΟΥΛΟΥ ΥΠΠΕΘ 04.07.2019 ΕΠΙΜΟΡΦΩΣΗ ΣΤΟ ΝΕΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΥΛΙΚΟ Αντικειμενοστραφής Προγραμματισμός.
Οδηγίες Συγγραφής και Αξιολόγησης Εργασιών του μαθήματος
ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Αντικειμενοστρεφής Προγραμματισμός Η/Υ Οδηγίες Συγγραφής και Αξιολόγησης Εργασιών του μαθήματος Το κείμενο αυτό γράφεται με σκοπό να βοηθήσει τους φοιτητές του μαθήματος
Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI
Ε.Μ.Π. - ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ VLSI
METROPOLIS. Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα
METROPOLIS Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα Ενσωματωμένα συστήματα Ορίζονται ως ηλεκτρονικά συστήματα τα οποία χρησιμοποιούν υπολογιστές και ηλεκτρονικά υποσυστήματα για να εκτελέσουν
Αρχιτεκτονική Λογισμικού
Αρχιτεκτονική Λογισμικού περιεχόμενα παρουσίασης Τι είναι η αρχιτεκτονική λογισμικού Αρχιτεκτονική και απαιτήσεις Σενάρια ποιότητας Βήματα αρχιτεκτονικής σχεδίασης Αρχιτεκτονικά πρότυπα Διαστρωματωμένη
Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού
ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΔΙΑΤΜΗΜΑΤΙΚΟ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Διπλωματική Εργασία με θέμα: Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού Καραγιάννης Ιωάννης Α.Μ.
2.1 Αντικειµενοστρεφής προγραµµατισµός
2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί
Σχεδιασµός βασισµένος σε συνιστώσες
Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα
Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι
Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού
Προβλήματα, αλγόριθμοι, ψευδοκώδικας
Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι
Εφαρμογή Μεθοδολογίας ICONIX
Πρόγραμμα Μεταπτυχιακών Σπουδών στην Εφαρμοσμένη Πληροφορική Προηγμένη Τεχνολογία Λογισμικού, 2016 Α. Χατζηγεωργίου Εφαρμογή Μεθοδολογίας ICONIX Παράδειγμα: Εγγραφή Φοιτητή σε Μάθημα Θέμα Θεωρείστε ότι
Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1
Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Ποιες γλώσσες αναφέρονται ως φυσικές και ποιες ως τεχνητές; Ως φυσικές γλώσσες αναφέρονται εκείνες οι οποίες χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων,
Ατοµική ιπλωµατική Εργασία
Ατοµική ιπλωµατική Εργασία ΣΧΕ ΙΑΣΤΙΚΑ ΠΡΟΤΥΠΑ ΓΙΑ ΤΙΣ ΕΡΕΥΝΗΤΙΚΕΣ ΠΕΡΙΟΧΕΣ ΤΗΣ ΑΛΛΗΛΕΠΙ ΡΑΣΗΣ ΑΝΘΡΩΠΟΥ-ΥΠΟΛΟΓΙΣΤΗ, ΤΑ ΣΥΣΤΗΜΑΤΑ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ ΚΑΙ ΤΟΥ ΣΧΕ ΙΑΣΜΟΥ ΙΣΤΟΣΕΛΙ ΩΝ Λοΐζος Τσιάτταλος ΠΑΝΕΠΙΣΤΗΜΙΟ
Προσομοίωση Συστημάτων
Προσομοίωση Συστημάτων Προσομοίωση και μοντέλα συστημάτων Άγγελος Ρούσκας Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς Γενικός ορισμός συστήματος Ένα σύνολο στοιχείων/οντοτήτων που αλληλεπιδρούν μεταξύ
ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ
ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ Μ. Γρηγοριάδου Ρ. Γόγουλου Ενότητα: Η Διδασκαλία του Προγραμματισμού Περιεχόμενα Παρουσίασης
Η διάρκεια πραγματοποίησης της ανοιχτής εκπαιδευτικής πρακτικής ήταν 2 διδακτικές ώρες
ΣΧΟΛΕΙΟ Η εκπαιδευτική πρακτική αφορούσε τη διδασκαλία των μεταβλητών στον προγραμματισμό και εφαρμόστηκε σε μαθητές της τελευταίας τάξης ΕΠΑΛ του τομέα Πληροφορικής στα πλαίσια του μαθήματος του Δομημένου
Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή
Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή Φτάσαμε σιγά σιγά στο τέλος του βιβλίου. Αντί για κάποιον επίλογο σκέφτηκα να συλλέξω κάποια πράγματα που θα ήθελα να πω σε κάποιον ο οποίος αρχίζει
ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων Άδειες Χρήσης Το παρόν εκπαιδευτικό
Τα Διδακτικά Σενάρια και οι Προδιαγραφές τους. του Σταύρου Κοκκαλίδη. Μαθηματικού
Τα Διδακτικά Σενάρια και οι Προδιαγραφές τους του Σταύρου Κοκκαλίδη Μαθηματικού Διευθυντή του Γυμνασίου Αρχαγγέλου Ρόδου-Εκπαιδευτή Στα προγράμματα Β Επιπέδου στις ΤΠΕ Ορισμός της έννοιας του σεναρίου.
ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗ, Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ
ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗ, Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ Σκοπός του μαθήματος είναι οι μαθητές και οι μαθήτριες να αναπτύξουν ικανότητες αναλυτικής και συνθετικής σκέψης, ώστε να επιλύουν προβλήματα, να σχεδιάζουν
Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.
AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία
ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ανάλυση απαιτήσεων Σε αυτό το μάθημα θα ασχοληθούμε με : Δημιουργία μοντέλων
ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ Οι Μηχανικοί Λογισμικού παράγουν μοντέλα που βοηθούν στη διατύπωση των απαιτήσεων με τη μορφή προδιαγραφών. Η εργασία της παραγωγής μοντέλων περιγράφεται ως ανάλυση απαιτήσεων. Η ανάλυση
Αντικειμενοστρεφής Προγραμματισμός
Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java
14η ιάλεξη. Προχωρημένα θέματα σχεδίασης
14η ιάλεξη Προχωρημένα θέματα σχεδίασης 1 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για
Μοντελοποίηση Πεδίου
Μοντελοποίηση Πεδίου περιεχόμενα παρουσίασης Εννοιολογικές κλάσεις Συσχετίσεις εννοιολογικών κλάσεων Τύποι ιδιοτήτων Γενίκευση Συχνά σφάλματα μοντελοποίησης πεδίου Εννοιολογικές κλάσεις και κλάσεις λογισμικού
ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΓΙΑ ΤΗ ΜΑΘΗΣΗ ΚΑΙ ΤΗ ΔΙΔΑΣΚΑΛΙΑ ΣΤΗΝ ΠΡΟΣΧΟΛΙΚΗ ΕΚΠΑΙΔΕΥΣΗ
ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΓΙΑ ΤΗ ΜΑΘΗΣΗ ΚΑΙ ΤΗ ΔΙΔΑΣΚΑΛΙΑ ΣΤΗΝ ΠΡΟΣΧΟΛΙΚΗ ΕΚΠΑΙΔΕΥΣΗ ΑΝΑΓΝΩΡΙΖΟΝΤΑΣ ΤΗ ΔΙΑΦΟΡΕΤΙΚΟΤΗΤΑ & ΑΝΑΠΤΥΣΣΟΝΤΑΣ ΔΙΑΦΟΡΟΠΟΙΗΜΕΝΕΣ ΠΡΟΣΕΓΓΙΣΕΙΣ Διαστάσεις της διαφορετικότητας Τα παιδιά προέρχονται
Τεχνικές συλλογής δεδομένων στην ποιοτική έρευνα
Το κείμενο αυτό είναι ένα απόσπασμα από το Κεφάλαιο 16: Ποιοτικές ερμηνευτικές μέθοδοι έρευνας στη φυσική αγωγή (σελ.341-364) του βιβλίου «Για μία καλύτερη φυσική αγωγή» (Παπαιωάννου, Α., Θεοδωράκης Ι.,
Agile Προσέγγιση στη Διαχείριση Έργων Λογισμικού
Agile Προσέγγιση στη Διαχείριση Έργων Λογισμικού Ενότητα 2- Οι αρχές της agile προσέγγισης Δρ. Δημήτριος Τσέλιος Καθηγητής Εφαρμογών Τμήμα Μηχανικών Πληροφορικής Τ.Ε.- ΤΕΙ Θεσσαλίας Μεταπτυχιακό Πρόγραμμα
Εφαρμογές Προσομοίωσης
Εφαρμογές Προσομοίωσης H προσομοίωση (simulation) ως τεχνική μίμησης της συμπεριφοράς ενός συστήματος από ένα άλλο σύστημα, καταλαμβάνει περίοπτη θέση στα πλαίσια των εκπαιδευτικών εφαρμογών των ΤΠΕ. Μπορούμε
Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής
Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική
Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής
1 Ελληνικό Ανοικτό Πανεπιστήµιο Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας ρ. Πάνος Φιτσιλής Περιεχόµενα Βασικές έννοιες αντικειµενοστεφούς τρόπου ανάπτυξης Τι είναι κλάση Τι είναι αντικείµενο 2 Βασικές
Bubble Hack Οπτικοποίηση του αλγορίθμου ταξινόμησης Bubble Sort στο Scratch
Bubble Hack Οπτικοποίηση του αλγορίθμου ταξινόμησης Bubble Sort στο Scratch 1 Καλαμποκάς Ιάσων, 2 Καραστάθη Μαρία, 3 Καραστάθη Ουρανία, 4 Χαλβατσιώτης Γεώργιος, 5 Κωνσταντίνου Ζωή, 6 Καρόγλου Νικόλαος,
Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access Κεφάλαιο 2 Χειρισμός πινάκων... 27
Περιεχόμενα Κεφάλαιο 1 Εισαγωγή στην Access... 9 Γνωριμία με την Access... 12 Δημιουργία βάσης δεδομένων... 22 Άνοιγμα και κλείσιμο βάσης δεδομένων... 24 Ερωτήσεις ανακεφαλαίωσης... 25 Πρακτική εξάσκηση...
ΔΙΑΧΕΙΡΙΣΗ ΠΡΟΓΡΑΜΜΑΤΩΝ ΚΑΙ ΧΑΡΤΟΦΥΛΑΚΙΩΝ ΕΡΓΩΝ. Διάλεξη 1 η Εισαγωγικές έννοιες και ορισμοί Δημήτρης Τσέλιος
ΔΙΑΧΕΙΡΙΣΗ ΠΡΟΓΡΑΜΜΑΤΩΝ ΚΑΙ ΧΑΡΤΟΦΥΛΑΚΙΩΝ ΕΡΓΩΝ Διάλεξη 1 η Εισαγωγικές έννοιες και ορισμοί Δημήτρης Τσέλιος Συχνές ερωτήσεις ενός διαχειριστή έργων Γιατί υλοποιούμε αυτό το έργο; Τι υποτίθεται ότι θα
Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;
Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class
της ΜΑΡΙΑΝΝΑΣ ΑΒΕΡΚΙΟΥ Παιδαγωγός MEd, Εκπαίδευση Παιδιών με Ειδικές Ανάγκες Διδάκτωρ Πανεπιστημίου Αθηνών, Φιλόλογος
της ΜΑΡΙΑΝΝΑΣ ΑΒΕΡΚΙΟΥ Παιδαγωγός MEd, Εκπαίδευση Παιδιών με Ειδικές Ανάγκες Διδάκτωρ Πανεπιστημίου Αθηνών, Φιλόλογος Περιεχομένα Ενότητες δραστηριοτήτων Μικρή ιστορία για τη δημιουργικότητα Ποιος θέλει
Μάθηση & διδασκαλία στην προσχολική εκπαίδευση: βασικές αρχές
Μάθηση & διδασκαλία στην προσχολική εκπαίδευση: βασικές αρχές Σκοποί ενότητας Να συζητηθούν βασικές παιδαγωγικές αρχές της προσχολικής εκπαίδευσης Να προβληματιστούμε για τους τρόπους με τους οποίους μπορεί
ΣΧΕ ΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟ ΙΟΤΗΤΕΣ. Ορισµός σχεδιαστικών προτύπων Εφαρµογή των 9 GRASP προτύπων
ΣΧΕ ΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟ ΙΟΤΗΤΕΣ Ορισµός σχεδιαστικών προτύπων Εφαρµογή των 9 GRASP προτύπων 1 Γενικά Εξαιρετικά σηµαντικά: η απόφαση για το που ανήκουν οι µέθοδοι, και πως αλληλεπιδρούν τα αντικείµενα
Πληροφοριακά Συστήματα Διοίκησης Ενότητα 1: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (1ο Μέρος)
Πληροφοριακά Συστήματα Διοίκησης Ενότητα 1: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (1ο Μέρος) Γρηγόριος Μπεληγιάννης Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης
ΑΡΧΗ 2ΗΣ ΣΕΛΙΔΑΣ Γ Α... Β
ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΠΡΟΣΟΜΟΙΩΣΗ ΑΠΟΛΥΤΗΡΙΩΝ ΕΞΕΤΑΣΕΩΝ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΔΕΥΤΕΡΑ 11 ΑΠΡΙΛΙΟΥ 2011 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ
1 Ανάλυση Προβλήματος
1 Ανάλυση Προβλήματος 1.1 Η Έννοια Πρόβλημα Τι είναι δεδομένο; Δεδομένο είναι οτιδήποτε μπορεί να γίνει αντιληπτό από έναν τουλάχιστον παρατηρητή, με μία από τις πέντε αισθήσεις του. Τι είναι επεξεργασία
Περιεχόμενο του μαθήματος
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Απαιτήσεις Λογισμικού Περιπτώσεις χρήσης Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Περιεχόμενο του μαθήματος
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 2 ο : ΣΤΟΙΒΑ & ΟΥΡΑ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ ΣΤΟΙΒΑ 2 Μια στοίβα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΤΜΗΜΑΤΟΣ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗ ΣΥΣΤΗΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΤΜΗΜΑΤΟΣ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗ ΣΥΣΤΗΜΑΤΑ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Υλοποίηση Eclipse plug-in για τον Εντοπισμό Προτύπων Σχεδίασης ΚΟΡΤΣΑΡΗΣ
Αυτόνομοι Πράκτορες. ΝΑΟ Μουσικός
Αυτόνομοι Πράκτορες ΝΑΟ Μουσικός Καρατζαφέρης Ευστάθιος Αλέξανδρος 2007 030 046 Πολυτεχνείο Κρήτης Σύντομη Περιγραφή Στόχος της εργασίας μας είναι η υλοποίηση της συμπεριφοράς αλλα και της λειτουργικότητας
Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού
Πρόλογος...21 μέρος A Εισαγωγή στην Τεχνολογία Λογισμικού 1 Εισαγωγή στην Τεχνολογία Λογισμικού 1.1 Το λογισμικό...25 1.1.1 Ο ρόλος και η σημασία του λογισμικού...26 1.1.2 Οικονομική σημασία του λογισμικού...28
Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).
Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται
"My Binary Logic" Ένας προσομοιωτής λογικών πυλών στο Scratch
"My Binary Logic" Ένας προσομοιωτής λογικών πυλών στο Scratch Καραγιάννη Ελένη 1, Καραγιαννάκη Μαρία-Ελένη 2, Βασιλειάδης Αθανάσιος 3, Κωστουλίδης Αναστάσιος-Συμεών 4, Μουτεβελίδης Ιωάννης-Παναγιώτης 5,
Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#
Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct
Μεθοδολογίες Παραγωγής Λογισµικού
Μεθοδολογίες Παραγωγής Λογισµικού Βασικά Γενικά Μοντέλα Μοντέλο καταρράκτη (waterfall model) Ξεχωριστές φάσεις καθορισµού απαιτήσεων και ανάπτυξης, επικύρωσης, εξέλιξης Εξελικτική ανάπτυξη (evolutionary
14 Πρότυπα Σχεδίασης συνέχεια
14 Πρότυπα Σχεδίασης συνέχεια Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Εαρινό εξάμηνο 2016 17 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Καλές πρακτικές δόμησης του κώδικα 2 Πρότυπο σχεδίασης
1. Οι Τεχνολογίες της Πληροφορίας και των Επικοινωνιών στην εκπαιδευτική διαδικασία
1. Οι Τεχνολογίες της Πληροφορίας και των Επικοινωνιών στην εκπαιδευτική διαδικασία Ο διδακτικός σχεδιασμός (instructional design) εμφανίσθηκε στην εκπαιδευτική διαδικασία και στην κατάρτιση την περίοδο
ΠΕΡΙΕΧΟΜΕΝΑ. Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων
ΠΕΡΙΕΧΟΜΕΝΑ Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων Εισαγωγή Η χρήση των μεταβλητών με δείκτες στην άλγεβρα είναι ένας ιδιαίτερα
Αντικείμενα, συμπεριφορές, γεγονότα
Αντικείμενα, συμπεριφορές, γεγονότα O προγραμματισμός αποτελεί ένα τρόπο επίλυσης προβλημάτων κατά τον οποίο συνθέτουμε μια ακολουθία εντολών με σκοπό την επίτευξη συγκεκριμένων στόχων. Ας ξεκινήσουμε
ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ
ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ 1. ΓΕΝΙΚΑ ΣΧΟΛΗ Σ.Τ.ΕΦ. Α.Ε.Ι. ΠΕΙΡΑΙΑ Τ.Τ. ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΑΥΤΟΜΑΤΙΣΜΟΥ ΤΕ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ 2201203 ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ Β ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
06 Αντικειμενοστρεφής ανάλυση και σχεδιασμός
06 Αντικειμενοστρεφής ανάλυση και σχεδιασμός Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Εαρινό εξάμηνο 2016 17 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Αφαίρεση Abstraction "Η εννοιολογική
Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων
Δομές Δεδομένων Ενότητα 1 - Εισαγωγή Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Αντικείμενο μαθήματος Δομές Δεδομένων (ΔΔ): Στην επιστήμη υπολογιστών
Σχεδιασμός Οικολογικού Διαμεσολαβητή για την εποπτεία και διαχείριση δικτύου διανομής ηλεκτρικής ενέργειας
Σχεδιασμός Οικολογικού Διαμεσολαβητή για την εποπτεία και διαχείριση δικτύου διανομής ηλεκτρικής ενέργειας Σωτηρία Δριβάλου Εθνικό Μετσόβιο Πολυτεχνείο Μονάδα Εργονομίας Συστήματα διανομής ηλεκτρικής ενέργειας
Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων
Βάσεις Δεδομένων Επαγγελματικού Λυκείου Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων Εισηγητής Δελησταύρου Κωνσταντίνος Καθηγητής Πληροφορικής ΠΕ20 Μηχανικός Πληροφορικής Τ.Ε. M.Sc. στα Συστήματα Υπολογιστών Περιεχόμενα
Εισαγωγή στη δομή επιλογής στο προγραμματιστικό περιβάλλον SCRATCH.
Εισαγωγή στη δομή επιλογής στο προγραμματιστικό περιβάλλον SCRATCH. Βέλτιστο Σενάριο Γνωστικό αντικείμενο: Πληροφορική Δημιουργός: ΠΗΝΕΛΟΠΗ ΚΟΥΤΡΟΥΜΠΗ ΙΝΣΤΙΤΟΥΤΟ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΠΟΛΙΤΙΚΗΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ,
J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου
J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,
ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ
ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ (1) ΓΕΝΙΚΑ ΣΧΟΛΗ ΠΟΛΥΤΕΧΝΙΚΗ ΤΜΗΜΑ Μηχανικών Οικονομίας και Διοίκησης ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ ΓΕ0145 ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ 4ο ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ Εργαστήριο Προγράμματος
Bridge (Γέφυρα) Πρότυπα Σχεδίασης
Πρότυπα Σχεδίασης Κατηγορία: Structural Σκοπός: Η αποσύνδεση µιας αφαίρεσης από την υλοποίησή της, ώστε να µπορούν να µεταβάλλονται ανεξάρτητα. Συνώνυµα: Handle/Body Design Patterns 1 2 Όταν µία αφαίρεση
TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ
TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAVIS-V1-2012 TRAVIS Λογισμικό Διαχείρισης Παραβάσεων Φωτοεπισήμανσης Το σύστημα διαχείρισης παραβάσεων φωτοεπισήμανσης