ΜΗΧΑΝΙΚΗ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ
ΘΕΩΡΙΑ
2: Ανάλυση Απαιτήσεων
- Απαιτήσεις (Requirements):
- Οι απαιτήσεις είναι συμπεριφορές που πρέπει να έχει ή περιορισμοί που πρέπει να ικανοποιεί το τελικό προϊόν μίας διεργασίας ανάπτυξης λογισμικού.
- Οι απαιτήσεις καθορίζονται με βάση τις επιθυμίες του πελάτη ο οποίος έχει παραγγείλει το λογισμικό, καθώς και τις προβλεπόμενες ανάγκες των χρηστών του εν λόγω λογισμικού.
- Δεν αποτελούν λύσεις και δεν προσδιορίζουν το πώς θα ικανοποιηθούν σχεδιαστικά.
- Καθορισμός Απαιτήσεων:
- Οι απαιτήσεις καθορίζονται στην πρώτη φάση της ανάπτυξης ενός έργου λογισμικού από αναλυτές απαιτήσεων.
- Ο καθορισμός των απαιτήσεων γίνεται σε συνεργασία με τον πελάτη, ο οποίος είναι πολύ πιθανό να μην έχει τεχνικές γνώσεις και πλήρη επίγνωση του προβλήματος που το λογισμικό καλείται να λύσει.
- Ως αποτέλεσμα οι απαιτήσεις μπορεί να είναι ασαφείς, ατελείς ή αντιφατικές· αυτά τα προβλήματα πρέπει να επιλυθούν πριν τερματιστεί ο καθορισμός των απαιτήσεων.
- Από τον καθορισμό απαιτήσεων προκύπτουν δύο έγγραφα:
- Έγγραφο Ορισμού Απαιτήσεων: Κωδικοποιεί με απλή γλώσσα και χωρίς περιττές λεπτομέρειες τις απαιτήσεις του αναπτυσσόμενου συστήματος λογισμικού. Απευθύνεται στον πελάτη και στους δυνητικούς χρήστες του τελικού προϊόντος.
- Έγγραφο Προδιαγραφής Απαιτήσεων: Περιλαμβάνει τα ίδια, αλλά τα γράφει με πιο λεπτομερειακό και τεχνικό τρόπο. Απευθύνεται στην ομάδα η οποία θα εκτελέσει την επόμενη φάση στη διεργασία ανάπτυξης (συνήθως τους σχεδιαστές του λογισμικού).
- Τύποι απαιτήσεων:
- Λειτουργικές Απαιτήσεις: Περιγράφουν τι λειτουργίες πρέπει να εκτελεί το λογισμικό και ποιες ανάγκες των χρηστών πρέπει να εξυπηρετεί.
- Μη Λειτουργικές Απαιτήσεις: Περιγράφουν ποιους περιορισμούς ποιότητας πρέπει να ικανοποιεί το λογισμικό. Για παράδειγμα:
- Μέγιστος χρόνος απόκρισης
- Ελάχιστο και μέγιστο χρονικό διάστημα λειτουργίας χωρίς εμφάνιση λάθους
- Ελάχιστο και μέγιστο πλήθος χρηστών που μπορούν να χειρίζονται το σύστημα ταυτοχρόνως
- Μέγιστο μέγεθος δεδομένων που μπορεί να χειριστεί το σύστημα
- Μέσος χρόνος εκμάθησης της χρήσης του λογισμικού από έναν νέο χρήστη
- Περιβαλλοντικοί Περιορισμοί: Περιγράφουν ποιους περιορισμούς επιβάλλει το περιβάλλον όπου θα εκτελείται το σύστημα λογισμικού. Για παράδειγμα:
- Ποια είναι η απαιτούμενη αντοχή του υλικού σε θερμοκρασίες, επίπεδα υγρασίας, διαταραχές της ηλεκτρικής τροφοδοσίας κλπ
- Τι άλλο υλικό, λογισμικό και υπολογιστικές υποδομές (π.χ. λειτουργικά συστήματα, δίκτυα υπολογιστών κλπ) απαιτούνται
- Ποια και τι τύπου είναι τα δεδομένα εισόδου και εξόδου του λογισμικού
- Περιορισμοί Διεργασίας Ανάπτυξης: Οι περιορισμοί αυτοί αφορούν τις επόμενες φάσεις του κύκλου ζωής του αναπτυσσόμενου λογισμικού (π.χ. αν απαιτείται η χρήση συγκεκριμένων, προϋπαρχόντων βιβλιοθηκών ή εργαλείων ανάπτυξης, αν απαιτείται η εφαρμογή συγκεκριμένων μόνο επιλογών σχεδίασης κλπ).
- Χαρακτηριστικά Απαιτήσεων:
- Όταν οι απαιτήσεις έχουν πλέον καθοριστεί με ακρίβεια, θα πρέπει να χαρακτηρίζονται ιδανικά από τις εξής ιδιότητες:
- Ορθότητα (έχουν καταγραφεί σωστά)
- Συνέπεια (δεν είναι αντιφατικές ή ασαφείς)
- Πληρότητα (περιγράφουν πλήρως ό,τι επιθυμεί ο πελάτης)
- Ελεγξιμότητα (είναι δυνατή η εφαρμογή ελέγχων σε ένα πρωτότυπο που να αποδεικνύουν αν αυτό ικανοποιεί τις απαιτήσεις: έχουμε και τις απαιτήσεις και τον κώδικα, και ελέγχουμε τον τελευταίο ως προς κάθε απαίτηση)
- Ανιχνευσιμότητα (για κάθε συστατικό και χαρακτηριστικό του τελικού προϊόντος ή ενός πρωτοτύπου, πρέπει με σαφήνεια να μπορούμε να ανιχνεύσουμε ποια απαίτηση καλύπτει, και άρα για ποιο λόγο υλοποιήθηκε: υποθέτουμε πως αγνοούμε τις αρχικές απαιτήσεις και τις αναζητούμε με βάση τον κώδικα)
- Πρωτότυπα:
- Κατά τη δεκαετία του 1990 καθιερώθηκε στη βιομηχανία λογισμικού η χρήση πρωτοτύπων στο εσωτερικό μίας διεργασίας ανάπτυξης, ούτως ώστε να ελέγχεται διαρκώς η ικανοποίηση των απαιτήσεων.
- Υπάρχουν δύο κύριοι τύποι πρωτοτύπων:
- Τα διερευνητικά πρωτότυπα (throwaway ή rapid prototypes), τα οποία επικυρώνονται ως προς τις απαιτήσεις και μας βοηθούν να βρούμε εναλλακτικές λύσεις, αλλά στη συνέχεια αποσύρονται τελείως για να κατασκευαστεί η πραγματική υλοποίηση του συστήματος από την αρχή. Τα διερευνητικά πρωτότυπα επιτρέπουν την πολύ γρήγορη επικύρωση σε πρώιμο στάδιο, αφού δεν μας ενδιαφέρει το πρωτότυπο να υλοποιηθεί με στιβαρότητα ή πληρότητα.
- Τα εξελικτικά πρωτότυπα (evolutionary prototypes), τα οποία χρησιμοποιούνται ως βάση για την περαιτέρω ανάπτυξη και βελτίωση του συστήματος σε μία νέα φάση υλοποίησης· αυτό γίνεται επαναληπτικά. Έτσι το τελικό ετοιμοπαράδοτο προϊόν είναι η τελική εκδοχή ενός διαρκώς εξελισσόμενου πρωτοτύπου. Η κατασκευή ενός εξελικτικού πρωτοτύπου απαιτεί περισσότερο χρόνο και χρήμα, αλλά βοηθά στην πληρέστερη υλοποίηση μεγάλου τμήματος του ζητούμενου λογισμικού στα πρώιμα στάδια της διεργασίας ανάπτυξης.
- Περιπτώσεις Χρήσης:
- Κατά τη δεκαετία του 1990 καθιερώθηκε στη βιομηχανία λογισμικού η χρήση περιπτώσεων χρήσης, δηλαδή σεναρίων τα οποία μοντελοποιούν τη συμπεριφορά του λογισμικού σε όλες τις δυνατές περιπτώσεις, όπως αυτή γίνεται αντιληπτή από τον εξωτερικό χρήστη. Έτσι μπορούν να περιγραφούν με τυποποιημένο και αναλυτικό τρόπο οι λειτουργικές απαιτήσεις.
- Οι περιπτώσεις χρήσης βασίζονται στη σχέση των χρηστών («actors») με τις επιμέρους λειτουργίες του λογισμικού.
- Περιγράφονται σημειολογικά με τα αντίστοιχα διαγράμματα της UML και με συνοδευτικό κείμενο.
- Επικύρωση και Επαλήθευση:
- Η επικύρωση αφορά τη διερεύνηση του κατά πόσον ένα πρωτότυπο ή το τελικό προϊόν ικανοποιούν τις πραγματικές απαιτήσεις του πελάτη.
- Η επαλήθευση αφορά τη διερεύνηση του κατά πόσον υπάρχει λογική συνέπεια μεταξύ του Εγγράφου Ορισμού Απαιτήσεων και του Εγγράφου Προδιαγραφής Απαιτήσεων.
- Πρόκειται για δύο στάδια της φάσης ελέγχου στον κύκλο ζωής του λογισμικού, τα οποία αφορούν τις απαιτήσεις.
- Όταν χρησιμοποιούνται πρωτότυπα, η επικύρωση και η επαλήθευση κάθε πρωτοτύπου γίνονται ξεχωριστά από τη συνολική επικύρωση και επαλήθευση της τελικής υλοποίησης στη φάση ελέγχου.
- Για να γίνει η επαλήθευση μπορούμε να εξετάσουμε αν υπάρχει πλήρης αντιστοιχία μεταξύ κάθε απαίτησης και κάθε προδιαγραφής. Αυτό είναι ιδιαίτερα σημαντικό όταν επαναχρησιμοποιούνται παλιά Έγγραφα Ορισμού και Προδιαγραφής Απαιτήσεων για νέο λογισμικό, το οποίο όμως έχει κάποιες διαφοροποιήσεις.
- Για να γίνει η επικύρωση πρέπει
- Να διερευνηθεί η σχέση μεταξύ κάθε ορισμένης απαίτησης και της σκοπιμότητας που πρέπει να εξυπηρετεί συνολικά το λογισμικό
- Να εξεταστεί το λογισμικό ως προς τις επιμέρους λειτουργίες του
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου
Αφήστε το σχόλιό σας για την τρέχουσα ανάρτηση: