Εργαστήρια Τεχνολογίας Λογισµικού Κακαρόντζας Γιώργος Τµήµα Τεχν. Πληροφορικής & Τηλ/νιών ΤΕΙ Λάρισας. Εισαγωγή

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

Download "Εργαστήρια Τεχνολογίας Λογισµικού Κακαρόντζας Γιώργος Τµήµα Τεχν. Πληροφορικής & Τηλ/νιών ΤΕΙ Λάρισας. Εισαγωγή"

Transcript

1 Προς τους σπουδαστές Εισαγωγή Είναι φυσικό ότι ο τρόπος µε τον οποίο σχεδιάζουµε ένα σύστηµα, είναι άρρηκτα συνδεδεµένος µε την τεχνολογία που θα χρησιµοποιήσουµε για να το αναπτύξουµε. Έτσι από τα διαγράµµατα ροής προγράµµατος, περάσαµε µε την εµφάνιση του δοµηµένου προγραµµατισµού σε πιο προχωρηµένες τεχνικές παράστασης και σχεδίασης συστηµάτων που περιελάµβαναν πιο σύνθετες διαγραµµατικές τεχνικές για τον έλεγχο των πιο πολύπλοκων σύγχρονων συστηµάτων. Αυτές οι τεχνικές περιελάµβαναν λεξικά δεδοµένων, διαγράµµατα ροής δεδοµένων, πίνακες αποφάσεων κλπ. Σήµερα τα συστήµατα που αναπτύσσονται είναι σχεδόν στο σύνολό τους αντικειµενοστραφή. Και υπάρχει καλοί λόγοι γι αυτό: Το αντικειµενοστραφές λογισµικό είναι ευκολότερο στην αρχική του σύλληψη µια και τα αντικείµενα είναι εν µέρει οντότητες του υπαρκτού κόσµου του χώρου ανάπτυξης του λογισµικού (π.χ. σε ένα τραπεζικό σύστηµα θα υπάρχουν αντικείµενα όπως «Τραπεζικός Λογαριασµός», «Πελάτης» κλπ.). Το αντικειµενοστραφές λογισµικό είναι ευκολότερο στην εξέλιξή του. Ιδιαίτερα µε την χρήση των διασυνδέσεων (interfaces) δηλαδή µε την χρήση τύπων σε αντιδιαστολή µε την χρήση τάξεων (classes) δηλαδή υλοποίησης, µπορεί πράγµατι να επιτρέψει την εξέλιξη του λογισµικού µε πρωτοφανή ευκολία για την βιοµηχανία παραγωγής λογισµικού. Φυσικά αυτό δεν επιτυγχάνεται αυτόµατα µε την απλή χρήση των διασυνδέσεων, αλλά αυτές είναι µια καλή αρχή. Τα αντικείµενα αποτελούν την βάση για την κατασκευή των συστατικών (components) που αποτελούν τη βάση για το µεγάλο όραµα της βιοµηχανίας λογισµικού µια και θεωρητικά στο µέλλον θα µπορούµε να κατασκευάσουµε προγράµµατα µε την σύνθεση συστατικών προερχόµενα από διάφορες πηγές εκφράζοντας απλά τις επιθυµίες µας. Μην ανησυχείτε δεν χάσατε την επανάσταση, µια και τα συστατικά είναι εδώ (COM objects EJB1 [1] ) αλλά το όραµα δεν εκπληρώθηκε ακόµα. Υπάρχουν µεγάλα ανοικτά θέµατα τα οποία όµως χωρίς αµφιβολία θα λυθούν στα επόµενα χρόνια. Τα συστήµατα λογισµικού βασισµένα στα συστατικά είναι χωρίς αµφιβολία το µέλλον της πληροφορικής. Θα µπορούσαµε να συνεχίσουµε την απαρίθµηση των πλεονεκτηµάτων των αντικειµενοστραφών συστηµάτων για πολύ ακόµα. Προκύπτει λοιπόν το άµεσο ερώτηµα πως σχεδιάζουµε αντικειµενοστραφή συστήµατα, πως µοντελοποιούµε αντικειµενοστραφή συστήµατα και φυσικά πως προγραµµατίζουµε αντικειµενοστραφή συστήµατα

2 Στις σηµειώσεις αυτές θα προσπαθήσουµε να απαντήσουµε σε αυτά τα ερωτήµατα µέσα από ασκήσεις µοντελοποίησης και προγραµµατισµού που θα είναι σύντοµες (αναγκαστικά λόγω της εργαστηριακής φύσης του µαθήµατος) αλλά, θέλουµε να πιστεύουµε, ενδιαφέρουσες και διαφωτιστικές. Λίγα λόγια για την δομή των μαθημάτων Τα εργαστήρια θα είναι δοµηµένα σε τρία µέρη ως εξής: 1. Παρουσίαση: Ανάπτυξη του θέµατος του εργαστηρίου µε παραδείγµατα 2. Εφαρµογή: Ανάπτυξη από τους µαθητές µε την καθοδήγηση των εκπαιδευτικών κάποιων δοθέντων µοντέλων ή/και προγραµµάτων. 3. Εκπόνηση άσκησης: Ανάπτυξη από τους σπουδαστές ασκήσεων των οποίων θα δίνεται η εκφώνηση και θα βασίζονται στη παρουσίαση και στην εφαρµογή που προηγήθηκε. Εξαίρεση στα παραπάνω θα αποτελέσει το εργαστήριο 7 στο οποίο θα δοθεί έµφαση σε µια εκτενέστερη σχεδίαση κάποιου µικρού συστήµατος βασισµένο στις διαγραµµατικές τεχνικές που θα έχουµε συζητήσει στα προηγούµενα µαθήµατα, έτσι ώστε να δοθεί µια πληρέστερη εικόνα αυτών των τεχνικών Αξιολόγηση Αξιολόγηση παρακολούθησης εργαστηρίων Σε κάθε εργαστήριο όπως αναφέρθηκε ήδη οι σπουδαστές θα προσπαθούν να εκπονήσουν µια άσκηση βασισµένη στα όσα προηγήθηκαν (παρουσίαση και εφαρµογή). Οι λύσεις αυτών των ασκήσεων (µοντέλα, προγράµµατα κλπ) θα επιθεωρούνται στο τέλος του εργαστηρίου από τους εκπαιδευτικούς και θα αξιολογούνται. Με βάση την αξιολόγηση αυτή ο φοιτητής θα παίρνει και ένα βαθµό στην κλίµακα 1-10 Αν κάποιος φοιτητής συγκεντρώσει τρεις βαθµούς κάτω από την βάση (το 5.0) δεν θα έχει δικαίωµα παράδοσης τελικού έργου. Αξιολόγηση τελικού έργου (project) Το τελικό έργο θα είναι ένα περισσότερο εκτενές σύστηµα το οποίο θα κληθούν να αναπτύξουν οι σπουδαστές σε οµάδες των τριών ατόµων. Το σύστηµα θα πρέπει να παρουσιαστεί στο τέλος από τους σπουδαστές και να εξεταστεί προφορικά. Τελικό - 2 -

3 έργο µπορούν να παραδώσουν µόνο οι σπουδαστές που δεν απορρίφθηκαν από την διαδικασία αξιολόγησης των εργαστηρίων (βλ. προηγούµενη παράγραφο). Από την διαδικασία της αξιολόγησης του τελικού έργου επίσης θα δοθεί ένας βαθµός στον σπουδαστή. Ο συνδυασµός της επίδοσης του σπουδαστή στα εργαστήρια και στο τελικό έργο θα αποτελέσει τη βάση για τον τελικό βαθµό του σπουδαστή στο εργαστήριο της τεχνολογίας λογισµικού

4 1. Παρουσίαση Εργαστήριο 1: Εργαλεία Μοντελοποίησης Αρχικά θα πρέπει να εξοικειωθούµε µε την έννοια του εργαλείου ανάπτυξης λογισµικού. Θα δούµε ποιες δυνατότητες προσφέρουν τα σύγχρονα εργαλεία ανάπτυξης λογισµικού και θα αρχίσουµε τη γνωριµία µας µε το Rational Rose (Demo Edition 4.0.3) που θα χρησιµοποιήσουµε στα εργαστήρια. Δυνατότητες που παρέχουν τα εργαλεία ανάπτυξης λογισμικού Τα σηµερινά εργαλεία ανάπτυξης λογισµικού, παρέχουν τις ακόλουθες δυνατότητες: 1. Μοντελοποίησης (modeling) : Χρησιµοποιούµε τα σχεδιαστικά εργαλεία που παρέχονται από το εργαλείο ανάπτυξης για την ανάπτυξη του µοντέλου (που είναι ένα σύνολο διαγραµµάτων και προδιαγραφών) που παριστάνει το χώρο ανάπτυξης και το λογισµικό που τελικά θα αναπτυχθεί 2. Ελέγχου (consistency checking): Το εργαλείο ελέγχει τις εισόδους στα διάφορα διαγράµµατα για το αν είναι συνεπείς (consistent) µεταξύ τους. Για παράδειγµα όπως θα δούµε σε ένα διάγραµµα ακολουθίας (sequence diagram) δεν µπορείτε ξαφνικά να εµφανίσετε µια τάξη που δεν έχετε δηλώσει σε ένα διάγραµµα τάξεων. 3. Παραγωγής κώδικα (code generation): Τα περισσότερα εργαλεία παρέχουν δυνατότητες παραγωγής κώδικα. Μερικά από αυτά σε πολλές γλώσσες προγραµµατισµού (για παράδειγµα το Rational Rose στη πλήρη έκδοσή του υποστηρίζει παραγωγή κώδικα σε Java, C++, Visual Basic). Φυσικά ο κώδικας δεν είναι τελειωµένος. Αλλά το καλούπι που θα παραχθεί είναι µια καλή αρχή. 4. Αντίστροφη ανάπτυξη (reverse engineering): Μια επίσης σηµαντική δυνατότητα είναι η δυνατότητα να παραχθούν τα διαγράµµατα από την ανάλυση υπάρχοντος κώδικα. Αυτό είναι σηµαντικό µια και µπορεί κανείς να αρχίσει να αναλύει παλιό κώδικα µε στόχο την αναθεώρησή του, αλλά και να επιβεβαιώνει την συνέπεια του κώδικα που παράγεται µε βάση τα διαγράµµατα που έγιναν. Αυτή η δυνατότητα ονοµάζεται αντίστροφη ανάπτυξη σε αντιδιαστολή µε τη φυσιολογική πορεία που είναι η µοντελοποίηση και στη συνέχεια η παραγωγή κώδικα. 5. Κυκλική ανάπτυξη (round-trip engineering): Πολλά εργαλεία µας δίνουν τη δυνατότητα να αναπτύξουµε κάποια διαγράµµατα και στη συνέχεια να - 4 -

5 παράγουµε αυτόµατα κώδικα γι αυτά. Στη συνέχεια µπορούµε να εµπλουτίσουµε το κώδικα προσθέτοντας κάποια πράγµατα σε αυτόν µε ένα εκδότη κειµένου ή µε το Περιβάλλον Ανάπτυξης (IDE) που χρησιµοποιούµε. Το εργαλείο είναι σε θέση να εµπλουτίσει αυτόµατα τα διαγράµµατα από τον νέο εµπλουτισµένο κώδικα. Αυτό µπορεί να γίνεται συνεχώς κατά τη διάρκεια ανάπτυξης. Αυτή η τεχνική της κυκλικής ανάπτυξης (σχέδιο κώδικας σχέδιο κώδικας κτλ.) είναι απαραίτητη στην ανάπτυξη του κώδικα που όπως θα δούµε και στη θεωρία είναι επαναληπτική (iterative) και αυξητική (incremental). ηλαδή, η ανάπτυξη του κώδικα δεν αφήνεται για το τέλος, γιατί τότε αν έχουν γίνει λάθη στη σχεδίαση θα είναι αργά για να διορθωθούν. Σχεδιάζουµε λίγο, κωδικοποιούµε λίγο, τεστάρουµε λίγο κ.ο.κ. Αυτό υποστηρίζεται από τα σύγχρονα εργαλεία ανάπτυξης λογισµικού µέσω της κυκλικής ανάπτυξης (round-trip engineering) που παρέχουν. 6. Οµαδική ανάπτυξη (group development): Οποιοδήποτε σηµαντικό έργο λογισµικού απαιτεί την ταυτόχρονη συνεργασία πολλών προγραµµατιστώναναλυτών. Τα σύγχρονα εργαλεία παρέχουν µηχανισµούς για να διευκολύνουν και να κάνουν το διαχωρισµό του έργου σε οµάδες εύκολο και φυσικό. Γνωριμία με το Rational Rose Στο εργαστήριο θα χρησιµοποιήσουµε τη demo έκδοση του Rational Rose 4. To Rose της εταιρείας Rational2 [1], είναι, ίσως το σηµαντικότερο παγκοσµίως εργαλείο ανάπτυξης λογισµικού. Στη πλήρη του µορφή το Rose µπορεί να χρησιµοποιηθεί και χρησιµοποιείται από χιλιάδες εταιρείες παγκοσµίως για την ανάπτυξη πολύπλοκων έργων λογισµικού σε διάφορες γλώσσες προγραµµατισµού. Η Rational για την προώθησή του παρέχει τη demo έκδοση δωρεάν. Αυτή η έκδοση µπορεί να χρησιµοποιηθεί µόνο σε συνδυασµό µε τη C++ (code generation, reverse και round-trip engineering) και περιορίζεται στον αριθµό των τάξεων (30 classes), λογικών πακέτων (3 logical packages), περιπτώσεων χρήσης (10 use cases), ενοτήτων (30 modules), πακέτων συστατικών (3 component packages) και διαγραµµάτων κατάστασης (10 state charts). Οι όροι αυτοί δεν σας είναι ακόµα γνωστοί τουλάχιστον όχι στα πλαίσια του Rose θα συζητηθούν όµως εκτενέστερα στα επόµενα. Για να ξεκινήσετε το Rose κάντε κλικ στο πλήκτρο «Start» και στη συνέχεια πάτε στο µενού «Programs». Από το υποµενού «Rational Rose C++ Demo 4» επιλέξτε το πρόγραµµα «Rational Rose C++ Demo 4». Εµφανίζεται το κύριο παράθυρο του Rose που έχει τα βασικά συστατικά που δείχνει ο ακόλουθος πίνακας: - 5 -

6 Συστατικό Περιγραφή Η γραµµή επιλογών: Από αυτή επιλέγετε βασικές λειτουργίες όπως η αποθήκευση του µοντέλου από την επιλογή File Save ή Save As κατ αναλογία και µε τα άλλα προγράµµατα που γνωρίζετε Η βασική γραµµή εργαλείων: Προσφέρει συντοµεύσεις για την εκτέλεση των περισσοτέρων επιλογών Η γραµµή εργαλείων διαγράµµατος: Από αυτή τη γραµµή θα επιλέγουµε εργαλεία για την σχεδίαση των διαγραµµάτων µας. Αυτή η γραµµή θα αλλάζει ανάλογα µε το είδος του διαγράµµατος που θα σχεδιάζουµε στο ενεργό παράθυρο σχεδίασης κάθε φορά. Επειδή αρχικά σχεδιάζουµε ένα διάγραµµα κλάσεων (class diagram) η γραµµή εργαλείων περιέχει εργαλεία για τη σχεδίαση µιας νέας κλάσης, συσχέτισης κ.λ.π. Παράθυρο σχεδίασης: Αρχικά έχουµε ένα παράθυρο σχεδίασης στο οποίο µπορούµε να ξεκινήσουµε το διάγραµµά µας. Περιοχή πλοήγησης: Από αυτή τη περιοχή µπορούµε να επιλέξουµε την όψη του µοντέλου µας και πιο συγκεκριµένα πιο διάγραµµα θέλουµε να δούµε ή να σχεδιάσουµε σε αυτή την όψη. 2. Εφαρμογή Οι δυνατότητες του Rose Σε αυτό το εδάφιο θα κάνουµε ένα γρήγορο πέρασµα στον τρόπο που το Rose υποστηρίζει τις δυνατότητες που αναφέραµε στο εδάφιο «υνατότητες που παρέχουν τα εργαλεία ανάπτυξης λογισµικού». Μοντελοποίηση (Modeling) Ο πρώτος λόγος χρήσης ενός εργαλείου όπως το Rose, είναι η σχεδίαση διαγραµµάτων. Τα διαγράµµατα αποτυπώνουν τις οντότητες και τη συµπεριφορά του συστήµατος που αναπτύσσεται και δίνουν τη πρώτη ύλη στους κατασκευαστές του συστήµατος για την συζήτηση και το συλλογισµό πάνω σε αυτό. Σαν ένα πρώτο πολύ απλό παράδειγµα ενός διαγράµµατος θα κατασκευάσουµε ένα διάγραµµα τάξεων µε µία τάξη τη Person που έστω ότι παριστάνει ένα άτοµο στο σύστηµά µας. Η τάξη Person θα έχει µια ιδιότητα, την ιδιότητα name η οποία θα είναι - 6 -

7 το όνοµα του ατόµου. Η ιδιότητα αυτή θα είναι τύπου char*. Επίσης θα προσθέσουµε και µια µέθοδο στο Person την µέθοδο isnamed που θα είναι τύπου int. Για να κάνετε το διάγραµµα της τάξης από τη γραµµή των σχεδιαστικών εργαλείων επιλέξτε το εργαλείο class ( ). Με επιλεγµένο το εργαλείο της τάξης κάντε ένα αριστερό κλικ στο παράθυρο σχεδίασης. Αµέσως θα εµφανιστεί στη περιοχή σχεδίασης µια κενή τάξη µε τρία άδεια διαµερίσµατα. Στο πάνω διαµέρισµα θα γράψουµε το όνοµα της τάξης. Στο µεσαίο τις ιδιότητες (στη περίπτωσή µας µόνο µια την ιδιότητα name). Στο τρίτο διαµέρισµα γράφουµε τις µεθόδους της τάξης (επίσης µόνο µια στο παράδειγµά µας: η µέθοδος isnamed). Για να γράψετε το όνοµα της τάξης κάντε ένα αριστερό κλικ στη περιοχή του πάνω διαµερίσµατος. Αµέσως βγαίνει ο δροµέας που σας επιτρέπει να γράψετε το όνοµα. Γράψτε το όνοµα Person (δώστε σηµασία στα κεφαλαία και στα πεζά όπως ξέρετε η C++ είναι case-sensitive). Αφού γράψετε το όνοµα κάντε αριστερό κλικ οπουδήποτε στη περιοχή σχεδίασης για να βγείτε από την κατάσταση έκδοσης του ονόµατος. Για να δούµε το παράθυρο προδιαγραφής της τάξης απ όπου θα δώσουµε τα υπόλοιπα στοιχεία κάντε διπλό κλικ πάνω στο σύµβολο της κλάσης ή δεξί κλικ και στη συνέχεια επιλέξτε «Specification» από το µενού που θα εµφανιστεί. Έτσι θα εµφανιστεί το πλαίσιο διαλόγου µε τίτλο «Class specification for Person» που θα είναι όπως φαίνεται στην ακόλουθη εικόνα: Για να δώσετε µια νέα ιδιότητα (attribute) στην τάξη κάντε κλικ στη καρτέλα «Attributes» (ιδιότητες). Στη καρτέλα που θα εµφανιστεί κάντε δεξί κλικ στη περιοχή εµφάνισης των ιδιοτήτων της τάξης η οποία τώρα είναι κενή αφού δεν έχουµε καµιά ιδιότητα ακόµα. Από το µενού που θα εµφανιστεί επιλέξτε «Insert» (Εισαγωγή). Θα εµφανιστεί µια νέα ιδιότητα. Στη στήλη Name αφήστε το εξ ορισµού όνοµα name µια και είναι αυτό που θέλουµε. Στη στήλη Type - 7 -

8 κάντε αριστερό κλικ δυο φορές στον κενό χώρο δίπλα από τη λέξη Person. Γράψτε char* για τον τύπο της νέας ιδιότητας. Στη συνέχεια κάντε κλικ στη καρτέλα Operations (θα χρησιµοποιήσουµε τον όρο Μέθοδοι σαν απόδοση της αγγλικής λέξης operations) για να προσθέσετε µια νέα µέθοδο στη τάξη. Στο κενό χώρο κάντε και πάλι δεξί κλικ και από το µενού που θα εµφανιστεί επιλέξτε «Insert». Θα εµφανιστεί µια καινούργια µέθοδος µε το όνοµα opname. Κάντε κλικ πάνω στο όνοµα δυο φορές και αλλάξτε το σε isnamed. Στον τύπο που θα επιστρέφει η µέθοδος (return type) κάντε ξανά κλικ δυο φορές και γράψτε int. Τώρα η τάξη θα πρέπει να φαίνεται όπως δείχνει και η ακόλουθη εικόνα: Αν δεν βλέπετε την πλήρη δήλωση της µεθόδου κάντε δεξί κλικ πάνω στη τάξη και από το µενού που θα εµφανιστεί τσεκάρετε την επιλογή «Show operation signature» (εµφάνισε τη δήλωση (υπογραφή) της τάξης). Θα πρέπει να πούµε ότι αν δεν ορίσετε κάτι διαφορετικό εξ ορισµού οι ιδιότητες της τάξης θα είναι ιδιωτικές (private) στη τάξη και αυτό συµβολίζει και το σύµβολο του λουκέτου µπροστά από την ιδιότητα, ενώ οι µέθοδοι θα είναι δηµόσιες (public) και γι αυτό και δεν υπάρχει µπροστά τους λουκέτο. Αποθηκεύστε την µέχρι τώρα δουλειά σας στο αρχείο Person.mdl στο φάκελο c:\stlabs\lab1. Σχεδιαστική αρχή: Απόκρυψη εδοµένων (Data Hiding) Αυτή είναι µια από τις πολλές σχεδιαστικές αρχές (design principles) της αντικειµενοστραφούς ανάπτυξης λογισµικού που κληρονοµείται από τους Αφηρηµένους Τύπους εδοµένων (Abstract Data Types). Ο λόγος που πρέπει τα δεδοµένα να είναι ιδιωτικά είναι η δυνατότητα που παρέχεται στην αποδέσµευση της εσωτερικής παράστασης των δεδοµένων από την χρήση τους. Για να γίνει αυτό κατανοητό φανταστείτε ότι έχουµε µια τάξη Date για τις ηµεροµηνίες. Θα µπορούσε η Date εσωτερικά να παριστάνει την ηµεροµηνία σαν ένα αριθµό, την απόσταση από κάποια ηµεροµηνία (π.χ. την 1/1/1900). Ο χρήστης θα µπορούσε να θέτει την ηµεροµηνία µε µια µέθοδο setdate που θα έπαιρνε σαν παράµετρο ένα string της µορφής «10/10/2000». Η µέθοδος setdate θα µετέφραζε στη συνέχεια αυτό το string στον αριθµό που αντιστοιχεί σε αυτή και που είναι η απόσταση από την 1/1/1900. Αργότερα ο χρήστης θα µπορούσε να καλέσει την getdate που θα επέστρεφε την ηµεροµηνία πάλι µε µορφή string αφού την υπολόγιζε από τον αριθµό που την παριστάνει µέσα στην κλάση. Τα πλεονεκτήµατα είναι πολλά: - 8 -

9 Αν αλλάξουµε την εσωτερική παράσταση των δεδοµένων τα προγράµµατα που χρησιµοποιούσαν την Date δεν χρειάζεται να αλλάξουν. Αρκεί οι µέθοδοι getdate και setdate να µείνουν ίδιες. Η setdate όπως και όλες οι setxxx µέθοδοι παρέχουν ένα φυσικό χώρο για τον έλεγχο της ορθότητας των δεδοµένων που δίνονται από τον χρήστη της τάξης. Φανταστείτε για παράδειγµα να έδινε κάποιος µια ηµεροµηνία που δεν είναι έγκυρη (π.χ. 31/2/2000), η setdate θα µπορούσε να ελέγξει την ηµεροµηνία πριν τη θέσει και να µην την θέσει αν δεν είναι έγκυρη. Αυτό εγγυάται ότι η τάξη µας θα έχει πάντοτε συνεπείς τιµές (consistent state). Αν έχει γίνει κάποια λάθος υπόθεση στη µορφή της εσωτερικής παράστασης αυτή µπορεί να διορθωθεί χωρίς να χρειαστεί να διορθωθούν και τα προγράµµατα που χρησιµοποιούν τον τύπο. Σκεφτείτε πόσο πιο απλή θα ήταν η διόρθωση του «Λάθους του 2000», αν το λάθος περιορίζονταν µόνο στην εσωτερική παράσταση ενός και µόνο αριθµού σε µια και µόνο τάξη! Παραγωγή κώδικα (code generation) Για να παράγουµε τον C++ κώδικα που αντιστοιχεί σε αυτή τη τάξη θα πρέπει απλά να κάνουµε την επιλογή από ένα µενού. Πριν από αυτό όµως ας κάνουµε ορισµένες ρυθµίσεις σε ότι αφορά την παραγωγή του κώδικα. Από το µενού Tools επιλέξτε την επιλογή Options και στη συνέχεια από το πλαίσιο διαλόγου που θα εµφανιστεί κάντε κλικ στη καρτέλα cg (code generation). Η καρτέλα cg περιέχει όλες εκείνες τις τιµές που επηρεάζουν τη παραγωγή του κώδικα. Καταρχάς ας ρυθµίσουµε το φάκελο στον οποίο θα τοποθετηθεί το πηγαίο αρχείο (.cpp) και το header (.h) αρχείο µε τις δηλώσεις της κλάσης. Από το πλαίσιο λίστας «Type» επιλέξτε «Project». Στη συνέχεια στο «Properties» βρείτε την επιλογή «Directory» και αλλάξτε την σε «c:\stlabs\lab1» Στη συνέχεια για να αποφύγουµε την παραγωγή Αντιγραφέα Κατασκευαστή (copy constructor), Τελεστή Καταχώρησης (assignment operator) και Τελεστή Ελέγχου Ισότητας (equality operator) κάντε τα εξής: Επιλέξτε από το πλαίσιο λίστας «Type» την επιλογή «Class» και στη συνέχεια δώστε την τιµή «DoNotDeclare» στις ακόλουθες ιδιότητες: Generate Copy Constructor, Generate Assignment Operator, και Generate Equality Operator Σηµείωση Υλοποίησης: Ιδίωµα ορθόδοξης κανονικής µορφής (The orthodox canonical form idiom) Ο James Coplien στο βιβλίο του «Advanced C++: Programming styles and idioms»3 [2] αναφέρει ότι µια τάξη της C++ θα πρέπει να έχει τα ακόλουθα για να είναι µια τάξη που ακολουθεί το ιδίωµα της ορθόδοξης κανονικής µορφής: Ένα εξ ορισµού κατασκευαστή (default constructor) X::X() - 9 -

10 Ένα αντιγραφέα κατασκευαστή (copy constructor) X::X(const X&) Ένα τελεστή καταχώρησης (assignment operator) X& operator=(const X&), και Ένα καταστροφέα (destructor) X::~X() O Coplien αναφέρει ότι το ιδίωµα αυτό θα πρέπει να χρησιµοποιείται όταν: Θέλουµε να υποστηρίξουµε την καταχώρηση των αντικειµένων αυτής της τάξης ή θέλουµε να µπορούµε να περάσουµε αντικείµενα αυτής της τάξης σαν παραµέτρους µε αντιγραφή (pass by value) σε µεθόδους Θέλουµε να µπορούν τα αντικείµενα αυτής της τάξης να απελευθερώσουν αναφορές που τυχόν κρατάνε σε άλλα αντικείµενα άλλων τάξεων που προσµετρώνται (reference counted) ή να απελευθερώσουν µνήµη που δεσµεύτηκε για δικές τους ιδιότητες, λίγο πριν καταστραφούν Επειδή τα παραπάνω είναι επιθυµητά για όλες τις τάξεις, λογικά όλες οι τάξεις θα πρέπει να ακολουθούνε το ιδίωµα της ορθόδοξης κανονικής µορφής στη C++. Γι αυτό το λόγο και το Rose παράγει τα παραπάνω εξ ορισµού. Εµείς παρόλα αυτά θέλουµε να κρατήσουµε το παράδειγµά µας απλό και γι αυτό απενεργοποιήσαµε τη παραγωγή του αντιγραφέα κατασκευαστή και του τελεστή καταχώρησης καθώς επίσης και του τελεστή σύγκρισης για ισότητα. Κρατήσαµε όµως τον εξ ορισµού κατασκευαστή και τον καταστροφέα που θα παραχθούν, όπως θα δούµε. Για να προχωρήσουµε τώρα στη παραγωγή του κώδικα επιλέξτε τη τάξη κάνοντας αριστερό κλικ πάνω της και στη συνέχεια από το µενού Tools και το υποµενού C++ επιλέξτε «Code Generation» (παραγωγή κώδικα). Το αποτέλεσµα της παραγωγής του κώδικα θα είναι δυο αρχεία στον κατάλογο c:\stlabs\lab1: 1. Το πρώτο αρχείο είναι το Person.h που περιέχει την δήλωση της τάξης καθώς επίσης και τους ορισµούς των ιδιοτήτων και τις δηλώσεις των µεθόδων. Επίσης για την ιδιότητα name που δηλώσαµε το Rose παράγει και δυο ιδιωτικές µεθόδους set_name και get_name. Αυτές τις µεθόδους πρέπει να τις κάνουµε δηµόσιες αν θέλουµε να έχουν πρόσβαση οι χρήστες µας απευθείας στην ιδιότητα name. Ο καθαρός κώδικας (αν εξαιρέσουµε τα πλούσια σχόλια που παράγει το Rose) είναι ο ακόλουθος: #ifndef Person_h #define Person_h

11 class Person { public: Person(); ~Person(); int isnamed(); protected: private: const char* get_name() const; void set_name(char*const value); private: //## implementation char* name; ; // Class Person inline const char* Person::get_name() const { return name; inline void Person::set_name(char*const value) { name = value; #endif 2. Το δεύτερο αρχείο είναι το Person.cpp που περιέχει τον κενό κατασκευαστή και καταστροφέα καθώς και όλες τις µεθόδους που έχουµε δηλώσει (στη περίπτωσή µας µόνο την isnamed). Πάλι χωρίς τα σχόλια το αρχείο Person.cpp περιέχει τα ακόλουθα:

12 #include "Person.h" Person::Person() { Person::~Person() { int Person::isNamed() { 3. Άσκηση Σχεδιάστε µια τάξη για ένα γεωµετρικό σχήµα. Η τάξη σας θα πρέπει να λέγεται Shape. Η τάξη σας θα πρέπει να έχει τουλάχιστον τις ακόλουθες ιδιωτικές (private) ιδιότητες: int center (το κέντρο του σχήµατος), Color linecolor (το χρώµα γραµµής του σχήµατος), Color fillcolor (το γέµισµα του σχήµατος). Επίσης θα πρέπει να έχει την µοναδική µέθοδο: public void draw(). Επίσης σχεδιάστε µια τάξη Color. Μην προσδιορίσετε ιδιότητες ή µεθόδους γι αυτή τη τάξη. Στην συνέχεια παράγετε κώδικα C++ για τις τάξεις που σχεδιάσατε. Ο κώδικας θα πρέπει να εξαχθεί στον κατάλογο c:\stlabs\lab1. Επίσης θα πρέπει να φροντίσετε ώστε να µην εξαχθούν από την διαδικασία παραγωγής κώδικα τα εξής: Αντιγραφέας Κατασκευαστής (copy constructor), Τελεστής Καταχώρησης (assignment operator) και Τελεστής Ελέγχου Ισότητας (equality operator)

13 Εργαστήριο 2: Περιπτώσεις Χρήσης 1. Παρουσίαση Τι είναι η μοντελοποίηση με περιπτώσεις χρήσης; Μοντέλο περιπτώσεων χρήσης: µία άποψη του συστήµατος που αποδίδει έµφαση στην λειτουργικότητα ενός συστήµατος, όπως αυτή είναι ορατή από τους εξωτερικούς χρήστες του συστήµατος. Μια περίπτωση χρήσης διαµερίζει την λειτουργικότητα ενός συστήµατος σε συναλλαγές («περιπτώσεις χρήσης») που έχουν νόηµα για τους χρήστες του συστήµατος («ρόλους»). Ο ακόλουθος πίνακας συνοψίζει τις βασικές έννοιες που συναντάµε σε ένα διάγραµµα περιπτώσεων χρήσης. ΚΑΤΑΣΚΕΥΗ ΠΕΡΙΓΡΑΦΗ ΣΥΝΤΑΚΤΙΚΟ Περίπτωση χρήσης Μία ακολουθία ενεργειών, συµπεριλαµβανοµένων και των παραλλαγών τους, που µπορεί να επιτελέσει ένα σύστηµα σε αλληλεπίδραση µε τους ρόλους που υπάρχουν στο σύστηµα αυτό Ρόλος Ένας ρόλος είναι ένας ρόλος που µπορεί να παίξει ένας χρήστης του συστήµατος όταν αλληλεπιδρά µε τις περιπτώσεις χρήσης του συστήµατος Συσχέτιση ηλώνει την συµµετοχή ενός ρόλου σε µια περίπτωση χρήσης Επέκταση Γενίκευση Η σχέση µιας επεκταµένης και µιας περίπτωσης χρήσης βάσης, που προσδιορίζει πως θα γίνει αυτή η επέκταση (τα σηµεία επέκτασης. Μια συσχέτιση µιας πιο γενικής περίπτωσης χρήσης µε µια πιο ειδική περίπτωση χρήσης

14 Περιεκτικότητα Μία τέτοια συσχέτιση δείχνει ότι µια περίπτωση χρήσης περιλαµβάνει τις λειτουργίες µιας άλλης περίπτωσης χρήσης. ηλαδή η λειτουργικότητα της περιλαµβανόµενης περίπτωσης χρήσης εισάγεται στην περίπτωση χρήσης βάσης. Διαγραμματικά στοιχεία Απεικονίζει τις περιπτώσεις χρήσης, τους ρόλους και τις συσχετίσεις µεταξύ τους Η εσωτερική λειτουργία κάθε περίπτωσης χρήσης µπορεί να περιγραφεί µε κείµενο ή να απεικονισθεί µε διαγράµµατα αλληλεπίδρασης Τα είδη που υπάρχουν δεν περιορίζονται µόνο στα διαγράµµατα αλλά µπορούµε να έχουµε και την περιγραφή µε κείµενο. Μερικά διαγράµµατα περιπτώσεων χρήσης είναι τα ακόλουθα: Το ακόλουθο είναι ένα διάγραµµα που απεικονίζει ένα Πελάτη (Customer) που συνδιαλέγεται µε ένα σύστηµα αγοράς εξ αποστάσεως (µέσω τηλεφώνου ή και µέσω Internet). Ο πελάτης θέλει να µπορεί να ελέγξει την κατάσταση σε ότι αφορά ένα προϊόν (Check Status), να µπορεί να δώσει µια παραγγελία (Place Order) και να µπορεί να δώσει και να επιβεβαιώσει τα στοιχεία της πιστωτικής του κάρτας. Ο πωλητής (Salesperson υποθέτουµε ότι η εταιρεία πέρα από τηλεφωνικές πωλήσεις κάνει και άλλες πωλήσεις µέσω πωλητών) θέλει να µπορεί να κάνει τα ίδια που κάνει και ένας πελάτης µε την διαφορά ότι δεν χρειάζεται να δώσει τις λεπτοµέρειες της πιστωτικής του κάρτας. Ο υπάλληλος αποστολής (Shipping Clerk) θέλει να µπορεί να εκδώσεις τις παραγγελίες (Fill Orders), και τέλος ο Επόπτης (Supervisor) θέλει να µπορεί να εξετάσει την πιστωτική εικόνα των πελατών (Establish Credit)

15 Το ακόλουθο είναι ένα παράδειγµα των σχέσεων περιεκτικότητας («includes») και επέκτασης («extend»). Επίσης µπορούν να υπάρξουν και σχέσεις µεταξύ των ρόλων ενός διαγράµµατος περιπτώσεων χρήσης όπως δείχνει το ακόλουθο διάγραµµα: Ένα παράδειγµα περιγραφής µιας περίπτωσης χρήσης µε κείµενο είναι το ακόλουθο που περιγράφει µια περίπτωση χρήσης για την αλλαγή στοιχείων πτήσης ενός ταξιδιώτη: ΠΕΡΙΠΤΩΣΗ ΧΡΗΣΗΣ: ΑΛΛΑΓΗ ΣΤΟΙΧΕΙΩΝ ΠΤΗΣΗΣ Ρόλοι: ταξιδιώτης, λογαριασµός Β πελάτη, σύστηµα κράτησης θέσεων Προ-συνθήκες: Ο ταξιδιώτης συνδέθηκε µε το σύστηµα και επέλεξε την επιλογή «αλλαγής πτήσης» Βασικό σενάριο: Το σύστηµα ανακτά τον λογαριασµό του πελάτη από την Β

16 Το σύστημα ρωτά τον ταξιδιώτη να επιλέξει το τμήμα της πτήσης που θέλει να αλλάξει. Ο ταξιδιώτης επιλέγει το επιθυμητό τμήμα. Το σύστηµα ζητά νέα αναχώρηση και προορισµό. Ο ταξιδιώτης δίνει τις απαιτούµενες πληροφορίες Το σύστηµα παρουσιάζει περίληψη της συναλλαγής Εναλλακτικά σενάρια: Αν δεν υπάρχουν διαθέσιµες πτήσεις τότε Πότε πρέπει να χρησιμοποιείτε περιπτώσεις χρήσης Μοντελοποιείστε τις απαιτήσεις χρήσης του συστήµατος Μοντελοποιείστε σενάρια δοκιµών µε τις περιπτώσεις χρήσης Αν χρησιµοποιείτε µια µεθοδολογία ανάπτυξης καθοδηγούµενη από περιπτώσεις χρήσης: Ξεκινήστε µε περιπτώσεις χρήσης και παράγετε τα δοµικά και λειτουργικά µοντέλα από αυτές Αν δεν χρησιµοποιείτε µια µεθοδολογία ανάπτυξης καθοδηγούµενη από περιπτώσεις χρήσης: Επιβεβαιώστε ότι οι περιπτώσεις χρήσης είναι συνεπείς µε τα δοµικά και λειτουργικά µοντέλα. Συμβουλές μοντελοποίησης με περιπτώσεις χρήσης Εξασφαλίστε ότι κάθε περίπτωση χρήσης περιγράφει ένα σηµαντικό τµήµα της λειτουργικότητας του συστήµατος που είναι κατανοητό από τους ειδικούς του χώρους ανάπτυξης (domain experts) αλλά και από τους προγραµµατιστές. Όταν ορίζετε τις περιπτώσεις χρήσης µε κείµενο να είστε ακριβείς και συνεπείς µε τα ρήµατα και τα ουσιαστικά. Αυτό θα βοηθήσει στην παραγωγή των αντικειµένων και των διαγραµµάτων αλληλεπίδρασης αργότερα Εξάγετε τις περιπτώσεις χρήσης που απαιτούνται από άλλες περιπτώσεις χρήσης: o Αν η περίπτωση χρήσης που περιλαµβάνεται είναι υποχρεωτική χρησιµοποιείστε σχέση περιεκτικότητας («include»). o Αν η περίπτωση χρήσης βάσης είναι πλήρης και η χρήση της περιλαµβανόµενης περίπτωσης χρήσης προαιρετική χρησιµοποιείστε τη σχέση της επέκτασης («extend»). Ένα διάγραµµα περιπτώσεων χρήσης θα πρέπει: o Να περιέχει µόνο περιπτώσεις χρήσης που ανήκουν στο ίδιο επίπεδο αφαίρεσης o Να περιλαµβάνει µόνο ρόλους που απαιτούνται

17 Αν σε κάποιο έργο υπάρχουν πολλές περιπτώσεις χρήσης τότε αυτές θα πρέπει να οργανωθούν σε πακέτα. 2. Εφαρμογή Σε αυτό το σηµείο θα δούµε πως σχεδιάζουµε διαγράµµατα περιπτώσεων χρήσης µε το Rational Rose και πως εισάγουµε την τεκµηρίωση για τις περιπτώσεις χρήσης. Επίσης θα δούµε πως µπορούµε να εισάγουµε στερεότυπα συσχετίσεων (π.χ. το στερεότυπο «include»). Ρόλοι Για να δηµιουργήσετε ένα νέο ρόλο κάντε τα εξής: Κάντε δεξί κλικ στο «Use Case View» από το παράθυρο πλοήγησης Επιλέξετε την επιλογή «New:Actor» Αυτό θα δηµιουργήσει ένα νέο Ρόλο µε το όνοµα «New Class». Ενώ ο νέος ρόλος είναι επιλεγµένος εισάγετε το όνοµα του ρόλου. Στο παράθυρο τεκµηρίωσης «Documentation», εισάγετε την τεκµηρίωση του ρόλου (δηλαδή τι κάνει ο ρόλος στο διάγραµµα). Ακολουθώντας την παραπάνω διαδικασία, δηµιουργήσετε ένα ρόλο «Student» µε την τεκµηρίωση «A person registered to take classes at the University.». Το διάγραµµα σας θα πρέπει να έχει την ακόλουθη µορφή: ηµιουργήστε στη συνέχεια ένα δεύτερο ρόλο µε το όνοµα «Professor» και την τεκµηρίωση «A person certified to teach classes at the University.» Περιπτώσεις Χρήσης

18 Για να δηµιουργήσετε περιπτώσεις χρήσης κάνετε τα εξής: Κάντε δεξί κλικ στο «Use Case View» από το παράθυρο πλοήγησης Επιλέξετε την επιλογή «New:Use Case» Αυτό θα δηµιουργήσει µια νέα ανώνυµη περίπτωση χρήσης. Ενώ η νέα περίπτωση χρήσης είναι επιλεγµένη πληκτρολογείτε το όνοµά της. Στο παράθυρο τεκµηρίωσης «Documentation», εισάγετε την τεκµηρίωση της περίπτωσης χρήσης (δηλαδή ποιο σκοπό εκπληρώνει αυτή η περίπτωση χρήσης στο σύστηµα). ηµιουργήστε τις ακόλουθες περιπτώσεις χρήσης µε την τεκµηρίωση που δίνεται: Περίπτωση Χρήσης Register for Courses Select courses to teach - User Validation - Διάγραμμα Περιπτώσεων Χρήσης Τεκµηρίωση This use case provides the capability to select courses for a semester Ένα διάγραµµα περιπτώσεων χρήσης δείχνει τις συσχετίσεις µεταξύ των ρόλων και των περιπτώσεων χρήσης σε ένα σύστηµα. Η άποψη περιπτώσεων χρήσης (Use Case View) δηµιουργείται στο Rose αυτοµάτως µε ένα κύριο διάγραµµα (Main). Μπορείτε αν θέλετε να δηµιουργήσετε και άλλα διαγράµµατα σε ένα σύστηµα (π.χ. ένα διάγραµµα που να δείχνει όλες τις περιπτώσεις χρήσης για ένα ρόλο του συστήµατος). Για να ανοίξετε ένα διάγραµµα περιπτώσεων χρήσης: 1. Κάντε κλικ στο + δίπλα από τη φράση «Use Case View» στο παράθυρο πλοήγησης. 2. Κάντε διπλό κλικ στο διάγραµµα που θέλετε να ανοίξετε. 3. Μεγιστοποιείστε το παράθυρο του διαγράµµατος αν το επιθυµείτε Για να προσθέσετε ένα ρόλο ή µια περίπτωση χρήσης που έχετε προηγουµένως δηµιουργήσει στο διάγραµµα κάντε τα εξής: 1. Κάντε κλικ στη περιοχή πλοήγησης για να επιλέξετε το ρόλο ή την περίπτωση χρήσης από την περιοχή πλοήγησης 2. Σύρετε και αφήστε τον ρόλο ή την περίπτωση χρήσης στο διάγραµµα. Για να εισάγετε στο διάγραµµα Main τους ρόλους και τις περιπτώσεις χρήσης που δηµιουργήσατε στα προηγούµενα εδάφια, κάντε διπλό κλικ στο Main από την περιοχή πλοήγησης (αν δεν το βλέπετε κάντε κλικ στο + δίπλα από την άποψη Use Case View). Στη συνέχεια εφαρµόστε τα βήµατα που αναφέραµε προηγουµένως. Στο τέλος της εισαγωγής το διάγραµµα θα πρέπει να έχει την ακόλουθη µορφή που φαίνεται στην ακόλουθη εικόνα (µετακινήστε τα σύµβολα στις θέσεις που φαίνονται στην εικόνα):

19 Συσχετίσεις Για να συσχετίσετε τα σύµβολα (ρόλους και περιπτώσεις χρήσης µεταξύ τους) χρησιµοποιείτε το σύµβολο της συσχέτισης από την γραµµή εργαλείων που είναι το ακόλουθο σύµβολο ( προς το πέρας. ). Αφού το επιλέξετε σύρετε από την αρχή της συσχέτισης Συσχετίστε τον ρόλο «Student» µε την περίπτωση χρήσης «Register for Courses». Αυτό σηµαίνει ότι ο ρόλος Student (φοιτητής) χρησιµοποιεί και ωφελείται από την περίπτωση χρήσης «Register for Courses» («Εγγραφή σε Μαθήµατα»). Συσχετίστε τον ρόλο «Professor» µε την περίπτωση χρήσης «Select Courses to teach». Αυτό σηµαίνει ότι ο ρόλος «Professor» («Καθηγητής») χρησιµοποιεί και ωφελείται από την περίπτωση χρήσης «Select Courses to Teach» («Επιλογή Μαθηµάτων για ιδασκαλία»). Στην συνέχεια παρατηρούµε ότι για να αλληλεπιδράσει είτε ο φοιτητής είτε ο καθηγητής µε το σύστηµα θα πρέπει να γίνει πρώτα η «Επικύρωση του Χρήστη» («User Validation»). Επειδή αυτή η περίπτωση χρήσης περιλαµβάνεται και στις δυο άλλες περιπτώσεις χρήσης θα πρέπει να τραβήξετε γραµµές συσχέτισης από τις δυο άλλες περιπτώσεις χρήσης προς την περίπτωση χρήσης «User Validation». Στη συσχέτιση αυτή θα πρέπει να βάλετε το στερεότυπο «include». Ο τρόπος µε τον οποίο βάζετε το στερεότυπο είναι ο ακόλουθος:

20 1. Τραβήξτε τις γραµµές συσχέτισης από τις δύο άλλες περιπτώσεις χρήσης στην περίπτωση χρήσης «User Validation» 2. Κάντε διπλό κλικ στις γραµµές συσχέτισης που τραβήξατε για να εµφανιστεί το πλαίσιο διαλόγου προδιαγραφής για τη συσχέτιση 3. Πληκτρολογήστε στο combo box «Stereotype» την λέξη «include» 4. Πατήστε το «OK» για να κλείσετε το πλαίσιο διαλόγου προδιαγραφής 5. Όταν επιστρέψετε στο διάγραµµα (αν δεν βλέπετε το στερεότυπο που εισάγατε) κάντε δεξί κλικ στη γραµµή συσχέτισης και από το αναδυόµενο µενού επιλέξτε την επιλογή «Show Stereotype» («Εµφάνισε Στερεότυπο»). Στο τέλος της διαδικασίας θα πρέπει το διάγραµµα περιπτώσεων χρήσης να έχει την µορφή που δείχνει η ακόλουθη εικόνα :

21 3. Άσκηση ίνεται η ακόλουθη περιγραφή για ένα σύστηµα κράτησης θέσεων: Με το σύστηµα αλληλεπιδρούν ταξιδιώτες και ταξιδιωτικοί πράκτορες. Και οι δυο ενδιαφέρονται για την κράτηση θέσεων. Οι ταξιδιωτικοί πράκτορες έχουν µια εξειδικευµένη διαδικασία κράτησης θέσης µια και η κράτηση θέσης από ένα ταξιδιωτικό πράκτορα γίνεται µε διαφορετικό τρόπο. Και για τον ταξιδιωτικό πράκτορα και για τον απλό ταξιδιώτη η κράτηση θέσης συνεπάγεται την πληρωµή της πτήσης. Η πληρωµή µπορεί να γίνει είτε µια πιστωτική κάρτα, είτε µε µετρητά. Σκοπός της άσκησης είναι η δηµιουργία ενός διαγράµµατος περιπτώσεων χρήσης που προκύπτει από την περιγραφή. Θα πρέπει: Να δηµιουργήσετε τους κατάλληλους ρόλους και τις κατάλληλες περιπτώσεις χρήσης. Να δηµιουργήσετε τις κατάλληλες συσχετίσεις µεταξύ τους. Να διαπιστώσετε ποιες περιπτώσεις χρήσης χρησιµοποιούνται από άλλες περιπτώσεις χρήσης και να τις εξάγετε σαν διαφορετικές περιπτώσεις χρήσης συνδέοντάς τις µε τις άλλες περιπτώσεις χρήσης (που τις χρησιµοποιούν) µε συσχετίσεις τύπου «include». Να διαπιστώσετε ποιες περιπτώσεις χρήσης είναι ειδικές περιπτώσεις χρήσης άλλων περιπτώσεων χρήσης και να τις συνδέσετε µε τις περιπτώσεις χρήσης

22 βάσης µε γενικεύσεις χρησιµοποιώντας το εργαλείο «Generalization» από την γραµµή εργαλείων που είναι το ακόλουθο: ( )

23 Εργαστήριο 3: Διάγραμμα Τάξεων - Τα βασικά στοιχεία 1. Παρουσίαση Ορολογία Οι τάξεις (classes) αποτελούν την βάση της κατασκευής οποιουδήποτε αντικειµενοστραφούς συστήµατος. Ενσωµατώνουν (encapsulate) δεδοµένα και τις λειτουργίες που επενεργούν στα δεδοµένα αυτά. Από τις τάξεις δηµιουργούνται αντικείµενα (objects) ή περιστάσεις (instances) αυτών των τάξεων, όταν λειτουργεί το σύστηµα. Όπως θα δούµε σε επόµενα µαθήµατα αυτό που δίνει ζωή σε ένα σύστηµα είναι οι αλληλεπιδράσεις µεταξύ των αντικειµένων του. Αυτές οι αλληλεπιδράσεις σε επίπεδο σχεδίασης αποτυπώνονται συνήθως µε την χρήση διαγραµµάτων αλληλεπίδρασης (βλ. επόµενα). Σκοπός του διαγράµµατος τάξεων (class diagram) δεν είναι η απεικόνιση αυτών των αλληλεπιδράσεων, αλλά η απεικόνιση της στατικής δοµής του συστήµατος. Αυτή η δοµή συµπεριλαµβάνει: Τις τάξεις (classes) που περιέχουν: o Ιδιότητες (attributes) που είναι τα συνήθως ιδιωτικά δεδοµένα µιας τάξης (π.χ. το υπόλοιπο ενός τραπεζικού λογαριασµού) o Λειτουργίες (operations) που είναι οι συνήθως δηµόσιες λειτουργίες µιας τάξης που καλούν τα άλλα αντικείµενα. Τις σχέσεις (relationships) µεταξύ των τάξεων που περιλαµβάνουν: o Απλές συσχετίσεις (associations) που είναι µόνιµες σχέσεις µεταξύ των τάξεων. Για παράδειγµα µια τάξη Πελάτη µιας τράπεζας θα έχει µόνιµη συσχέτιση µε έναν ή περισσότερους Τραπεζικούς Λογαριασµούς. o Συσσωµατώσεις (aggregations) και Συνθέσεις (Compositions) που είναι ειδικές κατηγορίες συσχετίσεων µε µερικά επιπλέον σηµασιολογικά στοιχεία (semantics), και µε τις οποίες θα ασχοληθούµε σε επόµενο εργαστήριο. o Εξαρτήσεις (dependencies) που συνήθως εκφράζουν προσωρινές αλληλεπιδράσεις µεταξύ των αντικειµένων κάποιων τάξεων κατά τη διάρκεια εκτέλεσης ενός προγράµµατος. Για παράδειγµα το x αντικείµενο ATM µπορεί να αποστείλει το µήνυµα χρέωση στο y αντικείµενο Τραπεζικός Λογαριασµός. Αυτό σηµαίνει ότι η τάξη ATM έχει µια εξάρτηση από την τάξη Τραπεζικός Λογαριασµός. Και µε τις εξαρτήσεις θα ασχοληθούµε σε επόµενο µάθηµα. o Γενικεύσεις (generalizations) στις οποίες µια τάξη (η υποτάξη) που είναι περισσότερο ειδική υπό κάποια έννοια, κληρονοµεί από µια άλλη τάξη (την υπερτάξη) που υπό την ίδια έννοια είναι πιο γενική, τις

24 λειτουργίες και τα δεδοµένα της και επεκτείνει την λειτουργία της κατά κάποιο τρόπο. Βασικά Διαγραμματικά Στοιχεία Ο ακόλουθος πίνακας συνοψίζει τα βασικά διαγραµµατικά στοιχεία που συναντάµε σε ένα διάγραµµα τάξεων: ΚΑΤΑΣΚΕΥΗ ΠΕΡΙΓΡΑΦΗ ΠΑΡΑ ΕΙΓΜΑ ΣΥΝΤΑΞΗΣ Τάξη Αποτελεί την βάση της κατασκευής οποιουδήποτε αντικειµενοστραφούς συστήµατος. Ενσωµατώνει (encapsulate) δεδοµένα και τις λειτουργίες που επενεργούν στα δεδοµένα αυτά. Στο πάνω διαµέρισµα απεικονίζονται οι ιδιότητες και στο κάτω διαµέρισµα οι µέθοδοι Συσχέτιση Ρόλος Πολλαπλότητα Δυνατότητα Πλοήγησης Οι συσχετίσεις αναπαριστούν σχέσεις µεταξύ των περιστάσεων των τάξεων (Ένας άνθρωπος εργάζεται για µια εταιρεία. Μια εταιρεία έχει ένα αριθµό γραφείων). Ένα πέρας µπορεί να ονοµαστεί µε µια ετικέτα. Αυτή η ετικέτα ονοµάζεται όνοµα ρόλου (role name). (Τα πέρατα των συσχετίσεων συχνά καλούνται ρόλοι). Το πέρας µιας συσχέτισης έχει πολλαπλότητα (multiplicity), που είναι µια ένδειξη για το πόσα αντικείµενα µπορούν να συµµετέχουν σ αυτή τη σχέση. Αυτή συνήθως είναι 1 (ακριβώς 1), (προαιρετική συσχέτιση), * (πολλά αντικείµενα) ή και κάποιος συγκεκριµένος αριθµός (π.χ. 11) είχνει ότι υπάρχει δυνατότητα πλοήγησης από την µια κατεύθυνση

25 Πλοήγησης Γενίκευση αλλά όχι από την άλλη. Αν για παράδειγµα µπορούµε να βρούµε σε ποια µαθήµατα διδάσκει ένας καθηγητής ξεκινώντας από ένα αντικείµενο της τάξης Professor, αλλά όχι το αντίστροφο θα έχουµε δυνατότητα πλοήγησης µόνο από την τάξη Professor προς την τάξη Course (όπως φαίνεται και στο παράδειγµα) Γενίκευση είναι η δυνατότητα που έχει µια τάξη να κληρονοµεί από µια άλλη τάξη λειτουργίες και ιδιότητες και να εξειδικεύει κατά κάποιο τρόπο την λειτουργία της. Στο σχήµα του παραδείγµατος έχουµε ένα φοιτητή και επεκτείνουµε την τάξη αυτή για να δηµιουργήσουµε ένα µερικής-απασχόλησης φοιτητή (part-time student) Απόψεις σχεδίασης O Martin Fowler και άλλοι έχουν επισηµάνει την ανάγκη να διαχωρίσουµε την άποψη από την οποία σχεδιάζουµε ένα διάγραµµα (οποιοδήποτε διάγραµµα) αλλά κυρίως τα διαγράµµατα τάξεων. Αυτό σηµαίνει ουσιαστικά ότι θα πρέπει να διευκρινίζουµε πάντα σε ποιο επίπεδο λεπτοµέρειας είµαστε: 1. Εννοιολογική (conceptual) άποψη. Όταν χρησιµοποιούµε την εννοιολογική άποψη, σχεδιάζουµε ένα διάγραµµα που αναπαριστά τις έννοιες στον υπό µελέτη χώρο ανάπτυξης. Χρησιµοποιείται στα αρχικά στάδια όταν εξοικειωνόµαστε µε την εφαρµογή που αναπτύσσουµε. εν υπάρχει µεγάλος βαθµός τεχνικών λεπτοµερειών. 2. Άποψη προδιαγραφής (specification). Σε αυτή την άποψη ασχολούµαστε µε το λογισµικό αλλά ασχολούµαστε µε τις διασυνδέσεις (interfaces) του λογισµικού, όχι µε την υλοποίηση. Αντιµετωπίζουµε δηλαδή τις τάξεις σαν τύπους του συστήµατος που αναπτύσσουµε. Η διαφορά είναι ότι ενδέχεται για ένα τύπο να χρησιµοποιήσουµε περισσότερες τάξεις, για παράδειγµα, όταν θα προχωρήσουµε στην υλοποίηση. Χρησιµοποιείται στα επόµενα στάδια της ανάπτυξης της εφαρµογής. Υπάρχουν λεπτοµέρειες αλλά όχι αυτές που αφορούν τις ιδιαιτερότητες του εργαλείου που χρησιµοποιούµε για την ανάπτυξη. 3. Άποψη υλοποίησης: Σε αυτή την άποψη έχουµε πραγµατικά τάξεις και σχεδιάζουµε τα εσωτερικά στοιχεία της υλοποίησης. Αυτή είναι ίσως η

26 περισσότερο χρησιµοποιούµενη άποψη, αλλά από πολλές απόψεις είναι µάλλον καλύτερο να ακολουθείτε την άποψη της προδιαγραφής, γιατί σε τελική ανάλυση η σχεδίαση γίνεται για να µας βοηθήσει να κατανοήσουµε το πρόγραµµα που θα αναπτύξουµε και δεν χρειάζεται να είναι ακριβής αντανάκλαση αυτού του προγράµµατος. Το πρόγραµµα θα είναι περισσότερο λεπτοµερές από την σχεδίαση. 2. Εφαρμογή Σε αυτό το σηµείο θα δούµε πως µπορούµε να δηµιουργήσουµε τάξεις στο Rational Rose και πως µπορούµε να εισάγουµε σε διάγραµµα τις τάξεις και τις συσχετίσεις που αναφέραµε προηγουµένως. Επίσης θα δούµε πως εισάγουµε στο διάγραµµα τις ιδιότητες και τις λειτουργίες των τάξεων. Δημιουργία Τάξεων Στην πραγµατικότητα οι τάξεις διαχωρίζονται σε πακέτα έτσι ώστε να ελαχιστοποιηθούν οι εξαρτήσεις µεταξύ τους και να είναι περισσότερο ελέγξιµες. Στα πακέτα θα αναφερθούµε σε επόµενα µαθήµατα. Προς το παρόν όλες οι τάξεις που θα κάνουµε θα ανήκουν στο εξ ορισµού (default) «πακέτο» της λογικής όψης του συστήµατος. Επίσης όπως θα δείτε κάνοντας κλικ στο + δίπλα από το «Logical View» (λογική όψη) στην περιοχή πλοήγησης υπάρχει ήδη ένα διάγραµµα τάξεων το Main (Κύριο διάγραµµα). Μπορείτε να δηµιουργήσετε και άλλα διαγράµµατα τάξεων (το σύνηθες µια και οι τάξεις µιας εφαρµογής είναι αρκετές). Εµείς στο παράδειγµα αυτό θα αρκεστούµε στο κύριο διάγραµµα τάξεων (Main). Για να δηµιουργήσετε µια τάξη κάντε τα εξής: 1. Κάντε δεξί κλικ στο «Logical View» στην περιοχή πλοήγησης. 2. Από το µενού επιλέξτε «New:Class» (νέα τάξη) 3. Ενώ η τάξη είναι επιλεγµένη εισάγετε το όνοµά της. Στη συνέχεια για να εισάγετε τη τάξη στο διάγραµµα Main κάντε διπλό κλικ στο Main για να το φέρετε στο προσκήνιο αν δεν είναι στο προσκήνιο, και σύρετε τη τάξη από τη περιοχή πλοήγησης και αφήστε την στο διάγραµµα. Για να δηµιουργήσετε και ταυτόχρονα εισάγετε µια τάξη στο διάγραµµα Main µπορείτε να κάνετε το εξής: 1. Κάνοντας διπλό κλικ στο Main από το «Logical View» για να ανοίξετε το διάγραµµα τάξεων Main και στη συνέχεια 2. Κάνοντας κλικ στο εργαλείο «Class» ( ) για να το επιλέξετε από την γραµµή εργαλείων 3. Και τέλος κάνοντας κλικ στην περιοχή σχεδίασης του διαγράµµατος για να εισάγετε στη νέα τάξη. 4. Τέλος και ενώ η τάξη στο διάγραµµα είναι ακόµα επιλεγµένη πληκτρολογείτε το όνοµά της

27 ηµιουργήστε και εισάγετε στο διάγραµµα Main (µε όποια µέθοδο προτιµάτε) τις ακόλουθες τάξεις: 1. Order: Η τάξη της παραγγελίας σε ένα σύστηµα παραγγελιών 2. Customer: Η τάξη για τους πελάτες του συστήµατος παραγγελιών 3. PersonalCustomer: Η εξειδίκευση της τάξης του πελάτη για τους πελάτες που είναι µεµονωµένα άτοµα 4. CorporateCustomer: Η εξειδίκευση της τάξης του πελάτη για τους πελάτες που είναι εταιρείες 5. Employee: Ο υπάλληλος της εταιρείας µας που είναι αντιπρόσωπος πωλήσεων της εταιρείας-πελάτης (αφορά τους πελάτες που είναι εταιρείες µια και το σύστηµα µπορεί να έχει έναν υπεύθυνο πωλήσεων για τον πελάτη-εταιρεία). 6. OrderLine: Κάθε παραγγελία έχει διάφορες γραµµές παραγγελίας. Το αντικείµενο OrderLine είναι µια τέτοια γραµµή. 7. Product: Κάθε γραµµή παραγγελίας αφορά ένα προϊόν. Η τάξη Product αναπαριστά τα προϊόντα αυτά στο σύστηµα παραγγελιών. Ταχτοποιήστε τις τάξεις στο διάγραµµα έτσι ώστε να έχουν τις θέσεις που φαίνονται στην εικόνα που ακολουθεί: Συσχετίσεις και Γενικεύσεις Για να σχεδιάσετε µια συσχέτιση:

28 1. Επιλέξτε από την εργαλειοθήκη το εργαλείο της συσχέτισης (association) που είναι το ( ) 2. Σύρετε τη γραµµή και ξεκινώντας από µια τάξη και καταλήγοντας στην τάξη που συσχετίζεται µαζί της. Για να σχεδιάσετε µια γενίκευση: 1. Επιλέξτε από την εργαλειοθήκη το εργαλείο της γενίκευσης (generalization) που είναι το ( ) 2. Σύρετε την γραµµή από την υποτάξη προς την υπερτάξη 3. Αν έχετε περισσότερες υποτάξεις της µιας για να έχετε µια κοινή γραµµή γενίκευσης που καταλήγει στην υπερτάξη σύρετε τη γραµµή της γενίκευσης από την υποτάξη και αφήστε την πάνω στην ήδη υπάρχουσα γραµµή γενίκευσης. Κατ αυτό τον τρόπο οι δύο γενικεύσεις θα συνενωθούν σε µια γραµµή. Έτσι δείχνουµε ότι οι δύο γενικεύσεις είναι ως προς τον ίδιο διακριτή (discriminator). Έτσι, για παράδειγµα, η διάκριση των πελατών σε πελάτες που είναι εταιρείες (corporate customers) και σε πελάτες που είναι πρόσωπα (personal customers) είναι ως προς τον διακριτή του τύπου του πελάτη. Αν για παράδειγµα µας ενδιέφερε η διάκριση σε άντρες και γυναίκες τότε θα είχαµε µια άλλη γενίκευση ως προς τον διακριτή «φύλλο» µε µία άλλη ξεχωριστή γραµµή γενίκευσης. Σχεδιάστε τις συσχετίσεις και γενικεύσεις, όπως φαίνονται στην ακόλουθη εικόνα:

29 Εισαγωγή Ιδιοτήτων και Λειτουργιών Υπάρχουν αρκετοί τρόποι για να εισάγετε ιδιότητες και λειτουργίες, στις τάξεις ενός διαγράµµατος τάξεων. ύο από αυτές είναι οι ακόλουθες: 1. Κάντε δεξί κλικ στη τάξη από την περιοχή πλοήγησης 2. Από το µενού επιλέξτε «New:Attribute» (Νέα:Ιδιότητα) για µια νέα ιδιότητα ή «New:Operation» (Νέα:Λειτουργία) για µια νέα λειτουργία. 3. Ενώ η νέα λειτουργία ή ιδιότητα είναι ακόµα επιλεγµένη εισάγετε το όνοµά της. Ένας άλλος τρόπος είναι να κάνετε διπλό κλικ στην τάξη είτε από την περιοχή πλοήγησης είτε από το διάγραµµα και να εµφανίσετε το παράθυρο προδιαγραφής για την τάξη. Από το παράθυρο προδιαγραφής κάνετε κλικ στη καρτέλα «Operations» (Λειτουργίες) για να εισάγετε µια νέα λειτουργία ή κλικ στην καρτέλα «Attributes» («Ιδιότητες») για µια νέα ιδιότητα της τάξης. Στην συνέχεια θα δούµε την διαδικασία για την εισαγωγή µιας λειτουργίας. Η διαδικασία είναι εντελώς ανάλογη για µια νέα ιδιότητα. 1. Κάντε διπλό κλικ στην τάξη «Order» είτε από την περιοχή πλοήγησης είτε από το διάγραµµα. 2. Από το παράθυρο προδιαγραφής που θα εµφανιστεί κάντε κλικ στην καρτέλα «Operations» («Λειτουργίες»). 3. Κάντε δεξί κλικ στη λευκή περιοχή (αφού η τάξη δεν έχει καµία ιδιότητα ακόµα) 4. Από το αναδυόµενο µενού επιλέξτε «Insert» («Εισαγωγή»). 5. Πληκτρολογήστε το όνοµα dispatch 6. Σαν τύπο επιστροφής (return type) πληκτρολογήστε void. 7. Αν θέλετε να προσδιορίσετε περισσότερες λεπτοµέρειες (όπως για παράδειγµα τις παραµέτρους των µεθόδων και τους τύπους αυτών των παραµέτρων) κάντε διπλό κλικ πάνω στην γραµµή της λειτουργίας για να εµφανίσετε το παράθυρο προδιαγραφής της λειτουργίας

30 Το αν θα δώσετε όλες τις λεπτοµέρειες ή απλά και µόνο το όνοµα µιας µεθόδου εξαρτάται από δύο κυρίως πράγµατα: Αν σχεδιάζετε το διάγραµµα τάξης από εννοιολογική άποψη ή από άποψη προδιαγραφής δεν χρειάζεται να µπείτε σε πολλές λεπτοµέρειες. Αν σχεδιάζετε το διάγραµµα από άποψη υλοποίησης εµφανίστε µόνο τις λεπτοµέρειες που απαιτούνται για αυτά που θέλετε να δείξετε. Αν χρησιµοποιείτε λειτουργίες παραγωγής κώδικα (code generation) θα πρέπει να µπείτε σε πολλές λεπτοµέρειες για να πάρετε χρήσιµο κώδικα και να µην χρειαστεί να προσθέσετε πολλές λεπτοµέρειες. Εισάγετε στο διάγραµµα µε όποιον τρόπο θέλετε τις µεθόδους και ιδιότητες που φαίνονται στην εικόνα που ακολουθεί. Αρκούνε τα ονόµατα: Πολλαπλότητα και Δυνατότητα Πλοήγησης

31 Ένα ακόµα στοιχείο που εµφανίζεται σχεδόν πάντα στα διαγράµµατα τάξεων είναι οι πολλαπλότητες. Επίσης πολύ συχνά εµφανίζονται και οι δυνατότητες πλοήγησης. Αφού και τα δύο αυτά στοιχεία αφορούν το πέρας µιας συσχέτισης από την µια ή την άλλη πλευρά, είναι στοιχεία που καθορίζονται από τις καρτέλες των ρόλων στο παράθυρο προδιαγραφής της συσχέτισης, το οποίο εµφανίζεται όταν κάνουµε διπλό κλικ στη γραµµή της συσχέτισης. Στο παράδειγµα που ακολουθεί καθορίζουµε για το πέρας της συσχέτισης Order/Customer που αφορά την τάξη Customer, ότι έχει πολλαπλότητα 1 (δηλαδή κάθε Παραγγελία αφορά ένα Πελάτη). Επίσης για το πέρας της συσχέτισης που αφορά τον την τάξη Order ότι δεν υπάρχει δυνατότητα πλοήγησης (navigability) προς αυτή, δηλαδή υπάρχει δυνατότητα πλοήγησης µόνο από την κατεύθυνση της τάξης Order προς την τάξη Customer (αυτό σηµαίνει ότι έχοντας ένα αντικείµενο της τάξης Order µπορούµε να πούµε ποιον πελάτη αφορά, αλλά όχι το αντίστροφο). Για την πολλαπλότητα του πέρατος που αφορά την τάξη Order θα την καθορίσουµε σε * ή 0..n (όπως συµβολίζει το * το Rose), µια και µε ένα πελάτη µπορούν να συσχετισθούν πολλές παραγγελίες. 1. Για να εµφανίσουµε το παράθυρο προδιαγραφής της συσχέτισης κάνουµε διπλό κλικ στη γραµµή της συσχέτισης. 2. Επιλέγουµε την καρτέλα «Role A Detail» που αφορά την τάξη Order. (Αν τραβήξατε την γραµµή µε άλλη φορά τότε για σας ρόλος A θα είναι ο Customer. Σε αυτή τη περίπτωση επιλέξτε «Role Β Detail» για την τάξη Order). 3. Επιλέγουµε «Cardinality» ) n για τον καθορισµό της πολλαπλότητας σε *. 4. Ακυρώνουµε την επιλογή «Navigable» που είναι εξ ορισµού επιλεγµένη και αφορά την ύπαρξη δυνατότητας πλοήγησης. 5. Στη συνέχεια επιλέγουµε την καρτέλα «Role B Detail» που αφορά την τάξη Customer 6. Από την καρτέλα αυτή θέτουµε την «Cardinality» σε 1..1 (ακριβώς 1). 7. Πατάµε το πλήκτρο «OK» Μετά από τα παραπάνω το διάγραµµα σε ότι αφορά τη συσχέτιση Order/Customer θα πρέπει να έχει ως εξής:

32 Προσθέστε ακολουθώντας την παραπάνω τεχνική τις κατάλληλες πολλαπλότητες στο διάγραµµα έτσι ώστε να είναι τελικά όπως δείχνει η ακόλουθη εικόνα: 3. Άσκηση Έστω η ακόλουθη περιγραφή ενός συστήµατος δανεισµού µιας βιβλιοθήκης. Στο σύστηµα αυτό υπάρχουν αναγνώστες που δανείζονται τίτλους. Κάθε τίτλος µπορεί να είναι είτε περιοδικό είτε βιβλίο. Κάθε τίτλος µπορεί να είναι δανεισµένος ή όχι κάθε φορά. Αν είναι δανεισµένος τότε ο δανεισµός θα αφορά ένα µόνο αναγνώστη της βιβλιοθήκης. Ένας κανόνας της βιβλιοθήκης είναι ότι ένας δανειστής δεν µπορεί να έχει δανειστεί ταυτόχρονα περισσότερα από 7 βιβλία. Επίσης ένας αναγνώστης µπορεί να κάνει κράτηση για το πολύ ένα τίτλο κάθε φορά. Η κράτηση αφορά ένα µόνο αναγνώστη και ένα τίτλο (βιβλίο ή περιοδικό). Το σύστηµα της βιβλιοθήκης ενδιαφέρεται να ξέρει κάθε κράτηση ποιο βιβλίο αφορά, αλλά όχι τις κρατήσεις που έχουν γίνει για κάθε βιβλίο

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

34 Εργαστήριο 4: Διαγράμματα Αλληλεπίδρασης 1. Παρουσίαση Τα διαγράµµατα αλληλεπίδρασης απεικονίζουν τις αλληλεπιδράσεις µεταξύ των αντικειµένων του συστήµατος. Υπάρχουν δύο ειδών διαγράµµατα αλληλεπίδρασης: τα διαγράµµατα ακολουθίας (sequence diagrams) και τα διαγράµµατα συνεργασίας (collaboration diagrams). Τα διαγράµµατα αλληλεπίδρασης χρησιµοποιούνται για να απεικονίσουν τα διάφορα σενάρια των περιπτώσεων χρήσης του συστήµατος, και αποτελούν τη βάση για την αποκάλυψη των λειτουργιών που απαιτείται να υλοποιήσουν τα αντικείµενα του συστήµατος προκειµένου να φέρουν σε πέρας µια περίπτωση χρήσης. Διαγράμματα Ακολουθίας Στα διαγράµµατα ακολουθίας (sequence) τα αντικείµενα παριστάνονται µε κουτιά ή/και ρόλους τα οποία παρατάσσονται στο χώρο (συνήθως από αριστερά προς τα δεξιά). Τα αντικείµενα ανταλλάσσουν µηνύµατα τα οποία παριστάνονται µε κατευθυνόµενα βέλη των οποίων η φορά δείχνει την κατεύθυνση του µηνύµατος (ποιο αντικείµενο κάνει την κλήση και σε ποιο αντικείµενο γίνεται η κλήση). Ο χρόνος παριστάνεται από πάνω προς τα κάτω στο διάγραµµα. ηλαδή τα µηνύµατα που βρίσκονται πιο πάνω στο διάγραµµα προηγούνται χρονικά αυτών που βρίσκονται πιο χαµηλά. Ένα παράδειγµα ενός διαγράµµατος ακολουθίας είναι το ακόλουθο:

35 Διαγράμματα Συνεργασίας Σε ένα διάγραµµα συνεργασίας (collaboration diagrams) τα αντικείµενα απεικονίζονται µε τις γραµµές συσχετίσεων των τάξεών τους να τα ενώνουν, δηλαδή απεικονίζονται οι στατικές συνδέσεις µεταξύ των αντικειµένων. εν υπάρχει συγκεκριµένη µορφή (τα αντικείµενα µπορούν να είναι σε όποιες θέσεις βολεύει) και για απεικονιστεί η ακολουθία των µηνυµάτων που ανταλλάσσονται χρησιµοποιείται αρίθµηση. Ένα παράδειγµα ενός διαγράµµατος συνεργασίας είναι το ακόλουθο:

36 Το διάγραµµα αυτό αντιστοιχεί στο προηγούµενο διάγραµµα ακολουθίας και µπορείτε εύκολα να δείτε τις αντιστοιχίες µεταξύ των συµβόλων. Βασικά Διαγραμματικά Στοιχεία Τα βασικά διαγραµµατικά στοιχεία των διαγραµµάτων ακολουθίας είναι τα εξής: ΚΑΤΑΣΚΕΥΗ ΠΕΡΙΓΡΑΦΗ ΠΑΡΑ ΕΙΓΜΑ ΣΥΝΤΑΞΗΣ Αντικείμενο Ένα αντικείµενο παριστάνεται µε ένα κουτί στο οποίο αναγράφεται το όνοµα του αντικειµένου, στη συνέχεια µια άνω κάτω τελεία και τέλος το όνοµα της τάξης στην οποία ανήκει το αντικείµενο αν αυτή έχει προσδιοριστεί. Πολλές φορές µπορεί να σχεδιάσουµε µια αλληλεπίδραση µεταξύ αντικειµένων ακριβώς για να καταλάβουµε ποιες είναι οι τάξεις

ΟΔΗΓΙΕΣ ΓΙΑ ΧΡΗΣΗ ΤΟΥ ΕΡΓΑΛΕΙΟΥ RATIONAL ROSE

ΟΔΗΓΙΕΣ ΓΙΑ ΧΡΗΣΗ ΤΟΥ ΕΡΓΑΛΕΙΟΥ RATIONAL ROSE ΟΔΗΓΙΕΣ ΓΙΑ ΧΡΗΣΗ ΤΟΥ ΕΡΓΑΛΕΙΟΥ RATIONAL ROSE Το path που ακολουθούμε για να ανοίξουμε το εργαλείο είναι: Start All Programs Lab Programs Rational Software Rational Rose Enterprise Edition 1 ο ΔΙΑΓΡΑΜΜΑ:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3. Σηµειώσεις Access. # Εισαγωγή ψηφίου ή κενού διαστήµατος. Επιτρέπονται τα ση-

3. Σηµειώσεις Access. # Εισαγωγή ψηφίου ή κενού διαστήµατος. Επιτρέπονται τα ση- Μάθηµα 3 Προχωρηµένες ιδιότητες πεδίων Μάσκες εισαγωγής Οι ιδιότητες Μορφή και Μάσκα εισαγωγής περιγράφονται µαζί γιατί έχουν κοινά χαρακτηριστικά που αφορούν την εµφάνιση. Με την ιδιότητα Μορφή καθορίζουµε

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

Τμήμα Μηχανικών Η/Υ Τηλεπικοινωνιών & Δικτύων,

Τμήμα Μηχανικών Η/Υ Τηλεπικοινωνιών & Δικτύων, Περιπτώσεις Χρήσης (Προδιαγραφές Απαιτήσεων) Ιδέα του Jacobson ( 92, OOSE) μηχανισμός ανακάλυψης και καταγραφής των λειτουργικών απαιτήσεων ιστορίες χρήσης του συστήματος εργαλείο ανάλυσης ακόμη και σε

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

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

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή Εγχειρίδιο Φοιτητών 1. Εισαγωγή Η ηλεκτρονική πλατφόρµα «e-class», αποτελεί ένα ολοκληρωµένο σύστηµα Ασύγχρονης Τηλεκπαίδευσης. Στόχος της είναι παροχή υποδοµών εκπαίδευσης και κατάρτισης ανεξάρτητα από

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

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή Εγχειρίδιο Φοιτητών 1. Εισαγωγή Η ηλεκτρονική πλατφόρµα «e-class», αποτελεί ένα ολοκληρωµένο σύστηµα Ασύγχρονης Τηλεκπαίδευσης. Στόχος της είναι παροχή υποδοµών εκπαίδευσης και κατάρτισης ανεξάρτητα από

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

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

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

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

Εγχειρίδιο Χρήστη - Μαθητή

Εγχειρίδιο Χρήστη - Μαθητή Εγχειρίδιο Χρήστη - Μαθητή 1. Εισαγωγή Η ηλεκτρονική πλατφόρµα «e-class», αποτελεί ένα ολοκληρωµένο σύστηµα Ασύγχρονης Τηλεκπαίδευσης. Στόχος της είναι παροχή υποδοµών εκπαίδευσης και κατάρτισης ανεξάρτητα

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

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

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

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

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD Σε ορισµένες περιπτώσεις είναι ιδιαίτερα χρήσιµη η δηµιουργία ιστοσελίδων ενηµερωτικού περιεχοµένου οι οποίες στη συνέχεια µπορούν να δηµοσιευθούν σε κάποιο τόπο

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

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

Πως θα κατασκευάσω το πρώτο πρόγραμμα; Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να γίνει εξοικείωση το μαθητών με τον ΗΥ και το λειτουργικό σύστημα. - Επίδειξη του My Computer

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

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

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

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

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

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

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

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

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

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

ΕΚΦΩΝΗΣΗ ΥΠΟΧΡΕΩΤΙΚΗΣ ΕΡΓΑΣΙΑΣ σε UML

ΕΚΦΩΝΗΣΗ ΥΠΟΧΡΕΩΤΙΚΗΣ ΕΡΓΑΣΙΑΣ σε UML ΕΚΦΩΝΗΣΗ ΥΠΟΧΡΕΩΤΙΚΗΣ ΕΡΓΑΣΙΑΣ σε UML για το µάθηµα ΑΝΑΛΥΣΗΣ ΣΥΣΤΗΜΑΤΩΝ Ακαδηµαϊκό Έτος 2012-2013 «Αντικειµενοστρεφής Ανάλυση Ηλεκτρονικού Καταστήµατος Προσφορών (e-shop)» Η άσκηση αφορά στη χρήση της

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

ιαγράµµατα Αλληλεπίδρασης ιαγράµµατα Ακολουθίας ιαγράµµατα Επικοινωνίας

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

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

Περιπτώσεις Χρήσης και Διαγράµµατα Περιπτώσεων Χρήσης. Use Cases and Use Case Diagrams

Περιπτώσεις Χρήσης και Διαγράµµατα Περιπτώσεων Χρήσης. Use Cases and Use Case Diagrams Περιπτώσεις Χρήσης και Διαγράµµατα Περιπτώσεων Χρήσης Use Cases and Use Case Diagrams Τι είναι οι Περιπτώσεις Χρήσης (Use Cases)! Eίναι µια τεχνική αποτύπωσης των λειτουργικών απαιτήσεων ενός συστήµατος!

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

ζωγραφίζοντας µε τον υπολογιστή

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

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

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

Συγχώνευση αλληλογραφίας και συγχώνευση μιας πηγής δεδομένων με ένα κύριο έγγραφο όπως ένα γράμμα ή ένα έγγραφο ετικετών 3.5.1.1 Συγχώνευση αλληλογραφίας και συγχώνευση μιας πηγής δεδομένων με ένα κύριο έγγραφο όπως ένα γράμμα ή ένα έγγραφο ετικετών Ένα σύνηθες πρόβλημα που υπάρχει, είναι η ανάγκη αποστολής επιστολών ή πληροφοριών

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

ΕΡΓΑΣΤΗΡΙΟ ΠΛΗΡΟΦΟΡΙΚΗ I. 3o ΕΡΓΑΣΤΗΡΙΟ ΕΠΕΞΕΡΓΑΣΙΑ ΜΕ ΤΟ WORD

ΕΡΓΑΣΤΗΡΙΟ ΠΛΗΡΟΦΟΡΙΚΗ I. 3o ΕΡΓΑΣΤΗΡΙΟ ΕΠΕΞΕΡΓΑΣΙΑ ΜΕ ΤΟ WORD ΠΕΡΙΕΧΟΜΕΝΟ ΜΑΘΗΜΑΤΟΣ ΕΡΓΑΣΤΗΡΙΟ ΠΛΗΡΟΦΟΡΙΚΗ I 3o ΕΡΓΑΣΤΗΡΙΟ ΕΠΕΞΕΡΓΑΣΙΑ ΜΕ ΤΟ WORD 1. Προσθήκη στηλών σε τμήμα εγγράφου 2. Εσοχή παραγράφου 3. Εισαγωγή Κεφαλίδας, Υποσέλιδου και Αριθμού Σελίδας 4. Εισαγωγή

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

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

Περιεχόμενα. ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στη UML... 19 Περιεχόμενα ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στη UML... 19 1.1 Εισαγωγή... 19 1.2 Η γλώσσα UML... 20 1.2.1 Μεθοδολογίες ανάπτυξης λογισμικού... 21 1.2.2 Τύποι διαγραμμάτων της UML... 22 1.3 Διαγράμματα της UML... 24

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

GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα

GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα Μάθημα 6ο Σουίτα Γραφείου LibreOffice 2 Ύλη Μαθημάτων V Μαθ. 5/6 : Σουίτα Γραφείου LibreOffice LibreOffice Γενικά, Κειμενογράφος - LibreOffice Writer,

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

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

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

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

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

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

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

2. Κάντε κλικ στο παράθυρο όψης Top για να το ενεργοποιήσετε, ώστε να σχεδιάσετε το πάτωµα του δωµατίου.

2. Κάντε κλικ στο παράθυρο όψης Top για να το ενεργοποιήσετε, ώστε να σχεδιάσετε το πάτωµα του δωµατίου. Άσκηση 7 Σύνθετα Αντικείµενα Στόχος της άσκησης Στόχος της παρούσας άσκησης είναι η εξοικείωση µε τη δηµιουργία σύνθετων αντικειµένων που δηµιουργούνται από τον συνδυασµό δύο ή περισσότερων τρισδιάστατων

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

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή Εγχειρίδιο Φοιτητών 1. Εισαγωγή Η ηλεκτρονική πλατφόρµα «e-class», αποτελεί ένα ολοκληρωµένο σύστηµα Ασύγχρονης Τηλεκπαίδευσης. Στόχος της είναι παροχή υποδοµών εκπαίδευσης και κατάρτισης ανεξάρτητα από

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

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

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

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

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

ΟΔΗΓΙΕΣ ΧΡΗΣΤΗ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΑΞΗΣ ΟΔΗΓΙΕΣ ΧΡΗΣΤΗ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΑΞΗΣ CLAROLINE Κατάλογος περιεχομένων Εγγραφή μαθητή στο Claroline...2 Εγγραφή σε μάθημα...3 Τα μαθήματά μου...4 Αλλαγή του προφίλ μου (Manage my account)...4

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

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

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

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

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

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

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

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

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

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

Περίπτωση Χρήσης Use case

Περίπτωση Χρήσης Use case Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Φθινόπωρο 2007 HΥ351 Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design Use Cases & Use Case Diagrams Περίπτωση Χρήσης

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

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

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

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

ΚΕΦΑΛΑΙΟ 4 ΤΟ ΕΡΓΑΛΕΙΟ SOLVER

ΚΕΦΑΛΑΙΟ 4 ΤΟ ΕΡΓΑΛΕΙΟ SOLVER ΚΕΦΑΛΑΙΟ 4 ΤΟ ΕΡΓΑΛΕΙΟ SOLVER 4.1. ΕΙΣΑΓΩΓΗ Με την "Επίλυση", µπορείτε να βρείτε τη βέλτιστη τιµή για τον τύπο ενός κελιού το οποίο ονοµάζεται κελί προορισµού σε ένα φύλλο εργασίας. Η "Επίλυση" λειτουργεί

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

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να καταλάβουν την διαφορά ανάμεσα σε τοπικές και καθολικές μεταβλητές. Nα κάνουν αποσφαλμάτωση

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2011-2012 Προθεσµία: 8/1/12, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης Οδηγίες αποστολής άσκησης Πριν ξεκινήσετε (ΔΙΑΒΑΣΤΕ

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

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

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

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

4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας

4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας 4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας 4.1.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας από βάση δεδομένων Όταν εκκινήσουμε τον Discoverer εμφανίζεται στην οθόνη μας το παράθυρο διαλόγου του βοηθητικού προγράμματος

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

περιεχόμενα παρουσίασης

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

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

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

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

Ο Οδηγός γρήγορης εκκίνησης

Ο Οδηγός γρήγορης εκκίνησης Ο Οδηγός γρήγορης εκκίνησης του Microsoft PowerPoint 2013 έχει διαφορετική εμφάνιση από προηγούμενες εκδόσεις. Γι αυτό το λόγο, δημιουργήσαμε αυτόν τον οδηγό για να ελαχιστοποιήσουμε την καμπύλη εκμάθησης.

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα

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

Visual Basic Γλώσσα οπτικού

Visual Basic Γλώσσα οπτικού Visual Basi Γλώσσα οπτικού προγραµµατισµού «Η αρχή είναι το ήµισυ του παντός» Κουλλάς Χρίστος www.oullas.om oullas 2 Στόχοι Μαθήµατος Οι µαθητές να µπορούν: να εξηγούν τι είναι η Visual Basi. ναεξηγούνταστάδιαδηµιουργίας

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

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

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

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

Βασικό Επίπεδο στο Modellus

Βασικό Επίπεδο στο Modellus Βασικό Επίπεδο στο Modellus Το λογισµικό Modellus επιτρέπει στον χρήστη να οικοδοµήσει µαθηµατικά µοντέλα και να τα εξερευνήσει µε προσοµοιώσεις, γραφήµατα, πίνακες τιµών. Ο χρήστης πρέπει να γράψει τις

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

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

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

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

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

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5 Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών

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

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

ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ & ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΙ ΠΑΤΡΑΣ ΤΕΙ ΠΑΤΡΑΣ ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΏΝ ΠΑΙΓΝΙΩΝ- ΠΡΟΓΡΑΜΜΑ GAMBIT ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ & ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Α Κ Α Η Μ Α Ι Κ Ο Ε Τ Ο Σ 2 0 1 1-2 0 1 2 ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΏΝ ΠΑΙΓΝΙΩΝ- ΠΡΟΓΡΑΜΜΑ GAMBIT Ο συγκεκριµένος οδηγός για το πρόγραµµα

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

4 ο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΓΕΝΙΚΟΣ ΣΚΟΠΟΣ :

4 ο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΓΕΝΙΚΟΣ ΣΚΟΠΟΣ : 4 ο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΓΕΝΙΚΟΣ ΣΚΟΠΟΣ : Σκοπός του συγκεκριμένου φύλλου εργασίας είναι ο μαθητής να εξοικειωθεί με τις συναρτήσεις, τις αριθμητικές πράξεις καθώς και την επισήμανση κελιών υπό όρους με στόχο

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

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

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

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

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Σχεδίαση Βάσεων Δεδομένων

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Σχεδίαση Βάσεων Δεδομένων Ενότητα 3 Σχεδίαση Βάσεων Δεδομένων 17 18 3.1 Εισαγωγή Μία βάση δεδομένων αποτελείται από δεδομένα για διάφορα θέματα τα οποία όμως σχετίζονται μεταξύ τους και είναι καταχωρημένα με συγκεκριμένο τρόπο.

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

ΕΡΓΑΣΤΗΡΙΟ FRONT PAGE 2

ΕΡΓΑΣΤΗΡΙΟ FRONT PAGE 2 ΕΡΓΑΣΤΗΡΙΟ FRONT PAGE 2 Μάθαµε στο προηγούµενο µάθηµα πώς να δίνουµε ονόµατα στις ιστοσελίδες µας, να βάζουµε χρώµα και γραφικά, ή ακόµα να δηµιουργούµε υπερσυνδέσµους σε κείµενο και εικόνες. Σήµερα µεταξύ

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

1. Ανοίξτε το 3D Studio MAX ή επιλέξτε File Reset. ηµιουργήστε µια σφαίρα µε κέντρο την αρχή των αξόνων και ακτίνα 20 µονάδων.

1. Ανοίξτε το 3D Studio MAX ή επιλέξτε File Reset. ηµιουργήστε µια σφαίρα µε κέντρο την αρχή των αξόνων και ακτίνα 20 µονάδων. Άσκηση 5 η Κλωνοποίηση Αντικειµένων Στόχος της άσκησης Σην παρούσα άσκηση θα δούµε πως µπορούµε να επιτύχουµε την κλωνοποίηση αντικειµένων στο 3D Studio Max, δηλαδή να δηµιουργήσουµε πανοµοιότυπα αντίγραφα

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

Εισαγωγή/ απομάκρυνση συμβόλων παραγράφου

Εισαγωγή/ απομάκρυνση συμβόλων παραγράφου 3.3.2.1 Εισαγωγή/ απομάκρυνση συμβόλων παραγράφου Υπάρχει μία μικρή διαφορά μεταξύ της λέξης παράγραφος, όπως τη χρησιμοποιούμε εδώ και όπως κοινώς χρησιμοποιείται. Τεχνικά, μία παράγραφος είναι ένα μπλοκ,

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

Εργαστηριακή Άσκηση 4 Μορφοποίηση Κειμένου μέσω του

Εργαστηριακή Άσκηση 4 Μορφοποίηση Κειμένου μέσω του Μορφοποίηση χαρακτήρων Όταν ανοίγουμε το Word η γραμματοσειρά που υπάρχει είναι προκαθορισμένη. Το πλαίσιο διαλόγου Γραμματοσειρά μας επιτρέπει να κάνουμε περισσότερες μορφοποιήσεις. Επιλέγουμε Μορφή Απόσταση

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΚΕΝΤΡΟ ΙΑΧΕΙΡΙΣΗΣ ΙΚΤΥΩΝ. Εγχειρίδιο χρήσης των υπηρεσιών τηλεκπαίδευσης του Πανεπιστηµίου Ιωαννίνων. Ασύγχρονη τηλεκπαίδευση

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΚΕΝΤΡΟ ΙΑΧΕΙΡΙΣΗΣ ΙΚΤΥΩΝ. Εγχειρίδιο χρήσης των υπηρεσιών τηλεκπαίδευσης του Πανεπιστηµίου Ιωαννίνων. Ασύγχρονη τηλεκπαίδευση Εγχειρίδιο χρήσης των υπηρεσιών τηλεκπαίδευσης του Πανεπιστηµίου Ιωαννίνων Ασύγχρονη τηλεκπαίδευση 1 Πίνακας Περιεχοµένων 1. Εισαγωγή...3 ηµιουργία νέου λογαριασµού χρήστη...3 2. Η οθόνη του συστήµατος...4

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

ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΟ ARIS

ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΟ ARIS ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΟ ARIS 1. Εγκατάσταση Εισάγοντας το CD στον υπολογιστή σας, θα εκτελεστεί το auto - run και θα σας εµφανίσει ένα παράθυρο µε επιλογές εγκατάστασης. (εάν δεν εκτελεστεί το auto - run, εκτελέστε

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

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

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java Εξάμηνο Μάθημα Τίτλος 2017 2018 Εαρινό Αντικειμενοστραφής Προγραμματισμός Ι Ύλη εργαστηρίου, Ασκήσεις Java Ημερομηνία Εργαστήριο 5 ο Α. Ύλη εργαστηρίου 5.1 Έννοιες αντικειμενοστραφούς προγραμματισμού,

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

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ της Πλατφόρμας Τηλεκατάρτισης ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή...2 2. Αρχική σελίδα, Εισαγωγή & Περιβάλλον Συστήματος...3 2.1. Αρχική σελίδα εισαγωγής...3 2.2. Εισαγωγή στην Πλατφόρμα Τηλε-κατάρτισης...4

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

ΣΕΜΙΝΑΡΙΑ ΝΕΛΕ 2004, ΑΣΚΗΣΕΙΣ

ΣΕΜΙΝΑΡΙΑ ΝΕΛΕ 2004, ΑΣΚΗΣΕΙΣ 1. Ανοίξτε τον Internet Explorer 2. Επισκεφθείτε τη σελίδα http://www.ermionida.info 3. Επισκεφθείτε τη σελίδα Ν.Ε.Λ.Ε Αργολίδας 4. Όταν οδηγήσετε το ποντίκι πάνω στην Λέξη ΠΡΑΚΤΙΚΗ ΕΞΑΣΚΗΣΗ, το σχήµα

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

Οδηγίες για την κατασκευή του αρχείου «Ταυτότητα (α+β) 2» 1. Αποκρύπτουµε τους άξονες και το παράθυρο άλγεβρας: Παράθυρο προβολή

Οδηγίες για την κατασκευή του αρχείου «Ταυτότητα (α+β) 2» 1. Αποκρύπτουµε τους άξονες και το παράθυρο άλγεβρας: Παράθυρο προβολή Οδηγίες για την κατασκευή του αρχείου «Ταυτότητα (α+β) 2» 1. Αποκρύπτουµε τους άξονες και το παράθυρο άλγεβρας: Παράθυρο προβολή απο-επιλέγουµε άξονες και άλγεβρα 2. Από το εργαλείο κατασκευής πολυγώνων

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

Οδηγίες εγκατάστασης εφαρµογής διαβίβασης εντολών Χ.Α.Α. µέσω της EUROCORP Χρηµατιστηριακής Σελίδα 1 από 11

Οδηγίες εγκατάστασης εφαρµογής διαβίβασης εντολών Χ.Α.Α. µέσω της EUROCORP Χρηµατιστηριακής Σελίδα 1 από 11 Οδηγίες εγκατάστασης εφαρµογής διαβίβασης εντολών Χ.Α.Α. µέσω της EUROCORP Χρηµατιστηριακής Σελίδα 1 από 11 Οδηγίες εγκατάστασης - σύνδεσης προγράµµατος Σε έναν browser (π.χ. Internet Explorer) πληκτρολογείστε

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

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

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

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

(1) Επιλέξτε την εντολή QUERIES για να μπείτε στο περιβάλλον δημιουργίας

(1) Επιλέξτε την εντολή QUERIES για να μπείτε στο περιβάλλον δημιουργίας QUERIES Δημιουργία Ερωτήσεων στην ACCESS Ένα από τα πλεονεκτήματα που προσφέρουν τα ΣΔΒΔ (Συστήματα Διαχείρισης Βάσεων Δεδομένων) είναι η δυνατότητα στον χειριστή να δημιουργεί ερωτήσεις βασισμένος στα

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

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

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

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

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

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

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

Οδηγός γρήγορης εκκίνησης

Οδηγός γρήγορης εκκίνησης Οδηγός γρήγορης εκκίνησης Το Microsoft Excel 2013 έχει διαφορετική εμφάνιση από προηγούμενες εκδόσεις. Γι αυτό το λόγο, δημιουργήσαμε αυτόν τον οδηγό για να ελαχιστοποιήσουμε την καμπύλη εκμάθησης. Προσθήκη

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

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

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

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

Άσκηση 6 Ανύψωση Σχηµάτων. Στόχος της άσκησης

Άσκηση 6 Ανύψωση Σχηµάτων. Στόχος της άσκησης Άσκηση 6 Ανύψωση Σχηµάτων Στόχος της άσκησης Στην παρούσα άσκηση θα δούµε πως µπορούµε να ανυψώσουµε µία διατοµή κατά µήκος µίας καµπύλης spline, η οποία παίζει το ρόλο της διαδροµής, µε σκοπό να δηµιουργήσουµε

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

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

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

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

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

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

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

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

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

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

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

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

Πίνακες, περιγράµµατα και σκίαση

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

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

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++ ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση του περιβάλλοντος Dev C++ το οποίο θα χρησιμοποιηθεί για την υλοποίηση

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

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να αναπτύξουν ένα πρόγραμμα όπου θα επαναλάβουν τα βήματα ανάπτυξης μιας παραθυρικής εφαρμογής.

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

Παιδαγωγική προσέγγιση: Πρόταση για την διδασκαλία της έννοιας αλγόριθµός στο περιβάλλον MicroWorlds Pro

Παιδαγωγική προσέγγιση: Πρόταση για την διδασκαλία της έννοιας αλγόριθµός στο περιβάλλον MicroWorlds Pro Παιδαγωγική προσέγγιση: Πρόταση για την διδασκαλία της έννοιας αλγόριθµός στο περιβάλλον MicroWorlds Pro Το «Φύλλο Εργασίας» για τους µαθητές Το παρακάτω φύλλο εργασίας µπορεί να χρησιµοποιηθεί ως εισαγωγικό

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

ΥΠΗΡΕΣΙΑ WEBMAIL ΚΥΠΕΣ

ΥΠΗΡΕΣΙΑ WEBMAIL ΚΥΠΕΣ ΥΠΗΡΕΣΙΑ WEBMAIL ΚΥΠΕΣ Η υπηρεσία διαχείρισης αλληλογραφίας µέσω web (webmail) δίνει την δυνατότητα στους χρήστες να διαχειριστούν την αλληλογραφία τους απ οποιοδήποτε σηµείο βρίσκονται εφόσον υπάρχει

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

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

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

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6 Ανασκόπηση Μια εφαρµογή Java είναι ένα σύνολο από συνεργαζόµενες κλάσεις Εβδοµάδα 2: Αντικείµενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Ανασκόπηση:

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

Σχήµα 6.1: Εισαγωγή της εντολής Read From Spreadsheet File στο Block Diagram.

Σχήµα 6.1: Εισαγωγή της εντολής Read From Spreadsheet File στο Block Diagram. Εισαγωγή αρχείων δεδοµένων 1. Η εισαγωγή αρχείων δεδοµένων στο LaVIEW γίνεται στο Block Diagram µε την εντολή Read From Spreadsheet File. 2. Εισάγουµε την εντολή Read From Spreadsheet File στο Block Diagram

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

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

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

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

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub Σύνοψη Σ αυτό το κεφάλαιο θα περιγράψουμε τη δημιουργία φορμών, προκειμένου να εισάγουμε δεδομένα και να εμφανίζουμε στοιχεία από τους πίνακες

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

UML

UML Εισαγωγή στη UML UML Μοντέλο Μοντελοποίηση Εισαγωγή στη UML Πως φθάσαμε στη UML Γέννηση της UML Σκοπός της UML Γιατί Διαγράμματα Τυπικές Μέθοδοι (Formal Methods) Γενικά Ανάλυση και Σχεδίαση με UML [Α]

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

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

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

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

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων Ενότητα 4 Επεξεργασία πινάκων 36 37 4.1 Προσθήκη πεδίων Για να εισάγετε ένα πεδίο σε ένα πίνακα που υπάρχει ήδη στη βάση δεδομένων σας, βάζετε τον κέρσορα του ποντικιού στο πεδίο πάνω από το οποίο θέλετε

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

ΠΕΡΙΕΧΟΜΕΝΑ. Περιγραφή της αρχικής οθόνης κάθε τάξης α. Εικονίδια επιλογής θεµατικών ενοτήτων β. Εικονίδια διαφυγής...

ΠΕΡΙΕΧΟΜΕΝΑ. Περιγραφή της αρχικής οθόνης κάθε τάξης α. Εικονίδια επιλογής θεµατικών ενοτήτων β. Εικονίδια διαφυγής... ΠΕΡΙΕΧΟΜΕΝΑ Α. ΕΚΚΙΝΗΣΗ ΚΛΕΙΣΙΜΟ ΤΗΣ ΕΦΑΡΜΟΓΗΣ.............................. 5 Β. ΒΑΣΙΚΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΠΡΟΣΒΑΣΙΜΟΤΗΤΑΣ.............................. 6 Γ. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΥΛΗ ΚΑΘΕ ΤΑΞΗΣ....................................

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

1 η ΑΣΚΗΣΗ ΕΡΓΑΣΤΗΡΙΟΥ (ομαδική: 2 ή 3 ατόμων) (Ημερομηνία Παράδοσης: 18/11/2017) (Ζητούμενο)

1 η ΑΣΚΗΣΗ ΕΡΓΑΣΤΗΡΙΟΥ (ομαδική: 2 ή 3 ατόμων) (Ημερομηνία Παράδοσης: 18/11/2017) (Ζητούμενο) 1 η ΑΣΚΗΣΗ ΕΡΓΑΣΤΗΡΙΟΥ (ομαδική: 2 ή 3 ατόμων) (Ημερομηνία Παράδοσης: 18/11/2017) (Ζητούμενο) Η εταιρία «ΧΥΖ» ειδικεύεται στην πώληση βιβλίων και CDs και επιθυμεί να δημιουργήσει ένα ηλεκτρονικό κατάστημα

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