Какие должны быть инструменты планирования разработки до написания кода?
Для .NET есть NClass. Легкий, без лишних наворотов инструмент для создания диаграммы классов. Я, правда, им пользовался в основном для генерации диаграмм из уже скомпилированных сборок, а не по прямому назначению, так что ручаться за удобство не могу. Но может окажется полезен.
P.S. Сам, если проект более-менее сложный, проектирую пока на листочке. Если что-то попроще, то прямо в коде делаю "набросок" в виде набора интерфейсов (пытаясь учесть возможные варианты расширения, но без особого фанатизма), а затем уже приступаю к реализации. Как-то так.
я думаю вы ишите вот это ru.wikipedia.org/wiki/UML