軟件信息系統(tǒng)設(shè)計(jì)_第1頁
軟件信息系統(tǒng)設(shè)計(jì)_第2頁
軟件信息系統(tǒng)設(shè)計(jì)_第3頁
軟件信息系統(tǒng)設(shè)計(jì)_第4頁
軟件信息系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、軟件信息系統(tǒng)設(shè)計(jì)第五章系 統(tǒng) 設(shè) 計(jì)系統(tǒng)設(shè)計(jì)是把需求轉(zhuǎn)化為軟件系統(tǒng)的最重要的環(huán)節(jié)。系統(tǒng)設(shè)計(jì)的優(yōu)劣在根本上決定了軟件系統(tǒng)的質(zhì)量。就象”一切帝國主義都12020 年 4 月 19 日文檔僅供參考是紙老虎”那樣能夠斷定”差的系統(tǒng)設(shè)計(jì)必定產(chǎn)生差的軟件系統(tǒng)?!币虼宋覀円ΡWC系統(tǒng)設(shè)計(jì)”根正苗紅”, 把一切左傾、右傾的設(shè)計(jì)思潮消滅在萌芽狀態(tài)。Windows NT 的一位 系統(tǒng) 設(shè)計(jì) 師 擁 有8 輛 法 拉利跑 車 , 讓Microsoft公司的一些程序員十分眼紅。但你只能羨慕而不能憤恨 , 因?yàn)椴⒉皇敲總€(gè)程序員都有本事成為復(fù)雜軟件系統(tǒng)的設(shè)計(jì)師。系統(tǒng)設(shè)計(jì)要比純粹的編程困難得多。即便你清楚客戶的需求, 卻

2、未必知道應(yīng)該設(shè)計(jì)什么樣的軟件系統(tǒng)既能掙最多的錢又能讓客戶滿意?!碧煜挛骱? 最美是杭州”, 千年前蘇東坡大學(xué)士對西湖精采絕倫的系統(tǒng)設(shè)計(jì), 使杭州榮升為”天堂”, 讓后人只剩下贊嘆和破壞的份了。本章講述系統(tǒng)設(shè)計(jì)的四方面內(nèi)容: 體系結(jié)構(gòu)設(shè)計(jì)、模塊設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)、用戶界面設(shè)計(jì)。如果將軟件系統(tǒng)比喻為人體 , 那么 :(1) 體系結(jié)構(gòu)就如同人的骨架。如果某個(gè)家伙的骨架是猴子, 那么無論怎樣喂養(yǎng)和美容, 這家伙始終都是猴子, 不會(huì)成為人。(2) 模塊就如同人的器官 , 具有特定的功能。人體中最出眾的模塊設(shè)計(jì)之一是手 , 手只有幾種動(dòng)作 , 卻能做無限多的事情。人體中最糟糕的模塊設(shè)計(jì)之一是嘴

3、巴 , 嘴巴將最有價(jià)值但毫無相干的幾種功能如吃飯、說話、親吻混為一體 , 使之無法并行處理 , 真乃人類之22020 年 4 月 19 日文檔僅供參考不幸。(3) 數(shù)據(jù)結(jié)構(gòu)與算法就如同人的血脈和神經(jīng), 它讓器官具有生命并能發(fā)揮功能。數(shù)據(jù)結(jié)構(gòu)與算法分布在體系結(jié)構(gòu)和模塊中, 它將協(xié)調(diào)系統(tǒng)的各個(gè)功能。人的耳朵和嘴巴雖然是相對獨(dú)立的器官, 但如果耳朵失聰了 , 嘴巴就只能發(fā)出”啊”嗚”的聲音 , 等于喪失了說話的功能 ( 因此聾子天生就是啞巴 ), 可人們卻又能用手勢代替說話。人體的數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)真是十分神奇而且十分可笑。(4) 用戶界面就如同人的外表 , 最容易讓人一見鐘情或一見惡心。象人類追求

4、心靈美和外表美那樣 , 軟件系統(tǒng)也追求 ( 內(nèi)在的 ) 功能強(qiáng)大和 ( 外表的 ) 界面友好。但隨著生活節(jié)奏的加快, 人們已少有興趣去品味深藏不露的內(nèi)在美。如果把Unix 系統(tǒng)比作是健壯的漢子和婦人 , 那么Windows 系統(tǒng)就象嫵媚的小白臉和狐貍精。想不到Windows 系統(tǒng)竟然能興風(fēng)作浪, 占去大半市場。有鑒于此, 我們應(yīng)該鼓勵(lì)女士多買化妝品( 男士付錢 ) 以獲得更好的界面。在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí), 我們要深情地關(guān)注軟件的質(zhì)量因素, 如正確性與精確性、性能與效率、易用性、可理解性與簡法性、可復(fù)用性與可擴(kuò)充性等等。即使把系統(tǒng)設(shè)計(jì)做好了, 也并不意味著就能產(chǎn)生好的軟件系統(tǒng)。在程序設(shè)計(jì)、測試、維護(hù)

5、等環(huán)節(jié)還要做大量的工作 , 無論哪個(gè)環(huán)節(jié)出了差錯(cuò), 都會(huì)把好事搞砸了。據(jù)說上帝把所有的女士都設(shè)計(jì)成天使, 可是天使們在下凡時(shí)有些雙腳先著地, 有32020 年 4 月 19日文檔僅供參考些臉先著地。上帝的這一疏忽讓很多女孩傷透了心。我們在開發(fā)軟件時(shí) , 一定要吸取這個(gè)教訓(xùn)。5.1體系結(jié)構(gòu)設(shè)計(jì)楊叔子院子曾這樣指點(diǎn)其弟子:文學(xué)中有科學(xué) , 音樂中有數(shù)學(xué) , 漫畫中有現(xiàn)代數(shù)學(xué)的拓?fù)鋵W(xué)。漫畫家能夠”幾筆”就把一個(gè)人畫出來, 不論怎么美化或丑化, 就是活像。為什么?因?yàn)槟恰睅坠P”不是別的, 而是拓?fù)鋵W(xué)中的特征不變量 , 這是事物最本質(zhì)的東西。體系結(jié)構(gòu)是軟件系統(tǒng)中最本質(zhì)的東西:(1) 體系結(jié)構(gòu)是對復(fù)雜事物

6、的一種抽象。良好的體系結(jié)構(gòu)是普遍適用的 , 它能夠高效地處理多種多樣的個(gè)體需求。一提起”房子”,我們的腦中馬上就會(huì)出現(xiàn)房子的印象( 而不是地洞的印象) ?!狈孔印笔侨藗儗ψ∷藁蜣k公環(huán)境的一種抽象。不論是辦公樓還是民房 , 同一類建筑物 ( 甚至不同類的建筑物 ) 之間都具有非常相似的體系結(jié)構(gòu)和構(gòu)造方式。如果 13 億中國人民每個(gè)人都要用特別的方式構(gòu)造奇異的房子 , 那么 960 萬平方公里的土地將會(huì)變得千瘡百孔 ,終日不得安寧。(2) 體系結(jié)構(gòu)在一定的時(shí)間內(nèi)保持穩(wěn)定。只有在穩(wěn)定的環(huán)境下, 人們才能干點(diǎn)事情, 社會(huì)才能發(fā)展??茖W(xué)告訴我們, 宇宙間萬物無時(shí)42020 年 4 月 19 日文檔僅供參

7、考無刻不在運(yùn)動(dòng)、飛行。由于我們的生活環(huán)境在地球上保持相對穩(wěn)定 , 以致于我們能夠無憂無慮地吃飯和睡覺, 壓根就意識(shí)不到自己是活生生的導(dǎo)彈。軟件開發(fā)最怕的就是需求變化, 但”需求會(huì)發(fā)生變化”是個(gè)無法逃避的現(xiàn)實(shí)。人們希望在需求發(fā)生變化時(shí), 最好只對軟件做些皮皮毛毛的修改, 可千萬別改動(dòng)軟件的體系結(jié)構(gòu)。就如人們對住宿的需求也會(huì)變動(dòng), 你能夠經(jīng)常改變房間的裝璜和擺設(shè),但不會(huì)在每次變動(dòng)時(shí)都要去折墻、拆柱、挖地基。如果當(dāng)需求發(fā)生變化時(shí) , 程序員不得不去修改軟件的體系結(jié)構(gòu), 那么這個(gè)軟件的系統(tǒng)設(shè)計(jì)是失敗的。良好的體系結(jié)構(gòu)意味著普適、高效和穩(wěn)定。本節(jié)將論述兩種非常 通 用 的 軟 件 體 系 結(jié) 構(gòu) : 層

8、 次 結(jié) 構(gòu) 和 客 戶 機(jī) / 服 務(wù) 器(Client/Server)結(jié)構(gòu)。5.1.1層次結(jié)構(gòu)層次結(jié)構(gòu)表示了這么一種常識(shí): 有些事情比較復(fù)雜, 我們沒法一口氣干完 , 就把事情分為好幾層, 一層一層地去做。高層的工作總是建立在低層的工作之上。層次關(guān)系主要有兩種: 上下級關(guān)系和順序相鄰關(guān)系。一、上下級關(guān)系的層次結(jié)構(gòu)我們從小學(xué)一直讀到博士研究生畢業(yè), 要讀20 多年 , 能夠分為52020 年 4 月 19 日文檔僅供參考五個(gè)層次。而范進(jìn)的知識(shí)結(jié)構(gòu)只有兩層: ”私塾”和”秀才”, 但讀了五十多年 , 如圖 5.1 所示。一般地處于較高層次的學(xué)生應(yīng)該懂得所有低層次的知識(shí), 而處于低層次學(xué)生無法懂

9、得所有高層次的知識(shí)。圖5.1的層次結(jié)構(gòu)存在上下級關(guān)系, 如同在軍隊(duì)中, 上級能夠命令下級 , 而下級不能命令上級。如果把圖5.1 的層次結(jié)構(gòu)當(dāng)成是一個(gè)軟件系統(tǒng)的結(jié)構(gòu), 那么上層子系統(tǒng)能夠使用下層子系統(tǒng)的功能,而下層子系統(tǒng)不能夠使用上層子系統(tǒng)的功能。二、順序相鄰關(guān)系的層次結(jié)構(gòu)順序相鄰關(guān)系的層次結(jié)構(gòu)表明通訊只能在相鄰兩層之間發(fā)生,信息只能被一層一層地順序傳遞。這種層次結(jié)構(gòu)的經(jīng)典之作是計(jì)算機(jī)網(wǎng)絡(luò)的 OSI 參考模型 , 如圖 5.2所示。為了減少設(shè)計(jì)的復(fù)雜性,大多數(shù)網(wǎng)絡(luò)都按層 (Layer) 或級 (Level)的方式組織。每一層的目的都是向它的上一層提供一定的服務(wù), 而把如何實(shí)現(xiàn)這一服務(wù)的細(xì)節(jié)對上

10、一層加以屏蔽。一臺(tái)機(jī)器上的第n 層與另一臺(tái)機(jī)器上的第n 層進(jìn)行對話。通話的規(guī)則就是第n 層的協(xié)議。數(shù)據(jù)不是從一臺(tái)機(jī)器的第 n 層直接傳送到另一臺(tái)機(jī)器的第n 層。發(fā)送方把數(shù)據(jù)和控制信息逐層向下傳遞。最低層是物理介質(zhì), 它進(jìn)行實(shí)際的通訊。接收方則將數(shù)據(jù)和控制信息逐層向上傳遞。每一對相鄰層之間都有接口。接口定義了下層提供的原語操作和服務(wù)。當(dāng)網(wǎng)絡(luò)設(shè)計(jì)者在決定一個(gè)網(wǎng)絡(luò)應(yīng)包含多少層, 每一層應(yīng)當(dāng)62020 年 4 月 19 日文檔僅供參考做什么的時(shí)候, 其中很重要的工作是在相鄰層之間定義清晰的接口。接口能夠使得同一層能輕易地用某一種實(shí)現(xiàn)(Implementation)來替換另一種完全不同的實(shí)現(xiàn)( 如用衛(wèi)星信道來代替所有的電話線 ),只 要 新 的 實(shí) 現(xiàn) 能 向 上 層 提 供 同 一 組 服 務(wù) 就 能 夠 了 。Tanenbaum 1998碩 士 (

溫馨提示

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

評論

0/150

提交評論