Usually manufacturers of microcontrollers have their own development software. If it is a low-level language development software, then the majority of the time there will be third party c/c++ compilers available for that microcontroller. Debugging and programming can be done with a debugger, or JTAG, if the MCU has capabilities. The way I do embedded systems design is:
1. Obtain a development kit for that microcontroller.
2. Play around with the software, debugger, hardware and learn it.
3. Decide what additional peripherals/addons you will need.
4. Write snippets of code that you can re-use later and make sure it works robustly.
5. Layout the design in a schematic editor, and/or include a debugger/JTAG connector if available (it will simplify your life). I use PCAD. You can use Orcad, Eagle, etc etc.
6. Import the schematic into a pcb editor, layout the board. Again, I use PCAD.
7. Route the board, either by hand, or use an autorouter. Again, I use PCAD to place components, and SPECCTRA to auto-route with rules and constraints that I give it.
8. Send routed board out for manufacturing - lots of online places that'll make prototype boards for $100.
9. Obtain parts and stuff board.
10. Test board and code.
Hopes this helps!