Identify the tasks the application needs to perform.
Identify the objects needed to perform those tasks.
Identify the events required to trigger an object into performing its assigned tasks
Design the user interface