A software company would first choose an appropriate Software Development Lifecycle. This could be something like RUP - Rational Unified Process, or an Iterative or even Extreme Programming. Based on the project gets divided into iterations and phases. Each SDLC has its own methodlogies.
In general, the first phase would be gathering requirements where, the requirements for the product/project are captured. The next step would be a high level design or architecture where how things would work are defined at a high level. Some companies may choose to develop a prototype first to eliminate risks after this.
Next, a detailed design is made for all the different components. In OO methodologies, Detailed design would include the different classes and methods as mentioned by you. And between each of these and next phases most companies have various reviews to validate the correctness.
The next step would be coding, followed by testing. After testing, prohect usually needs to go through User Acceptance Test where the customer accepts it and then it is deployed onto Production.
Regards,
Vikram