

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1,第8章面向?qū)ο笤O(shè)計(jì),8.1 面向?qū)ο笤O(shè)計(jì)的概念8.2 問(wèn)題域部分的設(shè)計(jì) 8.3 人-機(jī)交互子系統(tǒng)的設(shè)計(jì) 8.4 任務(wù)管理子系統(tǒng)設(shè)計(jì) 8.5 數(shù)據(jù)管理子系統(tǒng)設(shè)計(jì),2,8.1 面向?qū)ο笤O(shè)計(jì)的概念,8.1.1面向?qū)ο笤O(shè)計(jì)的準(zhǔn)則 8.1.2面向?qū)ο笤O(shè)計(jì)應(yīng)遵循的原則 8.1.3面向?qū)ο笤O(shè)計(jì)的內(nèi)容,,3,8.1.1 面向?qū)ο笤O(shè)計(jì)的準(zhǔn)則,模塊化 抽象化 信息隱藏和封裝 對(duì)象的高內(nèi)聚和弱耦合 可擴(kuò)充性可重用性,,4,模塊化,
2、模塊是軟件工程中一個(gè)基本的概念,它是軟件系統(tǒng)的基石。在結(jié)構(gòu)設(shè)計(jì)方法中,模塊是按系統(tǒng)功能的劃分而組織的執(zhí)行實(shí)體 .而在面向?qū)ο蠓椒ㄖ?,?duì)象就是模塊,它是把數(shù)據(jù)和處理數(shù)據(jù)的方法(服務(wù))結(jié)合在一起而構(gòu)成的概念實(shí)體。,,5,抽象化,包括過(guò)程抽象、數(shù)據(jù)抽象、規(guī)格說(shuō)明抽象及參數(shù)化抽象等。面向?qū)ο蠓椒戎С诌^(guò)程抽象,又支持?jǐn)?shù)據(jù)抽象。使用者無(wú)需知道操作符的實(shí)現(xiàn)算法和類中數(shù)據(jù)元素的具體表示方法,就可以通過(guò)操作符使用類中的數(shù)據(jù),6,信息隱藏和封裝,封裝是一
3、種數(shù)據(jù)的構(gòu)造方式,它從手段上保證了對(duì)象的數(shù)據(jù)結(jié)構(gòu)和服務(wù)實(shí)現(xiàn)的隱蔽。在面向?qū)ο蠓椒ㄖ校畔㈦[蔽是通過(guò)對(duì)對(duì)象的封裝來(lái)實(shí)現(xiàn)的。類和對(duì)象在構(gòu)造中將接口與實(shí)現(xiàn)過(guò)程分離,從而支持了實(shí)現(xiàn)過(guò)程信息的隱蔽。,7,對(duì)象的高內(nèi)聚和弱耦合,內(nèi)聚與耦合是軟件設(shè)計(jì)中評(píng)價(jià)模塊獨(dú)立性(也就是,模塊劃分的質(zhì)量)的指標(biāo)。在面向?qū)ο蠓椒ㄖ?,?duì)象和類成為基本模塊,因此,模塊內(nèi)聚就是指一個(gè)對(duì)象或類中其內(nèi)部屬性和服務(wù)相互聯(lián)系的緊密程度。在對(duì)象或類中存在三種不同類型的內(nèi)聚:? 服
4、務(wù)內(nèi)聚:對(duì)象中提供的服務(wù)在功能上、邏輯上的聯(lián)系密切程度。? 類內(nèi)聚:類的構(gòu)造原則是,一個(gè)類應(yīng)該只有一個(gè)用途,它的屬性和服務(wù)應(yīng)該是高內(nèi)聚的。類的屬性和服務(wù)應(yīng)該是完成該類承擔(dān)的任務(wù)所必需的,其中不應(yīng)有與任務(wù)無(wú)關(guān)的屬性或服務(wù)。如果某個(gè)類有多個(gè)用途,通常應(yīng)該把它分解成多個(gè)專用的類。,8,? “一般-特殊”內(nèi)聚;構(gòu)造一個(gè)類的“一般-特殊”結(jié)構(gòu),應(yīng)該符合問(wèn)題域中的知識(shí)或者一般常識(shí),更準(zhǔn)確地說(shuō),類的這種結(jié)構(gòu)應(yīng)該是相應(yīng)領(lǐng)域知識(shí)的正確表達(dá)。 耦
5、合是指一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間相互聯(lián)系的緊密程度。在面向?qū)ο蠓椒ㄖ惺亲罨镜哪K,因此,耦合主要指不同對(duì)象之間相互關(guān)聯(lián)的緊密程度。弱耦合是優(yōu)秀設(shè)計(jì)的一個(gè)重要標(biāo)準(zhǔn)。因?yàn)檫@有助于使得系統(tǒng)中某一部分的變化對(duì)其他部分的影響降到最低程度。在理想情況下,對(duì)某一部分的理解、測(cè)試或修改,無(wú)須涉及系統(tǒng)的其他部分。 如果一類對(duì)象過(guò)多地依賴其他類對(duì)象來(lái)完成自己的工作,則不僅給理解、測(cè)試或修改這個(gè)類帶來(lái)很大困難.而且還將大大降低該類的可重用性和可移植
6、性。,9,顯然,類之間的這種相互依賴關(guān)系是緊耦合的。 當(dāng)然,對(duì)象不可能是完全孤立的,當(dāng)兩個(gè)對(duì)象必須相互聯(lián)系相互依賴時(shí),應(yīng)該通過(guò)類的協(xié)議(即公共接口)實(shí)現(xiàn)耦合,而不應(yīng)該依賴于類的具體實(shí)現(xiàn)細(xì)節(jié)。一般說(shuō)來(lái),對(duì)象之間的耦合可分為兩大類:? 交互耦合。如果對(duì)象之間是通過(guò)消息來(lái)實(shí)現(xiàn)它們之間的聯(lián)系,這種聯(lián)系就是交互耦合。? 繼承耦合。繼承是一般類與特殊類之間耦合的一種形式,從本質(zhì)上看,通過(guò)繼承關(guān)系結(jié)合起來(lái)的基類和派生類,構(gòu)成了系統(tǒng)中粒度更大的模
7、塊。因此,它們彼此之間應(yīng)該結(jié)合得越緊密越好。,10,可擴(kuò)充性,面向?qū)ο笠讛U(kuò)充設(shè)計(jì),繼承機(jī)制以兩種方式支持?jǐn)U充設(shè)計(jì)。第一,繼承關(guān)系有助于復(fù)用已有定義,使開(kāi)發(fā)新定義更加容易。隨著繼承結(jié)構(gòu)逐漸變深,新類定義繼承的規(guī)格說(shuō)明和實(shí)現(xiàn)的量也就逐漸增大。這通常意味著,當(dāng)繼承結(jié)構(gòu)增長(zhǎng)時(shí),開(kāi)發(fā)一個(gè)新類的工作量反而逐漸減小。第二,在面向?qū)ο蟮恼Z(yǔ)言中,類型系統(tǒng)的多態(tài)性也支持可擴(kuò)充的設(shè)計(jì)。,11,可重用性,軟件可重用是提高軟件開(kāi)發(fā)生產(chǎn)率和目標(biāo)系統(tǒng)質(zhì)量的重要途徑。
8、重用基本上從設(shè)計(jì)階段開(kāi)始。重用有兩方面的含義:一是盡量使用已有的類(包括開(kāi)發(fā)環(huán)境提供的類庫(kù),及以往開(kāi)發(fā)類似系統(tǒng)時(shí)創(chuàng)建的類);二是在設(shè)計(jì)新類的協(xié)議時(shí),應(yīng)該考慮將來(lái)的可重復(fù)使用。,,12,8. 1.2 面向?qū)ο笤O(shè)計(jì)應(yīng)遵循的原則,人們使用面向?qū)ο蠓椒ㄩ_(kāi)發(fā)軟件有一定的歷史,積累了一些經(jīng)驗(yàn)。這些經(jīng)驗(yàn)往往能幫助軟件開(kāi)發(fā)人員提高面向?qū)ο笤O(shè)計(jì)的質(zhì)量。面向?qū)ο笤O(shè)計(jì)過(guò)程中應(yīng)當(dāng)遵循以下符合軟件工程目標(biāo)的設(shè)計(jì)原則: 設(shè)計(jì)的結(jié)果應(yīng)以清晰易懂為首要原則類的結(jié)
9、構(gòu)應(yīng)盡量簡(jiǎn)明,層次深度應(yīng)適當(dāng)盡量使用簡(jiǎn)單的協(xié)議盡量簡(jiǎn)單的服務(wù),,13,設(shè)計(jì)的結(jié)果應(yīng)以清晰易懂為首要原則,工程的首要原則就是清晰易懂,這主要體現(xiàn)在: ? 擁有含義明確的標(biāo)識(shí)符號(hào)。 ? 盡量采用已有的協(xié)議:如果開(kāi)發(fā)同—軟件的其他設(shè)計(jì)人員已經(jīng)建立了類的協(xié)議,在所使用的類庫(kù)中已有相應(yīng)的協(xié)議,則應(yīng)該使用這些已有的協(xié)議。 ? 減少消息模式的數(shù)目:如果已有標(biāo)準(zhǔn)的消息協(xié)議,設(shè)計(jì)人員應(yīng)該遵守這些協(xié)議。如果確需自己建立消息協(xié)議,則應(yīng)該盡量減少消息
10、模式的數(shù)目。,14,類的結(jié)構(gòu)應(yīng)盡量簡(jiǎn)明,層次深度應(yīng)適當(dāng),定義類的結(jié)構(gòu),不要太過(guò)復(fù)雜。一是結(jié)構(gòu)層次的分解應(yīng)當(dāng)有度;二是類的屬性不要太多。屬性過(guò)多通常表明這個(gè)類過(guò)于復(fù)雜,它所承擔(dān)的系統(tǒng)責(zé)任可能更多,應(yīng)當(dāng)分解它;三是分配給每個(gè)類完成的任務(wù)也應(yīng)該簡(jiǎn)單,并盡量簡(jiǎn)化對(duì)象之間的合作關(guān)系,如果完成一項(xiàng)任務(wù)需要太多的對(duì)象協(xié)同配合,可能會(huì)破壞類的簡(jiǎn)明性和清晰性;四是類中提供的服務(wù)應(yīng)當(dāng)少而精。 在大型軟件系統(tǒng)開(kāi)發(fā)中,類的大小和數(shù)量二者會(huì)呈現(xiàn)翹翹板現(xiàn)象,這
11、同樣會(huì)帶來(lái)一定的復(fù)雜性。解決這個(gè)問(wèn)題的辦法,是把系統(tǒng)中的類按邏輯分組,也就是劃分“主題”。,15,盡量使用簡(jiǎn)單的協(xié)議,一般說(shuō)來(lái),消息中的參數(shù)不要過(guò)多。經(jīng)驗(yàn)表明,通過(guò)復(fù)雜消息相互關(guān)聯(lián)的對(duì)象是高藕合的,一個(gè)對(duì)象的修改往往會(huì)導(dǎo)致其他對(duì)象的修改,產(chǎn)生修改副作用。,16,盡量簡(jiǎn)單的服務(wù),如果一個(gè)服務(wù)的實(shí)現(xiàn)算法過(guò)于復(fù)雜,應(yīng)該設(shè)法分解或簡(jiǎn)化它,一般說(shuō)來(lái),類和對(duì)象中應(yīng)該盡量避免使用復(fù)雜的服務(wù)。,17,8.1.3 面向?qū)ο笤O(shè)計(jì)的內(nèi)容,面向?qū)ο蟮脑O(shè)計(jì)從內(nèi)
12、容上包含系統(tǒng)設(shè)計(jì)和對(duì)象設(shè)計(jì)兩項(xiàng)。系統(tǒng)設(shè)計(jì) 對(duì)象/類的設(shè)計(jì),,18,系統(tǒng)設(shè)計(jì),系統(tǒng)設(shè)計(jì)的任務(wù)是,按照需求的目標(biāo),對(duì)軟件系統(tǒng)進(jìn)行總體結(jié)構(gòu)設(shè)計(jì),系統(tǒng)結(jié)構(gòu)是軟件的高層結(jié)構(gòu)形式,它主要由與實(shí)現(xiàn)有關(guān)的幾個(gè)子系統(tǒng)組成。如圖8.1給出了面向?qū)ο蟮能浖到y(tǒng)的結(jié)構(gòu)模型。,,19,系統(tǒng)設(shè)計(jì)過(guò)程中,應(yīng)當(dāng)在時(shí)間與空間、硬件與軟件、簡(jiǎn)單化和一般化、效率和可維護(hù)性之間做出有利于設(shè)計(jì)的權(quán)衡,其策略取決于具體問(wèn)題的應(yīng)用目標(biāo)。系統(tǒng)設(shè)計(jì)的內(nèi)容主要有:? 系統(tǒng)層次結(jié)構(gòu)
13、設(shè)計(jì)。結(jié)構(gòu)設(shè)計(jì)主要完成系統(tǒng)的總體結(jié)構(gòu)在水平方向上的層次劃分和垂直方向上的條塊劃分。從水平方向看,系統(tǒng)的層次反映了系統(tǒng)不同的抽象級(jí)別,而從垂直方向看,系統(tǒng)的條塊代表了系統(tǒng)提供的各項(xiàng)服務(wù)的功能。,20,? 系統(tǒng)數(shù)據(jù)存儲(chǔ)設(shè)計(jì)。主要確定系統(tǒng)中各個(gè)數(shù)據(jù)對(duì)象的存儲(chǔ)和訪問(wèn)方式,包括數(shù)據(jù)結(jié)構(gòu)、文件、數(shù)據(jù)庫(kù)等。這項(xiàng)設(shè)計(jì)依賴于所采用的數(shù)據(jù)支持系統(tǒng),如:文件系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng)等。? 系統(tǒng)資源訪問(wèn)設(shè)計(jì)。主要確定系統(tǒng)中需要使用的各種類型的資源以及實(shí)現(xiàn)這些資源
14、的訪問(wèn)和控制機(jī)制、安全性機(jī)制的設(shè)計(jì)。? 網(wǎng)絡(luò)與分布設(shè)計(jì)。在網(wǎng)絡(luò)環(huán)境下運(yùn)行一個(gè)面向?qū)ο笙到y(tǒng),還應(yīng)考慮網(wǎng)絡(luò)流量、分布式計(jì)算單元的計(jì)算能力和系統(tǒng)的總體效率的綜合平衡設(shè)計(jì)。這對(duì)于系統(tǒng)總體效能的發(fā)揮有重要作用。,21,? 并發(fā)性設(shè)計(jì)。主要確定系統(tǒng)中并發(fā)執(zhí)行的對(duì)象,并設(shè)計(jì)這些對(duì)象的并發(fā)執(zhí)行方式及控制策略的實(shí)現(xiàn)方案。? 對(duì)象交互行為方式設(shè)計(jì)。在面向?qū)ο笙到y(tǒng)中,對(duì)象之間的交互行為有過(guò)程驅(qū)動(dòng)、事件驅(qū)動(dòng)、并發(fā)驅(qū)動(dòng)等幾種方式。這些方式中需要以消息的形式相
15、互傳遞動(dòng)態(tài)信息以協(xié)調(diào)對(duì)象之間的行為。交互行為方式設(shè)計(jì)就是為對(duì)象的動(dòng)態(tài)交互設(shè)計(jì)一個(gè)技術(shù)實(shí)現(xiàn)的方案。,22,對(duì)象/類的設(shè)計(jì),對(duì)象/類的設(shè)計(jì)是按照技術(shù)實(shí)現(xiàn)的策略,將分析階段的對(duì)象模型進(jìn)行擴(kuò)充、修改進(jìn)化并轉(zhuǎn)換為技術(shù)可實(shí)現(xiàn)實(shí)體的過(guò)程。對(duì)象設(shè)計(jì)主要分為:? 對(duì)象靜態(tài)結(jié)構(gòu)的設(shè)計(jì)。對(duì)象靜態(tài)結(jié)構(gòu)設(shè)計(jì)的任務(wù)是按照內(nèi)容擴(kuò)展、類結(jié)構(gòu)重構(gòu)、提高靜態(tài)結(jié)構(gòu)重用性的原則,將對(duì)象分析模型進(jìn)行調(diào)整、進(jìn)化、轉(zhuǎn)換為技術(shù)上可實(shí)現(xiàn)的對(duì)象靜態(tài)結(jié)構(gòu)的設(shè)計(jì)模型。? 對(duì)象動(dòng)態(tài)行為模型
16、的設(shè)計(jì)。根據(jù)對(duì)象靜態(tài)結(jié)構(gòu)設(shè)計(jì)的結(jié)果,進(jìn)一步分析對(duì)象的動(dòng)態(tài)行為模式,將分析階段的動(dòng)態(tài)模型按照設(shè)計(jì)策略轉(zhuǎn)換為對(duì)象設(shè)計(jì)模型中的服務(wù)引用序列。同時(shí)還要設(shè)計(jì)服務(wù)的實(shí)現(xiàn)算法及必需的內(nèi)部操作。算法設(shè)計(jì)中要綜合考慮復(fù)雜性、簡(jiǎn)單性、性能優(yōu)化等因素。,23,通過(guò)以上兩個(gè)步驟的設(shè)計(jì)可獲得系統(tǒng)的設(shè)計(jì)模型(在分析模型的基礎(chǔ)上逐步修改、調(diào)整、變換得到)。設(shè)計(jì)模型是面向?qū)ο髮?shí)現(xiàn)的基礎(chǔ)。,24,8.2 問(wèn)題域部分的設(shè)計(jì),通過(guò)面向?qū)ο蠓治鏊贸龅膯?wèn)題域精確模型。為設(shè)計(jì)
17、問(wèn)題域子系統(tǒng)奠定了良好的基礎(chǔ),建立了完整的框架。通常,面向?qū)ο笤O(shè)計(jì)僅需從實(shí)現(xiàn)角度對(duì)問(wèn)題域模型作一些補(bǔ)充或修改,主要是增添、合并或分解類與對(duì)象、屬性及服務(wù),調(diào)整繼承關(guān)系等等。當(dāng)問(wèn)題域子系統(tǒng)過(guò)分復(fù)雜龐大時(shí),應(yīng)該把它進(jìn)一步分解成若干個(gè)小的子系統(tǒng)。 使用面向?qū)ο蠓椒▽W(xué)開(kāi)發(fā)軟件,能夠保持問(wèn)題域組織框架的穩(wěn)定性,從而便于追蹤分析、設(shè)計(jì)和編程的結(jié)果。在設(shè)計(jì)與實(shí)現(xiàn)過(guò)程中所做的細(xì)節(jié)修改(例如,增加具體類,增加屬性或服務(wù)),并不影響開(kāi)發(fā)結(jié)果的穩(wěn)定性
18、,因?yàn)橄到y(tǒng)的總體框架是基于問(wèn)題域的。,,,對(duì)于需求可能隨時(shí)間變化的系統(tǒng)來(lái)說(shuō),穩(wěn)定性是至關(guān)重要的。穩(wěn)定性也是能夠在類似系統(tǒng)中重用分析、設(shè)計(jì)和編程結(jié)果的關(guān)鍵因素。為更好地支持系統(tǒng)在其生命期中的擴(kuò)充,也同樣需要穩(wěn)定性。 面向?qū)ο蠓椒ǖ暮诵氖?,促使人們按照?wèn)題本身去組織系統(tǒng)的概念框架。無(wú)論分析、設(shè)計(jì)、實(shí)現(xiàn),每一個(gè)階段都是按照問(wèn)題域本身的樣子去構(gòu)造、組織的。因此,問(wèn)題域子系統(tǒng)是軟件系統(tǒng)中定義問(wèn)題、表達(dá)類和對(duì)象靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)交互關(guān)系的求解模
19、型,它是軟件系統(tǒng)的核心;問(wèn)題域子系統(tǒng)是以分析階段的對(duì)象模型和動(dòng)態(tài)模型為基礎(chǔ)。從技術(shù)實(shí)現(xiàn)的角度對(duì)模型進(jìn)行必要的補(bǔ)充或修改。問(wèn)題域子系統(tǒng)設(shè)計(jì)的主要內(nèi)容有:(1)按照需求信息的最新變動(dòng)調(diào)整并修改模型系統(tǒng)需求的變化只需要先修改面向?qū)ο蠓治瞿P停缓笤侔堰@些修改反映到問(wèn)題域子系統(tǒng)中。,,(2)調(diào)整和組合問(wèn)題域中的類 良好的類定義是面向?qū)ο笤O(shè)計(jì)工作的關(guān)鍵。在研究分析模型時(shí)、必須對(duì)類的定義和內(nèi)容做認(rèn)真仔細(xì)的分析。首先應(yīng)盡量使用(復(fù)用)已
20、定義好的類(許多面向?qū)ο蟮拈_(kāi)發(fā)工具都提供了定義良好的基類),或從復(fù)用類中添加“一般-特殊”關(guān)系派生出與問(wèn)題域相關(guān)的類,這樣就可以利用繼承關(guān)系,復(fù)用繼承來(lái)的屬性和服務(wù)功能。 若確實(shí)沒(méi)有可供復(fù)用的類而必須創(chuàng)建新類時(shí)。也應(yīng)當(dāng)充分考慮新類的協(xié)議內(nèi)容、以利于今后的復(fù)用。 另外,若在設(shè)計(jì)過(guò)程中發(fā)現(xiàn),一些具體類需要定義一個(gè)公共協(xié)議,也就是說(shuō),這些類都需要定義一組類似的服務(wù)(很可能還需要相應(yīng)的屬性)。在這種情況下可以引入一個(gè)父類(或者叫
21、根類),以便建立這個(gè)協(xié)議(即命名公共服務(wù)集合)。,,(3)調(diào)整對(duì)象模型中繼承的支持級(jí)別 如果對(duì)象模型中包含了多重繼承關(guān)系,然而所使用的程序設(shè)計(jì)語(yǔ)言都并不提供多重繼承機(jī)制,則在問(wèn)題域子系統(tǒng)的設(shè)計(jì)中,應(yīng)該把對(duì)象模型中的多重繼承結(jié)構(gòu)轉(zhuǎn)換成單繼承結(jié)構(gòu)。 支持繼承機(jī)制的語(yǔ)言能直接描述問(wèn)題域中固有的語(yǔ)義,并能表示公共的屬性和服務(wù),為重用奠定了較好的基礎(chǔ)。因此,只要可能,就應(yīng)該使用具有繼承機(jī)制的語(yǔ)言開(kāi)發(fā)軟件系統(tǒng)。 (4)改進(jìn)系統(tǒng)性
22、能 性能是評(píng)價(jià)一個(gè)系統(tǒng)運(yùn)行效率的重要指標(biāo),性能的改進(jìn)主要從系統(tǒng)的運(yùn)行速度、空間消耗、成本的節(jié)省、用戶滿意度等方面進(jìn)行,如在類及對(duì)象中擴(kuò)充一些保存臨時(shí)結(jié)果的屬性、以節(jié)省計(jì)算時(shí)間;盡量合并那些運(yùn)行時(shí)需要頻繁交換信息的對(duì)象類。,,( 5)增加低層細(xì)節(jié) 從技術(shù)實(shí)現(xiàn)的角度,將問(wèn)題域中—些低層的細(xì)節(jié)信息(主要是與硬件、設(shè)備或物理聯(lián)結(jié)相關(guān)的信息)分離成獨(dú)立的細(xì)節(jié)類,以隔離高層的邏輯實(shí)現(xiàn)。 當(dāng)問(wèn)題域子系統(tǒng)規(guī)模較大時(shí),可將其分解為若干
23、個(gè)更小的部分。 圖8.2給出了ATM系統(tǒng)的問(wèn)題域子系統(tǒng)的結(jié)構(gòu)。在面向?qū)ο笤O(shè)計(jì)過(guò)程中,把ATM系統(tǒng)的問(wèn)題域子系統(tǒng),進(jìn)一步劃分成了3個(gè)更小的子系統(tǒng),它們分別是:ATM站子系統(tǒng)、中央計(jì)算機(jī)子系統(tǒng)和分行計(jì)算機(jī)子系統(tǒng)。它們的拓?fù)浣Y(jié)構(gòu)為星形,以中央計(jì)算機(jī)為中心向外輻射,同所有ATM站及分行計(jì)算機(jī)通信。物理聯(lián)結(jié)用專用電話線實(shí)現(xiàn)。根據(jù)ATM站號(hào)和分行代碼,區(qū)分由每個(gè)ATM站和每臺(tái)分行計(jì)算機(jī)聯(lián)向中央計(jì)算機(jī)的電話線。 由于在面向?qū)ο蠓治鲞^(guò)程中已經(jīng)
24、對(duì)ATM系統(tǒng)作了相當(dāng)仔細(xì)的分析,而且假設(shè)所使用的實(shí)現(xiàn)環(huán)境能完全支持面向?qū)ο蠓治瞿P偷膶?shí)現(xiàn),因此,在面向?qū)ο笤O(shè)計(jì)階段無(wú)須對(duì)已有的問(wèn)題域模型作實(shí)質(zhì)性的修改或擴(kuò)充。,,,30,8.3人-機(jī)交互子系統(tǒng)的設(shè)計(jì),人-機(jī)交互部分突出人如何命令系統(tǒng)以及系統(tǒng)如何向用戶提交信息。人-機(jī)交互部分的友好性直接關(guān)系到一個(gè)軟件系統(tǒng)的成敗,設(shè)計(jì)結(jié)果對(duì)用戶情緒和工作效率產(chǎn)生重要影響。交互界面設(shè)計(jì)的好,則會(huì)使系統(tǒng)對(duì)用戶產(chǎn)生吸引力,能夠激發(fā)用戶的創(chuàng)造力,提高工作效率。相反
25、,設(shè)計(jì)的不好則會(huì)使用戶感到不適應(yīng),不方便,甚至厭煩情緒。 面向?qū)ο蠓治鲞^(guò)程中,對(duì)用戶界面已作了初步的分析。在面向?qū)ο蟮脑O(shè)計(jì)階段,則對(duì)系統(tǒng)的人-機(jī)交互子系統(tǒng)進(jìn)行詳細(xì)設(shè)計(jì),以確定人-機(jī)交互的細(xì)節(jié),其中包括指定窗口和報(bào)表的形式、設(shè)計(jì)命令層次等項(xiàng)內(nèi)容。 8.3.1 界面系統(tǒng)的設(shè)計(jì)原則 8.3.2 分類用戶和描述用戶 8.3.3 界面元素及命令層次的設(shè)計(jì),,31,8.3.1 界面系統(tǒng)的設(shè)計(jì)原則,軟件工程中關(guān)于用戶
26、界面的設(shè)計(jì)主要遵循以下原則:(1)界面形式應(yīng)力求簡(jiǎn)單、友好。(2)界面系統(tǒng)應(yīng)提供一定的容錯(cuò)或糾錯(cuò)機(jī)制。人在與系統(tǒng)交互的過(guò)程中難免會(huì)犯錯(cuò)誤,因此,應(yīng)該提供“撤消(undo)”命令時(shí)撤消錯(cuò)誤動(dòng)作,消除錯(cuò)誤動(dòng)作造成的后果。(3)符合用戶的實(shí)際需求和使用習(xí)慣。 設(shè)計(jì)一個(gè)軟件系統(tǒng)的界面時(shí),應(yīng)分析不同類別用戶的實(shí)際需求,以及充分考慮用戶的知識(shí)、技能水平,確定用戶滿意的、并樂(lè)于接受的界面形式和結(jié)構(gòu)。,,32,8.3.2 分類用戶和描述用
27、戶,人機(jī)交互界面是給用戶使用的,為設(shè)計(jì)好人機(jī)交互部分,設(shè)計(jì)者必須認(rèn)真研究使用它的用戶。把自己置身于用戶的地位,身臨其境地觀察人們?nèi)绾蔚刈鏊麄兊墓ぷ?,這對(duì)設(shè)計(jì)人機(jī)交互界面是非常必要的??紤]人們想達(dá)到什么目的、完成什么任務(wù)、你能提供什么具體工具來(lái)支持那些任務(wù)的完成?工具如何做的最協(xié)調(diào)、使用方便?通常從一下幾個(gè)方面考慮: ( 1) 按技能層次分類 初學(xué)者、初級(jí)、中級(jí)、高級(jí)。,,,(2)按職務(wù)分類 總經(jīng)理、經(jīng)
28、理、管理人員、辦事員。 (3)按不同組的成員分類 職員、顧客。 應(yīng)該仔細(xì)了解將來(lái)使用系統(tǒng)的每類用戶的情況,把獲得的下列各項(xiàng)信息記錄下來(lái):? 用戶類型? 使用系統(tǒng)要達(dá)到的目的? 特征(年齡、性別、受教育程度、限制因素等)? 成功的關(guān)鍵因素(需求、愛(ài)好、習(xí)慣等)? 技能水平? 完成本職工作的腳本。,34,8.3.3 界面元素及命令層次的設(shè)計(jì),以Windows為代表的圖形界面形式已成為微機(jī)平臺(tái)上軟件應(yīng)用系統(tǒng)事實(shí)上的界面
29、標(biāo)準(zhǔn)。設(shè)計(jì)系統(tǒng)圖形用戶界面時(shí),采用的界面元素應(yīng)與Windows應(yīng)用程序界面相一致,并遵守廣大用戶的習(xí)慣約定,這樣才會(huì)被用戶接受和喜愛(ài)。 命令層次就是采用過(guò)程抽象機(jī)制,將系統(tǒng)提供的功能以命令的形式組織起來(lái),并按照界面的設(shè)計(jì)原,用友好的、標(biāo)準(zhǔn)的界面元素表達(dá)的一種層次結(jié)構(gòu)。 設(shè)計(jì)命令層次時(shí),通常先對(duì)系統(tǒng)提供的服務(wù)功能進(jìn)行過(guò)程抽象,然后再按下列因素綜合設(shè)計(jì):,,,(1)次序:仔細(xì)選擇每個(gè)服務(wù)的名字,并在命令層
30、的每一部分內(nèi)把服務(wù)排好次序, 排序時(shí)或者把最常用的服務(wù)放在最前面,或者按照用戶習(xí)慣的工作步驟排序。(2)整體-部分關(guān)系:尋找在這些服務(wù)中存在的整體—部分模式,這樣做有助于在命令層中將服務(wù)分組。(3)寬度和深度:由于人的短期記憶能力有限,命令層次的寬度和深度都不應(yīng)該過(guò)大。(4)操作步驟:應(yīng)該用盡量少的單擊、拖動(dòng)和擊鍵組合來(lái)表達(dá)命令,而且應(yīng)該為高級(jí)用戶提供簡(jiǎn)捷的操作方法。界面系統(tǒng)的設(shè)計(jì)可利用面向?qū)ο箝_(kāi)發(fā)工具提供的人-界面類實(shí)現(xiàn)。例
31、如,在Windows環(huán)境下遠(yuǎn)行的Visual C++語(yǔ)言提供了MFC類庫(kù),設(shè)計(jì)人—機(jī)界面類時(shí),往往僅需從MFC類庫(kù)中選出一些適用的類,然后從這些類派生出符合自己需要的類就可以了。,36,8.4 任務(wù)管理子系統(tǒng)設(shè)計(jì),軟件系統(tǒng)是完成系統(tǒng)任務(wù)的一個(gè)邏輯實(shí)體。在軟件系統(tǒng)所完成的任務(wù)中,有些任務(wù)是順序完成的,而有些任務(wù)必須以并發(fā)交替的方式完成。 用傳統(tǒng)方法設(shè)計(jì)的軟件系統(tǒng),其任務(wù)的執(zhí)行方式多是順序的。因此其任務(wù)管理的功能可以很簡(jiǎn)單
32、。而在面向?qū)ο蟮能浖到y(tǒng)中,一個(gè)任務(wù)的完成可能需要多個(gè)對(duì)象以并發(fā)交互的方式協(xié)同配合。這個(gè)并發(fā)任務(wù)的執(zhí)行過(guò)程可以通過(guò)分析階段的動(dòng)態(tài)模型來(lái)識(shí)別和確認(rèn)。,,,如果兩個(gè)對(duì)象之間不存在信息交互,則這兩個(gè)對(duì)象在本質(zhì)上是可以并發(fā)活動(dòng)的, 通過(guò)檢查各個(gè)對(duì)象的狀態(tài)圖及它們之間交換的事件,能夠把若干個(gè)非并發(fā)的對(duì)象歸并到一條控制線中。所謂控制線,是一條遍及狀態(tài)圖集合的路徑,在這條路徑上每次只有—個(gè)對(duì)象是活動(dòng)的。在計(jì)算機(jī)系統(tǒng)中用任務(wù)(task)來(lái)實(shí)現(xiàn)這一條控
33、制線,也可以將任務(wù)視為—連串活動(dòng)(其含義由服務(wù)代碼定義)構(gòu)成的一個(gè)進(jìn)程(process)。若干個(gè)任務(wù)的并發(fā)執(zhí)行稱為多任務(wù)。 對(duì)于某些應(yīng)用系統(tǒng)來(lái)說(shuō),通過(guò)劃分任務(wù),可以簡(jiǎn)化系統(tǒng)結(jié)構(gòu)的設(shè)計(jì)及部分編碼工作,不同的任務(wù)標(biāo)識(shí)了必須同時(shí)發(fā)生的不同行為,任務(wù)的并發(fā)行為可以在多處理器硬件上實(shí)現(xiàn),但為此要增加進(jìn)程之間的通信任務(wù)。也可以在單處理器的計(jì)算機(jī)上,借助多任務(wù)操作系統(tǒng)的支持,以時(shí)間片輪轉(zhuǎn)的分時(shí)共享方式執(zhí)行。 常見(jiàn)的任務(wù)有事件驅(qū)動(dòng)型任
34、務(wù)、時(shí)鐘驅(qū)動(dòng)型任務(wù)、優(yōu)先任務(wù)、關(guān)鍵任務(wù)和協(xié)調(diào)任務(wù)等。設(shè)計(jì)任務(wù)管理子系統(tǒng),包括確定各類任務(wù)并把任務(wù)分配給適當(dāng)?shù)挠布蜍浖?zhí)行。,,1.確定事件驅(qū)動(dòng)型任務(wù)2.確定時(shí)鐘驅(qū)動(dòng)型任務(wù)3.確定優(yōu)先任務(wù)和關(guān)鍵任務(wù)4.確定協(xié)調(diào)任務(wù) 5. 確定資源需求,39,1.確定事件驅(qū)動(dòng)型任務(wù),一些負(fù)責(zé)與硬件設(shè)備通信的任務(wù)是由事件驅(qū)動(dòng)的,也就是說(shuō),這種任務(wù)可由事件來(lái)激發(fā),通常,事件是表明某些數(shù)據(jù)到達(dá)的信號(hào)。 在系統(tǒng)運(yùn)行時(shí),這類任務(wù)的工作過(guò)
35、程如下,任務(wù)處于睡眠狀態(tài)(不消耗處理器時(shí)間),等待來(lái)自數(shù)據(jù)線或其他數(shù)據(jù)源的中斷;一旦接收到中斷,就喚醒了該任務(wù),接收數(shù)據(jù)并把數(shù)據(jù)放入內(nèi)存緩沖區(qū)或其他目的地,通知需要知道這件事的對(duì)象,然后該任務(wù)又回到睡眠狀態(tài)。,,40,2.確定時(shí)鐘驅(qū)動(dòng)型任務(wù),以固定的時(shí)間間隔激發(fā)某事件,以執(zhí)行一些處理.例如,某些設(shè)備需要周期性地獲得數(shù)據(jù);某些人-機(jī)接口、子系統(tǒng)、任務(wù)、處理器或其他系統(tǒng)也可能需要周期性地通信。因此時(shí)鐘驅(qū)動(dòng)型任務(wù)應(yīng)運(yùn)而生。
36、 時(shí)鐘驅(qū)動(dòng)型任務(wù)的工作過(guò)程如下:任務(wù)設(shè)置了喚醒時(shí)間后進(jìn)入睡眠狀態(tài);任務(wù)睡眠(不消耗處理器時(shí)間),等待來(lái)自系統(tǒng)的中斷;一旦接收到這種中斷,任務(wù)就被喚醒,執(zhí)行它的工作,再通知所有有關(guān)的對(duì)象,然后該任務(wù)又回到睡眠狀態(tài)。,,41,3.確定優(yōu)先任務(wù)和關(guān)鍵任務(wù),任務(wù)優(yōu)先級(jí)能根據(jù)需要調(diào)節(jié)實(shí)時(shí)處理的優(yōu)先級(jí)次序。保證緊急事件能在限定的時(shí)間內(nèi)得到處理。優(yōu)先級(jí)分為:? 高優(yōu)先級(jí):某些服務(wù)完成一些有特權(quán)的操作,如資源調(diào)度、實(shí)時(shí)處理等。而被賦予了很高的優(yōu)
37、先級(jí)。為了在嚴(yán)格限定的時(shí)間內(nèi)完成這種服務(wù),就需要把這類服務(wù)分離成獨(dú)立的、高優(yōu)先級(jí)的任務(wù)。? 低優(yōu)先級(jí):與高優(yōu)先級(jí)相反,有些服務(wù)的工作不是特別重要,系統(tǒng)在允許的情況下才會(huì)去執(zhí)行它們;這類任務(wù)屬于低優(yōu)先級(jí)處理(通常指那些背景處理)。設(shè)計(jì)時(shí)應(yīng)該將這類服務(wù)分離出來(lái)。,,,關(guān)鍵任務(wù)是有關(guān)系統(tǒng)成功或失敗的關(guān)鍵處理,這類處理通常都有嚴(yán)格的可靠性要求。在設(shè)計(jì)過(guò)程中可能用額外的任務(wù)把這樣的關(guān)鍵處理分離出來(lái),以滿足高可靠性處理的要求。對(duì)高可靠性處理應(yīng)該精
38、心設(shè)計(jì)和編碼,并且應(yīng)該嚴(yán)格測(cè)試。,43,4.確定協(xié)調(diào)任務(wù),當(dāng)系統(tǒng)中存在三個(gè)以上任務(wù)時(shí),就應(yīng)該增加一個(gè)任務(wù),用它作為協(xié)調(diào)任務(wù)。引入?yún)f(xié)調(diào)任務(wù)有助于把不同任務(wù)之間的協(xié)調(diào)控制封裝起來(lái)。該任務(wù)可以使用狀態(tài)轉(zhuǎn)換矩陣來(lái)描述。這類任務(wù)應(yīng)該僅做協(xié)調(diào)工作,不要把本屬于被協(xié)調(diào)任務(wù)的類和對(duì)象的操作分配給他們。,,44,5. 確定資源需求,使用多處理器或固件,主要是為了滿足高性能的需求。設(shè)計(jì)者必須通過(guò)計(jì)算系統(tǒng)載荷(即每秒處理的業(yè)務(wù)數(shù)及處理一個(gè)業(yè)務(wù)所花費(fèi)的時(shí)間),
39、來(lái)估算所需要的CPU(或其他固件)的處理能力。 設(shè)計(jì)者應(yīng)該綜合考慮各種因素,以決定哪些子系統(tǒng)用硬件實(shí)現(xiàn),哪些子系統(tǒng)用軟件實(shí)現(xiàn)。設(shè)計(jì)者必須綜合權(quán)衡一致性、成本和性能等多種因素,還要考慮未來(lái)的可擴(kuò)充性和可修改性。,,45,8.5 數(shù)據(jù)管理子系統(tǒng)設(shè)計(jì),數(shù)據(jù)管理子系統(tǒng)的作用是:在某種數(shù)據(jù)庫(kù)管理系統(tǒng)的支持下提供數(shù)據(jù)存儲(chǔ)和訪問(wèn)的協(xié)調(diào)、控制功能。 8.5.1數(shù)據(jù)存儲(chǔ)管理的三種模式 8.5.2 數(shù)據(jù)管理子系統(tǒng)的設(shè)計(jì)內(nèi)容
40、8.5.3 類中提供的服務(wù)的設(shè)計(jì),,46,(1)數(shù)據(jù)存放格式的設(shè)計(jì),數(shù)據(jù)存放格式的設(shè)計(jì)與系統(tǒng)基于的數(shù)據(jù)庫(kù)管理模式密切相關(guān)。 對(duì)于基于文件系統(tǒng)的面向?qū)ο蟮能浖?lái)說(shuō),數(shù)據(jù)存放格式的設(shè)計(jì)方法是:將每個(gè)類的屬性集合規(guī)范成第—范式(1BNF)的關(guān)系表,然后為每個(gè)第一范式表定義一個(gè)文件。 對(duì)于基于關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的面向?qū)ο筌浖?lái)說(shuō),數(shù)據(jù)存放格式的設(shè)計(jì)方法是:將每個(gè)類的屬性集規(guī)范成第三范式(3BNF)的關(guān)系表,然后為每個(gè)第一范式表定義一個(gè)
41、數(shù)據(jù)庫(kù)。,,,對(duì)于基于面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng)的面向?qū)ο筌浖?lái)說(shuō),如果開(kāi)發(fā)工具是擴(kuò)展的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),那么數(shù)據(jù)存放格式的設(shè)計(jì)方法與關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)相同,如果開(kāi)發(fā)工具是擴(kuò)展的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的話,數(shù)據(jù)存放格式的設(shè)計(jì)就不需要對(duì)屬性進(jìn)行規(guī)范,因?yàn)閿?shù)據(jù)庫(kù)管理系統(tǒng)本身具有把對(duì)象值映射成存儲(chǔ)值的功能。,48,(2)數(shù)據(jù)存放服務(wù)的設(shè)計(jì),某個(gè)類的對(duì)象需要存儲(chǔ)在內(nèi)存文件中,就需要在這個(gè)類中增加一個(gè)屬性和服務(wù)。專門用于實(shí)現(xiàn)對(duì)象自身的存儲(chǔ)工作。因?qū)ο蟠鎯?chǔ)
42、而增加的屬性和服務(wù)應(yīng)該“隱含”于面向?qū)ο笤O(shè)計(jì)模型中的屬性層和服務(wù)層,只需在相應(yīng)的類與對(duì)象的規(guī)格說(shuō)明中描述。 一個(gè)對(duì)象中,專門用于“存儲(chǔ)自己”的屬性和服務(wù),能在系統(tǒng)的問(wèn)題子系統(tǒng)和數(shù)據(jù)管理子系統(tǒng)之間建立起必要的連接。設(shè)計(jì)時(shí)可以在某個(gè)適當(dāng)?shù)幕愔卸x這樣的屬性和服務(wù)。然后利用多重繼承機(jī)制,由某個(gè)需要存儲(chǔ)其對(duì)象的類來(lái)繼承。 對(duì)于基于文件系統(tǒng)的面向?qū)ο筌浖?lái)說(shuō),對(duì)象需要知道打開(kāi)哪個(gè)文件,如何尋找記錄位置,如
43、何檢索、更新文件中的記錄。,,,,對(duì)于基于關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的面向?qū)ο蟮能浖?lái)說(shuō),對(duì)象需要知道打開(kāi)哪些數(shù)據(jù)庫(kù)。如何存取所需字段,如何檢索、更新數(shù)據(jù)庫(kù)中的對(duì)象記錄。 對(duì)于基于面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng)的面向?qū)ο筌浖?lái)說(shuō),如果系統(tǒng)是擴(kuò)展的關(guān)系數(shù)據(jù)庫(kù)的話,對(duì)象存儲(chǔ)服務(wù)的方法與基于關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的方法相同。如果系統(tǒng)是擴(kuò)展的面向?qū)ο笳Z(yǔ)言的話,對(duì)象存儲(chǔ)服務(wù)的方法由該系統(tǒng)本身提供。只要標(biāo)識(shí)出每個(gè)需要保存的對(duì)象即可,至于如何保存和恢復(fù),則由面向?qū)ο?/p>
44、的數(shù)據(jù)庫(kù)管理系統(tǒng)負(fù)責(zé)。,50,8.5.3 類中提供的服務(wù)的設(shè)計(jì),在分析階段得到的對(duì)象模型中,一般并不詳細(xì)定義類中提供的服務(wù)。而在面向?qū)ο蟮脑O(shè)計(jì)中,定義一個(gè)類提供的服務(wù)則是它的一項(xiàng)重要任務(wù)。 (1)確定每一個(gè)類中應(yīng)有的服務(wù) (2)服務(wù)算法的設(shè)計(jì),,51,(1)確定每一個(gè)類中應(yīng)有的服務(wù),綜合研究分析對(duì)象模型、動(dòng)態(tài)模型和功能模型中反映的信息,是確定類中應(yīng)有服務(wù)的關(guān)鍵。對(duì)象模型表達(dá)了類和對(duì)象的靜態(tài)結(jié)構(gòu)及對(duì)象之間的關(guān)聯(lián)關(guān)系,由此可以確定每個(gè)類
45、中最核心的幾項(xiàng)服務(wù)。 動(dòng)態(tài)模型和功能模型中分別定義了對(duì)象的動(dòng)態(tài)行為模式和數(shù)據(jù)的處理流程,設(shè)計(jì)者應(yīng)設(shè)法將這些信息轉(zhuǎn)換成適當(dāng)?shù)念愃峁┑姆?wù)。 例如,一張狀態(tài)圖描述了一個(gè)對(duì)象的生命周期,圖中的狀態(tài)轉(zhuǎn)換是執(zhí)行對(duì)象服務(wù)的結(jié)果。對(duì)象的許多服務(wù)都與對(duì)象接收到的事件密切相關(guān),事實(shí)上,事件就表現(xiàn)為消息,接收消息的對(duì)象必然有由消息選擇符指定的服務(wù),該服務(wù)改變對(duì)象狀態(tài)(修改相應(yīng)的屬性值),并完成對(duì)象應(yīng)做的動(dòng)作,對(duì)象的動(dòng)作
46、既與事件有關(guān),也與對(duì)象的狀態(tài)有關(guān),因此,完成服務(wù)的算法自然也與對(duì)象的狀態(tài)有關(guān)。,,,功能模型指明了系統(tǒng)必須提供的服務(wù)。狀態(tài)圖中狀態(tài)轉(zhuǎn)換所觸發(fā)的動(dòng)作,在功能模型中有時(shí)可能擴(kuò)展成一張數(shù)據(jù)流圖。數(shù)據(jù)流圖中的某些處理可能與對(duì)象提供的服務(wù)相對(duì)應(yīng)。,53,習(xí)題,,,,,面向?qū)ο笤O(shè)計(jì)應(yīng)該遵循哪些準(zhǔn)則?簡(jiǎn)述每條準(zhǔn)則的內(nèi)容,并說(shuō)明遵循這條準(zhǔn)則的必要性。簡(jiǎn)述軟件工程中界面系統(tǒng)的設(shè)計(jì)原則。數(shù)據(jù)存儲(chǔ)管理有哪三種模式?為了設(shè)計(jì)人機(jī)交互子系統(tǒng),為什么需要分類
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 面向?qū)ο笤O(shè)計(jì)類和對(duì)象
- 面向?qū)ο笤O(shè)計(jì)原則
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)》
- 面向?qū)ο笤O(shè)計(jì)外文翻譯
- 面向?qū)ο蠛兔嫦驅(qū)ο蟮母呒?jí)概念
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)(java)》
- 面向?qū)ο笳n程設(shè)計(jì)報(bào)告
- 面向?qū)ο笤O(shè)計(jì)外文翻譯 (2)
- 面向?qū)ο蟮姆治龊驮O(shè)計(jì)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)報(bào)告
- 面向?qū)ο蟮某绦蛟O(shè)計(jì)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)
- 實(shí)驗(yàn) 面向?qū)ο蟪绦蛟O(shè)計(jì)
- 《面向?qū)ο蟪绦蛟O(shè)計(jì)》 考試
- java面向?qū)ο蟪绦蛟O(shè)計(jì)03類與對(duì)象
- 【課程設(shè)計(jì)】面向?qū)ο蟪绦蛟O(shè)計(jì)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論