2010-04-29 54 views
7

基本上有兩種設計系統的方法。有什麼優點和缺點?我應該什麼時候使用哪個?我應該結合這些方法嗎?怎麼樣?自上而下或自下而上的設計?

+4

這是一個簡短的問題,但我懷疑答案會很長!... – 2010-04-29 12:51:40

+1

我更喜歡從左到右的設計。 – 2010-04-29 12:51:56

+0

@Mitch小麥可能,也部分回答或重定向到一些書籍/論文/文章/博客就足夠了:) – 2010-04-29 12:59:41

回答

21

粗略地說,自上而下的來自問題空間成子問題的分解,而自下而上的來自組織解空間的部分成更大的塊。

爲了能夠有效地使用自上而下的方法,您需要對問題有非常深刻的理解,即需要掌握堅實的需求。爲了自下而上有效,你需要解決一個衆所周知的「標準」問題,但是在你做對之前確切的組裝可能需要一些實驗。

對於這個問題,您應該閱讀Parnas的輝煌紙A rational design process and how to fake it。答案是:酌情使用兩者。完成後,將所有內容看起來像(在您的規範,設計文檔和用戶文檔中),就好像您完成了自上而下的任何操作一樣。

+0

非常感謝你給出了一個很好的答案,並鏈接到該論文 – 2010-04-29 13:04:14

+4

+1:對於«當你完成後,讓它看起來就像你已經完成一切都自上而下» – ZJR 2010-05-02 20:46:40

2

您還應該看看敏捷社區的「切片蛋糕」原則。這個原則迫使您專注於爲您的應用程序的每次迭代添加業務價值。您嘗試設計和實現應用程序的垂直切片,並提供它,然後集中在一個片等

下面是詳細介紹了http://blog.energizedwork.com/2005/05/slicing-cake.html

+0

謝謝,我知道迭代,我想難的是如何切片蛋糕,以便添加另一個切片不會像添加幾個以前那麼辛苦。 – 2010-05-02 21:18:51

3

我覺得你的問題值得長期原則鏈接並闡述了答案。 我建議讀馬丁·福勒的一篇舊文(CFR。「爲設計死了嗎?」),它講述的前期設計和敏捷技術(http://martinfowler.com/articles/designDead.html

我的經驗就是始終模塊的藍圖架構關係,系統組件之間的交互。有了這個藍圖(在某些項目中可以是高層次),我開始設計/開發模塊/組件。其中一些還可以自下而上開發。

+0

良好的參考總是讚賞:) – 2010-05-24 09:59:14