Υπάρχουν γενικά δύο τύποι απαιτήσεων: Απαιτήσεις συστήματος – Οι απαιτήσεις συστήματος μπορούν να ονομαστούν η διευρυμένη έκδοση των απαιτήσεων χρήστη. Οι απαιτήσεις συστήματος λειτουργούν ως το σημείο έναρξης για κάθε νέο σχεδιασμό συστήματος. Αυτές οι απαιτήσεις είναι μια λεπτομερής περιγραφή των απαιτήσεων χρήστη που πρέπει να ικανοποιεί το σύστημα. Απαιτήσεις χρήστη – Η απαίτηση χρήστη είναι ένας συνδυασμός λειτουργικών και μη λειτουργικών απαιτήσεων. Αυτές οι απαιτήσεις χρήστη πρέπει να σχεδιάζονται με τέτοιο τρόπο ώστε να είναι εύκολα κατανοητές από χρήστες που δεν διαθέτουν κανενός είδους τεχνικές γνώσεις. Ως εκ τούτου, πρέπει να γράφονται σε φυσική γλώσσα χρησιμοποιώντας απλούς πίνακες, φόρμες και διαγράμματα. Επίσης, βεβαιωθείτε ότι το έγγραφο δεν περιέχει λεπτομέρειες σχετικά με το σχεδιασμό του συστήματος, το λογισμικό ή τις επίσημες σημειώσεις.