欧美精品一二区,性欧美一级,国产免费一区成人漫画,草久久久久,欧美性猛交ⅹxxx乱大交免费,欧美精品另类,香蕉视频免费播放

【網(wǎng)絡(luò)課件】宜賓學(xué)院-第十一章 第十二章 面向?qū)ο笤O(shè)計與實現(xiàn)

上傳人:仙*** 文檔編號:239619557 上傳時間:2024-02-07 格式:PPT 頁數(shù):67 大?。?09.50KB
收藏 版權(quán)申訴 舉報 下載
【網(wǎng)絡(luò)課件】宜賓學(xué)院-第十一章 第十二章 面向?qū)ο笤O(shè)計與實現(xiàn)_第1頁
第1頁 / 共67頁
【網(wǎng)絡(luò)課件】宜賓學(xué)院-第十一章 第十二章 面向?qū)ο笤O(shè)計與實現(xiàn)_第2頁
第2頁 / 共67頁
【網(wǎng)絡(luò)課件】宜賓學(xué)院-第十一章 第十二章 面向?qū)ο笤O(shè)計與實現(xiàn)_第3頁
第3頁 / 共67頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《【網(wǎng)絡(luò)課件】宜賓學(xué)院-第十一章 第十二章 面向?qū)ο笤O(shè)計與實現(xiàn)》由會員分享,可在線閱讀,更多相關(guān)《【網(wǎng)絡(luò)課件】宜賓學(xué)院-第十一章 第十二章 面向?qū)ο笤O(shè)計與實現(xiàn)(67頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、Yibinu UniversitySchool of Computer&Information Engineering軟件工程第十一章第十一章 面向?qū)ο笤O(shè)計面向?qū)ο笤O(shè)計第十二章第十二章 面向?qū)ο髮崿F(xiàn)面向?qū)ο髮崿F(xiàn)Yibinu UniversitySchool of Computer&Information Engineering11.1 面向?qū)ο笤O(shè)計的準(zhǔn)則面向?qū)ο笤O(shè)計的準(zhǔn)則11.2 啟發(fā)規(guī)則啟發(fā)規(guī)則11.3 軟件重用軟件重用11.4 系統(tǒng)分解系統(tǒng)分解11.5 設(shè)計問題域子系統(tǒng)設(shè)計問題域子系統(tǒng)11.6 設(shè)計人機(jī)交互子系統(tǒng)設(shè)計人機(jī)交互子系統(tǒng)11.7 設(shè)計任務(wù)管理子系統(tǒng)設(shè)計任務(wù)管理子系統(tǒng)11.8 設(shè)計

2、數(shù)據(jù)管理子系統(tǒng)設(shè)計數(shù)據(jù)管理子系統(tǒng)11.9 設(shè)計類中的服務(wù)設(shè)計類中的服務(wù)2Yibinu UniversitySchool of Computer&Information Engineering面向?qū)ο笤O(shè)計是把分析階段得到的面向?qū)ο笤O(shè)計是把分析階段得到的需求需求轉(zhuǎn)變成轉(zhuǎn)變成符合成本和質(zhì)量要求的、抽象的符合成本和質(zhì)量要求的、抽象的系統(tǒng)實現(xiàn)方案系統(tǒng)實現(xiàn)方案的過的過程。程。從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計,是一個逐漸從面向?qū)ο蠓治龅矫嫦驅(qū)ο笤O(shè)計,是一個逐漸擴(kuò)充模型的過程擴(kuò)充模型的過程 生命周期方法學(xué)生命周期方法學(xué)把設(shè)計進(jìn)一步劃分成把設(shè)計進(jìn)一步劃分成總體設(shè)計總體設(shè)計和和詳細(xì)設(shè)計詳細(xì)設(shè)計兩個階段,類似地,也可以

3、把兩個階段,類似地,也可以把面向?qū)ο竺嫦驅(qū)ο笤O(shè)計設(shè)計再細(xì)分為再細(xì)分為系統(tǒng)設(shè)計系統(tǒng)設(shè)計和和對象設(shè)計對象設(shè)計。系統(tǒng)設(shè)計系統(tǒng)設(shè)計確定實現(xiàn)系統(tǒng)的策略和目標(biāo)系統(tǒng)的高確定實現(xiàn)系統(tǒng)的策略和目標(biāo)系統(tǒng)的高層結(jié)構(gòu)。層結(jié)構(gòu)。對象設(shè)計對象設(shè)計確定解空間中的類、關(guān)聯(lián)、接口形式確定解空間中的類、關(guān)聯(lián)、接口形式及實現(xiàn)操作的算法。及實現(xiàn)操作的算法。3Yibinu UniversitySchool of Computer&Information Engineering4Yibinu UniversitySchool of Computer&Information Engineering11.1 面向?qū)ο笤O(shè)計的準(zhǔn)則1、模塊化模塊

4、化(Modularity):對象就是模:對象就是模塊。把數(shù)據(jù)結(jié)構(gòu)和操作這些數(shù)據(jù)的方法緊密塊。把數(shù)據(jù)結(jié)構(gòu)和操作這些數(shù)據(jù)的方法緊密地結(jié)合在一起所構(gòu)成的模塊地結(jié)合在一起所構(gòu)成的模塊 2、抽象抽象:不僅支持過程抽象,而且支持:不僅支持過程抽象,而且支持?jǐn)?shù)據(jù)抽象。數(shù)據(jù)抽象。3、信息隱蔽信息隱蔽:通過對象的封裝性來實現(xiàn)。:通過對象的封裝性來實現(xiàn)。4、弱藕合弱藕合:對象是最基本的模塊,因此,:對象是最基本的模塊,因此,耦合主要指不同對象之間相互關(guān)聯(lián)的緊密程耦合主要指不同對象之間相互關(guān)聯(lián)的緊密程度。分為度。分為交互藕合交互藕合和和繼承藕合繼承藕合 5Yibinu UniversitySchool of Com

5、puter&Information Engineering5、強(qiáng)內(nèi)聚強(qiáng)內(nèi)聚:分為服務(wù)內(nèi)聚、類內(nèi)聚和一:分為服務(wù)內(nèi)聚、類內(nèi)聚和一般特殊內(nèi)聚。般特殊內(nèi)聚。6、可重用可重用:11.3 節(jié)討論節(jié)討論6Yibinu UniversitySchool of Computer&Information Engineering11.2 啟發(fā)規(guī)則1、設(shè)計結(jié)果應(yīng)該清晰易懂、設(shè)計結(jié)果應(yīng)該清晰易懂 2、一般特殊結(jié)構(gòu)的深度適當(dāng)、一般特殊結(jié)構(gòu)的深度適當(dāng) 3、設(shè)計簡單的類、設(shè)計簡單的類 4、使用簡單的協(xié)議、使用簡單的協(xié)議 5、使用簡單的服務(wù)、使用簡單的服務(wù) 6、把設(shè)計變動減至最小、把設(shè)計變動減至最小7Yibinu Unive

6、rsitySchool of Computer&Information Engineering11.3 軟件重用1 1.3.1 概述概述 1、軟件重用的概念、軟件重用的概念軟件復(fù)用是指軟件復(fù)用是指重復(fù)使用已有的軟件產(chǎn)品重復(fù)使用已有的軟件產(chǎn)品用于開用于開發(fā)新的軟件系統(tǒng),以達(dá)到提高軟件系統(tǒng)的開發(fā)質(zhì)量發(fā)新的軟件系統(tǒng),以達(dá)到提高軟件系統(tǒng)的開發(fā)質(zhì)量與效率,降低開發(fā)成本的目的。與效率,降低開發(fā)成本的目的??蓮?fù)用的軟件成分一可復(fù)用的軟件成分一可復(fù)用構(gòu)件可復(fù)用構(gòu)件(Reusable Component)可從舊軟件中提取,也可以專門為)可從舊軟件中提取,也可以專門為復(fù)用而開發(fā)。復(fù)用而開發(fā)。在軟件復(fù)用中重復(fù)使用的

7、軟件產(chǎn)品不僅僅局限在軟件復(fù)用中重復(fù)使用的軟件產(chǎn)品不僅僅局限于于程序代碼程序代碼,而是包含了在軟件生產(chǎn)的,而是包含了在軟件生產(chǎn)的各個階段各個階段所所得到的各種軟件產(chǎn)品。得到的各種軟件產(chǎn)品。8Yibinu UniversitySchool of Computer&Information Engineering可以用于軟件復(fù)用的軟件產(chǎn)品,按照其可以用于軟件復(fù)用的軟件產(chǎn)品,按照其抽象程抽象程度的高低度的高低,可以劃分為如下的復(fù)用級別:,可以劃分為如下的復(fù)用級別:(1)代碼復(fù)用代碼復(fù)用l二進(jìn)制形式的經(jīng)過編譯產(chǎn)生的目標(biāo)代碼。二進(jìn)制形式的經(jīng)過編譯產(chǎn)生的目標(biāo)代碼。l文本形式的源代碼文本形式的源代碼(2)設(shè)計結(jié)

8、果的復(fù)用設(shè)計結(jié)果的復(fù)用設(shè)計結(jié)果比源程序的抽象級別更高,因為它的設(shè)計結(jié)果比源程序的抽象級別更高,因為它的復(fù)用受實現(xiàn)環(huán)境的影響較小,從而使可復(fù)用構(gòu)件被復(fù)用受實現(xiàn)環(huán)境的影響較小,從而使可復(fù)用構(gòu)件被復(fù)用的機(jī)會更多,并且所需的修改更少。這種復(fù)用復(fù)用的機(jī)會更多,并且所需的修改更少。這種復(fù)用有三種途徑:有三種途徑:軟件成分的重用級別軟件成分的重用級別9Yibinu UniversitySchool of Computer&Information Engineeringl從現(xiàn)有系統(tǒng)的設(shè)計結(jié)果中提取一些可復(fù)用的設(shè)從現(xiàn)有系統(tǒng)的設(shè)計結(jié)果中提取一些可復(fù)用的設(shè)計構(gòu)件計構(gòu)件l把一個現(xiàn)有系統(tǒng)的全部設(shè)計文檔在新的軟硬件把一個

9、現(xiàn)有系統(tǒng)的全部設(shè)計文檔在新的軟硬件平臺上重新實現(xiàn)。平臺上重新實現(xiàn)。l獨立于任何具體的應(yīng)用,有計劃地開發(fā)一些可獨立于任何具體的應(yīng)用,有計劃地開發(fā)一些可復(fù)用的設(shè)計構(gòu)件復(fù)用的設(shè)計構(gòu)件(3)分析結(jié)果的復(fù)用)分析結(jié)果的復(fù)用這是比設(shè)計結(jié)果的復(fù)用抽象程度更高的復(fù)用,這是比設(shè)計結(jié)果的復(fù)用抽象程度更高的復(fù)用,可被復(fù)用的分析結(jié)果是針對問題域的某些事物或某可被復(fù)用的分析結(jié)果是針對問題域的某些事物或某些問題的抽象程度更高的解法,受設(shè)計技術(shù)及實現(xiàn)些問題的抽象程度更高的解法,受設(shè)計技術(shù)及實現(xiàn)條件的影響非常小,所以可復(fù)用的機(jī)會更大。條件的影響非常小,所以可復(fù)用的機(jī)會更大。10Yibinu UniversitySchool

10、of Computer&Information Engineering11.3.2 類構(gòu)件面向?qū)ο蠹夹g(shù)中的面向?qū)ο蠹夹g(shù)中的“類類”,是比較理想的,是比較理想的可重用軟構(gòu)件,稱之為可重用軟構(gòu)件,稱之為類構(gòu)件類構(gòu)件。1、可重用軟構(gòu)件的特點、可重用軟構(gòu)件的特點一個一個軟構(gòu)件軟構(gòu)件能在構(gòu)造各種各樣的軟件系統(tǒng)能在構(gòu)造各種各樣的軟件系統(tǒng)時方便地重復(fù)使用,必須具備的條件:時方便地重復(fù)使用,必須具備的條件:1)獨立性強(qiáng):獨立性強(qiáng):2)高度可塑性:高度可塑性:3)接口清晰接口清晰11Yibinu UniversitySchool of Computer&Information Engineering2、類構(gòu)件重

11、用的方式、類構(gòu)件重用的方式 1)實例重用)實例重用 2)繼承重用)繼承重用 3)多態(tài)重用)多態(tài)重用12Yibinu UniversitySchool of Computer&Information Engineering11.3.3 軟件重用的效益1、提高軟件質(zhì)量、提高軟件質(zhì)量 2、提高軟件生產(chǎn)率、提高軟件生產(chǎn)率 3、降低軟件成本、降低軟件成本13Yibinu UniversitySchool of Computer&Information Engineering11.4 系統(tǒng)分解系統(tǒng)的主要組成部分稱為系統(tǒng)的主要組成部分稱為子系統(tǒng)子系統(tǒng)。與面向?qū)ο蠓治瞿P鸵粯?,與面向?qū)ο蠓治瞿P鸵粯樱嫦驅(qū)ο?/p>

12、設(shè)計模型面向?qū)ο笤O(shè)計模型也由主題、類與對象、結(jié)構(gòu)、屬性、服務(wù)等也由主題、類與對象、結(jié)構(gòu)、屬性、服務(wù)等 5 個層個層次組成。次組成。大多數(shù)系統(tǒng)的面向?qū)ο笤O(shè)計模型在邏輯上都由大多數(shù)系統(tǒng)的面向?qū)ο笤O(shè)計模型在邏輯上都由 4 大部分組成,分別是:大部分組成,分別是:l問題域子系統(tǒng)問題域子系統(tǒng)(問題空間類問題空間類)l人機(jī)交互子系統(tǒng)人機(jī)交互子系統(tǒng)(用戶界面類用戶界面類)l任務(wù)管理子系統(tǒng)任務(wù)管理子系統(tǒng)(任務(wù)管理類任務(wù)管理類)l數(shù)據(jù)管理子系統(tǒng)數(shù)據(jù)管理子系統(tǒng)(數(shù)據(jù)管理類數(shù)據(jù)管理類)14Yibinu UniversitySchool of Computer&Information Engineering1、子系統(tǒng)

13、之間的兩種交互方式1)客戶一供應(yīng)商關(guān)系)客戶一供應(yīng)商關(guān)系作為作為“客戶客戶”的子系統(tǒng)的子系統(tǒng)調(diào)用調(diào)用作為作為“供應(yīng)商供應(yīng)商”的子系統(tǒng),后者完成某些服務(wù)工作并返回的子系統(tǒng),后者完成某些服務(wù)工作并返回結(jié)果。結(jié)果。2)平等伙伴關(guān)系)平等伙伴關(guān)系每個子系統(tǒng)每個子系統(tǒng)都可能都可能調(diào)用其他子系統(tǒng),因此,調(diào)用其他子系統(tǒng),因此,每個子系統(tǒng)都必須了解其他子系統(tǒng)的接口。每個子系統(tǒng)都必須了解其他子系統(tǒng)的接口。15Yibinu UniversitySchool of Computer&Information Engineering2、組織系統(tǒng)的兩種方案把子系統(tǒng)組織成完整的系統(tǒng)時,有把子系統(tǒng)組織成完整的系統(tǒng)時,有水平層

14、次水平層次組組織和織和垂直塊垂直塊組織兩種方案可供選擇。組織兩種方案可供選擇。(1)層次組織)層次組織這種組織方案把軟件系統(tǒng)組織成一個層次系統(tǒng),這種組織方案把軟件系統(tǒng)組織成一個層次系統(tǒng),每層是一個子系統(tǒng)。每層是一個子系統(tǒng)。(2)塊狀組織)塊狀組織這種組織方案把軟件系統(tǒng)垂直地分解成若干個這種組織方案把軟件系統(tǒng)垂直地分解成若干個相對獨立的、弱藕合的子系統(tǒng),一個子系統(tǒng)相當(dāng)于相對獨立的、弱藕合的子系統(tǒng),一個子系統(tǒng)相當(dāng)于一塊,每塊提供一種類型的服務(wù)。一塊,每塊提供一種類型的服務(wù)。16Yibinu UniversitySchool of Computer&Information Engineering采用

15、了層次與塊狀的采用了層次與塊狀的混合結(jié)構(gòu)混合結(jié)構(gòu)17Yibinu UniversitySchool of Computer&Information Engineering 概概括括地地說說,面面向向?qū)ο笙筌涇浖_開發(fā)發(fā)方方法法采采用用面面向向?qū)ο笙笤O(shè)設(shè)計計 (OOD)(OOD)技技術(shù)術(shù)進(jìn)進(jìn)行行問問題題解解決決方方案案的的設(shè)設(shè)計計工工作作,它它將將問題的解決方案表述為:問題的解決方案表述為:類關(guān)聯(lián)類關(guān)聯(lián)的形式,其中,的形式,其中,類類包括問題域子系統(tǒng)(包括問題域子系統(tǒng)(問題空間類問題空間類)、人機(jī)交)、人機(jī)交互子系統(tǒng)(互子系統(tǒng)(用戶界面類用戶界面類)、任務(wù)管理子系統(tǒng)()、任務(wù)管理子系統(tǒng)(任

16、務(wù)任務(wù)管理類管理類)和數(shù)據(jù)管理子系統(tǒng)()和數(shù)據(jù)管理子系統(tǒng)(數(shù)據(jù)管理類數(shù)據(jù)管理類),是從),是從設(shè)計的角度出發(fā)對問題解決方案中的對象的抽象和設(shè)計的角度出發(fā)對問題解決方案中的對象的抽象和描述。描述。關(guān)聯(lián)關(guān)聯(lián)則用于描述這些類和類之間的關(guān)系。則用于描述這些類和類之間的關(guān)系。18Yibinu UniversitySchool of Computer&Information Engineering面向?qū)ο笤O(shè)計工作內(nèi)容和步驟 因此,面向?qū)ο笤O(shè)計工作主要包括問題空間類、用因此,面向?qū)ο笤O(shè)計工作主要包括問題空間類、用戶界面類、任務(wù)管理類和數(shù)據(jù)管理類的設(shè)計戶界面類、任務(wù)管理類和數(shù)據(jù)管理類的設(shè)計,具體,具體工作內(nèi)容

17、和步驟如圖所示。工作內(nèi)容和步驟如圖所示。19Yibinu UniversitySchool of Computer&Information Engineering一、問題空間類一、問題空間類 (11.5(11.5 設(shè)計問題域子系統(tǒng)設(shè)計問題域子系統(tǒng))是指那些是指那些直接直接從面向?qū)ο蠓治瞿P驮O(shè)計得到的從面向?qū)ο蠓治瞿P驮O(shè)計得到的類,它是使軟件系統(tǒng)能夠?qū)崿F(xiàn)類,它是使軟件系統(tǒng)能夠?qū)崿F(xiàn)對問題的求解對問題的求解的最基的最基本的類,也是面向?qū)ο筌浖到y(tǒng)的本的類,也是面向?qū)ο筌浖到y(tǒng)的核心類核心類。利用面向?qū)ο蠓治黾夹g(shù)對問題進(jìn)行了分析描述利用面向?qū)ο蠓治黾夹g(shù)對問題進(jìn)行了分析描述之后,就可以直接將其結(jié)果用于問

18、題空間類的設(shè)計,之后,就可以直接將其結(jié)果用于問題空間類的設(shè)計,即即直接將分析所得到的直接將分析所得到的對象、對象與對象之間的關(guān)對象、對象與對象之間的關(guān)聯(lián)聯(lián)確定為確定為類以及類與類之間的關(guān)聯(lián)類以及類與類之間的關(guān)聯(lián),這些直接從分,這些直接從分析結(jié)果得到的類就是析結(jié)果得到的類就是問題空間類問題空間類。以一個字處理系統(tǒng)為例,如下圖所示以一個字處理系統(tǒng)為例,如下圖所示:20Yibinu UniversitySchool of Computer&Information Engineering圖示:結(jié)構(gòu)化方法設(shè)計結(jié)果 21Yibinu UniversitySchool of Computer&Informa

19、tion Engineering又例:下圖示以及表又例:下圖示以及表1818所示的是大學(xué)教務(wù)管理問所示的是大學(xué)教務(wù)管理問題中的問題空間類。題中的問題空間類。圖示:圖示:大學(xué)教務(wù)管理問題中的問題空間類大學(xué)教務(wù)管理問題中的問題空間類22Yibinu UniversitySchool of Computer&Information Engineering表表5.1Class:Student(學(xué)生)學(xué)生)數(shù)據(jù)變量數(shù)據(jù)變量序號序號名稱名稱 定義定義類型類型 中文名稱中文名稱備注備注1IDchar(8)描述型描述型學(xué)號學(xué)號2Namechar(24)描述型描述型姓名姓名3Sex男男,女女描述型描述型性別性別

20、枚舉類型枚舉類型4Birthdaydate描述型描述型出生日期出生日期5EnrollmentDaydate 描述型描述型入學(xué)日期入學(xué)日期6Departmentchar(24)描述型描述型系別系別7Specialitychar(24)描述型描述型專業(yè)專業(yè)8Passwordchar(6)描述型描述型密碼密碼9Application注冊注冊,選課選課描述型描述型申請申請枚舉類型枚舉類型23Yibinu UniversitySchool of Computer&Information Engineering操作操作序號序號 名稱名稱接口參數(shù)接口參數(shù)返回值返回值 中文名稱中文名稱備注備注1GetID()

21、ID讀入學(xué)號讀入學(xué)號GetPassword()Password讀入密碼讀入密碼2VerifyPassword()True/Fasle檢驗檢驗3GetApplication()Application詢問詢問4PutApplication()NULL回答回答5Note(message)NULL通知通知6ChangePassword(NewPassword,OldPassword)NULL修改修改24Yibinu UniversitySchool of Computer&Information Engineering表表2Class:Graduate(研究生)研究生)表表3Class:UnderGr

22、aduate(本科生)本科生)表表4Class:RegisterRec(注冊記錄)注冊記錄)表表5Class:Course(課程)課程)表表6Class:GraduateCourse(研究生課程)研究生課程)表表7Class:UnderGraduate(本科生課程)本科生課程)表表8Class:SelectCourse(選課單)選課單)25Yibinu UniversitySchool of Computer&Information Engineering二、用戶界面類二、用戶界面類(11.6(11.6 設(shè)計人機(jī)交互子系統(tǒng)設(shè)計人機(jī)交互子系統(tǒng))是指那些為實現(xiàn)是指那些為實現(xiàn)人機(jī)交互接口人機(jī)交互接口

23、而設(shè)計的類,而設(shè)計的類,它是使軟件系統(tǒng)能夠接收用戶的命令和能夠它是使軟件系統(tǒng)能夠接收用戶的命令和能夠為用戶提供信息所需要的類。為用戶提供信息所需要的類。用戶界面類用戶界面類是為了使系統(tǒng)能夠與是為了使系統(tǒng)能夠與用戶進(jìn)用戶進(jìn)行交互行交互而必須增添設(shè)計的類。在實際中,一而必須增添設(shè)計的類。在實際中,一個軟件系統(tǒng)常常會因為其用戶界面使得用戶個軟件系統(tǒng)常常會因為其用戶界面使得用戶不滿意而遭到否定或棄之不用。因此用戶界不滿意而遭到否定或棄之不用。因此用戶界面類的設(shè)計是一項既影響軟件系統(tǒng)前途,又面類的設(shè)計是一項既影響軟件系統(tǒng)前途,又需要做耐心細(xì)致調(diào)查分析的重要工作。需要做耐心細(xì)致調(diào)查分析的重要工作。26Yi

24、binu UniversitySchool of Computer&Information Engineering盡管在分析過程中已經(jīng)對用戶在用戶界面盡管在分析過程中已經(jīng)對用戶在用戶界面方面進(jìn)行了分析,但是在設(shè)計過程中仍然必方面進(jìn)行了分析,但是在設(shè)計過程中仍然必須繼續(xù)做這項分析工作,必須具體設(shè)計須繼續(xù)做這項分析工作,必須具體設(shè)計確定確定交互作用的時間、交互方式和交互技術(shù)交互作用的時間、交互方式和交互技術(shù)等。等。用戶界面類的設(shè)計通??梢圆捎糜脩艚缑骖惖脑O(shè)計通??梢圆捎孟到y(tǒng)系統(tǒng)原原型型(模型)法(模型)法進(jìn)行。進(jìn)行。27Yibinu UniversitySchool of Computer&Inf

25、ormation Engineering1 1、分析考察用戶分析考察用戶2 2、設(shè)計命令層次設(shè)計命令層次1)1)研究用戶交互的意義及準(zhǔn)則研究用戶交互的意義及準(zhǔn)則如果已建立的交互系統(tǒng)中已有命令層次,則先研究這如果已建立的交互系統(tǒng)中已有命令層次,則先研究這個已有的交互界面的意義和準(zhǔn)則。個已有的交互界面的意義和準(zhǔn)則。2)2)建立初始命令層建立初始命令層可以以多種方式提供給用戶,如窗口、按鈕、下拉菜可以以多種方式提供給用戶,如窗口、按鈕、下拉菜單、菜單條、可動的圖標(biāo),等等。單、菜單條、可動的圖標(biāo),等等。28Yibinu UniversitySchool of Computer&Information

26、Engineering3)細(xì)化命令層細(xì)化命令層為了細(xì)化命令層,應(yīng)考慮如下幾個問題:為了細(xì)化命令層,應(yīng)考慮如下幾個問題:(1)排序。在開發(fā)命令層時,必須仔細(xì)選擇不同排序。在開發(fā)命令層時,必須仔細(xì)選擇不同的操作名稱,并把這些名稱按一定要求排序,將最的操作名稱,并把這些名稱按一定要求排序,將最有用的放在前面,或者按習(xí)慣的工作步驟排序。有用的放在前面,或者按習(xí)慣的工作步驟排序。(2)組裝。在操作中尋找組裝結(jié)構(gòu)模式,這有助組裝。在操作中尋找組裝結(jié)構(gòu)模式,這有助于在層次中組織和分離操作。于在層次中組織和分離操作。(3)寬度和廣度。由于人的短暫記憶局限,命令寬度和廣度。由于人的短暫記憶局限,命令層次不宜太廣

27、太深。以層次不宜太廣太深。以3最為合適。最為合適。(4)極小化。盡量少用組合鍵,極小化用戶的擊極小化。盡量少用組合鍵,極小化用戶的擊鍵次數(shù)。鍵次數(shù)。29Yibinu UniversitySchool of Computer&Information Engineering3、完成設(shè)計、完成設(shè)計 當(dāng)前由于軟件開發(fā)工具,特別是可視化當(dāng)前由于軟件開發(fā)工具,特別是可視化開發(fā)工具的日益豐富,完成用戶界面的具體開發(fā)工具的日益豐富,完成用戶界面的具體設(shè)計已經(jīng)是一件十分容易的事情了,但是在設(shè)計已經(jīng)是一件十分容易的事情了,但是在具體設(shè)計時不能忽略以下原則:具體設(shè)計時不能忽略以下原則:1)一致性一致性使用一致的術(shù)語

28、,一致的步驟和一致的動使用一致的術(shù)語,一致的步驟和一致的動作行為。作行為。30Yibinu UniversitySchool of Computer&Information Engineering2)減少步驟減少步驟極小化擊鍵次數(shù)、使用鼠標(biāo)的次數(shù)和下拉極小化擊鍵次數(shù)、使用鼠標(biāo)的次數(shù)和下拉菜單的次數(shù),極小化響應(yīng)時間。菜單的次數(shù),極小化響應(yīng)時間。3)盡量顯示提示信息盡量顯示提示信息盡量為用戶提供有意義的、及時反饋信息。盡量為用戶提供有意義的、及時反饋信息。4)設(shè)置取消操作設(shè)置取消操作用戶難免出錯,應(yīng)盡量能使用戶取消其錯用戶難免出錯,應(yīng)盡量能使用戶取消其錯誤動作。誤動作。31Yibinu Unive

29、rsitySchool of Computer&Information Engineering5)盡量減少要用戶記憶的內(nèi)容盡量減少要用戶記憶的內(nèi)容不應(yīng)該要求用戶記下某窗口的信息而用于不應(yīng)該要求用戶記下某窗口的信息而用于另一窗口中。另一窗口中。6)易學(xué)易用易學(xué)易用為用戶提供聯(lián)機(jī)學(xué)習(xí)手冊。為用戶提供聯(lián)機(jī)學(xué)習(xí)手冊。7)屏幕生動活潑屏幕生動活潑屏幕畫面看起來能夠吸引用戶,喚起用戶屏幕畫面看起來能夠吸引用戶,喚起用戶的注意和興趣。的注意和興趣。32Yibinu UniversitySchool of Computer&Information Engineering例如,對于大學(xué)教務(wù)管理問題,可以先根例如

30、,對于大學(xué)教務(wù)管理問題,可以先根據(jù)對用戶的分析設(shè)計如下頁圖所示的用戶進(jìn)據(jù)對用戶的分析設(shè)計如下頁圖所示的用戶進(jìn)入系統(tǒng)的屏幕。入系統(tǒng)的屏幕。33Yibinu UniversitySchool of Computer&Information Engineering然后,根據(jù)針對該用戶界面和大多數(shù)面向?qū)ο笕缓螅鶕?jù)針對該用戶界面和大多數(shù)面向?qū)ο筌浖_發(fā)環(huán)境所提供的軟件開發(fā)環(huán)境所提供的可重用類可重用類設(shè)計相應(yīng)的用戶界設(shè)計相應(yīng)的用戶界面類,設(shè)計結(jié)果如下頁圖所示。面類,設(shè)計結(jié)果如下頁圖所示。34Yibinu UniversitySchool of Computer&Information Engineeri

31、ng圖示:大學(xué)教務(wù)管理問題的部分用戶界面類和問題空間類圖示:大學(xué)教務(wù)管理問題的部分用戶界面類和問題空間類WindowEditFieldStaticFieldOKButtonWelcomeWindowscancelButtonPasswordFieldStudent用戶界面類用戶界面類問題空間類問題空間類35Yibinu UniversitySchool of Computer&Information Engineering 其中,其中,WindowWindow、EditFieldEditField、StaticFieldStaticField和和ButtonButton等類等類 一般可從開發(fā)環(huán)

32、境提供的類庫中通過繼一般可從開發(fā)環(huán)境提供的類庫中通過繼承重用獲得,需要進(jìn)一步做的設(shè)計工作主要是承重用獲得,需要進(jìn)一步做的設(shè)計工作主要是設(shè)計有設(shè)計有關(guān)與問題空間類和任務(wù)管理類進(jìn)行通訊的操作關(guān)與問題空間類和任務(wù)管理類進(jìn)行通訊的操作。例如需要為例如需要為OKButtonOKButton類設(shè)計一個向問題空間類中類設(shè)計一個向問題空間類中的的StudentStudent類發(fā)送檢驗消息的操作。類發(fā)送檢驗消息的操作。36Yibinu UniversitySchool of Computer&Information Engineering三、任務(wù)管理類三、任務(wù)管理類(11.7(11.7 設(shè)計任務(wù)管理子系統(tǒng)設(shè)計任

33、務(wù)管理子系統(tǒng))是指那些為實現(xiàn)對是指那些為實現(xiàn)對多操作并發(fā)執(zhí)行多操作并發(fā)執(zhí)行的管理而設(shè)的管理而設(shè)計的類,它是使軟件系統(tǒng)能夠同時處理多個并發(fā)行計的類,它是使軟件系統(tǒng)能夠同時處理多個并發(fā)行為所需要的類。為所需要的類。所謂所謂任務(wù)任務(wù),就是一個處理過程,它可能包含,就是一個處理過程,它可能包含不同類的多個操作的執(zhí)行不同類的多個操作的執(zhí)行。任務(wù)管理類的用途之一就是用于任務(wù)管理類的用途之一就是用于管理系統(tǒng)的管理系統(tǒng)的這種任務(wù)這種任務(wù),它的另一個主要用途是,它的另一個主要用途是在操作系統(tǒng)級在操作系統(tǒng)級(運(yùn)行平臺)上負(fù)責(zé)處理并發(fā)、中斷、調(diào)度等問題(運(yùn)行平臺)上負(fù)責(zé)處理并發(fā)、中斷、調(diào)度等問題,從而使得所設(shè)計的系

34、統(tǒng)能夠相對獨立于運(yùn)行平臺,從而使得所設(shè)計的系統(tǒng)能夠相對獨立于運(yùn)行平臺,當(dāng)需要移植到其它運(yùn)行平臺上,只需要替換有關(guān)任當(dāng)需要移植到其它運(yùn)行平臺上,只需要替換有關(guān)任務(wù)管理類就可以了。務(wù)管理類就可以了。37Yibinu UniversitySchool of Computer&Information Engineering因此,為了設(shè)計任務(wù)管理類,首先必須從所設(shè)因此,為了設(shè)計任務(wù)管理類,首先必須從所設(shè)計的系統(tǒng)有關(guān)類中找出計的系統(tǒng)有關(guān)類中找出需要并發(fā)進(jìn)行的操作和那些需要并發(fā)進(jìn)行的操作和那些與特定運(yùn)行平臺有關(guān)的操作與特定運(yùn)行平臺有關(guān)的操作,然后再對它們進(jìn)行分,然后再對它們進(jìn)行分析設(shè)計析設(shè)計1、確定任務(wù)類型

35、、確定任務(wù)類型1)確定事件驅(qū)動型任務(wù)確定事件驅(qū)動型任務(wù)某些任務(wù)是由事件驅(qū)動而執(zhí)行的。這種任務(wù)可某些任務(wù)是由事件驅(qū)動而執(zhí)行的。這種任務(wù)可能負(fù)責(zé)與設(shè)備的通訊,與一個窗口或多個窗口、其能負(fù)責(zé)與設(shè)備的通訊,與一個窗口或多個窗口、其它任務(wù)、子系統(tǒng)、其它處理器或其它系統(tǒng)的通訊。它任務(wù)、子系統(tǒng)、其它處理器或其它系統(tǒng)的通訊。38Yibinu UniversitySchool of Computer&Information Engineering2)2)確定時鐘驅(qū)動型任務(wù)確定時鐘驅(qū)動型任務(wù) 這種任務(wù)在這種任務(wù)在特定的時間被觸發(fā)執(zhí)行某些處理特定的時間被觸發(fā)執(zhí)行某些處理。例。例如,某些設(shè)備要求周期性地獲得數(shù)據(jù)或控制

36、,某些用如,某些設(shè)備要求周期性地獲得數(shù)據(jù)或控制,某些用戶界面、子系統(tǒng)、任務(wù)、處理器或其它系統(tǒng)也可能需戶界面、子系統(tǒng)、任務(wù)、處理器或其它系統(tǒng)也可能需要周期性地通訊。此時就常用到時鐘驅(qū)動型的任務(wù)。要周期性地通訊。此時就常用到時鐘驅(qū)動型的任務(wù)。3)3)確定優(yōu)先任務(wù)及關(guān)鍵任務(wù)確定優(yōu)先任務(wù)及關(guān)鍵任務(wù) 優(yōu)先任務(wù)分優(yōu)先任務(wù)分高優(yōu)先級和低優(yōu)先級高優(yōu)先級和低優(yōu)先級二種,用來適應(yīng)二種,用來適應(yīng)處理的需要。處理的需要。關(guān)鍵任務(wù)關(guān)鍵任務(wù)是有關(guān)系統(tǒng)成功或失敗的是有關(guān)系統(tǒng)成功或失敗的關(guān)鍵關(guān)鍵處理,它通常都有嚴(yán)格的可靠性要求處理,它通常都有嚴(yán)格的可靠性要求。39Yibinu UniversitySchool of Comp

37、uter&Information Engineering4)確定協(xié)調(diào)任務(wù)確定協(xié)調(diào)任務(wù) 當(dāng)存在三個以上的任務(wù)時,就應(yīng)該考當(dāng)存在三個以上的任務(wù)時,就應(yīng)該考慮增加一個任務(wù),用它來協(xié)調(diào)任務(wù)。慮增加一個任務(wù),用它來協(xié)調(diào)任務(wù)。協(xié)調(diào)任務(wù)的引入當(dāng)然會增加系統(tǒng)的開銷,協(xié)調(diào)任務(wù)的引入當(dāng)然會增加系統(tǒng)的開銷,但是引入?yún)f(xié)調(diào)任務(wù)有利于封裝任務(wù)之間的協(xié)但是引入?yún)f(xié)調(diào)任務(wù)有利于封裝任務(wù)之間的協(xié)調(diào)控制。使用狀態(tài)轉(zhuǎn)換矩陣可以描述該任務(wù)調(diào)控制。使用狀態(tài)轉(zhuǎn)換矩陣可以描述該任務(wù)的行為。的行為。40Yibinu UniversitySchool of Computer&Information Engineering2 2、分析任務(wù)、分析任

38、務(wù) 設(shè)計多任務(wù)系統(tǒng)的主要問題是設(shè)計人員常常定設(shè)計多任務(wù)系統(tǒng)的主要問題是設(shè)計人員常常定義太多的任務(wù)。原因是為了自己處理時的方便,但義太多的任務(wù)。原因是為了自己處理時的方便,但是這樣做就增大了整個設(shè)計的技術(shù)復(fù)雜度,并且不是這樣做就增大了整個設(shè)計的技術(shù)復(fù)雜度,并且不容易理解。因此,在進(jìn)行任務(wù)管理類的具體設(shè)計前,容易理解。因此,在進(jìn)行任務(wù)管理類的具體設(shè)計前,必須仔細(xì)分析和選擇各個任務(wù),盡量使得任務(wù)的數(shù)必須仔細(xì)分析和選擇各個任務(wù),盡量使得任務(wù)的數(shù)目降低到最少。目降低到最少。41Yibinu UniversitySchool of Computer&Information Engineering3、完成設(shè)

39、計、完成設(shè)計 設(shè)計任務(wù)包括定義任務(wù)的內(nèi)容以及它怎樣設(shè)計任務(wù)包括定義任務(wù)的內(nèi)容以及它怎樣協(xié)調(diào)和通訊。協(xié)調(diào)和通訊。1)任務(wù)的內(nèi)容任務(wù)的內(nèi)容2)怎樣協(xié)調(diào)怎樣協(xié)調(diào) 3)怎樣通訊怎樣通訊 42Yibinu UniversitySchool of Computer&Information Engineering任務(wù)管理類設(shè)計模板任務(wù)管理類設(shè)計模板如右圖所示:如右圖所示:43Yibinu UniversitySchool of Computer&Information Engineering 問題空間類、用戶界面類和任務(wù)管理類之間的基問題空間類、用戶界面類和任務(wù)管理類之間的基本關(guān)系如下圖所示,任務(wù)管理類對象

40、從運(yùn)行平臺(操本關(guān)系如下圖所示,任務(wù)管理類對象從運(yùn)行平臺(操作系統(tǒng))接收消息并通過發(fā)送消息創(chuàng)建有關(guān)用戶界面作系統(tǒng))接收消息并通過發(fā)送消息創(chuàng)建有關(guān)用戶界面類對象,用戶界面類對象根據(jù)從用戶處獲得的信息創(chuàng)類對象,用戶界面類對象根據(jù)從用戶處獲得的信息創(chuàng)建有關(guān)問題空間類對象并發(fā)送有關(guān)消息給它。建有關(guān)問題空間類對象并發(fā)送有關(guān)消息給它。如果沒有為系統(tǒng)設(shè)計任務(wù)管理類,則上述任務(wù)管如果沒有為系統(tǒng)設(shè)計任務(wù)管理類,則上述任務(wù)管理類負(fù)責(zé)的有關(guān)工作由用戶界面類負(fù)責(zé)完成。理類負(fù)責(zé)的有關(guān)工作由用戶界面類負(fù)責(zé)完成。圖圖示:示:任務(wù)管理類、用戶界面類和問題空間類及其消息傳送關(guān)系任務(wù)管理類、用戶界面類和問題空間類及其消息傳送關(guān)系

41、44Yibinu UniversitySchool of Computer&Information Engineering四、數(shù)據(jù)管理類四、數(shù)據(jù)管理類(11.8(11.8 設(shè)計數(shù)據(jù)管理子系統(tǒng)設(shè)計數(shù)據(jù)管理子系統(tǒng))是指那些為實現(xiàn)對數(shù)據(jù)進(jìn)行管理而設(shè)計的是指那些為實現(xiàn)對數(shù)據(jù)進(jìn)行管理而設(shè)計的類,它是使軟件系統(tǒng)能夠?qū)ο蟮念悾鞘管浖到y(tǒng)能夠?qū)ο蟮膶傩灾颠M(jìn)屬性值進(jìn)行存貯和檢索行存貯和檢索所需要的類。所需要的類。數(shù)據(jù)管理類數(shù)據(jù)管理類用于存貯和檢索對象的屬性值,用于存貯和檢索對象的屬性值,可以采用可以采用文件模式文件模式或或關(guān)系數(shù)據(jù)庫模式關(guān)系數(shù)據(jù)庫模式實現(xiàn)。實現(xiàn)。設(shè)計數(shù)據(jù)管理類的目的是為了使得對對象設(shè)計數(shù)

42、據(jù)管理類的目的是為了使得對對象屬性值的管理獨立于各種不同的數(shù)據(jù)管理模屬性值的管理獨立于各種不同的數(shù)據(jù)管理模式。式。45Yibinu UniversitySchool of Computer&Information Engineering1、數(shù)據(jù)格式設(shè)計、數(shù)據(jù)格式設(shè)計 1)文件數(shù)據(jù)格式文件數(shù)據(jù)格式當(dāng)采用文件存貯管理方式時,數(shù)據(jù)格式的當(dāng)采用文件存貯管理方式時,數(shù)據(jù)格式的設(shè)計就是對設(shè)計就是對文件記錄結(jié)構(gòu)文件記錄結(jié)構(gòu)進(jìn)行設(shè)計。進(jìn)行設(shè)計。2)關(guān)系數(shù)據(jù)庫格式關(guān)系數(shù)據(jù)庫格式當(dāng)采用關(guān)系數(shù)據(jù)庫管理方式時,數(shù)據(jù)格式當(dāng)采用關(guān)系數(shù)據(jù)庫管理方式時,數(shù)據(jù)格式的設(shè)計就是對的設(shè)計就是對關(guān)系表結(jié)構(gòu)關(guān)系表結(jié)構(gòu)進(jìn)行設(shè)計。進(jìn)行設(shè)計。

43、46Yibinu UniversitySchool of Computer&Information Engineering2 2、操作設(shè)計、操作設(shè)計 數(shù)據(jù)管理類的操作包括增添數(shù)據(jù)記錄、刪除數(shù)據(jù)數(shù)據(jù)管理類的操作包括增添數(shù)據(jù)記錄、刪除數(shù)據(jù)記錄、檢索數(shù)據(jù)記錄和更新數(shù)據(jù)記錄等幾種形式,記錄、檢索數(shù)據(jù)記錄和更新數(shù)據(jù)記錄等幾種形式,問問題空間類題空間類可通過這些可通過這些操作操作發(fā)送消息給相應(yīng)的發(fā)送消息給相應(yīng)的數(shù)據(jù)管理數(shù)據(jù)管理類類實現(xiàn)對數(shù)據(jù)的存貯、刪除、檢索和更新。數(shù)據(jù)管理實現(xiàn)對數(shù)據(jù)的存貯、刪除、檢索和更新。數(shù)據(jù)管理類設(shè)計模板如下圖所示。類設(shè)計模板如下圖所示。圖圖示:示:數(shù)據(jù)管理類設(shè)計模板數(shù)據(jù)管理類設(shè)計模

44、板47Yibinu UniversitySchool of Computer&Information Engineering 為大學(xué)教務(wù)管理問題中的為大學(xué)教務(wù)管理問題中的SelectCourseSelectCourse(選課單)選課單)類設(shè)計的一個類設(shè)計的一個數(shù)據(jù)管理類數(shù)據(jù)管理類。在在SelectCourseSelectCourse類中需要保存的是類中需要保存的是StudentIDStudentID、CourseIDCourseID以及分解為兩個原子變量以及分解為兩個原子變量YearYear和和Semester Semester(學(xué)期學(xué)期)的的SelectForCourseSelectForC

45、ourse等描述性變量,該類通過等描述性變量,該類通過WriteWrite(登記)等登記)等操作操作向相應(yīng)的向相應(yīng)的數(shù)據(jù)管理類數(shù)據(jù)管理類SelectCourseManagerSelectCourseManager發(fā)送發(fā)送AddAdd(增添)、增添)、UpdateUpdate(更新)更新)等消息。等消息。48Yibinu UniversitySchool of Computer&Information Engineering圖示:大學(xué)教務(wù)管理問題中相應(yīng)于圖示:大學(xué)教務(wù)管理問題中相應(yīng)于SelectCourseSelectCourse類的數(shù)據(jù)類的數(shù)據(jù)管理管理49Yibinu UniversitySc

46、hool of Computer&Information Engineering第第1212章章 面向?qū)ο髮崿F(xiàn)面向?qū)ο髮崿F(xiàn) 與結(jié)構(gòu)化實現(xiàn)技術(shù)中先以模塊為單位進(jìn)行過程設(shè)與結(jié)構(gòu)化實現(xiàn)技術(shù)中先以模塊為單位進(jìn)行過程設(shè)計和編碼調(diào)試相似,面向?qū)ο髮崿F(xiàn)技術(shù)是先計和編碼調(diào)試相似,面向?qū)ο髮崿F(xiàn)技術(shù)是先以類為單以類為單位位進(jìn)行操作設(shè)計、編碼調(diào)試;然后實現(xiàn)類與類之間的進(jìn)行操作設(shè)計、編碼調(diào)試;然后實現(xiàn)類與類之間的關(guān)聯(lián)定義,并進(jìn)行系統(tǒng)測試;最后交予用戶使用并根關(guān)聯(lián)定義,并進(jìn)行系統(tǒng)測試;最后交予用戶使用并根據(jù)使用情況進(jìn)行維護(hù)。據(jù)使用情況進(jìn)行維護(hù)。在每一個階段都必須按照有關(guān)規(guī)范編寫相應(yīng)的說在每一個階段都必須按照有關(guān)規(guī)范編寫

47、相應(yīng)的說明書或報告。因此,本章主要討論面向?qū)ο髮崿F(xiàn)技術(shù)明書或報告。因此,本章主要討論面向?qū)ο髮崿F(xiàn)技術(shù)的一些特點和不同于結(jié)構(gòu)化實現(xiàn)技術(shù)。的一些特點和不同于結(jié)構(gòu)化實現(xiàn)技術(shù)。50Yibinu UniversitySchool of Computer&Information Engineering1、實現(xiàn)語言、實現(xiàn)語言 毫無疑問,面向?qū)ο笤O(shè)計的實現(xiàn)最自然毫無疑問,面向?qū)ο笤O(shè)計的實現(xiàn)最自然的實現(xiàn)方式是利用面向?qū)ο笳Z言。目前最常的實現(xiàn)方式是利用面向?qū)ο笳Z言。目前最常用的面向?qū)ο笳Z言是用的面向?qū)ο笳Z言是C+,其它比較著名的,其它比較著名的面向?qū)ο笳Z言則還有面向?qū)ο笳Z言則還有Smalltalk、面向?qū)ο?、面?/p>

48、對象PASCAL,JAVA、Objective-C,Common Lisp Object System(CLOS),等等。,等等。51Yibinu UniversitySchool of Computer&Information Engineering2 2、基本實現(xiàn)手段、基本實現(xiàn)手段 為了實現(xiàn)面向?qū)ο蟮脑O(shè)計,所選用的編碼語為了實現(xiàn)面向?qū)ο蟮脑O(shè)計,所選用的編碼語言一般應(yīng)包括實現(xiàn)類定義、對象創(chuàng)建、結(jié)構(gòu)定義、言一般應(yīng)包括實現(xiàn)類定義、對象創(chuàng)建、結(jié)構(gòu)定義、實例關(guān)聯(lián)定義、操作調(diào)用和消息發(fā)送、內(nèi)存管理、實例關(guān)聯(lián)定義、操作調(diào)用和消息發(fā)送、內(nèi)存管理、封裝等基本功能的編碼手段。封裝等基本功能的編碼手段。這里以目

49、前最為流行的這里以目前最為流行的C+C+語言分別對這些基語言分別對這些基本功能的實現(xiàn)手段加以說明。本功能的實現(xiàn)手段加以說明。52Yibinu UniversitySchool of Computer&Information Engineering1.類定義類定義 使用使用C+對大學(xué)教務(wù)管理問題中的類對大學(xué)教務(wù)管理問題中的類Student(學(xué)生)定義如例(學(xué)生)定義如例6.1所示:所示:例例12.1 類的定義類的定義 typedeftypedef structstruct intint month;month;intint day;day;intint year;year;date;/Month

50、-date;/Month-月;月;day-day-日;日;year-year-年年 enumenum sexdefsexdef M,F;/M-M,F;/M-男;男;F-F-女女 enumenum appdefappdef R,S;/R-R,S;/R-注冊;注冊;S-S-選課選課 class Student class Student protected:protected:/導(dǎo)出類可以訪問的數(shù)據(jù)變量導(dǎo)出類可以訪問的數(shù)據(jù)變量53Yibinu UniversitySchool of Computer&Information Engineeringchar ID8;char Name24;sexde

51、f Sex;date Birthday;date EnrollmentDay;char Department24;char Speciality24;char Password6;apptdef Application;/導(dǎo)出類可以訪問的操作 appdef GetApplication();void PutApplication();void Note(char*Msg);54Yibinu UniversitySchool of Computer&Information Engineeringpublic:public:/構(gòu)造函數(shù),必須與類名稱相同構(gòu)造函數(shù),必須與類名稱相同 Student(c

52、har*Student(char*InitIDInitID););/析構(gòu)函數(shù),必須與類名稱相同析構(gòu)函數(shù),必須與類名稱相同 Student();Student();/所有類都可以訪問的操作所有類都可以訪問的操作 char*char*GetIDGetID();();char*char*GetPasswordGetPassword();();booleanboolean VerifyPasswordVerifyPassword();();void void ChangePassword(charChangePassword(char*NewPasswordNewPassword,char*char*

53、OldPasswordOldPassword););55Yibinu UniversitySchool of Computer&Information Engineering在在C+中,數(shù)據(jù)變量和操作都被說明為成中,數(shù)據(jù)變量和操作都被說明為成員,數(shù)據(jù)變量和操作的名稱不能相同。類的員,數(shù)據(jù)變量和操作的名稱不能相同。類的成員必須被說明為公有的(成員必須被說明為公有的(public)、保護(hù))、保護(hù)的(的(protectd)或私有的()或私有的(private)中的一)中的一種,其中私有的為缺省值。公有成員可以被種,其中私有的為缺省值。公有成員可以被任何類的操作訪問;保護(hù)成員只允許類自身任何類的操作訪

54、問;保護(hù)成員只允許類自身及其導(dǎo)出類的操作訪問;私有成員只允許類及其導(dǎo)出類的操作訪問;私有成員只允許類自身的操作訪問。自身的操作訪問。56Yibinu UniversitySchool of Computer&Information Engineering在上述例子中,類在上述例子中,類Student的所有數(shù)據(jù)變的所有數(shù)據(jù)變量和幾個操作被定義為保護(hù)成員,因為其導(dǎo)量和幾個操作被定義為保護(hù)成員,因為其導(dǎo)出類出類Undergraduate(本科生)和(本科生)和Graduate(研究生)(研究生)將要訪問這些成員。將要訪問這些成員。類中操作的定義類似于一個過程或函數(shù)類中操作的定義類似于一個過程或函數(shù)的

55、定義,只是需要把類名作為操作名的前綴。的定義,只是需要把類名作為操作名的前綴。例例11.2給出了用給出了用C+編碼設(shè)計的類編碼設(shè)計的類Student的操作的操作ChangePassword。57Yibinu UniversitySchool of Computer&Information Engineering例例11.2類操作的定義類操作的定義void Student:Changepassword(char*NewPassword,char*OldPassword);if(OldPassword=Password)Password=NewPassword;58Yibinu Universit

56、ySchool of Computer&Information EngineeringStudent:Student(char*InitID)ID=InitID;與類名稱相同的兩個操作與類名稱相同的兩個操作StudentStudent和和StudentStudent分別分別稱為構(gòu)造函數(shù)和析構(gòu)函數(shù),它們分別用于對象創(chuàng)建稱為構(gòu)造函數(shù)和析構(gòu)函數(shù),它們分別用于對象創(chuàng)建和對象消除操作。例如類和對象消除操作。例如類StudentStudent的構(gòu)造函數(shù)和析的構(gòu)造函數(shù)和析構(gòu)函數(shù)的定義分別如例構(gòu)函數(shù)的定義分別如例12.312.3和和12.4 12.4 所示。所示。例例12.3 12.3 類構(gòu)造函數(shù)的定義類構(gòu)造

57、函數(shù)的定義59Yibinu UniversitySchool of Computer&Information Engineering例例12.4 12.4 類析構(gòu)函數(shù)的定義類析構(gòu)函數(shù)的定義 析構(gòu)函數(shù)是不帶參數(shù)的,其名稱是在類名稱前面析構(gòu)函數(shù)是不帶參數(shù)的,其名稱是在類名稱前面加一個波浪號加一個波浪號“”。Student:Student()/60Yibinu UniversitySchool of Computer&Information Engineering12.2.2 對象創(chuàng)建對象創(chuàng)建 C+有兩種對象創(chuàng)建方式,有兩種對象創(chuàng)建方式,靜態(tài)內(nèi)存分配靜態(tài)內(nèi)存分配方式方式和和動態(tài)內(nèi)存分配方式動態(tài)內(nèi)存分

58、配方式,每當(dāng)創(chuàng)建一個新,每當(dāng)創(chuàng)建一個新對對 象,就執(zhí)行一次構(gòu)造函數(shù)。象,就執(zhí)行一次構(gòu)造函數(shù)。例例12.5 用靜態(tài)內(nèi)存分配方式創(chuàng)建了類用靜態(tài)內(nèi)存分配方式創(chuàng)建了類Student的學(xué)號為的學(xué)號為98109002的對象的對象studentobj。對象創(chuàng)建的靜態(tài)內(nèi)存分配方式對象創(chuàng)建的靜態(tài)內(nèi)存分配方式 Student studentobj(98109002);61Yibinu UniversitySchool of Computer&Information Engineering如果該語句是出現(xiàn)在一個操作或函數(shù)中,則說如果該語句是出現(xiàn)在一個操作或函數(shù)中,則說明明studentobj被定義為被定義為局部變量

59、局部變量,當(dāng),當(dāng)操作或操作或 函數(shù)執(zhí)函數(shù)執(zhí)行完畢退出行完畢退出時,該對象將被自動消除,所占用的內(nèi)時,該對象將被自動消除,所占用的內(nèi)存被釋放,釋放內(nèi)存時將執(zhí)行一次析構(gòu)函數(shù)。如果存被釋放,釋放內(nèi)存時將執(zhí)行一次析構(gòu)函數(shù)。如果該語句是將該語句是將studentobj定義為一個定義為一個全局變?nèi)肿兞?,則只量,則只有有系統(tǒng)退出系統(tǒng)退出后對象后對象studentobj才會被消除。才會被消除。采用動態(tài)內(nèi)存分配方式創(chuàng)建對象時需要借用采用動態(tài)內(nèi)存分配方式創(chuàng)建對象時需要借用C+的的new操作符操作符進(jìn)行。進(jìn)行。new操作符為新對象分配操作符為新對象分配內(nèi)存并且返回它的一個指針,指針存放在指針變量內(nèi)存并且返回它的一

60、個指針,指針存放在指針變量中。中。new操作符可以包括構(gòu)造函數(shù)中操作符可以包括構(gòu)造函數(shù)中 的參數(shù),如例的參數(shù),如例12.6所示。所示。62Yibinu UniversitySchool of Computer&Information Engineering例例12.6 對象創(chuàng)建的動態(tài)內(nèi)存分配方式對象創(chuàng)建的動態(tài)內(nèi)存分配方式 Student*studentobj=new Student(98109002)動態(tài)對象所占的內(nèi)存必須使用動態(tài)對象所占的內(nèi)存必須使用C+的的delete操操作符作符來釋放。來釋放。delete操作符首先喚醒該類的操作符首先喚醒該類的 析構(gòu)函析構(gòu)函數(shù),然后釋放該對象的內(nèi)存,如例

61、數(shù),然后釋放該對象的內(nèi)存,如例12.7所示。所示。例例12.7 動態(tài)對象內(nèi)存釋放動態(tài)對象內(nèi)存釋放 delete studentobj;注意,構(gòu)造函數(shù)和析構(gòu)函數(shù)僅僅是用來初始化注意,構(gòu)造函數(shù)和析構(gòu)函數(shù)僅僅是用來初始化及刪除對象的,內(nèi)存分配及釋放應(yīng)該明確由及刪除對象的,內(nèi)存分配及釋放應(yīng)該明確由new和和delete操作符來實現(xiàn)或由局部變量的作用消失來實操作符來實現(xiàn)或由局部變量的作用消失來實現(xiàn)?,F(xiàn)。63Yibinu UniversitySchool of Computer&Information Engineering3 3、實現(xiàn)環(huán)境實現(xiàn)環(huán)境 (1 1)MFCMFC類庫類庫 (2 2)開發(fā)工具:開發(fā)

62、工具:Microsoft Visual C+Microsoft Visual C+的四個基本開發(fā)工具。的四個基本開發(fā)工具。如文本編輯器、項目管理器、瀏覽器、調(diào)試如文本編輯器、項目管理器、瀏覽器、調(diào)試器,等等。器,等等。4 4、編碼調(diào)試、編碼調(diào)試 5 5、測試、測試 6 6、維護(hù)、維護(hù)64Yibinu UniversitySchool of Computer&Information Engineering面向?qū)ο笤O(shè)計(OOD)(補(bǔ)充)面向?qū)ο笤O(shè)計建立軟件系統(tǒng)的結(jié)構(gòu)。面向?qū)ο笤O(shè)計建立軟件系統(tǒng)的結(jié)構(gòu)。設(shè)計層次為:設(shè)計層次為:子系統(tǒng)層:包含每個子系統(tǒng)的表示。子系統(tǒng)層:包含每個子系統(tǒng)的表示。類和對象層:

63、包含類層次和每個對象的設(shè)計類和對象層:包含類層次和每個對象的設(shè)計表示。表示。消息層:包含使每個對象能夠和其協(xié)作者通消息層:包含使每個對象能夠和其協(xié)作者通信的細(xì)節(jié),建立系統(tǒng)的外部和內(nèi)部接口。信的細(xì)節(jié),建立系統(tǒng)的外部和內(nèi)部接口。責(zé)任層:包含針對每個對象的所有屬性和操責(zé)任層:包含針對每個對象的所有屬性和操作的數(shù)據(jù)結(jié)構(gòu)和算法的設(shè)計。作的數(shù)據(jù)結(jié)構(gòu)和算法的設(shè)計。65Yibinu UniversitySchool of Computer&Information Engineering面向?qū)ο笤O(shè)計的主要工作分為兩個階段:面向?qū)ο笤O(shè)計的主要工作分為兩個階段:高層設(shè)計高層設(shè)計和和類設(shè)計類設(shè)計。高層設(shè)計構(gòu)造應(yīng)用軟件

64、的總體模型。高層設(shè)計構(gòu)造應(yīng)用軟件的總體模型。高層設(shè)計構(gòu)造應(yīng)用軟件的總體模型。高層設(shè)計構(gòu)造應(yīng)用軟件的總體模型。類設(shè)計建立類的規(guī)格說明,包括類的實例可類設(shè)計建立類的規(guī)格說明,包括類的實例可類設(shè)計建立類的規(guī)格說明,包括類的實例可類設(shè)計建立類的規(guī)格說明,包括類的實例可執(zhí)行的操作和它們的數(shù)據(jù)表示。執(zhí)行的操作和它們的數(shù)據(jù)表示。執(zhí)行的操作和它們的數(shù)據(jù)表示。執(zhí)行的操作和它們的數(shù)據(jù)表示。三個可能的利用現(xiàn)有類的方向:三個可能的利用現(xiàn)有類的方向:現(xiàn)有類的復(fù)用現(xiàn)有類的復(fù)用現(xiàn)有類的復(fù)用現(xiàn)有類的復(fù)用 從現(xiàn)有類進(jìn)行演化從現(xiàn)有類進(jìn)行演化從現(xiàn)有類進(jìn)行演化從現(xiàn)有類進(jìn)行演化 從廢棄型進(jìn)行開發(fā)從廢棄型進(jìn)行開發(fā)從廢棄型進(jìn)行開發(fā)從廢棄型進(jìn)行開發(fā)66Yibinu UniversitySchool of Computer&Information Engineering小小 結(jié)結(jié)1 1、面向?qū)ο蟮脑O(shè)計、面向?qū)ο蟮脑O(shè)計:五個層次、四個部分五個層次、四個部分 2 2、面向?qū)ο蟮膶崿F(xiàn)、面向?qū)ο蟮膶崿F(xiàn):以類為單位進(jìn)行操作以類為單位進(jìn)行操作設(shè)計、編碼調(diào)試等設(shè)計、編碼調(diào)試等.67

展開閱讀全文
溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!