Κεφάλαιο 5 – Επίλογος
97
κλάσεις αλλά ο μέσος αριθμός γραμμών ανά μέθοδο είναι πολύ μικρός. Αυτή η μέτρηση είναι
αποτέλεσμα της χρήσης πολλών μεθόδων για μικρές και συγκεκριμένες λειτουργίες που
προσφέρουν μεγαλύτερη συνοχή κώδικα.
Μία άλλη σημαντική μετρική κώδικα είναι η κυκλωματική πολυπλοκότητα. Το
πρόγραμμα PHPLOC δεν μας προσφέρει την μετρική αυτή απευθείας και άλλα παρόμοια
προγράμματα δεν την υποστηρίζουν καθόλου λόγο της δυσκολίας απόκτησης σωστής
μέτρησης. Παρόλα αυτά ο Πίνακας 3 περιέχει κάποιες σχετικές μετρικές από τα αποτελέσματα
του προγράμματος PHPLOC. Παρατηρούμε από τον πίνακα ότι η μέση πολυπλοκότητα ανά
λογική γραμμή κώδικα είναι αρκετά μικρή.
Μέση πολυπλοκότητα ανά LLOC
0.34
Μέση πολυπλοκότητα ανά κλάση
16.50
Ελάχιστη πολυπλοκότητα κλάσης
2.00
Μέγιστη πολυπλοκότητα κλάσης
34.00
Αριθμός κλάσεων
4
Μέση πολυπλοκότητα ανά μέθοδο
1.66
Ελάχιστη πολυπλοκότητα μεθόδου
1.00
Μέγιστη πολυπλοκότητα μεθόδου
6.00
Αριθμός μεθόδων
94
Πίνακας 3: Κυκλωματική πολυπλοκότητα κώδικα PHP, αποτελέσματα του προγράμματος PHPLOC
Μεγάλη αύξηση παρουσιάζεται στην πολυπλοκότητα κάποιων κλάσεων χωρίς όμως να
αντικατοπτρίζεται εσωτερικά στις μεθόδους. Παίρνοντας υπόψη την μέγιστη πολυπλοκότητα
κλάσης που εμφανίζει μία ακραία τιμή αντιλαμβανόμαστε ότι υπάρχουν συγκεκριμένα
κομμάτια κώδικα με μεγάλη πολυπλοκότητα που ανεβάζουν σημαντικά τον μέσο όρο. Τέτοια
κομμάτια κώδικα εμφανίζονται σε μεθόδους όπως αυτή που εξάγει τα περιεχόμενα ενός
συμπιεσμένου αρχείου. Σε κομμάτια κώδικα όπως αυτό πρέπει να γίνουν υποχρεωτικά
εμφωλευμένοι έλεγχοι και επαναλήψεις ώστε να εκτελέσουν αποτελεσματικά την λειτουργία
τους. Ακόμη όμως και με κομμάτια κώδικα αυτού του είδους, η εφαρμογή μας έχει ως σύνολο
σχετικά μικρή πολυπλοκότητα για τις λειτουργίες που εκτελεί. Συμπεράνουμε λοιπόν από τις
παραπάνω μετρικές ότι έχουμε καταφέρει την δημιουργία μίας μεγάλης εφαρμογής με πολλές
λειτουργίες που όμως απαρτίζονται από εύκολα συντηρήσιμο και επεκτάσιμο κώδικα.
5.1.2 Ανάλυση S.W.O.T.
Η ανάλυση S.W.O.T. αντιμετωπίζει την εφαρμογή μας ως ένα καινοτόμο έργο
λογισμικού και επικεντρώνεται στα δυνατά και αδύναμα στοιχεία του αλλά και τις ευκαιρίες
και απειλές που μπορεί να αντιμετωπίσει. Για την σωστή ανάλυση δίνουμε αντικειμενικά τα
σημαντικότερα στοιχεία της εφαρμογής μας σε κάθε κατηγορία.