最近幫公司開發oa系統,由於是專案經理,所以參與了系統的架構設計。偶有感想,便付於紙面。
有何不妥之處還望各位指點。
第一:需求分析一定要仔細,越明確使用者的需要越可能較好的把握架構的設計,因為需求確定軟體架構。
第二:要從使用者角度考慮各種與軟體和軟體架構有關的因素,這些因素是:
1)架構的簡單性,這和設計機器裝置時要保證結構簡單(從而可以使使用者簡單維護,使用者不懂機器設計!!)的原理是一致的。但是這也帶來了簡單複雜性,為何?打個比方:現代的pc體積很小,但結構上和第一台計算機大致一致,然而現在一般人都可以使用pc,而第一台計算機卻要專業不能再專業的人使用。之所以現在人們可以輕鬆使用pc,是因為互動介面和硬體維護簡單了。軟體的架構也是這個道理,雖然看起來我們把它設計很簡單,很容易維護,但開發人員不知道要為它多封裝幾層的功能**!對使用者而言簡單了,對開發人員複雜了,但軟體最終是給使用者使用的,所以簡單就是真理。這就是所謂的「有得必有失吧」。
2)適度性:有的開發人員願意搞「完美主義」,什麼都要最全最好,但是使用者只需要那麼點功能,而且使用者只給你那麼多時間和資源。然而有些開發人員將時間和金錢用在了使用者不需要的功能上(國內的開發人員容易這樣作),帶來了專案的進度和成本的風險。很不划算!所以設計架構時我注意了必要的功能我一定集中精力設計,對於沒有必要的我會考慮捨去。
3)適應性:使用者的業務總在變化,所以要使用靈活的架構!設計模式將是乙個較好的解決方法。
4)高內聚低耦合:這是老聲長談的問題,然而又有多少人做的好哪?
5)開發不能一步到位:人的思維模式總是從簡單到複雜,然而有有些開發人員喜歡一步到位,上來就編**!這樣很會造成後期不斷修改的結果,所以軟體開發要從簡單到複雜,不求一步到位。
6)要善用輔助工具:有的開發人員認為軟體重用就是開發乙個元件就可以了,但是方法重用哪?很多好的軟體設計、開發方法被整合在如case,**生成等工具中,然而很多開發人員不用,他們喜歡從零開始,但是我們開發軟體目的是顯示我們技術高超還是為使用者及時地高質量的提供可用的軟體?善用工具的人必定是善於理解使用者需求的人。軟體開發的目的性決定了開發人員應當有何行為,而非技術。
未完待續
具體的架構設計方法會在以後的文章中講述。請各位指點
系統設計之架構設計
架構設計這個詞聽的非常的多,但真正何謂架構設計呢?可能要你真的來講還真的講不太清楚,很多人都知道架構設計是對系統進行分層 分模組進行設計,但又有多少人知道這步應該怎麼去做呢,往往很多的programmer在剛進入架構設計這個領域的時候,受到以前做模組的那種影響,把自己的眼光限定到了具體的模組實現上去...
系統設計之架構設計
架構設計這個詞聽的非常的多,但真正何謂架構設計呢?可能要你真的來講還真的講不太清楚,很多人都知道架構設計是對系統進行分層 分模組進行設計,但又有多少人知道這步應該怎麼去做呢,往往很多的programmer在剛進入架構設計這個領域的時候,受到以前做模組的那種影響,把自己的眼光限定到了具體的模組實現上去...
架構設計之MVC
一 簡介 mvc model view controller,模型 檢視 控制器 是xerox parc在二十世紀八十年代為程式語言smalltalk 80發明的一種軟體設計模式,已被廣泛使用。一種軟體設計典範,用一種業務邏輯 資料 介面顯示分離的方法組織 將業務邏輯聚集到乙個部件裡面,在改進和個性...