formal methods include b method specification languages used automated theorem proving raise z notation functional programming property based testing allowed mathematical specification testing exhaustive testing expected behaviour individual functions object constraint language specializations java modeling language allowed object oriented systems formally specified necessarily formally verified concurrent software systems petri nets process algebra finite state machines based automata theory see also virtual finite state machine event driven finite state machine allow executable software
Formal science Computer science Logic in computer science Formal methods