ΚΕΦΑΛΑΙΟ 13 ΔΙΑΣΦΑΛΙΣΗ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ Σκοπός του κεφαλαίου είναι να εισάγει τον αναγνώστη στις βασικές έννοιες της διασφάλισης ποιότητας λογισμικού, στα πρότυπα και στις διαδικασίες που ακολουθούνται. Μετά τη μελέτη του κεφαλαίου αυτού, ο αναγνώστης θα είναι σε θέση: να αναφέρει δέκα χαρακτηριστικά ποιότητας λογισμικού, να περιγράφει τρεις δραστηριότητες για τη διαχείριση ποιότητας λογισμικού, να περιγράφει τη γενική διαδικασία διασφάλισης ποιότητας και πέντε βήματα για την πραγματοποίηση επιθεωρήσεων ποιότητας, να αναγνωρίζει δύο γενικές κατηγορίες προτύπων διασφάλισης ποιότητας λογισμικού και τρεις κατηγορίες προτύπων τεκμηρίωσης λογισμικού. Έννοιες-κλειδιά Ποιότητα λογισμικού Επιθεώρηση ποιότητας Εκθέσεις ποιότητας Διασφάλιση ποιότητας Πρότυπα διαδικασίας Πρότυπα τεκμηρίωσης λογισμικού Σύνοψη Η διασφάλιση ποιότητας λογισμικού είναι μια δύσκολη διαδικασία, δεδομένου ότι δεν υπάρχουν μέχρι σήμερα ευρέως χρησιμοποιούμενες ποσοτικές αποτιμήσεις 673 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
των χαρακτηριστικών του λογισμικού. Η όλη προσπάθεια επικεντρώνεται στην προτυποποίηση τόσο των εργασιών ανάπτυξης λογισμικού όσο και των συστατικών στοιχείων που παράγονται καθ όλη την ανάπτυξη. Με τη βοήθεια των προτύπων και με την πραγματοποίηση επιθεωρήσεων ποιότητας, οι οποίες ελέγχουν την εφαρμογή της διαδικασίας και των προτύπων περιγραφής των προϊόντων, επιχειρείται να διασφαλιστεί η ποιότητα του λογισμικού. Κεντρικό ζητούμενο είναι, ασφαλώς, η ικανοποίηση των απαιτήσεων του χρήστη και η έλλειψη σφαλμάτων. Αν και το δεύτερο μπορεί να διασφαλιστεί με τεχνικές δυναμικού ελέγχου, το πρώτο παραμένει και θα παραμένει για πολύ ακόμη το κεντρικό ζητούμενο της ανάπτυξης λογισμικού. Όπως και με τη διοίκηση σχηματισμών, οι εργασίες διασφάλισης ποιότητας λογισμικού εκτελούνται παράλληλα με τις εργασίες ανάπτυξης και, μάλιστα, αν αυτό είναι δυνατό, από διαφορετικές ομάδες. Μια καλά σχεδιασμένη διαδικασία διασφάλισης ποιότητας λογισμικού συνήθως αποδίδει πάντα το κόστος που επιφέρει. Εισαγωγικές παρατηρήσεις Σε όλα τα προϊόντα το ζητούμενο είναι η ποιότητα. Η λειτουργία του ανταγωνισμού συνήθως επιφέρει βελτίωση της ποιότητας, με άλλα λόγια καλύτερα προϊόντα στον τελικό καταναλωτή. Οι προμηθευτές πάσης φύσεως συστημάτων, συσκευών και προϊόντων συναγωνίζονται στην παροχή προϊόντων καλύτερης ποιότητας για τα οποία μάλιστα δίνουν και μακρόχρονες εγγυήσεις, οι οποίες τεκμηριώνονται από την ποιότητα των διαδικασιών παραγωγής, που τελικά αντανακλάται σε ποιότητα των προϊόντων. Τα παραπάνω ισχύουν για όλα ίσως τα προϊόντα εκτός από το λογισμικό. Το λογισμικό είναι το μόνο προϊόν που πωλείται ως έχει και, μάλιστα, αυτό αναγράφεται ρητά στην άδεια χρήσης την οποία είτε υπογράφει είτε διαβάζει σε κάποια «ψιλά γράμματα» ο αγοραστής. Κάτι αντίστοιχο στην περίπτωση, λόγου χάρη, ενός αυτοκινήτου θα ήταν η διατύπωση ότι «σε περίπτωση ατυχήματος που οφείλεται σε κακοτεχνία στην κατασκευή του οχήματος, ουδεμία ευθύνη φέρει ο κατασκευαστής ούτε για την αποκατάσταση του οχήματος ούτε για τις λοιπές συνέπειες». Και όμως, το λογισμικό πωλείται ευρέως λίγο ως πολύ με τέτοιους όρους, ακόμη και 674 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
όταν αναλαμβάνει κρίσιμες αποστολές, γεγονός που είναι ενδεικτικό της δυσκολίας διασφάλισης της ποιότητάς του. Κάτι τέτοιο ίσως ήταν αναμενόμενο, αν λάβει κανείς υπόψη την ελαστικότητα των επιδεχόμενων ερμηνειών των μεθοδολογιών ανάπτυξης λογισμικού, τη μη εξασφαλισμένη αξιοπιστία του υλικού κ.ά. Η διασφάλιση ποιότητας λογισμικού αποτελεί σήμερα ένα ζητούμενο που μόνο κατά προσέγγιση και σε κάποιο βαθμό μπορεί να επιτευχθεί. Αυτό δεν αποτελεί λόγο μη εφαρμογής των όποιων διαδικασιών επιβάλλει, ίσα ίσα αποτελεί λόγο αντιμετώπισης της πρόκλησης. Σήμερα, μάλιστα, πολλοί μεγάλοι πελάτες απαιτούν διαδικασίες διασφάλισης ποιότητας, προκειμένου να επιλέξουν ανάδοχο κατασκευαστή λογισμικού. Μια σύντομη αναφορά στο θέμα επιχειρούμε στο κεφάλαιο αυτό. Για τον σκοπό αυτό, παράλληλα με τις εργασίες ανάπτυξης λογισμικού και, μάλιστα, ανεξάρτητα από τη φιλοσοφία και τη συγκεκριμένη μεθοδολογία ανάπτυξης που ακολουθείται, πρέπει να τρέχει η εργασία διοίκησης σχηματισμών λογισμικού (Software Configuration Management), μια εισαγωγική αναφορά στην οποία έγινε στο κεφάλαιο 12. 675 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
ΕΝΟΤΗΤΑ 13.1. ΠΟΙΌΤΗΤΑ ΛΟΓΙΣΜΙΚΟΎ 13.1.1. Η έννοια του σχηματισμού λογισμικού Η έννοια της ποιότητας ενός έργου λογισμικού έχει πολλές πλευρές και δεν μπορεί να οριστεί με απλό τρόπο. Η ρευστότητα των πραγμάτων στην Τεχνολογία Λογισμικού, την οποία επισημαίνουμε με κάθε ευκαιρία, καθώς και η μη χειροπιαστή υπόσταση του λογισμικού, επιτρέπουν πολλές ερμηνείες της έννοιας «ποιότητα λογισμικού». Συνήθως, όταν αναφερόμαστε στην αποτίμηση της ποιότητας λογισμικού, εννοούμε το βαθμό επίτευξης των προδιαγραφών ενός έργου λογισμικού και την κατά το δυνατόν ανυπαρξία σφαλμάτων. Μπορούμε να ισχυριστούμε γενικά ότι αυτή η προσέγγιση της ποιότητας ισχύει για όλους τους τύπους έργων. Παρά την όποια ελαστικότητα στον ορισμό της έννοιας «ποιότητα», όλοι συμφωνούν ότι ένα από τα ζητούμενα από την ανάπτυξη μιας εφαρμογής λογισμικού είναι η επίτευξη ενός υψηλού επιπέδου ποιότητας για το τελικό προϊόν. Για τον σκοπό αυτό πρέπει να ληφθούν συγκεκριμένα μέτρα κατά την ανάπτυξη, η ευθύνη για την εφαρμογή και τα αποτελέσματα των οποίων ανήκουν στον διαχειριστή ποιότητας λογισμικού (software quality manager). Το σύνολο αυτών των μέτρων και των σχετιζόμενων εγγράφων, διαδικασιών κ.λπ. αναφέρεται ως διαχείριση ποιότητας λογισμικού. Διαχείριση ποιότητας λογισμικού: Η διαχείριση της ποιότητας περιλαμβάνει τον ορισμό ενός συνόλου κατευθυντήριων γραμμών, διαδικασιών και προτύπων που οδηγούν στη δημιουργία λογισμικού καλής ποιότητας, καθώς και τον έλεγχο ότι το σύνολο αυτών των κατευθυντήριων γραμμών ακολουθείται επιμελώς καθ όλη τη διάρκεια της ανάπτυξης μιας εφαρμογής λογισμικού. Ωστόσο, η προσπάθεια ορισμού και εφαρμογής τέτοιων κατευθυντήριων γραμμών στο πεδίο του λογισμικού συναντά κάποιες δυσκολίες οι οποίες οφείλονται στις εγγενείς ιδιαιτερότητες του λογισμικού. Τέτοιες είναι οι ακόλουθες: 676 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
Ο σαφής ορισμός και η πληρότητα των προδιαγραφών του λογισμικού, καθώς και η συμφωνία αυτών με τον πελάτη είναι σημαντικό πρόβλημα, που δεσπόζει στην ανάπτυξη λογισμικού. Αν δεχτούμε ότι η ικανοποίηση των προδιαγραφών είναι το ελάχιστο απαιτούμενο της ποιότητας του λογισμικού, τότε διαπιστώνουμε το παράδοξο ότι από την ίδια τη φύση του λογισμικού αυτό το σημείο αναφοράς δεν μπορεί να χαρακτηριστεί ως ακλόνητο. Εκτός από την ικανοποίηση των προδιαγραφών, δεν έχουν οριστεί καλά και σαφή μέτρα για την αποτίμηση της ποιότητας του λογισμικού. Η κοινότητα των κατασκευαστών αρκείται συνήθως στη διατύπωση «επιθυμητών χαρακτηριστικών», τα οποία δεν μπορούν ωστόσο να τεκμηριωθούν ως μετρήσιμα στοιχεία ποιότητας. Η διαχείριση της ποιότητας λογισμικού δεν αφορά μόνο την επιβεβαίωση ότι το λογισμικό αναπτύσσεται χωρίς σφάλματα και σύμφωνα με τις προδιαγραφές του, αλλά σχετίζεται και με ευρύτερα χαρακτηριστικά του λογισμικού τα οποία μπορούν να γίνουν αντιληπτά ως στοιχεία ποιότητας αυτού (Σχήμα 13.1). Ένα από τα σημαντικότερα στοιχεία του σχεδιασμού διασφάλισης της ποιότητας λογισμικού είναι η επιλογή των αιτούμενων χαρακτηριστικών ποιότητας, καθώς και ο καθορισμός και η ένταξη στον οργανισμό ανάπτυξης λογισμικού του τρόπου με τον οποίο μπορούν αυτά να επιτευχθούν. 677 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
Σχήμα 13.1 Χαρακτηριστικά της ποιότητας λογισμικού. Ασφάλεια Αξιοπιστία Ικανότητα ανάκτησης Ελεγξιµότητα Ευκολία εκµάθησης Μεταφερσιµότητα Ευκολία χρήσης Αποδοτικότητα Προσαρµοστικότητα Πολυπλοκότητα 678 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
Για τη διαχείριση της ποιότητας ενός έργου ανάπτυξης λογισμικού είναι απαραίτητες τρεις δραστηριότητες: Η διασφάλιση της ποιότητας που, όπως αναφέραμε και στην αρχή της ενότητας, προϋποθέτει την ένταξη στον οργανισμό ανάπτυξης λογισμικού κατάλληλων εργασιών και προτύπων τα οποία οδηγούν στην κατασκευή λογισμικού υψηλής ποιότητας. Ο σχεδιασμός της ποιότητας έργου κατά τον οποίο επιλέγονται τα πιο κατάλληλα πρότυπα για κάθε συγκεκριμένο έργο ανάπτυξης λογισμικού, καθώς και ο τρόπος με τον οποίο μπορούν αυτά να εφαρμοστούν. Ο έλεγχος της ποιότητας ο οποίος περιλαμβάνει τον έλεγχο για το αν το υπό κατασκευή λογισμικό έργο αναπτύσσεται σύμφωνα με τα προκαθορισμένα πρότυπα και διαδικασίες. Η εργασία ελέγχου της ποιότητας περιλαμβάνει ένα δικό της σύνολο επιμέρους εργασιών και εγγράφων, τα οποία θα πρέπει να ορίζονται και να εφαρμόζονται κατά τη διαδικασία ανάπτυξης λογισμικού. Οι εργασίες αυτές θα πρέπει να είναι όσο το δυνατόν ξεκάθαρες και εύκολα κατανοητές από εκείνους που αναπτύσσουν το λογισμικό. Ένα διεθνές πλαίσιο το οποίο μπορεί να χρησιμοποιηθεί για την ανάπτυξη ενός συστήματος διαχείρισης της ποιότητας σε όλες τις βιομηχανίες είναι το ISO-9000, από τον διεθνή οργανισμό προτύπων ISO (www.iso.ch). Το ISO-9000 είναι ένα σύνολο από πρότυπα τα οποία μπορούν να εφαρμοστούν σε ένα ευρύ πεδίο επιχειρήσεων, από κατασκευαστικές έως και επιχειρήσεις παροχής υπηρεσιών. Το ISO-9001 εφαρμόζεται σε οργανισμούς οι οποίοι σχεδιάζουν, αναπτύσσουν και συντηρούν προϊόντα. Περιγράφει διάφορα ζητήματα της εργασίας διασφάλισης της ποιότητας και ορίζει σχετικές διαδικασίες και πρότυπα τα οποία θα πρέπει να ακολουθούνται από έναν τέτοιο οργανισμό. Το ISO-9001 δεν σχετίζεται με μια συγκεκριμένη βιομηχανία, οπότε τα πρότυπα που ορίζει δεν περιγράφονται με σημαντική λεπτομέρεια. Ωστόσο, ένας οργανισμός, ο οποίος θέλει να αναπτύξει ένα σύστημα διαχείρισης της ποιότητας των προϊόντων του, μπορεί να χρησιμοποιήσει το ISO-9001 για τον ορισμό ενός συνόλου από κατάλληλες εργασίες διασφάλισης της 679 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
ποιότητας. Μια εξειδίκευση του ISO-9000 για το λογισμικό αποτελεί το ISO 9000-3. Στο Σχήμα 13.2 εικονίζονται οι σχέσεις μεταξύ του προτύπου ISO- 9000, του εγχειριδίου ποιότητας ολόκληρου του οργανισμού, καθώς και των ανεξάρτητων σχεδίων ποιότητας για κάθε έργο. 680 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
Σχήμα 13.2 ISO-9000 και διαχείριση ποιότητας. Μοντέλα ποιότητας ISO Εγχειρίδιο ποιότητας κατασκευαστή λογισµικού Διεργασίες διασφάλισης ποιότητας κατασκευαστή Σχέδια ποιότητας έργων Διαχείριση ποιότητας 681 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
Ο σχεδιασμός της ποιότητας πρέπει να ξεκινάει παράλληλα με τα αρχικά στάδια της ανάπτυξης μιας εφαρμογής λογισμικού. Ένα σχέδιο ποιότητας εκθέτει τα επιθυμητά χαρακτηριστικά ποιότητας για το παραγόμενο προϊόν τονίζοντας με ιδιαίτερο τρόπο τα σημαντικότερα από αυτά. Επίσης, θα πρέπει να περιγράφει και τον τρόπο με τον οποίο γίνεται η αξιολόγησή τους. Με απλά λόγια, ένα σχέδιο ποιότητας λογισμικού (software quality plan) οριοθετεί τα κριτήρια ποιότητας για μια συγκεκριμένη εφαρμογή λογισμικού. Η διαχείριση της ποιότητας σε έναν οργανισμό ανάπτυξης λογισμικού θα πρέπει να είναι ανεξάρτητη από αυτή καθεαυτή την ανάπτυξη του λογισμικού, προκειμένου να εξασφαλίζεται ότι η αντιμετώπιση του κρίσιμου ζητήματος της ποιότητας δεν επηρεάζεται από παράγοντες όπως ο προϋπολογισμός ή το χρονοδιάγραμμα του έργου και δεν οδηγείται σε συμβιβασμούς σε βάρος της ποιότητας. Για τον λόγο αυτό είναι επιθυμητή η ανάθεση της διαχείρισης της ποιότητας σε μια ανεξάρτητη ομάδα ατόμων τα οποία βρίσκονται ψηλά στην ιεραρχία του οργανισμού ανάπτυξης λογισμικού. Ενίοτε, και προκειμένου να διασφαλίζεται η επιθυμητή ανεξαρτησία, τον ρόλο αυτό καλούνται να παίξουν εξωτερικοί σύμβουλοι διασφάλισης ποιότητας. Σύνοψη ενότητας Η διαχείριση ποιότητας λογισμικού απαιτεί τον ορισμό ενός συνόλου κατευθυντήριων γραμμών, διαδικασιών και προτύπων για την κατασκευή του λογισμικού, καθώς και τον έλεγχο ότι αυτά εφαρμόζονται καθ όλη τη διάρκεια της ανάπτυξης μιας εφαρμογής λογισμικού. Οι τρεις γενικές εργασίες που περιλαμβάνονται στη διαχείριση ποιότητας είναι η διασφάλιση, ο σχεδιασμός και ο έλεγχος της ποιότητας του έργου. 682 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
ΕΝΟΤΗΤΑ 13.2. ΕΠΙΘΕΩΡΉΣΕΙΣ ΠΟΙΌΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΎ Η εργασία διασφάλισης της ποιότητας κατά την ανάπτυξη μιας εφαρμογής λογισμικού είναι αρκετά δύσκολη. Αυτό συμβαίνει γιατί είναι δύσκολο να μετρήσει κανείς χαρακτηριστικά του λογισμικού (ακόμα και με τον υποκειμενικό χαρακτήρα πολλών από τις μετρήσεις που σχετίζονται με το λογισμικό) χωρίς κάποια δοκιμαστική χρήση του για εκτεταμένο χρονικό διάστημα. Η βελτίωση της ποιότητας μπορεί να επιτευχθεί με τη μελέτη προϊόντων υψηλής ποιότητας και των μηχανισμών που χρησιμοποιήθηκαν για την κατασκευή τους, με στόχο τη γενίκευσή τους και την ευρύτερη εφαρμογή τους, έτσι ώστε να μπορούν να εφαρμοστούν γενικά στον οργανισμό ανάπτυξης λογισμικού. Ωστόσο, η σχέση μεταξύ της ίδιας της ανάπτυξης του λογισμικού και της ποιότητας του τελικού προϊόντος είναι πολύπλοκη. Στοιχεία ποιότητας της ίδιας της εργασίας (εξίσου, αν όχι πιο δύσκολα να μετρηθούν) επιδρούν ευθέως στην ποιότητα του παραγόμενου προϊόντος. Η πραγματοποίηση μεταβολών στον τρόπο εκτέλεσης κάποιων εργασιών ανάπτυξης λογισμικού δεν σημαίνει απαραίτητα και βελτίωση στην ποιότητα του τελικού προϊόντος, διότι η ανάπτυξη του λογισμικού είναι μια εργασία περισσότερο επινοητική παρά μηχανική, στην οποία η επίδραση των ατομικών χαρακτηριστικών και της εμπειρίας στο τελικό προϊόν είναι ιδιαίτερα σημαντική. Επιπλέον, εξωτερικοί παράγοντες, όπως η καινοτομία μιας εφαρμογής ή η ανάγκη γρήγορης κυκλοφορίας του προϊόντος εξαιτίας εμπορικών λόγων, μπορεί να έχουν ως αποτέλεσμα χαμηλή ποιότητα ανεξάρτητα τόσο από την προσέγγιση ανάπτυξης λογισμικού όσο και από τη διαδικασία διασφάλισης ποιότητας που ακολουθείται. Τίποτε από τα παραπάνω δεν υποβιβάζει τη σημασία της εργασίας διασφάλισης της ποιότητας λογισμικού, η οποία παραμένει πολύ μεγάλη. Για την πραγματοποίησή της μπορούμε να διακρίνουμε τα εξής βήματα: Ο ορισμός προτύπων για την ανάπτυξη του λογισμικού. Παραδείγματα τέτοιων προτύπων είναι ο ορισμός κατευθυντήριων γραμμών για τον τρόπο εφαρμογής της προσέγγισης ανάπτυξης 683 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
λογισμικού, καθώς και για την αξιολόγηση του τρόπου εφαρμογής του. Η εποπτεία (auditing, review) των δραστηριοτήτων ανάπτυξης λογισμικού και η εξασφάλιση ότι τα προκαθορισμένα πρότυπα ακολουθούνται επακριβώς. Η αναφορά ποιότητας της εργασίας ανάπτυξης του λογισμικού στον διαχειριστή του έργου και, σε κάποιες περιπτώσεις, στον πελάτη του τελικού προϊόντος. Ένα αποτέλεσμα που μπορεί να προκύψει από την υιοθέτηση μιας τέτοιας προσέγγισης για τη διασφάλιση της ποιότητας του λογισμικού είναι να αποδειχθεί στην πορεία ότι η προσέγγιση ανάπτυξης λογισμικού είναι ακατάλληλη για τον συγκεκριμένο τύπο του υπό κατασκευή έργου. Στην περίπτωση που κάτι τέτοιο τεκμηριωθεί επαρκώς, τότε θα πρέπει να αναθεωρηθεί συνολικά η ακολουθούμενη προσέγγιση ανάπτυξης λογισμικού, τουλάχιστον για το συγκεκριμένο έργο. 684 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
Σχήμα 13.3 Διασφάλιση της ποιότητας βασιζόμενη στη διεργασία ανάπτυξης του λογισμικού. Ορισµός διεργασίας ποιότητας Εφαρµογή στην ανάπτυξη του λογισµικού Αξιολόγηση ποιότητας Βελτίωση των διαδικασιών ανάπτυξης ΟΧΙ Ικανοποίηση προδιαγραφών ποιότητας ΝΑΙ Προτυποποίηση των διαδικασιών ανάπτυξης 685 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
Οι επιθεωρήσεις ποιότητας είναι μια πολύ χρήσιμη μέθοδος για τον έλεγχο της ποιότητας της εργασίας ή/και του προϊόντος αυτής (Σχήμα 13.3). Οι επιθεωρήσεις αυτές συνήθως γίνονται από μια μικρή ομάδα ατόμων τα οποία εξετάζουν ένα μέρος ή ολόκληρη τη διεργασία ανάπτυξης του λογισμικού, καθώς και την τεκμηρίωση που τη συνοδεύει, με σκοπό να εντοπίσουν προβλήματα. Τα συμπεράσματα μιας τέτοιας επιθεώρησης καταγράφονται στα έγγραφα παρακολούθησης και παραδίδονται στον εκάστοτε υπεύθυνο για τη διόρθωση των προβλημάτων που αποκαλύπτονται. Επιθεώρηση ποιότητας: Η επιθεώρηση της ποιότητας (quality review) περιλαμβάνει μια τεχνική ανάλυση των συστατικών του προϊόντος ή της τεκμηρίωσής του, με σκοπό την αναγνώριση σφαλμάτων ή/και ασυμφωνιών μεταξύ των προδιαγραφών του και του σχεδίου, του κώδικα ή συστατικών της τεκμηρίωσής του λογισμικού. Η γενική ροή εργασιών για την πραγματοποίηση μιας επιθεώρησης ποιότητας παρουσιάζεται στο Σχήμα 13.4. Μια επιθεώρηση ποιότητας διαφέρει από τον έλεγχο του λογισμικού στο γεγονός ότι στην περίπτωση αυτή δεν είναι απαραίτητο να εισέλθει κανείς σε επίπεδο μεγάλης λεπτομέρειας. Κατά την πραγματοποίηση μιας τέτοιας επιθεώρησης δεν είναι απαραίτητη η αναλυτική εξέταση όλων των συστατικών του συστήματος, καθώς ελέγχονται γενικότερα χαρακτηριστικά, όπως η συνεργασία κάποιων από αυτά τα συστατικά, σύμφωνα πάντα με τις απαιτήσεις του πελάτη και τις προδιαγραφές. 686 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
Σχήμα 13.4 Η διαδικασία επιθεώρησης ποιότητας. Επιλογή της οµάδας επιθεώρησης Ορισµός τόπου και χρόνου Διανοµή εγγράφων επιθεώρησης Πραγµατοποίηση της επιθεώρησης Συµπλήρωση των εγγράφων παρακολούθησης 687 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
Η αποστολή της ομάδας που εκτελεί την επιθεώρηση ποιότητας είναι ο εντοπισμός σφαλμάτων και η ενημέρωση των υπευθύνων. Όλα τα συστατικά λογισμικού που παράγονται κατά την ανάπτυξη μπορούν να επιθεωρηθούν. Κατά την ολοκλήρωση μιας επιθεώρησης ποιότητας καταγράφονται οι δραστηριότητες που πραγματοποιήθηκαν. Τα σχόλια και τα συμπεράσματα στα οποία καταλήγει η ομάδα που έκανε την επιθεώρηση καταγράφονται σε ειδικά έντυπα τα οποία ονομάζονται «έγγραφα παρακολούθησης». Τα έγγραφα αυτά ταξινομούνται και εντάσσονται στην τεκμηρίωση του λογισμικού. Η συχνότητα των επιθεωρήσεων καθορίζεται από τη συνολική εικόνα που δίνει ένα έργο ανάπτυξης λογισμικού: εκεί που παρατηρούνται προβλήματα, είναι πιθανότερο να πρέπει να γίνονται συχνότερες αξιολογήσεις και παρεμβάσεις. Τα αποτελέσματα μιας επιθεώρησης ποιότητας ταξινομούνται σε τρεις κύριες κατηγορίες: Καμία ενέργεια: Στην κατηγορία αυτή κατατάσσονται τα έγγραφα παρακολούθησης που περιγράφουν αποκλίσεις ή σφάλματα τα οποία είτε δεν ανταποκρίνονται στην πραγματικότητα είτε το κόστος για τη διόρθωσή τους θεωρείται υπερβολικά υψηλό. Αναφορά για διόρθωση: Στην κατηγορία αυτή κατατάσσονται τα έγγραφα που ορίζουν προβλήματα τα οποία είναι απαραίτητο να διορθωθούν. Τα έγγραφα αυτά παραδίδονται στον υπεύθυνο για την επιδιόρθωση των συγκεκριμένων σφαλμάτων. Αναθεώρηση του σχεδίου του λογισμικού: Τα έγγραφα που κατατάσσονται στην κατηγορία αυτή ορίζουν ιδιαίτερα σημαντικά σφάλματα για την επιδιόρθωση των οποίων είναι αναγκαία η αλλαγή του σχεδίου του λογισμικού. Πρόκειται, ασφαλώς, για ακραία περίπτωση κατά την οποία, πριν ληφθούν οριστικές αποφάσεις, συνήθως προγραμματίζεται νέα επιθεώρηση. Μερικά από τα σφάλματα που ανακαλύπτονται κατά τη διάρκεια μιας επιθεώρησης ποιότητας μπορεί να είναι σφάλματα στον ορισμό των προδιαγραφών και των απαιτήσεων του συστήματος. Για τα σφάλματα αυτά θα πρέπει να γίνεται μια εκτίμηση των επιδράσεων που μπορεί να έχει μια πιθανή μεταβολή. Η αλλαγή αυτή ενδεχομένως να συνεπάγεται μια μεγάλης κλίμακας 688 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
τροποποίηση της αρχιτεκτονικής του λογισμικού η οποία πρέπει να επιχειρείται να πραγματοποιηθεί με το ελάχιστο δυνατό κόστος. ΕΝΟΤΗΤΑ 13.3. ΠΡΟΤΥΠΑ ΛΟΓΙΣΜΙΚΟΥ Η εργασία της διασφάλισης ποιότητας (και) του λογισμικού είναι συνυφασμένη με την προτυποποίηση της διαδικασίας και των προϊόντων που παράγονται κατά την ανάπτυξη λογισμικού. Η προτυποποίηση είναι, για όλους τους κλάδους της παραγωγής, μια δύσκολη υπόθεση, η οποία γενικά μπορεί να επιτευχθεί σε έναν βαθμό και όχι καθολικά, αποτελεί δε ανταγωνιστικό πλεονέκτημα όσων την επιτυγχάνουν. Στην ενότητα αυτή θα κάνουμε μια σύντομη αναφορά στην προτυποποίηση του λογισμικού και στον ρόλο της στη διασφάλιση ποιότητας. 13.3.1. Πρότυπα και διασφάλιση ποιότητας λογισμικού Μία από τις σημαντικότερες εργασίες της ομάδας που ασχολείται με τη διασφάλιση της ποιότητας είναι ο ορισμός προτύπων λογισμικού. Τα πρότυπα αυτά μπορούν να ταξινομηθούν σε δυο κατηγορίες: Τα πρότυπα που χρησιμοποιούνται για την περιγραφή των συστατικών λογισμικού (δομημένα έγγραφα, συμβολισμοί, διαγράμματα, μοντέλα παράστασης λογισμικού κ.ά.). Τα πρότυπα που σχετίζονται με την ίδια τη διαδικασία ανάπτυξης του λογισμικού. Τα πρώτα ορίζουν χαρακτηριστικά τα οποία θα πρέπει να παρουσιάζουν όλα τα συστατικά λογισμικού που ανήκουν σε μία κατηγορία, ενώ τα δεύτερα αφορούν ολόκληρη τη διαδικασία ανάπτυξης του λογισμικού που ακολουθείται στον οργανισμό. Ο ορισμός τέτοιων προτύπων είναι ιδιαίτερα σημαντικός για διαφόρους λόγους, όπως: Ενσωματώνουν τις καλύτερες ή, τουλάχιστον, τις πιο κατάλληλες μεθόδους αντιμετώπισης συγκεκριμένων κατηγοριών προβλημάτων. Η εμπειρική αυτή γνώση αποκτάται συνήθως μόνο μετά από 689 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
πολλές προσπάθειες, και με την ενσωμάτωσή της σε κάποια πρότυπα αποφεύγεται η επανάληψη παλαιοτέρων σφαλμάτων. Παρέχουν ένα πλαίσιο εργασίας πάνω στο οποίο μπορεί να πραγματοποιηθεί η εργασία διασφάλισης ποιότητας. Δεδομένου ότι (και στο βαθμό που) τα πρότυπα αυτά ενσωματώνουν την καλύτερη δυνατή πρακτική, η διασφάλιση της ποιότητας ισοδυναμεί, πλέον, με μια δραστηριότητα εξασφάλισης ότι τα πρότυπα ακολουθούνται σωστά. Βοηθούν στην εξασφάλιση της συνέχειας των εργασιών, δηλαδή στην εξασφάλιση της δυνατότητας ένα άτομο να μπορεί να συνεχίζει εργασίες από το σημείο που τις έχει αφήσει κάποιος άλλος. Τα πρότυπα ενθαρρύνουν την υιοθέτηση των ίδιων μεθόδων από όλους τους εμπλεκόμενους με την ανάπτυξη λογισμικού μέσα σε έναν οργανισμό. Η δημιουργία τέτοιων προτύπων είναι μια ιδιαίτερα δύσκολη εργασία. Ωστόσο, από μεγάλους διεθνείς φορείς (IEEE, ANSI κ.ά.) έχουν ήδη αναπτυχθεί κάποια διεθνή πρότυπα τα οποία καλύπτουν τη διαδικασία ανάπτυξης λογισμικού, τις γλώσσες προγραμματισμού, καθώς και εργασίες όπως ο ορισμός προδιαγραφών, η διεργασία διασφάλισης της ποιότητας και οι διεργασίες ελέγχου του λογισμικού, στα οποία έχει γίνει αναφορά σε διάφορα σημεία του βιβλίου αυτού. Η ομάδα που ασχολείται με τη διασφάλιση της ποιότητας του λογισμικού θα πρέπει να εξειδικεύει και να καταγράφει τα πρότυπα αυτά σε ένα εγχειρίδιο, για την αποτελεσματικότερη χρησιμοποίησή τους. Το εγχειρίδιο αυτό αποτελεί το εγχειρίδιο διασφάλισης ποιότητας λογισμικού. Στο Σχήμα 13.5 δίνονται κάποια παραδείγματα τέτοιων προτύπων. 690 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
Σχήμα 13.5 Πρότυπα προϊόντος και πρότυπα διεργασίας. Πρότυπα προϊόντος Έντυπα αξιολόγησης Ονοµατολογία εγγράφων Πρότυπα προγραµµατισµού Πρότυπα διεργασιών Προδιαγραφή αξιολογήσεων Διαδικασία καταγραφής ελέγχων ποιότητας Διαδικασία κυκλοφορίας του προϊόντος 691 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
Οι μηχανικοί λογισμικού θεωρούν αρκετές φορές ότι τα πρότυπα αυτά είναι γραφειοκρατικά και άσχετα με το τεχνικό μέρος της ανάπτυξης λογισμικού. Αυτό συμβαίνει ιδιαίτερα όταν η συμμόρφωση με τα πρότυπα αυτά απαιτεί τη συμπλήρωση μεγάλου αριθμού εντύπων και γενικότερα καταγραφή των εργασιών εργασίας που πραγματοποιούνται. Ωστόσο, όλοι συμφωνούν με τη γενικότερη ανάγκη προτυποποίησης του προϊόντος και των διεργασιών του λογισμικού, καθώς η προσέγγιση αυτή συνεπάγεται γενικά υψηλότερη ποιότητα. Για την αποτελεσματικότερη καταγραφή και εκμετάλλευση τέτοιων προτύπων, η ομάδα που ασχολείται με τη διασφάλιση ποιότητας του λογισμικού θα πρέπει να ακολουθεί τους παρακάτω κανόνες: Στη διαδικασία ορισμού των προτύπων για το προϊόν θα πρέπει να εμπλέκονται και μηχανικοί λογισμικού, οι οποίοι θα κληθούν να τα εφαρμόσουν στην πράξη. Είναι αναγκαία η ανά τακτά χρονικά διαστήματα αξιολόγηση και τροποποίηση των προτύπων αυτών, έτσι ώστε να αντικατοπτρίζουν τόσο την εξέλιξη της τεχνολογίας όσο και την τρέχουσα πρακτική. Συνήθως, όταν ορίζονται τα πρότυπα λογισμικού, τοποθετούνται σε ένα εγχειρίδιο και η οποιαδήποτε μετέπειτα αλλαγή τους αποφεύγεται. Ένα τέτοιο εγχειρίδιο είναι απαραίτητο σε μια εταιρεία λογισμικού, όπως απαραίτητη είναι και η εξέλιξή του ανάλογα με τις εκάστοτε συνθήκες και τις εξελίξεις. Όταν έχουν οριστεί πρότυπα που σχετίζονται με τον τρόπο εργασίας του προσωπικού για την υλοποίηση του έργου λογισμικού, θα πρέπει να παρέχονται και τα κατάλληλα εργαλεία λογισμικού. Για την αποφυγή των οποιονδήποτε πιθανών δυσκολιών που μπορεί να παρουσιαστούν κατά τη διαδικασία συμμόρφωσης με ακατάλληλα πρότυπα, ο διαχειριστής της ποιότητας (quality manager) θα πρέπει να αξιολογεί τα προκαθορισμένα πρότυπα και να αποφασίζει ποια από αυτά πρέπει να αποφευχθούν, ποια χρειάζονται αλλαγές και ποια μπορούν να χρησιμοποιηθούν αυτούσια. Τέλος, είναι πιθανή η ανάγκη για τον ορισμό νέων προτύπων, ως συνέπεια κάποιων ιδιαίτερων προδιαγραφών του εκάστοτε έργου 692 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
ανάπτυξης λογισμικού, αν και κάτι τέτοιο θα πρέπει να γίνεται μετά από προσεκτική μελέτη. 13.3.2. Πρότυπα τεκμηρίωσης λογισμικού Τα πρότυπα τεκμηρίωσης (documentation standards) αποτελούν τον μόνο τρόπο παράστασης του λογισμικού και της διαδικασίας ανάπτυξής του. Τα έγγραφα τεκμηρίωσης που παράγονται σύμφωνα με πρότυπα έχουν παρόμοια εμφάνιση, δομή και επιδιώκεται η ποιότητά τους να βρίσκεται στα ίδια επίπεδα. Τα έγγραφα αυτά καθιστούν ανιχνεύσιμη κάθε εργασία ανάπτυξης λογισμικού και έτσι θα πρέπει να είναι ακριβή και κατανοητά. Μπορούμε να διακρίνουμε τρεις διαφορετικούς τύπους προτύπων τεκμηρίωσης: Τα πρότυπα της εργασίας τεκμηρίωσης. Τα πρότυπα αυτά ορίζουν τη διαδικασία που πρέπει να ακολουθείται για την παραγωγή των εγγράφων τεκμηρίωσης. Τα πρότυπα των εγγράφων τεκμηρίωσης. Τα πρότυπα αυτά ορίζουν γενικά χαρακτηριστικά και δομή των εγγράφων. Τα πρότυπα ανταλλαγής εγγράφων τεκμηρίωσης. Κατά τη διεργασία ανάπτυξης του λογισμικού είναι αναγκαία η ανταλλαγή εγγράφων τεκμηρίωσης, συνήθως με ηλεκτρονικό τρόπο (σήμερα επικρατεί το ηλεκτρονικό ταχυδρομείο ή οι εφαρμογές λογισμικού για συντονισμό ομάδων εργασίας), καθώς και η αποθήκευσή τους σε κάποιες βάσεις δεδομένων. Τα πρότυπα συναλλαγής των εγγράφων τεκμηρίωσης περιγράφουν τον τρόπο επικοινωνίας και διακίνησης των εγγράφων, ώστε να αποφεύγεται η αταξία και, τελικά, το χάος. Τα πρότυπα της εργασίας τεκμηρίωσης ορίζουν τη διαδικασία που πρέπει να ακολουθείται για την παραγωγή των εγγράφων τεκμηρίωσης. Με άλλα λόγια, ορίζουν τις εργασίες που εμπλέκονται στην περιγραφή της δομής των εγγράφων, καθώς και τα εργαλεία λογισμικού που ενδεχομένως να χρησιμοποιούνται για την παραγωγή τέτοιων εγγράφων. Επίσης, τα πρότυπα αυτά θα πρέπει να ορίζουν τις εργασίες ελέγχου και διόρθωσης οι οποίες διασφαλίζουν την υψηλή ποιότητα των εγγράφων τεκμηρίωσης. 693 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
Τα πρότυπα διασφάλισης ποιότητας της διεργασίας τεκμηρίωσης θα πρέπει να είναι ευέλικτα, έτσι ώστε να μπορούν να εφαρμόζονται σε όλους τους τύπους εγγράφων. Η δόμηση, ο έλεγχος και η διόρθωση των εγγράφων τεκμηρίωσης σύμφωνα με τα πρότυπα της διεργασίας τεκμηρίωσης είναι μια επαναληπτική διεργασία, η οποία πρέπει να συνεχίζεται μέχρι να επιτευχθεί το ζητούμενο επίπεδο ποιότητας. Το αποδεκτό επίπεδο ποιότητας είναι ανάλογο με τον τύπο του εγγράφου και τους υποψήφιους αναγνώστες του στις εκάστοτε συνθήκες. Τα πρότυπα των εγγράφων τεκμηρίωσης ισχύουν για όλα τα έγγραφα που παράγονται κατά την ανάπτυξη του λογισμικού. Τα έγγραφα αυτά θα πρέπει να έχουν παρόμοια εμφάνιση, ενώ τα έγγραφα της ίδιας κατηγορίας θα πρέπει να έχουν και παρόμοια δομή. Κάποια παραδείγματα προτύπων για τα έγγραφα τεκμηρίωσης είναι τα εξής: Πρότυπα αναγνώρισης των εγγράφων. Τα μεγάλα έργα λογισμικού συνήθως συνοδεύονται από χιλιάδες έγγραφα τεκμηρίωσης. Έτσι, είναι προφανής η ανάγκη για την ύπαρξη μοναδικών αναγνωριστικών για τα έγγραφα αυτά. Πρότυπα δόμησης των εγγράφων τεκμηρίωσης. Κάθε κατηγορία εγγράφων που παράγονται κατά την ανάπτυξη λογισμικού πρέπει να ακολουθεί κάποια πρότυπα δόμησης. Τα πρότυπα αυτά ορίζουν τα τμήματα που πρέπει να συμπεριλαμβάνονται στο εκάστοτε έγγραφο όπως και τον τρόπο αρίθμησης των σελίδων, τις επικεφαλίδες των ενοτήτων κ.ά. Πρότυπα παρουσίασης των εγγράφων τεκμηρίωσης. Τα πρότυπα αυτά ορίζουν το ύφος της εμφάνισης των εγγράφων τεκμηρίωσης. Εδώ ορίζονται χαρακτηριστικά των εγγράφων όπως οι γραμματοσειρές, τα χρώματα που χρησιμοποιούνται κ.ά. Πρότυπα ενημέρωσης των εγγράφων τεκμηρίωσης. Τα πρότυπα αυτά ορίζουν έναν ομοιόμορφο τρόπο ένδειξης των τροποποιήσεων που πραγματοποιούνται σε οποιοδήποτε έγγραφο τεκμηρίωσης. 694 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
Τέλος, τα πρότυπα συναλλαγής των εγγράφων τεκμηρίωσης είναι ιδιαίτερα σημαντικά καθώς, συνήθως, κατά τη διάρκεια ανάπτυξης του λογισμικού χρησιμοποιούνται ηλεκτρονικά αντίγραφά τους. Αν υποθέσουμε ότι η χρήση των εργαλείων λογισμικού ορίζεται από τα πρότυπα διεργασίας, τότε τα πρότυπα συναλλαγής ορίζουν τις συμβάσεις για τη χρήση αυτών των εργαλείων. Δραστηριότητα 1/Κεφάλαιο 13 Περιγράψτε με λιγότερες από 100 λέξεις τους λόγους για τους οποίους τα πρότυπα διασφάλισης ποιότητας λογισμικού είναι ιδιαίτερα χρήσιμα. Παράδειγμα 1/Κεφάλαιο 13 Στο Σχήμα 13.6 που ακολουθεί φαίνεται η δομή ενός προτύπου διασφάλισης ποιότητας λογισμικού, το οποίο αφορά ένα συγκεκριμένο έργο. Το πρότυπο κατασκευάζεται ύστερα από απαίτηση του κύριου του έργου, ο οποίος το αναθέτει σε κατασκευαστή λογισμικού. Μπορείτε να παρατηρήσετε ότι το πρότυπο περιλαμβάνει τόσο ζητήματα διοίκησης και οργάνωσης όσο και ζητήματα περιγραφής της διαδικασίας εκτέλεσης και των παραδοτέων του έργου. 695 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
Σχήμα 13.6 Η δομή ενός προτύπου διασφάλισης ποιότητας λογισμικού. 0 Ιστορικό αλλαγών εγγράφου 1 Εισαγωγή 1.1 Σκοπός 1.2 Εμβέλεια 1.3 Διαδικασία αναθεώρησης 1.4 Συντμήσεις ακρωνύμια 1.5 Λίστα διανομής 1.6 Αναφορές 2 Σύντομη περιγραφή του έργου 3 Διοίκηση 3.1 Οργανόγραμμα ομάδας εκτέλεσης έργου 3.2 Ρόλοι και αρμοδιότητες 3.3 Χρονοδιάγραμμα 3.4 Πρόγραμμα εξασφάλισης ποιότητας 4 Τεκμηρίωση παραδοτέων έργου 4.1 Σκοπός 4.2 Ελάχιστες απαιτήσεις 4.3 Πίνακας παραδοτέων 4.4 Τεκμηρίωση λογισμικού 4.4.1 Περιγραφή των απαιτήσεων από το λογισμικό 4.4.2 Περιγραφή του σχεδίου του λογισμικού 4.4.3 Εγχειρίδια χρήστη 4.4.4 Πλάνο ελέγχου λογισμικού 4.4.5 Αναφορές ελέγχου λογισμικού 4.5 Τεκμηρίωση λοιπών παραδοτέων 4.6 Ταξινόμηση παραδοτέων 5 Διαδικασίες ανάπτυξης λογισμικού 5.1 Σκοπός 5.2 Μοντέλο κύκλου ζωής λογισμικού 5.3 Βήματα ανάπτυξης λογισμικού 5.4 Προδιαγραφή λογισμικού 5.5 Σχεδίαση λογισμικού 5.6 Χαρακτηριστικά του πηγαίου κώδικα 6 Έλεγχος υποπρομηθευτών 6.1 Διαδικασία ελέγχου και αποδοχής λογισμικού 6.2 Διαδικασία διαχείρισης δραστηριοτήτων που σχετίζονται με υπηρεσίες προμηθευτών 7 Εσωτερικός έλεγχος και επισκοπήσεις παραδοτέων εγγράφων 8 Εκπαίδευση ενημέρωση ομάδας έργου 696 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
ΑΠΑΝΤΗΣΕΙΣ ΔΡΑΣΤΗΡΙΟΤΗΤΩΝ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ Δραστηριότητα 1/Κεφάλαιο 13 Υπάρχουν τρεις βασικοί λόγοι που συνηγορούν υπέρ της χρησιμότητας τέτοιων προτύπων: πρώτον, ενσωματώνουν εμπειρία σχετικά με την καλύτερη πρακτική ανάπτυξης λογισμικού, δεύτερον, περιγράφουν τον τρόπο εφαρμογής των εργασιών διασφάλισης ποιότητας στην πράξη και, τρίτον, αποτελούν τη βάση για την ευέλικτη εκτέλεση των εργασιών από εναλλακτικές ομάδες ή άτομα σύμφωνα με τον τρόπο που αυτά περιγράφουν. Είναι αναπόφευκτο, ασφαλώς, να σκεφτείτε ότι η δημιουργία και η εφαρμογή στην πράξη τέτοιων προτύπων προσθέτουν κόστος και καθυστερήσεις στην κατασκευή του λογισμικού. Δεν θα διαφωνήσουμε, θα σας κατευθύνουμε όμως στο να αναλογιστείτε αν η διασφάλιση καλύτερης ποιότητας του τελικού προϊόντος αποτελεί επαρκές αντιστάθμισμα για το κόστος αυτό. 697 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ
ΒΙΒΛΙΟΓΡΑΦΊΑ IEEE Guide for Software Quality Assurance Plans, ANSI/IEEE, Std 730.1-1989 IEEE Standard for Software Quality Assurance Plans, ANSI/IEEE, Std 730-1989. Pressman, R. S., Software Engineering-A Practitioners Approach, McGraw-Hill. Sommerville, I. Software Engineering, London: Addison-Wesley. 698 I ΣΤΟΙΧΕΙΑ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ ΒΑΣΙΛΕΙΟΣ ΒΕΣΚΟΥΚΗΣ