Formal Methods for Executable Software Models