Στη βιβλιογραφία υπάρχει μία πληθώρα τεχνικών για την προτεραιοποίηση - ιεράρχηση των απαιτήσεων λογισμικού (software requirements prioritization). Στην πράξη όμως, κατά την ιεράρχηση των απαιτήσεων, η τεχνική που εφαρμόζεται τις περισσότερες φορές είναι οι συμμετέχοντες (stakeholders), σε μία διαδικασία προτεραιοποίησης ενός συνόλου απαιτήσεων από ένα λογισμικό, να καθορίζουν μία σειρά-διάταξη αυτών (requirements ranking), ανάλογα με την επίδοσή τους ως προς κάθε κριτήριο προτεραιοποίησης (prioritization criterion). Ωστόσο, σε μία διάταξη απαιτήσεων πολλές απαιτήσεις μπορεί να λάβουν από τους συμμετέχοντες την ίδια σειρά ως προς ένα κριτήριο προτεραιοποίησης, πχ. γιατί μπορεί να αναφέρονται στο ίδιο τμήμα (module) του λογισμικού ή γιατί οι συμμετέχοντες (stakeholders) να έχουν αβεβαιότητα σχετικά με τις διαφορές τους ως προς το θεωρούμενο κριτήριο προτεραιοποίησης. Επιπρόσθετα, είναι δυνατό να υπάρχουν απαιτήσεις που δεν τίθενται σε μία συγκεκριμένη σειρά από τους συμμετέχοντες στη διαδικασία της ιεράρχησης των απαιτήσεων, διότι αυτοί μπορεί να έχουν μερική ή πλήρη αβεβαιότητα για την επίδοση αυτών των απαιτήσεων και τη σειρά τους, αναφορικά με το συγκεκριμένο κριτήριο που θεωρείται για τη διάταξή τους. Σκοπός της συγκεκριμένης εργασίας είναι να παρουσιάσει αρχικά τις βασικές έννοιες της μηχανικής των απαιτήσεων (requirements engineering) και, συγκεκριμένα, της διαδικασίας της ιεράρχησης απαιτήσεων λογισμικού (requirements prioritization), να παρουσιάσει κριτικά και να κατατάξει σε κατηγορίες τις πιο διαδεδομένες τεχνικές που έχουν προταθεί στη βιβλιογραφία για την ιεράρχηση των απαιτήσεων, να περιγράψει πρακτικά προβλήματα που εμφανίζονται κατά την εφαρμογή των τεχνικών, κυρίως αναφορικά με τον τρόπο που λαμβάνουν υπόψη παράγοντες αβεβαιότητας και υποκειμενικής κρίσης των συμμετεχόντων, καθώς και να παρουσιάσει μία μέθοδο που θα μπορούσε να εφαρμοστεί για την αντιμετώπιση αυτών των προβλημάτων. Στο τρίτο κεφάλαιο, παρουσιάζουμε μία μέθοδο η οποία συμπληρώνει και επεκτείνει απλές μεθόδους διάταξης των απαιτήσεων (ad hoc prioritization methods) καθώς και μεθόδους που χρησιμοποιούν κλίμακες διάταξης (ordinal scale prioritization methods). Επίσης, η παρουσιαζόμενη μέθοδος διαχειρίζεται την ασάφεια και την υποκειμενικότητα των αξιολογήσεων των συμμετεχόντων σε μία διαδικασία προτεραιοποίησης απαιτήσεων. Στη μέθοδο αυτή, αναπαριστούμε κάθε διάταξη απαιτήσεων ως προς ένα κριτήριο προτεραιοποίησης χρησιμοποιώντας το μοντέλο των Διαισθητικά Ασαφών Συνόλων (Intuitionistic Fuzzy Sets - IFSs) και προσδιορίζουμε αντικειμενικά βάρη (objective weights), που στη βιβλιογραφία καλούνται ως "βάρη εντροπίας" (entropy weights), για τα κριτήρια αξιολόγησης των απαιτήσεων. Όσο μεγαλύτερη είναι η αβεβαιότητα και η ασάφεια σε μία διάταξη απαιτήσεων προς υλοποίηση, με βάση ένα επιλεγμένο κριτήριο, τόσο μικρότερο θα είναι το βάρος αυτού του κριτηρίου (και γενικότερα το βάρος της συγκεκριμένης διάταξης) κατά τον υπολογισμό της τελικής λίστας προτεραιοτήτων για τις υποψήφιες απαιτήσεις. Στο τέταρτο κεφάλαιο, παρουσιάζουμε μία μελέτη περίπτωσης όπου δείχνουμε ότι, η μέθοδος διαχείρισης της αβεβαιότητας μπορεί να είναι κατάλληλη ώστε να εφαρμοστεί για την ιεράρχηση απαιτήσεων λογισμικού σε έργα που ακολουθούν ευέλικτες διαδικασίες ανάπτυξης (agile software development processes). Για την αξιολόγησή της, εφαρμόζουμε την μέθοδο σε ένα πραγματικό έργο λογισμικού, όπου παρατηρούμε τα αποτελέσματά της αναφορικά με τον χρόνο που απαιτεί η υλοποίησής της, την ακρίβεια των αποτελεσμάτων της και την ευκολία επαναχρησιμοποίησής της σε διάφορα στάδια του λογισμικού όπου απαιτείται να γίνει ιεράρχηση των απαιτήσεων εκ νέου.
Στο τελευταίο κεφάλαιο, παρουσιάζουμε συμπληρωματικά μία μελέτη περίπτωσης στην οποία περιλαμβάνονται μεγαλύτεροι παράγοντες αβεβαιότητας και αποδεικνύουμε, εφαρμόζοντας μία ανάλυση ευαισθησίας, ότι τα αποτελέσματά της μπορούν να θεωρηθούν αξιόπιστα. Η τελική ιεραρχημένη λίστα των χαρακτηριστικών (features) ενός συστήματος, προκύπτει με την εφαρμογή μίας μεθόδου, η οποία υπολογίζει μία συναθροιστική προτεραιότητα για κάθε χαρακτηριστικό.
This graduate thesis presents a novel requirements prioritization (RP) method which complements ad-hoc ranking approaches and ordinal scale-based RP techniques with capabilities of handing the vague and subjective perceptions that stakeholders have when they rank candidate requirements. To consider the indeterminacy and the lack of knowledge of stakeholders, the suggested method represents requirements’ rankings with Intuitionistic Fuzzy Sets. The final priority list of requirements with respect to the prioritization criteria is derived by applying a multi-criteria decision method that is based on objective criteria weights. The larger the hesitation associated with a requirements ranking according to a chosen criterion, the smaller would be the weight of this criterion for the calculation of the final priority list. Through two case studies from the real world and a sensitivity analysis, we demonstrate the validation of the method for prioritizing software features in a software release planning process.
Διαχείριση της αβεβαιότητας κατά την προτεραιοποίηση των απαιτήσεων λογισμικού Περιγραφή: 95399_ΤΣΩΝΗ_ΕΥΤΥΧΙΑ.zip (zip) Άδεια: Attribution-NonCommercial-NoDerivatives 4.0 Διεθνές Πληροφορίες: Κυρίως σώμα πτυχιακής Μέγεθος: 2.3 MB
Διαχείριση της αβεβαιότητας κατά την προτεραιοποίηση των απαιτήσεων λογισμικού - Identifier: 72445
Internal display of the 72445 entity interconnections (Node labels correspond to identifiers)