development methodology software emulators