系統(tǒng)設(shè)計的一些原則_第1頁
系統(tǒng)設(shè)計的一些原則_第2頁
系統(tǒng)設(shè)計的一些原則_第3頁
免費預覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、系統(tǒng)設(shè)計的一些原則系統(tǒng)設(shè)計的好壞在根本上決定了軟件系統(tǒng)的優(yōu)劣??梢哉f“差的系統(tǒng)設(shè)計必定產(chǎn)生差的軟 件系統(tǒng)”,但是不能保證“好的系統(tǒng)設(shè)計必定產(chǎn)生好的軟件系統(tǒng)”。因為在設(shè)計之前有需求開發(fā) 工作,在設(shè)計之后還有編碼,測試和維護工作,無論哪個環(huán)節(jié)出了差錯,都會把好事搞砸了。據(jù)說上帝把所有的女士都設(shè)計成天使,可是天使們在下凡的時候,有些人雙腳先著地, 有些人臉先著地。上帝的這一疏忽讓很多女士傷透了心。所以我們在開發(fā)軟件的時候,一定要吸取這個教訓。一.合適性系統(tǒng)設(shè)計的源頭是需求,這是由商業(yè)目標決定的。 高水平的設(shè)計師高就高在“設(shè)計岀恰好滿足客戶需求的 軟件,并且使開發(fā)方和客戶方”獲取最大的利益,而不 是不

2、惜代價設(shè)計出最先進的軟件。評估體系結(jié)構(gòu)好不好的第一個指標就是“合適性”,即體系結(jié)構(gòu)是否符合適合于軟件的“功能性需求”和“非功能性需求”。人們一般不會在需求文檔中指定軟件的 體系結(jié)構(gòu),需求與體系結(jié)構(gòu)之間并沒有一一對應(yīng)的關(guān)系, 甚至沒有明顯的對應(yīng)關(guān)系。所以設(shè)計師可以充分發(fā)揮主 觀能動性,根據(jù)需求的特征,通過推理和歸納的方法設(shè) 計出合適的體系結(jié)構(gòu)。經(jīng)驗不豐富的設(shè)計師往往把注意 力集中在“功能性需求”而疏忽了“非功能性需求”,殊不知后者恰恰是最能體現(xiàn)設(shè)計水平的地方。比如設(shè)計住宅。住宅的最基本的功能性需求是“吃 喝拉撒睡”,全世界人民“吃喝拉撒睡”的方式都是差 不多的。住宅的非功能性需求主要是讓人住得舒

3、服。住 宅的種類非常多,如茅草屋、窯洞、筒子樓、酒店、另V 墅等等。窯洞的體系結(jié)構(gòu)與別墅的有天壤之別,你能說 后者一定比前者好嗎?不能,因為沒有可比度。如果一名建筑師受政府委托給廣大的中國陜北農(nóng)民設(shè)計住宅,他應(yīng)當設(shè)計更好的窯洞而非別墅。理由很簡 單,因為廣大的陜北農(nóng)民住不起別墅,而那里的條件特 別適合于建窯洞。窯洞對于當?shù)氐霓r(nóng)民而言是非常實用 而且成本低廉的住宅。對于軟件系統(tǒng)而言,能夠滿足需求的設(shè)計方案可能有很多種,究竟該選擇哪一種呢?這時候商業(yè)目標是決策依據(jù),即選擇能夠為開發(fā)方和客戶方帶來最大利益的 那個方案。大部分開發(fā)人員天生有使用新技術(shù)的傾向, 而這種傾向?qū)﹂_發(fā)商業(yè)產(chǎn)品而言可能是不利的,

4、切記切 記!結(jié)構(gòu)穩(wěn)定性體系結(jié)構(gòu)是系統(tǒng)設(shè)計的第一要素,詳細設(shè)計階段的 工作如用戶界面設(shè)計,數(shù)據(jù)庫設(shè)計,模塊設(shè)計,數(shù)據(jù)結(jié) 構(gòu)設(shè)計等等,都是在體系結(jié)構(gòu)確定之后開展的,而編程 和測試是最后面的工作。如果體系結(jié)構(gòu)經(jīng)常變動,那么 建筑在體系結(jié)構(gòu)之上的用戶界面、數(shù)據(jù)庫、模塊、數(shù)據(jù) 結(jié)構(gòu)等也跟著經(jīng)常變動,用“樹倒猢猻散”來比喻很恰 當,這將導致項目發(fā)生混亂。當前中國有幾句流行的至理名言:“穩(wěn)定壓倒一切”“發(fā)展才是硬道理”。發(fā)展的前提條件是穩(wěn)定,社會如此,開發(fā)軟件產(chǎn)品也是如此。所以體系結(jié)構(gòu)一旦設(shè)計完成,應(yīng)當在一定的時間內(nèi)保持穩(wěn)定不變,只有這樣才能使后續(xù)工作順利開展。前面講了,體系結(jié)構(gòu)是依據(jù)需求而設(shè)計的。如果需求

5、變更了,很有可能導致體系結(jié)構(gòu)發(fā)生變更,那么“保 持結(jié)構(gòu)穩(wěn)定”豈不是成了空想?高水平的設(shè)計師應(yīng)當能夠分析需求文檔,判斷岀哪 些需求是穩(wěn)定不變的,哪些需求是可能變動的。于是 據(jù)那些穩(wěn)定不變的需求設(shè)計體系結(jié)構(gòu),而根據(jù)那些可變 的需求設(shè)計軟件的“可擴展性”。三.可擴展性可擴展性是指軟件擴展新功能的容易程度。可擴展越好,表示軟件適應(yīng)“變化”的能力越強。由于軟件是“軟”的,那是否所有的軟件必須設(shè)計能擴展新功能呢?這要視軟件的規(guī)模和復雜性而定。如果軟件規(guī)模很小,問題很簡單,那么擴展功能的 確比較容易。要是軟件的代碼只有100行,這時就無所謂“可擴展性”了,你想怎么擴展都可以。如果軟件規(guī) 模很大,問題很復雜,

6、倘若軟件的可擴展性不好,那么 該軟件就像用卡片造成的房子,抽岀或者塞進去一張卡 片都有可能使房子倒塌。是否任何軟件在設(shè)計的時候都要考慮可擴展性呢? 不見得,如果確信某個軟件在它淘汰之前永遠都不會變 更(如一次性產(chǎn)品),那么在設(shè)計階段就沒必要考慮可 擴展性,這樣省事省力 。可擴展性越來越重要,社會的商業(yè)越來越發(fā)達,需求變化就越快。需求變化必將導致修改(或擴展)軟件 的功能,如果軟件的擴展性比較差的話,那么修改(或 擴展)功能的代價會很高?,F(xiàn)代軟件產(chǎn)品通常采用“增量開發(fā)模式”開發(fā)商不 斷地推岀軟件產(chǎn)品的新版本,從而不斷地獲取增值利潤。 如果軟件的可擴展性比較差的話,每次開發(fā)新版本的代 價就會很高。

7、雖然開發(fā)商抓住了商機,但卻由于設(shè)計水 平差而導致沒有賺取多少利潤,真是要活活氣死。體系 結(jié)構(gòu)的穩(wěn)定性是根據(jù)那些穩(wěn)定不變的需求而設(shè)計的,體 系結(jié)構(gòu)的可擴展性則是依據(jù)那些可變的需求而設(shè)計的。 從字面上看,穩(wěn)定性和可擴展性似乎有點矛盾。兩者之 間存在辯證的關(guān)系:如果系統(tǒng)不可擴展的話,那么就沒 有發(fā)展前途,所以不能只關(guān)心穩(wěn)定性而忽視可擴展性; 而軟件系統(tǒng)“可擴展”的前提條件是“保持結(jié)構(gòu)穩(wěn)定”, 否則軟件難以按計劃開發(fā)出來,穩(wěn)定性是使系統(tǒng)能夠持 續(xù)發(fā)展的基礎(chǔ)。所以穩(wěn)當性和擴展性都是體系結(jié)構(gòu)設(shè)計 的要素。人們對物質(zhì)有喜新厭舊的天性,你可以經(jīng)常改變房 子的裝潢和擺設(shè),但不能每次都去拆墻,挖地基。在軟 件開發(fā)

8、過程中,變化是司空見慣的事情。如果每次變化 都導致體系結(jié)構(gòu)發(fā)生大的變化,那簡直就是“傷筋動骨” 這樣的體系結(jié)構(gòu)無疑是敗筆之作。分層開發(fā)是一種重要的體系結(jié)構(gòu),有著良好的可擴 展性,而且在擴充或修改功能時,基本不會破壞原有結(jié) 構(gòu)的穩(wěn)定性??梢詤⒖次业?分層開發(fā)思想與小籠包-文。四.可復用性復用就是指“重復利用已經(jīng)存在的東西”。復用不 是人類懶惰的表現(xiàn),而是智慧的表現(xiàn)。因為人類總是在 繼承了前人的成果,不斷加以利用、改進或創(chuàng)新后才會 進步復用有利于提咼產(chǎn)品的質(zhì)量、提咼生產(chǎn)效率和降低 成本。由經(jīng)驗可知, 通常在一個新系統(tǒng)中,大部分的內(nèi) 容是成熟的,只有小部分內(nèi)容是創(chuàng)新的。一般地,可以相信成熟的東西總是比較可靠的(即具有高質(zhì)量),而 大量成熟的工作可以通過復用來快速實現(xiàn)(即具有高生 產(chǎn)效率)。勤勞并且聰明的人們應(yīng)該把大部分的時間用 在小比例的創(chuàng)新工作上,而把小部分的時間用在大比例 的成熟工作中,這樣才能把工作做的又快又好。企業(yè)成功地開發(fā)了某個軟件產(chǎn)品之

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論