适當的限制帶來更大的自由,通用的産品比專業的産品更難以設計。
大學畢業設計的過程中,導師給了個他課題組的項目,但是沒有給定畢設題目,意思是讓我學習研究,看最後到了什麼程度,然後定題目,結果做了5個月,直到畢業答辯的前一周才定題目,過程中很是痛苦,因為不知道我能做到什麼程度,于是去翻看文獻,測試代碼,寫代碼,雖然收益很大,但是也是搞得很辛苦。
當時做的事圖像融合,本來什麼方向都沒有,後來縮放到多聚焦圖像融合,研究的點就集中了,從圖像融合的幾個準則入手,很快就做了一些東西,算法設計完後,就是軟體設計,又沒有限制,考慮到時間不夠,就采用混合程式設計去實作了,不過對于軟體設計還是在表面上遊走,到了現在,如果我是導師,我一定會給學生一個建議,可以聽從,讓他自己選擇。
在設計軟體之前,必需要先做一個預算,限制文檔。
限制越多,實作設計也就越快,假設要設計一個上位機軟體,提出要求:
軟體平台:
1.vc6.0++ windows程式設計
2.單片機c52
3.ado資料庫通路
具體細節:
balabala.......
如果一開始就定下基調,相信入手就非常明了,即使對于一個不懂程式設計的人,我相信一個月能實作簡單的要求。
假如一開始就不做要求,要一個上位機軟體,去設計,vc ? vb ? labview ? c# ? java ? 什麼都可以去設計,但是不同的語言,都有自己的設計規格, 然後資料庫,sql ,oracle ,access,txt ,xml,都可以選擇,但是要選哪個,都是問題。
接下來,認識限制:
時間+
空間+
人為+
時間-
不随時間變化而變化的限制
時間導緻的限制可以以空間來放寬
時間導緻的限制可以以人為來放寬
空間-
空間導緻的限制可以以時間來放寬
不随空間變化而變化的限制
空間間導緻的限制可以以人為來放寬
人為-
人為導緻的限制可以以時間來放寬
人為導緻的限制可以以空間來放寬
不随人為變化而變化的限制
在設計軟體時,語言,資源,都隻是工具,重要是我們需要了解使用者需要什麼,客戶的要求包含的限制,一個好的架構和使用者模型好于用一門精緻的語言。