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

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

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

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

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

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

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

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

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

Ηλεκτρονικό Κατάστημα

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

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

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

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

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

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

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

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

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

Σενάριο Χρήσης myschool

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

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

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

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

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

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

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

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

ΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣ ΥΠΕΥΘΥΝΟΣ ΈΡΓΟΥ AΝ.KΑΘ.Χ. ΚΟΥΚΟΥΡΛΗΣ ΤΗΛ: , FAX :

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

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

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

Αντικειµενοστρεφής Σχεδιασµός

Αικατερίνη Καμπάση, PhD. Τμήμα Προστασίας και Συντήρησης Πολιτισμικής Κληρονομιάς Α.Τ.Ε.Ι. Ιονίων Νήσων

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

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

Τοµέας Εϖιµόρφωσης & Κατάρτισης

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

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

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

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

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

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

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

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

Περιγραφή Μαθήματος. Περιγραφή Περιεχόμενο του Μαθήματος

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

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

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

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

ΠΡΟΤΕΙΝΟΜΕΝΕΣ ΛΥΣΕΙΣ

Χρήστος Στασινός. ουλεύοντας με τη. Microsoft Access ΑΘΗΝΑ

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

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

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

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

Πρόσβαση στην Καταγραφή και Εγχειρίδιο Χρήσης Εφαρµογών για /νσεις και Γραφεία /θµιας Εκπαίδευσης και για Περιφερειακές /νσεις Εκπαίδευσης

ΚΑΤΑΝΟΗΣΗ ΤΗΣ ΙΑΤΑΞΗΣ ΤΩΝ ΑΡΙΘΜΩΝ ΚΑΙ ΧΡΗΣΗ ΤΗΣ ΑΠΟΛΥΤΗΣ ΤΙΜΗΣ ΣΤΟΝ ΑΞΟΝΑ ΤΩΝ ΠΡΑΓΜΑΤΙΚΩΝ ΑΡΙΘΜΩΝ ΠΕΡΙΛΗΨΗ. Εισαγωγή

8. Λεξιλόγιο μιας γλώσσας είναι όλες οι ακολουθίες που δημιουργούνται από τα στοιχεία του αλφαβήτου της γλώσσας, τις λέξεις.

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

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

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

Τεχνολογία Λογισµικού (software. engineering)

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

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

Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Óõíåéñìüò ΕΚΦΩΝΗΣΕΙΣ

11/4/2014 ΤΕΙ Ιονίων Νήσων Πλατφόρµα Ασύγχρονησ Τηλεκπαίδευσησ eclass s ηµιο ι υρ υ γ ρ ία ί Μ αθήµατο τ σ 1

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

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

CARDISOFT. User Guide. ClassWeb VERSION 1.1. [February] [2007] Cardisoft Ανώνυµη Εταιρία Παραγωγής Λογισµικού

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

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

Ορισμός Ευκαιρίας. 2.Διαδικασία Αναγνώρισης Ευκαιρίας

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

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

Συνεργείο Αυτοκινήτων

Singular Report Generator. Σχ 1 ηµιουργία Καταστάσεων SRG

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥ ΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. έσποινα Τσοµπανούδη, Α.Μ.

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ. Πρόσβαση στην Καταγραφή και Εγχειρίδιο Χρήσης για Σχολικές Μονάδες Π/θµιας

Εισαγωγή στον Προγραµµατισµό. Σύντοµες Σηµειώσεις. Γιώργος Μανής

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

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

Τοµέας Εϖιµόρφωσης & Κατάρτισης

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

Φτιάξτε µια φόρµα στην οποία θα υπάρχουν δυο κουµπιά εντολών. Το ένα κουµπί θα ανοίγει τη φόρµα «Βαθµολογίες µαθητών» και το δεύτερο κουµπί θα οδηγεί

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη

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

Tech village School. Ακολουθούν δομές και σχέδια του εκπαιδευτικού προγράμματος: Σελίδα 1 από 7

ΧΡΗΣΗ Η/Υ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr»

ΕΞΕΤΑΣΤΕΑ ΥΛΗ Key CERT: ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ

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

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

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

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

ALERTS ή EDA (Event Driven Actions)

ECDL Module 5 Χρήση Βάσεων εδοµένων Εξεταστέα Ύλη, έκδοση 5.0 (Syllabus Version 5.0)

Ανάλυση & Σχεδιασµός Πληροφοριακών Συστηµάτων Ι (Εργαστήριο) Σύστημα Διαχείρισης Πληροφοριακού υλικού της Δημοτικής επιχείρησης «Αναπτυξιακή ΑΕ»

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

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

Η εφαρµογή ClassWeb δίνει στους διδάσκοντες χρήστες του συστήµατος τη δυνατότητα πρόσβασης µέσω του ιαδικτύου σε ποικίλες υπηρεσίες, όπως:

Transcript:

Εισαγωγή στην Αντικειµενοστρεφή Ανάλυση Ενδεικτικές απαντήσεις στα θέµατα για περαιτέρω ενασχόληση - ασκήσεις Θέµα 1.1 Όπως είδαµε, υπάρχουν οι ακόλουθες έκδηλες πλέον δυσκολίες στην ανάπτυξη λογισµικού µε τη δοµηµένη ανάλυση και σχεδίαση: Στο θεωρητικό επίπεδο: 1. Η δοµηµένη ανάλυση και σχεδίαση υποτιµά τα δεδοµένα. 2. Οι συναρτήσεις δεν υπάρχουν ανεξάρτητα από τα δεδοµένα στον πραγµατικό κόσµο. Στο πρακτικό επίπεδο: 3. Ο προσδιορισµός των απαιτήσεων σε όρους µετασχηµατισµών και ανεξάρτητων δεδοµένων είναι εξαιρετικά δύσκολος. 4. Η διαχείριση των µοντέλων παράστασης λογισµικού που χρησιµοποιεί η δοµηµένη φιλοσοφία είναι πολύ δύσκολη. 5. Η συντήρηση του λογισµικού είναι δύσκολη και δαπανηρή. 6. Η επαναχρησιµοποίηση συστατικών λογισµικού δεν ενθαρρύνεται. Μπορείτε εύκολα να συνηγορήσετε υπέρ των δυσκολιών αυτών και µάλιστα, όσο περισσότερο έχετε ασχοληθεί µε την ανάπτυξη λογισµικού, τόσο περισσότερο µπορείτε να τις τονίσετε. Ευχόµαστε µετά την ενασχόλησή σας µε την αντικειµενοστρεφή προσέγγιση να εκτιµάτε ότι σε κάποιες από αυτές τις δυσκολίες η αντικειµενοστρεφής προσέγγιση προσφέρει λύσεις. Θέµα 1.2 Η κλάση "Σπουδαστής" θα έχει (τουλάχιστον) τα πεδία που αναφέρονται στο λεξικό δεδοµένων της µελέτης περίπτωσης του πρώτου τόµου. Θα της αποδώσουµε µεθόδους για την προσθήκη, µεταβολή και διαγραφή στοιχείων σπουδαστή. Μαζί µε ένα αντικείµενο το οποίο αντιστοιχεί σε κάποιον συγκεκριµένο σπουδαστή, η ζητούµενη κλάση φαίνεται στο σχήµα 1. Αρ.Ταυτότητας Ονοµα Επώνυµο ιεύθυνση Τηλέφωνο Τµήµα Σπουδαστής Προσθήκη Σπουδαστή() ιαγραφή Σπουδαστή() Μεταβολή στοιχείων Σπουδαστή() Σπουδαστής_01 Αρ.Ταυτότητας: Α123456 Ονοµα: Νικόλαος Επώνυµο: Νικολάου ιεύθυνση: Αγ.Νικολάου 1 Τηλέφωνο: 2345678 Τµήµα: Προγραµµατιστών Προσθήκη Σπουδαστή() ιαγραφή Σπουδαστή() Μεταβολή στοιχείων Σπουδαστή() Σχήµα 1. Η κλάση"σπουδαστής" µαζί µε ένα αντικείµενο αυτής. 1

Θέµα 1.3 Σωστό Λάθος 1. Μια κλάση περιέχει αντικείµενα. Μια κλάση περιέχει πεδία και µεθόδους. Τα αντικείµενα είναι συγκεκριµένες εκδοχές της κλάσης. 2. Μια κλάση περιέχει µεθόδους και πεδία. 3. Μια κλάση είναι το στιγµιότυπο των αντικειµένων της. Κάθε αντικείµενο είναι στιγµιότυπο της κλάσης. 4. Κάθε µέθοδος ορίζεται στον ορισµό τουαντικειµένου όπου ανήκει. Κάθε µέθοδος ορίζεται µε τον ορισµό της κλάσης. 5. Οι µέθοδοι αντιστοιχούν στην κατάσταση µιας κλάσης. Οι µέθοδοι περιγράφουν τη συµπεριφορά µιας κλάσης, ή, ακριβέστερα, των αντικειµένων - στιγµιοτύπων αυτής. 6. Οι τιµές των πεδίων περιγράφουν την κατάσταση ενός αντικειµένου. 7. Η συµπεριφορά όλων των αντικειµένων µιας κλάσης είναι ίδια. 8. Η µέθοδος είναι µια συνάρτηση ή διαδικασία ενσωµατωµένη µέσα σε µια κλάση. 9. Αντικείµενο =(εγγραφή) +(συναρτήσεις/διαδικασίες). 10. Ένα αντικείµενο χαρακτηρίζεται από κατάσταση και συµπεριφορά. Κάθε αντικείµενο χαρακτηρίζεται από κατάσταση, συµπεριφορά και ταυτότητα. 11. Η έννοια της κλάσης είναι αντίστοιχη της έννοιας της µεταβλητής µνήµης. Ηέννοιατουαντικειµένου είναι αντίστοιχη της µεταβλητής. Η κλάση είναι αντίστοιχη του τύπου. 12. Η απόκρυψη πληροφοριών σχετίζεται µε την τοποθέτηση µεθόδων και πεδίων µέσα στο κέλυφος µιας κλάσης. Σχετίζεται µετηνελεγχόµενηπρόσβαση σε αυτά και όχι µόνο µετην ύπαρξή τους µέσα στο κέλυφος της κλάσης 2

Θέµα 1.4 Στο Σχήµα 2 δίνεται η ζητούµενη ταξινόµηση. Ζωντανός Οργανισµός Θηλαστικό Ψάρι ελφίνι Φάλαινα Ανθρωπος Αρκούδα Πέστροφα Τσιπούρα Εργαζόµενος Συνταξιούχος Καθηγητής Προγραµµατιστής Καθηγητής Πιάνου Σχήµα 2. Ταξινόµηση ζωντανών οργανισµών Θέµα 1.5 Σωστό Λάθος 1. Κληρονοµικότητα και γενίκευση είναι δύο όψεις ενός νοµίσµατος. 2. Η συσχέτιση (association) δεν είναι παρά µια άλλη ονοµασία για τις σχέσεις του σχεσιακού µοντέλου δεδοµένων. Ησυσχέτισηείναι µια γενίκευση των σχέσεων του σχεσιακού µοντέλου δεδοµένων. 3. Κληρονοµικότητα µπορούµε ναέχουµε καιστηνδοµηµένη ανάλυση και σχεδίαση. Μπορούµε ναχρησιµοποιήσουµε προγραµµατιστικά τεχνάσµατα ώστε να βγάλουµε "κοινό παράγοντα" από κάποιες συναρτήσεις ήδιαδικασίες, αλλά αυτό δεν είναι 3

κληρονοµικότητα. 4. Πολλαπλή κληρονοµικότητα, σηµαίνει ότι µία κλάση αποδίδει τα χαρακτηριστικά της σε περισσότερες από µία κλάσεις-παιδιά. Σηµαίνει ότι µια κλάση κληρονοµεί χαρακτηριστικά από δύο ή περισσότερες κλάσεις-πατέρες. 5. Η συσχέτιση (association) είναι ένα υπερσύνολο των σχέσεων µεταξύ πινάκων στις Βάσεις εδοµένων. 6. Ο ρόλος µιας κλάσης σε µια συσχέτιση, εξαρτάται από την φορά ανάγνωσης της συσχέτισης. Ηονοµασία της συσχέτισης µπορείναδιαφέρειανάλογα µε την φορά ανάγνωσης της σχέσης και όχι ο ρόλος κάθε κλάσης σε αυτή. Θέµα 1.6 Στο φαίνεται µια ανάλυση ενός αυτοκινήτου σε πολλαπλότητα, υπονοείται ότι αυτή είναι 1. επιµέρους συστατικά. Οπου δεν σηµειώνεται η Αυτοκίνητο 4 Σασί Τροχός Σύστηµα Σύστηµα κίνησης διεύθυνσης Σύστηµα πέδησης Κινητήρας ιαφορικό Σαζµάν Υδραυλική αντλία Φρένα τροχών Σύστηµα ABS Σχήµα 3. Απο-συναρµολόγηση στοιχείων ενός αυτοκινήτου. Θέµα 2.1 εν χρειάζεται παρά ένα απλό ξεφύλλισµα του κεφαλαίου 2 των σηµειώσεων του µαθήµατος "Τεχνολογία Λογισµικού" για να εντοπίσουµε ότι τα µοντέλα κύκλου ζωής "Πρωτοτυποποίησης" και "Σπειροειδές" και, ασφαλώς, το γενικό µοντέλο κύκλου ζωής, είναι αυτά που έχουν το ζητούµενο πλεονέκτηµα. 4

Θέµα 2.2 Είναι φανερό ότι θα προσθέσουµε δύο νέες περιπτώσεις χρήσης που αντιστοιχούν στις δύο νέες λειτουργικές απαιτήσεις. Από την παρατήρηση που ακολουθεί, οδηγούµαστε στον εντοπισµό και δύο νέων Χειριστών: του "τεχνικού αισθητήρων" και του "παροχέα υποστήριξης συστήµατος". Ο πρώτος γνωρίζει πώς να ρυθµίζει την ευαισθησία των αισθητήρων ώστε να δίνουν σωστές µετρήσεις, ενώ ο δεύτερος παρέχει υπηρεσίες υποστήριξης του υπολογιστικού συστήµατος. Τα νέα στοιχεία του διαγράµµατος περιπτώσεων χρήσης φαίνονται στο Σχήµα 4 που ακολουθεί. Ρύθµιση ευαισθησίας αισθητήρων Τεχνικός αισθητήρων Λήψη αντιγράφων ασφαλείας Παροχέας υποστήριξης συστήµατος Σχήµα 4. ύο νέες περιπτώσεις χρήσης και δύο νέοι Χειριστές. Στο Σχήµα 4, είναι χρήσιµο να κάνουµε δύο παρατηρήσεις: Πρώτο, θα ήταν εύλογο αντί του ορισµού µίας περίπτωσης χρήσης για τη ρύθµιση και των τριών αισθητήρων, να είχαµε τρεις, µία για κάθε είδος αισθητήρα. Το θέµα σχετίζεται όχι µόνο µε το επίπεδο λεπτοµέρειας, αλλά και µε τη σύλληψη των περιπτώσεων χρήσης. Στις πρώτες φάσεις της ανάπτυξης δεν αποτελεί πρόβληµα ο ορισµός µε τον ένα ή τον άλλο τρόπο. Οι απαιτήσεις θα ωριµάσουν καθώς η ανάπτυξη προχωρά, χωρίς αυτό να έχει τις επιπτώσεις που θα είχε στη δοµηµένη ανάλυση και σχεδίαση. εύτερο, δεν είναι σαφές, στο σηµείο αυτό, ποια είναι η διαφορά των δύο νέων Χειριστών που ορίσαµε από τον υπάρχοντα Χειριστή "Μετεωρολόγο". Στο πεδίο του πραγµατικού κόσµου, η διαφορά αυτή είναι ασφαλώς σαφής. Ωστόσο, στο πρώιµο στάδιο της ανάπτυξης λογισµικού στο οποίο εν προκειµένω βρισκόµαστε, ίσως δεν διαφαίνεται σε τι διαφέρουν για το λογισµικό οι τρεις Χειριστές που αντιστοιχούν σε φυσικά πρόσωπα. Το θέµα θααντιµετωπιστεί λίγο αργότερα, χωρίς οποιαδήποτε επιλογή µας µέχρι το σηµείο αυτό να δηµιουργεί πρόβληµα. Θέµα 2.3 Ασφαλώς και δεν ισχύει η αναφερόµενη θέση Στο µοντέλο του καταρράκτη, οι εργασίες "Απαιτήσεις", "Ανάλυση", κλπ, ταυτίζονται µε τις φάσεις του κύκλου ζωής και εκτελούνται για ολόκληρη την εφαρµογή λογισµικού. Αυτό δεν ισχύει εδώ, όπου οι εργασίες αυτές εκτελούνται επαναληπτικά µέσα στους "κύκλους ανάπτυξης", καθένας εκ των οποίων αφορά ένα µικρό µέρος της εφαρµογής, είτε καθορίζοντας νέες λειτουργίες, είτε εξειδικεύοντας τις υπάρχουσες. 5

Θέµα 2.4 Ενα τέτοιο διάγραµµα φαίνεται στο Σχήµα 5 που ακολουθεί. Ο µόνος, ενδεχοµένως, πλεονασµός είναι η διάκριση του καθορισµού των Χειριστών που αντιστοιχούν σε συστήµατα, από τον καθορισµό αυτών που αντιστοιχούν σε χρήστες. Αρχή Καθορισµός Χειριστώνχρηστών Καθορισµός Χειριστών - εξωτερικών συστηµάτων Καθορισµός περιπτώσεων χρήσης για έναν Χειριστή Υπάρχουν άλλοι χειριστές Τέλος Χειριστών Ελεγχος ύπαρξης και άλλων περιπτώσεων χρήσης Υπάρχουν νέες περιπτώσεις χρήσης Συσχέτιση µε υπάρχοντες ή µε νέουςχειριστές Οχι Τέλος Σχήµα 5. Ενα διάγραµµα δραστηριότητας για τον καθορισµό των Χειριστών και των περιπτώσεων χρήσης. 6

Θέµα 2.5 ιαπιστώνουµε ότι δεν πρόκειται για νέες λειτουργικές απαιτήσεις που αντιστοιχούν σε νέες περιπτώσεις χρήσης, αλλά για τον εντοπισµό δύο νέων χειριστών του συστήµατος οι οποίοι αντιστοιχούν σε χρήστες - φυσικά πρόσωπα. Στο Σχήµα 6 που ακολουθεί, φαίνεται η δική µας εκδοχή του πλήρους, µέχρι το σηµείο αυτό, διαγράµµατος περιπτώσεων χρήσης για όλες τις λειτουργικές απαιτήσεις της εφαρµογής "ΕΠΙΚΟΥΡΟΣ". Κάποιοι Χειριστές εµφανίζονται περισσότερες από µία φορές, για λόγους αναγνωσιµότητας του διαγράµµατος. Οχειριστής είναι ένας υπάλληλος της του εκπαιδευτικού φορέα Τήρηση αρχείου σπουδαστών ιαγραφή καθηγητή Τήρηση αρχείου καθηγητών Χειριστής ιαγραφή σπουδαστή Τήρηση αρχείου µαθηµάτων ιαγραφή µαθήµατος Ο καθηγητής µπορεί να καταχωρεί ο ίδιος τη βαθµολογία των µαθηµάτων που διδάσκει Ανάθεση διδασκαλίας Καταχώρηση εγγραφών σε µαθήµατα Χειριστής Καθηγητής Βαθµολόγηση µαθηµάτων Εκτύπωση εγγεγραµµένων σπουδαστών Χειριστής Εκτύπωση βαθµολογίας σπουδαστή Σπουδαστής Εκτύπωση καθηγητών Εκτύπωση σπουδαστών Εκτύπωση βαθµολογίας µαθήµατος Οσπουδαστήςµπορεί να ζητά ο ίδιος τη βαθµολογία του σε όλα τα µαθήµατα Σχήµα 6. Το µοντέλο περιπτώσεων χρήσης για το λογισµικό "ΕΠΙΚΟΥΡΟΣ". 7

Θέµα 2.6 Κατ' αρχήν, ήδη αναφέραµε ότι οι απαιτήσεις 15 και 16 δεν είναι λειτουργικές απαιτήσεις, αλλά ορίζουν δύο νέους χειριστές της εφαρµογής. Ακολουθώντας την οδηγία και λαµβάνοντας υπόψη ότι, όπως ορίστηκαν στην ενότητα 3.2.2, οι περιπτώσεις χρήσης αντιστοιχούν σε λειτουργικές απαιτήσεις, µπορείτε να οδηγηθείτε στην διάκριση των µη-λειτουργικών απαιτήσεων. Αυτές δεν θα αντιστοιχούν σε περιπτώσεις χρήσης. Εύκολα εντοπίζουµε ότι οι απαιτήσεις αυτές είναι οι 1 και η 6. Ηαπαίτηση1 αφορά το περιβάλλον λειτουργίας ολόκληρης της εφαρµογής και χαρακτηρίζεται ως "φυσική απαίτηση". Η απαίτηση 6 περιγράφει την κατάσταση εισόδου στην περίπτωση χρήσης που αντιστοιχεί στην απαίτηση 5, δηλαδή στην περίπτωση χρήσης µε τίτλο "Βαθµολόγηση µαθηµάτων". Θέµα 2.7 Θα διακρίνουµε, στην δική µας απάντηση, την κύρια από την δευτερεύουσα ροή. Το ζητούµενο διάγραµµα για την κύρια ροή δίνεται στο Σχήµα 7, ενώ για την δευτερεύουσα στο Σχήµα 8. Αρχή ιαγραφή σπουδαστή Κύρια ροή Επιλογή εργασίας " ιαγραφή σπουδαστή" Εντοπισµός σπουδαστών που µπορούν να διαγραφούν Εµφάνιση φόρµας επιλογής σπουδαστή ΑΚΥΡΩΣΗ ΧΡΗΣΤΗ Τέλος ΣΥΝΕΧΕΙΑ ΟΧΙ Επιλογή σπουδαστή και εντολή διαγραφής Εµφάνιση διαλόγου επιβεβαίωσης ΝΑΙ ιαγραφή εγγραφής σπουδαστή Σχήµα 7. Ένα διάγραµµα δραστηριότητας για την κύρια ροή της περίπτωσης χρήσης "διαγραφή σπουδαστή" του λογισµικού "ΕΠΙΚΟΥΡΟΣ". 8

Αρχή ιαγραφή σπουδαστή ευτερεύουσα ροή Επιλογή εργασίας " ιαγραφή σπουδαστή" Εντοπισµός σπουδαστών που µπορούν να διαγραφούν Εµφάνιση φόρµας ενηµέρωσης χρήστη για τη µη ύπαρξηεγγραφών Τέλος Σχήµα 8. Ένα διάγραµµα δραστηριότητας για την δευτερεύουσα ροή της περίπτωσης χρήσης "διαγραφή σπουδαστή" του λογισµικού "ΕΠΙΚΟΥΡΟΣ". Μπορείτε, ασφαλώς, να σκεφτείτε ότι δεν απαιτείτο ξεχωριστό διάγραµµα για την δευτερεύουσα ροή και ότι το θέµα µπορούσε να τακτοποιηθεί µε ένανακόµη κόµβο απόφασης στο διάγραµµα που αφορά την κύρια ροή. Ασφαλώς Στην µελέτη περίπτωσης που µας απασχολεί εδώ, τα πράγµατα είναι σχετικά απλά. Να µην ξεχνάτε, όµως, ότι στον πραγµατικό κόσµο ταπράγµατα µπορεί να είναι πολύ πιο δύσκολα, οπότε η χρήση πολλών διαγραµµάτων δεν είναι απίθανη. Από την άλλη, αν τα πράγµατα γίνουν πολύ περίπλοκα, ίσως να πρέπει να ξανασκεφτεί κανείς τον ορισµό της περίπτωσης χρήσης και την διάσπασή της σε περισσότερες από µία. Θέµα 2.8 Τα τρία αρχιτεκτονικά στοιχεία του λογισµικού, τα οποία εντοπίζονται κατά την ανάλυση είναι: οι κλάσεις που θα αποτελέσουν την εφαρµογή λογισµικού, ηοµαδοποίησή αυτών σε πακέτα και οι συσχετίσεις µεταξύ αυτών Κατά τη σχεδίαση, η µιαπρώτηαυτήεκδοχήτηςκατασκευαστικήςδοµής του λογισµικού αναµένεται να µεταβληθεί, διότι προκειµένου να ικανοποιηθούν και οι µη λειτουργικές απαιτήσεις, θα πρέπει να προστεθούν κατασκευαστικές λεπτοµέρειες και χαρακτηριστικά του περιβάλλοντος ανάπτυξης και λειτουργίας του λογισµικού. 9

Θέµα 2.9 Η ζητούµενη κατάταξη έχει ως εξής: Συνοριακές: 3,4,8 Οντοτήτων: 1,2,5,7 Ελέγχου: 6,9,10 Από τον ορισµό των κατηγοριών που προηγήθηκε είναι αρκετά φανερή η απάντηση και, ασφαλώς, συγχαρητήρια σε όσους την έδωσαν αµέσως. Θέµα 2.10 Η σχέση υποδηλώνει την δυνατότητα µέσα σε ένα πακέτο ανάλυσης να υπάρχουν και άλλα τέτοια πακέτα και το φαινόµενο αυτό να παρατηρείται σε οσαδήποτε επίπεδα βάθους. Σύµφωνα µε την περιγραφή της σχέσης συναρµολόγησης, αυτή υποδηλώνει τη δοµική ανάλυση µιας σύνθετης οντότητας σε επιµέρους συστατικά. Τα συστατικά αυτά µπορεί να είναι της ίδιας φύσης µε τη σύνθετη οντότητα, πετυχαίνοντας έτσι ένα σχήµα οµαδοποίησης πολλών επιπέδων. Θέµα 2.11 Πρόκειται για µάλλον πολύ εύκολη εργασία, την οποία ενθαρρύνεστε έντονα να πραγµατοποιήσετε χρησιµοποιώντας το εργαλείο CASE Rational Rose. Τα ζητούµενα διαγράµµατα φαίνονται στο Σχήµα 9. 10

Πακέτο ανάλυσης: ΠΑΡΑΚΟΛΟΥΘΗΣΗ ΕΚΠΑΙ ΕΥΤΙΚΗΣ ΙΑ ΙΚΑΣΙΑΣ. Περιπτώσεις χρήσης πεδίου ανάλυσης Ανάθεση διδασκαλίας (Ανάλυση) ανάθεση διδασκαλίας Καταχώρηση εγγραφών σε µαθήµατα (Ανάλυση) καταχώρηση εγγραφών σε µαθήµατα Βαθµολόγηση µαθηµάτων (Ανάλυση) βαθµολόγηση µαθηµάτων Εκτύπωση σπουδαστών (Ανάλυση) εκτύπωση σπουδαστών Εκτύπωση βαθµολογίας σπουδαστή (Ανάλυση) εκτύπωση βαθµολογίας σπουδαστή Εκτύπωση βαθµολογίας µαθήµατος (Ανάλυση) εκτύπωση βαθµολογίας µαθήµατος) Εκτύπωση εγγεγραµµένων σπουδαστών (Ανάλυση) εκτύπωση εγγεγραµµένων σπουδαστών σε... Εκτύπωση καθηγητών (Ανάλυση) εκτύπωση καθηγητών 11

Πακέτο ανάλυσης: ΕΙ ΙΚΕΣ ΕΡΓΑΣΙΕΣ. Περιπτώσεις χρήσης πεδίου ανάλυσης ιαγραφή καθηγητή (Ανάλυση) διαγραφή καθηγητή ιαγραφή σπουδαστή (Ανάλυση) διαγραφή σπουδαστή ιαγραφή µαθήµατος (Ανάλυση) διαγραφή µαθήµατος Σχήµα 9. Από τις περιπτώσεις χρήσης στις περιπτώσεις χρήσης πεδίου ανάλυσης για την εφαρµογή λογισµικού "ΕΠΙΚΟΥΡΟΣ". Θέµα 2.12 Λαµβανοµένων υπόψη των υποδείξεων, εµείς προτείνουµε τις κλάσεις που φαίνονται στο Σχήµα 10. Παρατηρήστε ότι µέχρι το σηµείο αυτό δεν κάνουµε τίποτε άλλο από το να εφαρµόζουµε µε ακρίβειατα βήµατα που περιγράφηκαν. Είναι φυσικό να έχετε απορίες, όπως για παράδειγµα "τι ρόλο παίζουν οι συνοριακές κλάσεις που ορίσαµε για κάθε κλάση οντοτήτων;" και µάλιστα να κατευθύνεστε σε απαντήσεις που σχετίζονται µε την κατασκευή του προγράµµατος. Ήαπορίεςτουτύπου"ταυτίζεται η κλάση τάδε, την οποία εντόπισα κατά την ανάλυση και των δύο περιπτώσεων χρήσης, ή πρόκειται για διαφορετικές κλάσεις;" Η απάντηση είναι ότι κανένα τέτοιο ερώτηµα δεν αφορά την ανάλυση, αλλά τη σχεδίαση, οπότε, ας αφήσουµε τα πράγµατα να εξελιχθούν. 12

Σπουδαστές Βήµα 1. εδοµένα που σχετίζονται µε την περίπτωση χρήσης είναι οι σπουδαστές και οι εγγραφές σε µαθήµατα. Εγ γραφές Βήµα 2. Ορίζουµε τις συνοριακές κλάσεις σύµφωνα µε τα αναφερόµενα. ClassInterface Σπουδαστή Χειριστής ClassInterface εγγραφής Βήµα 3. Οχειριστήςκαιτο κύριο παράθυρο επικοινωνίας της εφαρµογής µεαυτόν. ActorInterface Χειριστή Επιβεβαίωση διαγραφής Βήµα 3. Τα υπόλοιπα αναγκαία συστατικά της επικοινωνίας της περίπτωσης χρήσης µε τον χειριστή. Εντολή διαγραφής Μήνυµα µη ύπαρξης εγγραφών Βήµα 4. Η κλάση ελέγχου (Ελεγχος) διαγραφή σπουδαστή Σχήµα 10. Ανάλυση της περίπτωσης χρήσης "διαγραφή σπουδαστή" της εφαρµογής "ΕΠΙΚΟΥΡΟΣ" (1). Θέµα 2.13 Οσχολιασµός είναι ανάλογος µε αυτόνπουδώσαµε στηνµελέτη περίπτωσης. Ο χρήστης επιλέγει την εργασία (1) και αρχικοποιείται η µονάδα ελέγχου της περίπτωσης χρήσης (2). Στη συνέχεια, προκειµένου να διαπιστωθεί αν υπάρχουν σπουδαστές των οποίων η διαγραφή επιτρέπεται, τρέχει µιαερώτησηπροςτοαρχείοεγγραφώνσπουδαστών, από την οποία προκύπτει η λίστα των σπουδαστών (Σ1) που έχουν εγγραφεί σε µαθήµατα (3, 4). Οι σπουδαστές που δεν έχουν 13

εγγραφεί, είναι εκείνοι που αναφέρονται στο αρχείο σπουδαστών, όχι όµως στο αρχείο εγγραφών. Οπότε εκτελείται αντίστοιχη ερώτηση προς το αρχείο σπουδαστών (5, 6) και προκύπτει η λίστα Σ2. Σύµφωνα µε την περιγραφή της ροής, οι Σ1 και Σ2 ταυτίζονται, δηλαδή όλοι οι σπουδαστές έχουν εγγραφεί σε µαθήµατα, οπότε δεν επιτρέπεται η διαγραφή κανενός. Οπότε, το µόνο που µένει είναι να ενηµερωθεί σχετικά ο χρήστης µε τηνεµφάνιση διαλόγου. Θέµα 2.14 Τα ζητούµενα διαγράµµατα, σύµφωνα µε τηδικήµας πάντα εκδοχή, δίνονται στη συνέχεια. Στο Σχήµα 11 φαίνεται εκείνο που αντιστοιχεί στην κύρια, ενώ στο Σχήµα 12 εκείνο που αντιστοιχεί στη δευτερεύουσα ροή. Αυτό είναι το κεντρικό παράθυρο της εφαρµογής 1: επιλογή : Χε ιρι στής 4: στοιχεία σπουδαστή : ActorInterface Χειριστή 2: αρχικοποίηση 5: ετοιµασία εγγραφής : ClassInterface Σπουδαστή 3: εµφάνιση φόρµας :(Ελεγχος) τήρηση αρχείου σπουδαστών 6: νέα εγγραφή : Εισαγωγή δεδοµένων σπουδαστή : Σπουδαστές Αυτή είναι η φόρµα εισαγωγής στοιχείων σπουδαστή Αυτά ενδεχοµένως να συγχωνευτούν αργότερα Σχήµα 11. ιάγραµµα συνεργασίας για την κύρια ροή της περίπτωσης χρήσης"τήρηση αρχείου σπουδαστών". 14

1: επιλογή 4: στοιχεία σπουδαστή 2: αρχικοποίηση : Χειριστής : ActorInterface Χειριστή :(Ελεγχος) τήρηση αρχείου σπουδαστών 3: εµφάνιση φόρµας : Εισαγωγή δεδοµένων σπουδαστή 5: εµφάνιση µηνύµατος : Μήνυµα ακυρότητας δεδοµένων Σχήµα 12. ιάγραµµα συνεργασίας για την δευτερεύουσα ροή της περίπτωσης χρήσης "τήρηση αρχείου σπουδαστών". Θέµα 2.15 Μελετώντας την δοµηµένη σχεδίαση, ίσως δηµιουργείται η εντύπωση ότι είναι µια αυστηρή διαδικασία σχεδίασης λογισµικού, λιγότερο αυθαίρετη απ' ότι η αντικειµενοστρεφής προσέγγιση. Το σφάλµα εδώ βρίσκεται στο γεγονός ότι το διάγραµµα ροής δεδοµένων, στο οποίο βασίζεται η δοµηµένη σχεδίαση, είναι επίσης "αυθαίρετο", τουλάχιστον όπως και ο ορισµός των στοιχείων του µοντέλου ανάλυσης στην αντικειµενοστρεφή προσέγγιση. ηλαδή, η δοµηµένη σχεδίαση εφαρµόζει καλά ορισµένους µετασχηµατισµούς πάνω σε αυθαίρετη βάση τυχόν κατάρρευση της οποίας έχει µεγάλες συνέπειες, ενώ η αντικειµενοστρεφής απλά "χτίζει" σε βήµατα το λογισµικό, γνωρίζοντας και λογαριάζοντας ότι το κτίσµα θα "ωριµάζει" στην πορεία. Παρατήρηση: Σε πολλές περιπτώσεις είναι αναπόφευκτη η σύγκριση της δοµηµένης µε την αντικειµενοστρεφή φιλοσοφία, όχι µόνο για να τεκµηριωθεί ποια είναι "καλύτερη", αλλά και για να γίνει περισσότερο συνειδητή η δεύτερη, ως νεότερη. Σε τελική ανάλυση, δηλαδή στο επίπεδο αυτού καθεαυτού του πηγαίου κώδικα όπου καταλήγει οποιαδήποτε προσέγγιση ανάλυσης και σχεδίασης, είναι δοµηµένος προγραµµατισµός που χρησιµοποιείται. Η δοµηµένη φιλοσοφία χρησιµοποιεί την έννοια της ιεραρχικής δοµής τόσο στο µακρο-επίπεδο (αρχιτεκτονική) όσο και στο µικρο-επίπεδο (πηγαίος κώδικας) του λογισµικού. Η αντικειµενοστρεφής αντιµετωπίζει µε άλλο τρόπο το µακρο-επίπεδο, χρησιµοποιεί όµως (καλά κελυφοποιηµένο) τον δοµηµένο πηγαίο κώδικα. Μπορείτε να περιπλανηθείτε στη βιβλιογραφία [παραποµπή κάπου συγκεκριµένα] και θα βρείτε εκτενείς συγκριτικές αναφορές. Ένα είναι το σίγουρο, η αντικειµενοστρεφής τεχνολογία δεν είναι πανάκεια, όπως αποδείχθηκεότιδενήτανκαιηδοµηµένη στην εποχή της. " 15