Σε γενικές γραμμές η 2η Εργασία της Πλη 24 είναι απαιτητική αφού οι φοιτητές καλούνται να αναπτύξουν μια μικρο- εφαρμογή, με βάση ρεαλιστικές απαιτήσεις.
Πως εργαζόμαστε:
Πρώτα από όλα δεν ξεκινάμε την υλοποίηση σε java αν δεν έχουμε πρώτα κάνει τα απαραίτητα παρακάτω βήματα:1. Διαβάζετε όλα τα ερωτήματα της Άσκησης 1. ξανά και ξανά μέχρι να κατανοήσετε αυτό που σας ζητά το κείμενο. Κατά τη ανάγνωση κρατάτε σημειώσεις για πιθανές κλάσεις ή χρήστες.
2. Ρήματα όπως "εισάγει" , "καλεί" κτλ θα αποτελέσουν μεθόδους των κλάσεων.
3. Αν και δεν σας το ζητούν, μπορείτε να υλοποιήσετε ένα ψευδο- διάγραμμα Περιπτώσεων Χρήσης, στο πρόχειρο σας ώστε να ξεδιαλύνετε τι κάνει κάθε χρήστης του συστήματος .
4. Οι κλάσεις μπορεί να είναι εκτός από τις οφθαλμοφανές, και κρυφές όπως πχ. η Κλήση αφού γίνεται λόγος για αυτή στο τελευταίο υποερώτημα.
5. Ξεκινήστε να φτιάχνετε σε ένα χαρτί το διάγραμμα των κλάσεων σε εννοιολογικό μοντέλο και προσπαθήστε να αποδώσετε σχέσεις και συσχετίσεις μεταξύ τους. Μην προσπαθήσετε να σχεδιάσετε ολόκληρο το διάγραμμα, αλλά κομμάτι κομμάτι κάθε φορά. πχ. την λειτουργία της σύνδεσης , την λειτουργία της εγγραφής κτλ.
6. Κατά την υλοποίηση του κώδικα χρησιμοποιήστε σχόλια για το τι γράφετε, και μάλιστα ευδιάκριτα και αναλυτικά. Θα βοηθήσουν, πρώτα εσάς και έπειτα και τον ΣΕΠ σας για το τι κάνατε ή για το τι προσπαθήσατε να κάνετε.
7. Αν ο αριθμός των κλάσεων σας τρομάζει, όχι δεν έχετε κάνει λάθος. Είναι αρκετές. Εφοδιαστείτε με υπομονή και προσοχή στον κώδικα. Μην ξεχνάτε να υλοποιείτε πρώτα τις βασικές κλάσεις και μετά τις δευτερεύουσες.
8. Αν μετανιώσατε για ένα τμήμα του κώδικα μην τον διαγράφετε. Τοποθετήστε /* στην αρχή και στο τέλος */ ώστε να απενεργοποιηθεί. Αν καταλήξατε στην τελική μορφή τότε μπορείτε να διαγράψετε τα ανενεργά μέρη του κώδικά σας.
9. Διαγράμματα Ευρωστίας -Ακολουθίας
Θα πρέπει να έχουν πλήρη ταύτιση κατά την υλοποίηση τους τόσο στην ακολουθία των ενεργειών -βημάτων και μηνυμάτων (στο Ακολουθίας) όσο και με τον κώδικα java. Δεν μπορεί να υλοποιούμε Java κώδικα του στυλ getKATI και αυτό το κάτι στο διάγραμμα ευρωστίας να είναι doseonoma.
Συνεπώς η δυσκολία έγκειται στην εναρμόνιση του κώδικα και των διαγραμμάτων. Αυτό σημαίνει ότι θα πρέπει να υλοποιηθεί ο κώδικας και στην συνέχεια τα διαγράμματα.
Άλλωστε η δημιουργία των διαγραμμάτων μέσα από το Visual Paradigm είναι μια πολύ απλή διαδικασία όταν έχουμε τον κώδικα έτοιμο.
10.Μην ξεχνάτε την δύναμη των παραδοχών. Αν κάτι μπορεί να σας δυσκολέψει κατά την υλοποίηση ή να μην είναι τόσο απαραίτητο στοιχείο στο πρόγραμμά μας όπως κάποιες αποφάσεις που ανήκουν στην κρίση του Υπαλλήλου ή στην "καλή καρδιά" του μοτοσικλετιστή, δεν είναι απαραίτητο να δημιουργηθούν. Όμως θα πρέπει να εξηγηθούν με τις κατάλληλες παραδοχές.
Χρήσιμες Εντολές
1. Ορισμός μιας μεταβλητής με ταυτόχρονη λήψη από το πληκτρολόγιο κατά την κλήση της μεθόδου.
public void setName(){
Scanner n = new Scanner(System.in);//εισαγωγή από πληκτρολόγιο
System.out.println("Δώστε Όνομα :");//εμφάνιση μηνύματος στην οθόνη
String name = n.next();//Λήψη ονόματος
this.name=name;//ορισμός της λήψης στην μεταβλητή της κλάσης ή κατασκευαστή.
}
2. Δημιουργία Captcha
Για την δημιουργία captcha χρησιμοποιούμε μια γεννήτρια τυχαίων αριθμών. Η εντολή Random προσομοιώνει ακριβώς αυτό. Για να υπάρξει έλεγχος της ορθότητας του captcha υπάρχει η εντολή if ενώ η εντολή while αναλαμβάνει την ανανέωση του captch και της διαδικασίας σε περίπτωση λάθους. Η όλη διαδικασία ελέγχεται από τι τιμή που έχει κάθε φορά η ετικέτα flag2.
Δίνεται παρακάτω και ο κώδικας.
while(flag2==false){
//δημιουργία τυχαίου captcha
Random rad = new Random();
captchanum = rad.nextInt(1000000) + 111111;
System.out.println(" πληκτρολογήστε τον Captcha Αριθμό: " + captchanum);
Scanner n = new Scanner(System.in);
System.out.println("Δώστε Captcha :");
String capt = n.next();//Λήψη captcha
//μετατροπή captcha integer to String
String mycaptcha = Integer.toString(captchanum);
// έλεγχος captcha
if (mycaptcha.equals(capt)) {
this.captcha = capt;
flag2 = true;
System.out.println(" Ολοκληρώσατε επιτυχώς την εγγραφή σας ");
} else {
System.out.println("Λάθος Captcha. Δοκιμάστε από την Αρχή");
flag2 = false;
}
}
Δημοσίευση σχολίου