Design top to bottom or bottom to top?

Basically, there are two approaches to developing a system. What are the advantages and disadvantages? When should I use this? Should I combine these approaches? How?

+7
design architecture
source share
3 answers

Roughly speaking, from top to bottom comes from decomposing the problem space into sub-tasks, while from bottom to top it comes from organizing parts of the solution space to larger pieces.

To make effective use from top to bottom, you need a very clear understanding of the problem, i.e. have firm demands in hand. To be effective from the bottom up, you need to solve the โ€œstandardโ€ problem, whose parts are well known, but where precise assembly may be required for some experiments before you fix it.

You should read Parnyโ€™s brilliant paper The rational design process and how to fake it for much more. Answer: use both options if necessary. When everything is ready, do it all (in your specifications, project documentation and user documentation), as if you did everything from top to bottom.

+21
source share

I think your question deserves a long and clear answer. I suggest reading Martin Fowler's old article (cfr. "Is design dead?"), Which discusses relationships regarding avant-garde design and agile methods ( http://martinfowler.com/articles/designDead.html )

My experience is to always have a blue architecture for printing modules, the interaction between the components of the system. Having this project (which in some projects can be at a high level), I begin to develop / develop modules / components. Some of them can also be developed from the bottom up.

+3
source share

You should also take a look at the cake slicing principle from a flexible community. This principle makes you focus on adding business value to the user with each iteration of your application. You are trying to design and implement a vertical slice of your application and deliver it, and then focus on the next fragment, etc.

Here is a link that explains the principle in more detail http://blog.energizedwork.com/2005/05/slicing-cake.html

+2
source share

All Articles