Frankly speaking- Planning software development is itself a vast area. Throwing some light on it- There are different ways you can plan software (there are many, will be listing few I can recall)
>> Waterfall model (this procedure becoming outdated these days)
>> Object Oriented Analysis and Design (OOAD)- Using UML
>> Rapid Application Development (RAD)
>> Agile Development (Uses RAD and other methods)
Flowcharts, or writing Pseudo code are actually one part of your planning of software. I would suggest you have a look at OOAD. You can basically use UML to completely plan your software- Classes to be used, its members. relationship between classes, Database tables, relationship between the dB tables and so on. Also you can have a look at Design
Patterns as they will help you solve certain problems associated with implementation.