Top-down- oder Bottom-up-Design?

7

Grundsätzlich gibt es diese beiden Ansätze zum Entwurf eines Systems. Was sind die Vor- und Nachteile? Wann sollte ich welche verwenden? Sollte ich diese Ansätze kombinieren? Wie?

    
Gabriel Ščerbák 29.04.2010, 12:48
quelle

3 Antworten

21

Grob gesagt, geht Top-down von einer Zerlegung des Problembereichs in Teilprobleme aus, während Bottom-up von der Organisation von Teilen des Lösungsraums herrührt Stücke.

Um Top-down effektiv nutzen zu können, benötigen Sie ein sehr solides Verständnis des Problems, d. h. Sie haben solide Anforderungen in der Hand. Damit Bottom-up effektiv ist, müssen Sie ein "Standard" -Problem lösen, dessen Teile gut bekannt sind, aber wo die exakte Baugruppe etwas Experimentieren benötigt, bevor Sie es richtig machen.

Sie sollten das brillante Papier von Parnas Ein rationaler Entwurfsprozess und wie man es vortäuscht für viel mehr zu diesem Thema. Die Antwort lautet: Verwenden Sie beide, wie es angemessen ist. Wenn Sie fertig sind, sollten Sie alles so aussehen lassen (in Ihren Spezifikationen, der Designdokumentation und der Benutzerdokumentation), als hätten Sie alles von oben erledigt.

    
Jacques Carette 29.04.2010, 12:56
quelle
3

Ich denke, dass Ihre Frage lange und artikulierte Antworten verdient. Ich schlage vor, einen alten Artikel von Martin Fowler (vgl. "Is design dead?") Zu lesen, in dem es um Beziehungen zwischen Upfront-Design und agilen Techniken geht ( Ссылка )

Meine Erfahrung besteht darin, immer eine Blue-Print-Architektur der Module, Interaktionen zwischen Komponenten des Systems zu haben. Mit diesem Entwurf (der in einigen Projekten auf hohem Niveau sein kann), beginne ich mit der Entwicklung / Entwicklung von Modulen / Komponenten. Einige davon können auch von unten nach oben entwickelt werden.

    
pierocampanelli 24.05.2010 09:22
quelle
2

Sie sollten auch das Prinzip "Slicing the cake" aus der agilen Community betrachten. Dieses Prinzip zwingt Sie dazu, bei jeder Iteration Ihrer Anwendung den Geschäftswert für den Benutzer zu erhöhen. Sie versuchen, ein vertikales Stück Ihrer Anwendung zu entwerfen und zu implementieren und es zu liefern, dann konzentrieren Sie sich auf den nächsten Ausschnitt usw.

Hier ist ein Link, der das Prinzip genauer erklärt Ссылка

    
Patrick 02.05.2010 20:43
quelle

Tags und Links