ΕΝ ΕΙΚΤΙΚΑ ΣΧΕ ΙΑ ΛΥΣΕΩΝ - ΥΠΟ ΕΙΞΕΙΣ



Σχετικά έγγραφα
Περίληψη ιπλωµατικής Εργασίας

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ. Πρόσβαση στην Καταγραφή και Εγχειρίδιο Χρήσης Εφαρµογών για ιευθύνσεις και Γραφεία Εκπαίδευσης

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

Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή):

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

Atlantis - Νέο user interface

Εργαλεία Ανάπτυξης Εφαρμογών Internet I

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

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

Βάσεις δεδομένων (Access)

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού - Μετρικές

Ο ΗΓΙΕΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΥΠΟΒΟΛΗΣ

Διάλεξη 18η: Διαχείρηση Αρχείων

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

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

Ενηµερώσεις λογισµικού Οδηγός χρήσης

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

Με την αλλαγή των μεταβλητών σελιδοποίησης αυτόματα ρυθμίζετε το νέο όριο για τα άρθρα και τα αποτελέσματα αναζήτησης.

Δικτυακοί τόποι. Η σχεδίαση ενός δικτυακού τόπου. Δρ. Ματθαίος Α. Πατρινόπουλος

Βάσεις δεδομένων (Access)

Προσοµοίωση λειτουργίας επικοινωνίας δεδοµένων (µόντεµ)

Εγχειρίδιο Χρήστη - Μαθητή

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

Ο Οδηγός γρήγορης εκκίνησης

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

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Σύντοµος Οδηγός Βοήθειας για τη Χρήση των Μαθηµάτων e-learning για το ΟΛΟΚΛΗΡΩΜΕΝΟ ΠΛΗΡΟΦΟΡΙΑΚΟ ΣΥΣΤΗΜΑ

MK Prosopsis Ltd - Assistive Technology Products & Services

Επεξεργασία Αρχείων Κειµένου

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

Βασικό Επίπεδο στο Modellus

Βασικές Αρχές Σχεδιασµού Συστήµατος ιεπιφάνειας - Πλοήγηση

ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ. Κωδικός Τίτλος Επίπεδο

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ.

Pylon Entry. Πόροι. Στη διαδικασία αυτή περιγράφεται η Δημιουργία- Μεταβολή-Διαγραφή Αναζήτηση Πόρων

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ "PROΩΘΗΣΗ" PROώθηση

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

Στην συνέχεια και στο επόµενο παράθυρο η εφαρµογή µας ζητάει να εισάγουµε το Username και το Password το οποίο σας έχει δοθεί από τον ΕΛΚΕ.

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

ΘΕΜΑ: Πρόσκληση εκδήλωσης ενδιαφέροντος για την παροχή υπηρεσιών με τίτλο «Σχεδιασμός λογοτύπου και σχεδιασμός και κατασκευή δυναμικής ιστοσελίδας»

ΕΓΧΕΙΡΙ ΙΟ Ο ΗΓΙΩΝ. Ηλεκτρονική Υποβολή Α.Π.. Κοινών Επιχειρήσεων

Διαδικτυακές Υπηρεσίες Αναζήτησης, Απεικόνισης και Απευθείας Πρόσβασης στα δεδομένα ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ. Έκδοση 0.1.

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

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

Λογισμική Εφαρμογή Διαχείρισης Ερωτηματολογίων ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

Τεχνικές ταξινόµησης αποτελεσµάτων µηχανών αναζήτησης µε βάση την ιστορία του χρήστη

Παλαιότερες ασκήσεις

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος

Joomla! with K2 - User Guide

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

Γαβαλάς Δαμιανός

ΕΓΧΕΙΡΙ ΙΟ ΕΓΚΑΤΑΣΤΑΣΗΣ KAI ΧΡΗΣΗΣ «ΓΛΩΣΣΑ Α-Γ ΓΥΜΝΑΣΙΟΥ»

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

Kεφάλαιο 11 Λίστες και Ανάλυση Δεδομένων Kεφάλαιο 12 Εργαλεία ανάλυσης πιθανοτήτων Kεφάλαιο 13 Ανάλυση δεδομένων...

ΕΝ ΕΙΚΤΙΚΑ ΣΧΕ ΙΑ ΛΥΣΕΩΝ - ΥΠΟ ΕΙΞΕΙΣ

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

Microsoft PowerPoint 2010 Πανεπιστήμιο Κύπρου

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

αντίστοιχο γεγονός. Όταν όντως το κουμπί

Μπορείτε τα δείτε βιντεάκι με τη διαδικασία εδώ:

Πανεπιστήµιο Θεσσαλίας

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

Πολιτική για τα cookies

Κεφάλαιο 1 : Εισαγωγή

Copyright 2017 HP Development Company, L.P.

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Browsers. Λειτουργικότητα και Παραμετροποίηση

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

Αναγνώριση υποθεµάτων αρχείων Αντιγραφή κειµένου Αντιγραφη εικόνων Αντιγραφή video


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

Ενηµερώσεις λογισµικού Οδηγός χρήσης

Αλλαγή προσανατολισμού εγγράφου σε κατακόρυφο ή οριζόντιο, αλλαγή μεγέθους σελίδας

Σχετική κίνηση αντικειμένων

ΚΤΙΡΙΑΚΕΣ ΥΠΟΔΟΜΕΣ Α.Ε. Οδηγίες Λειτουργίας Πληροφοριακού Συστήματος ηλεκτρονικής διαχείρισης Αιτημάτων. v1.3 (23/11/2014)

Κεφάλαιο 5ο: Εντολές Επανάληψης

Ελέγξτε την ταινία σας

Atlantis - Νέο user interface

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Visual Flowchart Γενικά

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

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

Εγχειρίδιο Χρήσης-Οδηγός Εκπαίδευσης Χρηστών. - Δήμος Δέλτα - Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης

Εγκατάσταση Joomla 1. Στο Π.Σ.Δ. ( 2. Τοπικά 3. Σε δωρεάν Server

ΑΣΚΗΣΗ. Συγκομιδή και δεικτοδότηση ιστοσελίδων

Οδηγίες κατασκευής Ιστοσελίδων µε το πρόγραµµα FRONTPAGE 2003

Εργαλεία ανάπτυξης εφαρμογών internet Ι

FAQ. της OTEplus. Έκδοση 1.0

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης

Transcript:

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΛΗ42 - ΕΙ ΙΚΑ ΘΕΜΑΤΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ 4η ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ ΑΚΑ ΗΜΑΪΚΟΥ ΕΤΟΥΣ 2009-2010 3 oς Τόµος ΕΝ ΕΙΚΤΙΚΑ ΣΧΕ ΙΑ ΛΥΣΕΩΝ - ΥΠΟ ΕΙΞΕΙΣ

i. Μετρικές Halstead (25%) α. Αρχικά ας αναφέρουµε τις παραδοχές που κάνουµε κατά τον υπολογισµό των µετρικών του Halstead: εν µετράµε την επικεφαλίδα της main µε τα ορίσµατά της, αλλά ούτε το ζεύγος αγκίστρων { } µέσα στο οποίο βρίσκεται ο κώδικάς της. εν µετράµε τις δηλώσεις µεταβλητών. Οπότε µετράµε από την πρώτη εκτελέσιµη εντολή και µετά. Το argv[x] (στοιχείο x του πίνακα argv[]) το µετράµε ως έναν τελεστή argv[] και ένα έντελο x. Αντιµετωπίζουµε δηλαδή το argv[] σαν να είναι µία συνάρτηση που παίρνει ως όρισµα µία µεταβλητή x και επιστρέφει την τιµή argv[x]. Με βάση τις παραπάνω παραδοχές, υπολογίζουµε τις µετρικές n 1, n 2, N 1 και N 2 και στη συνέχεια τις υπόλοιπες µετρικές του Halstead για τα προγράµµατα Α και Β. Πρόγραµµα Α Τελεστές Εµφανίσεις Έντελα Εµφανίσεις if( ) 5 argc 1!= 1 3 1 { } 7 "You forgot to enter a filename.\n" 1 printf( ) 5 1 4 ; 17 in 7 exit( ) 3 "rb" 1 ( ) 2 NULL 2 = 3 "Cannot open input file.\n" 1 fopen(, ) 2 out 5 argv[ ] 2 2 1 = = 2 "wb" 1 while( ) 1 "Cannot open output file.\n" 1! 2 ch 2 feof( ) 2 "Read Error" 1 getc( ) 1 "Write Error" 1 if( ) else 1 0 1 ferror( ) 2 clearerr( ) 2 break 2 putc(, ) 1 fclose( ) 2 return 1 n 1 =22 N 1 =66 n 2 =16 N 2 =31 Με απλή εφαρµογή των τύπων βρίσκουµε τα εξής αποτελέσµατα και για τις υπόλοιπες µετρικές του Halstead για το πρόγραµµα Α: ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 2

n= n1+ n2 = 38 N = N1+ N2 = 97 Nest = n1 log2n1+ n2 log2n2 = 162,107 Nest / N = 1,671 V = N log2 n= 509, 049 2 n2 L= Lest = n1 N2 = 0,047 2 λ = L V = 1,121 Πρόγραµµα Β Τελεστές Εµφανίσεις Έντελα Εµφανίσεις if( ) 8 argc 1!= 1 3 1 { } 8 "Usage: copy <source> <destination>\n" 1 printf( ) 7 1 8 ; 17 from 6 exit( ) 7 "rb" 1 ( ) 2 NULL 2 = 3 "Cannot open source file.\n" 1 fopen(, ) 2 to 4 argv[ ] 2 2 1 = = 4 "wb" 1 while( ) 1 "Cannot open destination file.\n" 1! 2 ch 2 feof( ) 2 "Error reading source file.\n" 1 fgetc( ) 1 "Error writing destination file.\n" 1 ferror( ) 2 EOF 2 fputc(, ) 1 "Error closing source file.\n" 1 fclose( ) 2 "Error closing destination file.\n" 1 return 1 0 1 n 1 =19 N 1 =73 n 2 =19 N 2 =37 Με απλή εφαρµογή των τύπων βρίσκουµε τα εξής αποτελέσµατα και για τις υπόλοιπες µετρικές του Halstead για το πρόγραµµα Β: n= n1+ n2 = 38 N = N1+ N2 = 110 Nest = n1 log2n1+ n2 log2n2 = 161, 421 Nest / N = 1,467 V = N log2 n= 577, 272 2 n2 L= Lest = n N = 0,054 1 2 ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 3

2 λ = L V = 1,687 Για τον υπολογισµό της µετρικής V(G) του McCabe θα µετρήσουµε τις εντολές διακλάδωσης κάθε προγράµµατος (αφού δεν έχουµε εντολές µε σύνθετες συνθήκες) και θα προσθέσουµε 1. Συγκεκριµένα, για το πρόγραµµα Α έχουµε: 6 εντολές if 1 εντολή while 3 εντολές exit 2 εντολές break Οπότε έχουµε 12 εντολές διακλάδωσης και έτσι προκύπτει V(G)=13. Παρόµοια για το πρόγραµµα Β έχουµε: 8 εντολές if 1 εντολή while 7 εντολές exit Οπότε έχουµε 16 εντολές διακλάδωσης και έτσι προκύπτει V(G)=17. β. Για τα προγράµµατα Α και Β υπολογίσαµε τα εξής στις ζητούµενες µετρικές: N est /N L λ V(G) Πρόγραµµα Α 1,671 0,047 1,121 13 Πρόγραµµα Β 1,467 0,054 1,687 17 Το πρόγραµµα Α υπερτερεί του προγράµµατος Β στις µετρικές N est /N και V(G), ενώ υστερεί στις µετρικές L και λ. Οπότε δεν µπορούµε σύµφωνα µε αυτές τις µετρικές να συµπεράνουµε ότι ένα από τα δύο προγράµµατα είναι καλύτερο από το άλλο. ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 4

ii. Αξιολόγηση µεθόδων εισαγωγής δεδοµένων (25%) α. Το ελληνικό αλφάβητο έχει 24 γράµµατα τα οποία χαρτογραφούνται σε 8 πλήκτρα άρα 3 γράµµατα ανά πλήκτρο. Χωρίς βλάβη της γενικότητας είναι εύλογο να υποθέσουµε ότι σε ένα σχετικά µεγάλο κείµενο όλα τα γράµµατα θα εµφανίζονται µε ίση πιθανότητα. Καθώς η εµφάνιση του 1ου γράµµατος απαιτεί µια πληκτρολόγηση, η εµφάνιση του 2ου γράµµατος δύο, και η εµφάνιση του 3ου γράµµατος τρεις πληκτρολογήσεις και οι πιθανότητες επιλογής είναι ίδιες, συνολικά θα απαιτείται στο 1/3 των περιπτώσεων 1 πληκτρολόγηση, στο 1/3 των περιπτώσεων δύο και στο 1/3 τρεις, αντίστοιχα. Συνεπώς οι συνολικές πληκτρολογήσεις θα είναι : 1000*(1/3*1+1/3*2+1/3*3)=1000*2=2000. Στη δεύτερη περίπτωση καθώς οι πιθανότητες είναι 85% για µια πληκτρολόγηση, 10% για 2 πληκτρολογήσεις και 5% για 3 πληκτρολογήσεις οι συνολικές πληκτρολογήσεις θα είναι: 1000*(85%*1+10%*2+5%*3)=1200 πληκτρολογήσεις. Συνεπώς η µείωση του απαιτούµενου αριθµού πληκτρολογήσεων είναι 800/2000=40% Στην τρίτη περίπτωση θεωρούµε κατά µέσο όρο ότι οι λέξεις που έχουν αναγνωριστεί επιτυχώς είναι ισοµήκεις µε τις λέξεις που δεν αναγνωρίζονται. Στις λέξεις που αναγνωρίζονται, απαιτείται µόνο µια πληκτρολόγηση ανά γράµµα, ενώ στις λέξεις που δεν αναγνωρίζονται αφού γίνει η µια πληκτρολόγηση ανά γράµµα ο χρήστης θα αναγνωρίσει ότι δεν εµφανίζεται, επιλέγοντας διαγραφή γράµµατος τόσες φορές όσοι και οι χαρακτήρες της λέξης που επιθυµούσε. Ακολούθως θα πληκτρολογήσει τις επιθυµητές λέξεις σύµφωνα µε την 1η µέθοδο, της οποίας ο υπολογισµός είναι ήδη γνωστός από τα προηγούµενα. Συνεπώς απαιτούνται: 1000*65%*1+1000*35%+1000*35%+1000*35%*(1/3*1+1/3*2+1/3*3)= 650+350+350+700=2050 Συνεπώς ταχύτερη είναι η 2η µέθοδος µε 1200 πληκτρολογήσεις, ακολουθεί η 1η µέθοδος µε 2000 πληκτρολογήσεις και τέλος η 3η µέθοδος µε 2050 πληκτρολογήσεις. β. Χαρακτηριστικό ποιότητας κατανοησιµότητα Σχόλια Η πρώτη µέθοδος αν και όπως φαίνεται στο µέρος Α είναι αρκετά πιο αργή σε σχέση µε τις υπόλοιπες, είναι εξαιρετικά απλή και συνεπώς εξαιρετικά κατανοητή για το χρήστη. Όσες φορές επιλέξει ένα πλήκτρο ο χρήστης, θα επιλέξει ένα συγκεκριµένο γράµµα. Στη 2η περίπτωση απαιτούνται σηµαντικά λιγότερες πληκτρολογήσεις όµως ο χρήστης δεν είναι σε θέση να γνωρίζει ποιο γράµµα θα εµφανιστεί ακριβώς. Στην 3η περίπτωση (µέθοδος που βασίζεται σε λεξικό), η ανάδραση που εµφανίζεται στο χρήστη κατά τη διάρκεια εισαγωγής χαρακτήρων είναι διαρκώς µεταβαλλόµενη. Συνεπώς ακόµη και σε περίπτωση επιτυχούς τελικά αναγνώρισης της επιθυµητής λέξης, κατά τη διάρκεια της συγγραφής της η ακολουθία χαρακτήρων που εµφανίζεται µπορεί να είναι τελείως διαφορετική οπότε δηµιουργείται σηµαντική αβεβαιότητα στο χρήστη για το τελικό αποτέλεσµα και δεν του παρέχεται η αίσθηση ότι προοδευτικά ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 5

Ευκολία εκµάθησης Ευκολία χειρισµού προσεγγίζει το στόχο του. Η πρώτη µέθοδος απαιτεί ελάχιστο χρόνο για την εκµάθησή της, απαιτεί όµως κάποιο διάστηµα προκειµένου ο χρήστης να καταστεί σχετικά αποδοτικός. Παράλληλα, σε περίπτωση αλλαγής κινητού δεν απαιτείται νέα εκµάθηση εκτός εάν αλλάζει ο τρόπος χαρτογράφησης των γραµµάτων. Η 2η µέθοδος απαιτεί περισσότερη εξοικείωση και παράλληλα αποµείωση της συνήθειας χρήσης της 1ης µεθόδου (που αποτελεί την καθιερωµένη πρακτική). Εξοικείωση απαιτεί και η 3η µέθοδος µε αντίστοιχο χρονικό διάστηµα για µετάβαση-εξοικείωση µε τη 1η µέθοδο. Ο χρήστης θα πρέπει να εξοικειωθεί µε το ότι πιθανά θα χρειαστεί να συνδυάσει και τη γνώση της 1ης µεθόδου, αν η πρόβλεψη από το λεξικό δεν είναι αποτελεσµατική. Μια τέτοια προσέγγιση (αλλαγή στυλ/ mode αλληλεπίδρασης) αποτελεί µια πρακτική που στο πεδίο αλληλεπίδρασης ανθρώπου υπολογιστή γνωρίζουµε ότι προκαλεί σηµαντικές δυσχέρειες στο χρήστη. Η 1η µέθοδος αν και εξαιρετικά απλή, χαρακτηρίζεται από χαµηλή αποδοτικότητα, ειδικά σε περίπτωση συγγραφής µακροσκελών κειµένων. Η 2η µέθοδος είναι σαφώς αποδοτικότερη αλλά απαιτεί διαρκή έλεγχο από το χρήστη προκειµένου να ελεγχθεί αν ο αλγόριθµος έχει εµφανίσει το σωστό γράµµα. Η 3η µέθοδος αν και συχνά η περισσότερο αποδοτική, συχνά ενέχει την ανάγκη εισαγωγής λέξεων προκειµένου να καταστεί ικανοποιητική ενώ σε περίπτωση χρήσης αργκό (slang language) ή συντµήσεων είναι αναποτελεσµατική. Παράλληλα σε περίπτωση εµφάνισης µη ορθής ακολουθίας χαρακτήρων, ενδέχεται ο χρήστης να χρειαστεί να διαγράψει όλη τη λέξη και να την εισάγει χρησιµοποιώντας τη 1η µέθοδο. Συνεπώς ενδέχεται να απαιτεί τη συχνή µετάβαση από µια µέθοδο εισαγωγής σε άλλη, κάτι που δυσχεραίνει το χρήστη. Επίσης η ανάγκη για µετάβαση από το ένα στυλ αλληλεπίδρασης στο άλλο, αυξάνει την πιθανότητα λάθους καθώς ενδέχεται ο χρήστης να ξεχνά σε ποια κατάσταση βρίσκεται. Επιπλέον απαιτεί από το χρήστη να θυµάται την πληροφορία αυτή, γεγονός που επιβαρύνει το γνωστικό του φορτίο. ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 6

iii. Αξιολόγηση ποιότητας ιστοτόπων µέσω κινητής συσκευής (25%) α. Η υλοποίηση του 1 ου σεναρίου απαιτεί καταρχήν µία απλή περιήγηση στους δύο ιστότοπους µε τη χρήση του emulator. Η πρώτη σελίδα κάθε ιστότοπου έχει την παρακάτω µορφή Πλαίσιο Αmazon Είναι φανερό ότι στην µεν πρώτη περίπτωση ο ιστότοπος είναι σχεδιασµένος για πρόσβαση από desktop υπολογιστή, στη δεύτερη για πρόσβαση από κινητό (ουσιαστικά ανιχνεύεται ο τύπος της συσκευής πρόσβασης και απεικονίζεται η αντίστοιχη έκδοση του ιστότοπου που είναι ειδικά σχεδιασµένη για κινητά). Εκτελώντας τα βήµατα του σεναρίου και για τους δύο ιστότοπους, εντοπίζονται οι παρακάτω διαφορές για τα εξωτερικά ποιοτικά υπο-χαρακτηριστικά του προτύπου ISO9126: ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 7

Καταλληλότητα Η παροχή από το λογισµικό του κατάλληλου συνόλου υπηρεσιών για προκαθορισµένο έργο σύµφωνα µε τις επιδιώξεις του χρήστη. Ακρίβεια Η δυνατότητα του λογισµικού να παρέχει σωστά και αποδεκτά αποτελέσµατα ή ενέργειες. Λειτουργικότητα Και οι δύο ιστότοποι παρέχουν τις κατάλληλες λειτουργίες για την υλοποίηση του σεναρίου 1 όπως µηχανή αναζήτησης, θεµατικό κατάλογο προϊόντων, λεκτική περιγραφή των προϊόντων, εικόνες των προϊόντων, προσθήκη στο καλάθι και προτάσεις για παρόµοια/συνοδευτικά προϊόντα. Ένα µειονέκτηµα του ιστότοπου του Πλαισίου είναι η έλλειψη άµεσης λειτουργίας προσθήκης προϊόντος στο καλάθι (η προσθήκη γίνεται µέσω της λειτουργίας «Αγόρασέ το»). Η ακρίβεια και των δύο ιστότοπων είναι υψηλή δηλαδή οι λειτουργίες οι οποίες προσφέρονται παρέχουν τα αναµενόµενα αποτελέσµατα. Ένα µειονέκτηµα του ιστότοπου του Πλαισίου είναι η µη σύνδεση της εικόνας του προϊόντος µε µεγεθυµένη φωτογραφία του (οι περισσότεροι χρήστες περιµένουν µία µεγέθυνση του αντικειµένου όταν κάνουν «κλικ» πάνω σε µικρή φωτογραφία του). Επίσης η µηχανή αναζήτησής του εµφανίζει τελείως άσχετα µε το ερώτηµα αποτελέσµατα (στην ερώτηση Touch Pro στην 1 η σελίδα απαντήσεων τα 5 πρώτα είναι σχετικά. Από το 6 ο και για τις επόµενες 3 σελίδες δεν είναι σχετικά). Η µηχανή αναζήτησης της Αmazon είναι πιο ακριβής µε σχετικά στο ερώτηµα αποτελέσµατα στην 1 η σελίδα. Ιδιαίτερο πρόβληµα φαίνεται να έχουν και οι δύο ιστότοποι (και ιδίως αυτός του Πλαίσιο) όταν το zoom της συσκευής είναι µικρό (20% και µικρότερο). Σε αυτή την περίπτωση το κείµενο ανακατεύεται και είναι σχεδόν αδύνατο να διαβαστεί. Επίσης µη αναµενόµενη συµπεριφορά προκαλεί η χρήση µενού όταν ο emulator έχει οριζόντιο προσανατολισµό (το µενού επεκτείνεται εκτός συσκευήςχαρακτηριστικό που θα αργήσουµε να δούµε ακόµα σε κινητές συσκευές!): ιαλειτουργικότητα Η δυνατότητα του λογισµικού να αλληλεπιδρά µε ένα ή περισσότερα Η διαλειτουργικότητα και των δύο ιστότοπων µε τον emulator είναι σε υψηλά επίπεδα αφού τουλάχιστον η αλληλεπίδραση µε διαφορετικά λειτουργικά συστήµατα (Windows XP 7 2003 server) δεν παρουσίασε προβλήµατα ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 8

προκαθορισµένα συστήµατα. Ασφάλεια (Windows XP, 7, 2003 server) δεν παρουσίασε προβλήµατα. Το σενάριο δεν χρησιµοποίει λειτουργίες που απαιτούν ασφάλεια (π.χ. αγορά προϊόντων). Το καλάθι µετά την ολοκλήρωση του σεναρίου 1 για το Πλαίσιο Ωριµότητα Η δυνατότητα του λογισµικού να αποφεύγει προβλήµατα που είναι αποτελέσµατα εσωτερικών λαθών. Αξιοπιστία Και οι δύο ιστότοποι είναι ώριµοι και δεν παρουσιάζουν λάθη. Όλοι οι σύνδεσµοι είναι έγκυροι, δεν παρουσιάστηκε κάποια λειτουργία που απέτυχε να εκτελεστεί. Στον ιστότοπο του Πλαίσιο δεν εµφανίζονται ορθά οι popup ετικέτες περιγραφής οι οποίες είναι αδύνατον να διαβαστούν ολόκληρες είτε σε οριζόντιο είτε σε κατακόρυφο προσανατολισµό της συσκευής: Pop-up περιγραφή για την ετικέτα «φρέσκο» Η περιγραφή της ετικέτας εµφανίζεται πάντα πάνω και αριστερά από το αντίστοιχο κουµπί ενώ θα έπρεπε να προσαρµόζεται η θέση της ανάλογα µε το εύρος θέασης του χρήστη. ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 9

Ανεκτικότητα σε λάθη Η ανεκτικότητα του λογισµικού στα λάθη του χρήστη. Ανακτησιµότητα Η αποκατάσταση των δεδοµένων που άµεσα επηρεάζονται σε περίπτωση αποτυχίας. Ένα «λάθος» του χρήστη θα ήταν η µη ενεργοποίηση της οριζόντιας και τη κάθετης µπάρας από το αντίστοιχο µενού. Σε µία τέτοια περίπτωση η περιήγηση στον ιστότοπο του Πλαισίου θα ήταν αδύνατη σε οριζόντιο επίπεδο. Αντίθετα ο ιστότοπος της Amazon χρησιµοποιεί µόνο κάθετη µπάρα. Η µόνη περίπτωση αποτυχίας είναι το απότοµο κλείσιµο της συσκευής (τερµατισµός της εφαρµογής του emulator). Σε αυτή την περίπτωση όλα τα δεδοµένα χάνονται (π.χ. τα προϊόντα που έχουν προστεθεί στο καλάθι) εκτός εάν ο χρήστης έχει προηγουµένως εγγραφεί στον ιστότοπο. Η συσκευή έχει τη δυνατότητα καταγαφής του ιστορικού της πλοήγησης και την αποθήκευση bookmarks, Χρονική συµπεριφορά Η ικανότητα του λογισµικού να παρέχει καθορισµένο και αποδεκτό χρόνο απόκρισης στην εκτέλεση διαδικασιών ή ενεργειών υπό καθορισµένες συνθήκες. Το καλάθι µετά την ολοκλήρωση του σεναρίου 1 για την Αmazon Αποδοτικότητα Είναι δυνατή µέσω της προσαρµογής της ταχύτητας του δικτύου στον emulator. H µέγιστη ταχύτητα προσοµοιώνει πρόσβαση στο ιαδίκτυο µέσω WiFi. Σε αυτή την περίπτωση η απόκριση των ιστότοπων είναι εξαιρετική. Το ίδιο συµβαίνει και για τις διαµορφώσεις 3G+ και 3G. Σε διαµόρφωση EDGE και EDGE+ παρατηρείται κάποια καθυστέρηση στη φόρτωση ιστοσελίδων του Πλαισίου (που περιέχουν εικονίδια, πίνακες κτλ.) Η ιστοσελίδα της Amazon φορτώνει σε δύο µέρη: το κείµενο, οι υπερσύνδεσµοι και η δοµή της σελίδας εµφανίζονται γρήγορα ενώ οι εικόνες (που αοφορύν µόνο προϊόντα και όχι πλοήγηση) αργούν. ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 10

Αξιοποίηση Πόρων Το επίπεδο χρήσης συγκεκριµένων πόρων σε καθορισµένο χρόνο, όταν εκτελείται µια διαδικασία υπό καθορισµένες συνθήκες. Η απόκριση των µηχανών αναζήτησης και για τους δύο ιστότοπους είναι ικανοποιητική. εν είναι δυνατόν να αξιολογηθεί άµεσα γιατί εξαρτάται από τη διαµόρφωση του υπολογιστή του χρήστη. Σε κάθε περίπτωση και οι δύο ιστότοποι δεν είναι απαιτητικοί σε πόρους του συστήµατος. Ευχρηστία Κατανοησιµότητα Η ιδιότητα του λογισµικού να καθιστά το χρήστη ικανό να καταλάβει πότε αυτό είναι κατάλληλο για τις ανάγκες του και πως µπορεί να χρησιµοποιηθεί για συγκεκριµένο σκοπό. Ευκολία εκµάθησης Αναφέρεται στο βαθµό ευκολίας µε την οποία ο χρήστης µπορεί να µάθει να χρησιµοποιεί την εφαρµογή. Ευκολία χειρισµού Η δυνατότητα του λογισµικού να καθιστά το χρήστη ικανό να το χειρίζεται και να το ελέγχει. Ελκυστικότητα Η δυνατότητα του λογισµικού να είναι ελκυστικό προς τους χρήστες. H κατανοησιµότητα των δύο ιστότοπων διαφέρει. Ο ιστότοπος της Amazon προσφέρει πιο ξεκάθαρες και κατανοητές επιλογές από ότι αυτός του πλαισίου. Ο χειρισµός του καλαθιού (προσθήκη, συνέχιση αγορών) είναι πιο κατανοητός στην Amazon. Από την άλλη, η χρήση µόνο κειµένου (δεν χρησιµοποιείται καθόλου εικόνα για κουµπιά πλοήγησης) µειώνει την κατανοησιµότητα κάποιων λειτουργιών (τι πρέπει να πατηθεί για να γίνει τι). Πάντως και οι δύο ιστότοποι κινούνται σε υψηλά επίπεδα κατανοησιµότητας. Ο ιστότοπος του Πλαισίου είναι αρκετά φορτωµένος µε επιλογές και µέσω κινητού ίσως δυσκολευτεί κανείς να βρει τι πρέπει να κάνει για να εκτελέσει µία λειτουργία. Εφόσον µία ιστοσελίδα δεν µπορεί να χωρέσει σε µία οθόνη χρειάζεται οριζόντια και κάθετο scrolling. To ίδιο συµβαίνει καις την περίπτωση της Amazon όπου χρειάζεται όµως µόνο κάθετο scrolling και οι επιλογές είναι οµαδοποιηµένες µε καλύτερο τρόπο. Ο ιστότοπος του Πλαισίου δεν έχει σχεδιαστεί για απεικόνιση σε µικρή οθόνη κινητού τηλεφώνου και προφανώς υπάρχουν σηµαντικά προβλήµατα ευχρηστίας. Το zoom το οποίο είναι διαθέσιµο ως επιλογή δεν λύνει όλα τα προβλήµατα καθώς µερικές φορές η απεικονιζόµενη εικόνα της ιστοσελίδας είναι πολύ µικρή για να µπορεί να χρησιµοποιηθεί αποτελεσµατικά. Αντίθετα ο ειδικά σχεδιασµένος για κινητά ιστότοπος της Amazon, είναι πολύ πιο εύχρηστος. Ο ιστότοπος του Πλαισίου είναι πιο ελκυστικός σε γενικές γραµµές γιατί χρησιµοποιεί περισσότερα γραφικά. ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 11

β. Για το 2 ο σενάριο, οι διαφορές των δύο ειδησιογραφικών ιστότοπων όσον αφορά το 2 ο σενάριο είναι: Ευχρηστία Κατανοησιµότητα Η έκδοση του CNN αυτοµάτως αναγνωρίζει πρόσβαση από κινητή συσκευή και φορτώνει την αντίστοιχη έκδοση η οποία περιέχει κυρίως κείµενο και συνδέσεις σε κατηγορίες ειδήσεων και δηµοφιλείς ειδήσεις. Η δοµή του ιστότοπου είναι απλή και κατανοητή. Ο ιστότοπος In.gr δεν προσφέρει έκδοση για κινητές συσκευές. Περιέχει πληθώρα συνδέσµων, εικόνων και δεν χωρά ολόκληρο στην οθόνη της συσκευής ακόµα και σε οριζόντιο προσανατολισµό. Ο χρήστης αρχικά δυσκολεύεται να κατανοήσει τη δοµή του ιστότοπου αν και η αρχική είδηση εντοπίζεται εύκολα. Ευκολία εκµάθησης ιαφέρει σηµαντικά λόγω της διαφοράς στην Ευκολία χειρισµού. Ελκυστικότητα πολυπλοκότητα των δύο ιστότοπων. Η απαίτηση για οριζόντιο και κάθετο scrolling για τον ιστότοπο in.gr καθιστά δύσκολη την πλοήγηση µεταξύ των διαφορετικών οµάδων ειδήσεων. Αν και το in.gr χρησιµοποιεί µεγαλύτερη ποικιλία εικόνων και γραφικών, η αδυναµία του να χωρέσει ολόκληρο στην οθόνη το κάνει λιγότερο ελκυστικό. Κύρια είδηση στο in.gr κατά την εκτέλεση του σεναρίου 2 ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 12

Η πρώτη σελίδα του CNN.com κατά την εκτέλεση του σεναρίου 2 ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 13

iv. Web Site Load Testing (25%) α. Το Load Testing γενικά (άρα και στην περίπτωση των web sites) γίνεται για να ελεγχθεί η απόδοση ενός πολυχρηστικού λογισµικού υπό κανονικές συνθήκες χρήσης, αλλά συνήθως προσπαθούµε να προσοµοιώσουµε τις συνθήκες µέγιστου φόρτου. Για να προσδιορίσουµε αυτές τις συνθήκες, σίγουρα θα µας βοηθούσαν τα στατιστικά στοιχεία χρήσης της εφαρµογής. Όµως, και αυτό δεν είναι απόλυτα ασφαλές, γιατί ο βαθµός και ο τρόπος χρήσης µιας εφαρµογής µπορεί να µεταβάλλεται µε το χρόνο. Επίσης, τι γίνεται µε τις νέες εφαρµογές για τις οποίες δεν έχουµε στατιστικά στοιχεία χρήσης; Αυτό που πρέπει να κάνουµε είναι να σκεφτούµε βάσει πιθανοτήτων ποιες θα είναι αυτές οι συνθήκες µέγιστου φόρτου. Για παράδειγµα, για το portal του ΕΑΠ, δεν θα είχε πολλές πιθανότητες η περίπτωση όλοι οι χρήστες του ταυτόχρονα να ζητήσουν την ίδια σελίδα, αλλά µάλλον ούτε να είναι ταυτόχρονα όλοι µέσα στην εφαρµογή ζητώντας διαφορετικές σελίδες. Ένα πιο λογικό σενάριο µέγιστου φόρτου θα ήταν η περίπτωση 50% των χρηστών να ζητάνε µια οποιαδήποτε σελίδα, ή 5% των χρηστών την ίδια σελίδα (π.χ. όταν ανακοινώνεται µία άσκηση). Επίσης, σηµαντικό είναι και το είδος της σελίδας ή του αρχείου που ζητάνε. Αν για παράδειγµα ζητάνε απλές HTML σελίδες η επιβάρυνση του server δεν είναι µεγάλη. Τι γίνεται όµως όταν ζητάνε HTML σελίδες µε ογκώδες πολυµεσικό υλικό, πολύ µεγάλα αρχεία ή ακόµα χειρότερα δυναµικές σελίδες που απαιτούν εκτέλεση προγραµµάτων στον server και πρόσβαση σε βάσεις δεδοµένων; Είναι προφανές, ότι ο έλεγχος πολυχρηστικών εφαρµογών, όπως είναι τα web sites, µε ένα µόνο χρήστη (τον tester) να δοκιµάζει όλες τις περιπτώσεις χρήσεις, δεν µπορεί να οδηγήσει σε ασφαλή συµπεράσµατα για την ποιότητα των ποικίλων εφαρµογών που µπορεί να έχει ένα web site, ακόµα και αν όλες οι δοκιµές δεν κατέγραψαν σφάλµατα. Για τον καλύτερο έλεγχο της ποιότητας ενός web server απαιτείται το Load Testing, το οποίο µετράει κυρίως δύο µεγέθη υπό συνθήκες µέγιστου φόρτου: 1. την απόδοση του web server (κυρίως χρόνοι απόκρισης και χρόνοι downloads) για σελίδες διαφορετικού τύπου και αρχεία διαφορετικού µεγέθους. Τα άνω όρια των χρόνων αυτών, θα πρέπει να καθορίζονται στις προδιαγραφές του web site, µε βάση αξιόπιστα ερευνητικά αποτελέσµατα που λαµβάνουν υπόψη τις γνώµες των χρηστών. 2. την αξιοπιστία του web server, δηλ. την εµφάνιση σφαλµάτων λειτουργίας όπως µη απόκριση (timeout), λάθος απόκριση, τερµατισµός λειτουργίας του, κ.ά. Το Load Testing πολύ συχνά καταγράφει τέτοια σφάλµατα λειτουργίας στον web server τα οποία δεν εµφανίζονται κατά τον έλεγχό του από ένα µόνο χρήστη. Από τα παραπάνω συµπεραίνουµε ότι το LoadTesting εξετάζει δύο από τους παράγοντες του προτύπου ISO9126: την αποδοτικότητα και την αξιοπιστία. Πιο συγκεκριµένα, σε επίπεδο χαρακτηριστικών του προτύπου ISO9126, το Load Testing ελέγχει: ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 14

Αποδοτικότητα: Χρονική συµπεριφορά (time behaviour) που είναι η ικανότητα του λογισµικού να παρέχει καθορισµένο και αποδεκτό χρόνο απόκρισης και εκτέλεσης διαδικασίας ή ενεργειών σε καθορισµένες συνθήκες. Αξιοποίηση πόρων (resource behaviour) που είναι το επίπεδο χρήσης συγκεκριµένων πόρων σε καθορισµένο χρόνο, όταν εκτελείται µια διαδικασία σε καθορισµένες συνθήκες. Μετρώντας µεγέθη όπως το ποσοστό χρήσης της CPU, του δίσκου και του δικτύου, µπορούν να εξαχθούν σηµαντικά συµπεράσµατα για τη λύση ενός συγκεκριµένου προβλήµατος, όπως αγορά ταχύτερου επεξεργαστή, γρηγορότερου δίσκου ή συστοιχία δίσκων, αναβάθµιση του upload bandwidth, ή ακόµα και εγκατάσταση πολλών web servers για load balancing (διαµοίραση του φόρτου σε πολλούς υπολογιστές που έχουν αντίγραφα του ίδιου web server). Αξιοπιστία: Ωριµότητα (maturity) που είναι η δυνατότητα να αποφεύγονται προβλήµατα που είναι αποτέλεσµα λαθών στο λογισµικό. Ανεκτικότητα σε λάθη (fault tolerance) που είναι η υποστήριξη από το λογισµικό καθορισµένου επιπέδου εφαρµογής σε περιπτώσεις λαθών στο λογισµικό ή παραβιάσεων στο περιβάλλον διεπαφής. β. Να τονίσουµε εδώ ότι θα πρέπει να τρέξετε το σενάριο αρκετές φορές και διαφορετικές ώρες της ηµέρας για να επιβεβαιώσετε τα αποτελέσµατά σας. Η µεθοδολογία έχει ως εξής: 1. Τρέξτε το σενάριο και παρατηρήστε τα αποτελέσµατα. 2. Σηµειώστε από αυτά που σας ζητάει η άσκηση, τα πιο σηµαντικά συµπεράσµατά σας. 3. Επαναλάβετε τα βήµατα 1 και 2 σε κάποια άλλη ώρα και για τουλάχιστον 5-6 φορές. 4. Καταγράψτε ποια από τα συµπεράσµατά σας είναι κοινά σχεδόν σε όλες τις περιπτώσεις. 5. Επειδή µπορείτε να πάρετε τα αναλυτικά γραφήµατα που ζητάει η άσκηση µόνο από το τελευταίο τρέξιµο σας, φροντίστε όταν τα πάρετε να εµπεριέχει όλα τα συµπεράσµατα που καταγράψατε στο βήµα 4. Ακολουθώντας την παραπάνω διαδικασία, σας παρουσιάζουµε στη συνέχεια τα αποτελέσµατα από ένα ενδεικτικό τρέξιµο του σεναρίου. Προφανώς, οι δικές σας µετρήσεις δεν θα είναι ακριβώς οι ίδιες µε αυτές, όµως τα συµπεράσµατά σας θα πρέπει να είναι παρόµοια. Για να δούµε τα γραφήµατα µε τις µετρήσεις για κάθε profile χρήστη και για κάθε σελίδα, θα πρέπει να πατήσουµε πάνω σε κάθε µία σελίδα αριστερά κάτω από τα Results (όπου είναι οµαδοποιηµένες ανά profile χρήστη). Τα µεγέθη που µας ενδιαφέρουν περισσότερο (όπως αναφέρονται και στην εκφώνηση της άσκησης) είναι τα εξής: Καρτέλα Timings Ο Μέγιστος και Μέσος Χρόνος Απόκρισης: Μax response time(s), Avg response time(s) ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 15

Ο µέσος χρόνος κατεβάσµατος σελίδας: Avg download times(s). Το πλήθος των χρηστών που ήταν ενεργοί κάθε χρονική περίοδο: Active users. Καρτέλα Errors Τα λάθη, κάθε είδους, που παρουσιάστηκαν σε κάθε σελίδα. Ας αναλύσουµε τι αντιπροσωπεύουν αυτά τα µεγέθη, σύµφωνα µε τους ορισµούς που υπάρχουν στο βοηθητικό υλικό (Help) του ίδιου του εργαλείου WAPT. Response time Στο συγκεκριµένο εργαλείο ως χρόνος απόκρισης θεωρείται ο χρόνος από τη στιγµή που γίνεται η αίτηση προς τον server για µια σελίδα, µέχρι να κατέβει µόνο το HTML αρχείο της σελίδας. εν συµπεριλαµβάνει δηλαδή και το χρόνο κατεβάσµατος άλλων στοιχείων που περιλαµβάνει η σελίδα, όπως εικόνες, flash προγράµµατα, εξωτερικά CSS, κλπ. Αυτός ο χρόνος θεωρείται ο πιο σηµαντικός για δύο λόγους: Κυρίως αυτό το χρόνο αντιλαµβάνεται ο χρήστης ως χρόνο απόκρισης, καθώς βλέπει το κείµενο της σελίδας (έστω και χωρίς τα πολυµέσα ή προγράµµατα που περιλαµβάνει) και µπορεί να αρχίσει να τη διαβάζει. Άλλωστε έρευνες έχουν δείξει ότι οι χρήστες, για την πλειοψηφία των σελίδων που επισκέπτονται, ενδιαφέρονται κυρίως για το κείµενο τους παρά για τα υπόλοιπα στοιχεία τους (εκτός π.χ. στην περίπτωση ενός photo album ή όταν η σελίδα περιέχει µόνο ένα flash πρόγραµµα ή όταν επισκέπτονται το YouTube). Τα περισσότερα στοιχεία που περιλαµβάνει µια σελίδα είναι στοιχεία που είναι κοινά σχεδόν σε όλο το server (όπως εικονίδια, λογότυπο, εξωτερικά CSS αρχεία, κλπ) και αποθηκεύονται στην κρυφή µνήµη του browser από την πρώτη σελίδα επίσκεψης. Έτσι, δεν κατεβαίνουν ξανά στις επόµενες αιτήσεις του χρήστη και άρα στην πράξη δεν επιβαρύνουν το χρόνο απόκρισης. Το συγκεκριµένο εργαλείο καταγράφει και υπολογίζει ανά 10 δευτερόλεπτα (ρύθµιση που µπορείτε να αλλάξετε) τρεις τιµές για το Respone Time: Μέγιστο (Max), Μέσο (Avg) και Ελάχιστο (Min). Οι τιµές των Max και Avg είναι οι πιο σηµαντικές στο Load Testing καθώς καταγράφουν τη χειρότερη και τη µέση εµπειρία του χρήστη σε συνθήκες µέγιστου φόρτου χρήσης. Τα γραφήµατα που προκύπτουν δείχνουν τη διακύµανση αυτών των τιµών στο χρόνο (ανά 10 δευτερόλεπτα) και έχει ενδιαφέρον να παρατηρήσετε πως µεταβάλλονται αυτές οι τιµές καθώς αυξάνεται ο αριθµός των χρηστών που αλληλεπιδρούν µε τον web server ταυτόχρονα. Ο βασικός έλεγχος που πρέπει να γίνει εδώ είναι εάν ο µέσος ή/και ο µέγιστος χρόνος απόκρισης ξεπερνάει ένα άνω όριο. Υπάρχουν 3 σηµαντικά όρια στις τιµές του χρόνου απόκρισης, για όλα τα συστήµατα λογισµικού, άρα και για την περίπτωση των web servers: 0,1 second. Είναι ο ιδανικός χρόνος απόκρισης. Οι χρήστες νοιώθουν ότι το σύστηµα αντιδρά ακαριαία. 1 second. Είναι το όριο µετά το οποίο οι χρήστες αντιλαµβάνονται µια καθυστέρηση στην απόκριση του συστήµατος. Βέβαια, στην περίπτωση των web servers, όπου µεσολαβεί το δίκτυο και αυτός ο χρόνος χαρακτηρίζεται ιδανικός. ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 16

10 seconds. Είναι το όριο, µετά το οποίο ο χρόνος απόκρισης γίνεται µη αποδεκτός. Ο χρήστης νοιώθει ότι το σύστηµα δεν ανταποκρίνεται και οι περισσότεροι χρήστες εγκαταλείπουν το site. Μάλιστα, πρόσφατες έρευνες έχουν δείξει ότι πλέον αυτός ο χρόνος είναι κοντά στα 8 δευτερόλεπτα. Για τη συγκεκριµένη άσκηση, θεωρούµε ως άνω όριο τα 10 δευτερόλεπτα. Download time Ο χρόνος κατεβάσµατος είναι ο χρόνος από τη στιγµή που έρχονται τα πρώτα bytes της σελίδας (συνήθως η στιγµή που εµφανίζεται ο τίτλος της σελίδας στο title bar του παραθύρου του browser) µέχρι να κατέβει ολόκληρο το HTML αρχείο της σελίδας (πάλι δεν συµπεριλαµβάνεται ο χρόνος κατεβάσµατος των υπολοίπων στοιχείων της σελίδας). Για το download time το WAPT µας υπολογίζει µόνο τη µέση τιµή (Avg), η οποία είναι και η πιο ενδεικτική. Οι µετρήσεις του download time, µας δείχνουν εάν το εύρος ζώνης (bandwidth) του web server είναι επαρκές για να παρέχει το επιθυµητό επίπεδο απόδοσης ή όχι. Εάν η αύξηση των εικονικών χρηστών οδηγεί στην γρήγορη αύξηση του download time, τότε πιθανότατα το εύρος ζώνης (πιο συγκεκριµένα το upload bandwidth) του web server είναι ανεπαρκές για να αντέξει το µέγιστο πιθανό φορτίο και θέλει αναβάθµιση. Errors Το WAPT καταγράφει τρία είδη λαθών: HTTP errors %: Είναι το ποσοστό αποκρίσεων που παρουσίασαν HTTP errors στο συνολικό αριθµό αιτηµάτων (hits). Να διευκρινίσουµε εδώ ότι αιτήµατα γίνονται όχι µόνο για τις σελίδες που έχουµε επιλέξει για το σενάριο δοκιµών αλλά και για κάθε στοιχείο που περιέχουν (εικόνες, κά). Όταν λαµβάνουµε ένα HTTP error, αυτό σηµαίνει ότι υπήρξε κάποιο πρόβληµα µε τη λειτουργία του web server, το οποίο πρέπει να διερευνήσουµε περεταίρω. Το ποσοστό λαθών δεν µας λέει και που εµφανίστηκαν αυτά τα λάθη. Θα πρέπει να εξετάσουµε τα αναλυτικά logs που παράγει το WAPT για κάθε µία αίτηση που έκανε και να εντοπίσουµε σε ποιες αιτήσεις υπήρξε πρόβληµα και τι είδους (µε βάση τον κωδικό λάθους). Socket errors %: Είναι το ποσοστό αποκρίσεων που παρουσίασαν Socket errors στο συνολικό αριθµό αιτηµάτων. To socket error είναι ένδειξη κακής σύνδεσης, και δείχνουν προβλήµατα µεταφοράς δεδοµένων µέσω του socket. Βέβαια αυτά τα προβλήµατα δεν είναι απαραίτητο να οφείλονται µόνο στον server. Μπορεί να φταίει και η σύνδεση του χρήστη (στη συγκεκριµένη περίπτωση του µηχανήµατος που τρέχει το WAPT). Timeouts %: Είναι το ποσοστό αποκρίσεων που παρουσίασαν timeouts στο συνολικό αριθµό αιτηµάτων. ιακρίνονται σε response timeouts και socket timeouts. ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 17

Τα γραφήµατα λαθών µας βοηθάνε να παρατηρούµε τις µεταβολές στο ρυθµό παραγωγής λαθών καθώς αυξάνουν οι χρήστες. Είναι το ποιο σηµαντικό µέγεθος στο stress testing όπου πρέπει να βρούµε τον µέγιστο αριθµό χρηστών που µπορούν να εξυπηρετηθούν σε αποδεκτούς χρόνους απόκρισης και χωρίς λάθη. TIMINGS: ΓΡΑΦΗΜΑΤΑ / ΑΠΟΤΕΛΕΣΜΑΤΑ Στη συνέχεια παρουσιάζονται τα γραφήµατα Timimgs για κάθε µία σελίδα και για κάθε profile χρήστη. Όπως εξηγήσαµε παραπάνω, στα γραφήµατα Timings εµφανίζονται τα µεγέθη που είναι τσεκαρισµένα στην παρακάτω εικόνα. page_1: http://class.eap.gr/quickplace/info/main.nsf HighSpeedUsers ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 18

LowSpeedUsers ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 19

page_2: http://class.eap.gr/quickplace/info/.nsf?login HighSpeedUsers LowSpeedUsers ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 20

page_3: http://class.eap.gr/quickplace/quickplace/main.nsf/h_toc/22049553d70e00ef85256 BB60054A7CB/ HighSpeedUsers LowSpeedUsers ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 21

page_4: http://class.eap.gr/pli42 HighSpeedUsers LowSpeedUsers ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 22

page_5: http://class.eap.gr/quickplace/pli42/main.nsf/h_toc/$new/ HighSpeedUsers. LowSpeedUsers ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 23

page_6: http://class.eap.gr/quickplace/pli42/main.nsf/h_toc/$new/ HighSpeedUsers. LowSpeedUsers ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 24

page_7: http://class.eap.gr/quickplace/pli42/pagelibraryc225762e00688eb8.nsf HighSpeedUsers. LowSpeedUsers ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 25

TIMINGS: ΑΝΑΛΥΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ Ξεκινώντας από το µέσο χρόνο κατεβάσµατος (avg download time), παρατηρούµε ότι αυτός είναι πολύ χαµηλός (κάτω από 0,1 sec) για όλες τις σελίδες ακόµα και όταν και οι 20 χρήστες είναι ενεργοί, κάτι που είναι λογικό καθώς οι συγκεκριµένες σελίδες έχουν µικρό HTML κώδικα. Υπάρχουν όµως µερικά µεµονωµένα διαστήµατα όπου κάποιες σελίδες εµφανίζουν avg. download time κοντά ή και πάνω από το 1 δευτερόλεπτο. Αυτό είναι µια αχνή ένδειξη ανεπαρκούς bandwidth, το οποίο θα πρέπει, όπως είπαµε και παραπάνω, να δοκιµαστεί µε stress testing και περισσότερους χρήστες. Επίσης, θα ήταν χρήσιµο και ένα άλλο σενάριο δοκιµών που θα συµπεριλάµβανε και αιτήσεις για µεγάλα αρχεία. Τότε θα µπορούσαµε να διακρίνουµε και τις διαφορές ανάµεσα στους HighSpeedUsers και στους LowSpeedUsers. Μελετώντας τις τιµές των µέσων και µέγιστων χρόνων απόκρισης, καταγράφουµε τις εξής παρατηρήσεις: Οι χρόνοι απόκρισης σε γενικές γραµµές κινούνται στα ίδια πλαίσια, ανεξαρτήτως της ταχύτητας του τελικού χρήστη, κάτι που είναι φυσιολογικό αφού δεν υπάρχουν διαφορές στο download time. Page 1: ο µέσος χρόνος απόκρισης είναι κάτω από 0,35sec κάτι που κρίνεται πολύ ικανοποιητικό. Αυτή η σελίδα βέβαια δεν δοκιµάζεται µε πολλούς χρήστες, αφού προσπελαύνεται µόνο µία φορά από κάθε χρήστη στην αρχή του session του. Αυτό όµως ισχύει και στην πράξη (αφού είναι η σελίδα login). Page 2: Στα περισσότερα διαστήµατα η µέση απόκριση είναι κοντά στο 1 δευτερόλεπτο. Υπάρχουν όµως τρία διαστήµατα στους HighSpeedUsers που ο µέγιστος χρόνος πλησιάζει τα 3,5 sec, αλλά και ένα διάστηµα στους LowSpeedUsers που ξεπερνάει τα 7 δευτερόλεπτα. Προσέξτε, τις δύο κορυφές αριστερά στο γράφηµα των LowSpeedUsers. Ο πραγµατικός χρόνος αντίδρασης του server είναι κοντά στo 1 δευτερόλεπτο. To response time ανεβαίνει λόγω της αύξησης του download time. Page 3: Πολλοί καλοί χρόνοι απόκρισης (<1 sec) εκτός από ένα διάστηµα που εµφανίζεται µια αίτηση µε χρόνο απόκρισης τα 5.5 sec. Page 4: Καλοί χρόνοι απόκρισης (<1 sec), αλλά υπάρχουν δύο διαστήµατα όπου οι χρόνοι ξεπερνάνε το όριο των 10 sec. Page 5: Εδώ τα αποτελέσµατα δεν είναι καθόλου καλά. Όσο οι χρήστες είναι λίγοι σε αριθµό, οι χρόνοι απόκρισης είναι πάρα πολύ καλοί (~1 sec). Όταν όµως σταθεροποιούνται στους 20 τότε οι µέσοι χρόνοι απόκρισης είναι σταθερά κοντά στα 16 δευτερόλεπτα, ενώ καταγράφηκε µέγιστος χρόνος απόκρισης τα 22 δευτερόλεπτα. Page 6: Παρόµοια εικόνα και εδώ. Όσο οι χρήστες είναι λίγοι σε αριθµό, οι χρόνοι απόκρισης είναι πάρα πολύ καλοί (~1 sec). Όταν όµως σταθεροποιούνται στους 20 τότε οι µέσοι χρόνοι απόκρισης είναι σταθερά µεταξύ 14-20 δευτερολέπτων, ενώ καταγράφηκε µέγιστος χρόνος απόκρισης τα 28 δευτερόλεπτα. Page 7: Πολλοί καλοί χρόνοι απόκρισης (<1 sec) εκτός από ένα διάστηµα που εµφανίζεται µια αίτηση µε χρόνο απόκρισης τα 9 sec. ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 26

Για τις σελίδες 2,3,4,7 γενικά έχουµε ικανοποιητικά αποτελέσµατα, αλλά οι αρρυθµίες που παρουσιάζουν οι χρόνοι απόκρισης τους θα πρέπει να µελετηθούν περεταίρω µε µια νέα δοκιµή µε περισσότερους χρήστες. Στις σελίδες 5 και 6 είναι σαφές ότι έχουµε πρόβληµα καθώς ο χρόνος απόκρισης είναι σχεδόν µόνιµα πολύ πάνω από τα 10 sec, όταν υπάρχουν 20 χρήστες στο server ταυτόχρονα. Πιστεύω ότι όλοι έχουµε διαπιστώσει το συγκεκριµένο πρόβληµα στο portal µε τα links Daily και Weekly (αρνητική εµπειρία χρήσης του site). ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 27

ERRORS: ΓΡΑΦΗΜΑΤΑ / ΑΠΟΤΕΛΕΣΜΑΤΑ Στη συνέχεια παρουσιάζονται τα γραφήµατα Errors για κάθε µία σελίδα και για κάθε profile χρήστη. Όσα γραφήµατα παραλείπονται, σηµαίνει ότι δεν εµφανίστηκε κάποιο λάθος. Στα γραφήµατα Errors εµφανίζονται τα µεγέθη που είναι τσεκαρισµένα στην παρακάτω εικόνα. page_2: http://class.eap.gr/quickplace/info/.nsf?login LowSpeedUsers ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 28

page_3: http://class.eap.gr/quickplace/quickplace/main.nsf/h_toc/22049553d70e00ef85256 BB60054A7CB/ HighSpeedUsers LowSpeedUsers ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 29

page_4: http://class.eap.gr/pli42 LowSpeedUsers page_6: http://class.eap.gr/quickplace/pli42/main.nsf/h_toc/$new/ HighSpeedUsers ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 30

page_7: http://class.eap.gr/quickplace/pli42/pagelibraryc225762e00688eb8.nsf LowSpeedUsers ERRORS: ΑΝΑΛΥΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ Στις περισσότερες δοκιµές που κάναµε πριν τη συγκεκριµένη (και ήταν πάνω από 25!), παρατηρούσαµε σποραδικά (1 ή 2 σε κάθε δοκιµή) socket errors, ειδικά στους lowspeedusers. Στη συγκεκριµένη δοκιµή εµφανίστηκαν αρκετά περισσότερα από το συνηθισµένο (6 socket errors). Τα socket errors δείχνουν µια κακή ποιότητα στη σύνδεση, για την οποία µπορεί να ευθύνεται το δίκτυο του web server ή το δίκτυο µέσα από το οποίο έγινε η παρούσα µέτρηση (forthnet 16Mbps). Αντίθετα, σε όλες τις δοκιµές µας παρατηρήσαµε ακριβώς τα ίδια HTTP errors στη σελίδα 7. Για να δούµε τι λάθη ήταν αυτά, µελετήσαµε τα logs που παράγει το WAPT (βλ. εικόνα παρακάτω). ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 31

Έτσι, βρήκαµε ότι τα συγκεκριµένα λάθη παράγονται όταν το WAPT ζητάει τα στοιχεία της σελίδας 7 µε τα παρακάτω URLs: http://class.eap.gr/quickplace/pli42/pagelibraryc225762e00688eb8.nsf/$defaultvie w/04d09962918832a1c225762e0068bcee/?opendocument&form=folderinit&nore direct&nowebcaching&timestamp=c225769b002cb1b4&qpversion=700050.065 000&LoginName=CN=CHRISTODOULOU%20SOTIRIOS%20P%252FO=directory http://class.eap.gr/quickplace/pli42/pagelibraryc225762e00688eb8.nsf/$defaultvie w/9eeb7d0c2c9df92405256820007751d3/?opendocument&form=h_stylesheet &CacheResults&TimeStamp=C225769B002CB1D6&QPVersion=700050.065000&L oginname=cn=christodoulou%20sotirios%20p%252fo=directory http://class.eap.gr/quickplace/pli42/pagelibraryc225762e00688eb8.nsf/$defaultvie w/e5625bd1b8f3e85005256823005aaf05/?opendocument&nowebcaching&for m=h_requestcontext&timestamp=c225769b002cb1d5&qpversion=700050.065 000&LoginName=CN=CHRISTODOULOU%20SOTIRIOS%20P%252FO=directory Το περίεργο είναι ότι δεν υπάρχει πρόβληµα στις συγκεκριµένες κλήσεις, όταν οι χρήστες είναι λίγοι. Όταν σταθεροποιηθούν όµως στους 20, τότε παράγονται τα ίδια λάθη µε αρκετά µεγάλη συχνότητα. Είναι ένα δύσκολο λάθος να εντοπισθεί και να διορθωθεί. ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 32

γ. Υψηλός χρόνος απόκρισης για τις σελίδες 5 και 6: Παρόλο που και οι 7 σελίδες του σεναρίου µας είναι δυναµικές (παράγονται εκείνη τη στιγµή από τον server), παρατηρούµε µεγάλες διαφορές στους χρόνους απόκρισης από σελίδα σε σελίδα, ειδικά υπό συνθήκες φόρτου. Υψηλός χρόνος απόκρισης υποδεικνύει πρόβληµα στην απόδοση του server. Είτε στο υλικό που το υποστηρίζει (π.χ. αργή CPU, αργός δίσκος) είτε στο λογισµικό των εφαρµογών (π.χ. κακός προγραµµατισµός δυναµικών σελίδων, κακός σχεδιασµός Β που την κάνει αργή, αργό λογισµικό Β, κλπ.). Είναι σαφές, ότι από τις σελίδες του σεναρίου µας οι σελίδες 5 και 6 θα πρέπει να έχουν το ποιο «απαιτητικό» SQL query. Το πιο πιθανό λοιπόν είναι το πρόβληµα να βρίσκεται είτε στη σύνταξη των συγκεκριµένων ερωτηµάτων είτε στο σχεδιασµό της Β είτε στο λογισµικό της Β. Εκτός από τις προφανείς βελτιώσεις, δηλ. καλύτερο SQL query, καλύτερη σχεδίαση της Β, δηµιουργία indexes στα κατάλληλα πεδία και στους κατάλληλους πίνακες της Β, κλπ. υπάρχουν και άλλες λύσεις στο συγκεκριµένο πρόβληµα. Μια πολύ απλοϊκή λύση θα ήταν να είναι αυτές οι σελίδες στατικές HTML σελίδες οι οποίες θα παράγονται αυτόµατα από τον server κάθε φορά που γίνεται µια καινούργια καταχώρηση στο portal. Ο χρόνος απόκρισής τους θα αυξηθεί ραγδαία, ενώ θα επιβαρύνουν πλέον ελάχιστα τον web server. HTTP errors στη σελίδα 7 Ας µελετήσουµε το πρώτο από τα URLs για τα οποία µας βγάζει Bad Request. To URL που φαίνεται παρακάτω υπάρχει στο profile των χρηστών στη σελίδα 7, στα page elements: http://class.eap.gr/quickplace/pli42/pagelibraryc225762e00688eb8.nsf/$defaultvie w/04d09962918832a1c225762e0068bcee/?opendocument&form=folderinit&nore direct&nowebcaching&timestamp=c225769b002cb1b4&qpversion=700050.065 000&LoginName=CN=CHRISTODOULOU%20SOTIRIOS%20P%252FO=directory Μελετώντας τα αντίστοιχα logs για τις σελίδες 7, στα σηµεία που µας βγάζει Bad Request, διαπιστώνουµε ότι το εργαλείο ζήτησε το παρακάτω URL: http://class.eap.gr/quickplace/pli42/pagelibraryc225762e00688eb8.nsf!login&red irectto=%2fquickplace%2fpli42%2fpagelibraryc225762e00688eb8.nsf%2f$def aultview%2f04d09962918832a1c225762e0068bcee%2f%3fopendocument%26for m%3dfolderinit%26noredirect%26nowebcaching%26timestamp%3dc225769b0 02CB1B4%26QPVersion%3D700050.065000Name%3DCN%3DCHRISTODOULO U%2520SOTIRIOS%2520P%25252FO%3Ddirectory Αν αντιγράψετε αυτό το URL και το βάλετε σε ένα browser θα διαπιστώσετε ότι πάντα βγάζει bad request. Μελετώντας γράµµα-γράµµα το URL σε σχέση µε το σωστό, διαπιστώνουµε ότι λείπει το συγκεκριµένο κοµµάτι που φαίνεται παρακάτω σκιασµένο: ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 33

http://class.eap.gr/quickplace/pli42/pagelibraryc225762e00688eb8.nsf!login&red irectto=%2fquickplace%2fpli42%2fpagelibraryc225762e00688eb8.nsf%2f$def aultview%2f04d09962918832a1c225762e0068bcee%2f%3fopendocument%26for m%3dfolderinit%26noredirect%26nowebcaching%26timestamp%3dc225769b0 02CB1B4%26QPVersion%3D700050.065000&LoginName%3DCN%3DCHRISTO DOULOU%2520SOTIRIOS%2520P%25252FO%3Ddirectory Είναι πολύ περίεργο λάθος, και δύσκολο να εκτιµηθεί που οφείλετε χωρίς να έχουµε τον κώδικα όλης της εφαρµογής. Αυτό που µπορούµε να πούµε (µελετώντας και τις σωστές αντίστοιχες αιτήσεις στην αρχική φάση των δοκιµών) είναι ότι οι συγκεκριµένες αιτήσεις προκαλούν διαδοχικά redirects και πιθανότατα στη λογική που υπολογίζεται το νέο URL υπάρχει κάποιο σφάλµα. ΕΝ ΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ 34