




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、系統(tǒng)設(shè)計(jì)的一些原則系統(tǒng)設(shè)計(jì)的好壞在根本上決定了軟件系統(tǒng)的優(yōu)劣??梢哉f“差的系統(tǒng)設(shè)計(jì)必定產(chǎn)生差的軟 件系統(tǒng)”,但是不能保證“好的系統(tǒng)設(shè)計(jì)必定產(chǎn)生好的軟件系統(tǒng)”。因?yàn)樵谠O(shè)計(jì)之前有需求開發(fā) 工作,在設(shè)計(jì)之后還有編碼,測(cè)試和維護(hù)工作,無論哪個(gè)環(huán)節(jié)出了差錯(cuò),都會(huì)把好事搞砸了。據(jù)說上帝把所有的女士都設(shè)計(jì)成天使,可是天使們?cè)谙路驳臅r(shí)候,有些人雙腳先著地, 有些人臉先著地。上帝的這一疏忽讓很多女士傷透了心。所以我們?cè)陂_發(fā)軟件的時(shí)候,一定要吸取這個(gè)教訓(xùn)。一.合適性系統(tǒng)設(shè)計(jì)的源頭是需求,這是由商業(yè)目標(biāo)決定的。 高水平的設(shè)計(jì)師高就高在“設(shè)計(jì)岀恰好滿足客戶需求的 軟件,并且使開發(fā)方和客戶方”獲取最大的利益,而不 是不
2、惜代價(jià)設(shè)計(jì)出最先進(jìn)的軟件。評(píng)估體系結(jié)構(gòu)好不好的第一個(gè)指標(biāo)就是“合適性”,即體系結(jié)構(gòu)是否符合適合于軟件的“功能性需求”和“非功能性需求”。人們一般不會(huì)在需求文檔中指定軟件的 體系結(jié)構(gòu),需求與體系結(jié)構(gòu)之間并沒有一一對(duì)應(yīng)的關(guān)系, 甚至沒有明顯的對(duì)應(yīng)關(guān)系。所以設(shè)計(jì)師可以充分發(fā)揮主 觀能動(dòng)性,根據(jù)需求的特征,通過推理和歸納的方法設(shè) 計(jì)出合適的體系結(jié)構(gòu)。經(jīng)驗(yàn)不豐富的設(shè)計(jì)師往往把注意 力集中在“功能性需求”而疏忽了“非功能性需求”,殊不知后者恰恰是最能體現(xiàn)設(shè)計(jì)水平的地方。比如設(shè)計(jì)住宅。住宅的最基本的功能性需求是“吃 喝拉撒睡”,全世界人民“吃喝拉撒睡”的方式都是差 不多的。住宅的非功能性需求主要是讓人住得舒
3、服。 住 宅的種類非常多, 如茅草屋、窯洞、筒子樓、酒店、另 V 墅等等。窯洞的體系結(jié)構(gòu)與別墅的有天壤之別, 你能說 后者一定比前者好嗎?不能, 因?yàn)闆]有可比度。如果一名建筑師受政府委托給廣大的中國(guó)陜北農(nóng)民設(shè)計(jì)住宅,他應(yīng)當(dāng)設(shè)計(jì)更好的窯洞而非別墅。理由很簡(jiǎn) 單,因?yàn)閺V大的陜北農(nóng)民住不起別墅,而那里的條件特 別適合于建窯洞。窯洞對(duì)于當(dāng)?shù)氐霓r(nóng)民而言是非常實(shí)用 而且成本低廉的住宅。對(duì)于軟件系統(tǒng)而言,能夠滿足需求的設(shè)計(jì)方案可能有很多種,究竟該選擇哪一種呢?這時(shí)候商業(yè)目標(biāo)是決策依據(jù),即選擇能夠?yàn)殚_發(fā)方和客戶方帶來最大利益的 那個(gè)方案。 大部分開發(fā)人員天生有使用新技術(shù)的傾向,而這種傾向?qū)﹂_發(fā)商業(yè)產(chǎn)品而言可能
4、是不利的,切記切 記!結(jié)構(gòu)穩(wěn)定性體系結(jié)構(gòu)是系統(tǒng)設(shè)計(jì)的第一要素,詳細(xì)設(shè)計(jì)階段的 工作如用戶界面設(shè)計(jì),數(shù)據(jù)庫(kù)設(shè)計(jì),模塊設(shè)計(jì),數(shù)據(jù)結(jié) 構(gòu)設(shè)計(jì)等等,都是在體系結(jié)構(gòu)確定之后開展的,而編程 和測(cè)試是最后面的工作。如果體系結(jié)構(gòu)經(jīng)常變動(dòng),那么 建筑在體系結(jié)構(gòu)之上的用戶界面、數(shù)據(jù)庫(kù)、模塊、數(shù)據(jù) 結(jié)構(gòu)等也跟著經(jīng)常變動(dòng),用“樹倒猢猻散”來比喻很恰 當(dāng),這將導(dǎo)致項(xiàng)目發(fā)生混亂。當(dāng)前中國(guó)有幾句流行的至理名言:“穩(wěn)定壓倒一切”“發(fā)展才是硬道理”。發(fā)展的前提條件是穩(wěn)定,社會(huì)如此,開發(fā)軟件產(chǎn)品也是如此。所以體系結(jié)構(gòu)一旦設(shè)計(jì)完成,應(yīng)當(dāng)在一定的時(shí)間內(nèi)保持穩(wěn)定不變,只有這樣才能使后續(xù)工作順利開展。前面講了,體系結(jié)構(gòu)是依據(jù)需求而設(shè)計(jì)的
5、。如果需求變更了,很有可能導(dǎo)致體系結(jié)構(gòu)發(fā)生變更,那么“保 持結(jié)構(gòu)穩(wěn)定”豈不是成了空想?高水平的設(shè)計(jì)師應(yīng)當(dāng)能夠分析需求文檔,判斷岀哪 些需求是穩(wěn)定不變的,哪些需求是可能變動(dòng)的。于是 據(jù)那些穩(wěn)定不變的需求設(shè)計(jì)體系結(jié)構(gòu),而根據(jù)那些可變 的需求設(shè)計(jì)軟件的“可擴(kuò)展性”。三.可擴(kuò)展性可擴(kuò)展性是指軟件擴(kuò)展新功能的容易程度??蓴U(kuò)展越好,表示軟件適應(yīng)“變化”的能力越強(qiáng)。由于軟件是“軟”的,那是否所有的軟件必須設(shè)計(jì)能擴(kuò)展新功能呢?這要視軟件的規(guī)模和復(fù)雜性而定。如果軟件規(guī)模很小,問題很簡(jiǎn)單,那么擴(kuò)展功能的 確比較容易。要是軟件的代碼只有100 行,這時(shí)就無所謂“可擴(kuò)展性”了,你想怎么擴(kuò)展都可以。如果軟件規(guī) 模很大,
6、問題很復(fù)雜,倘若軟件的可擴(kuò)展性不好,那么 該軟件就像用卡片造成的房子,抽岀或者塞進(jìn)去一張卡 片都有可能使房子倒塌。是否任何軟件在設(shè)計(jì)的時(shí)候都要考慮可擴(kuò)展性呢? 不見得,如果確信某個(gè)軟件在它淘汰之前永遠(yuǎn)都不會(huì)變 更(如一次性產(chǎn)品),那么在設(shè)計(jì)階段就沒必要考慮可 擴(kuò)展性,這樣省事省力 ??蓴U(kuò)展性越來越重要,社會(huì)的商業(yè)越來越發(fā)達(dá),需求變化就越快。需求變化必將導(dǎo)致修改(或擴(kuò)展)軟件 的功能,如果軟件的擴(kuò)展性比較差的話,那么修改(或 擴(kuò)展)功能的代價(jià)會(huì)很高?,F(xiàn)代軟件產(chǎn)品通常采用“增量開發(fā)模式”開發(fā)商不 斷地推岀軟件產(chǎn)品的新版本,從而不斷地獲取增值利潤(rùn)。 如果軟件的可擴(kuò)展性比較差的話,每次開發(fā)新版本的代
7、價(jià)就會(huì)很高。雖然開發(fā)商抓住了商機(jī),但卻由于設(shè)計(jì)水 平差而導(dǎo)致沒有賺取多少利潤(rùn),真是要活活氣死。體系 結(jié)構(gòu)的穩(wěn)定性是根據(jù)那些穩(wěn)定不變的需求而設(shè)計(jì)的,體 系結(jié)構(gòu)的可擴(kuò)展性則是依據(jù)那些可變的需求而設(shè)計(jì)的。從字面上看,穩(wěn)定性和可擴(kuò)展性似乎有點(diǎn)矛盾。兩者之 間存在辯證的關(guān)系: 如果系統(tǒng)不可擴(kuò)展的話, 那么就沒 有發(fā)展前途,所以不能只關(guān)心穩(wěn)定性而忽視可擴(kuò)展性; 而軟件系統(tǒng)“可擴(kuò)展”的前提條件是“保持結(jié)構(gòu)穩(wěn)定”, 否則軟件難以按計(jì)劃開發(fā)出來,穩(wěn)定性是使系統(tǒng)能夠持 續(xù)發(fā)展的基礎(chǔ)。所以穩(wěn)當(dāng)性和擴(kuò)展性都是體系結(jié)構(gòu)設(shè)計(jì) 的要素。人們對(duì)物質(zhì)有喜新厭舊的天性,你可以經(jīng)常改變房 子的裝潢和擺設(shè),但不能每次都去拆墻,挖地基
8、。在軟 件開發(fā)過程中,變化是司空見慣的事情。如果每次變化 都導(dǎo)致體系結(jié)構(gòu)發(fā)生大的變化,那簡(jiǎn)直就是“傷筋動(dòng)骨” 這樣的體系結(jié)構(gòu)無疑是敗筆之作。分層開發(fā)是一種重要的體系結(jié)構(gòu),有著良好的可擴(kuò) 展性,而且在擴(kuò)充或修改功能時(shí),基本不會(huì)破壞原有結(jié) 構(gòu)的穩(wěn)定性。可以參看我的 分層開發(fā)思想與小籠包-文。四.可復(fù)用性復(fù)用就是指“重復(fù)利用已經(jīng)存在的東西”。復(fù)用不 是人類懶惰的表現(xiàn),而是智慧的表現(xiàn)。因?yàn)槿祟惪偸窃?繼承了前人的成果,不斷加以利用、改進(jìn)或創(chuàng)新后才會(huì) 進(jìn)步復(fù)用有利于提咼產(chǎn)品的質(zhì)量、提咼生產(chǎn)效率和降低 成本。由經(jīng)驗(yàn)可知, 通常在一個(gè)新系統(tǒng)中,大部分的內(nèi) 容是成熟的,只有小部分內(nèi)容是創(chuàng)新的。一般地,可以相信成熟的東西總是比較可靠的(即具有高質(zhì)量),而 大量成熟的工作可以通過復(fù)用來快速實(shí)現(xiàn)(即具有高生 產(chǎn)效率)。勤勞并且聰明的人們應(yīng)該把大部分的時(shí)間用 在小比例的創(chuàng)新工作上,而把小部分的時(shí)間用在大比例 的成熟工作中,這樣才能把工作做的又快又好。企業(yè)成功地開發(fā)了某個(gè)軟件產(chǎn)品
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位蔬菜供應(yīng)合同范本
- 合同范本其他事項(xiàng)
- 合同范本軟件畫畫
- 卷簾窗簾購(gòu)銷合同范例
- 2025年耐磨合金鑄鐵項(xiàng)目建議書
- 新西蘭蜂蜜采購(gòu)合同范本
- 水果購(gòu)銷合同范本
- 家具設(shè)計(jì)合同范本
- 單位車輛定點(diǎn)維修合同范本
- 醫(yī)院租賃合同范本
- 培訓(xùn)學(xué)校教師崗位職責(zé)
- 辦公樓維修改造施工方案
- 形勢(shì)與政策(貴州財(cái)經(jīng)大學(xué))知到智慧樹章節(jié)答案
- 老年髖部骨折治療指南
- 2024年度教育軟件采購(gòu)合同
- 中華護(hù)理學(xué)會(huì)團(tuán)體標(biāo)準(zhǔn)測(cè)試題庫(kù)含答案
- 防暴隊(duì)形演練和講解
- DB35T 1816-2019 基層地震災(zāi)害緊急救援隊(duì)能力分級(jí)測(cè)評(píng)
- 現(xiàn)代家政導(dǎo)論-課件 2.1家庭的認(rèn)知
- 中小企業(yè)(民營(yíng)企業(yè))ESG星級(jí)評(píng)價(jià)
- 電氣工程及其自動(dòng)化職業(yè)規(guī)劃課件
評(píng)論
0/150
提交評(píng)論