ΠΡΟΤΥΠΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ Μετρήσεις (Εσωτερικές / Εξωτερικές) Εντάσσονται σε κάποιο σύστημα ποιότητας λογισμικού Πρότυπα Διευκόλυνση διεθνούς ανταλλαγής αγαθών / υπηρεσιών Τεχνικές προδιαγραφές Λοιπά αυστηρά καθορισμένα κριτήρια εξασφάλιση τυποποίησης κατάλληλων Υλικών Προϊόντων Διεργασιών υπηρεσιών Τεκμηριωμένη σύμβαση σκοπός περιεχόμενο Ανάπτυξη συνεργασίας σε επιστημονικούς / τεχνολογικούς / οικονομικούς τομείς χρήση γενικευμένος ορισμός
ΠΡΟΤΥΠΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ Διεθνής Οργανισμός Τυποποίησης που δημιουργήθηκε από μία συνάντηση (Λονδίνο – 1946) εκπροσώπων 25 χωρών με σκοπό το διεθνή συντονισμό και την ομοιογένεια των προτύπων κάθε εταιρίας / βιομηχανίας. Πάνω από 130 χώρες έχουν υιοθετήσει (χρησιμοποιούν) πρότυπα ISO. Πλήθος επιχειρήσεων που εφαρμόζουν πρότυπα ISO: Καναδάς: > 1500 Η.Π.Α.: > Ε.Ε.: > Εκδίδει πρότυπα (standards) και οδηγίες (guidelines) εφαρμογής τους.
ΠΡΟΤΥΠΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ Περιγράφει μία κοινή ορολογία για την ποιότητα (εγχειρίδια ποιότητας, αναφορές, διαδικασίες. Ενδεικτικά πρότυπα ISO Σχετικά με την ποιότητα Ενδεικτικά πρότυπα ISO Σχετικά με την ποιότητα Πρότυπο διασφάλισης της ποιότητας κατά τη σχεδίαση, ανάπτυξη, εγκατάσταση / παροχή υπηρεσιών (λογισμικού ή άλλων προϊόντων). Περιγράφει τον τρόπο διαμέρισης της ποιότητας λογισμικού σε παράγοντες ποιότητας και του κάθε παράγοντα σε επιμέρους χαρακτηριστικά ποιότητας (χωρίς επικαλύψεις). Οδηγίες για την εφαρμογή του προτύπου ISO 9001 κατά τη σχεδίαση, ανάπτυξη, προμήθεια (εγκατάσταση – πώληση) και συντήρηση λογισμικού. Πρότυπο διασφάλισης της ποιότητας κατά την ανάπτυξη (βάσει καθορισμένου σχεδίου), εγκατάσταση / παροχή υπηρεσιών (λογισμικού ή άλλων προϊόντων). Πρότυπο διασφάλισης της ποιότητας κατά την οριστική επιθεώρηση και έλεγχο λογισμικού ή άλλων προϊόντων. Οδηγίες για τη διοίκηση ενός συστήματος ποιότητας (μέθοδος ανάπτυξης και εφαρμογής του). Σειρά ISO 9001, 9002, 9003 λογισμικό Οδηγία ISO Αυστηρότερο το ISO 9001
ΠΡΟΤΥΠΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ Ελληνικοί οργανισμοί πιστοποίησης: ΕΛΟΤ (δημόσιος Ελληνικός Οργανισμός Τυποποίησης), 10 περίπου ιδιωτικοί. Υιοθέτησή του από επιχείρηση / εταιρία σημαίνει εφαρμογή των κανόνων του από την αρχή διαχείρισης του έργου μέχρι την ολοκλήρωση παραγωγής του προϊόντος. Για την πιστοποίηση με ISO 9001, η εταιρία ελέγχεται αρχικά και κατόπιν περιοδικά από ανεξάρτητο ελεγκτή εξουσιοδοτημένου οργανισμού πιστοποίησης ISO. Οι υιοθετούμενοι μέθοδοι ελέγχου και περιορισμοί ποιότητας (εκ μέρους του ελεγκτή) υπαγορεύονται από διεθνείς κώδικες / συμφωνίες που εξασφαλίζουν την ποιότητα σ’ όλα τα τμήματα της εταιρίας (μη ικανοποίηση των ανωτέρω οδηγεί σε αφαίρεση της πιστοποίησης. Απαιτεί την ύπαρξη προγράμματος αυτοαξιολόγησης στις πιστοποιημένες εταιρίες, που εφαρμόζεται με σκοπό τον έλεγχο των ποιοτικών απαιτήσεων και του επιπέδου εφαρμογής τους. Κάθε πρότυπο παρέχει ένα υπόδειγμα για το σύστημα ποιότητας μιας εταιρίας (καθορισμός του είδους των απαιτούμενων ενεργειών και όχι του τρόπου υλοποίησής τους).
ΠΡΟΤΥΠΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ To ISO 9001 προβλέπει αρκετά τυποποιημένα στοιχεία – απαιτήσεις για το σύστημα ποιότητας μιας εταιρίας με στόχο την αποφυγή προβλημάτων σ’ όλα τα στάδια ανάπτυξης ενός προϊόντος (λογισμικού): από τον αρχικό σχεδιασμό μέχρι την εγκατάστασή του στον πελάτη και την παροχή τελικών υπηρεσιών (π.χ. εκπαίδευση προσωπικού στη χρήση του). Μερικές ενδεικτικές απαιτήσεις του ISO 9001 Ευθύνη διοίκησης (management responsibility): πολιτική ποιότητας, οργάνωση, ευθύνη – εξουσιοδότηση έλεγχο πηγών (πρώτων υλών) και προσωπικού. Σύστημα ποιότητας. Ανασκόπηση συμβάσεων Έλεγχος σχεδιασμού (αρχικός σχεδιασμός / ανάπτυξη σχεδίων, οργανωτικές – τεχνικές αλληλοσυνδέσεις, στοιχεία εισόδου – εξόδου, έλεγχος αλλαγών). Έλεγχος εγγράφων (έκδοση / έλεγχος / τροποποιήσεις εγγράφων). Έλεγχος παρεχόμενων από προμηθευτές προϊόντων. Έλεγχος διαδικασίας ανάπτυξης. Επισκόπηση και πειραματικός έλεγχος (κατά και μετά την ανάπτυξη του προϊόντος, τήρηση σχετικών αρχείων).
ΠΡΟΤΥΠΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ Αιτίες προβληματικής εφαρμοσιμότητας του ISO 9001 στις εταιρίες ανάπτυξης λογισμικού Οι διαδικασίες ανάπτυξης λογισμικού και βιομηχανικών προϊόντων διαφέρουν. παραγωγή λογισμικού παραγωγή βιομηχανικού προϊόντος σχεδίαση ανάπτυξη Ο Κύκλος ζωής λογισμικού πρέπει να καθορισθεί ως περιγραφή διαδικασίας ανάλυσης / σχεδιασμού, ανάπτυξης, ελέγχου, συντήρησης και να καταχωρηθεί σε έγγραφο (απαίτηση προτύπου). Η διαχείριση εκδόσεων λογισμικού βοηθά την ανάπτυξη λογισμικού (ασήμαντη στην παραγωγή υλικών αγαθών). Απόδοση (από ISO) στις φάσεις ανάπτυξης λογισμικού όρων σχετικών με πληροφορική και όχι προσανατολισμένοι στη βιομηχανική παραγωγή υλικών αγαθών. Αντιμετώπιση προβλημάτων εφαρμογής του ISO 9001 στη βιομηχανία ανάπτυξης λογισμικού Εξειδίκευση ISO 9001 στην ανάπτυξη λογισμικού Οδηγία ISO
ΠΡΟΤΥΠΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ Πλεονεκτήματα Μειονεκτήματα Ως πλαίσιο μοντελοποίησης της ποιότητας επιτρέπει στην επιχείρηση να επιλέγει τον τρόπο υλοποίησης της κάθε απαίτησης ποιότητας που θέτει (να καθορίζει το σύστημα ποιότητάς της). Ως μη δομημένο σε επίπεδα σύνολο απαιτήσεων ποιότητας (συνεχής αρχιτεκτονική) παρέχει ευελιξία στην εταιρία κατά την υλοποίηση των διάφορων διεργασιών (προτεραιότητα υλοποίησης και επιλογή διάταξής τους, δυνατότητα προσθήκης νέων απαιτήσεων ποιότητας). Πιστοποιεί ότι η εταιρία είναι ικανή να τηρεί διαδικασίες ποιότητας, γεγονός που της εξασφαλίζει την αποδοχή της στην αγορά προϊόντων που δραστηριοποιείται και σε συμβάσεις έργων για την ανάληψη των οποίων εκδηλώνει ενδιαφέρον. Καθορίζει τις ελάχιστες απαιτήσεις σ’ ένα σύστημα ποιότητας (μη πλήρες σύστημα διασφάλισης ποιότητας). Ως γενική κατευθυντήρια γραμμή ποιότητας δεν λαμβάνει υπόψη τις ιδιαιτερότητες κάθε προϊόντος και δεν προβλέπει τρόπους αντιμετώπισης ενδεχόμενων προβλημάτων κατά την παραγωγή του. Δεν εστιάζει στη συνεχή βελτίωση των διαδικασιών ανάπτυξης μιας επιχείρησης. Δεν αποσαφηνίζει το ρόλο των μετρήσεων στα συστήματα διαχείρισης ποιότητας (απαιτεί την τεκμηρίωση αντικειμένων ποιότητας από την επιχείρηση χωρίς την ανάγκη ποσοτικοποίησής τους).
ΠΡΟΤΥΠΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ Μοντέλο αξιολόγησης που εξελίχθηκε σταδιακά σε πρότυπο αξιολόγησης και τελικά σε πρότυπο ποιότητας λογισμικού. Στόχος Βελτίωση διαδικασίας ανάπτυξης λογισμικού και η πιστότερη εφαρμογή της εκ μέρους μιας επιχείρησης. Ο στόχος αυτός σχετίζεται άμεσα με την ωριμότητα της επιχείρησης. Μία ανώριμη επιχείρηση δεν είναι ικανή να διαχειρίζεται την ανάπτυξη του λογισμικού της και να βελτιώνει τις σχετικές διαδικασίες ανάπτυξης, ώστε να ικανοποιεί τον πελάτη. Στηρίζεται σε αυτοσχεδιασμούς των μηχανικών της κατά τη διαδικασία ανάπτυξης ενός συστήματος λογισμικού. πλαίσιο ωρίμανσης διαδικασιών προσδιορισμός ικανότητας καθορισμού και διαχείρισης της διαδικασίας ανάπτυξης λογισμικού εκ μέρους της επιχείρησης αναγκαιότητα δημιουργία – εξέλιξη πλαισίου Ινστιτούτο Τεχνολογίας Λογισμικού Carnegy Mellon University 1993
ΠΡΟΤΥΠΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ Δομεί συστηματικά ένα σύνολο εργαλείων (συμπεριλαμβανομένου και σχετικού ερωτηματολογίου) με βάση το οποίο μία εταιρία αξιολογεί την ικανότητά να αναπτύσσει λογισμικό. Εκτός από τα κριτήρια αξιολόγησης που θέτει (υπό μορφή αναλυτικού ερωτηματολογίου) παρέχει μία σειρά βασικών περιοχών διαδικασίας (key process areas) οι οποίες ορίζουν τα θέματα που πρέπει να έχουν ενταχθεί στη διαδικασία ανάπτυξης λογισμικού εκ μέρους της εταιρίας ώστε αυτή να διαθέτει κάποιο επίπεδο ωριμότητας. Οι βασικές περιοχές διαδικασίας συνθέτουν ένα πρότυπο ποιότητας δίνοντας τη δυνατότητα σε μία εταιρία να βελτιώνει σταδιακά την ικανότητά της να παράγει λογισμικό. Λόγω της εξειδίκευσής του στον τομέα ανάπτυξης λογισμικού και της σημαντικής συμβολής του στη σταδιακή εξέλιξη μιας εταιρίας, έχει εξελιχθεί από μοντέλο αξιολόγησης της ωριμότητας των επιχειρήσεων σε βασικό πρότυπο για τα περισσότερα συστήματα ποιότητας.
ΠΡΟΤΥΠΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ κατάταξη επιχείρησης σε κάποιο από 5 συνολικά επίπεδα ωριμότητας Αξιολόγηση επιχείρησης κατά CMM Αρχικό επίπεδο (initial) Επαναλαμβανόμενο Επίπεδο (repeatable) Σύνολα βασικών περιοχών μιας διαδικασίας Βασική περιοχή Πακέτο συσχετιζόμενων ενεργειών που υλοποιούμενες συμβάλουν καθοριστικά στην ικανότητα διαχείρισης μιας διαδικασίας ανάπτυξης. Περιλαμβάνει ένα σύνολο βασικών πρακτικών (key practices) που πιστοποιούν αν είναι αποτελεσματικές, επαναλαμβανόμενες και διαρκείς τόσο η διαδικασία όσο και η βασική περιοχή. Καμία εγγύηση ποιοτικής παραγωγής λογισμικού λόγω ανυπαρξίας καθορισμένων διαδικασιών – απαιτήσεων στα διάφορα στάδια (σχεδιασμού, ανάπτυξης, συντήρησης κλπ.). Ύπαρξη μη προβλέψιμων και ευμετάβλητων παραγόντων κατά τη διάρκεια εξέλιξης του έργου (προϋπολογισμός, λειτουργικότητα κλπ). Αποτίμηση βασικών χαρακτηριστικών του έργου (κόστος, χρονοπρογραμματισμός, λειτουργικότητα κλπ) μέσω βασικών διαδικασιών διαχείρισής του. Σχεδιασμός / διαχείριση νέων έργων με βάση προηγούμενη εμπειρία σε παρόμοια έργα. Προϋπόθεση ένταξης σ’ αυτό το επίπεδο η ενσωμάτωση αποτελεσματικών διεργασιών διαχείρισης έργων λογισμικού. Ικανότητα της διαδικασίας ανάπτυξης λογισμικού: πειθαρχημένη (disciplined).
ΠΡΟΤΥΠΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ Καθορισμένο Επίπεδο (defined) Διοικούμενο Επίπεδο (managed) Επίπεδο Βελτιστοποίησης (optimising) Τεκμηριωμένες / τυποποιημένες και ενοποιημένες σε μία, οι διαδικασίες ανάπτυξης και διαχείρισης λογισμικού με υιοθέτηση αρχών τεχνολογίας λογισμικού. Γίνεται χρήση προτύπων / τεχνικών κατά την υλοποίηση επιμέρους έργων καθώς και μετρικών / ελέγχου / επαλήθευσης. Ικανότητα της διαδικασίας ανάπτυξης λογισμικού: τυποποιημένη (standard) και συνεπής (consistent). Συλλογή προκαθορισμένων μετρήσεων (ενταγμένων σ’ ένα πρόγραμμα μέτρησης) σχετικών με τη διαδικασία ανάπτυξης και την ποιότητα του λογισμικού (αξιολόγηση με ποσοτικά δεδομένα). Ικανότητα της διαδικασίας ανάπτυξης λογισμικού: προβλέψιμη (predictable). Συνεχής βελτίωση διαδικασιών ανάπτυξης και διαχείρισης του λογισμικού μέσω συνεχούς ποσοτικής αποτίμησης της αποδοτικότητας των ίδιων των διαδικασιών και της υιοθέτησης / εφαρμογής νέων μεθόδων και τεχνολογιών για τη συνεχή βελτίωσή τους. Ικανότητα της διαδικασίας ανάπτυξης λογισμικού: συνεχώς βελτιούμενη (constantly improving).
ΠΡΟΤΥΠΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ Αντιστοίχηση CMM και ISO 9001 Αποτελούν πρότυπα ποιότητας. Εφαρμόζονται παρόμοια (πιστοποίηση από εξωτερικό ελεγκτή και επιβεβαίωση πιστοποίησης μέσω περιοδικών ελέγχων. Δεν προσδιορίζουν συγκεκριμένη μεθοδολογία ανάπτυξης προϊόντων αλλά καθοδηγούν τους υπευθύνους για τον τρόπο διαχείρισης της ανάπτυξης (αντιστοίχηση απαιτήσεων ISO 9001 και βασικών περιοχών CMM). Πιο αναλυτικό (πιο συγκεκριμένες απαιτήσεις) σε σχέση με το ISO 9001 και αποκλειστικά εξειδικευμένο στην ανάπτυξη λογισμικού. Εστιάζει στην ανάγκη συνεχούς βελτίωσης των διαδικασιών ανάπτυξης σε σχέση με το ISO 9001 που θέτει ένα κατώτατο όριο απαιτήσεων σ’ ένα σύστημα ποιότητας. Είναι δυνατή η πιστοποίηση μιας εταιρίας κατά ISO 9001 και CMM ταυτόχρονα. Αποτελούν πρότυπα ποιότητας. Εφαρμόζονται παρόμοια (πιστοποίηση από εξωτερικό ελεγκτή και επιβεβαίωση πιστοποίησης μέσω περιοδικών ελέγχων. Δεν προσδιορίζουν συγκεκριμένη μεθοδολογία ανάπτυξης προϊόντων αλλά καθοδηγούν τους υπευθύνους για τον τρόπο διαχείρισης της ανάπτυξης (αντιστοίχηση απαιτήσεων ISO 9001 και βασικών περιοχών CMM). Πιο αναλυτικό (πιο συγκεκριμένες απαιτήσεις) σε σχέση με το ISO 9001 και αποκλειστικά εξειδικευμένο στην ανάπτυξη λογισμικού. Εστιάζει στην ανάγκη συνεχούς βελτίωσης των διαδικασιών ανάπτυξης σε σχέση με το ISO 9001 που θέτει ένα κατώτατο όριο απαιτήσεων σ’ ένα σύστημα ποιότητας. Είναι δυνατή η πιστοποίηση μιας εταιρίας κατά ISO 9001 και CMM ταυτόχρονα.