• Like
  • Save
Software quality
Upcoming SlideShare
Loading in...5
×
 

Software quality

on

  • 396 views

Talk given at the Greek chapter of the Project Management Institute.

Talk given at the Greek chapter of the Project Management Institute.

Statistics

Views

Total Views
396
Views on SlideShare
392
Embed Views
4

Actions

Likes
0
Downloads
0
Comments
0

2 Embeds 4

http://localhost 2
http://gousios.gr 2

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Καλησπέρα σας.\n
  • Θα ξεκινήσω την παρουσίασή μου με κάποιους αριθμούς που αφορούν περισσότερο την διοίκηση έργων παρά την ποιότητα. Αν και είμαι σίγουρος ότι οι περισσότεροι γνωρίζετε τα παραπάνω στοιχεία, απλά να αναφέρω ότι....\nΤα στοιχεία έχουν προκύψει από ανάλυση αποτελεσμάτων πολύ μεγάλων έργων λογισμικού στις 3 προηγούμενες 10ετιες\nΟ λόγος που τα αναφέρω είναι για να τονίσω κάτι το οποίο είναι μεν προφανές, αλλά δεν είναι απαραίτητα κάτι το οποίο λαμβάνουμε υποψην όταν σχεδιάζουμε ένα εργο\n
  • Ακόμη όμως και αν παραδοθεί ένα έργο, αυτό δεν σημαίνει ότι λειτουργεί ή ότι δεν θα παρουσιάσει κάποιο πρόβλημα. Όλοι το γνωρίζουμε αυτό από προσωπική εμπειρία με τους υπολογιστές μας και δυστυχώς υπάρχουν πολύ ποιο σοβαρές περιπτώσεις που έχουν σαν συνέπεια ανθρώπινες ζωές ή δυσθεώρατα κόστη. \n
  • Ένας από τους τρόπους, ίσως ο ποιο σημαντικός, για να περιορίσουμε το ρίσκο και το κόστος ενός έργου είναι να εφαρμόσουμε διαδικασίες ποιότητας λογισμικού. Οπότε το ερώτημα που προκύπτει είναι τι ακριβώς αφορά η ποιότητα λογισμικού\n
  • Η απάντηση είναι ότι δυστυχώς δεν ξέρουμε ακριβώς ακόμη τι είναι ποιότητα λογισμικού, ακριβώς διότι η ποιότητα είναι διαφορετικά πράγματα για διαφορετικές κατηγορίες εμπλεκομένων σε ένα έργο λογισμικού\n
  • Για παράδειγμα, για τον τελικό χρήστη η ποιότητα μπορεί να είναι το κατά πόσο εμφανίζονται βλάβες με τη μορφή μυνημάτων λάθους ή τη συχνότητα εμφάνισης διορθώσεων ή γενικά το πόσο καλά του κάνει τη δουλειά\n
  • Για τον προγραμματιστή που πρέπει για να διορθώσει ένα λάθος ή να προσθέσει κάποια καινούργια λειτουργία να αρχίσει να ψάχνει σε χιλιάδες ή εκατομύρια γραμμές κώδικα, η ποιότητα αφορά το πόσο καλά δομημένος είναι ο κώδικας ή πόσο καλή τεκμηρίωση έχει\n
  • Για τον σχεδιαστή λογισμικού, που συνήθως έχει μια συστημική προσέγγιση στα προβλήματα, το ποιοτικό σύστημα είναι αυτό που δεν είναι πολύπλοκο και που τα διάφορα επίπεδά του επικοινωνούν με καλά ορισμένες διεπαφές κτλ.\n
  • Για αυτόν που ελέγχει το λογισμικό η ποιότητα αφορά τη συχνότητα εμφάνισης λαθών σε συγκεκριμένα σημεία ενός προγράμματος\n
  • Τέλος για τον διαχειριστή έργου, η ποιότητα είναι συνάρτηση περισσότερο του κόστους ή της τήρησης διαδικασιών και λιγότερο του πως το λογισμικό είναι δομημένο εσωτερικά\n
  • Ας δούμε και την άποψη των ειδικών: Για τον sommerville η ποιότητα αφορά την στη σχεδίαση\n
  • Ενώ για τον de marko, η ποιότητα είναι συνάρτηση της χρησιμότητας του προϊόντος\n
  • Από μια ποιο τεχνική σκοπιά, ο mcconnel διαχωρίζει την ποιότητα σε εσωτερική και εξωτερική, ανάλογα με το τι βλέπουν οι χρήστες. Γενικά αυτός ο διαχωρισμός ακολουθείται στην βιβλιογραφία και υπάρχει η υπόνοια (αλλά όχι βεβαιότητα) ότι η εσωτερική ποιότητα αντικατοπτριζεται στην εξωτερική.\n
  • Ο Σπινέλλης, σε πρόσφατο σχετικό βιβλίο του, αναλύει περισσότερο την άποψη του McConnel για την ποιότητα και την σπάει σε 4 κομμάτια\n
  • Τέλος ό οργανισμός ISO έχει δημιουργήσει ένα διεθνές standard για το τί αφορά η ποιότητα λογισμικού, χωρίζοντάς τη σε 7 διαφορετικά χαρακτηριστικά το καθένα από τα οποία έχει πολλά υποχαρακτηριστικά\n
  • Έχοντας όλες αυτές αυτές τις διαφορετικές και αλληλοσυγκρουόμενες απόψεις κατά νου, η μηχανικοί λογισμικού καλούνται να εφαρμόσουν τις αρχές της μηχανικής ώστε να βελτιώσουν τη διαδικασία ανάπτυξης και το τελικό προιόν\n
  • Αυτό γίνεται εφαρμόζοντας την επιστημονική μέθοδο στην ανάπτυξη λογισμικού ή ποιο σχηματικά:\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Software quality Software quality Presentation Transcript

  • Ποιότητα ΛογισμικούΤι αφορά και πως αποτιμάται Γεώργιος Γούσιος
  • Κάποιοι στοιχεία • >70% έργων πληροφορικής καθυστερούν • 5-15% εγκαταλείπονται • Γενικά, ένα έργο λογισμικού είναι ποιο πιθανό να είναι μη επιτυχέςΤα έργα λογισµικού περιέχουν πολύ σηµαντικό ρίσκο
  • Διάσημες περιπτώσεις αστοχίας• 1985-1987: Therac 25 radiation equip.• 1991: Patriot missile• 1996: Ariane 5• 1998: Mars climate orbiter• 2000: ILOVEYOU• 2010: Toyota’s acceleration bug, GPS glitch
  • Ρίσκο έργουΠοιότητα Λογισμικού
  • “Το πρόβλημα με τηνποιότητα λογισμικού είναιότι όλοι νομίζουν ότι την καταλαβαίνουν” Crosby, 1979
  • ΧρήστηςΠελάτης
  • Προγραμματιστής
  • Μηχανικόςλογισμικού
  • Code reviewer Tester
  • Διαχειριστής Έργου
  • Quality, simplistically, means that a product should meet its specification Sommerville, 2004
  • a products quality is a function of howmuch it changes the world for the better. Tom DeMarco
  • External quality characteristics are thoseparts of a product that face its users,where internal quality characteristics arethose that do not Steve Mc Connell, 2004
  • Ποιότητα Εξωτερική Χρήσης Ποιότητα Ποιότητα ΛογισμικούΕσωτερική ΠοιότηταΠοιότητα Διαδικασίας Σπινέλλης, 2006
  • Χαρακτηριστικάποιότητας κατά ISO PortabilityFunctionality MaintainabilityReliability ISO 9126 Usability Efficiency
  • Μηχανική Λογισμικού (software engineering)
  • Μπορούμε να βελτιώσουμε μόνο ότι αξιολογούμεκαι μπορούμε να αξιολογήσουμε μόνο ότι μετράμε
  • ΣτόχοιΜέτρησεις ΑνάλυσηΑξιολόγηση Γνώση
  • ΣχεδιασμόςΔιαδικασιών Ποιότητας• Επιλογή στόχων ποιότητας • Χαρακτηριστικά • Μετρικές• Προδιαγραφή διαδικασιών • Code reviews • Μετρήσεις λογισμικού• Δημιουργία μηχανισμού συλλογής, καταγραφής και ανάλυσης δεδομένων
  • Στόχοι ποιότητας Ποιότητα Λογισμικου Εσωτερική Εξωτερική Ποιότητα Ποιότητα Ποιότητα Διαδικασίας Ασφάλεια Βλαβοανοχή ΤαχύτηταΠολυπλοκότητα Επίλυσης Δομή Συνέπεια Συνεκτικότητα
  • Στόχοι ποιότηταςΧαρακτηριστικά Μετρικές Αριθμός ορισμάτων Συντηρησιμότητα Κυκλο- πολυπλοκότητα Βλαβοανοχή Αριθμός γραμμών κωδικα Μεταφερσιμότητα Αριθμός σφαλμάτων Χρηστικότητα Αριθμός γραμμών τεκμηρίωσης Sommerville, 2004
  • Μετρικές• Καταγραφή στο χρόνο• Συσχέτιση με γεγονότα στη διάρκεια ζωής (πχ releases)• Αυτόματοποίηση συλλογής• Εργαλεία ΕΛΛΑΚ και εμπορικά
  • Πολυπλοκότητα• Κυκλοπολυπλοκότητα κατά McCabe• Επίδραση στη διαδικασία ελέγχου
  • Δομή• Μετρικές δομής• Μετρικές επαναχρησιμοποίησης• Αντικειμενοστραφείς μετρικές
  • Ασφάλεια• Στατική ανάλυση κώδικα• Δυναμική ανάλυση μνήμης• Penetration Testing 30.00 22.50 Null Pointer Dereferences 15.00 Forgoten free() 7.50 0 v0.4 v0.5 v0.6 v0.7
  • Ανάλυση• Οι μετρικές δίνουν μια αριθμητική τιμή σε ένα χαρακτηριστικό• Απαιτείται ανάλυση • Ως προς το χρόνο • Ως προς την επίδραση
  • Ανάλυση Όριο Κυκλοπολυπλοκότητα30.0022.5015.00 7.50 0 foo.c bar.c baz.c Συσχέτιση μετρικών με στόχους
  • Ανάλυση Αριθμός γραμμών Αριθμός σφαλμάτωνΙαν Φεβ Μαρ Απρ Μαι Ιουν Ιουλ Αυγ Σεπ Παρακολούθηση προόδου
  • Ανάλυση Αριθμός γραμμών Αριθμός σφαλμάτων Ιαν Φεβ Μαρ Απρ Μαι Ιουν Ιουλ Αυγ ΣεπΠαρακολούθηση προόδου - κακό σενάριο
  • Ανάλυση Μέσος χρόνος επιδιόρθωσης λαθών ανά υποσύστημα 70.00 52.50Ώρες 35.00 17.50 0 Υ1 Υ2 Υ3 Υ4 Υ5 Αναγνώριση τάσεων και εξαιρέσεων
  • Ανάλυση Διασπορά λαθών σε αρθρώματα 50 38Αριθμός λαθών 25 13 0 0 1 2 3 4 5 6 7 8 9 10 Αριθμός αρθρωμάτων Αναγνώριση τάσεων και εξαιρέσεων
  • Ανάλυση 15Αριθμός λαθών ανά αρχείο R² = 0.9054 11 8 4 0 0 1 2 3 4 5 6 7 8 9 10 Κυκλοπολυπλοκότητα Αναγνώριση συσχετίσεων
  • Αξιολόγηση• Συσχέτιση ευρημάτων με στόχους• Επιλογή διορθωτικών ενεργειών• Επιλογή επιπλέον μετρήσεων
  • Γνώση• Μοντέλα ποιότητας• Πρόβλεψη συμπεριφοράς έργου• Αυτοματοποιημένη παροχή βοήθειας στους προγραμματιστές
  • Αξιολόγηση Ποιότητας Έργου Πριν Κατά τη διάρκεια Μετά• Επιλογή στόχων • Παρακολούθη • Δημιουργία ποιότητας ση μετρικών μοντέλων• Επιλογή • Ανάλυση • Επεξεργασία μετρικών και συμπερασμάτ μοντέλων • Διορθωτικές ων παρεμβάσεις• Εφαρμογή συστήματος συλλογής δεδομένων Kahn, 2002
  • Σημεία Κλειδιά• Η ποιότητα λογισμικού έχει διαφορετικές οπτικές και αναγνώσεις• Οι μετρικές δεν είναι αυτοσκοπός• “Εκλογή σκοπού και εμμονή σε αυτόν”
  • Ευχαριστώ! gousiosg@aueb.grhttp://demo.sqo-oss.org