ΥΠΟΥΡΓΕΙΟ ΠΑΙ ΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙ ΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΓΡΑΠΤΗ ΕΞΕΤΑΣΗ ΓΙΑ ΠΛΗΡΩΣΗ ΚΕΝΩΝ ΘΕΣΕΩΝ ΛΕΙΤΟΥΡΓΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΤΟ ΤΜΗΜΑ ΥΠΗΡΕΣΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Θέµα: Ειδικό (MEΡΟΣ A ) Ηµεροµηνία: 29 Ιανουαρίου 2011 ιάρκεια: 3 ώρες για το Μέρος Α και για το Μέρος Β 1 ΤΟ ΟΚΙΜΙΟ ΑΠΟΤΕΛΕΙΤΑΙ ΑΠΟ ΟΚΤΩ (8) ΣΕΛΙ ΕΣ ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΟΥ ΤΟΥ ΕΞΩΦΥΛΛΟΥ 2 ΟΛΕΣ ΟΙ ΑΠΑΝΤΗΣΕΙΣ AYTOY TOY MEΡΟΥΣ ΝΑ ΟΘΟΥΝ ΣΤΟ ΤΕΤΡΑ ΙΟ ΑΠΑΝΤΗΣΕΩΝ ΜΕ ΤΗΝ ΕΝ ΕΙΞΗ «ΜΕΡΟΣ Α»
2 ΕΝΟΤΗΤΑ Ι: Ανάλυση, Σχεδιασµός, Συντήρηση Πληροφοριακών Συστηµάτων Nα απαντηθούν δύο (2) από τις τρεις (3) ερωτήσεις: Θέµα Α1α: Λειτουργικές και Μη-Λειτουργικές Απαιτήσεις Βάσει της πιο κάτω περιγραφής, να καθοριστούν όσο το δυνατόν περισσότερες λειτουργικές απαιτήσεις (functional requirements), τουλάχιστον τέσσερις (4), και µη-λειτουργικές απαιτήσεις (non-functional requirements), τουλάχιστον δύο (2) Οι λειτουργικές απαιτήσεις να παρατεθούν σύµφωνα µε τα ακόλουθα τέσσερα χαρακτηριστικά: ι) συνοπτική περιγραφή, ii) είσοδος, iii) επεξεργασία και iv) έξοδος/οι ίνεται το παρακάτω κείµενο απαιτήσεων για µια εφαρµογή υποστήριξης βιβλιοθήκης που δηµιουργήθηκε από τον πελάτη σε συνεργασία µε κάποιον εκπρόσωπο της εταιρίας που θα αναλάβει την ανάπτυξη του λογισµικού: Είναι ένα σύστηµα υποστήριξης για µια βιβλιοθήκη Η βιβλιοθήκη δανείζει βιβλία και περιοδικά στους πελάτες της, οι οποίοι καταχωρούνται στο σύστηµα, όπως συµβαίνει και µε τα βιβλία και τα περιοδικά Η βιβλιοθήκη αγοράζει νέους τίτλους Οι δηµοφιλείς τίτλοι έρχονται σε περισσότερα του ενός αντίτυπα Παλιά βιβλία και περιοδικά αφαιρούνται, όταν ετεροχρονιστούν-ξεπεραστούν ή είναι σε κακή κατάσταση Ο βιβλιοθηκάριος είναι ένας εργαζόµενος της βιβλιοθήκης ο οποίος συναλλάσσεται µε τους πελάτες και η εργασία του υποστηρίζεται από το σύστηµα Ένας πελάτης µπορεί να κάνει κράτηση σε κάποιο βιβλίο ή περιοδικό το οποίο υπάρχει ως τίτλος στη βιβλιοθήκη αλλά τη δεδοµένη στιγµή το έχει δανειστεί κάποιος άλλος Όταν το βιβλίο επιστραφεί, αυτός που έχει κάνει κράτηση ειδοποιείται Η κράτηση σταµατά να ισχύει, αν ο πελάτης δανειστεί τον τίτλο ή αν ακυρώσει την κράτησή του Η βιβλιοθήκη εύκολα δηµιουργεί, ενηµερώνει και διαγράφει πληροφορίες σχετικές µε τίτλους, πελάτες, δανεισµούς-χρέη και κρατήσεις στο σύστηµα Το σύστηµα πρέπει να τρέχει σε όλα τα δηµοφιλή περιβάλλοντα (UNIX, Windows, κτλ) και να έχει µοντέρνο γραφικό περιβάλλον επικοινωνίας µε τον χρήστη Είναι εύκολο να επεκταθεί Θέµα A1β: ιάγραµµα Μετάβασης Καταστάσεων Βάσει της οντότητας «Τίτλος» του θέµατος A1α, σχεδιάστε το ιάγραµµα Μετάβασης Καταστάσεων (State Transition Diagram), το οποίο θα αναπαριστά µε λεπτοµέρεια τη διαδικασία δανεισµού ενός αντιτύπου κάποιου τίτλου Ειδικότερα, καλείστε να δείξετε όλες τις καταστάσεις µετάβασης από την αίτηση για δανεισµό µέχρι την ολοκλήρωση του δανεισµού συµπεριλαµβανοµένης πιθανής κράτησης
3 Θέµα Α1γ: Σχεδιασµός ιαγράµµατος Ροής εδοµένων Με βάση την πιο κάτω περιγραφή κατασκευάστε ένα ιάγραµµα Ροής εδοµένων (Data Flow Diagram) (υψηλού επιπέδου 1 µόνο), στο οποίο να φαίνονται οι βασικές οντότητες, διεργασίες και αποθήκες δεδοµένων και οι ροές δεδοµένων µεταξύ τους H εταιρεία συντήρησης κτηρίων ΕΡΓΟΤΑΞΙΟ, θέλει να αποκτήσει µια εφαρµογή διαχείρισης έργων, ώστε η ιεύθυνση για την καλύτερη διαχείριση προσωπικού (δηλ, για να µπορεί η εταιρεία να δεσµεύει καλύτερα άτοµα για την υλοποίηση αυτών των έργων) Η διαδικασία που ακολουθείται από την ΕΡΓΟΤΑΞΙΟ έχει ως ακολούθως: Ο ιευθυντής της επιχείρησης καταχωρεί τα στοιχεία του έργου στο πληροφοριακό σύστηµα, το οποίο αποδίδει πίσω κάποιο Μοναδικό Κωδικό στο Έργο (ΜΚΕ), και στη συνέχεια το σύστηµα αποθηκεύει αυτά τα δεδοµένα σε βάση δεδοµένων του Στην συνέχεια το σύστηµα ενηµερώνει τον Προϊστάµενο Ανθρώπινου υναµικού (ΠΑ ), ο οποίος είναι και ο µόνος αρµόδιος για την ανάθεση ατόµων σε έργα, έτσι ώστε να προχωρήσει µε την δέσµευση των κατάλληλων ατόµων για την υλοποίηση του έργου Ο ΠΑ µε την σειρά του προχωρεί στην Συγκρότηση Οµάδας Έργου ως ακολούθως: o Ο ΠΑ ανακτά από το σύστηµα τόσο τα στοιχεία του έργου µε κωδικό ΜΚΕ όσο και τα στοιχεία των διαθέσιµων ατόµων o Ο ΠΑ κάνει τις επιλογές του και στην συνέχεια καταχωρεί στο σύστηµα τα στοιχεία του προσωπικού προς δέσµευση και του ΜΚΕ Στη συνέχεια το σύστηµα δεσµεύει τα διαθέσιµα αυτά άτοµα ενηµερώνοντας κατάλληλα τις βάσεις δεδοµένων του συστήµατος o Το σύστηµα ενηµερώνει τον ιευθυντή για την οµάδα έργου που έχει συσταθεί έτσι ώστε να λάβει τις ενέργειες του για την υλοποίηση του έργου Τέλος, το σύστηµα δίνει στο ιευθυντή τη δυνατότητα να εκτυπώσει διάφορες αναφορές οι οποίες περιλαµβάνουν τόσο τα δεσµευµένα άτοµα στο έργο ΜΚΕ όσο και το υπόλοιπο διαθέσιµο προσωπικό
4 ΕΝΟΤΗΤΑ ΙΙ: Ανάπτυξη Προγράµµατος (Ψευδοκώδικας) Να απαντηθούν δύο (2) από τις τρεις (3) ερωτήσεις: Θέµα Α2α: Ψευδοκώδικας Αλγοριθµικού Προβλήµατος Υποθέστε ότι κάθε γραµµή ενός n x n πίνακα Α, αποτελείται από 1 και 0, έτσι ώστε, σε κάθε γραµµή του πίνακα A, όλα τα 1 εµφανίζονται πριν από τα 0 στη γραµµή αυτή Υποθέτοντας ότι ο πίνακας A[n][n] είναι ήδη στη µνήµη, να περιγράψετε πρώτα µε λόγια και µετά µε ψευδοκώδικα πώς θα µετρήσετε τον αριθµό των 1 σε χρόνο Θ(nlgn) Σηµείωση: Για τον ψευδοκώδικα µπορείτε να υποθέστε µια αφαιρετική έκδοση διαδικαστικής γλώσσας όπως την C, JAVA, κτλ Νοείται ότι ο ψευδοκώδικας δεν χρειάζεται να χρησιµοποιεί την αυστηρή σύνταξη µιας πραγµατικός γλώσσας Ωστόσο, ο ψευδοκώδικας πρέπει να συλλαµβάνει τα βασική λογική και ροή του πραγµατικού προγράµµατος
5 Θέµα Α2β: Ψευδοκώδικας για Πρόγραµµα µε ενδρικές οµές Ένα "root-leaf µονοπάτι" σε ένα δυαδικό δένδρο ορίζεται ως µια ακολουθία από κόµβους η οποία ξεκινά από την ρίζα ενός δένδρου και η οποία καταλήγει σε ένα από τα φύλλα του Σηµειώστε ότι ένα κενό δένδρο περιέχει 0 τέτοια µονοπάτια Καλείστε να γράψετε τον ψευδοκώδικα συνάρτησης η οποία δεδοµένου ενός δυαδικού δένδρου (όπου κάθε κόµβος Χ περιέχει µια τιµή Χvalue όπως επίσης µέχρι δυο παιδιά, Χleft και Xright) και ενός αθροίσµατος sum, επιστρέφει "1" αν το δένδρο περιέχει κάποιο "root-leaf µονοπάτι" το οποίο έχει άθροισµα ίσο µε sum, ή επιστρέφει "0" στην αντίθετη περίπτωση Παράδειγµα: Υποθέστε ότι σας δίδεται το πιο κάτω δυαδικό δένδρο: 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1 Τα µονοπάτια "root-leaf" του πιο πάνω δένδρου είναι τα εξής: µονοπάτι 1: 5 4 11 7 µονοπάτι 2: 5 4 11 2 µονοπάτι 3: 5 8 13 µονοπάτι 4: 5 8 4 1 Το άθροισµα των επί-µέρους µονοπατιών είναι µονοπάτι 1: 5 + 4 + 11 + 7 = 27 µονοπάτι 2: 5 + 4 + 11 + 2 = 22 µονοπάτι 3: 5 + 8 + 13 = 26 µονοπάτι 4: 5 + 8 + 4 + 1 = 18 Εποµένως: rootleafsum(root, 27) => επιστρέφει "1" rootleafsum(root, 28) => επιστρέφει "0" Σηµείωση: Για τον ψευδοκώδικα µπορείτε να υποθέστε µια αφαιρετική έκδοση διαδικαστικής γλώσσας όπως την C, JAVA, κτλ Νοείται ότι ο ψευδοκώδικας δεν χρειάζεται να χρησιµοποιεί την αυστηρή σύνταξη µιας πραγµατικός γλώσσας Ωστόσο, ο ψευδοκώδικας πρέπει να συλλαµβάνει τα βασική λογική και ροή του πραγµατικού προγράµµατος
6 Θέµα Α2γ: Ψευδοκώδικας για Προβλήµατα Γράφων Ένας γράφος G=(V,E) ονοµάζεται bipartite (διµερής), εάν το σύνολο κορυφών του V, µπορεί να µοιραστεί σε δυο υποσύνολα V1 και V2, έτσι ώστε καµία ακµή να έχει και τις δυο κορυφές στο ίδιο υποσύνολο Να δώσετε κάποιο αλγόριθµο (σε µορφή ψευδοκώδικα), ο οποίος να εξακριβώνει κατά πόσο ένας γράφος είναι διµερής σε γραµµικό χρόνο O( V + E ) Παράδειγµα ενός διµερή γράφου: 1 1 2 2 m monitors V1 l landmarks V2 Σηµείωση: Για τον ψευδοκώδικα µπορείτε να υποθέστε µια αφαιρετική έκδοση διαδικαστικής γλώσσας όπως την C, JAVA, κτλ Νοείται ότι ο ψευδοκώδικας δεν χρειάζεται να χρησιµοποιεί την αυστηρή σύνταξη µιας πραγµατικός γλώσσας Ωστόσο, ο ψευδοκώδικας πρέπει να συλλαµβάνει τα βασική λογική και ροή του πραγµατικού προγράµµατος
7 ΕΝΟΤΗΤΑ ΙΙΙ: Σχεδιασµός, Συντήρηση και ιαχείριση Βάσεων εδοµένων Να απαντηθούν δύο (2) από τις τρεις (3) ερωτήσεις: Θέµα Α3α: Εννοιολογική Σχεδίαση Βάσης µε το ιάγραµµα Οντοτήτων- Συσχετίσεων Σχεδιάστε ένα διάγραµµα Οντοτήτων-Συσχετίσεων τύπου Chen (Chen s Entity- Relationship Diagram), το οποίο θα αναπαριστάνει εννοιολογικά (conceptually) τη βάση του συστήµατος διαχείρισης δεδοµένων του ακόλουθου υποθετικού σεναρίου Ο όµιλος εταιρειών εισαγωγής προϊόντων EUMALL αποτελείται από επί µέρους εξειδικευµένες εταιρείες εισαγωγής προϊόντων (µε µοναδικά ονόµατα όπως CLOTHES, SHOES, FOOD, κτλ), οι οποίες εδρεύουν σε µια πόλη της χώρας στην οποία εδρεύει η EUMALL Οι εταιρείες εισάγουν κάποια είδη προϊόντων, πχ, Πουκάµισο Aligator Medium Yellow, όπου κάθε είδος χαρακτηρίζεται ξεχωριστά τόσο από κάποιο µοναδικό κωδικό της εταιρείας αλλά όσο και από κάποιο µοναδικό κωδικό του κατασκευαστή (για σκοπούς αναγνώρισης χρησιµοποιείται το πρώτο) Τα είδη προϊόντων εισάγονται σε συγκεκριµένες ποσότητες και έχουν συγκεκριµένη τιµή µονάδας Κάθε είδος προϊόντος αποθηκεύεται σε µια από τις αποθήκες της εταιρείας EUMALL, η οποία αποθήκη έχει συγκεκριµένη τοποθεσία Η διάθεση των προϊόντων στην τοπική αγορά γίνεται µέσω ενός δικτύου διανοµέων Οι διανοµείς συνεργάζονται µε µια ή περισσότερες εταιρείες του οµίλου EUMALL Ειδικότερα, ένας διανοµέας προµηθεύεται µια ποσότητα κάποιου τύπου προϊόντος εταιρείας από συγκριµένη αποθήκη και σε συγκεκριµένη τιµή Κάθε τέτοια δοσοληψία καταγράφεται στο ενοποιηµένο σύστηµα πωλήσεων του οµίλου EUMALL Επίσης, το σύστηµα πρέπει να διατηρεί για τον κάθε διανοµέα ένα αναπληρωτή διανοµέα, από τους υφιστάµενους διανοµείς, για περιπτώσεις έκτακτης ανάγκης Το ιάγραµµα Οντοτήτων-Συσχετίσεων σας πρέπει να είναι σε θέση να ικανοποιεί τις ακόλουθες λειτουργικές απαιτήσεις: Η εταιρεία EUMALL πρέπει να είναι σε θέση να βρίσκει: i) τις πωλήσεις του οµίλου βάσει ενός ή περισσοτέρων από τα ακόλουθα στοιχεία: βάσει προϊόντος, βάσει αποθήκης, βάσει εταιρείας και βάσει προµηθευτή, ii) τα εισαγόµενα προϊόντα του οµίλου µαζί µε τις σχετικές πληροφορίες (ποσότητες, τιµές, κτλ), ii) τα περιεχόµενα µιας αποθήκης (τύπους προϊόντων, ποσότητες, κτλ), και iii) µε ποιες αποθήκες συνεργάζονται οι προµηθευτές της (δεν είναι απαραίτητο να γίνονται πωλήσεις προς αυτούς για να θεωρείται ότι υπάρχει συνεργασία) Για κάθε τύπο οντότητας και συσχέτισης, δώστε τα πιο σηµαντικά χαρακτηριστικά Για κάθε τύπο συσχέτισης, µην παραλείψετε να σηµειώσετε τον τύπο συµµετοχής (ολική, µερική συµµετοχή) µίας οντότητας και τους λόγους πληθυκότητας (cardinalities)
8 Θέµα Α3β: Γλώσσα Επεξεργασίας εδοµένων SQL ώστε εκφράσεις στη Γλώσσα Επεξεργασίας εδοµένων ANSI SQL (Structured Query Language), για κάθε ένα από τα ερωτήµατα που ακολουθούν, τα οποία αναφέρονται στο σχεσιακό σχήµα που δίνεται πιο κάτω: Boat (boatid, name, manufacturer, length, width, power) Boat_Part (boatid, partid, name, type, manufacturer, price) Στο πιο πάνω σχήµα, τα κλειδιά των σχέσεων είναι υπογραµµισµένα ενώ οι κανόνες αναφορικής ακεραιότητες (referential integrity constraints), προσδιορίζονται πιο κάτω: Foreign-Key: Boat_Part(boatID) Boat(boatID) Βρείτε όλες τις βάρκες (δηλαδή το boatid τους), οι οποίες ΕΝ έχουν εξαρτήµατα (Boat_Part), µε κάθε ένα από τους ακολούθους τέσσερις τρόπους: i) Με χρήση του τελεστή EXCEPT ii) Με χρήση του τελεστή ΙΝ iii) Με χρήση του τελεστή EXIST iv) Σε ένα µπλοκ (χωρίς εµφώλευση nesting) και χωρίς τη χρήση τελεστή συνόλων (δηλ, χωρίς EXIST, IN, ALL, ANY, EXCEPT, κτλ) Για όλες τις πιο πάνω περιπτώσεις δύναται να χρησιµοποιηθεί στην απάντηση και ο τελεστής της άρνησης «ΝΟΤ» και το «IS NULL» [ 4 x 25 µονάδες ] Θέµα Α3γ: ιαχείριση και Συντήρηση Σχήµατος α) Περιγράψτε συνοπτικά τις εντολές της ANSI SQL: DELETE, DROP και TRUNCATE [ 5 µονάδες ] β) Οι Εντολές Ενεργοποίησης Αναφοράς (Referential Triggered Actions) σε εκφράσεις της γλώσσας ορισµού δεδοµένων της SQL (Data Definition Language, SQL-DDL), χρειάζονται µεγάλη προσοχή διότι µια ενέργεια δύναται να προκαλέσει αλυσιδωτές αλλαγές σβήνοντας µέχρι και ολόκληρο πίνακα ώστε ένα απλό παράδειγµα σχέσης και µια έκφραση SQL-DDL (µε εντολή ενεργοποίησης αναφοράς), στην οποία µπορεί να σβηστεί ολόκληρος ο πίνακας ************************************************** [ 5 µονάδες ] Copyright 2011 - Υπουργείο Παιδείας και Πολιτισµού Απαγορεύεται η αναδηµοσίευση µε οποιοδήποτε µέσο όλου ή µέρους του περιεχοµένου χωρίς τη συγκατάθεση του εκδότη