Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Τµήµα Διοίκησης Επιχειρήσεων Τει Δυτικής Ελλάδας Μεσολόγγι Δρ. Α. Στεφανή Διάλεξη 2
2 Agenda Ποιότητα Λογισµικού Εσωτερικές Μετρικές Εξωτερικές Μετρικές Εργαλεία Μετρήσεων
3 Ποιότητα Η ποιότητα είναι υποκειµενική, ασαφής. Είναι δύσκολο να την ορίσει κανείς ακόµα και για απλά πράγµατα της καθηµερινής µας ζωής
4 Ποιότητα Λογισµικού - Χρήστης Ποιότητα λογισµικού από την πλευρά του χρήστη Quality in Use: πως χρησιµοποιεί ο χρήστης το λογισµικό (επίκεντρο -> ο χρήστης) Εxternal Quality: πως συµπεριφέρεται το λογισµικό όταν το χρησιµοποιεί ο χρήστης (επίκεντρο -> το λογισµικό)
5 Ποιότητα Λογισµικού «Οι απόψεις για την Ποιότητα ενός λογισµικού µπορεί να είναι τόσο διαφορετικές όσο και οι απόψεις για το τι είναι όµορφο αισθητικά!» Διάφοροι Ορισµοί: ISO 9000:ένα λογισµικό είναι τόσο ποιοτικό όσο και οι προδιαγραφές του Ι SO9126:Ύπαρξη ή όχι των ποιοτικών χαρακτηριστικών
6 Πρότυπα Ποιότητας Η επιστηµονική (αλλά και πρακτική) χρήση του όρου Ποιότητα οριοθετείται από πρότυπα (standards), δηλαδή από κοινά αποδεκτούς ορισµούς και οδηγίες χρήσης. Το καταλληλότερο πρότυπο για το λογισµικό είναι το ISO 25000 το οποίο αποτελεί εξέλιξη του προτύπου ISO 9126.
Δοµή των προτύπων ποιότητας Η δοµή των προτύπων του οργανισµού ISO είναι συνήθως ιεραρχική. Στην κορυφή της ιεραρχικής δοµής τοποθετούνται τα ποιοτικά χαρακτηριστικά. Αποτελούν κατηγορίες ποιοτικών συνιστωσών που είναι µη-επικαλυπτόµενες. Κάθε χαρακτηριστικό περιέχει (ή αναλύεται σε) ένα σύνολο ποιοτικών υπο-χαρακτηριστικών που είναι και αυτό µη επικαλυπτόµενο. Λόγω της µη επικάλυψης των χαρακτηριστικών συνεπάγεται ότι η σχέση χαρακτηριστικών υποχαρακτηριστικών είναι 1-Ν.
Δοµή των προτύπων Αυτά τα δύο επίπεδα της δοµής ενός προτύπου περιγράφουν, µε γενικό τρόπο, τις ποιοτικές συνιστώσες στις οποίες δεν µπορούν να αποδοθούν απόλυτες τιµές κατά την αξιολόγηση του αντικειµένου, παρά µόνο περιγραφικές τιµές. Αυτό είναι απαραίτητο για να διασφαλιστεί η γενικότητα των προτύπων, δηλαδή η ανεξαρτησία τους από συγκεκριµένες τεχνικές ή τεχνολογίες υλοποίησης του αντικειµένου αξιολόγησης.
Συσχετίσεις της δοµής ενός προτύπου
Πρότυπο ποιότητας ποιοτικά χαρακτηριστικά ποιοτικά υπο-χαρακτηριστικά µετρικές ποιοτικά στοιχεία µέτρησης συναρτήσεις µέτρησης ποιοτικές µετρήσεις.
Τα πρότυπα που χρησιµοποιούνται τώρα. ISO/IEC 9126: Information Technology- Software Product Evaluation- Quality Characteristics and Guidelines for their Use. ISO/IEC 9126-1: 2001 Software Engineering Product Quality Part 1: Quality Model. ISO/IEC 9126-2: 2001 Software engineering - Product quality - Part 2: External metrics. ISO/IEC 9126-3: 2001 Software engineering - Product quality - Part 3: Internal metrics.
Τα πρότυπα που χρησιµοποιούνται τώρα. ISO/IEC 25000. Software Engineering - Software Product Quality Requirements and evaluation (SQuaRE). ISO/IEC 25010 Software engineering - Software product Quality Requirements and Evaluation (SQuaRE) Software and quality in use models. ISO/IEC 25012 Software engineering: Software product Quality Requirements and Evaluation (SQuaRE) Data Quality Model.
ISO 9126 Το πρότυπο ποιότητας λογισµικού στην τελική του µορφή διακρίνεται στο διεθνές πρότυπο (IS) και σε τρείς τεχνικές αναφορές (TR): ISO IS 9126-1: Quality Model Μοντέλο Ποιότητας ISO TR 9126-2: External Metrics Εξωτερικές Μετρικές ISO TR 9126-3: Internal Metrics Εσωτερικές Μετρικές ISO TR 9126-4: Quality in Use Metrics Μετρικές Ποιότητας στη χρήση
ISO 9126 (2001-2009) 14
Η σειρά προτύπων ISO25000 Η σειρά ΙSO25000 ή αλλιώς Software Product Quality Requirements and Evaluation (SQuaRE) αποτελεί την νέα έκδοση προτύπων για τη ποιότητα συστηµάτων λογισµικού. Σχεδιάστηκε για να αντικαταστήσει πρότυπα της σειράς 9000,10000 µε στόχο την οµογενοποίηση και την εξάλειψη των επικαλύψεων
Η σειρά προτύπων ISO25000
Η σειρά προτύπων ISO25000
Η σειρά προτύπων ISO25000 2501n Quality Model Division Τα πρότυπα αυτής της κατηγορίας παρουσιάζουν λεπτοµερή µοντέλα ποιότητας για λογισµικό, ποιότητας στη χρήση και δεδοµένα. Παρέχουν επίσης πρακτικές οδηγίες για την εφαρµογή των µοντέλων.
Η σειρά προτύπων ISO25000
Κατηγοριοποίηση προτύπων
Ποιοτικά Χαρακτηριστικά των προτύπων
Λειτουργικότητα Η Λειτουργικότητα (Functionality) ορίζεται ως η δυνατότητα του λογισµικού να ικανοποιεί λειτουργικές απαιτήσεις και στόχους. Οι λειτουργικές απαιτήσεις για τα δεδοµένα και το λογισµικό σχετίζονται µε το σύνολο των λειτουργικών απαιτήσεων (ή δυνατοτήτων) του χρήστη που το λογισµικό µπορεί να εξυπηρετήσει.
23 Λειτουργικότητα Τιµή: Ναι/Όχι Υπάρχει η λειτουργία πληρωµής λογαριασµών ΔΕΗ? Το κουµπί Βack -> έξοδος από το σύστηµα! Είναι συµβατό µε το νέο σύστηµα της τράπεζας? Δέχεται κάρτα µε µισοσβησµένο κωδικο?
24 Καταλληλότητα Που είναι το log-out?
25 Διαλειτουργικότητα TEI teachweb & e-class
Ευχρηστία Η Ευχρηστία (Usability) ορίζεται ως η δυνατότητα του λογισµικού να είναι κατανοητό, διαχειρίσιµο και χρησιµοποιήσιµο για να ελκύει την προσοχή του χρήστη κάτω από καθορισµένες συνθήκες. Η Ευχρηστία πραγµατεύεται το ερώτηµα «Πώς µπορεί ο χρήστης να χρησιµοποιήσει το λογισµικό;».
27 Ευχρηστία Τιµή: µη καθορισµένη (υποκειµενική) «Εισάγετε κωδικό pin3 για την ανάληψη σε Ευρώ»?? Το Interface είναι µπερδεµένο και ο χρήστης δεν µπορεί να βρει εύκολα µία λειτουργία Οι επιλογές στην οθόνη βρίσκονται ακριβώς δίπλα στα κουµπιά
Εξήγηση µετά παραδείγµατος 28
Ευχρηστία - Παραδείγµατα 29
Ευκολία Χειρισµού - Παραδείγµατα 30
Ευκολία Χειρισµού - Παραδείγµατα 31
Ευκολία εκµάθησης 32
Υπόδειγµα ευχρηστίας 33
Αποδοτικότητα Η Αποδοτικότητα (Efficiency) είναι η δυνατότητα επεξεργασίας των δεδοµένων του λογισµικού (πρόσβαση, απόκτηση, ενηµέρωση).
Aποδοτικότητα 35
Χρονική Συµπεριφορά 36
Αξιοποίηση πόρων 37
Αξιοπιστία Ως Αξιοπιστία (Reliability) ορίζεται η δυνατότητα του λογισµικού να υποστηρίζει καθορισµένο επίπεδο λειτουργιών σε καθορισµένο τεχνολογικό περιβάλλον. Η αξιοπιστία δίνει έµφαση στο ερώτηµα «Πότε το λογισµικό λειτουργεί σωστά και αποδεκτά στο χρήστη;».
39 Αξιοπιστία Τιµή: µη καθορισµένη (υποκειµενική) Η λειτουργία undo είναι χαρακτηριστικό παράδειγµα. Διακοπή ρεύµατος για 30 λεπτά. Χάνονται τα δεδοµένα που ήταν υπο επεξεργασία?
Ανεκτικότητα σε λάθη
Συντηρησιµότητα Το ποιοτικό χαρακτηριστικό της Συντηρησιµότητας (Maintenability) αναφέρεται στη δυνατότητα τροποποίησης του λογισµικού ώστε να ικανοποιεί τεχνολογικές απαιτήσεις ή λειτουργικές προδιαγραφές.
Συντηρησιµότητα 42
43 Ευκολία αλλαγής - τροποποιησιµότητα Περιγραφή Χαρακτηριστικά ονόµατα µεταβλητών Σχόλια Δόµηση
Μεταφερσιµότητα Το ποιοτικό χαρακτηριστικό της Μεταφερσιµότητας (Portability) αναφέρεται στη δυνατότητα του ΕΥ να είναι προσαρµόσιµο από ένα τεχνολογικό περιβάλλον σε ένα άλλο. Πρόβληµα της ενοποίησης των πληροφοριακών συστηµάτων του ΤΕΙ Μεσολογγίου µε το ΤΕΙ Πάτρας.
45 Μεταφερσιµότητα n Μεταφορά εφαρµογής από Windows XP σε Windows Vista ή Windows mobile
Compatibility 46
Eυκολία Εγκατάστασης 47
48 Η Πρακτικότητα των προτύπων Ένα πρότυπο καθορίζει τις ιδιότητες του ποιοτικού λογισµικού όχι πως θα κατασκευαστεί ένα ποιοτικό λογισµικό! Τι σηµαίνει π.χ. η οδηγία «το λογισµικό πρέπει να έχει καλή απόκριση χρόνου;» Πως γίνεται αυτό;
49 Η Πρακτικότητα των προτύπων Τα πρότυπα είναι ανεξάρτητα της τεχνολογίας! Μέσω εµπειρίας, και για όλες τις γλώσσες προγραµµατισµού µπορούµε να καθορίσουµε κάποιους εµπειρικούς κανόνες! Έχετε να προτείνετε κάποιους?
Πως χρησιµοποιούνται τα πρότπυπα για το σχεδιασµό λογισµικού; Ρόλος των προτύπων είναι να παρέχουν κατευθύνσεις για τη διασφάλιση της ποιότητας δεδοµένων ή λογισµικού. Το πρότυπο αποτελεί µια τεκµηριωµένη σύµβαση που περιέχει τεχνικές προδιαγραφές ή ακριβή κριτήρια τα οποία µπορούν να χρησιµοποιηθούν ως κανόνες για την αξιολόγηση τους.
Το µοντέλο κύκλου ζωής λογισµικού
Πλάνα ποιότητας συστηµάτων λογισµικού ²Δοµή πλάνου ποιότητας: Παρουσίαση του προϊόντος. Σχέδια του προϊόντος. Περιγραφές των διαδικασιών. Ποιοτικοί στόχοι. Κίνδυνοι και διαχείριση κινδύνων. ²Το πλάνο ποιότητας πρέπει να είναι σύντοµο και περιεκτικό. Αν είναι πολύ µακροσκελές, κανένας δεν θα το διαβάσει.
ΣΥΣΤΗΜΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ (QUALITY SYSTEM) Στόχοι Διασφάλιση ποιότητας διαδικασιών παραγωγής (process quality assurance) Συνεχής βελτίωση διαδικασιών παραγωγής προϊόντος και λειτουργίας επιχείρησης, σύµφωνα µε τις προδιαγραφές ποιότητας. Διασφάλιση ποιότητας πόρων (resource quality assurance) Συνεχής βελτίωση χρησιµοποιούµενων πόρων (εξοπλισµός, λογισµικό, εργαλεία, χώροι εργασίας, προσωπικό κλπ.) στην παραγωγή προϊόντος. Διασφάλιση ποιότητας προϊόντος (product quality assurance) Συνεχής βελτίωση ποιότητας παραγόµενου προϊόντος.
ΣΥΣΤΗΜΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ (QUALITY SYSTEM) Υπεύθυνο έργου Παροχές προς Πληροφόρηση για κρίσιµους παράγοντες αποτυχίας (µη τήρηση χρονικών περιθωρίων / προϋπολογισµού). Καθορισµός τυποποιηµένης διαδικασίας καταγραφής δεδοµένων έργου -- δηµιουργία ιστορικών αρχείων δεδοµένων επεξεργασία τους για εκτίµηση µελλοντικών έργων. Ύπαρξη προδιαγραφών (στο εγχειρίδιο ποιότητας) για τον τρόπο συλλογής ανάλυσης στατιστικών δεδοµένων που αφορούν λάθη / ατέλειες λογισµικού. Διευκόλυνση παρακολούθησης έργου µέσω προδιαγεγραµµένου τρόπου υποβολής εκθέσεων δραστηριοτήτων εκ µέρους του προσωπικού καθώς και εκθέσεων για τους εκπληρωθέντες στόχους έναντι εκείνων αυτών που τέθηκαν κατά την έναρξη του έργου. Προγραµµατιστή Ύπαρξη προγραµµατιστικών προτύπων για κωδικοποίηση / παρουσίαση λογισµικού καθώς και κατανόηση (από προγραµµατιστή) λειτουργιών / επικοινωνίας των επιµέρους τµηµάτων κώδικα µε το κεντρικό που εξετάζεται. Ύπαρξη οδηγιών για τον τρόπο αποθήκευσης των δεδοµένων ελέγχου. Ύπαρξη προτύπου διασφάλισης συµφωνίας µεταξύ χρησιµοποιηθέντων ονοµάτων / µεταβλητών και αρχείων αποθήκευσης του πηγαίου κώδικα, του αντικειµένου του και των δεδοµένων ελέγχου.
ΣΥΣΤΗΜΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ (QUALITY SYSTEM) Σχεδιαστή Παροχές προς Ύπαρξη προτύπου περιγραφής της αρχιτεκτονικής συστήµατος. Ύπαρξη τυποποιηµένων διαδικασιών ανάλυσης / σχεδίασης συστήµατος (εγχειρίδιο ποιότητας). Διευκόλυνση ελέγχου υλοποίησης (εκ µέρους του σχεδιασθέντος συστήµατος) των προβλεπόµενων στον προσδιορισµό απαιτήσεων λειτουργιών. Ύπαρξη οδηγιών για την κατάλληλη σχεδίαση της διεπαφής του συστήµατος µε τον χρήστη (βάση αναγκών / ιδιαιτεροτήτων του). Συντηρητή Διευκόλυνση ανίχνευσης λειτουργιών που επιτελούν συγκεκριµένα τµήµατα κώδικα µέσω υιοθέτησης κατάλληλου προγραµµατιστικού προτύπου. Ύπαρξη υποστηρικτικών διαδικασιών για εντοπισµό / εποπτεία διαφόρων εκδόσεων του συστήµατος. Ύπαρξη διαδικασιών εξασφάλισης εξωτερικής αποθήκευσης δεδοµένων ελέγχου από τους ελεγκτές (κατά τη φάση ελέγχου), ώστε αυτά να µην δηµιουργούνται εκ νέου από τους συντηρητές κατά τον επανέλεγχο.
ΣΥΣΤΗΜΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ (QUALITY SYSTEM) Εταιρία ανάπτυξης λογισµικού Παροχές προς Μείωση κόστους παραγωγής λόγω ελαχιστοποίησης ζηµιών από λάθη / επαναλαµβανόµενες εργασίες. Μείωση πολυδάπανων και χρονοβόρων φάσεων παραγωγής λόγω µείωσης χρόνου για έλεγχο και διορθώσεις. Βελτίωση οργάνωσης εταιρίας λόγω υιοθέτησης τυποποιηµένων διαδικασιών παραγωγής και χρήσης προτύπων τυποποίησης της διαδικασίας ανάπτυξης. Δυνατότητα παρακολούθησης έργων (monitoring) µε συνέπεια αύξηση παραγωγής, αποφυγή εσφαλµένων κατευθύνσεων, καλύτερη αξιοποίηση πόρων και δυνατοτήτων προσωπικού. Κατάλληλος και ακριβής καθορισµός ρόλου (αρµοδιότητες / ευθύνες) κάθε µέλους της οµάδας ανάπτυξης του έργου. Μείωση εξάρτησης εταιρίας από άτοµα λόγω τυποποίησης διαδικασιών ανάπτυξης και υιοθέτησης προγραµµατιστικών προτύπων. Αποθήκευση κατάλληλα αναπτυγµένων και επαρκώς τεκµηριωµένων τµηµάτων κώδικα που είναι άµεσα επαναχρησιµοποιήσιµα. Βελτιστοποίηση οργάνωσης µελλοντικών στόχων της εταιρίας (καταγραφή επιτυχιών / προβληµάτων / δυνατοτήτων).
ΣΥΣΤΗΜΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ (QUALITY SYSTEM) Ελεγκτή Παροχές προς Εξασφάλιση κατάλληλου προσδιορισµού απαιτήσεων για εύκολη παραγωγή δεδοµένων / διαδικασιών ελέγχου. Διασφάλιση δυνατότητας αποθήκευσης (µέσω οδηγιών ή προτύπων από το εγχειρίδιο ποιότητας) των υιοθετούµενων διαδικασιών παραγωγής δεδοµένων / αποτελεσµάτων ελέγχου, ώστε να είναι επαναχρησιµοποιήσιµες. Ύπαρξη (στο εγχειρίδιο ποιότητας) διαδικασιών αξιολόγησης των διεπαφών του συστήµατος µε τον χρήστη µέσω καταλόγων ελέγχου. Αναλυτή Ύπαρξη προτύπου προσδιορισµού απαιτήσεων για την ανάδειξη λειτουργιών που θα µπορούσαν να επαναχρησιµοποιηθούν χωρίς τροποποιήσεις σε άλλες περιπτώσεις. Ύπαρξη καταλόγου µέσω του οποίου διασφαλίζεται ότι τα χαρακτηριστικά του αναπτυσσόµενου έργου θα περιγραφούν επαρκώς. Υπόδειξη τυποποιηµένης περιγραφής της ακολουθούµενης διαδικασίας κατά τις συναντήσεις του µε τον πελάτη.