Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων Αρχιτεκτονικός Σχεδιασμός Λεπτομερής Σχεδιασμός Κωδικοποίηση Έλεγχος Παράδοση Συστήματος Λειτουργία - Συντήρηση Ποιο το πρόβλημα ? Ποια η λύση ? Πώς θα υλοποιηθεί η λύση ? Κώδικας ??? Επιλύθηκε το πρόβλημα? Αξιοποιεί ο πελάτης τη λύση ? Παρουσιάζονται προβλήματα ?
Συστηματική προσέγγιση για τον καθορισμό σε ένα σύστημα των λειτουργιών που πρέπει να εκτελεί των περιορισμών στους οποίους υπόκειται !!! : Καθορίζουμε τι πρέπει να κάνει το σύστημα όχι τον τρόπο με τον οποίο θα το κάνει Προσδιορισμός Απαιτήσεων
ΠΑΡΑΔΕΙΓΜΑ (Λογισμικό Αυτοκινήτου) Λειτουργικές Απαιτήσεις: (Αλληλεπίδραση συστήματος – περιβάλλοντος) Υπολογισμός μέσης κατανάλωσης καυσίμου Υπολογισμός μέση ωριαίας ταχύτητας Υπολογισμός βέλτιστης ταχύτητας Περιορισμοί : Υλοποίηση σε γλώσσα C Απόκριση σε 5 secs Μνήμη < 100 Kb Προσδιορισμός Απαιτήσεων
1994: Μελέτη 350 εταιριών = 8000 έργα λογισμικού 31% των έργων ακυρώθηκαν πριν από την ολοκλήρωση 9% των έργων παραδόθηκαν εγκαίρως και εντός προϋπολογισμού από μεγάλες εταιρείες 16% των έργων παραδόθηκαν εγκαίρως και εντός προϋπολογισμού από μικρές εταιρείες Αιτίες: 1. Ελλιπείς απαιτήσεις (13.1 %) 2. Μη συμμετοχή των χρηστών (12.4 %) 3. Έλλειψη πόρων (10.6 %) 4. Εξωπραγματικές απαιτήσεις (9.9 %) 5. Αλλαγές στις απαιτήσεις (8.7 %) 6. Ανεπαρκής προγραμματισμός (8.1 %) 7. Το σύστημα δεν χρειαζόταν πλέον (7.5 %) Είναι οι απαιτήσεις σημαντικές ? Pfleeger
Διατύπωση Προβλήματος Εταιρεία Πελάτης (π.χ. ΟΤΕ) Εταιρείες Παραγωγής Λογισμικού (Ericsson, Siemens, Intracom, NOKIA) Οι απαιτήσεις καθορίζονται σε χαμηλό επίπεδο ανάλυσης, Φυσική γλώσσα
Ανάλυση Απαιτήσεων Αρχική Περιγραφή Αναλυτής Συστημάτων Έγγραφο Περιγραφής Απαιτήσεων από το Σύστημα (ΕΠΑΣ)
Ανάλυση Απαιτήσεων ΙΙ Τι θα κάνει το σύστημα Κατανομή λειτουργιών σε H/W, S/W, Users Περιορισμοί στην ανάπτυξη και λειτουργία Για να καθορίσουμε τα ανωτέρω : Εντοπισμός κύριων λειτουργιών – απαιτήσεων επίδοσης Εξέταση υπάρχοντος υλικού – λογισμικού Πηγές και ροή πληροφορίας Διαδικασίες αλληλεπίδρασης συστήματος - χρηστών
Τύποι απαιτήσεων Απαιτήσεις Φυσικό περιβάλλονΔιεπαφές Χρήστες Λειτουργι- κότητα Ποιότητα Ασφάλεια Πόροι Δεδομένα Τεκμηρίωση
Επικύρωση απαιτήσεων Είναι οι απαιτήσεις Σωστές ? (Αναφέρονται σε αυτά που θέλουμε ?) Συνεπείς (Ανυπαρξία αντιφάσεων) Πλήρεις (Περιγράφονται όλες οι δυνατές καταστάσεις ?) Πραγματοποιήσιμες ? Ουσιαστικές ? (Τις χρειάζεται ο πελάτης ?) Επαληθεύσιμες ? (υπάρχουν έλεγχοι που να δείχνουν ότι καλύψαμε τις απαιτήσεις ?) Ιχνηλατήσιμες ? (ποιο τμήμα του συστήματος σχετίζεται?)
Επικύρωση απαιτήσεων Απαίτηση: Το σύστημα πρέπει να εξασφαλίζει απόκριση εντός πραγματικού χρόνου για τις κύριες λειτουργίες. Σε ποιες κύριες λειτουργίες αναφέρεται ? Τι σημαίνει πραγματικού χρόνου ? Αν μία κύρια λειτουργία είναι σε μηνιαία βάση, γιατί πρέπει να εκτελείται σε πραγματικό χρόνο ?
Level of abstraction Εταιρεία Πελάτης (π.χ. ΟΤΕ) Εταιρείες Παραγωγής Λογισμικού (Ericsson, Siemens, Intracom, NOKIA) Οι απαιτήσεις καθορίζονται σε υψηλό επίπεδο ανάλυσης,
Έγγραφο Ορισμού Απαιτήσεων (Requirements Definition) (φυσική γλώσσα + διαγράμματα) Μπορεί να το γράψει και ο πελάτης Έγγραφο Προσδιορισμού Απαιτήσεων (Requirements Specification) Ακριβές και δομημένο κείμενο αναπτύσσεται από τον κατασκευαστή συνοδεύει συχνά το συμβόλαιο μπορεί να συνοδεύεται από περιγραφή λογισμικού Documentation
Το λογισμικό πρέπει να παρέχει τη δυνατότητα προβολής και πρόσβασης εξωτερικών αρχείων που δημιουργούνται από άλλα εργαλεία -Ο- Πελάτης Ορισμός Απαιτήσεων (Παράδειγμα)
1.1 Ο χρήστης θα πρέπει να μπορεί να ορίζει τους τύπους των εξωτερικών αρχείων 1.2 Κάθε εξωτερικό αρχείο μπορεί να συνδέεται με κάποια εφαρμογή που να το χρησιμοποιεί 1.3 Κάθε εξωτερικό αρχείο θα είναι ορατό σαν εικονίδιο στην οθόνη του χρήστη 1.4 Ο χρήστης θα πρέπει να έχει τη δυνατότητα να καθορίσει τον τύπο του εικονιδίου για κάθε αρχείο 1.5 Όταν ο χρήστης επιλέξει ένα εικονίδιο θα πρέπει να ενεργοποιείται η συνδεδεμένη με αυτό το αρχείο εφαρμογή Προσδιορισμός Απαιτήσεων –Παράδ.
Readers Ορισμός Απαιτήσεων Managerial level Προσδιορισμός Απαιτήσεων Technical level
Πρακτικά, είναι αδύνατο να καθορίσουμε πλήρως και με ακρίβεια τις απαιτήσεις ενός συστήματος: Μεγάλη Πολυπλοκότητα Απαιτήσεις εμφανίζονται κατά την ανάπτυξη του λογισμικού Πολλοί διαφορετικοί χρήστες με διαφορετική οπτική γωνία ο καθένας Προβλήματα
Μέθοδοι Προσδιορισμού Απαιτήσεων Άτυπες Ημιτυπικές Τυπικές Λειτουργικές προδιαγραφές (operational specifications): Περιγραφή του συστήματος αναφέροντας την επιθυμητή συμπεριφορά Περιγραφικές προδιαγραφές (descriptive specifications): Περιγραφή του συστήματος αναφέροντας τις επιθυμητές ιδιότητες
Μέθοδοι Προσδιορισμού Απαιτήσεων 1.Επιλέξτε δύο σημεία P1, P2 σε ένα επίπεδο 2.Επιλέξτε ένα νήμα συγκεκριμένου μήκους και προσαρτήστε τα άκρα του στα P1 και P2 3.Τοποθετήστε μία γραφίδα επάνω στο νήμα 4.Μετακινήστε τη γραφίδα περιστροφικά σε επαφή με το νήμα, κρατώντας το νήμα τεντωμένο μέχρις ότου φθάσετε στο αρχικό σημείο Λειτουργική Προδιαγραφή μιας έλλειψης
Μέθοδοι Προσδιορισμού Απαιτήσεων
Περιγραφική Προδιαγραφή μιας έλλειψης: α x 2 + b y 2 + c = 0
Μέθοδοι Προσδιορισμού Απαιτήσεων Έστω a ένας πίνακας n στοιχείων. Το αποτέλεσμα της ταξινόμησης του a είναι ένας πίνακας b με n στοιχεία ο οποίος μπορεί να κατασκευαστεί ως εξής: Εύρεση του μικρότερου στοιχείου του a και τοποθέτησή του στην πρώτη κενή θέση του b Απομάκρυνση του στοιχείου που βρέθηκε στο προηγούμενο βήμα από τον a. Επανάληψη των 1 και 2 μέχρις ότου εξαντληθούν τα στοιχεία του a Ghezzi
Μέθοδοι Προσδιορισμού Απαιτήσεων "Το αποτέλεσμα της ταξινόμησης ενός πίνακα a είναι ένας πίνακας b ο οποίος αποτελεί μετάθεση (permutation) του a και είναι ταξινομημένος" Ghezzi
Χειρογραφικές Μέθοδοι - HIPO ΔΙΑΓΡΑΜΜΑΤΑ HIPO (HIERARCHY – INPUT – PROCESS – OUTPUT) 1. Διάγραμμα Η συστήματος (Ιεραρχία Λειτουργιών) Σύστημα Επεξεργασίας Κειμένου 1 Τροποποίηση Κειμένου 1.1 Δημιουργία Κειμένου 1.2 Εκτύπωση Κειμένου 1.3 Αρχειοθέτηση Κειμένου 1.4 Έξοδος 1.5 Διαγραφή Κειμένου Αντιγραφή Κειμένου Κατάλογος Κειμένων Γιακουμάκης
HIPO - II ΔΙΑΓΡΑΜΜΑΤΑ HIPO (HIERARCHY – INPUT – PROCESS – OUTPUT) 1. Διαγράμματα Εισόδου – Επεξεργασίας - Εξόδου Από τερματικό : File name Password Printer No. Print options Από βιβλιοθήκη : Αρχείο κειμένου 1.3 Εκτύπωση Κειμένου INPUT If passwd correct && file exists send file to prnt Else print message PROCESS Εκτύπωση αρχείου Μηνύματα λάθους OUTPUT
HIPO - III ΔΙΑΓΡΑΜΜΑΤΑ HIPO MEIONEKTHMATA Περιγράφουν μόνο τις λειτουργικές απαιτήσεις (Δεν διαθέτουν μηχανισμό χειρισμού περιορισμών) Δεν υπάρχουν μηχανισμοί ελέγχου (Επαλήθευση μόνο με προσεκτική μελέτη)