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