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

Σχετικά έγγραφα
12.6. Άσκηση 6 - [αξιοποίηση γραφικής διεπαφής (GUI)] (έκδοση 2004)

12.6. Άσκηση 6 - [αξιοποίηση γραφικής διεπαφής (GUI)] (έκδοση 2006)

(Logic Gate Simulator)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

ΠΛΗ111. Ανοιξη Μάθηµα 4 ο. Στοίβα. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Δομές Δεδομένων. Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή. Καθηγήτρια Μαρία Σατρατζέμη

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 4-1

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

Διορθώσεις Συμπληρώσεις επί της επανεκτύπωσης 2003 της 2 ης έκδοσης του βιβλίου «Διαδικαστικός Προγραμματισμός C»

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ΡΗΤΟΙ ΑΡΙΘΜΟΙ - ΘΕΩΡΙΑ

Συλλογές, Στοίβες και Ουρές

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

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

Επαναληπτικό ιαγώνισµα Πληροφορικής Γ Γυµνασίου Γιώργος Λιακέας Σχολικός Σύµβουλος Πληροφορικής Ερωτήσεις

Oι βασικές πράξεις (λειτουργίες) που ορίζονται για τον τύπο στοίβα αναφέρονται παρακάτω:

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή

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

Επανάληψη Θεωρίας. Καστούμης Γιώργος

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

Προγραμματισμός I (Θ)

Ανάπτυξη και Σχεδίαση Λογισμικού

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

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

4 η Θεµατική Ενότητα : Συνδυαστική Λογική. Επιµέλεια διαφανειών: Χρ. Καβουσιανός

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

1 η Θεµατική Ενότητα : Δυαδικά Συστήµατα

Εφαρµογή EXTRA. ιαδικασία εξαγωγής της Μηχανογραφικής. έκδοσης ισοζυγίου στην εφαρµογή Extra Λογιστική ιαχείριση.

ΕΡΩΤΗΣΕΙΣ ΔΙΑΦΟΡΩΝ ΤΥΠΩΝ ΣΤΟ ΚΕΦΑΛΑΙΟ 2.2

ΑΝ.ΕΦ. Γ ΛΥΚΕΙΟΥ Αν η συνθήκη ισχύει, τότε εκτελούνται οι εντολές που βρίσκονται µεταξύ των λέξεων ΤΟΤΕ και και η εκτέλεση του προγράµµατος συνεχίζετα

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

06 Αντικειμενοστρεφής ανάλυση και σχεδιασμός

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

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

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι

υναµικές οµές εδοµένων

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

Ορισµός της Στοίβας Περίληψη H λειτουργία της Στοίβας (γενικά, αλλά και στο QtSpim pim) Η χρησιµότητα της Στοίβας στους Μικροεπεξεργαστές Κλήση συνάρτ

ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Βασικά στοιχεία της Java

3 Αλληλεπίδραση Αντικειμένων

Στοίβες με Δυναμική Δέσμευση Μνήμης

Περιπτώσεις Χρήσης για το Π.Σ. ΜΟ.ΔΙ.Π. Κρήτης

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

Δοµές Δεδοµένων. 7η Διάλεξη Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

o AND o IF o SUMPRODUCT

ιορθώσεις επί της 2 ης έκδοσης εκτύπωσης 2002

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

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

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

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

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

Επαναληπτικές δοµές. µτ α.τ. Όχι. ! απαγορεύεται µέσα σε µία ΓΙΑ να µεταβάλλουµε τον µετρητή! διότι δεν θα ξέρουµε µετά πόσες επαναλήψεις θα γίνουν

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

5.1 Θεωρητική εισαγωγή

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

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

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός

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

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

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

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

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

σύνθεση και απλοποίησή τους θεωρήµατα της άλγεβρας Boole, αξιώµατα του Huntington, κλπ.

ΚΕΦΑΛΑΙΟ 2 Βασικές έννοιες αλγορίθµων

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

Μοντελοποίηση Συστημάτων

a = 10; a = k; int a,b,c; a = b = c = 10;

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός

Στοιχεία από Assembly Γιώργος Μανής

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

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

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

Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB

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

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

αριθμούς Βασικές ασκήσεις Βασική θεωρία iii) φυσικοί; ii) ακέραιοι; iii) ρητοί;

Η ακρίβεια ορίζεται σαν το πηλίκο των ευρεθέντων συναφών εγγράφων προς τα ευρεθέντα έγγραφα. Άρα για τα τρία συστήµατα έχουµε τις εξής τιµές:

Προγραμματισμός Η/Υ. 4 η ενότητα: Δομές Δεδομένων. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

1.1 A. ΟΙ ΠΡΑΓΜΑΤΙΚΟΙ ΑΡΙΘΜΟΙ ΚΑΙ ΟΙ

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

Προγραμματισμός Ι (ΗΥ120)

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

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

Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Οργάνωση Η/Υ. Γλώσσα Assembly. Τμήμα Εφαρμσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Α. Χατζηγεωργίου-Η. Σακελλαρίου

Βασικές οµές εδοµένων

Transcript:

Άσκηση 5Α_5 26/3/2003 11.5. Άσκηση 5A - [αναγνώριση αντικειµένων-διάγραµµα κλάσεων] [Σε αντικατάσταση της άσκησης 5 του κεφαλαίου 11] 11.5.1. Περιγραφή Η άσκηση αυτή είναι η πρώτη από µία σειρά ασκήσεων που έχουν σαν στόχο την ανάπτυξη ενός προγράµµατος (εφαρµογής) σε Java σύµφωνα µε το οποίο το σύστηµα θα δέχεται οποιαδήποτε έκφραση που ακολουθεί την αντίστροφη Πολωνική σηµειογραφία και περιέχει τους βασικούς αριθµητικούς τελεστές, και θα υπολογίζει την τιµή της. Για την ανάπτυξη της αριθµοµηχανής θα χρησιµοποιήσουµε την στοίβα ( ες ένθετο πλαίσιο που ακολουθεί.). Μια σύντοµη περιγραφή της αριθµοµηχανής που χρησιµοποιεί την στοίβα παρατίθεται στο ένθετο «Αριθµοµηχανή αντίστροφης Πολωνικής σηµειογραφίας». Για να µελετήσετε τον τρόπο ανάπτυξης της εφαρµογής µε διαδικαστικό προγραµµατισµό και C µπορείτε να ανατρέξτε στο κεφάλαιο 8 του πρώτου τόµου «ιαδικαστικός Προγραµµατισµός - C» του Κλ. Θραµπουλίδη ή στο κεφάλαιο 4 του βιβλίου «The C Programming Language» των B.Kernighan και D.Ritchie. Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες: 1. Εισαγωγή στοιχείου (push) 2. Eξαγωγή στοιχείου (pop) H λειτουργία «εισαγωγή στοιχείου» έχει σαν αποτέλεσµα την εισαγωγή και αποθήκευση ενός στοιχείου στην στοίβα µε την προϋπόθεση βέβαια ότι υπάρχει διαθέσιµος χώρος. Η λειτουργία «εξαγωγή στοιχείου» έχει σαν αποτέλεσµα την εξαγωγή από την στοίβα του στοιχείου που εισήχθη τελευταίο. Η στοίβα είναι γνωστή και µε το όνοµα Last In First Out (LIFO). Η στοίβα, η οποία χρησιµοποιείται ευρύτατα στο system programming, αποτελεί πολύ καλό εργαλείο για την υλοποίηση εκφράσεων που συντάσσονται σύµφωνα µε την µετα-θεµατική σηµειολογία. Στα πλαίσια αυτής της άσκησης απλά θα εξοικειωθείτε µε την λειτουργία µιας Αριθµοµηχανής 1. Την εφαρµογή πού έχει αναπτυχθεί σε Java θα την βρείτε στο συνοδευτικό CD. Την εφαρµογή αυτή θα χρησιµοποιήσετε για να περιγράψετε τις περιπτώσεις χρήσης του συστήµατος (use cases), να δώσετε τα διαγράµµατα αλληλεπίδρασης για κάθε περίπτωση χρήσης και να δηµιουργήσετε το διάγραµµα κλάσεων της εφαρµογής. Στο πρώτο διάγραµµα κλάσεων που θα κατασκευάσουµε από την παραπάνω διαδικασία θα εντοπίσουµε τις βασικές κλάσεις που απαρτίζουν τον πυρήνα (καρδιά) της αριθµοµηχανής χωρίς να λαµβάνουµε υπόψη σε αυτό το στάδιο τον τρόπο που η 1 H Αριθµοµηχανή που σας δίνεται συνοδεύεται και από ένα παράθυρο στο οποίο εµφανίζονται τα περιεχόµενα της στοίβας. Το παράθυρο αυτό θα σας βοηθήσει στην κατανόηση της λειτουργίας της στοίβας.

Άσκηση 11.5Α 2 αριθµοµηχανή επικοινωνεί µε τον χρήστη. Ο ορισµός των βασικών αυτών κλάσεων θα µπορεί να υποστηρίζει και γραφική αλλά και απλή διεπαφή µε τον χρήστη. 11.5.2. Στόχος Εξοικείωση µε την έννοια της περίπτωσης χρήσης (use case) και το πως αυτή χρησιµοποιείται στην διαδικασία εντοπισµού των αντικειµένων που απαρτίζουν το σύστηµα, µε το διάγραµµα κλάσεων το οποίο αναπαριστά τα αντικείµενα που απαρτίζουν το σύστηµα και τις µεταξύ τους συσχετίσεις. Χρόνος εκτέλεσης: Κατά την διάρκεια της µελέτης του κεφαλαίου 8 ή µε την ολοκλήρωση του. Αριθµοµηχανή αντίστροφης Πολωνικής σηµειογραφίας Η αριθµοµηχανή αντίστροφης Πολωνικής σηµειογραφίας δέχεται σαν είσοδο αριθµητικές εκφράσεις που είναι σύµφωνες µε την αντίστροφη Πολωνική σηµειογραφία, υπολογίζει την τιµή τους και την δίνει στο χρήστη. Η αντίστροφη Πολωνική σηµειογραφία είναι η γνωστή µας µεταθεµατική σηµειογραφία που αναφέραµε στο κεφάλαιο των τελεστών. Σύµφωνα µε αυτή µια έκφραση της ενθεµατικής σηµειογραφίας σαν την (3 + 6 ) * (8 6) παρουσιάζεται µε την παρακάτω µορφή 3 6 + 8 6 - * = Παρατηρήστε πως αν γνωρίζουµε τον αριθµό των τελεστέων πάνω στους οποίους ενεργεί ο κάθε τελεστής δεν απαιτούνται παρενθέσεις για την δηµιουργία της έκφρασης. Για τον υπολογισµό της τιµής της έκφρασης µπορεί να χρησιµοποιηθεί η έννοια της στοίβας (stack). Η στοίβα είναι ένας αποθηκευτικός χώρος στον οποίο µπορούµε να βάζουµε και να βγάζουµε αντικείµενα µε τον περιορισµό ότι βγαίνει πρώτο όποιο µπήκε τελευταίο (Last In First Out - LIFO). Στην συνέχεια θα δούµε πως µια οντότητα (άνθρωπος, υπολογιστής) υπολογίζει την τιµή της παράστασης µεταθεµατικής σηµειολογίας 3 6 + 8 6 - * = κάνοντας χρήση της στοίβας. Στον πίνακα που ακολουθεί, δίνονται οι απαραίτητες ενέργειες που θα πρέπει να κάνει η οντότητα και δίπλα τους η εκάστοτε κατάσταση της στοίβας. Ενέργεια Παίρνει το 3 και το βάζει στη στοίβα Παίρνει το 6 και το βάζει στη στοίβα έχεται το + το οποίο επιδρά πάνω σε δύο τελεστέους. Βγάζει δύο τελεστέους (το 6 και το 3), τους προσθέτει όπως ορίζει ο τελεστής + και το αποτέλεσµα το βάζει στην στοίβα. Παίρνει το 8 και το βάζει στη στοίβα Κατάσταση Στοίβας 3 6 3 9 8 9

Άσκηση 11.5Α 3 Παίρνει το 6 και το βάζει στη στοίβα έχεται το - το οποίο επιδρά πάνω σε δύο τελεστέους. Βγάζει δύο τελεστέους (το 8 και το 6), τους αφαιρεί όπως ορίζει ο τελεστής - και το αποτέλεσµα το βάζει στην στοίβα έχεται το * το οποίο επιδρά πάνω σε δύο τελεστέους. Βγάζει δύο τελεστέους (το 2 και το 9), τους αφαιρεί όπως ορίζει ο τελεστής - και το αποτέλεσµα το βάζει στην στοίβα έχεται τον τελεστή =, βγάζει ένα αντικείµενο (το 18 που είναι η τιµή της έκφρασης) και το δίνει στο χρήστη. 6 8 9 9 2 9 18 11.5.3. Οδηγίες Στη φάση αυτή θα αγνοήσουµε πλήρως τον τρόπο µε τον οποίο επικοινωνεί ο χρήστης µε το σύστηµα. Η επικοινωνία αυτή θα µπορεί να είναι διαµέσου της γραµµής διαταγών, ή ακόµη καλύτερα διαµέσου ενός γραφικού περιβάλλοντος όπως αυτού του calculator των Windows ή της διεπαφής που χρησιµοποιεί η υλοποίηση που θα βρείτε στο συνοδευτικό CD. Ίσως σε λίγα χρόνια η τεχνολογία µας δώσει την δυνατότητα να έχουµε σαν επιλογή και την ηχητική διεπαφή. Ένα είναι σαφές, οι κλάσεις που θα προκύψουν για την υλοποίηση της συγκεκριµένης σε κάθε περίπτωση διεπαφής θα πρέπει να έχουν τη µικρότερη δυνατή σύζευξη (coupling) µε τις κλάσεις που προκύπτουν από την περιοχή του προβλήµατος (problem space). Η διαδικασία της αναγνώρισης των κλάσεων των δύο περιοχών, του προβλήµατος και αυτής της λύσης (solution space), είναι µια σύνθετη διαδικασία που το αποτέλεσµα της προσδιορίζει την ποιότητα σχεδιασµού του συστήµατος. Η διαδικασία αυτή που περιγράφεται από τις αντικειµενοστρεφείς µεθοδολογίες Ανάλυσης και Σχεδιασµού συστηµάτων λογισµικού, είναι εκτός των ορίων του παρόντος βιβλίου. 11.5.4. Μεθοδολογία εκτέλεσης Η άσκηση δίνεται σαν ένα σύνολο από δραστηριότητες που πρέπει να εκτελέσετε µόνοι σας. Σε κάθε δραστηριότητα σας δίνονται οδηγίες και βοήθεια ώστε να ξεπεράσετε τα δύσκολα σηµεία. Στο τέλος της άσκησης σας δίνονται ενδεικτικές απαντήσεις των δραστηριοτήτων. ραστηριότητα 1 Λίστα περιπτώσεων χρήσης Θεωρήστε τις παρακάτω περιπτώσεις χρήσης: Ο χρήστης εισάγει ένα ψηφίο κατά την διαδικασία διαµόρφωσης του τελεστέου που εισάγει. Ο χρήστης ζητά την εκτέλεση της πράξης της πρόσθεσης. Καταγράψτε τις υπόλοιπες περιπτώσεις χρήσης του συστήµατος σας.

Άσκηση 11.5Α 4 Για να δείτε την δική µας λίστα περιπτώσεων χρήσης µπορείτε να ανατρέξετε στο τέλος της άσκησης. ραστηριότητα 2 Περιγραφή περίπτωσης χρήσης Περιγράψατε τις περιπτώσεις χρήσης που καταγράψατε στην προηγούµενη δραστηριότητα σας. Σας συνιστούµε να ακολουθήσετε τις παρακάτω ενέργειες. Για κάθε µια από τις ενέργειες αυτές θα βρείτε στο τέλος της άσκησης την δική µας πρόταση. Χρησιµοποιήστε φυσική γλώσσα για να περιγράψετε τις περιπτώσεις χρήσης του συστήµατος σας. Για κάθε µια περίπτωση χρήσης εντοπίστε τα αντικείµενα του συστήµατος που πρέπει να συνεργαστούν ώστε το σύστηµα σας να παρέχει την απαιτούµενη συµπεριφορά. ηµιουργήστε ένα διάγραµµα αλληλεπίδρασης για κάθε περίπτωση χρήσης. Χρησιµοποιήστε την UML σηµειολογία για να δώσετε το διάγραµµα κλάσεων του συστήµατος σας. Στο τέλος της άσκησης θα βρείτε την δική µας πρόταση στα πλαίσια της δραστηριότητας. Θα πρέπει να την µελετήσετε επισταµένως καθώς περιέχει επιπλέον πληροφορία από µια απλή πρόταση λύσης.

Άσκηση 11.5Α 5 11.5.5. Ενδεικτικές απαντήσεις των δραστηριοτήτων της άσκησης ραστηριότητα 1 Ενδεικτική απάντηση Μια πιο πλήρης λίστα µε περιπτώσεις χρήσης του συστήµατος της Αριθµοµηχανής δίνεται στη συνέχεια. Εσείς θα συµπληρώσετε την λίστα. Ο χρήστης εισάγει ένα ψηφίο κατά την διαδικασία διαµόρφωσης του τελεστέου που εισάγει. Ο χρήστης ζητά την διαγραφή του τελευταίου εισαχθέντος ψηφίου. Ο χρήστης γνωρίζει στο σύστηµα την ολοκλήρωση του τρέχοντος τελεστέου. Ο χρήστης ζητά την εκτέλεση της πράξης της πρόσθεσης. Ο χρήστης ζητά την εκτέλεση της πράξης της αφαίρεσης. ραστηριότητα 2 Ενδεικτική απάντηση Χρησιµοποιήστε φυσική γλώσσα για να περιγράψετε τις περιπτώσεις χρήσης του συστήµατος σας. Σας δίνουµε ενδεικτικά την περιγραφή των περιπτώσεων χρήσης: Ο χρήστης εισάγει ένα ψηφίο κατά την διαδικασία διαµόρφωσης του τελεστέου που εισάγει 2. Ο χρήστης ζητά την εκτέλεση της πράξης της πρόσθεσης Α) Περίπτωση χρήσης: «Ο χρήστης εισάγει ένα ψηφίο κατά την διαδικασία διαµόρφωσης του τελεστέου που εισάγει» Περίπτωση χρήσης: Ο χρήστης εισάγει ένα ψηφίο κατά την διαδικασία διαµόρφωσης του τελεστέου που εισάγει. Περιγραφή: Ο χρήστης ζητά την προσθήκη νέου ψηφίου στον υπό διαµόρφωση τελεστέο. Το σύστηµα προσθέτει το νέο ψηφίο στο τέλος του υπό διαµόρφωση τελεστέου και στη συνέχεια ενηµερώνει τον χρήστη για την νέα τιµή του υπό διαµόρφωση τελεστέου. Β) Περίπτωση χρήσης «Ο χρήστης ζητά την εκτέλεση της πράξης της πρόσθεσης». Περίπτωση χρήσης: Ο χρήστης ζητά την εκτέλεση της πράξης της πρόσθεσης. Περιγραφή: Ο χρήστης ζητά την εκτέλεση της πράξης της πρόσθεσης. Το σύστηµα παίρνει έναν τελεστέο από την στοίβα. Το σύστηµα παίρνει δεύτερο τελεστέο από την στοίβα. Το σύστηµα προσθέτει τους δύο τελεστέους και το άθροισµα τους το τοποθετεί στην στοίβα. 2 Κάνουµε την θεώρηση ότι ο χρήστης εισάγει ένα-ένα τα ψηφία του υπό διαµόρφωση τελεστέου όπως συµβαίνει µε τις Αριθµοµηχανές που χρησιµοποιούµε στην καθηµερινή ζωή.

Άσκηση 11.5Α 6 Ανάλογα θα εργασθείτε για τις υπόλοιπες περιπτώσεις χρήσης. Για κάθε µια περίπτωση χρήσης εντοπίστε τα αντικείµενα του συστήµατος που πρέπει να συνεργαστούν ώστε το σύστηµα σας να παρέχει την συµπεριφορά που του ζητείται. ηµιουργήστε ένα διάγραµµα αλληλεπίδρασης για κάθε περίπτωση χρήσης. Σας δίνουµε ενδεικτικά απάντηση για τις περιπτώσεις χρήσης: Ο χρήστης ζητά την εκτέλεση της πράξης της πρόσθεσης Ο χρήστης εισάγει ένα ψηφίο κατά την διαδικασία διαµόρφωσης του τελεστέου που εισάγει Α) Περίπτωση χρήσης: «Ο χρήστης εισάγει ένα ψηφίο κατά την διαδικασία διαµόρφωσης του τελεστέου που εισάγει» Από την περιγραφή της περίπτωσης χρήσης εντοπίζουµε το αντικείµενο τελεστέος που είναι τύπου Operand. Tο διάγραµµα αλληλεπίδρασης είναι πολύ απλό και δίνεται στη συνέχεια. User operand adddigit operandvalue H δηµιουργία του διαγράµµατος αλληλεπίδρασης µας βοηθά να ορίσουµε τις βασικές λειτουργίες που θα πρέπει να παρέχει κάθε αντικείµενο στα πλαίσια της συµµετοχής του στο σύστηµα. Οι λειτουργίες αυτές είναι γνωστές σαν αρµοδιότητες (responsibilities). Για µια πολύ καλή και αναλυτική περιγραφή της διαδικασίας αυτής µπορείτε να ανατρέξετε στην µεθοδολογία CRC (Class Responsibility Collaborations). Σε κάθε περίπτωση όµως οι µεθοδολογίες αυτές αποτελούν αντικείµενο του Software Engineering. Από το παραπάνω διάγραµµα αλληλεπίδρασης είναι εµφανές ότι αναθέτουµε σαν αρµοδιότητα στο αντικείµενο τύπου Operand την πρόσθεση (adddigit) ψηφίου στο τέλος της υπάρχουσας τιµής του. Στη συνέχεια θα δούµε πως στα πλαίσια άλλων διαγραµµάτων αλληλεπίδρασης το στιγµιότυπο τύπου Operand έχει και άλλες αρµοδιότητες. Οι αρµοδιότητες από όλα τα διαγράµµατα αλληλεπίδρασης που συµµετέχει στιγµιότυπο του συγκεκριµένου τύπου ορίζουν το σύνολο των αρµοδιοτήτων του εν λόγω αντικειµένου και θα µας οδηγήσει στον ορισµό της αντίστοιχης κλάσης. Β) Περίπτωση χρήσης «Ο χρήστης ζητά την εκτέλεση της πράξης της πρόσθεσης». Από την περιγραφή της περίπτωσης χρήσης εντοπίζουµε το αντικείµενο τελεστέος που είναι τύπου Operand και το αντικείµενο στοίβα που είναι τύπου Stack.

Άσκηση 11.5Α 7 Την λογική της εκτέλεσης των ενεργειών: Πάρε τελεστέο από την στοίβα Πάρε τελεστέο από την στοίβα Πρόσθεσε τους δύο τελεστέους Βαλε το άθροισµα στην στοίβα αποφασίζουµε να την αναθέσουµε σε ένα αντικείµενο που το ονοµάζουµε Adder. Στη συνέχεια δίνουµε το διάγραµµα αλληλεπίδρασης. User adder stack operate pop pop push Από το παραπάνω διάγραµµα αλληλεπίδρασης είναι εµφανές ότι αναθέτουµε σαν αρµοδιότητες στο αντικείµενο τύπου Stack την προσωρινή αποθήκευση τελεστέου (push) και την ανάκλιση (pop) τελεστέου. Στο στιγµιότυπο τύπου Adder αναθέτουµε µόνο µια αρµοδιότητα αυτή της εκτέλεσης της διεργασίας της πρόσθεσης. Θα εργασθείτε µε τον ίδιο τρόπο για τις υπόλοιπες περιπτώσεις χρήσης. Χρησιµοποιήστε την UML σηµειολογία για να δώσετε το διάγραµµα κλάσεων του συστήµατος σας. Από τα παραπάνω βήµατα έχουµε καταγράψει τα παρακάτω αντικείµενα από την περιοχή του προβλήµατος: Αριθµοµηχανή (Calculator) Τελεστής άθροισης (Adder) Τελεστής αφαίρεσης (Subtracter) Τελεστής πολλαπλασιασµού (Multiplier) Τελεστής διαίρεσης (Divider) Τελεστής εµφάνισης αποτελέσµατος (ResultPresenter) Στα παραπάνω αντικείµενα της φάσης της ανάλυσης θα συµπεριλάβουµε και τον σωρό (Stack), που αποτελεί αντικείµενο της φάσης σχεδιασµού. Αν επιλέγαµε αρχικά την διαµόρφωση της έκφρασης και στην συνέχεια τον υπολογισµό της τιµής της θα µπορούσε να περιληφθεί επιπλέον και η έκφραση (expression). εν θα ακολουθήσουµε όµως αυτή την προσέγγιση. Το σχήµα 5.1 δίνει ένα πρόχειρο διάγραµµα κλάσεων της εφαρµογής. Όπως µπορείτε να διακρίνετε έχει καταγραφεί η αφηρηµένη κλάση Operator της οποίας υποκλάσεις µπορούν να θεωρηθούν οι κλάσεις Adder, Subtracter, κλπ. Έχουν

Άσκηση 11.5Α 8 επίσης καταγραφεί οι σχέσεις κληρονοµικότητας µεταξύ των κλάσεων αυτών, καθώς και οι σχέσεις συνάθροισης µεταξύ της κλάσης Calculator και των υπολοίπων κλάσεων που απαρτίζουν την Αριθµοµηχανή. Χρησιµοποιήθηκε το σύµβολο από την πλευρά του όλου. Επιπλέον καταγράψαµε την κλάση Memory για να δώσουµε στην αριθµοµηχανή µας τη δυνατότητα υποστήριξης λειτουργιών µνήµης. Calculator Operator Operand Stack Memory Adder Subtracter Multiplier Divider Σχήµα 11.5.1. ιάγραµµα κλάσεων πολωνικής Αριθµοµηχανής (πρώτη εκδοχή).