Τυπική ανάπτυξη συστημάτων
Η ανάπτυξη λογισμικού με τυπικές μεθόδους (formal methods):
-  Περιλαμβάνει τον καθορισμό των απαιτήσεων σε μια 
τυπική γλώσσα (formal language) και
το διαδοχικό τυπικό μετασχηματισμό τους σε εκτελέσιμο πρόγραμμα.
 -  Μπορεί θεωρητικά να οδηγήσει σε λογισμικό χωρίς λάθη.
 
Προβλήματα
-  Χρονοβόρα και υψηλού κόστους διεργασία.
 -  Λίγοι προγραμματιστές έχουν το απαραίτητο μαθηματικό υπόβαθρο.
 -  Ο φορμαλισμός των απαιτήσεων μπορεί να μην είναι κατανοητός από τους χρήστες.
 -  Δε διασφαλίζονται σφάλματα από λανθασμένες προδιαγραφές.
 -  Μπορεί να σημειωθούν ανθρώπινα λάθη κατά το μετασχηματισμό.