軟件工程王忠民第11章面向?qū)ο笤O(shè)計_第1頁
軟件工程王忠民第11章面向?qū)ο笤O(shè)計_第2頁
軟件工程王忠民第11章面向?qū)ο笤O(shè)計_第3頁
軟件工程王忠民第11章面向?qū)ο笤O(shè)計_第4頁
軟件工程王忠民第11章面向?qū)ο笤O(shè)計_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、11.711.811.911.10設(shè)計任務(wù)設(shè)計數(shù)據(jù)設(shè)計類中的服務(wù)設(shè)計關(guān)聯(lián)11.1111.12習(xí)題設(shè)計優(yōu)化小結(jié)設(shè)計:把分析階段得到的需求轉(zhuǎn)變成符本和質(zhì)量要求的、抽象的系統(tǒng)實現(xiàn)方案。從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計,是一個逐漸擴(kuò)充模型的過程。面向?qū)ο蠓椒▽W(xué)在概念和表示方法上的一在各項開發(fā)活動之間的平滑(無致性,縫)過渡,領(lǐng)域和開發(fā)能夠比較容易地跟蹤整個系統(tǒng)開發(fā)過程,這是面向?qū)ο蠓椒ㄅc傳統(tǒng)方法比較起來所具有的一大優(yōu)勢。分析和設(shè)計過程的界限是模糊的,它們是一個多次反復(fù)迭代的過程。生命周期方法學(xué)把設(shè)計進(jìn)一步劃分成總體設(shè)計和詳細(xì)設(shè)計兩個階段,類似地,也可以把面向?qū)ο笤O(shè)計再細(xì)分為系統(tǒng)設(shè)計和對象設(shè)計。系統(tǒng)設(shè)計確定

2、實現(xiàn)系統(tǒng)的策略和目標(biāo)系統(tǒng)的結(jié)構(gòu)。對象設(shè)計確定解空間中的類、關(guān)聯(lián)、接口形式及實現(xiàn)服務(wù)的算法。系統(tǒng)設(shè)計與對象設(shè)計之間的界限,比分析與設(shè)計之間的界限更模糊,本書不再對它們加以區(qū)分。11.1面向?qū)ο笤O(shè)計的準(zhǔn)則1. 模塊化面向?qū)ο筌浖_發(fā)模式,很自然地支持了把系統(tǒng)分解成模塊的設(shè)計原理:對象就是模塊。它是把數(shù)據(jù)結(jié)構(gòu)和操作這些數(shù)據(jù)的方法緊密地結(jié)合在一起所的模塊。2. 抽象面向?qū)ο蠓椒ú粌H支持過程抽象,而且支持?jǐn)?shù)據(jù)抽象。類實際上是一種抽象數(shù)據(jù)類型,它對外開放的了類的規(guī)格說明(即協(xié)議),這種接口公共接口規(guī)定了外界可以使用的合法操作符,利用這些操作符可以對類實例中包含的數(shù)據(jù)進(jìn)行操作。使用者無 須知道這些操作符的實

3、現(xiàn)算法和類中數(shù)據(jù)元素的具 體表示方法,就可以通過這些操作符使用類中定義的數(shù)據(jù)。通常把這類抽象稱為規(guī)格說明抽象。此外,某些面向?qū)ο蟮某绦蛟O(shè)計語言還支持參數(shù)化抽象。所謂參數(shù)化抽象,是指當(dāng)描述類的規(guī)格說明 時并不具體指定所要操作的數(shù)據(jù)類型,而是把數(shù)據(jù) 類型作為參數(shù)。這使得類的抽象程度更高,應(yīng)用范 圍更廣,可重用性更高。3. 信息隱藏在面向?qū)ο蠓椒ㄖ?,信息隱藏通過對象的封裝性實 現(xiàn):類結(jié)構(gòu)分離了接口與實現(xiàn),從而支持了信息隱藏。對于類的用戶來說,屬性的表示方法和操作的 實現(xiàn)算法都應(yīng)該是隱藏的。4. 弱耦合耦合指一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互連的緊密程 度。在面向?qū)ο蠓椒ㄖ校瑢ο笫亲罨镜哪K,因 此,耦合

4、主要指不同對象之間相互關(guān)聯(lián)的緊密程度。弱耦合是優(yōu)秀設(shè)計的一個重要標(biāo)準(zhǔn),因為這有 助于使得系統(tǒng)中某一部分的變化對其他部分的影響降到最低程度。當(dāng)兩個對象必須相互相互依賴時,應(yīng)該通過類的協(xié)議(即公共接口)實現(xiàn)耦合,而不應(yīng)該依賴于類的具體實現(xiàn)細(xì)節(jié)。一般說來,對象之間的耦合可分為兩大類,下面分別討論這兩類耦合:(1) 交互耦合如果對象之間的耦合通過消息連接來實現(xiàn),則這種耦合就是交互耦合。為使交互耦合盡可能松散,應(yīng)該遵守下述準(zhǔn)則:盡量降低消息連接的復(fù)雜程度。應(yīng)該盡量減少消息中包含的參數(shù)個數(shù),降低參數(shù)的復(fù)雜程度。(或接收)的消息數(shù)。減少對象(2) 繼承耦合與交互耦合相反,應(yīng)該提高繼承耦合程度。繼承 是一般化

5、類與特殊類之間耦合的一種形式。從本質(zhì)上看,通過繼承關(guān)系結(jié)合起來的基類和派生類,了系統(tǒng)中粒度更大的模塊。因此,它們彼此之間應(yīng)該結(jié)合得越緊密越好。為獲得緊密的繼承耦合,特殊類應(yīng)該確實是對它 的一般化類的一種具體化。因此,如果一個派生 類摒棄了它基類的許多屬性,則它們之間是松耦 合的。在設(shè)計時應(yīng)該使特殊類盡量多繼承并使用 其一般化類的屬性和服務(wù),從而更緊密地耦合到其一般化類。5. 強(qiáng)內(nèi)聚在面向?qū)ο笤O(shè)計中存在下述3種內(nèi)聚。(1) 服務(wù)內(nèi)聚。一個服務(wù)應(yīng)該完成一個且僅完成一個功能。(2) 類內(nèi)聚。設(shè)計類的原則是,一個類應(yīng)該只有一個用途,它的屬性和服務(wù)應(yīng)該是高內(nèi)聚的。類的 屬性和服務(wù)應(yīng)該全都是完成該類對象的

6、任務(wù)所必需的,其中不包含無用的屬性或服務(wù)。如果某個類有多個用途,通常應(yīng)該把它分解成多個的類。(3) 一般-特殊內(nèi)聚。設(shè)計出的一般-特殊結(jié)構(gòu),應(yīng)該符合多數(shù)人的概念,更準(zhǔn)確地說,這種結(jié)構(gòu)應(yīng) 該是對相應(yīng)的領(lǐng)域知識的正確抽取。一般說來,緊密的繼承耦合與高度的一般-特殊內(nèi)聚是一致的。6. 可重用重用基本上從設(shè)計階段開始。重用有兩方面的含義: 盡量使用已有的類(包括開發(fā)環(huán)境提供的類庫, 及以往開發(fā)類似系統(tǒng)時創(chuàng)建的類) 如果確實需要創(chuàng)建新類,則在設(shè)計這些新類的協(xié)議時,應(yīng)該考慮將來的可重復(fù)使用性。11.2啟發(fā)規(guī)則1. 設(shè)計結(jié)果應(yīng)該清晰易懂使設(shè)計結(jié)果清晰、易讀、易懂,是提高軟件可維護(hù)性和可重用性的重要措施。顯然

7、,人們重用那些他們不理解的設(shè)計。保證設(shè)計結(jié)果清晰易懂的主要因素如下。(1) 用詞一致。應(yīng)該使名字與它所代表的事物一致,而且應(yīng)該盡量使用人們習(xí)慣的名字。不同類中 相似服務(wù)的名字應(yīng)該相同。(2) 使用已有的協(xié)議。如果開發(fā)同一軟件的其他設(shè)計已經(jīng)建立了類的協(xié)議,或者在所使用的類庫中已有相應(yīng)的協(xié)議,則應(yīng)該使用這些已有的協(xié)議。(3) 減少消息模式的數(shù)目。如果已有標(biāo)準(zhǔn)的消息協(xié)議,設(shè)計應(yīng)該遵守這些協(xié)議。如果確需建立消息協(xié)議,則應(yīng)該盡量減少消息模式的數(shù)目,只要可能,就使消息具有一致的模式,以利于讀者理解。(4) 避免模糊的定義。一個類的用途應(yīng)該是有限的,而且應(yīng)該從類名可以較容易地推想出它的用途。2. 一般-特殊

8、結(jié)構(gòu)的深度應(yīng)適當(dāng)應(yīng)該使類等級中包含的層次數(shù)適當(dāng)。一般說來,在一個中等規(guī)模(大約包含100個類)的系統(tǒng)中,類等級 層次數(shù)應(yīng)保持為7±2。不應(yīng)該僅僅從方便編碼的角度出發(fā)隨意創(chuàng)建派生類,應(yīng)該使一般-特殊結(jié)構(gòu)與領(lǐng)域知識或常識保持一致。3. 設(shè)計簡單的類應(yīng)該盡量設(shè)計小而簡單的類,以便于開發(fā)和管理。 當(dāng)類很大的時候,要記住它的所有服務(wù)是非常的。經(jīng)驗表明,如果一個類的定義不超過一頁紙(或兩屏),則使用這個類是比較容易的。為使類保持簡單,應(yīng)該注意以下幾點。(1) 避免包含過多的屬性。屬性過多通常表明這個類過分復(fù)雜了,它所完成的功能可能太多了。(2) 有明確的定義。為了使類的定義明確,分配給每個類的任

9、務(wù)應(yīng)該簡單,最好能用一兩個簡單語句 描述它的任務(wù)。(3) 盡量簡化對象之間的合作關(guān)系。如果需要多個對象協(xié)同配合才能做好一件事,則破壞了類的簡明 性和清晰性。(4) 不要提供太多服務(wù)。一個類提供的服務(wù)過多, 同樣表明這個類過分復(fù)雜。典型地,一個類提供的 公共服務(wù)不超過7個。在開發(fā)大型軟件系統(tǒng)時,遵循上述啟發(fā)規(guī)則也會帶來另一個問題:設(shè)計出大量較小的類,這同樣會帶 來一定復(fù)雜性。解決這個問題的辦法,是把系統(tǒng)中 的類按邏輯分組,也就是劃分“主題”。4. 使用簡單的協(xié)議一般說來,消息中的參數(shù)不要超過3個。當(dāng)然,不超過3個的限制也不是絕對的,但是,經(jīng)驗表明, 通過復(fù)雜消息相互關(guān)聯(lián)的對象是緊耦合的,對一個對

10、象的修改往往導(dǎo)致其他對象的修改。5. 使用簡單的服務(wù)應(yīng)該盡量避免使用復(fù)雜的服務(wù)。面向?qū)ο笤O(shè)計出來的類中的服務(wù)通常都很小,一般只有35行源程序語句,可以用僅含一個動詞和一 個賓語的簡單句子描述它的功能。如果一個服務(wù)中 包含了過多的源程序語句,或者語句嵌套層次太多,或者使用了復(fù)雜的CASE語句,則應(yīng)該仔細(xì)檢查這個服務(wù),設(shè)法分解或簡化它。6. 把設(shè)計變動減至最小通常,設(shè)計的質(zhì)量越高,設(shè)計結(jié)果保持不變的時間 也越長。即使出現(xiàn)必須修改設(shè)計的情況,也應(yīng)該使 修改的范圍盡可能小。在設(shè)計的早期階段,變動較大,隨著時間推移,設(shè) 計方案日趨成熟,改動也越來越小了。圖11.1中的峰值與出現(xiàn)設(shè)計錯誤或發(fā)生非預(yù)期變動的

11、情況相對 應(yīng)。峰值越高,表明設(shè)計質(zhì)量越差,可重用性也越差。圖11.1 理想的設(shè)計變動情況11.3軟件重用11.3.1概述1. 重用重用也叫再用或復(fù)用,是指同一事物不作修改或稍 加改動就多次重復(fù)使用。廣義地說,軟件重用可分為以下3個層次:(1) 知識重用(例如,軟件工程知識的重用)。(2) 方法和標(biāo)準(zhǔn)的重用(例如,面向?qū)ο蠓椒ɑ蛑贫ǖ能浖_發(fā)規(guī)范的重用)。(3) 軟件成分的重用。前兩個重用層次屬于知識工程研究的范疇,本節(jié)僅討論軟件成分重用問題。2. 軟件成分的重用級別軟件成分的重用可以進(jìn)一步劃分成以下3個級別:(1) 代碼重用人們談?wù)摰米疃嗟氖谴a重用,通常把它理解為調(diào) 用庫中的模塊。實際上,代

12、碼重用也可以采用下列 幾種形式中的任何一種:源代碼剪貼:這是最原始的重用形式。這種重用方式的缺點,是或修改原有代碼時可能出錯,更糟糕的是,存在嚴(yán)重的配置管理問題,人們幾乎無法跟蹤原始代碼塊多次修改重用的過程。源代碼包含:許多程序設(shè)計語言都提供包含(include)庫中源代碼的機(jī)制。使用這種重用形式時,配置管理問題有所緩解,因為修改了庫中源代碼之后,所有包含它的程序自然都必須重新編譯。繼承:利用繼承機(jī)制重用類庫中的類時,無須修改已有的代碼,就可以擴(kuò)充或具體化在庫中找出的類,因此,基本上不存在配置管理問題。(2) 設(shè)計結(jié)果重用設(shè)計結(jié)果重用指的是,重用某個軟件系統(tǒng)的設(shè)計模型(即求解域模型)。這個級別

13、的重用有助于把一個應(yīng)用系統(tǒng)移植到完全不同的軟硬件平臺上。(3) 分析結(jié)果重用這是一種更高級別的重用,即重用某個系統(tǒng)的分析模型。這種重用特別適用于用戶需求未改變, 但系統(tǒng)體系結(jié)構(gòu)發(fā)生了根本變化的場合。3. 典型的可重用軟件成分更具體地說,可能被重用的軟件成分主要有以下10種:(1) 項目計劃。軟件項目計劃的基本結(jié)構(gòu)和許多內(nèi)容(例如,軟件質(zhì)量保證計劃)都是可以跨項目 重用的。這樣做減少了用于制定計劃的時間,也降 低了與建立進(jìn)度表和進(jìn)行風(fēng)險分析等活動相關(guān)聯(lián)的 不確定性。(2) 成本估計。因為在不同項目中經(jīng)常含有類似的功能,所以有可能在只做極少修改或根本不做修改的情況下,重用對該功能的成本估計結(jié)果。(

14、3) 體系結(jié)構(gòu)。即使在考慮不同的應(yīng)用領(lǐng)域時,也很少有截然不同的數(shù)據(jù)體系結(jié)構(gòu)。因此,有可能創(chuàng)建一組類屬的體系結(jié)構(gòu)模板(例如,事務(wù)處理體系結(jié)構(gòu)),并把那些模板作為可重用的設(shè)計框架。通常把類屬的體系結(jié)構(gòu)模板稱為領(lǐng)域體系結(jié)構(gòu)。(4) 需求模型和規(guī)格說明。類和對象的模型及規(guī)格說明是明顯的重用的候選者,此外,用傳統(tǒng)軟件工程方法開發(fā)的分析模型(例如,數(shù)據(jù)流圖),也是可重用的。(5) 設(shè)計。用傳統(tǒng)方法開發(fā)的體系結(jié)構(gòu)、數(shù) 據(jù)、接口和過程設(shè)計結(jié)果,是重用的候選者,更常見的是,系統(tǒng)和對象設(shè)計是可重用的。(6) 源代碼。用兼容的程序設(shè)計語言書寫的、經(jīng)過驗證的程序構(gòu)件,是重用的候選者。(7) 用戶文檔和技術(shù)文檔。即使的

15、應(yīng)用是不同的,也經(jīng)常有可能重用用戶文檔和技術(shù)文檔的大部分。(8) 用戶界面。這可能是最廣泛被重用的軟件成分,GUI(圖形用戶界面)軟件經(jīng)常被重用。因為它可占到一個應(yīng)用程序的60%代碼量,因此,重用的效果非常顯著。(9) 數(shù)據(jù)。在大多數(shù)經(jīng)常被重用的軟件成分中,被重用的數(shù)據(jù)包括: 內(nèi)部表、列表和結(jié)構(gòu),以及文件和完整的數(shù)據(jù)庫。(10) 測試用例。一旦設(shè)計或代碼構(gòu)件將被重用,相關(guān)的測試用例應(yīng)該“附屬于”它們也被重用。11.3.2類構(gòu)件利用面向?qū)ο蠹夹g(shù),可以更方便更有效地實現(xiàn)軟件重用。面向?qū)ο蠹夹g(shù)中的“類”,是比較理想的可重用軟構(gòu)件,不妨稱之為類構(gòu)件。類構(gòu)件有3種重用方式,分別是實例重用、繼承重用和多態(tài)

16、重用。下面進(jìn)一步講述與類構(gòu)件有關(guān)的內(nèi)容。1. 可重用軟構(gòu)件應(yīng)具備的特點為使軟構(gòu)件也像硬件集成電路那樣,能在構(gòu)造各種各樣的軟件系統(tǒng)時方便地重復(fù)使用,就必須使它們滿足下列要求。(1) 模塊性強(qiáng)。具有單一、完整的功能,且經(jīng)過反復(fù)測試被確認(rèn)是正確的。它應(yīng)該是一個不受或很少受外界干擾的封裝體,其內(nèi)部實現(xiàn)在外面是不可見的。(2) 具有高度可塑性。軟構(gòu)件的應(yīng)用環(huán)境比集成電路更廣闊、更復(fù)雜。顯然,要求一個軟構(gòu)件能滿足 任何一個系統(tǒng)的設(shè)計需求是不現(xiàn)實的。因此,可重 用的軟構(gòu)件必須具有高度可裁剪性,也就是說,必 須提供為適應(yīng)特定需求而擴(kuò)充或修改已有構(gòu)件的機(jī)制,而且所提供的機(jī)制必須使用起來非常簡單方便。(3) 接口

17、清晰、簡明、可靠。軟構(gòu)件應(yīng)該提供清晰、簡明、可靠的對外接口,而且還應(yīng)該有詳盡的 文檔說明,以方便用戶使用。精心設(shè)計的“類”基本上能滿足上述要求,可以認(rèn)為 它是可重用軟構(gòu)件的雛形。2. 類構(gòu)件的重用方式(1) 實例重用由于類的封裝性,使用者無須了解實現(xiàn)細(xì)節(jié)就可以使用適當(dāng)?shù)臉?gòu)造函數(shù),按照需要創(chuàng)建類的實例。然后向所創(chuàng)建的實例適當(dāng)?shù)南ⅲ瑔酉鄳?yīng)的服務(wù),完成需要完成的工作。這是最基本的重用方式。此外,還可以用幾個簡單的對象作為類的成員創(chuàng)建出一個更復(fù)雜的類,這是實例重用的另一種形式。(2) 繼承重用面向?qū)ο蠓椒ㄌ赜械睦^承性提供了一種對已有的類 構(gòu)件進(jìn)行裁剪的機(jī)制。當(dāng)已有的類構(gòu)件不能通過實 例重用完全滿足

18、當(dāng)前系統(tǒng)需求時,繼承重用提供了一種安全地修改已有類構(gòu)件,以便在當(dāng)前系統(tǒng)中重用的。為提高繼承重用的效果,關(guān)鍵是設(shè)計一個合理的、具有一定深度的類構(gòu)件繼承層次結(jié)構(gòu)。(3) 多態(tài)重用利用多態(tài)性不僅可以使對象的對外接口更加一般化 (基類與派生類的許多對外接口是相同的),從而降低了消息連接的復(fù)雜程度,而且還提供了一種簡便 可靠的軟構(gòu)件組合機(jī)制。系統(tǒng)運行時,根據(jù)接收消 息的對象類型,由多態(tài)性機(jī)制啟動正確的方法,去 響應(yīng)一個一般化的消息,從而簡化了消息界面和軟構(gòu)件連接過程。為充分實現(xiàn)多態(tài)重用,在設(shè)計類構(gòu)件時,應(yīng)該把注意力集中在下列一些可能影響重用性的操作上:與表示方法有關(guān)的操作。例如,不同實例的比較、 顯示、

19、擦除等等。與數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)大小等有關(guān)的操作。與外部設(shè)備有關(guān)的操作。例如,設(shè)備實現(xiàn)算法在將來可能會改進(jìn)(或改變)的。操作。如果不預(yù)先采取適當(dāng)措施,上述這些操作會妨礙類構(gòu)件的重用。11.3.3軟件重用的效益1. 質(zhì)量理想情況下,為了重用而開發(fā)的軟件構(gòu)件已被證明 是正確的,且沒有缺陷。事實上,由于不能定期進(jìn) 行形式化驗證,錯誤可能而且也確實存在。但是,隨著每一次重用,都會有一些錯誤被發(fā)現(xiàn)并被清除,構(gòu)件的質(zhì)量也會隨之。隨著時間的推移,構(gòu)件將變成實質(zhì)上無錯誤的。2. 生產(chǎn)率當(dāng)把可重用的軟件成分應(yīng)用于軟件開發(fā)的全過程時,創(chuàng)建計劃、模型、文檔、代碼和數(shù)據(jù)所需花費的時間將減少,從而將用較少的投入給客戶提供相同

20、級別的,因此,生產(chǎn)率得到了提高。由于應(yīng)用領(lǐng)域、問題復(fù)雜程度、項目組的結(jié)構(gòu)和大小、項目期限、可應(yīng)用的技術(shù)等許多因素都對項目 組的生產(chǎn)率有影響,因此,不同開發(fā)組織對軟件重 用帶來生產(chǎn)率提高的數(shù)字的報告并不相同,但基本 上30%50%的重用大約可以導(dǎo)致生產(chǎn)率提高25%40%。11.4系統(tǒng)分解人類解決復(fù)雜問題時普遍采用的策略是,“分而治之,各個擊破”。同樣,軟件工程師在設(shè)計比較復(fù) 雜的應(yīng)用系統(tǒng)時普遍采用的策略,也是首先把系統(tǒng) 分解成若干個比較小的部分,然后再分別設(shè)計每個部分。這樣做有利于降低設(shè)計的難度,有利于分工協(xié)作,也有利于維護(hù)對系統(tǒng)理解和維護(hù)。系統(tǒng)的主要組成部分稱為子系統(tǒng)。通常根據(jù)所提供的功能來劃

21、系統(tǒng)。一般說來,子系統(tǒng)的數(shù)目應(yīng)該規(guī)?;酒ヅ?。各個子系統(tǒng)之間應(yīng)該具有盡可能簡單、明確的接口。1. 子系統(tǒng)之間的兩種交互方式在軟件系統(tǒng)中,子系統(tǒng)之間的交互有兩種可能的方 式,分別是客戶-供應(yīng)商(Client-supplier)關(guān)系和平等伙伴(peer-to-peer)關(guān)系。(1) 客戶-供應(yīng)商關(guān)系在這種關(guān)系中,作為“客戶”的子系統(tǒng)調(diào)用作為“供應(yīng)商”的子系統(tǒng),后者完成某些服務(wù)工作并返回結(jié)果。使用這種交互方案,作為客戶的子系統(tǒng)必須了 解作為供應(yīng)商的子系統(tǒng)的接口,然而后者卻無須了 解前者的接口,因為任何交互行為都是由前者驅(qū)動 的。(2) 平等伙伴關(guān)系在這種關(guān)系中,每個子系統(tǒng)都可能調(diào)用其他子系統(tǒng),因此,

22、每個子系統(tǒng)都必須了解其他子系統(tǒng)的接 口。由于各個子系統(tǒng)需要相互了解對方的接口,因 此這種組織系統(tǒng)的方案比起客戶-供應(yīng)商方案來, 子系統(tǒng)之間的交互更復(fù)雜,而且這種交互方式還可 能存在通信環(huán)路,從而使系統(tǒng)難于理解,容易發(fā)生不易察覺的設(shè)計錯誤。總的說來,單向交互比雙向交互更容易理解,也更容易設(shè)計和修改,因此應(yīng)該盡量使用客戶-供應(yīng)商關(guān)系。2. 組織系統(tǒng)的兩種方案把子系統(tǒng)組織成完整的系統(tǒng)時,有水平層次組織和 垂直塊組織兩種方案可供選擇。(1) 層次組織這種組織方案把軟件系統(tǒng)組織成一個層次系統(tǒng),每層是一個子系統(tǒng)。上層在下層的基礎(chǔ)上建立,下層 為實現(xiàn)上層功能而提供必要的服務(wù)。每一層內(nèi)所包含的對象,彼此間相互,而處于不同層次上的對象,彼此間往往有關(guān)聯(lián)。實際上,在上、下層之間存在客戶-供應(yīng)商關(guān)系。低層子系統(tǒng)提供服務(wù),相當(dāng)于供應(yīng)商,上層子系統(tǒng)使用下層提供的服務(wù), 相當(dāng)于客戶。通常,在需求陳述中只描述了對系統(tǒng)頂層和底層的需求,頂層就是用戶看到的目標(biāo)系統(tǒng),底層則是可以使用的。這兩層往往差異很大,設(shè)計者必須設(shè)計一些中間層次,以減少不同層

溫馨提示

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

評論

0/150

提交評論