2017_PLH24_erg1

ΣΤΟΙΧΕΙΑ ΠΟΥ ΣΥΜΠΛΗΡΩΝΕΙ Ο ΦΟΙΤΗΤΗΣ / Η ΦΟΙΤΗΤΡΙΑ
Ονοματεπώνυμο φοιτητή
                           
Αριθμός Μητρώου
           
Κωδικός Θ.Ε.
ΠΛΗ24
Κωδικός Τμήματος

Α/Α Γραπτής εργασίας
1η ΕΡΓΑΣΙΑ
Ονοματεπώνυμο καθηγητή

Σχόλια προς καθηγητή









Υπεύθυνη Δήλωση Φοιτητή: Βεβαιώνω ότι είμαι συγγραφέας αυτής της εργασίας και ότι κάθε βοήθεια την οποία είχα για την προετοιμασία αυτής της εργασίας, είναι πλήρως αναγνωρισμένη και αναφέρεται, είτε στο σημείο «Σχόλια προς καθηγητή», είτε μέσα στην εργασία. Επίσης, έχω αναφέρει τις όποιες πηγές από τις οποίες έκανα χρήση δεδομένων, ιδεών ή λέξεων, είτε αυτές αναφέρονται ακριβώς, είτε παραφρασμένες. Επίσης, βεβαιώνω ότι αυτή η εργασία προετοιμάστηκε από εμένα προσωπικά ειδικά για τη συγκεκριμένη Θεματική Ενότητα.

          Συμφωνώ και αποδέχομαι την ανωτέρω δήλωση
          Δε συμφωνώ και δεν αποδέχομαι την ανωτέρω δήλωση (στην περίπτωση αυτή, ο Κ-Σ έχει δικαίωμα να μην αξιολογήσει την εργασία του φοιτητή)



Ημερομηνία ανακοίνωσης εργασίας: Παρασκευή, 27/10/2017

Ημερομηνία υποβολής εργασίας: Τετάρτη, 22/11/2017, 11:59 μ.μ.

Ημερομηνία υποβολής εργασίας με ατομική παράταση: Τετάρτη 29/11/2017, 11:59 μ.μ.


ΣΤΟΙΧΕΙΑ ΠΟΥ ΣΥΜΠΛΗΡΩΝΕΙ Ο ΚΑΘΗΓΗΤΗΣ
Ημερομηνία αξιολόγησης

Τελικός βαθμός


Σχόλια προς φοιτητή / φοιτήτρια



















Αναλυτική Αξιολόγηση

Άσκηση
Περιγραφή
Ποσοστό
Βαθμός
1.Α
Δημιουργία διαγράμματος ΠΧ
15

1.Β
Δημιουργία εννοιολογικού μοντέλου
15

1.Γ
Ορισμός λεκτικής περιγραφής ΠΧ
10

2.Α
Τροποποίηση κώδικα κλάσεων
20

2.Β
Δημιουργία κλάσης Crypto και της μεθόδου main
20

2.Γ
Εκτέλεση της εφαρμογής
5

2.Δ
Χρήση εκσφαλματωτή (Debugger)
5

3
Συμμόρφωση με τους κανόνες συγγραφής
10


Σύνολο
100

 




Εκφώνηση της 1ης άσκησης

 Σύστημα Διαχείρισης Διαδρομών ΟΑΣ
Πρόκειται να κατασκευαστεί ένα σύστημα λογισμικού για τη «Διαχείριση Διαδρομών Αστικών Λεωφορείων και Τραμ»  του ΟΑΣ (Οργανισμός Αστικών Συγκοινωνιών). Οι βασικές λειτουργίες και οι εμπλεκόμενοι παρουσιάζονται στη συνέχεια.
Οι υπάλληλοι του ΟΑΣ έχουν ως κύριο στόχο να διαχειριστούν τις διαδρομές και τις στάσεις όσον αφορά τον προγραμματισμό των χρόνων άφιξης και αναχώρησης των λεωφορείων/τραμ στις στάσεις κάθε διαδρομής. Η συγκεκριμένη πληροφορία γίνεται διαθέσιμη στον πελάτη ο οποίος μπορεί να ενημερώνεται για τον ακριβή χρόνο άφιξης λεωφορείου / τραμ σε συγκεκριμένη στάση. Για τη διασφάλιση αυτής της διαδικασίας, οι οδηγοί λεωφορείου / τραμ οφείλουν να ενημερώνουν το σύστημα για την ώρα άφιξης και αναχώρησης του λεωφορείου / τραμ σε κάθε στάση που σταματάει πατώντας το κουμπί «Άφιξη» ή «Αναχώρηση» αντίστοιχα. Το λεωφορείο/τραμ δεν μπορεί να αναχωρήσει πριν από την προγραμματισμένη ώρα αναχώρησης σε κάθε στάση. Στο τέλος κάθε ημέρας, οι υπάλληλοι εκδίδουν καταστάσεις στατιστικών για τις διαδρομές των λεωφορείων/τραμ.
Κάθε πελάτης μπορεί να εγγραφεί στο σύστημα του ΟΑΣ και να υποβάλλει αίτηση απόκτησης κάρτας πολλαπλών διαδρομών (μηνιαία, τριμηνιαία, εξαμηνιαία, ετήσια). Κατά την διάρκεια της διαδικασίας, το σύστημα ενημερώνει με email τον πελάτη για την πορεία της αίτησης έκδοσης κάρτας πολλαπλών διαδρομών (π.χ., "Έχουμε παραλάβει την αίτηση σας", "Η αίτηση σας είναι σε κατάσταση ελέγχου", "Ο έλεγχος ολοκληρώθηκε, η κάρτα θα σας αποσταλεί σύντομα"). Όταν η κάρτα είναι έτοιμη αποστέλλεται στον πελάτη με email, ο οποίος είναι υποχρεωμένος να την τυπώσει. Η διαδικασία της εκτύπωσης είναι εκτός συστήματος. Μετά τη λήξη της περιόδου χρήσης της κάρτας, ο πελάτης μπορεί να ενημερώνει την κάρτα πολλαπλών διαδρομών με τραπεζική χρέωση διαδικτυακά ή μέσω εξωτερικού μηχανήματος του ΟΑΣ.
Η διαχείριση του συστήματος (εκτελείται αποκλειστικά από το Διαχειριστή) περιλαμβάνει τη διαδικασία δημιουργίας λογαριασμών, καθώς κάθε χρήστης για να εισέλθει στο σύστημα χρειάζεται να κάνει ταυτοποίηση των στοιχείων του.

 Ερώτημα Α – Δημιουργία Διαγράμματος Περιπτώσεων Χρήσης (ΠΧ)
Να σχεδιάσετε το διάγραμμα ΠΧ του συστήματος που αντιστοιχεί στην παραπάνω περιγραφή. Όπου θεωρείτε ότι απαιτείται, να κάνετε τις αναγκαίες παραδοχές ώστε το διάγραμμα να είναι όσο το δυνατόν πλήρες. Στη συνέχεια, να τεκμηριώσετε σύντομα τις επιλογές σας.

Μαθησιακά Αποτελέσματα
Στην άσκηση 1.Α. θα σας δοθεί η δυνατότητα να κατανοήσετε:
  • τη διεργασία του προσδιορισμού των  απαιτήσεων (Requirement Specification) και
  • τον τρόπο κατασκευής του «Διαγράμματος Περιπτώσεων Χρήσης» (Use Case Diagram).
Πιο συγκεκριμένα, σε σχέση με την διεργασία του «Προσδιορισμού  Απαιτήσεων» θα κατανοήσετε
  • τον ορισμό των απαιτήσεων και
  • τους δύο κύριους τύπους των απαιτήσεων.
Σε σχέση με την κατασκευή του «Διαγράμματος Περιπτώσεων Χρήσης» θα μπορέσετε:
  • να παραθέσετε μία περιγραφή του διαγράμματος ΠΧ,
  • να παραθέσετε τα 4 μέλη που ένα διάγραμμα ΠΧ περιλαμβάνει,
  • να περιγράψετε την λειτουργικότητα του κάθε μέλους,
  • να παραθέσετε τα 3 είδη σχέσεων των ΠΧ,
  • να περιγράψετε την λειτουργικότητα του κάθε είδους σχέσης,
  • να αντιστοιχίσετε το κάθε μέλος του διαγράμματος ΠΧ με το σύμβολό του και
  • να αντιστοιχίσετε την κάθε σχέση του διαγράμματος ΠΧ με το σύμβολό της.


Απάντηση

Εντοπίστε τους χειριστές του συστήματος και ορίστε τα όρια του συστήματος.
Εισάγετε το διάγραμμα ΠΧ, παρουσιάστε τις παραδοχές σας και τεκμηριώστε σύντομα τις επιλογές σας.
Εάν δεν έχετε δώσει απάντηση γράψτε με κεφαλαία γράμματα: ΔΕΝ ΑΠΑΝΤΗΘΗΚΕ.
Εάν εν γνώση σας δίνετε ελλιπή απάντηση γράψτε με κεφαλαία γράμματα: ΕΛΛΙΠΗΣ ΑΠΑΝΤΗΣΗ. Εξηγήστε σε ποιο σημείο θεωρείται την απάντηση ελλιπή και γιατί.

Ερώτημα Β – Δημιουργία εννοιολογικού μοντέλου
Με βάση την περιγραφή του συστήματος να σχεδιάσετε το εννοιολογικό μοντέλο (αρχικό διάγραμμα κλάσεων) τεκμηριώνοντας - την επιλογή των κλάσεων και των συσχετίσεων μεταξύ τους. Όπου απαιτείται, να κάνετε τις αναγκαίες παραδοχές ώστε το εννοιολογικό μοντέλο να είναι όσο το δυνατόν πλήρες.

Μαθησιακά Αποτελέσματα
Στην άσκηση 1.Α. θα σας δοθεί η δυνατότητα να κατανοήσετε:
  • την κατασκευή του «Εννοιολογικού Μοντέλου» και 
  • την κατασκευή του «Διαγράμματος Κλάσεων»
Σχετικά με την κατασκευή του «Εννοιολογικού Μοντέλου» θα μπορέσετε:
  •  να κατανοήσετε την έννοια του μοντέλου,
  •  να κατανοήσετε την έννοια του εννοιολογικού μοντέλου,
  •  να περιγράψετε τα 2 είδη μελών  που το εννοιολογικό μοντέλο περιλαμβάνει και
  •  να περιγράψετε την σχεδίαση των μελών  που περιλαμβάνει το εννοιολογικό μοντέλο.


Απάντηση
Α) Σχεδιάστε και εισάγετε το εννοιολογικό μοντέλο.
Β) Αιτιολογήστε τους λόγους για τους οποίους επιλέξατε τις κλάσεις που χρησιμοποιήσατε, στον παρακάτω πίνακα. Προσδιορίστε τις σχέσεις τους και δώστε μια σύντομη περιγραφή / αιτιολόγησή τους.
Εάν δεν έχετε δώσει απάντηση γράψτε με κεφαλαία γράμματα: ΔΕΝ ΑΠΑΝΤΗΘΗΚΕ.
Εάν εν γνώση σας δίνετε ελλιπή απάντηση γράψτε με κεφαλαία γράμματα: ΕΛΛΙΠΗΣ ΑΠΑΝΤΗΣΗ. Εξηγήστε σε ποιο σημείο θεωρείται την απάντηση ελλιπή και γιατί.

Εννοιολογική κλάση
Σχετίζεται με
Περιγραφή / Αιτιολόγηση
Για παράδειγμα Πελάτης

ΧΧΧΧΧΧΧΧΧΧΧ-κλάση
Απλή συσχέτιση, 1:Ν
Για να διατηρηθεί η γνώση σχετικά, ως ιστορικό















Ερώτημα Γ – Ορισμός λεκτικής περιγραφής ΠΧ

Σε συνέχεια να ορίσετε τη λεκτική περιγραφή της Π.Χ. «Διαχείριση Διαδρομών».

Μαθησιακά Αποτελέσματα
Στην άσκηση 1.Γ θα σας δοθεί η δυνατότητα να κατανοήσετε την «Λεκτική Περιγραφή των ΠΧ» (Use Case Description). Πιο συγκεκριμένα θα μπορέσετε:
  • να  ορίσετε την έννοια της ΠΧ,
  • να  παραθέσετε τα 8 μέρη που περιλαμβάνει μία ΠΧ,
  • να  περιγράψετε τον τρόπο σύνταξης της ΠΧ και
  • να  περιγράψετε τον τρόπο σύνταξης των σχέσεων μεταξύ ΠΧ.

Απάντηση

Συμπληρώστε τα παρακάτω πεδία.
Εάν δεν έχετε δώσει απάντηση γράψτε με κεφαλαία γράμματα: ΔΕΝ ΑΠΑΝΤΗΘΗΚΕ.
Εάν εν γνώση σας δίνετε ελλιπή απάντηση γράψτε με κεφαλαία γράμματα: ΕΛΛΙΠΗΣ ΑΠΑΝΤΗΣΗ. Εξηγήστε σε ποιο σημείο θεωρείται την απάντηση ελλιπή και γιατί.

Περίπτωση χρήσης: ΠΧ «Διαχείριση Διαδρομών»
Κύριος χειριστής:  
Δευτερεύοντες χειριστές:
Προυποθέσεις:
Μετασυνθήκες (Κατάσταση εξόδου):
Σύντομη περιγραφή:
Βασική ροή:
1.       <βήμα 1>
2.       <βήμα 2> Εναλλακτική ροή Α
3.       <βήμα 3>
4.       <βήμα 4> Εναλλακτική ροή Β
5.       …..
Εναλλακτικές ροές:
Εναλλακτική ροή Α
1.       <βήμα 2.1>
2.       <βήμα 2.1>
3.       …….
Εναλλακτική ροή Β
1.       <βήμα 4.1>
2.       <βήμα 4.1>
3.       …….
Τα παραπάνω βήματα δείχνουν ένα σκελετό μιας τυχαίας βασικής ροής και τη σύνδεσή της με τις εναλλακτικές ροές. Συνεπώς, ο αριθμός των βημάτων που παρουσιάζονται παραπάνω καθώς και των εναλλακτικών ροών δεν συνδέονται με την εκφώνηση της άσκησης 1.

Εκφώνηση της 2ης άσκησης

«Κρυπτογράφηση με τον Κώδικα του Καίσαρα»
Ο Κώδικας του Καίσαρα είναι μία από τις απλούστερες και πιο γνωστές τεχνικές κωδικοποίησης στην κρυπτογραφία. Είναι κώδικας αντικατάστασης στον οποίο κάθε γράμμα του κειμένου αντικαθίσταται από κάποιο άλλο γράμμα με σταθερή απόσταση κάθε φορά στο αλφάβητο. Για παράδειγμα, όπως φαίνεται στην παρακάτω εικόνα (πηγή wikipedia) με μετατόπιση 3, το Α θα αντικαθίστατο από το D, το Β από το Ε, και ούτω καθεξής.

Εικόνα 1 - Παράδειγμα μετατόπισης στον κώδικα του Καίσαρα

Η μέθοδος πήρε το όνομά της από τον Ιούλιο Καίσαρα, ο οποίος την χρησιμοποιούσε στην προσωπική του αλληλογραφία.

public abstract class CaesarCipher {
    private int key; //κλειδί μετατόπισης
   
   
    //constructor με τον οποίο εισάγεται το κλειδί της μετατόπισης
    public CaesarCipher(int key){  
      //εισαγωγή κατάλληλων εντολών
    }
   
    public abstract String encrypt(String phrase);
    public abstract String decrypt(String phrase);
      
}

public class CaesarCrypto extends CaesarCipher {

    //εισαγωγή κατάλληλων εντολών

    public String encrypt(String phrase){
       //εισαγωγή κατάλληλων εντολών
    }
    public String decrypt(String phrase){
       //εισαγωγή κατάλληλων εντολών
    }
}

Ερώτημα Α – Τροποποίηση κώδικα κλάσεων

1.       Στις παραπάνω κλάσεις CaesarCipher και CaesarCrypto να συμπληρώστε τον κώδικα που λείπει.
2.       Να δημιουργήσετε την κλάση JuliusCaesar η οποία κληρονομεί την κλάση CaesarCrypto και επιπλέον υπερκαλύπτει τις μεθόδους της CaesarCrypto ώστε να μετακινεί τους χαρακτήρες κατά το πλήθος χαρακτήρων που υποδεικνύει ο πίνακας shift που περιλαμβάνει ένα πλήθος από ακεραίους αριθμούς. Διευκρινίζεται πως η κρυπτογράφηση της JuliusCaesar θα είναι πάνω στην κρυπτογράφηση της CaesarCrypto, δηλ. θα προηγείται η κρυπτογράφηση της CaesarCrypto και πάνω στο αποτέλεσμά της θα εφαρμόζεται η κρυπτογράφηση της JuliusCaesar. Ο πίνακας shift θα δίδεται κατά την κατασκευή του αντικειμένου τύπου JuliusCaesar. Το μέγεθος του πίνακα μπορεί να είναι μέχρι 10 θέσεις. Κάθε χαρακτήρας της φράσης που κρυπτογραφείται θα μετακινείται κατά τόσες θέσεις, όσες είναι αυτές που υποδεικνύει ο αριθμός που βρίσκεται στην θέση του πίνακα που είναι ίδιος με τη θέση του χαρακτήρα της φράσης που μετατοπίζεται. Αν το μέγεθος του πίνακα είναι μικρότερο από το μέγεθος της φράσης που κρυπτογραφείται τότε θα χρησιμοποιείται ξανά από την αρχή για τους υπόλοιπους χαρακτήρες της φράσης για όσες φορές χρειαστεί. 

Η παρακάτω εικόνα δίνει ένα παράδειγμα της μετατόπισης που προκαλεί η JuliusCaesar στην φράση ABCDE. Πρώτα θα γίνει η σταθερή μετατόπιση 3 θέσεων που προκαλείται από την υπερκλάση CaesarCrypto και μετά θα γίνει η επιπλέον μετατόπιση σύμφωνα με τον πίνακα shift ο οποίος στο παράδειγμά μας είναι ο [4,2,5]. Έτσι λοιπόν η φράση ABCDE θα μετατραπεί πρώτα σε DEFGH (λόγω της μετατόπισης που προκαλείται από την CaesarCrypto) και μετά θα γίνουν τα παρακάτω:
i.                     To D θα μετατοπιστεί κατά 4 θέσεις και θα γίνει Η
ii.                   To E θα μετατοπιστεί κατά 2 θέσεις και θα γίνει G
iii.                  To F θα μετατοπιστεί κατά 5 θέσεις και θα γίνει K
iv.                  Στο προηγούμενο βήμα φτάσαμε στο τέλος του πίνακα shift και θα πρέπει να ξεκινήσουμε πάλι από την αρχή. To G θα μετατοπιστεί δηλαδή κατά 4 θέσεις και θα γίνει K
v.                    To H θα μετατοπιστεί κατά 4 θέσεις και θα γίνει J

Εικόνα 2 Παράδειγμα λειτουργίας της JuliusCaesar


Να χρησιμοποιήσετε μεθόδους της κλάσης String. Επιπλέον, μπορείτε να χρησιμοποιήσετε την μετατροπή τύπου (casting) ενός char σε int ή και το ανάποδο, δηλαδή την μετατροπή ενός int σε char. Οι μετατροπές μπορεί να γίνονται άμεσα (explicitly) ή έμμεσα (implicitly).
Στο παρακάτω παράδειγμα δίδεται μια περίπτωση έμμεσης μετατροπής τύπου:

char c = ‘d’;
int i = c+2; // o χαρακτήρας c μετατρέπεται σε ακέραιο με τιμή τον
// κωδικό του ‘d’ κατά την εκάστοτε κωδικοποίηση του
// χαρακτήρα
// Η μετατροπή είναι έμμεση γιατί ο χαρακτήρας συμμετέχει
// στην πρόσθεση με τον ακέραιο 2 και το αποτέλεσμα
// αναμένεται να είναι ο ακέραιος i.
Στο παρακάτω παράδειγμα δίδεται μια περίπτωση  άμεσης μετατροπής τύπου:

char c = ‘d’;
int i = (int)c;     // o χαρακτήρας μετατρέπεται άμεσα σε ακέραιο με
// τιμή τον κωδικό του ‘d’ κατά την εκάστοτε
// κωδικοποίηση του χαρακτήρα,

Στο παρακάτω παράδειγμα ο χαρακτήρας d μετατοπίζεται 3 θέσεις αριστερά :

char c = ‘d’-3; // c==’a

Στο επόμενο παράδειγμα ο χαρακτήρας d μετατοπίζεται 1 θέση δεξιά:

char c = ‘d’+1; // c==’e


Επιπλέον, μπορείτε να κάνετε χρήση του τελεστή % ο οποίος δίνει το υπόλοιπο της διαίρεσης δύο ακεραίων αριθμών. Για να γίνει κατανοητή η λειτουργία του τελεστή % δίδονται τα παρακάτω παραδείγματα:
int a = 14%3; //a==2 (3*4==12 και υπόλοιπο 2)

int b = 5%6; //b==5

Μαθησιακά Αποτελέσματα
Στην άσκηση 2.Α. θα σας δοθεί αρχικά η δυνατότητα να 
·       αναλύσετε τον κώδικα μιας κλάσης Java ως προς τη λειτουργικότητά της και
·       διαπιστώσετε την ορθότητα του κώδικα μιας κλάσης Java ως προς το συντακτικό της γλώσσας.
Επιπλέον, η άσκηση θα σας επιτρέψει να μελετήσετε και να κατανοήσετε την έννοια της «Κλάσης». Πιο συγκεκριμένα, θα μπορέσετε:
·       να ορίσετε με ακρίβεια την έννοια της κλάσης,
·       να κατανοήσετε τα βασικά δομικά στοιχεία μιας κλάσης,
·       να κατανοήσετε την έννοια της μεθόδου,
·       να εξηγήσετε τις βασικές διαφορές ενός κατασκευαστή από μια απλή μέθοδο,
·       να κατασκευάστε σε Java μέθοδο με ορίσματα και τύπο επιστροφής και
·       να επεξηγήσετε τη συμπεριφορά μιας άγνωστης κλάσης.
Παράλληλα θα μπορέσετε να κατανοήσετε την έννοια της «Αφηρημένης Κλάσης» και
·       να διακρίνετε την ανάγκη ορισμού αφηρημένων κλάσεων με βάση τις απαιτήσεις μιας εφαρμογής.
Επίσης, θα μπορέσετε να κατανοήσετε τις έννοιες της «Ενθυλάκωσης Δεδομένων», της «Κληρονομικότητας» καθώς και του «Πολυμορφισμού». Πιο συγκεκριμένα, σε σχέση με την έννοια της «Ενθυλάκωσης Δεδομένων» θα είσαστε σε θέση:
·       να ορίσετε με ακρίβεια την έννοια της ενθυλάκωσης δεδομένων.
Σε σχέση με την έννοια της «Κληρονομικότητας» θα μπορέσετε:
·       να ορίσετε με ακρίβεια την έννοια της κληρονομικότητας,
·       να αναγνωρίσετε την υπερκλάση και τις υποκλάσεις σε μια ιεραρχία κλάσεων και
·       να κατασκευάσετε μια κλάση που να κληρονομεί από μια άλλη κλάση.
Και τέλος σε σχέση με την έννοια του «Πολυμορφισμού» θα μπορέσετε:
·       να αναπτύξετε μια υποσκελισμένη μέθοδο μιας υπάρχουσας μεθόδου σε μια κλάση που να μεταβάλλει τη λειτουργικότητά της και
·       να διακρίνετε τις μεθόδους που θα εκτελεστούν σε ένα πρόγραμμα που καλεί υποσκελισμένες μεθόδους.
·       να μετατρέψετε άμεσα ή έμμεσα τύπους.


Απάντηση

Εισάγετε τον κώδικα Java που φτιάξατε. Φροντίστε ο κώδικας να είναι μορφοποιημένος κατάλληλα και να είναι ευανάγνωστος. Θα πρέπει να υπάρχει τεκμηρίωση με μορφή σχολίων.
Εάν δεν έχετε δώσει απάντηση γράψτε με κεφαλαία γράμματα, ΔΕΝ ΑΠΑΝΤΗΘΗΚΕ.
Εάν εν γνώση σας δίνετε ελλιπή απάντηση γράψτε με κεφαλαία γράμματα, ΕΛΛΙΠΗΣ ΑΠΑΝΤΗΣΗ.

Ερώτημα Β – Δημιουργία κλάσης Crypto και της μεθόδου main
1)       Να δημιουργήσετε την κλάση Crypto που περιέχει μέθοδο main. Στη μέθοδο main, θα δημιουργήσετε δύο αντικείμενα: Το ένα τύπου CaesarCrypto με μετατόπιση 3 θέσεων και το άλλο τύπου JuliusCaesar με μετατόπιση 2 θέσεων και πίνακα μετατόπισης {5,4,6,7,8}.
2)       Να κρυπτογραφήσετε τη φράση «Καλώς ήλθατε στην ΠΛΗ24» χρησιμοποιώντας τις μεθόδους encrypt των δύο αντικειμένων και να τις αποθηκεύσετε σε μεταβλητές.
3)       Εκτυπώστε τις κρυπτογραφημένες φράσεις .
4)       Να αποκρυπτογραφήσετε τις κρυπτογραφημένες φράσεις που αποθηκεύσατε χρησιμοποιώντας τις αντίστοιχες μεθόδους decrypt των δύο αντικειμένων και να τις εκτυπώσετε.
Μαθησιακά Αποτελέσματα
Στην άσκηση 2.Β. θα σας δοθεί αρχικά η δυνατότητα σε σχέση με την έννοια της «Κλάσης»:
·       να  αναπτύξετε μια απλή κλάση σε Java,
·       να ορίσετε με ακρίβεια την έννοια της κλάσης,
·       να αναφέρετε τα βασικά δομικά στοιχεία μιας κλάσης,
·       να ορίσετε με ακρίβεια την έννοια της μεθόδου,
·       να κατασκευάσετε σε Java μέθοδο με ορίσματα και τύπο επιστροφής και
·       να δημιουργήσετε τις κλάσεις για την ανάπτυξη μιας εφαρμογής.
Επίσης, σχετικά με την έννοια του «Αντικειμένου» θα μπορέσετε:
·       να ορίσετε με ακρίβεια την έννοια του αντικειμένου,
·       να εξηγήσετε τη διαφορά μεταξύ μιας κλάσης και ενός αντικειμένου και
·       να κατασκευάσετε αντικείμενα μιας κλάσης με διαφορετικά χαρακτηριστικά σε Java.
Τέλος, σε σχέση με την έννοια της «Ενθυλάκωσης Δεδομένων» θα μπορέσετε:
·       να διακρίνετε ποιες υποκλάσεις μιας κλάσης μπορούν να έχουν πρόσβαση στις μεταβλητές της ανάλογα με το βαθμό ενθυλάκωσής τους.


Απάντηση

Εισάγετε τον κώδικα Java που φτιάξατε. Φροντίστε ο κώδικας να είναι μορφοποιημένος κατάλληλα και να είναι ευανάγνωστος. Θα πρέπει να υπάρχει τεκμηρίωση με μορφή σχολίων.
Εάν δεν έχετε δώσει απάντηση γράψτε με κεφαλαία γράμματα: ΔΕΝ ΑΠΑΝΤΗΘΗΚΕ.
Εάν εν γνώση σας δίνετε ελλιπή απάντηση γράψτε με κεφαλαία γράμματα: ΕΛΛΙΠΗΣ ΑΠΑΝΤΗΣΗ. Εξηγήστε σε ποιο σημείο θεωρείται την απάντηση ελλιπή και γιατί.

Ερώτημα Γ – Εκτέλεση της εφαρμογής

Να εκτελέσετε την εφαρμογή που φτιάξατε.
Μαθησιακά Αποτελέσματα
Στην άσκηση 2.Γ θα σας δοθεί η δυνατότητα να κατανοήσετε το ολοκληρωμένο περιβάλλον ανάπτυξης Netbeans και να χρησιμοποιήσετε τις βασικές του δυνατότητες.

Απάντηση

Να εκτελέσετε την εφαρμογή και να εισαγάγετε εικόνα(ες) (screendump), όπου θα φαίνεται το αποτέλεσμα της εκτέλεσης.
Εάν δεν έχετε δώσει απάντηση γράψτε με κεφαλαία γράμματα: ΔΕΝ ΑΠΑΝΤΗΘΗΚΕ.
Εάν εν γνώση σας δίνετε ελλιπή απάντηση (π.χ. η εφαρμογή δεν τρέχει σωστά) γράψτε με κεφαλαία γράμματα: ΕΛΛΙΠΗΣ ΑΠΑΝΤΗΣΗ. Εξηγήστε σε ποιο σημείο θεωρείται την απάντηση ελλιπή και γιατί.


Ερώτημα Δ – Χρήση εκσφαλματωτή (Debugger)

Να διατρέξετε με τον εκσφαλματωτή (debugger) του NetBeans, τη μέθοδο decrypt της κλάσης JuliusCaesar, δίνοντας σε μορφή πίνακα τις διαδοχικές τιμές του αποτελέσματός της (της φράσης που αποκρυπτογραφείται).
Μαθησιακά Αποτελέσματα
Στην άσκηση 2.Δ θα σας δοθεί η δυνατότητα να κατανοήσετε το ολοκληρωμένο περιβάλλον ανάπτυξης Netbeans και να χρησιμοποιήσετε τις βασικές του δυνατότητες.
Επιπλέον, θα μπορέσετε:
·       να κατανοήσετε την έννοια του «Σφάλματος Προγράμματος»,
·       να κατανοήσετε τις κατηγορίες σφαλμάτων προγράμματος και
·       να διακρίνετε όλα τα συντακτικά σφάλματα σε ένα πρόγραμμα.


Απάντηση

Α) Εισάγετε σε μορφή πίνακα τις διαδοχικές τιμές του πίνακα. Χρησιμοποιήστε τον αντίστοιχο πίνακα της 1ης εργασίας  του ακαδημαϊκού έτους 2014-2015 την οποία μπορείτε να βρείτε στο study.eap.gr στο φάκελο με τις γραπτές εργασίες των προηγουμένων ετών.
Β) Εισάγετε εικόνα (screendump), όπου θα φαίνεται η τιμή αυτής της μεταβλητής σε ένα βήμα της εκτέλεσης.
Εάν δεν έχετε δώσει απάντηση γράψτε με κεφαλαία γράμματα: ΔΕΝ ΑΠΑΝΤΗΘΗΚΕ.
Εάν εν γνώση σας δίνετε ελλιπή απάντηση (π.χ. εφαρμογή δεν τρέχει σωστά) γράψτε με κεφαλαία γράμματα: ΕΛΛΙΠΗΣ ΑΠΑΝΤΗΣΗ. Εξηγήστε σε ποιο σημείο θεωρείται την απάντηση ελλιπή και γιατί.

Υποδείξεις για τη συγγραφή της εργασίας


1)   Για την απάντηση της εργασίας θα πρέπει να χρησιμοποιηθεί το υπόδειγμα της εργασίας. Στο υπόδειγμα:
-          Συμπληρώστε όλα τα στοιχεία με κίτρινο.
-          Μην ξεχάσετε να δηλώσετε εάν η εργασία αποτελεί προϊόν αποκλειστικά δικής σας εργασίας.
-          Ενσωματώστε τις απαντήσεις (διαγράμματα ή/και κώδικα) μετά το κάθε ερώτημα. Δεν θα πρέπει να κάνετε παραπομπές της μορφής «βλέπε αρχείο…».
-          Αν δεν έχετε απαντήσει σε ένα ερώτημα γράψτε «ΔΕΝ ΑΠΑΝΤΗΘΗΚΕ».
-          Αν απαντήσατε με ελλείψεις σε ένα ερώτημα γράψτε «ΕΛΛΙΠΗΣ ΑΠΑΝΤΗΣΗ».
2)   Η συνεργασία στην ανάλυση της εργασίας επιτρέπεται, αλλά καλό είναι να αναφερθεί στον ειδικό χώρο στην πρώτη σελίδα της εργασίας. Η συνεργασία δεν πρέπει να οδηγεί σε από κοινού επίλυση και συγγραφή της εργασίας. Η υποβολή κοινών απαντήσεων από διαφορετικούς φοιτητές που συνεργάστηκαν δεν επιτρέπεται και θεωρείται ως ΑΝΤΙΓΡΑΦΗ. Οι απαντήσεις ελέγχονται, τόσο μεταξύ των φοιτητών του ιδίου τμήματος, όσο και μεταξύ φοιτητών διαφορετικών τμημάτων. Η αντιγραφή έχει ως αποτέλεσμα το ΜΗΔΕΝΙΣΜΟ ΤΗΣ ΕΡΓΑΣΙΑΣ ΣΥΝΟΛΙΚΑ και την παραπομπή των παραβατών στην Κοσμητεία της Σχολής Θετικών Επιστημών & Τεχνολογίας, σύμφωνα με τον εσωτερικό κανονισμό του ΕΑΠ.
3)   Η εκπόνηση της εργασίας θα πρέπει να γίνει αποκλειστικά με το εργαλείο Visual Paradigm για τη UML και Netbeans για τη Java.
4)   Η εργασία θα υποβληθεί στο σύστημα υποβολή εργασιών του study.eap.gr.
5)   Ο φοιτητής θα πρέπει να στείλει την σε δύο αρχεία
·       Το 1ο αρχείο θα έχει όνομα PLH24_1ERG_EPITHETO_ONOMA.doc και είναι το παρών αρχείο συμπληρωμένο με την απάντησή σας.
·       Το 2ο αρχείο είναι ένα συμπιεσμένο αρχείου zip ή rar με όνομα PLH24_1ERG_EPITHETO_ONOMA.<rar|zip>. Το συμπιεσμένο αρχείο θα πρέπει να αποτελείται από:
i.      Δύο καταλόγους (έναν για κάθε άσκηση της εργασίας) που θα περιέχουν τα διαγράμματα ή / και τον κώδικα που ζητά η κάθε άσκηση.
ii.    Ο κατάλογος με τον κώδικα Java (άσκηση 2) θα πρέπει να περιλαμβάνει το project όπως αυτό δημιουργείται από το εργαλείο Netbeans και θα πρέπει να μπορεί να εκτελείται χωρίς αλλαγές από τον καθηγητή.
iii.   Να γίνει χρήση λατινικών χαρακτήρων ΑΠΟΚΛΕΙΣΤΙΚΑ για την αποφυγή προβλημάτων με το moodle.

H εφαρμογή των παραπάνω κανόνων είναι ΥΠΟΧΡΕΩΤΙΚΗ και βαθμολογείται σύμφωνα με το αντίστοιχο κριτήριο αξιολόγησης. Η μη εφαρμογή του πρώτου κανόνα μπορεί να οδηγήσει σε συνολική απόρριψη της εργασίας.


ΚΑΛΗ ΕΠΙΤΥΧΙΑ!


Σχόλια