A - Design, testing, and debugging. B - There needs to be a clear definition on what the program needs to do. C - Model out the program . D - Begins to save variables and registers.