Depends on how do u want to design ? there is no single optimal solutaion for this problem
incase of starting form scratch - do top-down - as architectural top level strategies work better
Incase if ur are planning to re-use a design , then bottom-up would help.