Απαιτήσεις
Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr
Είδη απαιτήσεων
Προϊόν / διεργασία
Απαιτήσεις από το προϊόν
Επίπεδα εμβάθυνσης
Οδηγοί
Οι προδιαγραφές οδηγούνται κατά κύριο λόγο από:
-  Επιχειρηματικούς στόχους (υψηλού επιπέδου)
 -  Περιβάλλον λειτουργίας
 -  Οργανωτικό περιβάλλον
 
Στη διαμόρφωση των προδιαγραφών συμμετέχουν οι
παρακάτω εταίροι (stakeholders):
-  Χρήστες
 -  Πελάτες
 -  Ρυθμιστικές αρχές
 -  Μηχανικοί ανάπτυξης
 
Στοιχεία μπορούν ακόμα να προέλθουν και από άλλες πηγές όπως μελέτες αγοράς.
Ο κύκλος ζωής των απαιτήσεων
-  Εκμαίευση (elicitation)
 -  Ανάλυση και διαπραγμάτευση (analysis and negotiation)
 -  Καθορισμός (specification)
 -  Επικύρωση (validation)
 
Τεχνικές εκμαίευσης
-  Συνεντεύξεις
 -  Σενάρια
 -  Κατασκευή αρχετύπων
 -  Δομημένες συναντήσεις
	
	-  Ουδέτερος χώρος
	
 -  Κανόνες προετοιμασίας και συμμετοχής
	
 -  Πλήρης άλλα και ανοιχτή ημερήσια διάταξη
	
 -  Οργανωτής
	
 -  Μηχανισμός καταγραφής απαιτήσεων (χαρτί, υπολογιστής, κάρτες)
	
 
 -  Παρατήρηση
 -  Υπάρχουσα εσωτερική και εξωτερική τεκμηρίωση
 
 
Ανάλυση απαιτήσεων
Η ανάλυση των απαιτήσεων γίνεται με την περιγραφή του 
Για την περιγραφή του ιδεατού μοντέλου χρησιμοποιούνται τα παρακάτω διαγράμματα της UML:
Για την περιγραφή του μοντέλου απαιτήσεων χρησιμοποιούνται τα παρακάτω διαγράμματα της UML:
Καθορισμός λειτουργικών απαιτήσεων
Περιγράφουν τις δυνατότητες (capabilities)
του συστήματος.
Πρέπει να είναι:
 
Καθορισμός μη λειτουργικών απαιτήσεων
Απαιτήσεις από το προϊόν
Απαιτήσεις από τη διεργασία ανάπτυξης
Εξωτερικές απαιτήσεις
Μετρικές μη λειτουργικών απαιτήσεων
-  Χρόνος
	
	-  Συναλλαγές / sec
	
 -  Χρόνος απόκρισης
	
 -  Χρόνος περάτωσης μιας λειτουργίας
	
 
 -  Χώρος
	
	-  Κεντρική μνήμη
	
 -  Περιφερειακή μνήμη
	
 
 -  Ευχρηστία
	
	-  Χρόνος εκπαίδευσης
	
 -  Αριθμός επιλογών
	
 -  Αριθμός κινήσεων ποντικιού
	
 
 -  Αξιοπιστία
	
	-  Μέσος χρόνος αποτυχίας
	
 -  Πιθανότητα μη διαθεσιμότητας
	
 -  Ρυθμός εμφάνισης αστοχιών
	
 -  Διαθεσιμότητα
	
 
 -  Στιβαρότητα (robustness)
	
	-  Χρόνος επανεκκίνησης
	
 -  Ποσοστό συμβάντων που οδηγούν σε καταστροφική αστοχία
	
 -  Πιθανότητα καταστροφής δεδομένων μετά από αστοχία
	
 
 -  Μεταφερσιμότητα
	
	-  Ποσοστό μη μεταφέρσιμου κώδικα 
	
 -  Αριθμός διαφορετικών συστημάτων που υποστηρίζουν το λογισμικό
	
 
 
Επικύρωση απαιτήσεων
Οι παραπάνω έλεγχοι μπορούν να γίνουν με:
-  Επιθεωρήσεις απαιτήσεων
 -  Δημιουργία αρχετύπων
 -  Δημιουργία ελέγχων του λογισμικού (test cases)
 -  Αυτόματο έλεγχο συνέπειας με τη χρήση εργαλείων
 
Διαχείριση απαιτήσεων
Η διαχείριση των προδιαγραφών περιλαμβάνει τα παρακάτω στοιχεία:
Τα στοιχεία ιχνηλασιμότητας που πρέπει να φυλάσσονται είναι τα παρακάτω:
-  Πηγές απαιτήσεων
 -  Σύνδεση μεταξύ απαιτήσεων
 -  Σύνδεση απαιτήσεων και σχεδίου του λογισμικού
 
Το έγγραφο προδιαγραφής απαιτήσεων συστήματος
Το έγγραφο προδιαγραφών απαιτήσεων από το σύστημα (system requirements document)
περιέχει τα παρακάτω στοιχεία (Σκορδαλάκης 1991, σ. 54):
  -  Ορισμός του προβλήματος
  
 -  Αιτιολόγηση του προβλήματος
  
 -  Σκοπός του συστήματος και του έργου
  
 -  Περιορισμοί  στο σύστημα και στο έργο
  
 -  Λειτουργίες ανά συνιστώσα του προβλήματος
  
     -  Υλικό
     
 -  Λογισμικό
     
 -  'Aνθρωποι
  
 
   -  Χαρακτηριστικά χρηστών
  
 -  Περιβάλλοντα 
  
     -  ανάπτυξης, 
     
 -  λειτουργίας και 
     
 -  συντήρησης
  
 
   -  Στρατηγική λύσης του προβλήματος
  
 -  Προτεραιότητες στα χαρακτηριστικά του συστήματος
  
 -  Κριτήρια αποδοχής του συστήματος
  
 -  Πηγές πληροφοριών
  
 -  Λεξιλόγιο
 
Το έγγραφο προδιαγραφής απαιτήσεων λογισμικού
Το έγγραφο προδιαγραφών απαιτήσεων από το λογισμικό (software requirements document)
περιέχει τα παρακάτω στοιχεία (Σκορδαλάκης 1991, σ. 63):
  -  Εισαγωγή
  
    -  Σκοπός
    
 -  Έκταση
    
 -  Ορισμοί, ακρονυμίες και συντομογραφίες
    
 -  Αναφορές
    
 -  Γενική εικόνα
  
 
   -  Γενική περιγραφή
  
    -  Προοπτική του προϊόντος
    
 -  Λειτουργίες
    
 -  Χαρακτηριστικά των χρηστών
    
 -  Γενικοί περιορισμοί
    
 -  Παραδοχές και εξαρτήσεις
  
 
   -  Ειδικές απαιτήσεις
  
    -  Λειτουργικές απαιτήσεις
	  
	    -  Λειτουργική απαίτηση 1
	    
	      -  Εισαγωγή
	      
 -  Είσοδοι
	      
 -  Επεξεργασία
	      
 -  Έξοδοι
	    
 
	     -  Λειτουργική απαίτηση 1
	    
 -  ...
	    
 -  Λειτουργική απαίτηση ν
	  
 
     -  Απαιτήσεις εξωτερικών διαπροσωπειών
	  
	    -  Διαπροσωπείες χρήστη (user interfaces)
	    
 -  Διαπροσωπείες υλικού (hardware interfaces)
	    
 -  Διαπροσωπείες λογισμικού (software interfaces)
	    
 -  Διαπροσωπείες επικοινωνιών (communication interfaces)
	  
 
     -  Απαιτήσεις επίδοσης
    
 -  Περιορισμοί σχεδίασης
	  
	    -  Συμμόρφωση με τα πρότυπα
	    
 -  Περιορισμοί από το υλικό
	  
 
     -  Ιδιώματα
	  
	    -  Διαθεσιμότητα
	    
 -  Ασφάλεια
	    
 -  Συντηρισιμότητα
	    
 -  Μεταφερσιμότητα
	  
 
     -  'Αλλες απαιτήσεις
	  
	    -  Βάση δεδομένων
	    
 -  Τρόποι λειτουργίας
	    
 -  Προσαρμογή στο χώρο εγκατάστασης
          
 
    
    -  Παραρτήματα
   
 -  Ευρετήριο
 
Συχνά λάθη
Συχνά η περιγραφή των απαιτήσεων γίνεται σε φυσική γλώσσα.
Κατά την περιγραφή των απαιτήσεων πρέπει να αποφεύγονται τα
παρακάτω συχνά λάθη:
-  Μακροπερίοδος λόγος με παρενθετικές προτάσεις
 -  Χρήση διφορούμενων όρων
 -  Παρουσίαση πολλαπλών απαιτήσεων ως μια απαίτηση
 -  Ασυνέπεια στη χρήση όρων, χρήση διαφορετικών όρων για την ίδια έννοια
 -  Σύγχυση λειτουργικών και μη λειτουργικών απαιτήσεων
 
Βιβλιογραφία
- Εμμανουήλ Σκορδαλάκης.
Εισαγωγή στην Τεχνολογία Λογισμικού, σελίδες 49-78.
Εκδόσεις Συμμετρία, 1991.
 - Εμμ. Α. Γιακουμάκης
Τεχνολογία Λογισμικού: Απαιτήσεις Λογισμικού, σχεδίαση λογισμικού,
 σελίδες 39-75, 197-234.
Εκδόσεις Α. Σταμούλης, Αθήνα, Πειραιάς, 1994.
 
- John Daniels.
Modeling with a sense of purpose.
IEEE Software, 19(1):8–11, January/February 2002.
 
- Alan M. Davis.
201
  Principles of Software Development, pages 47–70.
McGraw-Hill, 1995.
 
- Institute of Electrical and
  Electronics Engineers, Inc., New York, NY, USA.
IEEE Guide for Developing System Requirements Specifications (including
  IEEE 1233a), 1998.
IEEE Standard 1233-1998.
 
- Institute of Electrical and
  Electronics Engineers, Inc., New York, NY, USA.
IEEE Recommended Practice for Software Requirements
  Specifications, 1998.
IEEE Standard 830-1998.
 
- Michael Jackson.
Software Requirements & Specifications: a Lexicon of Practice, Principles and
  Prejudices.
Addison-Wesley, 1995.
 
- Roger S. Pressman.
Software Engineering: A Practitioner's Approach, pages 251–260.
McGraw-Hill, fifth edition, 2000.
European Adaptation. Adapted by Darrel Ince.
 
- Ian Sommerville.
Software Engineering, pages 97–145.
Addison-Wesley, sixth edition, 2001.
 
Ασκήσεις
- 
Καταγράψτε το έγγραφο προσδιορισμού απαιτήσεων λογισμικού για την
υλοποίηση ενός προγράμματος επεξεργασίας κειμένου συμβατού με το
πρόγραμμα Microsoft Word.
Καλύψτε το πλήρες πλάτος του εγγράφου χωρίς να επεκταθείτε σε λεπτομέρειες.
 -  Εξηγήστε ποιοι εταίροι θα πρέπει να συμμετέχουν στη διαδικασία συλλογής
απαιτήσεων για το πληροφοριακό σύστημα του πανεπιστημίου.
 -  Απαριθμίστε συστήματα όπου οι απαιτήσεις τους επηρεάζονται σημαντικά
από πολιτικούς και κοινωνικούς παράγοντες.