* επικαλυπτόμενες δραστηριότητες: Οι διαφορετικές κατηγορίες συντήρησης (διορθωτικά, προσαρμοστικά, τελειοποιητικά, προληπτικά) συχνά επικαλύπτονται και εμφανίζονται ταυτόχρονα. Μια ενιαία αλλαγή μπορεί να αντιμετωπίσει ένα σφάλμα (διορθωτικό), να βελτιώσει την απόδοση (τελειοποιητική) και να προσαρμοστεί σε ένα νέο λειτουργικό σύστημα (προσαρμοστικό) ταυτόχρονα. Αυτό καθιστά δύσκολο να κατηγοριοποιηθούν τακτοποιημένα την προσπάθεια.
* υποκειμενικότητα στην ταξινόμηση: Η ταξινόμηση των δραστηριοτήτων συντήρησης μπορεί να είναι υποκειμενική. Αυτό που ένας προγραμματιστής θεωρεί μια βελτίωση της απόδοσης, ένας άλλος μπορεί να δει ως απλά να διορθώσει μια συμφόρηση. Δεν υπάρχει ενιαίος, καθολικά αποδεκτός ορισμός για κάθε κατηγορία, που να οδηγεί σε ασυνέπειες στην ταξινόμηση.
* Έλλειψη σαφούς τεκμηρίωσης: Οι εργασίες συντήρησης δεν είναι πάντοτε τεκμηριωμένες με σαφείς λόγους και ταξινομήσεις. Αυτό καθιστά δύσκολη την αναδρομική ανάλυση της φύσης των προσπαθειών συντήρησης του παρελθόντος. Μια απλή καταχώρηση "σταθερού σφάλματος" σε ένα αρχείο καταγραφής δεν αποκαλύπτει αν η επιδιόρθωση ήταν ένα γρήγορο έμπλαστρο ή μια βαθιά κατάδυση στην αρχιτεκτονική του συστήματος.
* Εξέλιξη του λογισμικού: Καθώς το λογισμικό εξελίσσεται, ο αρχικός σκοπός ενός στοιχείου ή μιας μονάδας μπορεί να αλλάξει με την πάροδο του χρόνου. Αυτό που θεωρήθηκε αρχικά μια διορθωτική λύση θα μπορούσε αργότερα να γίνει το θεμέλιο για ένα νέο χαρακτηριστικό, θολώνοντας τις γραμμές μεταξύ διορθωτικής και τελειοπτικής συντήρησης.
* αλληλεξάρτηση των μονάδων: Μια αλλαγή σε ένα μέρος του λογισμικού μπορεί να έχει απροσδόκητες συνέπειες σε άλλα μέρη, απαιτώντας περαιτέρω αλλαγές που ενδέχεται να εμπίπτουν σε διαφορετικές κατηγορίες συντήρησης. Η ανίχνευση του αρχικού λόγου για μια εργασία συντήρησης γίνεται όλο και πιο περίπλοκη.
* Χρόνος και πίεση: Οι προγραμματιστές υπό πίεση για να παρέχουν γρήγορα διορθώσεις ενδέχεται να μην αφιερώσουν χρόνο για να ταξινομήσουν με ακρίβεια το έργο τους, δίνοντας προτεραιότητα στην σκοπιμότητα σχετικά με την σχολαστική κατηγοριοποίηση.
Στην ουσία, η συντήρηση του λογισμικού είναι σπάνια μια τακτοποιημένη, διαχωρισμένη διαδικασία. Η ρευστότητα του κύκλου ζωής της ανάπτυξης λογισμικού και η πολυπλοκότητα των μεγάλων συστημάτων καθιστούν σημαντική πρόκληση ακριβής κατηγοριοποίηση. Αντί για άκαμπτες ταξινομήσεις, είναι συχνά πιο πρακτικό να εξετάσουμε ένα φάσμα δραστηριοτήτων συντήρησης και όχι σε διακριτές κατηγορίες.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα