Ανάλυση

Για την κατανόηση, τον προσδιορισμό και την έκφραση των απαιτήσεων από το λογισμικό είναι απαραίτητο ένα ιδεατό μοντέλο (conceptual model) των διεργασιών του συστήματος στο οποίο θα λειτουργήσει το λογισμικό. Τα μοντέλα αυτά χρησιμοποιούν τις παρακάτω τεχνικές παράστασης:
  1. Ροή δεδομένων (data flow)
  2. Μηχανή πεπερασμένων καταστάσεων (finite state machine)
  3. επικοινωνούσες ταυτόχρονες διεργασίες (communicating concurrent processes)
  4. Μοντέλο οντοτήτων σχέσεων (entity relationship models)
  5. Εξομοίωση (simulation)
  6. Λειτουργική σύνθεση (functional composition)
Η δομημένη ανάλυση (structured analysis) χρησιμοποιεί ως βάση το μοντέλο ροής δεδομένων και μια σειρά από εξειδικευμένους συμβολισμούς για την καταγραφή των απαιτήσεων: Εκτός από τη δομημένη ανάλυση η οποία ταιριάζει με το διαδικασιακό παράδειγμα προγραμματισμού όπως υποστηρίζεται από τις γλώσσες C, Pascal, Fortran κλπ, στις μέρες μας χρησιμοποιείται συχνά και η αντικειμενοστρεφής ανάλυση (object oriented analysis) σε συνδυασμό με αντικειμενοστρεφείς γλώσσες όπως η C++, Java, Eiffel, Smalltalk κλπ.