Αφιέρωμα στο Γ Συνέδριο «Τεχνολογία & Αυτοματισμός» ΕΙΣΑΓΩΓΗ ΕΝΟΣ ΣΥΣΤΗΜΑΤΟΣ ΠΟΙΟΤΗΤΑΣ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Μαρία Μαούνη Ηλεκτρολόγος Μηχανικός Α λαμάνας 40, 10441 Αθήνα. Τηλ. 0932-333612. Fax 6106884. M.M aouni@ telesoft.gr Δρ. Δημήτριος Τσελές Καθηγητής ΤΕΙ Πειραιά, Τμήμα Αυτοματισμού Πέτρου Ράλλη & Θηβών 250, 12244 Αιγάλεω. Τηλ. 5831200. Fax 5381200. D tsel@ teipir.gr. ΠΕΡΙΛΗΨΗ Η ποιότητα στο λογισμικό έχει αρχίσει να αποκτά πολύ μεγάλη σημασία. Όλο και περισσότερες εφαρμογές χρησιμοποιούν λογισμικό και ακόμη και το παραμικρό πρόβλημα το οποίο μπορεί αυτό να παρουσιάζει είναι δυνατό να προκαλέσει σημαντικές απώλειες. Η έννοια της ποιότητας στην ανάπτυξη - παραγωγή του λογισμικού έχει να κάνε τόσο με την ποιότητα του τελικού προϊόντος (software product) όσο και με την διαδικασία παραγωγής (process).δυο από τα πιο διαδεδομένα standards για την διαχείριση της ποιότητας στο λογισμικό είναι το ISO 9001* και το Capability Maturity Model (CMM). Σκοπός αυτής της εργασίας είναι να παρουσιάσει την διαδικασία εισαγωγής ενός συστήματος ποιότητας σε μια εταιρία παραγωγής λογισμικού. Η όλη διαδικασία χωρίζεται σε δυο τομείς: στην περιγραφή των οδηγιών με βάση τις οποίες θα καλύπτονται οι απαιτήσεις ενός συστήματος ποιότητας και στην διαμόρφωση μιας νοοτροπίας σε όλη την εταιρεία η οποία όχι μόνο να εφαρμόζει το σύστημα ποιότητας αλλά και να κατανοεί την ανάγκη για την εφαρμογή του. ΛΕΞΕΙΣ ΚΛΕΙΔΙΑ Capability Maturity Model: μοντέλο για την συνεχή βελτίωση των διαδικασιών ανάπτυξης έργων λογισμικού. ΠΟΙΟΤΗΤΑ ΚΑΙ ΛΟΓΙΣΜΙΚΟ Ποιότητα, σύμφωνα με το ISO 8402:1994, είναι το σύνολο των χαρακτηριστικών ενός προϊόντος ή μιας υπηρεσίας που έχει την ικανότητα να ικανοποιεί διαπιστωμένες ή συναγόμενες ανάγκες. Θα μπορούσαμε να θεωρήσουμε σαν ποιότητα την συμμόρφωση σε καθορισμένες προδιαγραφές σε θέματα απόδοσης, τιμής και παράδοσης. Στην ιδανική περίπτωση οι προδιαγραφές αυτές θα ήταν καθορισμένες από την αρχή. Σε έργα που έχουν να κάνουν με την ανάπτυξη λογισμικού, για παράδειγμα, ο πελάτης θα παρουσίαζε τις ανάγκες του και ένας αναλυτής θα ξεχώριζε ποιες από αυτές είναι πραγματικές. Θα προετοιμάζονταν ένα έγγραφο το οποίο θα περιέγραφε αυτές τις ανάγκες με την μορφή τεχνικών και λειτουργικών απαιτήσεων. Με βάση αυτό το κείμενο θα καθορίζονταν οι προτεραιότητες στην υλοποίηση του προϊόντος. Αυτό το κείμενο το οποίο θα * Η εργασία στηρίζεται στο ISO 9001 του 1994. 47
Επιστημονική Επετηρίδα Εφαρμοσμένης Έρευνας ήταν κατανοητό από όλους και θα έδινε στην εταιρεία επαρκείς πληροφορίες για να κάνει κάποιες αρχικές εκτιμήσεις γύρω από το κόστος και τους πόρους που απαιτούνται για την υλοποίηση του προϊόντος με βάση την εμπειρία της από παρόμοια προηγούμενα έργα. Στον πραγματικό κόσμο, οι ανάγκες του πελάτη σπάνια είναι καθορισμένες με επαρκή σαφήνεια και λεπτομέρεια και οι απαιτήσεις συνήθως δεν είναι ιεραρχημένες. Το όλο έργο κινδυνεύει από, άσκοπες, επαναλήψεις στην προσπάθεια να καθοριστεί τι ακριβώς πρέπει να κάνει το προϊόν και τι πόροι απαιτούνται για την υλοποίηση του. Συνήθως από την στιγμή που ξεκινάει η υλοποίηση υπάρχουν δυσκολίες στον έλεγχο του έργο. Σκοπός των συστημάτων ποιότητας για το λογισμικό είναι να συνδυάσουν την πραγματική με την ιδανική περίπτωση και να οδηγήσουν στην συνεχή βελτίωση των διαδικασιών που σχετίζονται με ανάπτυξη έργων λογισμικού. ISO 9001 ΚΑΙ C A PA BILITY M A TURITY M O D EL Η οικογένεια του ISO 9000 καθορίζει τις απαιτήσεις ενός συστήματος ποιότητας το οποίο σε ένα διμερές συμβόλαιο αποδεικνύει την ικανότητα του προμηθευτή να σχεδιάσει και να παράγει το προϊόν. To ISO 9001 αναφέρεται στον σχεδίασμά την παραγωγή την διάθεση και την συντήρηση ενός προϊόντος και οδηγίες για την εφαρμογή του στην ανάπτυξη λογισμικού δίνονται στο ISO 9000-3. Στον Πίνακα 1 αναφέρονται οι 20 απαιτήσεις του συστήματος. 4.1 Υπευθυνότητα Διοίκησης 4.11 Όργανα Ελέγχων, Μετρήσεων και Δοκιμών 4.2 Σύστημα Ποιότητας 4.12 Κατάσταση Ελέγχων και Δοκιμών 4.3 Ανασκόπηση /Έλεγχος Συμβολαίων 4.13 Έλεγχος Μη Συμμορφούμενου Προϊόντος 4.4 Έλεγχος Σχεδιασμού 4.14 Διορθωτικές και Προληπτικές Ενέργειες 4.5 Έλεγχος Εγγράφων και Δεδομένων 4.15 Χειρισμός, Αποθήκευση, Συσκευασία, Διατήρηση και Παράδοση 4.6 Αγορές 4.16 ' Ελεγχος Αρχείων Ποιότητας 4.7 Έλεγχος Προϊόντος που προμηθεύει ο 4.17 Εσωτερικές Επιθεωρήσεις Πελάτης 4.8 Σήμανση και Ανιχνευσιμότητα Προϊόντων 4.18 Εκπαίδευση 4.9 Έλεγχος Παραγωγής 4.19 Εξυπηρέτηση 4.10 Έλεγχος και Δοκιμές 4.20 Τεχνικές Στατιστικής Πίνακας 1 Οι απαιτήσεις του ISO 9001.[ί] To Capability Maturity Model [ii] για το λογισμικό περιγράφει τα βασικά στοιχεία μίας αποτελεσματικής διαδικασίας για το λογισμικό. Στην ουσία περιγράφει μια εξελικτική διαδικασία βελτίωσης από το acl hoc ανώριμο επίπεδο σε μια ώριμη πειθαρχημένη διαδικασία. Στα διάφορα επίπεδα καλύπτονται ο σχεδιασμός, η υλοποίηση, η διαχείριση της διαδικασίας ανάπτυξης και η συντήρηση. Υπάρχουν πέντε επίπεδα ωριμότητας στο μοντέλο. Κάθε επίπεδο αποτελεί την βάση για την συνεχή βελτίωση των διαδικασιών. Τα πέντε επίπεδα και τα χαρακτηριστικά τους παρουσιάζονται στον Π ίνακα 2. 48
Αφιέρωμα στο Γ Συνέδριο «Τεχνολογία & Αυτοματισμός» 1. Αρχικό Επτπεδο 2. Επίπεδο Επανάληψης Οι διαδικασίες για το λογισμικό οποίες σχετίζονται με το λογισμικό χαρακτηρίζονται σαν ad hoc ή και χαοτικές. Ελάχιστες διαδικασίες έχουν καθοριστεί και η επιτυχία στηρίζεται σε ατομικές προσπάθειες και ηρωισμούς. Έχουν καθοριστεί κάποιες βασικές αρχές για την διαχείριση των έργων και υπάρχει η δυνατότητα της παρακολούθησης του κόστους, του χρονοπρογραμματισμού και της λειτουργικότητας. Υπάρχει η δυνατότητα επαναλήψεις τον διαδικασιών οι οποίες οδήγησαν στην επιτυχή υλοποίηση ενός έργου, σε αλλά έργα παρομοίου τύπου. 3. Επίπεδο Καθορισμού Οι διαδικασίες για την ανάπτυξη και την διαχείριση του λογισμικού είναι καταγεγραμμένες, τυποποιημένες και εφαρμόζονται από ολόκληρο τον οργανισμό. Όλα τα έργα αναπτύσσονται με εγκεκριμένες, ειδικά διαμορφωμένες εκδόσεις των τυποποιημένων διαδικασιών για την ανάπτυξη και την διατηρήσει του λογισμικού. Επίπεδο Διαχείρισης 5. Επίπεδο Βείτιστοποίησί] Πίνακας 2 Capability M aturity Model. Συγκεντρώνονται αναλυτικές μετρήσεις για τις διαδικασίες και την ποιότητα του προϊόντος. Τόσο οι διαδικασίες όσο και τα προϊόντα τους είναι ποσοτικά κατανοητά και ελεγχόμενα. Η διαρκής βελτίωση της διαδικασίας ενεργοποιείται και από το ποσοτικό υπόβαθρο και από την πιλοτική δόκιμη νέων ιδεών και τεχνολογιών. Κάθε επίπεδο, με εξαίρεση το αρχικό, δίνει ιδιαίτερη βαρύτητα σε κάποιους τομείς της οργάνωσης με στόχο την βελτίωση των διαδικασιών που σχετίζονται με το λογισμικό. Για παράδειγμα για το δεύτερο επίπεδο, αυτό της επανάληψης, βαρύτητα δίνεται στους τομείς που εμφανίζονται στον Π ίνακα 3. Διαχείριση των απαιτήσεων (Requirements Management- RM) Προγραμματισμός του έργου (Project Planning-PP) Παρακολούθηση του έργου (Project Tracking-PT) Η δημιουργία λογικών πλάνων για την εκτέλεση και την διαχείριση του έργου. Η δημιουργία της απαραίτητης ορατότητας στην πραγματική πρόοδο του έργου έτσι ώστε η διοίκηση να είναι σε θέση να ενεργοποιήσει αποδοτικές διαδικασίες όταν η απόδοση του έργου διαφέρει σημαντικά από τον χρονοπρογραμματισμό. Η επιλογή και η αποδοτική διοίκηση κατάλληλων υπο- κατασκευαστών. Διοίκΐ]ση υπο-κατασκευαστών λογισμικού (Software Subcontract Management-SM) Διασφάλιση Ποιότητας (Software Quality Assurance-QA) Διαχείριση της διασύνδεσης του λογισμικού (Software Configuration Management- CM) Πίνακας 3: CMM 2 επίπεδο. Η δημιουργία κατανόησης μεταξύ του πελάτη και του έργου της ανάπτυξης των απαιτήσεων του πελάτη τις οποίες θα υλοποιεί. Η παροχή στην διοίκηση της απαραίτητης ορατότητας τόσο για τις διαδικασίες οι οποίες χρησιμοποιούνται για την υλοποίηση του λογισμικού όσο και για το ίδιο το προϊόν. Η δημιουργία και η διατήρηση της ακεραιότητας των προϊόντων του έργου καθ όλη τη διάρκεια του έργου. Για κάθε τομέα περιγράφεται [iii] τι πρέπει να κάνει ο οργανισμός για να διασφαλίσει ότι οι διαδικασίες εφαρμόζονται (com m itm ent to perform -C O), τι προϋπόθεσης πρέπει να 49
Επιστημονική Επετηρίδα Εφαρμοσμένης Έρευνας πληρούνται (ability to perform -AB), ποιες διαδικασίες είναι απαραίτητο να υλοποιηθούν (activities perform ed-a C), ποιες μετρήσεις χρειάζονται (measurement and analysis-m E) και με ποιο τρόπο επικυρώ νεται η υλοποίηση τους (verifying im plem entation-v E). Ο στόχος των δυο προσεγγίσεων είναι κοινός: η βελτίωση της ποιότητας. Υπάρχουν όμως κάποιες διάφορες στην προσέγγιση και στις απαιτήσεις. Μια εταιρεία με ISO μπορεί να βρίσκεται στο αρχικό επίπεδο του CMM ενώ κάποιες από τις απαιτήσεις του ISO βρίσκονται στα επίπεδα 2 και 3. Έ να παράδειγμα για τη σχέση μεταξύ των απαιτήσεων του ISO 9001 δεύτερου επιπέδου του CMM φαίνεται στον πίνακα 4 [ΐν]. Απαίτηση Τίτλος ISO 9001 CMM 2 Επίπεδο Στοιχεία σ ε... 4.5 Διαχείριση Εγγράφων PT.AC.11 CM.C0.1 CM.AC.1,4,5,6,7,8,9 RM.AC.3 PP.AC.8 PT.AC.2,4,12 CM.AB.1,2 CM.AC.2,10 CM.VE.3 Πίνακας 4: Απαιτήσεις ISO και CMM ΜΙΑ ΕΤΑΙΡΕΙΑ ΑΝΑΠΤΥΞΗΣ ΛΟΓΙΣΜΙΚΟΥ Η εταιρεία άρχισε να δραστηριοποιείται στην Ελλάδα το 1994 σαν παράρτημα της μητρικής - Ιταλικής και με πλειοψηφία εργαζόμενων από την μητρική εταιρεία. Ο τρόπος εργασίας και η νοοτροπία μεταφέρθηκε και αυτή από την μητρική εταιρεία η οποία έχει πιστοποιηθεί με ISO 9001. Κάποιες διαδικασίες συνέχισαν να εφαρμόζονται, όχι όμως με αυστηρότητα. Το 1996 το παράτημα αυτό έγινε μια ανεξάρτητη τοπική εταιρεία η οποία δραστηριοποιείται στον σχεδιασμό, την ανάπτυξη και την υποστήριξη σύνθετων εφαρμογών λογισμικού στο χώρο των τηλεπικοινωνιών με στόχο να επεκταθεί και στα Βαλκάνια. Η Ελληνική πλέον εταιρεία προσέλαβε αρκετούς καινούργιους υπάλληλους, ενώ η πλειοψηφία των αρχικών επέστρεψε στην Ιταλία. Σήμερα αριθμεί 45 άτομα, τεχνικούς και διοικητικούς υπάλληλους, Έλληνες και Ιταλούς. Η ανάπτυξη του λογισμικού γίνεται με βάση το μοντέλο Waterfall. Η τρέχουσα οργάνωση της εταιρείας, στον τομέα ανάπτυξης λογισμικού, καθώς επίσης και οι φάσεις του μοντέλου ανά τμήμα φαίνονται στο σχήμα 1. Ο στόχος της εταιρείας είναι να υλοποιηθεί ένα τέτοιο σύστημα διαδικασιών, το οποίο θα βελτιώσει την ροή πληροφοριών ανάμεσα στα τεχνικά τμήματα και επίσης θα καθορίσει τα όρια και τις αρμοδιότητες των εργαζόμενων σε αυτά. Με αυτό τον τρόπο θα βελτιωθούν οι διαδικασίες ανάπτυξης του λογισμικού και κατ επέκταση και η ποιότητα των τελικών προϊόντων. Οι διαδικασίες αυτές είναι σκόπιμο να πληρούν τις απαιτήσεις των συστημάτων ποιότητας μια και η εταιρεία σκοπεύει να ζητήσει πιστοποίηση κατά ISO. Για να υλοποιήσουμε το σύστημα ποιότητας σκοπεύουμε να στηριχθούμε στο σύστημα της μητρικής εταιρίας και να το προσαρμόσουμε στις ανάγκες της ελληνικής εταιρείας και παράλληλα να προσπαθήσουμε να καλύψουμε τις απαιτήσεις του δεύτερου επιπέδου του CMM για να βρισκόμαστε σε αρμονία με τον κυριότερο πελάτη μας. 50
Αφιέρωμα στο Γ Συνέδριο «Τεχνολογία & Αυτοματισμός» Σχήμα 1: Η εταιρείας (30/08/00) και το μοντέλο. Η διαδικασία που ακολουθούμε είναι η εξής: 1. Προσαρμογή των διαδικασιών της Ιταλικής εταιρείας σύμφωνα με τις ανάγκες της Ελληνικής (από το τμήμα ποιότητας και διαδικασιών). 2. Τροποποίηση έτσι ώστε να καλύπτονται και οι απαιτήσεις του CMM 2 επίπεδο (από το τμήμα ποιότητας και διαδικασιών). 3. Κριτική από τον διευθυντή του τμήματος το οποίο θα κληθεί να εκτελέσει την διαδικασία. 4. Αναθεώρηση της διαδικασίας με βάση την κριτική του αρμόδιου διευθυντή. 5. Κριτική και αναθεώρηση της διαδικασίας με βάση τα σχόλια όλων των τεχνικών διευθυντών. 6. Έγκριση της διαδικασίας από τον γενικό διευθυντή. 7. Εφαρμογή της διαδικασίας σε πιλοτικά έργα ανάπτυξης λογισμικού. 8. Επιθεώρηση της εφαρμογής της διαδικασίας με στόχο τις πιθανές ελλείψεις στη διαδικασία (από το τμήμα ποιότητας και διαδικασιών). 9. Βελτίωση της διαδικασίας (από το τμήμα ποιότητας και διαδικασιών). 10. Έγκριση της διαδικασίας για εφαρμογή της σε όλα τα έργα ανάπτυξης λογισμικού της εταιρείας. Αυτή την στιγμή είναι έτοιμα τα έγραφα για την πλειοψηφία των απαιτήσεων του ISO (βήματα 1 και 2). Τα έγραφα που περιγράφουν τις διαδικασίες βρίσκονται τώρα στο στάδιο 3. Η διαδικασία για την διαχείριση έγγραφων και δεδομένων βρίσκεται είδη στο στάδιο 8 και οι επιθεωρήσεις για αυτήν προβλέπεται να ξεκινήσουν το Ν οέμβριο του 2000. 51
Γ Επιστημονική Επετηρίδα Εφαρμοσμένης Ερευνας ΒΙΒΛΙΟΓΡΑΦΙΑ [i] Advance Quality Services Ltd. ISO 9000 Auditing, Αθήνα 1999 σελ. 12-16. [ii] M. C. Paulk, B. Curtis, Μ. B. Chrissis, C. V. Weber. The Capability Maturity Model For Software, Version 1.1. Report CMU/SEI-93-TR-24, Software Engineering Institute, Carnegie M ellon U niversity, Pittsburgh, PA, 1993a. [iii] M. C. Paulk, C. V. Weber, S. M. Garcia, Μ. B. Chrissis, M. Bush. Key Practices of the Capability Maturity Model, Version 1.1. Report CMU/SEI-93-TR-25, Software Engineering Institute, Carnegie M ellon University, Pittsburgh, PA, 1993b. [iv] Paulk M. C. A Comparison of ISO 9001 and the Capability Maturity Model for Software CM U/SEI-94-TR-12, Pittsburgh, PA: Software Engineering Institute, July 1994, σελ. 61. 52