As far as I know there is not place following those methodologies. Companies like Microsoft came up with its “Microsoft Solution Framework” which is mainly focusing in schedule and milestones more than doing analysis and design. Essentially the different between bottom-up and top-down is the sides of the system to develop where top-bottom is for small-medium systems while bottom-up for medium-big systems. The best is the combination of both where you start using bottom-up to perfectly understand the real problem and then apply the top-bottom to understand the management. Bottom-up starts with interviews and top-bottom starts with management processes. The best school for this is practice, practice and more practice. Do not write any line of code until the problem is totally understood, at that time you will have everything documented and the knowledge of the flow of the information. Everything will be in pseudo-code and diagrams, as well as modularized (now UML). Also you will know what can be encapsulate, what to share, what structure accepts or returns or share, what kind of interface to use, possible number of modules, functions, procedures; what can go to a services, to the web or simple apps; the db model that suit your final approach; also will have future expectations and by consequence the knowledge of your needs; as well as to know the language or languages to use if the system is versatile.