




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1目錄頁面向?qū)ο蟮姆治雠c設(shè)計第7章本章本章要點要點n 理解面向?qū)ο蠓治龅闹饕蝿?wù)和一般過程;n 初步掌握對象模型的建立方法;n 了解動態(tài)模型和功能模型的建立方法;n 理解面向?qū)ο笤O(shè)計的基本模型及主要內(nèi)容。2目錄頁7.1 面向?qū)ο蠓治龅?章面向?qū)ο蠓治觯嫦驅(qū)ο蠓治觯∣bject Oriented Analysis,OOA)是軟件開發(fā)過程中的問題定義和需求分析)是軟件開發(fā)過程中的問題定義和需求分析階段,這一階段最后得到的是對問題領(lǐng)域的清晰、精確的定義。階段,這一階段最后得到的是對問題領(lǐng)域的清晰、精確的定義。OOA的目標(biāo)是完成對所需求解的目標(biāo)是完成對所需求解問題的分析,確定目標(biāo)系統(tǒng)所要做的工作,定
2、義所有與待解決問題相關(guān)的類,并建立系統(tǒng)的模問題的分析,確定目標(biāo)系統(tǒng)所要做的工作,定義所有與待解決問題相關(guān)的類,并建立系統(tǒng)的模型。型。OOA的核心思想是利用面向?qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?,以使用戶需求逐步精的核心思想是利用面向?qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P?,以使用戶需求逐步精確化、一致化、完全化。為了達(dá)到這一目標(biāo),必須完成以下任務(wù):確化、一致化、完全化。為了達(dá)到這一目標(biāo),必須完成以下任務(wù):(1)與用戶進(jìn)行充分溝通,全面理解和分析用戶需求,明確所開發(fā)的軟件系統(tǒng)的職責(zé),)與用戶進(jìn)行充分溝通,全面理解和分析用戶需求,明確所開發(fā)的軟件系統(tǒng)的職責(zé),形成文件并規(guī)范地加以表述;形成文件并規(guī)范地加以
3、表述;(2)識別解決問題的對象集合及對象間的關(guān)系;)識別解決問題的對象集合及對象間的關(guān)系;(3)定義類(包括定義其屬性和操作)并建立類間的層次關(guān)系;)定義類(包括定義其屬性和操作)并建立類間的層次關(guān)系;(4)通過建立模型來表示對象之間的關(guān)系及行為特性。)通過建立模型來表示對象之間的關(guān)系及行為特性。7.1.1 面向?qū)ο蠓治龅哪繕?biāo)和任務(wù)面向?qū)ο蠓治龅哪繕?biāo)和任務(wù)3目錄頁7.1 面向?qū)ο蠓治龅?章7.1.2 面向?qū)ο蠓治龅倪^程面向?qū)ο蠓治龅倪^程4目錄頁7.1 面向?qū)ο蠓治龅?章1.分析需求文檔分析需求文檔系統(tǒng)分析通常是從一個需求文檔系統(tǒng)分析通常是從一個需求文檔(或稱需求陳述或稱需求陳述)和用戶一系列的
4、討論開始的。大多數(shù)需和用戶一系列的討論開始的。大多數(shù)需求陳述都是有二義性的、不完整的甚至不一致的。通過分析可以發(fā)現(xiàn)和改正需求文檔中的歧求陳述都是有二義性的、不完整的甚至不一致的。通過分析可以發(fā)現(xiàn)和改正需求文檔中的歧義性、不一致性,剔除冗余的內(nèi)容,挖掘潛在的內(nèi)容,彌補(bǔ)不足,從而使需求文檔更完整、義性、不一致性,剔除冗余的內(nèi)容,挖掘潛在的內(nèi)容,彌補(bǔ)不足,從而使需求文檔更完整、更準(zhǔn)確。分析過程中,系統(tǒng)分析員除了要反復(fù)多次地與用戶討論溝通外,還應(yīng)調(diào)研、觀察和更準(zhǔn)確。分析過程中,系統(tǒng)分析員除了要反復(fù)多次地與用戶討論溝通外,還應(yīng)調(diào)研、觀察和了解現(xiàn)有的類似系統(tǒng),從而快速地建立一個原型系統(tǒng),通過在計算機(jī)上運(yùn)行
5、原型系統(tǒng),使得了解現(xiàn)有的類似系統(tǒng),從而快速地建立一個原型系統(tǒng),通過在計算機(jī)上運(yùn)行原型系統(tǒng),使得分析員和用戶盡快交流和相互理解,從而能更正確地、更完整地提取和確定用戶的需求。分析員和用戶盡快交流和相互理解,從而能更正確地、更完整地提取和確定用戶的需求。7.1.2 面向?qū)ο蠓治龅倪^程面向?qū)ο蠓治龅倪^程5目錄頁7.1 面向?qū)ο蠓治龅?章2.需求建模需求建模系統(tǒng)分析員根據(jù)所提取的用戶需求,深入地理解用戶需求,識別出問題域內(nèi)的對象,并系統(tǒng)分析員根據(jù)所提取的用戶需求,深入地理解用戶需求,識別出問題域內(nèi)的對象,并分析它們之間相互的關(guān)系,抽象出目標(biāo)系統(tǒng)應(yīng)該完成的任務(wù),并用分析它們之間相互的關(guān)系,抽象出目標(biāo)系統(tǒng)
6、應(yīng)該完成的任務(wù),并用OOA模型準(zhǔn)確地表示出來,模型準(zhǔn)確地表示出來,即用面向?qū)ο笥^點建立對象模型、動態(tài)模型和功能模型。即用面向?qū)ο笥^點建立對象模型、動態(tài)模型和功能模型。OOA模型是模型是OOD的基礎(chǔ),它應(yīng)該準(zhǔn)的基礎(chǔ),它應(yīng)該準(zhǔn)確、簡潔地表示問題。通過建立模型,可以避免理解上的片面性,提高目標(biāo)系統(tǒng)的正確性和確、簡潔地表示問題。通過建立模型,可以避免理解上的片面性,提高目標(biāo)系統(tǒng)的正確性和可靠性,在此基礎(chǔ)上,編寫出面向?qū)ο蟮男枨笠?guī)格說明書??煽啃?,在此基礎(chǔ)上,編寫出面向?qū)ο蟮男枨笠?guī)格說明書。3.需求評審需求評審需求規(guī)格說明文檔經(jīng)用戶、領(lǐng)域?qū)<?、系統(tǒng)分析員和系統(tǒng)設(shè)計人員以及其他有關(guān)人員評需求規(guī)格說明文檔經(jīng)
7、用戶、領(lǐng)域?qū)<摇⑾到y(tǒng)分析員和系統(tǒng)設(shè)計人員以及其他有關(guān)人員評審、并進(jìn)行反復(fù)修改后形成定稿,該文檔將成為面向?qū)ο笤O(shè)計的依據(jù)。審、并進(jìn)行反復(fù)修改后形成定稿,該文檔將成為面向?qū)ο笤O(shè)計的依據(jù)。7.1.2 面向?qū)ο蠓治龅倪^程面向?qū)ο蠓治龅倪^程6目錄頁7.1 面向?qū)ο蠓治龅?章面向?qū)ο蠼J敲嫦驅(qū)ο蠼J荗OA的關(guān)鍵。的關(guān)鍵。OOA的模型要表示出系統(tǒng)的數(shù)據(jù)、功能和行為三方面的基的模型要表示出系統(tǒng)的數(shù)據(jù)、功能和行為三方面的基本特征,因此通常需要建立三種模型,分別是對象模型、動態(tài)模型和功能模型。其中:本特征,因此通常需要建立三種模型,分別是對象模型、動態(tài)模型和功能模型。其中:(1)對象模型描述系統(tǒng)的數(shù)據(jù)結(jié)構(gòu),它
8、是用來描述系統(tǒng)包含的對象及對象之間關(guān)系的)對象模型描述系統(tǒng)的數(shù)據(jù)結(jié)構(gòu),它是用來描述系統(tǒng)包含的對象及對象之間關(guān)系的模型;模型;(2)動態(tài)模型描述系統(tǒng)的控制結(jié)構(gòu),它是用來確定各個對象之間交互及整體的控制結(jié))動態(tài)模型描述系統(tǒng)的控制結(jié)構(gòu),它是用來確定各個對象之間交互及整體的控制結(jié)構(gòu)的模型;構(gòu)的模型;(3)功能模型描述系統(tǒng)的功能,它是用來描述系統(tǒng)要實現(xiàn)的功能的模型。)功能模型描述系統(tǒng)的功能,它是用來描述系統(tǒng)要實現(xiàn)的功能的模型。7.1.3 面向?qū)ο蠓治龅娜N模型面向?qū)ο蠓治龅娜N模型7目錄頁7.1 面向?qū)ο蠓治龅?章1.對象模型的五個層次對象模型的五個層次復(fù)雜問題復(fù)雜問題(大型系統(tǒng)大型系統(tǒng))的對象模型由五
9、個層次組成,即主題層、類的對象模型由五個層次組成,即主題層、類|對象層、結(jié)構(gòu)層、對象層、結(jié)構(gòu)層、屬性層和服務(wù)層,如圖屬性層和服務(wù)層,如圖7-3所示。所示。 7.1.4 對象模型的層次對象模型的層次8目錄頁7.1 面向?qū)ο蠓治龅?章2.OOA的五項活動的五項活動OOA對象模型的五個層次對應(yīng)著對象模型的五個層次對應(yīng)著OOA過程中建立對象模型的五項活動。這五項活動是:過程中建立對象模型的五項活動。這五項活動是:確定類確定類|對象、識別結(jié)構(gòu)、識別主題、定義屬性、定義服務(wù)。對象、識別結(jié)構(gòu)、識別主題、定義屬性、定義服務(wù)。需要說明的是,這五項工作完全沒有必要順序完成,也無需在徹底完成一項工作以后再需要說明的
10、是,這五項工作完全沒有必要順序完成,也無需在徹底完成一項工作以后再開始另外一項工作,在分析過程中并不需要嚴(yán)格遵循自頂向下,逐步求精的原則。五項活動開始另外一項工作,在分析過程中并不需要嚴(yán)格遵循自頂向下,逐步求精的原則。五項活動可以同時可以同時(并行并行)處理,也可以從較高抽象層轉(zhuǎn)移到較低的具體層,然后再返回到較高抽象層繼處理,也可以從較高抽象層轉(zhuǎn)移到較低的具體層,然后再返回到較高抽象層繼續(xù)處理。例如,當(dāng)系統(tǒng)分析員在確定類續(xù)處理。例如,當(dāng)系統(tǒng)分析員在確定類|對象時,想到了該類應(yīng)該包含的一個服務(wù),于對象時,想到了該類應(yīng)該包含的一個服務(wù),于是把這個服務(wù)的名字寫在服務(wù)層,然后又返回到類是把這個服務(wù)的名
11、字寫在服務(wù)層,然后又返回到類|對象層,繼續(xù)尋找另外的類對象層,繼續(xù)尋找另外的類|對對象。象。 7.1.4 對象模型的層次對象模型的層次9目錄頁7.1 面向?qū)ο蠓治龅?章3.OOA的主要流程的主要流程面向?qū)ο蠓治龃篌w上按照如圖面向?qū)ο蠓治龃篌w上按照如圖7-4所示的順序進(jìn)行。所示的順序進(jìn)行。7.1.4 對象模型的層次對象模型的層次10目錄頁7.2 建立對象模型第7章OOA的核心是確定問題域中相關(guān)的對象,找出這些對象是個重要而復(fù)雜的過程。一般采的核心是確定問題域中相關(guān)的對象,找出這些對象是個重要而復(fù)雜的過程。一般采用基于詞匯分析的方法:從目標(biāo)系統(tǒng)的描述開始,找出其中的名詞作為候選對象類,此外,用基于
12、詞匯分析的方法:從目標(biāo)系統(tǒng)的描述開始,找出其中的名詞作為候選對象類,此外,還可找出其中的動詞作為候選方法(即后面要介紹的服務(wù)),然后產(chǎn)生一個由對象(名詞)還可找出其中的動詞作為候選方法(即后面要介紹的服務(wù)),然后產(chǎn)生一個由對象(名詞)和方法(動詞)構(gòu)成的表格,作為詞匯分析的初步結(jié)果,最后從中選出確定的真正的對象類。和方法(動詞)構(gòu)成的表格,作為詞匯分析的初步結(jié)果,最后從中選出確定的真正的對象類。如圖如圖7-5所示。所示。7.2.1 確定對象和類確定對象和類11目錄頁7.2 建立對象模型第7章采用系統(tǒng)詞匯法確定對象類,并進(jìn)行建模的具體做法如下:采用系統(tǒng)詞匯法確定對象類,并進(jìn)行建模的具體做法如下:
13、(1)確定對象類)確定對象類(2)準(zhǔn)備數(shù)據(jù)詞典)準(zhǔn)備數(shù)據(jù)詞典(3)確定關(guān)聯(lián))確定關(guān)聯(lián)(4)確定屬性)確定屬性(5)使用繼承來細(xì)化對象類)使用繼承來細(xì)化對象類(6)完善對象模型)完善對象模型7.2.1 確定對象和類確定對象和類12目錄頁7.2 建立對象模型第7章主題是一種關(guān)于模型的抽象機(jī)制,起一種控制作用。引入主題有助于分解大型項目以便主題是一種關(guān)于模型的抽象機(jī)制,起一種控制作用。引入主題有助于分解大型項目以便成立工作小組來承擔(dān)不同的主題任務(wù)。主題有兩種表示形式,如圖成立工作小組來承擔(dān)不同的主題任務(wù)。主題有兩種表示形式,如圖7-7所示。所示。7.2.3 確定主題確定主題 13目錄頁7.2 建立對
14、象模型第7章所謂服務(wù)是在接收到一條消息后所要進(jìn)行的加工。定義服務(wù)時,首先定義行為,然后定所謂服務(wù)是在接收到一條消息后所要進(jìn)行的加工。定義服務(wù)時,首先定義行為,然后定義實例的通信。值得說明的是,確定服務(wù)和消息,只有在建立了動態(tài)模型和功能模型之后,義實例的通信。值得說明的是,確定服務(wù)和消息,只有在建立了動態(tài)模型和功能模型之后,才可能最后確定對象類的服務(wù)。本教材為保持案例的連續(xù)性,故將服務(wù)和消息在此介紹。才可能最后確定對象類的服務(wù)。本教材為保持案例的連續(xù)性,故將服務(wù)和消息在此介紹。確定一個類中的服務(wù),主要取決于該類在問題中的實際作用以及求解過程中承擔(dān)的處理確定一個類中的服務(wù),主要取決于該類在問題中的
15、實際作用以及求解過程中承擔(dān)的處理責(zé)任,確定的原則如下:責(zé)任,確定的原則如下:(1)基本的屬性操作服務(wù)。即類中應(yīng)提供的訪問、修改自身屬性值的基本操作。這類)基本的屬性操作服務(wù)。即類中應(yīng)提供的訪問、修改自身屬性值的基本操作。這類操作屬于類的內(nèi)部操作,可不必在對象模型中顯式表示。操作屬于類的內(nèi)部操作,可不必在對象模型中顯式表示。(2)事件的處理操作。動態(tài)模型中狀態(tài)圖描述了對象應(yīng)接收的事件(消息),類和對)事件的處理操作。動態(tài)模型中狀態(tài)圖描述了對象應(yīng)接收的事件(消息),類和對象中必須提供處理相應(yīng)消息的服務(wù),這些服務(wù)用于修改對象的狀態(tài)(屬性值)并啟動相應(yīng)的象中必須提供處理相應(yīng)消息的服務(wù),這些服務(wù)用于修改
16、對象的狀態(tài)(屬性值)并啟動相應(yīng)的服務(wù)。服務(wù)。7.2.4 確定服務(wù)和消息確定服務(wù)和消息 14目錄頁7.2 建立對象模型第7章(3)數(shù)據(jù)流圖中處理框?qū)?yīng)的操作。功能模型中的每個處理框代表了系統(tǒng)應(yīng)實現(xiàn)的部)數(shù)據(jù)流圖中處理框?qū)?yīng)的操作。功能模型中的每個處理框代表了系統(tǒng)應(yīng)實現(xiàn)的部分功能,而這些功能都與一個或幾個對象中提供的服務(wù)相對應(yīng)。因此,要仔細(xì)分析狀態(tài)圖和分功能,而這些功能都與一個或幾個對象中提供的服務(wù)相對應(yīng)。因此,要仔細(xì)分析狀態(tài)圖和數(shù)據(jù)流圖,以便正確地確定對象應(yīng)提供的服務(wù)。數(shù)據(jù)流圖,以便正確地確定對象應(yīng)提供的服務(wù)。(4)利用繼承機(jī)制優(yōu)化服務(wù)集合,減少冗余服務(wù)。應(yīng)盡量抽取相似的公共屬性和服務(wù),)利用繼
17、承機(jī)制優(yōu)化服務(wù)集合,減少冗余服務(wù)。應(yīng)盡量抽取相似的公共屬性和服務(wù),以建立這些相似類的新父類,并在類的不同層次中正確定義各個服務(wù)。以建立這些相似類的新父類,并在類的不同層次中正確定義各個服務(wù)。7.2.4 確定服務(wù)和消息確定服務(wù)和消息 15目錄頁7.3 建立動態(tài)模型第7章動態(tài)模型描述系統(tǒng)的動態(tài)行為,表現(xiàn)對象在系統(tǒng)運(yùn)行期間不同時刻的動態(tài)交互。動態(tài)模型描述系統(tǒng)的動態(tài)行為,表現(xiàn)對象在系統(tǒng)運(yùn)行期間不同時刻的動態(tài)交互。下列三個因素有關(guān):下列三個因素有關(guān):(1)狀態(tài)。狀態(tài)是對象在其生存周期中的某個特定階段所具有的行為模式,它是對影)狀態(tài)。狀態(tài)是對象在其生存周期中的某個特定階段所具有的行為模式,它是對影響對象行
18、為的屬性值的一種抽象。狀態(tài)規(guī)定了對象對輸入事件的響應(yīng)方式。對象對輸入事件響對象行為的屬性值的一種抽象。狀態(tài)規(guī)定了對象對輸入事件的響應(yīng)方式。對象對輸入事件的響應(yīng),既可以執(zhí)行一個或一系列動作,也可以是僅僅改變對象本身的狀態(tài)。狀態(tài)有持續(xù)性,的響應(yīng),既可以執(zhí)行一個或一系列動作,也可以是僅僅改變對象本身的狀態(tài)。狀態(tài)有持續(xù)性,占用一段時間間隔。占用一段時間間隔。(2)事件。事件是一個觸發(fā)行為,是引起對象狀態(tài)轉(zhuǎn)換的控制信息,是引起對象從一)事件。事件是一個觸發(fā)行為,是引起對象狀態(tài)轉(zhuǎn)換的控制信息,是引起對象從一種狀態(tài)轉(zhuǎn)換到另一種狀態(tài)的事情的抽象。事件沒有持續(xù)的時間,是瞬間完成的。種狀態(tài)轉(zhuǎn)換到另一種狀態(tài)的事情的
19、抽象。事件沒有持續(xù)的時間,是瞬間完成的。(3)行為。行為也稱服務(wù),是指對象在某種狀態(tài)下所做的一系列處理操作,行為是需)行為。行為也稱服務(wù),是指對象在某種狀態(tài)下所做的一系列處理操作,行為是需要消耗時間的要消耗時間的16目錄頁7.3 建立動態(tài)模型第7章1.構(gòu)建事件追蹤圖構(gòu)建事件追蹤圖要建立一個事件追蹤圖,通常首先要編寫要建立一個事件追蹤圖,通常首先要編寫腳本。腳本是系統(tǒng)執(zhí)行某個功能的一系列事件。腳本。腳本是系統(tǒng)執(zhí)行某個功能的一系列事件。腳本通常起始于一個系統(tǒng)外部的輸入事件,結(jié)束腳本通常起始于一個系統(tǒng)外部的輸入事件,結(jié)束于一個系統(tǒng)外部的輸出事件,它可以包括發(fā)生在于一個系統(tǒng)外部的輸出事件,它可以包括發(fā)
20、生在此期間內(nèi)系統(tǒng)所有的內(nèi)部事件。此期間內(nèi)系統(tǒng)所有的內(nèi)部事件。17目錄頁7.3 建立動態(tài)模型第7章18目錄頁7.4 建立功能模型第7章功能模型主要用來說明系統(tǒng)內(nèi)部數(shù)據(jù)是如何傳送和處理的,表示變化的系統(tǒng)的功能模型主要用來說明系統(tǒng)內(nèi)部數(shù)據(jù)是如何傳送和處理的,表示變化的系統(tǒng)的“功能功能”性質(zhì)。功能模型描述了系統(tǒng)性質(zhì)。功能模型描述了系統(tǒng)“做什么做什么”,它更直接、明確地反映了用戶對目標(biāo)系統(tǒng)的需求。,它更直接、明確地反映了用戶對目標(biāo)系統(tǒng)的需求。建立功能模型有助于軟件開發(fā)人員更深入地理解整個問題域,改進(jìn)和完善自己的設(shè)計。通常建立功能模型有助于軟件開發(fā)人員更深入地理解整個問題域,改進(jìn)和完善自己的設(shè)計。通常在建
21、立對象模型和動態(tài)模型之后再建立功能模型。在建立對象模型和動態(tài)模型之后再建立功能模型。在在UML中,用用例圖描述用例模型,用例圖包含系統(tǒng)、行為者、用例、用例之間的關(guān)系中,用用例圖描述用例模型,用例圖包含系統(tǒng)、行為者、用例、用例之間的關(guān)系等元素。其中:系統(tǒng)是一個提供用例的黑盒子,可用方框表示;行為者是與系統(tǒng)交互的角色等元素。其中:系統(tǒng)是一個提供用例的黑盒子,可用方框表示;行為者是與系統(tǒng)交互的角色或其他外部系統(tǒng);用例是一個完整的功能,完成系統(tǒng)內(nèi)部的計算及與行為者的交互,它對應(yīng)或其他外部系統(tǒng);用例是一個完整的功能,完成系統(tǒng)內(nèi)部的計算及與行為者的交互,它對應(yīng)于對象模型中的類所提供的服務(wù);行為者與用例之間
22、的關(guān)系用直線連接,表示兩者之間有交于對象模型中的類所提供的服務(wù);行為者與用例之間的關(guān)系用直線連接,表示兩者之間有交換信息,稱為通信聯(lián)系。換信息,稱為通信聯(lián)系。19目錄頁7.4 建立功能模型第7章用數(shù)據(jù)流圖建立功能模型的主要步驟如下:用數(shù)據(jù)流圖建立功能模型的主要步驟如下:(1)確定輸入和輸出值;確定輸入和輸出值;(2)用數(shù)據(jù)流圖表示功能的依賴性;用數(shù)據(jù)流圖表示功能的依賴性;(3)具體描述每個功能;具體描述每個功能;(4)確定對象的約束;確定對象的約束;(5)確定功能優(yōu)化的準(zhǔn)則。確定功能優(yōu)化的準(zhǔn)則。功能模型中的數(shù)據(jù)流圖往往形成一個層次結(jié)構(gòu)。在這個層次結(jié)構(gòu)中,一個數(shù)據(jù)流圖中的功能模型中的數(shù)據(jù)流圖往往
23、形成一個層次結(jié)構(gòu)。在這個層次結(jié)構(gòu)中,一個數(shù)據(jù)流圖中的過程(即處理)可以由下一層的數(shù)據(jù)流圖作進(jìn)一步說明。過程(即處理)可以由下一層的數(shù)據(jù)流圖作進(jìn)一步說明。20目錄頁7.4 建立功能模型第7章21目錄頁7.5 面向?qū)ο笤O(shè)計第7章1.面向?qū)ο蠓治雠c面向?qū)ο笤O(shè)計的關(guān)系面向?qū)ο蠓治雠c面向?qū)ο笤O(shè)計的關(guān)系面向?qū)ο笤O(shè)計(面向?qū)ο笤O(shè)計(Object Oriented Design,OOD)是根據(jù)面向?qū)ο蠓治鲋写_定的類和對象)是根據(jù)面向?qū)ο蠓治鲋写_定的類和對象設(shè)計軟件系統(tǒng)。從設(shè)計軟件系統(tǒng)。從OOA到到OOD是一個逐步建立和擴(kuò)充對象模型的過程。是一個逐步建立和擴(kuò)充對象模型的過程。OOA是分析用戶需求并建立問題域模型
24、的過程,是解決系統(tǒng)是分析用戶需求并建立問題域模型的過程,是解決系統(tǒng)“做什么做什么”問題的;問題的;OOD則則是根據(jù)是根據(jù)OOA得到的需求模型,建立求解域模型的過程,是解決系統(tǒng)得到的需求模型,建立求解域模型的過程,是解決系統(tǒng)“怎么做怎么做”問題的。問題的。OOA主要是模擬問題域和系統(tǒng)任務(wù),而主要是模擬問題域和系統(tǒng)任務(wù),而OOD則是對則是對OOA的擴(kuò)充,主要是增加各種組成部的擴(kuò)充,主要是增加各種組成部分。具體來說,分。具體來說,OOA識別和定義類和對象。這些類和對象直接反映問題域和系統(tǒng)任務(wù)。而識別和定義類和對象。這些類和對象直接反映問題域和系統(tǒng)任務(wù)。而OOD識別和定義其他附加類和對象,它們反映需求
25、的一種實現(xiàn),當(dāng)然,也可以交替進(jìn)行這兩識別和定義其他附加類和對象,它們反映需求的一種實現(xiàn),當(dāng)然,也可以交替進(jìn)行這兩個階段的工作。從個階段的工作。從OOA到到OOD是一個逐漸擴(kuò)充模型的過程,分析和設(shè)計活動是一個多次反復(fù)是一個逐漸擴(kuò)充模型的過程,分析和設(shè)計活動是一個多次反復(fù)迭代的過程。迭代的過程。7.5.1 面向?qū)ο笤O(shè)計概述面向?qū)ο笤O(shè)計概述22目錄頁7.5 面向?qū)ο笤O(shè)計第7章2.面向?qū)ο笤O(shè)計的基本模型面向?qū)ο笤O(shè)計的基本模型OOD是在是在OOA模型的基礎(chǔ)上建立對象模型的過程,兩個階段同樣是建立對象模型,但側(cè)重模型的基礎(chǔ)上建立對象模型的過程,兩個階段同樣是建立對象模型,但側(cè)重點不同,點不同,OOA建立問
26、題域?qū)ο竽P?,而建立問題域?qū)ο竽P?,而OOD建立求解域的對象模型。因此建立求解域的對象模型。因此OOD模型同樣也由主題、模型同樣也由主題、類類|&|對象、結(jié)構(gòu)、屬性和服務(wù)等五個層次組成,并且每個透明層在邏輯上都劃分為四個子系對象、結(jié)構(gòu)、屬性和服務(wù)等五個層次組成,并且每個透明層在邏輯上都劃分為四個子系統(tǒng)統(tǒng): 問題域子系統(tǒng)(問題域子系統(tǒng)(PDC)、人機(jī)交互子)、人機(jī)交互子系統(tǒng)系統(tǒng)(HIC)、任務(wù)管理子系統(tǒng)、任務(wù)管理子系統(tǒng)(TMC)和數(shù)據(jù)和數(shù)據(jù)管理子系統(tǒng)管理子系統(tǒng)(DMC),具體面向?qū)ο笤O(shè)計的,具體面向?qū)ο笤O(shè)計的五個層次、四個組成部分構(gòu)成的典型的面五個層次、四個組成部分構(gòu)成的典型的面向?qū)ο笤O(shè)
27、計模型如圖向?qū)ο笤O(shè)計模型如圖7-12所示。所示。7.5.1 面向?qū)ο笤O(shè)計概述面向?qū)ο笤O(shè)計概述23目錄頁7.5 面向?qū)ο笤O(shè)計第7章3.面向?qū)ο笤O(shè)計的主要工作面向?qū)ο笤O(shè)計的主要工作面向?qū)ο笤O(shè)計技術(shù)進(jìn)行問題解決方案的設(shè)計工作的大致做法是,它將問題的解決方案表述面向?qū)ο笤O(shè)計技術(shù)進(jìn)行問題解決方案的設(shè)計工作的大致做法是,它將問題的解決方案表述為:為:“類關(guān)聯(lián)類關(guān)聯(lián)”的形式,其中,類包括問題空間(域)類、用戶界面類(即人機(jī)交互類)、任的形式,其中,類包括問題空間(域)類、用戶界面類(即人機(jī)交互類)、任務(wù)管理類和數(shù)據(jù)管理類,是從設(shè)計的角度出發(fā)對問題解決方案中的對象的抽象和描述,關(guān)聯(lián)則用務(wù)管理類和數(shù)據(jù)管理類,是
28、從設(shè)計的角度出發(fā)對問題解決方案中的對象的抽象和描述,關(guān)聯(lián)則用于描述這些類和類之間的關(guān)系。于描述這些類和類之間的關(guān)系。7.5.1 面向?qū)ο笤O(shè)計概述面向?qū)ο笤O(shè)計概述24目錄頁7.5 面向?qū)ο笤O(shè)計第7章1面向?qū)ο笤O(shè)計的準(zhǔn)則面向?qū)ο笤O(shè)計的準(zhǔn)則在進(jìn)行面向?qū)ο笤O(shè)計的過程中,應(yīng)該遵循軟件設(shè)計的基本原理,此外,還要考慮面向?qū)ο笤谶M(jìn)行面向?qū)ο笤O(shè)計的過程中,應(yīng)該遵循軟件設(shè)計的基本原理,此外,還要考慮面向?qū)ο蟮奶攸c。面向?qū)ο笤O(shè)計準(zhǔn)則主要包括模塊化、抽象、信息隱藏、低耦合、高內(nèi)聚和復(fù)用性幾點。的特點。面向?qū)ο笤O(shè)計準(zhǔn)則主要包括模塊化、抽象、信息隱藏、低耦合、高內(nèi)聚和復(fù)用性幾點。具體內(nèi)容如下:具體內(nèi)容如下:(1)模塊化)
29、模塊化(2)抽象)抽象(3)信息隱藏)信息隱藏(4)低耦合)低耦合(5)高內(nèi)聚)高內(nèi)聚(6)復(fù)用性)復(fù)用性7.5.2 面向?qū)ο笤O(shè)計的準(zhǔn)則和啟發(fā)式規(guī)則面向?qū)ο笤O(shè)計的準(zhǔn)則和啟發(fā)式規(guī)則25目錄頁7.5 面向?qū)ο笤O(shè)計第7章2面向?qū)ο笤O(shè)計的啟發(fā)式規(guī)則面向?qū)ο笤O(shè)計的啟發(fā)式規(guī)則(1)設(shè)計結(jié)果應(yīng)該清晰易懂)設(shè)計結(jié)果應(yīng)該清晰易懂(2)一般)一般/特殊結(jié)構(gòu)的深度應(yīng)適當(dāng)特殊結(jié)構(gòu)的深度應(yīng)適當(dāng)(3)設(shè)計簡單的類)設(shè)計簡單的類(4)使用簡單的協(xié)議)使用簡單的協(xié)議(5)設(shè)計簡單的服務(wù))設(shè)計簡單的服務(wù)(6)最小設(shè)計變動)最小設(shè)計變動7.5.2 面向?qū)ο笤O(shè)計的準(zhǔn)則和啟發(fā)式規(guī)則面向?qū)ο笤O(shè)計的準(zhǔn)則和啟發(fā)式規(guī)則26目錄頁7.6 系統(tǒng)
30、設(shè)計第7章系統(tǒng)設(shè)計確定實現(xiàn)系統(tǒng)的策略和目標(biāo)系統(tǒng)的高層結(jié)構(gòu)設(shè)計。系統(tǒng)設(shè)計是要將系統(tǒng)分解為若系統(tǒng)設(shè)計確定實現(xiàn)系統(tǒng)的策略和目標(biāo)系統(tǒng)的高層結(jié)構(gòu)設(shè)計。系統(tǒng)設(shè)計是要將系統(tǒng)分解為若干個子系統(tǒng),子系統(tǒng)和子系統(tǒng)之間通過接口進(jìn)行聯(lián)系。系統(tǒng)設(shè)計的一般步驟如圖干個子系統(tǒng),子系統(tǒng)和子系統(tǒng)之間通過接口進(jìn)行聯(lián)系。系統(tǒng)設(shè)計的一般步驟如圖7-14所示:所示:7.5.2 面向?qū)ο笤O(shè)計的準(zhǔn)則和啟發(fā)式規(guī)則面向?qū)ο笤O(shè)計的準(zhǔn)則和啟發(fā)式規(guī)則27目錄頁7.6 系統(tǒng)設(shè)計第7章1將系統(tǒng)分解為子系統(tǒng)將系統(tǒng)分解為子系統(tǒng) (1)子系統(tǒng)之間的交互方式)子系統(tǒng)之間的交互方式在應(yīng)用系統(tǒng)中,子系統(tǒng)之間的關(guān)系可分為客戶在應(yīng)用系統(tǒng)中,子系統(tǒng)之間的關(guān)系可分為客戶/
31、服務(wù)器(供應(yīng)商)關(guān)系和同等伙伴(端對端)服務(wù)器(供應(yīng)商)關(guān)系和同等伙伴(端對端)關(guān)系。關(guān)系。在客戶在客戶/服務(wù)器關(guān)系中,服務(wù)器關(guān)系中,“客戶客戶”的子系統(tǒng)調(diào)用作為的子系統(tǒng)調(diào)用作為“服務(wù)器服務(wù)器”的子系統(tǒng),的子系統(tǒng),“服務(wù)器服務(wù)器”完完成某些服務(wù)工作并返回結(jié)果。每個子系統(tǒng)只承擔(dān)一個角色,服務(wù)只是單向地從服務(wù)器流向客戶端。成某些服務(wù)工作并返回結(jié)果。每個子系統(tǒng)只承擔(dān)一個角色,服務(wù)只是單向地從服務(wù)器流向客戶端。在同等伙伴關(guān)系中,每個子系統(tǒng)都可能調(diào)用其他子系統(tǒng),因此每個子系統(tǒng)都必須了解其在同等伙伴關(guān)系中,每個子系統(tǒng)都可能調(diào)用其他子系統(tǒng),因此每個子系統(tǒng)都必須了解其他子系統(tǒng)的接口,該方案比客戶他子系統(tǒng)的接口
32、,該方案比客戶/服務(wù)器方案交互復(fù)雜,易發(fā)生設(shè)計錯誤。因此推薦盡量使用客服務(wù)器方案交互復(fù)雜,易發(fā)生設(shè)計錯誤。因此推薦盡量使用客戶戶/服務(wù)器關(guān)系服務(wù)器關(guān)系7.5.2 面向?qū)ο笤O(shè)計的準(zhǔn)則和啟發(fā)式規(guī)則面向?qū)ο笤O(shè)計的準(zhǔn)則和啟發(fā)式規(guī)則28目錄頁7.6 系統(tǒng)設(shè)計第7章(2)系統(tǒng)組織)系統(tǒng)組織通常,系統(tǒng)中子系統(tǒng)結(jié)構(gòu)的組織有兩種方式:水平層次組織和垂直塊狀組織。通常,系統(tǒng)中子系統(tǒng)結(jié)構(gòu)的組織有兩種方式:水平層次組織和垂直塊狀組織。層次組織層次組織層次組織是將子系統(tǒng)按層組織成為一個層次軟件系統(tǒng),每層是一個子系統(tǒng)。層次組織是將子系統(tǒng)按層組織成為一個層次軟件系統(tǒng),每層是一個子系統(tǒng)。塊組織塊組織 塊組織將系統(tǒng)垂直地分解成
33、若干個相對獨(dú)立的、弱耦合的子系統(tǒng),一個子系統(tǒng)相當(dāng)于一塊,塊組織將系統(tǒng)垂直地分解成若干個相對獨(dú)立的、弱耦合的子系統(tǒng),一個子系統(tǒng)相當(dāng)于一塊,每塊提供一種類型的服務(wù)。每塊提供一種類型的服務(wù)。7.5.2 面向?qū)ο笤O(shè)計的準(zhǔn)則和啟發(fā)式規(guī)則面向?qū)ο笤O(shè)計的準(zhǔn)則和啟發(fā)式規(guī)則29目錄頁7.6 系統(tǒng)設(shè)計第7章(3)設(shè)計系統(tǒng)的拓?fù)浣Y(jié)構(gòu))設(shè)計系統(tǒng)的拓?fù)浣Y(jié)構(gòu)由子系統(tǒng)組成完整的系統(tǒng)時,典型的拓?fù)浣Y(jié)構(gòu)有管道型、樹型、星型等。設(shè)計者應(yīng)該采用由子系統(tǒng)組成完整的系統(tǒng)時,典型的拓?fù)浣Y(jié)構(gòu)有管道型、樹型、星型等。設(shè)計者應(yīng)該采用與問題結(jié)構(gòu)相適應(yīng)的、盡可能簡單的拓?fù)浣Y(jié)構(gòu),以減少子系統(tǒng)之間的交互數(shù)量。與問題結(jié)構(gòu)相適應(yīng)的、盡可能簡單的拓?fù)浣Y(jié)構(gòu),
34、以減少子系統(tǒng)之間的交互數(shù)量。7.5.2 面向?qū)ο笤O(shè)計的準(zhǔn)則和啟發(fā)式規(guī)則面向?qū)ο笤O(shè)計的準(zhǔn)則和啟發(fā)式規(guī)則30目錄頁7.6 系統(tǒng)設(shè)計第7章2.設(shè)計問題域類子系統(tǒng)設(shè)計問題域類子系統(tǒng) 問題域類是指那些直接從問題域類是指那些直接從OOA分析結(jié)果模型得到的類,它是讓軟件系統(tǒng)能夠?qū)崿F(xiàn)對應(yīng)用問分析結(jié)果模型得到的類,它是讓軟件系統(tǒng)能夠?qū)崿F(xiàn)對應(yīng)用問題求解的最基本的類,也是面向?qū)ο筌浖到y(tǒng)的核心類。對問題域子系統(tǒng)的設(shè)計,即定義這些類題求解的最基本的類,也是面向?qū)ο筌浖到y(tǒng)的核心類。對問題域子系統(tǒng)的設(shè)計,即定義這些類或?qū)ο蟮募?xì)節(jié)?;?qū)ο蟮募?xì)節(jié)。雖然在雖然在OOA階段已經(jīng)標(biāo)識和定義了系統(tǒng)的類與對象,以及它們之間的各種關(guān)系
35、,但是隨著階段已經(jīng)標(biāo)識和定義了系統(tǒng)的類與對象,以及它們之間的各種關(guān)系,但是隨著對需求理解的加深和對系統(tǒng)認(rèn)識程度的逐步提高,開發(fā)人員還需要在對需求理解的加深和對系統(tǒng)認(rèn)識程度的逐步提高,開發(fā)人員還需要在OOD階段對階段對OOA階段得到的階段得到的模型進(jìn)行改進(jìn)和增補(bǔ),主要是對模型進(jìn)行改進(jìn)和增補(bǔ),主要是對OOA模型增添、合并或分解類與對象、屬性及服務(wù),調(diào)整繼承關(guān)模型增添、合并或分解類與對象、屬性及服務(wù),調(diào)整繼承關(guān)系等。系等。7.5.2 面向?qū)ο笤O(shè)計的準(zhǔn)則和啟發(fā)式規(guī)則面向?qū)ο笤O(shè)計的準(zhǔn)則和啟發(fā)式規(guī)則31目錄頁7.6 系統(tǒng)設(shè)計第7章3.設(shè)計用戶界面類子系統(tǒng)設(shè)計用戶界面類子系統(tǒng)用戶界面類是指那些為實現(xiàn)人機(jī)交互
36、接口而設(shè)計的類,它是使軟件系統(tǒng)能夠接收用戶的命用戶界面類是指那些為實現(xiàn)人機(jī)交互接口而設(shè)計的類,它是使軟件系統(tǒng)能夠接收用戶的命令,并能夠為用戶提供信息所需要的類,所以也叫人機(jī)交互類。該類用以確定人機(jī)交互的細(xì)節(jié),令,并能夠為用戶提供信息所需要的類,所以也叫人機(jī)交互類。該類用以確定人機(jī)交互的細(xì)節(jié),對圖形用戶界面(對圖形用戶界面(GUI),則包括指定窗口和報表的形式、設(shè)計命令層次等。),則包括指定窗口和報表的形式、設(shè)計命令層次等。盡管在盡管在OOA過程中已經(jīng)對用戶界面方面進(jìn)行了分析,但是在過程中已經(jīng)對用戶界面方面進(jìn)行了分析,但是在OOD過程中仍需繼續(xù)完成這項過程中仍需繼續(xù)完成這項工作,必須具體設(shè)計確定交互作用的時間、交互的方式和交互的技術(shù)等。工作,必須具體設(shè)計確定交互作用的時間、交互的方式和交互的技術(shù)等。 7.5.2 面向?qū)ο笤O(shè)計的準(zhǔn)則和啟發(fā)式規(guī)則面向?qū)ο笤O(shè)計的準(zhǔn)則和啟發(fā)式規(guī)則32目錄頁7.6 系統(tǒng)設(shè)計第7章4.設(shè)計任務(wù)管理類子系統(tǒng)設(shè)計任務(wù)管理類子系統(tǒng) 任務(wù)(任務(wù)(Task)是一個處理過程或進(jìn)程,它可能包含不同類的多個操作的執(zhí)行。而任務(wù)管理)是一個處理過程或進(jìn)程,它可能包含不同類的多個操作的執(zhí)行。而任務(wù)管理類是指那些為實現(xiàn)對多操作并發(fā)執(zhí)行的管理任務(wù)而設(shè)計的類,它是使軟件系統(tǒng)能夠
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 宜賓市興文縣2024-2025學(xué)年三下數(shù)學(xué)期末監(jiān)測試題含解析
- 南京中醫(yī)藥大學(xué)《社會工作技巧工作坊人際溝通技巧》2023-2024學(xué)年第二學(xué)期期末試卷
- 湛江市高三月調(diào)研考試文綜地理試題
- 2025年度借款合同補(bǔ)充協(xié)議范本
- 2025租房合同模板范本
- 2025子女租賃公寓合同
- 2025家庭居室裝飾裝修工程設(shè)計施工合同范本
- 2025年高考?xì)v史總復(fù)習(xí)考前歷史主干知識梳理提綱
- 2025濟(jì)南市勞動合同樣本新
- 2025年高考?xì)v史階段特征總結(jié)匯編(超全面)
- FITS加氫說明書
- 半導(dǎo)體物理與器件物理
- 200句話搞定上海中考單詞(精華版)
- 船舶輔鍋爐的自動控制系統(tǒng)分析
- 新員工培訓(xùn)考試【圖書專員】
- 防偽包裝技術(shù)
- 49000DWT江海直達(dá)成品油船設(shè)計
- 建設(shè)工程監(jiān)理費(fèi)計算器
- X互聯(lián)網(wǎng)公司W(wǎng)LAN無線網(wǎng)絡(luò)優(yōu)化方案全解
- 裝配及檢驗規(guī)范(修訂版)【新版】
- 合成寶石特征x
評論
0/150
提交評論