顯示具有 軟體設計 標籤的文章。 顯示所有文章
顯示具有 軟體設計 標籤的文章。 顯示所有文章

2014年1月14日 星期二

Q48: 分析的結果必須反應確切的問題敘述以及可能解決方案的限制,但不一定有作用。

Rebecca Wirfs-Brock: "Analysis results need to reflect an accurate statement of the problem and constrain possible solution, but they don't have to work." 分析是在反應使用者的真實世界,而設計必定會反應實作者的世界,兩者並不一定完全一致,因為設計者仍然必須解決一些實作的問題,因此實作時會加上一些條件,這種現象十分普遍,解決之道可能可以使用敏捷方法或MDA技術,甚至CRC cards技術,因為非正規的發展流程允許參與者提供設計意見而無障礙。

2010年2月5日 星期五

Q41: 好的軟體設計者必須考慮軟體如何成長與改變,以及何種因素最可能成為改變的焦點。

A good (software) designer will consider how software will grow and change and what elements are most likely to be focal points for change. - Rebecca Wirfs-Brock and Alan McKean (2003)

我曾經在本部落格提到過軟體設計的兩項原則:Open-Closed Principle (OCP)與Dependency Inversion Principle (DIP),這兩項原則都是教我們如何處理『改變』。不過1996年A. Cockburn 提出一項非常重要的軟體設計原則:Protected Variations (PV),事實上,PV涵蓋OCP與DIP,但更為廣泛(有機會再來談談PV)。改變有兩種:『改變點』(variation point),就是存在於現存的系統或需求內,另外一種是『演化點』(evolution point),也就是將來可能產生的改變,這則諺語主要指後者,我個人認為設計者如果能時時刻刻注意這些設計原則,或可避免產生『好人難為』的窘境(請參考薛念林教授post的『好人難為』一文)。

2009年10月14日 星期三

Q36: 沒有對或錯的模式,只是對手邊的工作是否有大用處。Martin Fowler (1997)

There is no right or wrong model, merely one that is more useful for the job at hand. - Martin Fowler (1997)

這句諺語是 Martin Fowler在解釋『觀念模式』(conceptual model)時所提出的模式塑造原則。軟體發展者因對於許多企業的基本需求往往不完全了解,所以要建立所謂觀念模式,以便能夠了解並簡化問題,這種模式有時稱為範疇模式(domain model),而是一種人工產品(human artifact),雖然非軟體本身,但其部分可轉換成實作。

2009年3月21日 星期六

Q26: 正確的的判斷來自於經驗; 而經驗來自於失敗的判斷 - Frederick P. Brooks.


Good judgment comes from experience, and experience comes from bad judgment. - Frederick P. Brooks.

2009年3月12日 星期四

Q25: 有兩種體設計的方式。一種是設計的很簡單讓它很明顯的沒有錯誤,另一種是設計的很詳細讓它沒有明顯的錯誤。第一種相較之下更為困難。

There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. -- C.A.R. Hoare.
 

2009年2月6日 星期五

Q21: 設計一個物件導向的系統並不容易; 設計一個可重用的物件導向系統就更難了 -- Erich Gamma。


Developing an object-oriented system is not easy, developing a reusable object-oriented system is much more difficult. - Erich Gamma.

2009年1月2日 星期五

Q16: KISS Principle: Keep It Simple, Stupid.

KISS Principle: Keep It Simple, Stupid - P.J. Plauger
內容可以參考 黃為德教授 的文章『漫談 Agile modeling』。

2008年12月12日 星期五

Q09: 搔到設計師的渴望是一個好的系統的開始


Every good work of software starts by scratching a developer's personal itch

2008年11月28日 星期五

Q06: 說學習好的設計技巧會限制創造力就如同說音樂家不需要學習樂理-Marvin Zelkowitz et al.

The notion that good [design] techniques restrict creativity is like saying that an artist can paint without learning the details of form or a musician does not need knowledge of music theory -- Marvin Zelkowitz et al.

關於 Prof. Marvin Zelkowitz,請參考 http://www.cs.umd.edu/~mvz/

追蹤者