1. A method for software development comprising: creating a formal specification of a software program; verifying said formal specification; creating an implementation of said software program, said implementation including at least one annotation from said formal specification; creating an executable program based on said software program, said executable program including at least one reference to an executable form of said formal specification; and executing said executable program to perform real-time verification of said program implementation with said formal specification.