版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第七章面向?qū)ο髮W(xué)習(xí)方法學(xué) 面向?qū)ο蠓椒▽W(xué)的出發(fā)點(diǎn)和基本原則,是盡可能按照人類的習(xí)慣思維方式,使開發(fā)軟件 的方法與過程盡可能接近人類認(rèn)識(shí)世界解決問題的方法與過程,也就是使描述問題域空間 與實(shí)現(xiàn)解法的解空間在結(jié)構(gòu)上盡可能一致 與傳統(tǒng)的結(jié)構(gòu)化方法相比,使用面向?qū)ο蠓椒ㄩ_發(fā)的軟件,其穩(wěn)定性,可修改性和可重用 性都比較好本章內(nèi)容主要包括:傳統(tǒng)方法學(xué)的缺點(diǎn),面向?qū)ο蟮幕靖拍?,面向?qū)ο竽P?7.1基礎(chǔ)知識(shí) 7.1.1傳統(tǒng)方法學(xué)的缺點(diǎn) 結(jié)構(gòu)化幾其他方法學(xué)的本質(zhì),是在具體的軟件開發(fā)之前,通過需求分析預(yù)先定義軟件 需求.然后一個(gè)一個(gè)階段地開發(fā)用戶所需要的軟件,實(shí)現(xiàn)預(yù)先定義的軟件需要. 過去的經(jīng)驗(yàn)需要告訴我們,結(jié)
2、構(gòu)化及其他方法學(xué)并不能完全消除軟件危機(jī).結(jié)構(gòu)化及其 他方法學(xué)仍然有許多不足之處. 1. 問題的表現(xiàn) 1)生產(chǎn)效率低 在生命周期方法學(xué)中,特別重視軟件開發(fā)的階段性.為了提高了軟件開發(fā)的效率,減少 重大返工次數(shù),強(qiáng)調(diào)必須早每個(gè)階段結(jié)束之前進(jìn)行評估.從而開發(fā)過程中實(shí)行嚴(yán)格的 質(zhì)量管理,確實(shí)提高了許多軟件的開發(fā)的成功率.但是,時(shí)間表明,開發(fā)高利率仍然很有 用. 2)不能滿足用戶需要 實(shí)踐表明,在開發(fā)需要模糊或需求動(dòng)態(tài)變化的系統(tǒng)時(shí),軟件系統(tǒng)的結(jié)果往往不能滿足 用戶需求的變化. 主要表現(xiàn)在兩個(gè)方面:一種是開發(fā)人員不能完全獲得徹底理解用戶的需要,以至 開 發(fā)的軟件系統(tǒng)與用戶預(yù)期的系統(tǒng)不一致;另一種表現(xiàn)是,所
3、開發(fā)的系統(tǒng)不能適應(yīng)用戶需 求變化,系統(tǒng)的穩(wěn)定性和可擴(kuò)充性不能滿足需要. 3)軟件服用就是將已有的軟件成分用于構(gòu)造新的軟見系統(tǒng).軟件復(fù)用是節(jié)約人力,提高軟 件效率的重要途徑.結(jié)構(gòu)分析.設(shè)計(jì),幾乎每一次開發(fā)一個(gè)系統(tǒng)時(shí)都需要針對這個(gè)具體 的系統(tǒng)做大量的重復(fù)勞動(dòng).思維成果的可復(fù)用性差. 4)軟件很難維護(hù) 實(shí)踐經(jīng)驗(yàn)告訴我們,即使是用生命周期方法學(xué)開發(fā)出來的軟件,維護(hù)起來仍然相當(dāng)困難 軟件維護(hù)成本很高. 2 問題的原因 1) 結(jié)構(gòu)化技術(shù)本身的問題 結(jié)構(gòu)分析和設(shè)計(jì)技術(shù)的基本思想是從目標(biāo)系統(tǒng)整體功能的單個(gè)處理著手,自頂向下不斷的把復(fù)雜 的處理分解為子處理, 一層一層的分解下去, 直到剩下若干個(gè)容易實(shí)現(xiàn)的子處理
4、為止。由此可見, 結(jié)構(gòu)分析和結(jié)構(gòu)設(shè)計(jì)構(gòu)造系統(tǒng)的技術(shù)核心是圍繞實(shí)現(xiàn)功能的“過程”進(jìn)行的。當(dāng)用戶需求的變化 往往造成系統(tǒng)結(jié)構(gòu)的較大變化,從而實(shí)現(xiàn)這種需要花費(fèi)很大的代價(jià)。 另一方面,軟件的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)依賴于對系統(tǒng)邊界的定義。因此,結(jié)構(gòu)化方法的的特征很難 把這種變化擴(kuò)展到新的邊界。系統(tǒng)結(jié)構(gòu)修改和擴(kuò)充比較困難。 2) 預(yù)先定義的需求可能會(huì)過時(shí) 有一定規(guī)模的軟件,其開發(fā)時(shí)間一般需要一到三年時(shí)間。有些需求相對穩(wěn)定的軟件使用傳統(tǒng)的開 發(fā)途徑開發(fā)時(shí),采用預(yù)先定義需求的策略是可行的。但是有些軟件,特別是應(yīng)用軟件,用戶對他 們的需求與外部環(huán)境,策略或內(nèi)容等密切相關(guān)。因此,在不同時(shí)間用戶的需求可能有較大不同。 如果按
5、照預(yù)先定指定的需求開發(fā)軟件,當(dāng)軟件開發(fā)出來的時(shí)候,用戶的需求就發(fā)生了變化。 3) 語言鴻溝 軟件開發(fā)是對問題域的認(rèn)識(shí)和描敘。從描敘事物方面看,它在分析和設(shè)計(jì)階段提供了一些從問題 域逐步過度到編程語言的描敘手段。這如同在語言的鴻溝上鋪設(shè)了一段平坦的路段。但是在傳統(tǒng) 的軟件工程方法中,這些路段并不連接。就是說,并沒有完全填平語言之間的鴻溝。 4) 系統(tǒng)需求的模糊性 大多數(shù)應(yīng)用系統(tǒng),特別是信息管理系統(tǒng)(MIS )之類的數(shù)據(jù)處理系統(tǒng)。由于其模型是隨著社會(huì)的 變遷而變化的。因此,其需求模型往往很難預(yù)先準(zhǔn)確定義。 另一方面由于需求分析目前還不能做到形式化。許多用戶對他們的需求最初只要模糊的概念。所 以就憑
6、需求只要初步設(shè)想就能準(zhǔn)確的說出全部需求是不切實(shí)際的。 7.1.2面向?qū)ο蟮幕靖拍?1. 對象 對象是問題域或?qū)崿F(xiàn)域中某些事物的一個(gè)抽象,他反映事物在聯(lián)系中需要保存的信息和發(fā)揮作 用;他是一組屬性和有權(quán)對這些事物進(jìn)行操作的一組服務(wù)的封裝體。 2 類 類是具有相同屬性和服務(wù)的一組對象的集合,他為屬于該類的全部對象提供了統(tǒng)一的抽象描 敘,其內(nèi)部包括屬性和服務(wù)兩個(gè)主要部分。 3 .繼承 特殊類的對象具有擁有其一般類的全部屬性和服務(wù),稱做特殊類對一般類的繼承。 4 封裝 把對象的屬性和服務(wù)結(jié)合成為一個(gè)獨(dú)立的系統(tǒng)單位,并盡可能隱蔽對象的內(nèi)部細(xì)節(jié)。 5 消息 消息就是向?qū)ο蟀l(fā)出的服務(wù)請求,他應(yīng)該含有下述消
7、息:提供服務(wù)的對象標(biāo)志,服務(wù)標(biāo)志, 輸入信息和回答信息。 (P138) 6 結(jié)構(gòu)與連接 面向?qū)ο蠓椒ㄟ\(yùn)用一般 一特殊結(jié)構(gòu),整體 一部分結(jié)構(gòu),實(shí)例連接和消息連接描敘對象之間的 關(guān)系。 (1) 一般一特殊結(jié)構(gòu)。一般 一特殊結(jié)構(gòu)是由一組具有一般 一特殊關(guān)系的類所組成的結(jié)構(gòu)。 (2) 整體一部分結(jié)構(gòu)。整體 一部分結(jié)構(gòu)由一組彼此間存在這種關(guān)系的對象組成。 (3) 實(shí)例連接。實(shí)例連接反映對象與對象之間的靜態(tài)聯(lián)系。例如教師和學(xué)生之間的關(guān)系。 (4) 消息連接。消息連接描敘對象之間的動(dòng)態(tài)聯(lián)系。 7 .多態(tài)性 多態(tài)性是指允許不同類的對象對統(tǒng)一消息做出響應(yīng)。 多態(tài)性引用具有靜態(tài)類型和動(dòng)態(tài)類型。 動(dòng)態(tài)類型可以在程序
8、執(zhí)行期間在實(shí)例之間進(jìn)行變化。靜態(tài)類型是在程序上下文中由實(shí)體說明決 的。 7.1.3面向?qū)ο竽P?用面向?qū)ο蠓椒ㄩ_發(fā)軟件,通常需要建立三種形式的模型,他們分別是描敘系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的 對象模型,描敘系統(tǒng)控制結(jié)構(gòu)的動(dòng)態(tài)模型和描敘系統(tǒng)功能的功能模型。 1 .對象模型 對象模型就是表示模型的,結(jié)構(gòu)化的系統(tǒng)的“數(shù)據(jù)”性質(zhì)。他是客觀世界實(shí)體的對象以及以 及彼此間的關(guān)系的映射的模擬,描敘了系統(tǒng)的靜態(tài)結(jié)構(gòu)。 在建立對象模型時(shí),我們的目標(biāo)是從客觀世界中提煉出對具體應(yīng)用有價(jià)值的概念。為了建立 對象模型,需要定義一組圖形符號(hào),并且規(guī)定一組組織這些以表示特定寓意的規(guī)則。面向?qū)ο蠓?法學(xué)有許多表示方法,這些表示方法雖然形式
9、各儀。但是,他們共同的特點(diǎn)就是獨(dú)立于具體的開 發(fā)模型?,F(xiàn)在有的用于建立對象模型的表示方法,都包含下列符號(hào): (1) 表示類的符號(hào)(能表示屬性又能表示服務(wù))。 (2) 表示對象(類實(shí)例)的符號(hào)。 (3) 表示繼承關(guān)系的符號(hào)。 (4) 表示類和/或?qū)ο箝g其他關(guān)系的符號(hào)。 2. 動(dòng)態(tài)模型 動(dòng)態(tài)模型是表示瞬間的,行為化的系統(tǒng)的“控制”性質(zhì),該模型描敘了系統(tǒng)的控制結(jié)構(gòu),他 表示瞬時(shí)的,行為化的系統(tǒng)控制性質(zhì),他關(guān)心的是系統(tǒng)的控制,操作的執(zhí)行順序,他從對象的事 件和狀態(tài)的角度出發(fā),表現(xiàn)了對象的相互行為。 它描敘的系統(tǒng)屬性是觸發(fā)事件,事件序列,狀態(tài),事件與狀態(tài)的組織。使用狀態(tài)圖作為描敘 工具。 3. 功能模型
10、 功能模型表示變化的系統(tǒng)的“功能”性質(zhì),他指明了系統(tǒng)應(yīng)該做什么,因此更直接的反映了 用戶對目標(biāo)系統(tǒng)的需求。 功能模型又許多張數(shù)據(jù)流圖組成。數(shù)據(jù)流圖說明數(shù)據(jù)流是如何從外部輸入,經(jīng)過操作和內(nèi)部 存貯輸出到外部。 (P139) 7.2單元練習(xí) 7.2.1填空題 1 對象的抽象是,類的實(shí)例化是。 2 動(dòng)態(tài)模型描敘了系統(tǒng)的一一結(jié)構(gòu)。 3 軟件系統(tǒng)中存在 2種控制流,外部控制流是系統(tǒng)中對象之間外部事件的事件流,有 ,和一一三種外部事件控制流。一一控制流是一個(gè)處理內(nèi)部的控制,均可 結(jié)構(gòu)化。 4 在C+ , C中有一個(gè)一一函數(shù),可以使用這個(gè)過程來說明構(gòu)成系統(tǒng)主要對象的那些 類的實(shí)例。 5 繼承性是一一自動(dòng)共享
11、父類屬性和一一的機(jī)制。 6 對象具有封裝性,實(shí)現(xiàn)了一一的組合。 7 在面向?qū)ο蠓椒ㄖ校畔㈦[藏通過對象的一一來實(shí)現(xiàn)。類結(jié)構(gòu)分離了一一于一一, 從而支持了信息隱藏。 8 抽象是指強(qiáng)調(diào)實(shí)體的一一,一一,忽略一些無關(guān)緊要的屬性。類實(shí)現(xiàn)了對象的一一 和的抽象,他是對象的共性的抽象。 9 子類只繼承一一的屬性和操作,稱為單重繼承。 10對象的抽象是一一,類的具體化就是一一,也可以說類的實(shí)例是一一。 11類具有一一,他是一一的行為的抽象。 12對象具有狀態(tài),對象用來描敘他的狀態(tài)。 13概念模型描敘了系統(tǒng)的一一。功能模型指出一一,動(dòng)態(tài)模型確定一一,而對象模型 確定-,功能模型有一一組成。 14面向?qū)ο笥腥齻€(gè)
12、基本要素,他們是一一,一一,一一。 15面向?qū)ο蠹夹g(shù)有三個(gè)級(jí)別上促進(jìn)了共享,他們是一一,一一,一一。 16活動(dòng)是一種有時(shí)間間隔的操作,他是依附于一一。動(dòng)作是一種瞬時(shí)操作,他是與一 聯(lián)系在一起的操作。 17封裝性是指所以軟件內(nèi)部都有明確的一一以及清楚的一一。每個(gè)軟件部件都有友好 的一一,軟件部件的一一與一一分離。 18主要的對象類型有一一,一一,一一,一一。 19同一個(gè)類中的共享是說同一個(gè)類中的對象有著相同的一一和相同的一一。 20結(jié)構(gòu)化方法的本質(zhì)是一一,其一一,可修改性和可重用性都比較差。 21對象還有,用于改變對象的狀態(tài)。對象實(shí)現(xiàn)了和一一的組合。 22面向?qū)ο蠓椒ㄕJ(rèn)為系統(tǒng)是由應(yīng)用域的一一組成
13、。 23對象具有狀態(tài),描敘對象的狀態(tài)用他的一一。 24類具有屬性,描敘類的屬性用一一。 25 一個(gè)方法有一一,一一和一一。 26動(dòng)態(tài)模型描敘了系統(tǒng)的一一。 27動(dòng)態(tài)模型的主要元素是類,關(guān)聯(lián)和一一。 28通過這種機(jī)制和構(gòu)造來實(shí)現(xiàn)不同應(yīng)用中的信息共享。 (p140) 29面向?qū)ο蟪绦蛟O(shè)計(jì)語言與其他程序設(shè)計(jì)語言的最主要差別是他具有一一。 29對象具有很強(qiáng)的能力和功能。 30類具有屬性,他是對象的一一的抽象,用一一來描敘類的屬性。 31 面向?qū)ο蟮奶卣魇?,一一,一一?32子類自動(dòng)共享父類的屬性和操作的機(jī)制成稱為一一。 33類的實(shí)例化是一一。 34不同應(yīng)用中信息共享的這種機(jī)制和構(gòu)造是通過來實(shí)現(xiàn)的。 7
14、.2.2選擇題 1.對象模型的描敘工具是()。 A 狀態(tài)圖B數(shù)據(jù)流圖 C對象圖 D結(jié)構(gòu)圖 2. 面向?qū)ο蠓椒▽W(xué)的出發(fā)點(diǎn)和基本原則是盡可能模擬人類習(xí)慣的思維方式,分析,設(shè) 計(jì)和實(shí)現(xiàn)一個(gè)軟件系統(tǒng)的方法和過程,盡可能接近人類認(rèn)識(shí)世界解決問題的方法和過程, 因此面向?qū)ο蠓椒ㄓ性S多特征,如軟件系統(tǒng)是由對象組成的;();對象彼此間僅能通過傳 遞消息相互聯(lián)系;層次結(jié)構(gòu)的繼承。 A開發(fā)過程基于功能分析和功能分解。 B強(qiáng)調(diào)需求分析的重要性。 C把對象劃分成類,每個(gè)對象類都定義一組數(shù)據(jù)和方法。 D對即存類進(jìn)行調(diào)整。 3每個(gè)對象可用他自己的一組屬性和他可以執(zhí)行的一組()來表現(xiàn)。 A行為 B功能 C操作 D數(shù)據(jù) 4面
15、向?qū)ο筌浖夹g(shù)的許多強(qiáng)有力的功能和突出的優(yōu)點(diǎn)都來源于把類組織成一個(gè)層次結(jié) 構(gòu)的系統(tǒng),一個(gè)類的上層可以有父類,下層可以有子類,這種層次結(jié)構(gòu)系統(tǒng)的一個(gè)重要性質(zhì) 是(),一個(gè)類獲得其父類的全部屬性(數(shù)據(jù)和操作) 。 A傳遞性 B繼承性 C復(fù)用性 D并行性 5面向?qū)ο蟮闹饕卣鞒龑ο笪ㄒ恍?,封裝,繼承外,還有()。 A多態(tài)性 B完整性C可移植性D兼容性 6面向?qū)ο箝_發(fā)方法子概念和表示上的一致性保證了分析和設(shè)計(jì)的()過渡。 A困難B不容易 C平滑D順序 7動(dòng)態(tài)模型的描敘工具是()。 A對象圖B結(jié)構(gòu)圖 C狀態(tài)圖 D設(shè)計(jì)圖 8表示對象的相互行為的模型是()模型。 A對象 C功能 9在考察系統(tǒng)的一些涉及時(shí)序個(gè)
16、改變的狀況時(shí), B動(dòng)態(tài) D靜態(tài) 要用動(dòng)態(tài)模型來表示。 動(dòng)態(tài)模型著重與 系統(tǒng)的控制邏輯,它包括兩個(gè)圖:一個(gè)是事物追尋圖,另一個(gè)是()。 A數(shù)據(jù)流圖 C系統(tǒng)結(jié)構(gòu)圖 10在確定屬性時(shí),所有()是后選定屬性。 B狀態(tài)圖 D時(shí)序圖 A動(dòng)詞 C修飾 B名詞 D詞組 11在開發(fā)廢氣型類時(shí),在軟件生存期中最花費(fèi)時(shí)間不部分應(yīng)當(dāng)是軟件的()。 A實(shí)現(xiàn) C設(shè)計(jì) B測試 D求精和維護(hù) 12 一個(gè)面向?qū)ο笙到y(tǒng)的體系結(jié)構(gòu)通過它的成分對象和對象間的關(guān)系確定,與傳統(tǒng)的面 向數(shù)據(jù)流的結(jié)構(gòu)化開發(fā)方法相比,它具有()優(yōu)點(diǎn)。 A設(shè)計(jì)穩(wěn)定 C事物分析 B變換分析 D模塊獨(dú)立性 13以下說法錯(cuò)誤的是() A面向?qū)ο蠓椒ú粌H支持過程抽象,
17、而且支持?jǐn)?shù)據(jù)抽象。 B某些面向?qū)ο蟮某绦蛟O(shè)計(jì)語言還支持參數(shù)化抽象。 C信息隱蔽通過對象的封裝性來實(shí)現(xiàn)。 D在面向?qū)ο蠓椒ㄖ?,類是最最基本的模塊。 14所有的對象可以成為各種對象類,每個(gè)對象類都定義了一組()。 A說明 C過程 15以下說法錯(cuò)誤的是()。 A對象具有很強(qiáng)的表達(dá)能力和描述功能。 B對象是人們要進(jìn)行研究的任何事物。 C對象是封裝的最基本的事物。 D類封裝比對象封裝更具體、更細(xì)致。 B方法 D類型 16 一個(gè)面向?qū)ο蟮南到y(tǒng)的體系通過它的()的關(guān)系確定。 A類與對象 C過程與對象 17以下說法錯(cuò)誤的是()。 B成分對象與對象 D類與界面 A多態(tài)性防止了程序相互依賴性而帶來的變動(dòng)影響。 B
18、多態(tài)性是指相同的操作或函數(shù)、過程可作用于多中類型的對象上并獲得不用結(jié) 果。 C多態(tài)性與繼承性相結(jié)合使函數(shù)具有更廣闊的重用性和可擴(kuò)充性。 D封裝性是保證軟件不見具有優(yōu)良的模塊性的基礎(chǔ)。 18在軟件工程學(xué)中,我們把一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對象的集合定義為 (),此定義包括一組數(shù)據(jù)屬性和在數(shù)據(jù)上的一組合法操作。 A類B屬性 C對象D消息 )和它可以執(zhí)行 19對象是面向?qū)ο箝_發(fā)方法的基本成分,每個(gè)對象可用它本身的一組( 的一組操作來定義。 A服務(wù)B參數(shù) C屬性D調(diào)用 20通過執(zhí)行對象的操作改變該對象的屬性,但它必須通過()傳遞。 A接口B消息 21()模塊表示了對象的相互行為。 A對象 C功能
19、 22在確定類時(shí),所有()候選是類。 A名詞 C動(dòng)詞 23按照傳統(tǒng)的生命周期方法開發(fā)軟件, 們一般用()模型模擬。 A螺線模型 C瀑布模型 24 Rumbangh等人提出的對象模型技術(shù) 對象模型、動(dòng)態(tài)模型和()。 C信息D操作 B動(dòng)態(tài) D分析 B形容詞 D代詞 各階段工作自頂向下, 從抽象到具體順序進(jìn)行, 我 B噴泉模型 D行為模型 OMT把分析時(shí)收集的信息構(gòu)造在三類模型中,即 A信息模型B控制模型 C功能模型D行為模型 25以下說法錯(cuò)誤的是() A數(shù)據(jù)流圖中的處理用來改變數(shù)據(jù)值。 B在一個(gè)計(jì)算中,用數(shù)據(jù)流來表示一中間數(shù)據(jù)值,數(shù)據(jù)流不能改變數(shù)據(jù)值。 C動(dòng)作對象是一中主動(dòng)對象,它通過生成或者數(shù)據(jù)
20、值來驅(qū)動(dòng)數(shù)據(jù)流圖。 D數(shù)據(jù)流圖中的數(shù)據(jù)存儲(chǔ)是被動(dòng)對象,它用來存儲(chǔ)數(shù)據(jù)。 E存儲(chǔ)和動(dòng)作對象可以用文件或外部設(shè)備實(shí)現(xiàn)。 26與時(shí)間聯(lián)系在一起的瞬間操作是()。 A處理B動(dòng)作 C活動(dòng)D加工 27應(yīng)用執(zhí)行對象的操作可以改變該對象的()。 A屬性B功能 C行為D數(shù)據(jù) 28以下說法正確的是()。 A組裝結(jié)構(gòu)可用來描述現(xiàn)實(shí)世界中的一般的抽象關(guān)系。 B分類結(jié)構(gòu)可用開描述現(xiàn)實(shí)世界中的類的組成的抽象關(guān)系。 C. 面向?qū)ο蟮睦^承性是子類自動(dòng)共享父類數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制 D. 面向?qū)ο蟮奈ㄒ恍允侵笇⒕哂幸恢滦缘臄?shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對象抽象成 類 29. 以下說法正確的是 () A.對象模型指出發(fā)生了什么
21、B 動(dòng)態(tài)模型確定什么時(shí)候發(fā)生 C 功能模型確定發(fā)生的客體 D功能模型描述了系統(tǒng)的所有計(jì)算,它考慮所計(jì)算的次序 30. 有時(shí)間間隔的操作是() A動(dòng)作B活動(dòng)C加工D處理 31軟件部分的內(nèi)容實(shí)現(xiàn)與外部可訪問性分離,這是指軟件的() A繼承性B共享性 C封裝性D抽象性 32常用動(dòng)詞或動(dòng)詞詞組來表示() A對象 B 類 C關(guān)聯(lián) D屬性 33在只有單重繼承的類層次結(jié)構(gòu)中,類層次結(jié)構(gòu)是()層次結(jié)構(gòu)。 A樹型 B網(wǎng)狀型 C星型 D 環(huán)型 34 以下說法正確的是() A功能模型不包括對象模型中值的約束條件 B功能模型說明對象模型中操作的含義 C 功能模型說明動(dòng)態(tài)模型中約束的含義 D 功能模型說明對象模型中動(dòng)作
22、的意義 35 以下說法正確的是() A 角色說明類在關(guān)聯(lián)中的作用,它位于關(guān)聯(lián)的端點(diǎn) B不同類的關(guān)聯(lián)角色不能省略 C 同類的關(guān)聯(lián)角色可有可無 D 在一個(gè)類層次結(jié)構(gòu)中,若有多重繼承,則該類層次結(jié)構(gòu)是樹型層次結(jié)構(gòu) E在一個(gè)類層次結(jié)構(gòu)中,若有單重繼承,則該類層次結(jié)構(gòu)是網(wǎng)狀層次結(jié)構(gòu) 7.2.3 簡答題 1 試述面向?qū)ο蠓椒ǖ拈_發(fā)過程是怎樣的? 2 簡述對象,類,類結(jié)構(gòu),消息,方法的基本概念。 3 傳統(tǒng)開發(fā)方法存在的問題是什么? 4 試述面向?qū)ο蠓椒ㄓ心男┨卣鳌?5 為什么說用結(jié)構(gòu)化方法開發(fā)的軟件,其穩(wěn)定性,可修改性和可重用性都比較差? 6 功能模型的特征有哪些? 7 繼承性和多態(tài)性的好處是什么? & 簡
23、述三種分析模型的關(guān)系。 9簡述動(dòng)態(tài)建模的過程。 10簡述面向?qū)ο蟮囊亍?11簡述功能建模的過程。 7.3 參考答案 一 填空題 1 類,對象 2 控制 3過程驅(qū)動(dòng)序列,事件驅(qū)動(dòng)序列,并發(fā)序列,內(nèi)部 4mai n()5子類,操作 6數(shù)據(jù)和操作7封裝性,接口,實(shí)現(xiàn) 8本質(zhì),內(nèi)在的屬性,數(shù)據(jù)(即狀態(tài)),行為 9 一個(gè)父類10類,對象,對象 11操作 對象 12數(shù)據(jù)值 13所有計(jì)算,發(fā)生了什么,什么時(shí)候發(fā)生,發(fā)生的客 體,多張數(shù)據(jù)流圖14抽象,封裝性(信息隱藏),共享性 15同一個(gè)類中的共享,在同一個(gè)應(yīng)用中的共享,在不同應(yīng)用中的共享 16狀態(tài)的操作,事件 17范圍,外部邊界,界面接口,內(nèi)部實(shí)現(xiàn),外部
24、可訪問性 18有形實(shí)體,作用,事件,性能說明 19數(shù)據(jù)結(jié)構(gòu)行為特征20功能分解穩(wěn)定性 21行為數(shù)據(jù)操作 22對象 23屬性值 24數(shù)據(jù)結(jié)構(gòu) 25方法名 參數(shù) 方法體 26動(dòng)態(tài)行為 27關(guān)系 28類庫 29繼承性 30表達(dá)描述 31 狀態(tài)數(shù)據(jù)結(jié)構(gòu)32對象唯一性分類性 繼承性 多態(tài)性 33 繼承 34對象 35類庫 二 選擇題 1. C 2. C 3. C 4.B5.A6.C7.C8.B9.B10.C11.D12.A13.D14.B 15.D16.B17.A18.A19.C20.B21.B22.A23.B24.C25.E26.B27.A 28.C29.B30.B31.C32.C33.A34.B35
25、.A 三 簡答題 1面向?qū)ο箝_發(fā)方法包括以下幾個(gè)過程: (1) 面向?qū)ο蟮姆治?。面向?qū)ο蟮姆治龅哪康氖菍陀^世界的系統(tǒng)建立對象模型,動(dòng)態(tài)模 型,功能模型。設(shè)計(jì)者必須了解需求以及問題所處的環(huán)境,必須調(diào)查所有需求,分 析所有需求的實(shí)質(zhì)含義。在歷屆系統(tǒng)需求的基礎(chǔ)上,按照上述建立模型的過程進(jìn)行 建模工作。建立模型的工作不是一次就可以建好的,復(fù)雜問題的模型需要反復(fù)構(gòu)造, 顯見模型的子集,然后擴(kuò)展到整個(gè)模型。 (2) 面向?qū)ο蟮脑O(shè)計(jì)。面向?qū)ο蟮脑O(shè)計(jì)是把分析階段得到的分析模型,經(jīng)過逐步擴(kuò)充和 完善,轉(zhuǎn)變?yōu)樵O(shè)計(jì)模型。將分析模型的問題域的概念轉(zhuǎn)變?yōu)樵O(shè)計(jì)模型的實(shí)現(xiàn)概念上 來。 面向?qū)ο蟮脑O(shè)計(jì)也可以分為系統(tǒng)設(shè)計(jì)和對
26、象設(shè)計(jì)。系統(tǒng)設(shè)計(jì)的確實(shí)現(xiàn)系統(tǒng)的策略和 目標(biāo)系統(tǒng)的高層結(jié)構(gòu),如人機(jī)界面的設(shè)計(jì)。數(shù)據(jù)管理的設(shè)計(jì),如軟件控制的實(shí)現(xiàn), 系統(tǒng)的體系結(jié)構(gòu)等。對象設(shè)計(jì)確定用到的類,關(guān)聯(lián)的完整定義,接口形式及實(shí)現(xiàn)操 作系統(tǒng)的算法,可以增加實(shí)現(xiàn)所必須的內(nèi)部對象,對數(shù)據(jù)結(jié)構(gòu)和算法進(jìn)行優(yōu)化。 面向?qū)ο蟮脑O(shè)計(jì)所遵循的基本原理和啟發(fā)規(guī)則與結(jié)構(gòu)化設(shè)計(jì)方法類似,但是增加了 一些面向?qū)ο蟮男绿攸c(diǎn)。 盡管面向?qū)π苑治龈髅嫦驅(qū)ο笤O(shè)計(jì)是兩個(gè)階層,但是在實(shí)際的軟件開發(fā)中二者的界 線很模糊的,許多分析結(jié)果可以影映射為數(shù)據(jù)結(jié)果, 而在設(shè)計(jì)過程中又往往會(huì)加深 和補(bǔ)充對系統(tǒng)需求的理解, 從而進(jìn)一步完善分析結(jié)果。 因此,分析各設(shè)計(jì)是一個(gè)多 次反復(fù)迭代的過程
27、。 (3) 面向?qū)ο蟮膶?shí)現(xiàn)。面向?qū)ο蟮膶?shí)現(xiàn)包括兩方面的工作,把面向?qū)ο蟮脑O(shè)計(jì)結(jié)果翻譯 成某種程序設(shè)計(jì)語言書寫的面向?qū)ο蟪绦颍缓筮M(jìn)行測試并調(diào)試面向?qū)ο蟮某绦颉?面向?qū)ο蟮某绦蛟O(shè)計(jì)的質(zhì)量基本上由面向?qū)ο蟮脑O(shè)計(jì)質(zhì)量決定。但是與程序設(shè)計(jì)語 言的特點(diǎn)和程序設(shè)計(jì)風(fēng)格有關(guān)系。 軟件測試仍然是保證軟件可靠性的主要措施,但是面向?qū)ο蟮能浖矔?huì)給測試帶來 了新的特天和新問題,如繼承性就給測試帶來了困難,面向?qū)ο蟮某绦虻膱?zhí)行與面 向過程的程序的執(zhí)行業(yè)大不相同,它是事件驅(qū)動(dòng)的,對象彼此之間通過消息傳遞啟 動(dòng)相應(yīng)操作,但是對象并沒有明顯的規(guī)定用什么次序啟動(dòng)它的操作才是合法的。因 此傳統(tǒng)的測試方法也不再完全適用了。 2
28、. 他們的基本的概念如下: (1) 對象。對象是人們要進(jìn)行研究的任何事物,從最簡單的證書到復(fù)雜的飛機(jī)均可看作 對象,他不僅能表示具體的事物,還能表示抽象的規(guī)則,計(jì)劃或事物件。 主要有如下對象類型:有形實(shí)體,作用,事件,性能說明。 對象具有狀態(tài)。一個(gè)對象用數(shù)據(jù)來描述它的狀態(tài),對象還是操作,用于改變對象的 狀態(tài),對象及其操作就是對象的行為。 對象實(shí)現(xiàn)了數(shù)據(jù)和操作的結(jié)合,是數(shù)據(jù)操作封裝與對象的統(tǒng)一體中。對象內(nèi)的數(shù)據(jù) 具有自己的操作。從而可靈活的專門描述對象的獨(dú)特行為,具有較強(qiáng)的獨(dú)立性和自 治性,其內(nèi)部狀態(tài)不受或很少受外界的影響,具有很好的模塊化特點(diǎn)。為軟件重用 奠定了堅(jiān)實(shí)的基礎(chǔ)。 (2) 類。類是具
29、有相同屬性和服務(wù)的一組對象的集合。因此,對象的抽象是類,類的具 體化就是對象,也可以說類的實(shí)體是對象。 (3) 類結(jié)構(gòu)。在客觀世界中有若干類,這些類之間有一定的關(guān)系。通常有兩種主要的結(jié) 構(gòu)關(guān)系,即一般一一具體結(jié)構(gòu)關(guān)系,整體一一部分結(jié)構(gòu)關(guān)系。 1. 一般一一具體結(jié)構(gòu)關(guān)系成為分類關(guān)系,也可以說是“或”關(guān)系,或者是“is a”關(guān) 系。類的這種層次結(jié)構(gòu)可用來描述現(xiàn)實(shí)世界中得一般化的關(guān)系,通常月在上層的類 越具有一般性共性,約在下層的類越具體,越細(xì)化。 2. 整體一一部分結(jié)構(gòu)稱為組裝結(jié)構(gòu),他們之間的關(guān)系是一種“與”關(guān)系,或者是“has a”關(guān)系。類的這種層次關(guān)系可用來描述現(xiàn)實(shí)世界中的抽象組成的抽象關(guān)系。
30、上層的 類具有整體性,下層的類具有成員性。 在類的層次中,通常上層類稱為父類或超類,下層類稱為子類。 (4)消息。對象之間進(jìn)行通信的構(gòu)造稱為消息。在對象的操作中,當(dāng)一個(gè)消息發(fā)送到某 個(gè)對象時(shí),消息包含接受對象去執(zhí)行某種操作的信息。接受信息的對象經(jīng)過解釋, 然后給予響應(yīng)。這種通信機(jī)制稱為信息傳遞。發(fā)送一條信息至少要包含說明接收消 息的對象名,發(fā)送給該對象的消息名(即對象名,方法名),一般還要對參數(shù)加以說 明,參數(shù)可以是認(rèn)識(shí)該消息的對象所知道的變量名,或者是所有對象都知道的全局 變量名。 (5)方法。類中操作的實(shí)現(xiàn)過程叫作方法,一個(gè)方法有方法名,參數(shù),方法體。當(dāng)一個(gè) 對象接收一條消息后,它所包含的
31、方法決定對象怎樣動(dòng)作。方法也可以發(fā)送消息給 其他對象,請求執(zhí)行某一動(dòng)作或提供信息。由于對象的內(nèi)部對用戶是密封的,所以 消息只是對象同外部世界連接的管道。對象內(nèi)部的數(shù)據(jù)只能被自己的方法所操縱。 3. 傳統(tǒng)開發(fā)方法存在的問題是: (1) 軟件重用性差。傳統(tǒng)的開發(fā)方法,例如結(jié)構(gòu)化方法等, 雖然給軟件產(chǎn)業(yè)帶來了巨大進(jìn) 步,但是沒有解決軟件重用的問題。同類型的項(xiàng)目,只要需求有一些變化,就要從頭 開始,原來的系統(tǒng)業(yè)很難重用。 (2) 軟件可維護(hù)性差。用傳統(tǒng)方法開發(fā)出來的軟件,維護(hù)是其費(fèi)用和成本仍然很高,其原 因是可修改性差,維護(hù)困難,導(dǎo)致可維護(hù)性差。 (3) 開發(fā)出的軟件不能滿足用戶需要。用傳統(tǒng)的結(jié)構(gòu)化方
32、法開發(fā)大型軟件系統(tǒng)涉及各種不 同領(lǐng)域知識(shí),在開發(fā)需求模糊或需求動(dòng)態(tài)變化的系統(tǒng)時(shí),所開發(fā)出來的軟件系統(tǒng)往往 不能真正滿足用戶的需要。 其原因是開發(fā)人員不能完全獲得或不能徹底理解用戶的需 要,以致開發(fā)軟件系統(tǒng)與用戶預(yù)期的系統(tǒng)不一致,不能滿足用戶的需要。 另一種原因 是所開發(fā)的軟件系統(tǒng)不能適應(yīng)用戶經(jīng)常變換的情況,系統(tǒng)的穩(wěn)定性差和可擴(kuò)充性不能 滿足用的需求。 4. 面向?qū)ο蟮奶卣鳛椋?(1) 對象惟一性。每個(gè)對象都有自身的惟一的標(biāo)識(shí),通過這種標(biāo)識(shí),可以找到相應(yīng)的對 象。在對象的整個(gè)生命周期中,它的標(biāo)識(shí)都不改變, 不同的對象不能有相同的標(biāo)識(shí)。 在對象建立時(shí),有系統(tǒng)授予新對象以惟一的對象標(biāo)識(shí)符,它在歷史版
33、本管理中又起 巨大作用。 (2)分類性。分類性是具有一定的數(shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對象抽象成類。 每個(gè)類是具有相同性質(zhì)的個(gè)體對象的集合,而每個(gè)對象是相關(guān)類的實(shí)例。 (3)繼承性。繼承性是子類自動(dòng)共享父類數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制,這是類之間的一種關(guān) 系。在定義和實(shí)現(xiàn)一個(gè)類的時(shí)候,可以在一個(gè)已經(jīng)存在的類的基礎(chǔ)上來進(jìn)行,把這 個(gè)已經(jīng)存在的類所定義的內(nèi)容作為自已的內(nèi)容,并加入若干新的內(nèi)容。 繼承性是面向?qū)ο蟪绦蛟O(shè)計(jì)語言不同與其他語言的最主要特點(diǎn),是其他語言所沒有 的。在類層次中,子類只繼承一個(gè)父類的數(shù)據(jù)結(jié)構(gòu)和方法,則稱為單重繼承。在層 次中,子類繼承了多少個(gè)父類的數(shù)據(jù)結(jié)構(gòu)和方法,則成為多重繼承。
34、(4)多態(tài)性(多型性)。多態(tài)性是指允許不同的對象對同一消息作出響應(yīng)。不同的對 象,收到同一消息可以產(chǎn)生不同的結(jié)果,這種現(xiàn)象稱為多態(tài)性。如MOVE操作,可以是窗 口對象的移動(dòng)操作,也可以是國際象棋子移動(dòng)的操作。 多態(tài)性允許每個(gè)對象以適合自身的方式去響應(yīng)共同的消息。這樣就增強(qiáng)了操作的透明 性、可理解性和可維護(hù)性。用戶不必為相同的功能操作但作用于不同類型的對象而費(fèi)心去識(shí) 別。 5 這是因?yàn)榻Y(jié)構(gòu)化方法的本質(zhì)是功能分解,從代表目標(biāo)系統(tǒng)狀態(tài)功能的單個(gè)處理著手, 自頂向下不斷把復(fù)雜的處理分解為子處理,這樣一層一層地分解下去, 直到僅剩下若干個(gè)容 易實(shí)現(xiàn)的子處理為止,然后用相應(yīng)的工具來描述各個(gè)最底層的處理。因
35、此,結(jié)構(gòu)化方法是圍 繞實(shí)現(xiàn)處理功能的“過程”來構(gòu)造系統(tǒng)的。然而,用戶需求的變化大部分是針對功能的。用 這種方法設(shè)計(jì)出來的系統(tǒng)結(jié)構(gòu)常常是不穩(wěn)定的,用戶需求的變化往往造成系統(tǒng)結(jié)構(gòu)的較大變 化,從而需要花費(fèi)很大代價(jià)才能實(shí)現(xiàn)這種變化。 6功能模型描述了系統(tǒng)的所有計(jì)算。功能模型指出發(fā)生了什么,對動(dòng)態(tài)模型確定什么 時(shí)候發(fā)生,而對象模型確定發(fā)生的客體。功能模型表明一個(gè)計(jì)算如何從輸入值得到輸出值, 它不考慮所計(jì)算的次序。功能模型由多張數(shù)據(jù)流圖組成。數(shù)據(jù)流圖說明數(shù)據(jù)流是如何從外部 輸入、經(jīng)過操作和內(nèi)部存儲(chǔ)輸出到外部的。功能模型也包括對象中值的約束條件。 7繼承性和多態(tài)性的好處是: 在軟件開發(fā)中,類的繼承性使所建
36、立的軟件具有開放性、可擴(kuò)充性,這是信息組織與分 類的行之有效的方法,它簡化了對象、類的創(chuàng)建工作量,增加了代碼的可重用性。 采用繼承 性,提供了類的規(guī)范的等級(jí)結(jié)構(gòu)。對單重繼承,可用數(shù)結(jié)構(gòu)來描述,對多重繼承,可用格結(jié) 構(gòu)來描述。通過類的繼承關(guān)系, 使公共的特性能夠共享,提高了軟件的重用性。首先進(jìn)行共 同特性的設(shè)計(jì)和驗(yàn)證,然后自頂向下來開發(fā),逐步加入新的內(nèi)容, 符合逐步細(xì)化的原則。通 過繼承,便于實(shí)現(xiàn)多態(tài)性。 多態(tài)性允許每個(gè)對象以適合自身的方式去響應(yīng)共同的消息。這樣就增強(qiáng)了操作的透明 性、可理解性和可維護(hù)性。用戶不必為相同的功能操作作用于不同類型的對象而費(fèi)心去識(shí)別。 多態(tài)性增強(qiáng)了軟件的靈活性和重用性
37、。允許使用更為明確、易懂的方式去建立通用軟件。 多態(tài)性與繼承性相結(jié)合使軟件具有更廣泛的重用性和可擴(kuò)充性。 &功能模型說明對象模型中操作的含義、動(dòng)態(tài)模型中動(dòng)作的意義以及對象模型中約束 的意義。一些不存在相互作用的系統(tǒng),如編譯器系統(tǒng),它們的動(dòng)態(tài)模型較小,因?yàn)樗鼈兊哪?的是功能處理,功能模型是這類系統(tǒng)的主要模型。 功能模型由多張數(shù)據(jù)流圖組成。數(shù)據(jù)流圖用來表示從源對象到目標(biāo)對象的數(shù)據(jù)值的流 向。數(shù)據(jù)流圖不表示控制信息, 控制信息在動(dòng)態(tài)模型中表示。 數(shù)據(jù)流圖也不表示對象中值的 組織,這種信息在對象模型中表示。 9、動(dòng)態(tài)建模的過程: (1) 準(zhǔn)備腳本。動(dòng)態(tài)分析從尋找事件開始,然后確定各對象的可能事件的順序。在分 析階段不考慮算法的執(zhí)行,算法是實(shí)現(xiàn)模型的一部分。 每當(dāng)系統(tǒng)中的對象與外部用戶發(fā)生互換信息時(shí), 就產(chǎn)生
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專題01 熱愛生活 熱愛寫作+作文選材技巧-【同步作文課】六年級(jí)語文上冊單元寫作深度指導(dǎo)(統(tǒng)編版2024·五四學(xué)制)
- 幼兒園小班音樂《紅眼睛》課件
- 西京學(xué)院《影像設(shè)備創(chuàng)新設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《數(shù)控技術(shù)與編程》2021-2022學(xué)年期末試卷
- 冰淇淋素描課件
- 核心制度課件
- 管理會(huì)計(jì)實(shí)務(wù) 課件情境3、4 謀而后定:企業(yè)戰(zhàn)略執(zhí)行的有效工具、做好企業(yè)的戰(zhàn)略參謀官
- 西華師范大學(xué)《體育科學(xué)研究方法》2023-2024學(xué)年第一學(xué)期期末試卷
- 西華師范大學(xué)《科學(xué)教育學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- 移動(dòng)機(jī)器人原理與技術(shù) 課件 第7、8章 移動(dòng)機(jī)器人語音識(shí)別與控制、移動(dòng)機(jī)器人的通信系統(tǒng)
- 體育教學(xué)彎道跑教案
- 建筑施工高處作業(yè)安全技術(shù)規(guī)范JGJ80-201620200805
- 細(xì)菌分類表按“界門綱目科屬種”分類
- 2024中能建數(shù)字科技集團(tuán)有限公司社會(huì)招聘筆試參考題庫含答案解析
- EB病毒感染的護(hù)理查房
- 網(wǎng)球活動(dòng)策劃推廣方案
- 全國食品安全風(fēng)險(xiǎn)監(jiān)測參考值 2024年版
- 2023年福建省考評員考試題
- 開源軟件供應(yīng)鏈安全研究
- 三年級(jí)上冊數(shù)學(xué)教案-第7單元 分?jǐn)?shù)的初步認(rèn)識(shí)(一) 單元概述和課時(shí)安排 蘇教版
- 中國釔-90行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報(bào)告2024-2029版
評論
0/150
提交評論