12. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Υπηρεσίες Στατικής Ανάλυσης (2/4)
escomplex
Παράγει μετρικές πολυπλοκότητας.
• Cyclomatic complexity: Μετρά όλες τις πιθανές ξεχωριστές
διαδρομές που μπορούν να ακολουθηθούν κατά την
εκτέλεση του προγράμματος.
• Halstead Volume: Μετρά τον όγκος της πληροφορίας που
περιέχεται στο κώδικα. Πιο συγκεκριμένα ερευνά πόσες
μεταβλητές χρησιμοποιούνται και πόσο συχνά.
• Maintainability: Διατυπώνει μια εκτίμηση για το επίπεδο
συντηρησιμότητας τού προγράμματος.
• Change cost: Το ποσοστό των modules που επηρεάζονται
κατα μέσο όρο όταν αλλάζει ένα module.
14. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Υπηρεσίες Στατικής Ανάλυσης (4/4)
jsinspect
Ανιχνεύει κομμάτια κώδικα που παρουσιάζουν την ίδια ή
παρόμοια δομή και λειτουργία.
def findAManager :
for each employee in employees :
i f employee . isManager :
return employee
return n i l
def findASupervisor :
for each employee in employees :
i f employee . isSupervisor :
return employee
return n i l
15. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Αποτελέσματα (1/6)
• Λιγότερο από το 15% των πακέτων χρησιμοποιείται από
άλλα και μόλις 2% των πακέτων έχει in degree μεγαλύτερο
του 100.
• Κυριαρχεί η τάση για δημιουργία μικρών πακέτων.
• Συνήθως τα πακέτα περιέχουν λιγότερο από 5
συναρτήσεις. Το 53% των πακέτων αποτελούνται από
λιγότερες από 100 γραμμές κώδικα.
• Σχεδόν το 40% των πακέτων δεν έχει ανανεωθεί τον
τελευταίο χρόνο.
• Τα πακέτα τα οποία χρησιμοποιούνται περιορίζονται στα
1.000 με 2.500.
• Τα περισσότερα πακέτα αποτελούν βοηθητικά εργαλεία
σχετικά με τη συγγραφή λογισμικού.