Αλλαγή και συντήρηση
Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr
Τύποι συστημάτων
Για να κατανοήσουμε την ανάγκη αλλαγών στο λογισμικό
χωρίζουμε τα αντίστοιχα συστήματα σε τρεις κατηγορίες,
σύμφωνα με το μοντέλο S-P-E
- S
- Ένα πρόγραμμα τύπου S πρέπει να ικανοποιεί μια συγκεκριμένη
και γνωστή από πριν απαίτηση (specification).
- P
- Ένα πρόγραμμα τύπου P απαιτείται να δίνει λύση σε ένα
πραγματικό πρόβλημα (problem).
- E
- Ένα πρόγραμμα τύπου E (evolutionary) ελέγχεται με βάση το
περιβάλλον μέσα στο οποίο εκτελείται και εξελίσσεται.
Κριτήρια για την αποδοχή του προγράμματος είναι τα αποτελέσματα
της εκτέλεσής του μέσα στο περιβάλλον αυτό.
Στρατηγικές αλλαγής του λογισμικού
- Συντήρηση: αλλαγές για ικανοποίηση νέων απαιτήσεων
- Αρχιτεκτονικός μετασχηματισμός π.χ. από
αρχιτεκτονική βασισμένη σε δεδομένα σε αρχιτεκτονική πελάτη
εξυπηρετητή
- Επανυλοποίηση (re-engineering)
(συνήθως χωρίς σημαντικές αρχιτεκτονικές αλλαγές)
Δυναμική συντήρησης, οι νόμοι του Lehman
Οι παρακάτω αρχές έχουν διατυπωθεί για προγράμματα τύπου Ε:
- Συνεχιζόμενη αλλαγή
-
Τα προγράμματα που χρησιμοποιούνται πρέπει να αλλάζουν, αλλιώς γίνονται
όλο και λιγότερο χρήσιμα.
- Αυξανόμενη πολυπλοκότητα
-
Καθώς ένα πρόγραμμα αλλάζει γίνεται όλο και πιο πολύπλοκο απαιτώντας
όλο και περισσότερους πόρους για τη συντήρησή του.
- Εξέλιξη μεγάλων συστημάτων
-
Η εξέλιξη μεγάλων συστημάτων είναι μια αυτοελεγχόμενη διεργασία.
Παράγοντες όπως το μέγεθος, ο χρόνος ανάμεσα σε εκδόσεις και
ο αριθμός των λαθών παραμένουν σταθερά ανάμεσα σε εκδόσεις.
- Οργανωσιακή σταθερότητα
-
Κατά τη διάρκεια ζωής ενός προγράμματος η ανάπτυξή του παραμένει
σταθερή και ανεξάρτητη των πόρων που αφιερώνονται σε αυτή
- Διατήρηση της εξοικείωσης
-
Κατά τη διάρκεια ζωής ενός προγράμματος το μέγεθος των αλλαγών από
τη μια έκδοση στην επόμενη παραμένει σταθερό.
- Διατήρηση του ρυθμού αύξησης
-
Για να διατηρηθεί η ικανοποίηση των χρηστών, πρέπει τα λειτουργικά
χαρακτηριστικά του προγράμματος να αυξάνονται διαρκώς.
- Φθίνουσα ποιότητα
-
Αν δεν υπάρχει διαρκής προσπάθεια συντήρησης στο περιβάλλον της
χρήσης, η ποιότητα του προγράμματος θα θεωρείται από τους χρήστες του
ως φθίνουσα.
- Ανατροφοδοτούμενο σύστημα
-
Η διεργασία προγραμματισμού συστημάτων τύπου Ε πρέπει να αντιμετωπίζεται
ως μια ανατροφοδοτούμενη διεργασία για να μπορέσει να βελτιωθεί.
Είδη συντήρησης
- Διόρθωση σφαλμάτων (17%)
- Προσαρμογή σε άλλο περιβάλλον λειτουργίας (18%)
- Προσθήκες ή αλλαγές στη λειτουργικότητα (65%)
Το κόστος της συντήρησης
Το κόστος της συντήρησης είναι μεγαλύτερο από αυτό της ανάπτυξης.
Μερικοί λόγοι είναι για αυτό είναι:
- Σταθερότητα της ομάδας: μετά την παράδοση η ομάδα ανάπτυξης
συνήθως αποσυντίθεται.
- Συμβατικές υποχρεώσεις:
συχνά η σύμβαση ανάπτυξης είναι διαφορετική από αυτή της συντήρησης.
Έτσι δεν υπάρχει κίνητρο για την ανάπτυξη συστημάτων που να
συντηρούνται εύκολα.
- Ικανότητα του προσωπικού:
συχνά το προσωπικό της συντήρησης δε γνωρίζει την εφαρμογή και
έχει και μικρότερη πείρα από το προσωπικό ανάπτυξης.
- Δομή του προγράμματος:
καθώς το πρόγραμμα "γερνάει" γίνεται όλο και πιο πολύπλοκο
και δύσκολο στη συντήρηση.
Διεργασία συντήρησης
Προγραμματισμένες
- Απαιτήσεις για αλλαγές
- Ανάλυση του αντίκτυπου
- Προγραμματισμός έκδοσης
- Έκδοση με διορθωμένα σφάλματα
- Προσαρμογή σε νέο περιβάλλον
- Βελτίωση
- Υλοποίηση αλλαγών
- Έκδοση του συστήματος
Με πίεση χρόνου
- Απαιτήσεις για αλλαγές
- Ανάλυση πηγαίου κώδικα
- Αλλαγή πηγαίου κώδικα
- Παράδοση αλλαγμένου συστήματος
Μετρικές
Ο ρυθμός αλλαγών στο σύστημα εξαρτάται από τους παρακάτω παράγοντες:
- Αριθμός και πολυπλοκότητα των διεπαφών του
- Αριθμός ασταθών απαιτήσεων
- Το είδος των επιχειρηματικών διεργασιών που χρησιμοποιούν το σύστημα
(η εξέλιξή τους θα οδηγήσει σε αλλαγές)
Κατά τη διάρκεια ζωής του συστήματος εξετάζουμε και τους
παρακάτω παράγοντες:
- Αριθμός αιτήσεων για αλλαγές
- Μέσος χρόνος ανάλυσης αντίκτυπου
- Μέσος χρόνος υλοποίησης της αλλαγής
- Αριθμός εκκρεμούντων αιτήσεων αλλαγών
(αυξανόμενος αριθμός μπορεί να δηλώνει αδυναμίες στη διεργασία
συντήρησης).
Αρχιτεκτονική εξέλιξη
Η αρχιτεκτονική εξέλιξη ενός συστήματος επηρεάζεται από τους
παρακάτω παράγοντες:
- Κόστος του υλικού
- Προσδοκίες της διεπαφής του χρήστη
- Απομακρυσμένη πρόσβαση στο σύστημα
- Διασύνδεση με άλλες εφαρμογές
Κληρονομημένα συστήματα
Παλιά κληρονομημένα συστήματα (legacy systems)
μπορούν να προσαρμοστούν σε νέες αρχιτεκτονικές με επέμβαση σε ένα
από τα παρακάτω επίπεδα:
- Διεπαφή χρήστη
- Έλεγχος δεδομένων εισόδου
- Υπολογισμοί της εφαρμογής
- Βάση δεδομένων
Επανυλοποίηση
Η επανυλοποίηση ενός συστήματος μπορεί να περιλάβει τα παρακάτω στάδια:
- Μετάφραση του πηγαίου κώδικα σε άλλη γλώσσα. Λόγοι:
- Αλλαγή υλικού
- Προβλήματα στελέχωσης
- Αλλαγή εταιρικής πολιτικής
- Προβλήματα υποστήριξης
- Αντίστροφος σχεδιασμός. Διεργασία:
- Αυτόματη ανάλυση
- Χειροκίνητη επισημείωση
- Τεκμηρίωση δομής του προγράμματος και των δεδομένων
- Βελτίωση της δομής ελέγχου του προγράμματος - συχνά με τη
χρήση αυτόματων εργαλείων
- Χωρισμός του προγράμματος σε αρθρώματα ανάλογα με
- δομές δεδομένων
- λειτουργικότητα
- πρόσβαση στο υλικό
- σχέση με εξωτερικές διεργασίες
- Επανυλοποίηση των δομών δεδομένων του προγράμματος.
Αντιμετώπιση των παρακάτω προβλημάτων:
Βιβλιογραφία
- Εμμανουήλ Σκορδαλάκης.
Εισαγωγή στην Τεχνολογία Λογισμικού, σελίδες 299-314.
Εκδόσεις Συμμετρία, 1991.
- Εμμ. Α. Γιακουμάκης
Τεχνολογία Λογισμικού: Κωδικοποίηση, έλεγχος και συντήρηση λογισμικού.
σελίδες 179-220.
Εκδόσεις Α. Σταμούλης, Αθήνα, Πειραιάς, 1993.
- Institute of Electrical and
Electronics Engineers, Inc., New York, NY, USA.
Software Maintenance, 1998.
IEEE Standard 1219-1998.
- M. M. Lehman.
Software engineering, the software process and their support.
Software Engineering Journal, 6(5):243–258, September 1991.
- Roger S. Pressman.
Software Engineering: A Practitioner's Approach, pages 526–543.
McGraw-Hill, 1987.
- Roger S. Pressman.
Software Engineering: A Practitioner's Approach, pages 843–867.
McGraw-Hill, fifth edition, 2000.
European Adaptation. Adapted by Darrel Ince.
- Ian Sommerville.
Software Engineering, pages 581–689.
Addison-Wesley, sixth edition, 2001.
Ασκήσεις
- Δώστε παραδείγματα για προγράμματα τύπου S, P, E.
- Κατηγοριοποίστε το είδος των αλλαγών που οδήγησαν
στα παρακάτω προϊόντα:
- Windows 95 Service Pack 2
- Windows CE
- Windows 98
- Windows NT 3.51
- Windows NT 3.51 for Alpha architecture
- Windows NT 3.51 Service Pack 2
- Windows XP
- Επανυλοποιήστε ένα δικό σας παλιό πρόγραμμα.
Κατηγοριοποιήστε τα είδη των αλλαγών που κάνατε.
- Προσπαθήστε να απαριθμήσετε αρθρώματα από τα οποία
πιθανώς αποτελείται το πρόγραμμα Microsoft Word.