教學(xué)目標(biāo)、內(nèi)容_第1頁(yè)
已閱讀1頁(yè),還剩57頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第 2 頁(yè),教學(xué)目標(biāo)、內(nèi)容,了解OO方法的實(shí)施過(guò)程、方法、步驟,第 3 頁(yè),三、面向?qū)ο蠓治鯫OA,OOA的關(guān)鍵是識(shí)別出問(wèn)題域內(nèi)的對(duì)象,并分析它們相互之間的關(guān)系,最終建立起問(wèn)題域的精確、可理解的正確模型。OOA階段主要是明確問(wèn)題中存在哪些數(shù)據(jù)實(shí)體,它們的意義是什么,而不考慮對(duì)它們的處理。,第 4 頁(yè),基本任務(wù):,運(yùn)用OO方法,對(duì)問(wèn)題域進(jìn)行分析和理解;找出描述問(wèn)題域所需的對(duì)象及類;定義這些對(duì)象和類的屬性與服務(wù);定義對(duì)

2、象和類之間所形成的結(jié)構(gòu)、靜態(tài)聯(lián)系和動(dòng)態(tài)聯(lián)系。OOA的最終目的是產(chǎn)生一個(gè)符合用戶需求,并能夠直接反映問(wèn)題域的 OOA模型及其軟件需求規(guī)格說(shuō)明。,第 5 頁(yè),1.概述,OOA就是抽取和整理用戶要求并建立問(wèn)題域精確模型的過(guò)程。OOA從分析用戶需求文件開(kāi)始,發(fā)現(xiàn)和改正其中的二義性和不一致性,補(bǔ)充遺漏的內(nèi)容,使需求陳述更完整、更準(zhǔn)確。分析人員應(yīng)深入理解用戶需求,抽象出目標(biāo)系統(tǒng)的本質(zhì)屬性,并用模型準(zhǔn)確地表示出來(lái)。在OO建模中,分析人員

3、要認(rèn)真向領(lǐng)域?qū)<覍W(xué)習(xí)。尤其是建模過(guò)程中的分類工作往往有很大的難度,需專家配合。,第 6 頁(yè),2、三個(gè)子模型,模型對(duì)象三要素(子模型):對(duì)象模型 描述靜態(tài)結(jié)構(gòu)動(dòng)態(tài)模型 描述交互次序功能模型 描述數(shù)據(jù)變換解決的問(wèn)題不同,這三個(gè)子模型的重要程度也不同。當(dāng)問(wèn)題涉及交互作用和時(shí)序(用戶界面、過(guò)程控制等),動(dòng)態(tài)模型是重要的;解決運(yùn)算量很大的問(wèn)題(科學(xué)計(jì)算等),則涉及功能模型;,第 7 頁(yè),3、五個(gè)層次,對(duì)于復(fù)雜問(wèn)題,對(duì)象模型由5

4、個(gè)層次組成:主題層 指導(dǎo)“讀者”理解大型、復(fù)雜模型的機(jī)制;通過(guò)劃分主題,把一個(gè)復(fù)雜、大型對(duì)象模型分解為幾個(gè)不同的概念模型(心理研究表明:人短期記憶能力一般限于一次記憶5~9個(gè)對(duì)象,即7±2原則,OOA從“控制可見(jiàn)性”和“指導(dǎo)讀者注意力”兩方面來(lái)體現(xiàn)這條原則)。類-對(duì)象層 由類和對(duì)象組成的層結(jié)構(gòu)層 對(duì)象之間的層次結(jié)構(gòu) 屬性層 對(duì)象數(shù)據(jù)的描述服務(wù)層 對(duì)象操作的描述,第 8 頁(yè),五個(gè)層次對(duì)應(yīng)五個(gè)活動(dòng),5個(gè)層次對(duì)應(yīng)OOA

5、過(guò)程中5個(gè)主要的活動(dòng):找出類和對(duì)象識(shí)別結(jié)構(gòu)識(shí)別主題定義屬性定義服務(wù)這5項(xiàng)活動(dòng)可以交叉開(kāi)展,不需要嚴(yán)格遵守自頂向下的原則。,第 9 頁(yè),4、需求陳述,需求陳述的內(nèi)容包括:?jiǎn)栴}范圍、功能和性能需求、應(yīng)用環(huán)境及假設(shè)條件等。需求陳述應(yīng)該闡明“做什么”而不是“怎樣做”。 要求:盡力做到語(yǔ)法正確,應(yīng)慎重選用名詞、動(dòng)詞、形容詞和同義詞。絕大多數(shù)需求陳述有二義性,不完整,甚至有沖突。這就要求分析人員在分析過(guò)程中快速地建立起原

6、型系統(tǒng),以便與用戶更有效地交流。,第 10 頁(yè),自動(dòng)取款機(jī)的例子,某銀行擬開(kāi)發(fā)一個(gè)ATM系統(tǒng)。該系統(tǒng)是由ATM、中央計(jì)算機(jī)、分行計(jì)算機(jī)及柜員終端組成的網(wǎng)絡(luò)系統(tǒng)。,第 11 頁(yè),對(duì)ATM的需求,ATM和主機(jī)由總行投資購(gòu)買。分行負(fù)責(zé)提供分行計(jì)算機(jī)和柜員終端。柜員終端設(shè)在分行營(yíng)業(yè)廳及下屬的各儲(chǔ)蓄所。軟件系統(tǒng)成本由各行分?jǐn)偂?銀行柜員使用柜員終端處理儲(chǔ)戶提交的業(yè)務(wù)(可用現(xiàn)金、支票;可取款;有多帳號(hào))。柜員的工作范圍和職責(zé)包括:輸入儲(chǔ)戶

7、的存、取款信息,接收儲(chǔ)戶交來(lái)的現(xiàn)金、支票或給儲(chǔ)戶現(xiàn)金;柜員終端與分行計(jì)算機(jī)通信,分行計(jì)算機(jī)具體處理儲(chǔ)戶事務(wù)等。擁有銀行帳號(hào)的儲(chǔ)戶可領(lǐng)取現(xiàn)金兌換卡,使用該卡可以通過(guò)ATM訪問(wèn)自己的賬戶(目前只限于訪問(wèn)自己帳戶信息,用現(xiàn)金兌換卡在ATM上提取現(xiàn)金;將來(lái)可使用ATM辦理轉(zhuǎn)帳、存款等事務(wù))。現(xiàn)金兌換卡具有一定的使用方法和功能。,第 12 頁(yè),5、建立對(duì)象模型,用OOA方法求解問(wèn)題,首先是建立對(duì)象模型,然后再建立另外兩個(gè)模型。建立對(duì)象模

8、型的操作過(guò)程:確定類和對(duì)象確定關(guān)聯(lián)劃分主題確定屬性識(shí)別繼承關(guān)系反復(fù)修改,第 13 頁(yè),⑴確定類和對(duì)象,類和對(duì)象 在問(wèn)題域中是客觀的存在,要通過(guò)分析把它們找出來(lái)。確定類和對(duì)象的操作步驟是:找出候選的類和對(duì)象選擇出正確的類和對(duì)象去掉籠統(tǒng)的類確定對(duì)象的屬性定義操作實(shí)現(xiàn),第 14 頁(yè),找出候選的類和對(duì)象,對(duì)象分為5類:可感知的物理實(shí)體,例如飛機(jī)、計(jì)算機(jī)等;人或組織的角色,例如醫(yī)生、計(jì)算機(jī)系等;應(yīng)該記憶的事件

9、,例如訪問(wèn)、飛行等;多個(gè)對(duì)象之間的相互作用,例如購(gòu)買、結(jié)婚等;需要說(shuō)明的概念,例如版權(quán)法、保險(xiǎn)政策等。,第 15 頁(yè),非正式分析法,以用自然語(yǔ)言書寫的需求陳述為依據(jù),把陳述中名詞作為類和對(duì)象的侯選者,用形容詞作為確定屬性的線索,把動(dòng)詞作為服務(wù)的侯選者。還應(yīng)根據(jù)領(lǐng)域知識(shí)或常識(shí)進(jìn)一步把隱含的類和對(duì)象提取出來(lái)。例如,ATM系統(tǒng)中的“通信鏈路”和“事務(wù)日志”。,第 16 頁(yè),選擇出正確的類和對(duì)象,從候選類和對(duì)象中篩選出正確的

10、類和對(duì)象。篩選標(biāo)準(zhǔn)為:⑴ 冗余 若表達(dá)同樣的信息有多個(gè)類,則僅保留與本問(wèn)題有密切相關(guān)的,其余則刪除;例如“用戶、儲(chǔ)戶”、“現(xiàn)金兌換卡、磁卡”是相同的兩類信息,所以,只保留“儲(chǔ)戶”和“現(xiàn)金兌換卡”。⑵ 無(wú)關(guān) 有些類在其他問(wèn)題中可能很重要,但與當(dāng)前要解決的問(wèn)題無(wú)關(guān),把它刪去。例如,開(kāi)發(fā)成本、ATM、柜員終端放置地點(diǎn)與本系統(tǒng)關(guān)系不大,應(yīng)該去掉成本、城市、街道、營(yíng)業(yè)廳和儲(chǔ)蓄所。⑶ 籠統(tǒng) 應(yīng)去掉籠統(tǒng)、模糊的類,例如,銀行實(shí)際指總行或分行,則

11、可去掉銀行侯選類。⑷ 屬性 有些名詞實(shí)際上描述的是其他對(duì)象的屬性,應(yīng)該去掉,例如,“現(xiàn)金”、“支票”、“分行代碼”、“密碼”等都可作為屬性。⑸ 操作 定義操作時(shí)要慎重考慮操作的確切含義。例如,常把電話“撥號(hào)”當(dāng)作動(dòng)詞,因此定義“撥號(hào)”為操作。但在開(kāi)發(fā)電話的自動(dòng)記帳系統(tǒng)時(shí),“撥號(hào)”需有自己的屬性(如日期、時(shí)間等),因此應(yīng)作為類對(duì)待。⑹ 實(shí)現(xiàn) 在分析階段不應(yīng)過(guò)早考慮如何實(shí)現(xiàn)目標(biāo)系統(tǒng),否則會(huì)分散注意力。,第 17 頁(yè),⑵確定關(guān)聯(lián),兩

12、個(gè)或多個(gè)對(duì)象之間的相互依賴、相互作用的關(guān)系就是關(guān)聯(lián)。分析確定關(guān)聯(lián),能促使分析員考慮問(wèn)題域的邊緣情況,有助于發(fā)現(xiàn)那些尚未被發(fā)現(xiàn)的類和對(duì)象。操作步驟:初步確定關(guān)聯(lián)篩選進(jìn)一步完善,第 18 頁(yè),初步確定關(guān)聯(lián),在需求陳述中使用的描述性動(dòng)詞或動(dòng)詞詞組,通常表示關(guān)聯(lián)關(guān)系。因此,大多數(shù)關(guān)聯(lián)可通過(guò)提供需求陳述中的動(dòng)詞詞組而得到。以ATM系統(tǒng)為例,經(jīng)過(guò)分析初步確定出下列關(guān)聯(lián):⑴ 直接提取動(dòng)詞短語(yǔ)得出的關(guān)聯(lián)儲(chǔ)戶擁有帳號(hào)ATM吐出現(xiàn)金⑵

13、 需求陳述中隱含的關(guān)聯(lián)分行保管賬戶儲(chǔ)戶擁有現(xiàn)金兌換卡⑶ 根據(jù)問(wèn)題域知識(shí)得出的關(guān)聯(lián)現(xiàn)金兌換卡訪問(wèn)賬戶,第 19 頁(yè),篩選,篩選時(shí)主要根據(jù)下述標(biāo)準(zhǔn)刪除侯選的關(guān)聯(lián):已刪除類之間的關(guān)聯(lián)應(yīng)該刪除。例如,ATM系統(tǒng)中已刪除了“系統(tǒng)、市、街道、城市、成本”等侯選類,因此應(yīng)刪除和這些類有關(guān)的“ATM設(shè)在主要街道上”的關(guān)聯(lián)。應(yīng)把本問(wèn)題域之外的關(guān)聯(lián)或與實(shí)現(xiàn)密切相關(guān)的關(guān)聯(lián)刪去。例如,ATM系統(tǒng)中,“ATM讀現(xiàn)金兌換卡”應(yīng)該刪除,因?yàn)樗皇茿T

14、M和現(xiàn)金兌換卡之間的固有關(guān)系。關(guān)聯(lián)應(yīng)描述問(wèn)題瞬間事件域的靜態(tài)結(jié)構(gòu),而不應(yīng)該是一個(gè)瞬時(shí)事件。例如,“ATM讀現(xiàn)金兌換卡”描述了ATM與用戶交互周期中的一個(gè)動(dòng)作,但不是“ATM”和“現(xiàn)金兌換卡”間的固有關(guān)系。三個(gè)或以上對(duì)象之間的關(guān)聯(lián),可分解為二元關(guān)聯(lián)或用詞組描述成限定的關(guān)聯(lián)。例如,“柜員輸入針對(duì)賬戶的事務(wù)”可分解為“柜員輸入事務(wù)”和“事務(wù)修改賬戶”兩個(gè)二元關(guān)聯(lián)。應(yīng)刪除那些可用其他關(guān)聯(lián)定義的冗余關(guān)聯(lián)。例如,“分行計(jì)算機(jī)維護(hù)賬戶”的實(shí)際含

15、義是“分行保管賬戶”和“事務(wù)修改賬戶”。,第 20 頁(yè),進(jìn)一步完善,應(yīng)該進(jìn)一步完善經(jīng)篩選后余下的關(guān)聯(lián),常進(jìn)行下述改進(jìn):正名。仔細(xì)選擇含義明確的名字作為關(guān)聯(lián)名。例如,“分行提供分行計(jì)算機(jī)和柜員終端”可改為“分行擁有分行計(jì)算機(jī)”和“分行擁有柜員終端”。分解。為能適用不同的關(guān)聯(lián),必要時(shí)應(yīng)分解以前確定的類和對(duì)象。例如,把“事務(wù)”分解為“遠(yuǎn)程事務(wù)”和“柜員事務(wù)”。補(bǔ)充。應(yīng)及時(shí)補(bǔ)充遺漏的關(guān)聯(lián)。例如,把“事務(wù)”分解為兩類后,系統(tǒng)要補(bǔ)充“柜員

16、輸入柜員事務(wù)”等關(guān)聯(lián)。表明階數(shù)。應(yīng)初步判定各個(gè)關(guān)聯(lián)的類型,并粗略地確定關(guān)聯(lián)的階數(shù)。,第 21 頁(yè),ATM原始對(duì)象圖,,,,,,,,,總行,分行代碼,組成,分行,賬戶,儲(chǔ)戶,保管,擁有,1+,1+,,現(xiàn)金兌換卡,,擁有,1+,1+,,,,訪問(wèn),1+,1+,,遠(yuǎn)程事務(wù),,ATM,,分行計(jì)算機(jī),,,擁有,通信,1+,授權(quán),,輸入,1+,,1+,,1+,,柜員事務(wù),,柜員終端,,,,,1+,,輸入,1+,,中央計(jì)算機(jī),,柜員,,輸入,

17、1+,,擁有,1+,通信,1+,,1+,,1+,通信,,雇傭,,1+,,,擁有,,,,,,,,,,,,,修改,修改,,,,,,,,,第 22 頁(yè),⑶劃分主題,為了降低求解大型復(fù)雜問(wèn)題的難度,通常把系統(tǒng)進(jìn)一步劃分為幾個(gè)不同的主題。對(duì)大系統(tǒng)而言,先要識(shí)別出類、對(duì)象和關(guān)聯(lián),再劃分主題,即先粗略識(shí)別出對(duì)象和關(guān)聯(lián),初步劃分主題,再進(jìn)一步研究、修改和精練主題。確定主題方法:按問(wèn)題域確定主題;按不同主題內(nèi)的對(duì)象相互依賴和交互最小的原則來(lái)確

18、定主題。例如,對(duì)于ATM系統(tǒng),可把它劃分為“總行”、“分行”和“ATM”三個(gè)主題。,第 23 頁(yè),把ATM劃分為三個(gè)主題,,,,,,,,,,總行,分行代碼,組成,分行,賬戶,儲(chǔ)戶,保管,擁有,1+,1+,,現(xiàn)金兌換卡,,擁有,1+,1+,,,,訪問(wèn),1+,1+,,遠(yuǎn)程事務(wù),,ATM,,分行計(jì)算機(jī),,,擁有,通信,1+,授權(quán),,輸入,1+,,1+,,1+,修改,,柜員事務(wù),,柜員終端,,,,,1+,,輸入,1+,,中央計(jì)算機(jī),,柜

19、員,,輸入,1+,,擁有,1+,通信,1+,,1+,,1+,通信,,雇傭,,1+,,,擁有,,,,,,,,,,,,,,,,1,1,1,1,2,2,2,2,3,3,3,3,修改,,第 24 頁(yè),⑷確定屬性,屬性是對(duì)對(duì)象性質(zhì)的描述。確定屬性分兩個(gè)步驟: 分析和選擇屬性分析屬性:通常,需求陳述中用名詞詞組表示屬性。例如,“光標(biāo)的位置”。確定找出屬性還要借助領(lǐng)域知識(shí)和常識(shí)分析得到。屬性的確定既與問(wèn)題域有關(guān),也和目標(biāo)系統(tǒng)的任務(wù)有關(guān)

20、。應(yīng)該只考慮與具體應(yīng)用直接相關(guān)的屬性,不考慮那些超出所要解決問(wèn)題范圍的屬性。在分析過(guò)程中應(yīng)該首先找出最重要的屬性,以后再逐步地把其他屬性增添進(jìn)去。,第 25 頁(yè),選擇屬性,選擇屬性時(shí)有以下幾種常見(jiàn)情況:誤把對(duì)象當(dāng)作屬性。例如,在郵政目錄中,“城市”是一個(gè)屬性,而在人口普查中“城市”則作為對(duì)象。把限定誤當(dāng)作屬性。正確地使用限定詞可以減少關(guān)聯(lián)的階數(shù)。在ATM例中,“分行帳號(hào)”、“雇員號(hào)”等都是限定詞,不能作為屬性。把內(nèi)部狀態(tài)當(dāng)作屬

21、性。如果某個(gè)性質(zhì)是對(duì)象的非公開(kāi)的內(nèi)部狀態(tài),則不能作為該對(duì)象的屬性。過(guò)于細(xì)化。忽略那些對(duì)大多數(shù)操作沒(méi)有影響的屬性。存在不一致的屬性。如果存在與其他屬性毫不相關(guān)的屬性,則應(yīng)該把該類分解為兩個(gè)不同的類。,第 26 頁(yè),ATM對(duì)象模型中的屬性,,,,,,,,,總行,分行代碼,組成,分行,賬戶,儲(chǔ)戶,保管,1+,1+,,現(xiàn)金兌換卡,,擁有,1+,,,,訪問(wèn),1+,1+,,遠(yuǎn)程事務(wù),,ATM,,分行計(jì)算機(jī),,,擁有,通信,授權(quán),,

22、輸入,1+,,1+,,1+,修改,,柜員事務(wù),,柜員終端,,,,,1+,,輸入,,中央計(jì)算機(jī),,柜員,,輸入,1+,,通信,1+,,1+,,通信,,雇傭,1+,,擁有,,總行名,,站號(hào),,現(xiàn)有金額付出金額,類型日期金額,,,密碼,,1+,,,,修改,修改,,類型日期金額,,,,姓名地址,擁有,,卡號(hào),,站號(hào),,,,站號(hào),分行名,,擁有,,賬號(hào),,雇員號(hào),,,,,姓名,,分行代碼,,,,,發(fā)放,姓名,,金額限額

23、類型,,,第 27 頁(yè),⑸識(shí)別繼承關(guān)系,確定了類中的屬性后,就可以對(duì)系統(tǒng)中的類確認(rèn)它們的繼承關(guān)系了。可以使用兩種方式建立繼承關(guān)系:自底向上。抽象出現(xiàn)有類的共同性質(zhì)泛化出父類。例如,ATM中“遠(yuǎn)程事務(wù)”和“柜員事務(wù)”是類似的,可以泛化出父類“事務(wù)”。自頂向下。把現(xiàn)有類細(xì)化成更具體的子類。例如,帶形容詞修飾的名詞詞組往往暗示了一些具體類。但在分析階段應(yīng)該避免過(guò)度細(xì)化。,第 28 頁(yè),帶有繼承關(guān)系的ATM對(duì)象模型,,,,保管,

24、1+,訪問(wèn),,,,,,輸入,1+,擁有,1+,,,總行,分行代碼,,總行名,,ATM,,現(xiàn)有金額付出金額,,事務(wù),類型日期金額,,現(xiàn)金兌換卡,,,密碼,1+,,修改,,儲(chǔ)戶,,姓名地址,擁有,,分行計(jì)算機(jī),,站號(hào),,,分行,,站號(hào),,賬號(hào),分行名,,,雇員號(hào),,,,中央計(jì)算機(jī),,站號(hào),,,分行代碼,,,,柜員事務(wù),,,賬戶,,金額限額類型,,,,輸入站,,,,,,擁有,通信,,通信,,通信,,,擁有,,,擁

25、有,,柜員,,姓名,卡號(hào),,,,,,,雇傭,,,,發(fā)放,,遠(yuǎn)程事務(wù),,,柜員終端,,,,,,,,1+,授權(quán),1+,輸入,組成,1+,1+,,,,,,第 29 頁(yè),⑹反復(fù)修改,建立模型的過(guò)程往往是反復(fù)修改的過(guò)程,只要發(fā)現(xiàn)模型有缺陷,就必須返回到前期階段進(jìn)行修改。例如,對(duì)于上述ATM系統(tǒng),可能做的修改:分解“現(xiàn)金兌換卡”類為“卡權(quán)限”和“現(xiàn)金兌換卡”兩個(gè)類?!笆聞?wù)”由“更新”組成。一個(gè)事務(wù)包含對(duì)賬戶的若干次更新。把“分行”與“

26、分行計(jì)算機(jī)”合并。類似的,合并“總行”和“中央計(jì)算機(jī)”。,第 30 頁(yè),四、面向?qū)ο笤O(shè)計(jì)OOD,OOD是用OO觀點(diǎn)建立求解域模型的過(guò)程。OOA是通過(guò)對(duì)象的認(rèn)定,確定問(wèn)題空間中應(yīng)當(dāng)存在的對(duì)象和對(duì)象層次結(jié)構(gòu);OOD則是通過(guò)對(duì)象的認(rèn)定和對(duì)象層次結(jié)構(gòu)的組織,確定解空間中應(yīng)存在的對(duì)象和對(duì)象層次結(jié)構(gòu),并確定外部接口和主要的數(shù)據(jù)結(jié)構(gòu)。OOD也分兩個(gè)步驟:即高層設(shè)計(jì)階段和低層設(shè)計(jì)階段。高層設(shè)計(jì)階段開(kāi)發(fā)系統(tǒng)的結(jié)構(gòu),構(gòu)造軟件系統(tǒng)的總體模型,包括開(kāi)發(fā)

27、用戶界面等。低層設(shè)計(jì)集中于類的詳細(xì)設(shè)計(jì),包括對(duì)象類的關(guān)聯(lián)、接口形式及實(shí)現(xiàn)服務(wù)的算法等。,第 31 頁(yè),面向?qū)ο笤O(shè)計(jì)的目標(biāo),OOD的主要目標(biāo)是提高生產(chǎn)率、提高質(zhì)量及提高可維護(hù)性。提高生產(chǎn)率 OOD是一種系統(tǒng)設(shè)計(jì)活動(dòng),使用OOD最多使整個(gè)生產(chǎn)率提高20%左右。OOD使用重用類機(jī)制來(lái)改進(jìn)效率,類庫(kù)是這種結(jié)構(gòu)的主要組成部分。提高質(zhì)量 OOA和OOD過(guò)程能夠減少開(kāi)發(fā)后期發(fā)現(xiàn)的錯(cuò)誤,并大大提高系統(tǒng)的質(zhì)量。提高可維護(hù)性 OO方法開(kāi)發(fā)的系統(tǒng)中

28、,最穩(wěn)定的是類,系統(tǒng)可變的是服務(wù),服務(wù)的復(fù)雜程度也是變化的,外部接口也是最可能變化的部分。為提高可維護(hù)性,就要把系統(tǒng)中穩(wěn)定的部分和易變的部分分離開(kāi)來(lái)。,第 32 頁(yè),1、面向?qū)ο笤O(shè)計(jì)的準(zhǔn)則,在SP軟件設(shè)計(jì)中的基本原理,在OO方法中也適用,這就是:模塊化 對(duì)象就是模塊抽象 OO方法支持過(guò)程抽象、數(shù)據(jù)抽象、規(guī)格說(shuō)明抽象和參數(shù)化抽象(如,C++中的“模板”)信息隱藏 通過(guò)封裝性實(shí)現(xiàn)弱耦合 對(duì)象間有兩類耦合“交互耦合”(消息傳遞)和

29、“繼承偶合”(父、子類間的聯(lián)系)強(qiáng)內(nèi)聚 OO設(shè)計(jì)中有3種內(nèi)聚:服務(wù)內(nèi)聚(一個(gè)服務(wù)完成一個(gè)功能)、類內(nèi)聚(一個(gè)類應(yīng)只有一個(gè)用途)和一般-特殊內(nèi)聚(這是對(duì)領(lǐng)域知識(shí)的正確抽取)??芍赜?盡量使用已有類;設(shè)計(jì)新類時(shí)考慮可重用。,第 33 頁(yè),2、啟發(fā)規(guī)則,設(shè)計(jì)結(jié)果應(yīng)清晰易懂一般-特殊結(jié)構(gòu)的深度應(yīng)適當(dāng)設(shè)計(jì)簡(jiǎn)單的類使用簡(jiǎn)單的協(xié)議使用簡(jiǎn)單的服務(wù)把設(shè)計(jì)變動(dòng)減至最小,第 34 頁(yè),設(shè)計(jì)結(jié)果應(yīng)清晰易懂,設(shè)計(jì)結(jié)果清晰、易懂是提高軟件可維

30、護(hù)性和可重用性的重要措施。保證設(shè)計(jì)結(jié)果清晰、易懂的主要因素:用詞一致。使用的名字與它所表示的事物一致,盡量使用人們習(xí)慣的名字。使用己有的協(xié)議。減少消息模式的數(shù)目。避免模糊的定義。一個(gè)類的用途應(yīng)該是有限的,而且應(yīng)該從類名可以較容易地推想出它的用途。,第 35 頁(yè),一般-特殊結(jié)構(gòu)的深度應(yīng)適當(dāng),應(yīng)該使類等級(jí)中包含的層次數(shù)適當(dāng)。在一個(gè)中等規(guī)模(約100個(gè)類)的系統(tǒng)中,類等級(jí)層次數(shù)應(yīng)保持為7±2。不應(yīng)僅從方便編碼角度出發(fā)

31、隨意創(chuàng)建派生類,應(yīng)該使一般-特殊結(jié)構(gòu)與領(lǐng)域知識(shí)或常識(shí)保持一致。,第 36 頁(yè),設(shè)計(jì)簡(jiǎn)單的類,簡(jiǎn)單的類便于開(kāi)發(fā)、維護(hù)和管理。為此應(yīng)該注意:避免包含過(guò)多的屬性。屬性多,功能就復(fù)雜。有明確的定義。每個(gè)類的任務(wù)能用一兩個(gè)簡(jiǎn)單句描述。盡量簡(jiǎn)化對(duì)象之間的合作關(guān)系。不要提供太多服務(wù)。一個(gè)類提供的服務(wù)過(guò)多(以不超過(guò)7個(gè)公共服務(wù)為易)會(huì)導(dǎo)致接口和消息模式復(fù)雜。,第 37 頁(yè),使用簡(jiǎn)單的協(xié)議,一般說(shuō)來(lái),消息中的參數(shù)不要超過(guò)3個(gè)。不過(guò),這不是

32、絕對(duì)的。但是,經(jīng)驗(yàn)表明,通過(guò)復(fù)雜消息相互關(guān)聯(lián)的對(duì)象是緊耦合,對(duì)一個(gè)對(duì)象的修改往往導(dǎo)致其他對(duì)象的修改。,第 38 頁(yè),使用簡(jiǎn)單的服務(wù),OO設(shè)計(jì)出來(lái)的類中的服務(wù)通常都很小,一般只有3~5行源代碼,可以用僅含一個(gè)動(dòng)詞和一個(gè)賓語(yǔ)的簡(jiǎn)單句描述它的功能。若一個(gè)服務(wù)中包含了過(guò)多的源代碼,或者語(yǔ)句嵌套層次太多,或使用了復(fù)雜的CASE語(yǔ)句,則應(yīng)該仔細(xì)檢查該服務(wù),設(shè)法分解或簡(jiǎn)化它。如果需要在服務(wù)中使用CASE語(yǔ)句,通常應(yīng)考慮用一般-特殊結(jié)構(gòu)

33、代替這個(gè)類的可能性。,第 39 頁(yè),把設(shè)計(jì)變動(dòng)減至最小,通常,設(shè)計(jì)的質(zhì)量越高,設(shè)計(jì)結(jié)果保持的時(shí)間也越長(zhǎng)。即使出現(xiàn)必須修改設(shè)計(jì)的情況,也應(yīng)該使修改的范圍盡可能小。,在設(shè)計(jì)早期階段,變動(dòng)較大,隨時(shí)間推移,設(shè)計(jì)方案日趨成熟,改動(dòng)也越來(lái)越小。,第 40 頁(yè),3、軟件重用,軟件重用分3個(gè)層次:知識(shí)重用(例如,軟件工程知識(shí)的重用)方法和標(biāo)準(zhǔn)的重用(例如,OO方法或國(guó)家制定的軟件開(kāi)發(fā)規(guī)范的重用)軟件成分的重用。前兩種重用屬于知識(shí)工程研

34、究的范疇,這里只討論軟件成分重用問(wèn)題。,第 41 頁(yè),軟件成分的重用級(jí)別,軟件成分的重用可劃分為3個(gè)級(jí)別:⑴代碼重用:可以是下列形式中的任何一種:源代碼剪貼源代碼包含(#include 包含庫(kù)中源代碼)繼承 利用類的繼承機(jī)制⑵設(shè)計(jì)結(jié)果重用: 指重用某個(gè)軟件系統(tǒng)的設(shè)計(jì)模型。這類重用有助于把一個(gè)應(yīng)用系統(tǒng)移植到完全不同的軟硬件平臺(tái)上。⑶分析結(jié)果重用:指重用某個(gè)系統(tǒng)的分析模型。這類重用適用于用戶需求未改變,但系統(tǒng)體系結(jié)構(gòu)發(fā)生了根

35、本變化的場(chǎng)合。,第 42 頁(yè),4、系統(tǒng)分解,解決復(fù)雜問(wèn)題采用的普遍策略是“分而治之,各個(gè)擊破”。系統(tǒng)設(shè)計(jì)也采用類似的方法:系統(tǒng)分解。將系統(tǒng)分解得到的結(jié)果,稱為子系統(tǒng)。分解子系統(tǒng)的原則:應(yīng)盡量減少子系統(tǒng)彼此之間的依賴性。OOD模型得到4個(gè)子系統(tǒng)問(wèn)題域子系統(tǒng)人機(jī)交互子系統(tǒng)任務(wù)管理子系統(tǒng)數(shù)據(jù)管理子系統(tǒng),,,,,人機(jī)交互子系統(tǒng),問(wèn)題域子系統(tǒng),任務(wù)管理子系統(tǒng),數(shù)據(jù)管理子系統(tǒng),,,,,,主題層類對(duì)象層結(jié)構(gòu)層屬性層

36、服務(wù)層,第 43 頁(yè),(一)設(shè)計(jì)問(wèn)題域子系統(tǒng),在OOA階段,得到有關(guān)問(wèn)題域的精確模型,為設(shè)計(jì)問(wèn)題域子系統(tǒng)奠定了基礎(chǔ),同時(shí)建立起求解域的總體框架。在OOD階段,應(yīng)對(duì)在OOA中得到的結(jié)果進(jìn)行改進(jìn)和增補(bǔ),主要是根據(jù)需求的變化,對(duì)OOA產(chǎn)生的模型中的某些類與對(duì)象、結(jié)構(gòu)、屬性及服務(wù)進(jìn)行組合與分解,調(diào)整繼承關(guān)系等等。 問(wèn)題域子系統(tǒng)設(shè)計(jì)任務(wù)主要包括:調(diào)整需求、重用設(shè)計(jì)(類)、組合問(wèn)題域相關(guān)的類、增添一般化類來(lái)建立類間協(xié)議、調(diào)整繼承層次、改進(jìn)性

37、能與加入較低層的構(gòu)件等。,第 44 頁(yè),,,ATM系統(tǒng)問(wèn)題域子系統(tǒng)的結(jié)構(gòu),,儲(chǔ)戶,,,界面,ATM,現(xiàn)金兌換卡,事務(wù),ATM站,,,ATM站,中央計(jì)算機(jī),分行計(jì)算機(jī),,分行代碼,,事務(wù),,站號(hào),總行,,,,電話線,,電話線,,,事務(wù),,柜 員,柜員終端,,數(shù)據(jù)庫(kù),賬 戶,儲(chǔ)戶信息,卡權(quán)限,第 45 頁(yè),(二)設(shè)計(jì)人機(jī)交互子系統(tǒng),人–機(jī)交互子系統(tǒng)即用戶界面。它的設(shè)計(jì)結(jié)果,將對(duì)用戶情緒和工作效率產(chǎn)生重要影響。若該界

38、面設(shè)計(jì)得好,會(huì)對(duì)用戶產(chǎn)生吸引力,用戶在使用系統(tǒng)的過(guò)程中能夠激發(fā)用戶的創(chuàng)造力,提高工作效率;相反,若該界面設(shè)計(jì)得不好,用戶在使用過(guò)程中就會(huì)感到不方便、不習(xí)慣,甚至?xí)a(chǎn)生厭煩和惱怒的情緒。由于對(duì)人–機(jī)界面的評(píng)價(jià),在很大程度上由人的主觀因素決定,因此,使用由原型支持的系統(tǒng)化的設(shè)計(jì)策略,是成功地設(shè)計(jì)人–機(jī)交互子系統(tǒng)的關(guān)鍵。,第 46 頁(yè),設(shè)計(jì)人-機(jī)交互界面的準(zhǔn)則,一致性 使用一致的術(shù)語(yǔ)、一致的步驟、一致的動(dòng)作。減少步驟 應(yīng)使用戶為做某

39、件事情而需操作的步驟最少(鼠標(biāo)點(diǎn)擊、擊鍵次數(shù))。及時(shí)提供反饋信息提供撤消命令無(wú)須記憶易學(xué) 應(yīng)提供聯(lián)機(jī)幫助系統(tǒng)或參考資料。富有吸引力,第 47 頁(yè),設(shè)計(jì)人-機(jī)交互子系統(tǒng)的策略,分類用戶描述用戶設(shè)計(jì)命令層次設(shè)計(jì)人-機(jī)交互類,第 48 頁(yè),用戶分類,研究使用系統(tǒng)的各類人員,了解他們:是如何干自己的工作的?想做什么事情?必須完成什么工作?需要哪些工具的幫助來(lái)完成工作?使用系統(tǒng)的人可能有如下分類:按技能層次分類

40、:外行|初學(xué)者|熟練者|專家;按組織層次分類:行政人員|管理人員|專業(yè)技術(shù)人員|其他辦事員;按職能分類:顧客|職員。,第 49 頁(yè),描述用戶及其任務(wù),對(duì)以上定義的每一類用戶,列出以下問(wèn)題:用戶類型使用系統(tǒng)的目的特征(年齡、受教育程度、限制因素等)關(guān)鍵的成功因素(需求、愛(ài)好、習(xí)慣等) 熟練程度完成本職工作的任務(wù)描述,第 50 頁(yè),設(shè)計(jì)命令層次,(l)研究現(xiàn)行的人-機(jī)交互活動(dòng)的內(nèi)容和準(zhǔn)則。如“輸入時(shí)眼睛不易疲勞”、“

41、必須是窗口和對(duì)話框界面”等。(2)建立一個(gè)初始的命令層;可以有多種形式,如一系列菜單窗口,或一個(gè)菜單條,或一系列圖標(biāo)。(3)細(xì)化命令層。要考慮以下幾個(gè)問(wèn)題:排列命令層次。把使用最頻繁的操作放在前面;按照用戶工作步驟排列。通過(guò)逐步分解,找到整體-部分模式,幫助在命令層中對(duì)操作進(jìn)行分塊。根據(jù)人們短期記憶的“7±2”或“每次記憶3塊/每塊3項(xiàng)”的特點(diǎn),對(duì)菜單寬度與深度進(jìn)行比較,把深度盡量限制在三層之內(nèi)。減少操作步驟。在完

42、成必須任務(wù)的前提下,把單擊、拖動(dòng)和鍵盤操作減到最少。,第 51 頁(yè),設(shè)計(jì)人-機(jī)交互類,首先從組織窗口和部件的用戶界面的設(shè)計(jì)開(kāi)始。通常包括類窗口、條件窗口、檢查窗口、文檔窗口、畫圖窗口等。每個(gè)類包括窗口的菜單條、下拉菜單、彈出菜單的定義。還要定義用于創(chuàng)建菜單、加亮選擇項(xiàng)、引用相應(yīng)響應(yīng)的操作。每個(gè)類還負(fù)責(zé)窗口的實(shí)際顯示。所有有關(guān)物理對(duì)話的處理都封裝在類的內(nèi)部。必要時(shí),還要增加在窗口中畫圖形、圖符的類、在窗口中選擇項(xiàng)目的類、字體控

43、制類、支持剪切和粘貼的類等。,第 52 頁(yè),(三)設(shè)計(jì)任務(wù)管理子系統(tǒng),常見(jiàn)的任務(wù)有事件驅(qū)動(dòng)任務(wù)、時(shí)鐘驅(qū)動(dòng)任務(wù)、優(yōu)先任務(wù)、關(guān)鍵任務(wù)和協(xié)調(diào)任務(wù)等。設(shè)計(jì)任務(wù)管理子系統(tǒng),包括確定和選擇各類任務(wù)并分配執(zhí)行它們。設(shè)計(jì)工作有……,第 53 頁(yè),設(shè)計(jì)工作包括,1.確定事件驅(qū)動(dòng)任務(wù) 與硬件設(shè)備通信的任務(wù)是事件驅(qū)動(dòng)的。2.確定時(shí)鐘驅(qū)動(dòng)任務(wù) 以固定的時(shí)間間隔激發(fā)這類任務(wù)以執(zhí)行某些處理。例如,有些設(shè)備需要周期性地獲得數(shù)據(jù),在這種場(chǎng)合下需要使用

44、時(shí)鐘驅(qū)動(dòng)任務(wù)。3.確定優(yōu)先任務(wù)和關(guān)鍵任務(wù) 根據(jù)處理的優(yōu)先級(jí)別來(lái)選調(diào)執(zhí)行各個(gè)任務(wù)。① 高優(yōu)先級(jí)任務(wù)和② 低優(yōu)先級(jí)任務(wù)。關(guān)鍵任務(wù)是對(duì)系統(tǒng)的成敗起關(guān)鍵作用的處理,這類處理通常都有嚴(yán)格的可靠性要求。4.確定協(xié)調(diào)任務(wù) 當(dāng)有三個(gè)或更多的任務(wù)時(shí),應(yīng)增加一個(gè)任務(wù),用它作為協(xié)調(diào)任務(wù)。5.評(píng)審各個(gè)任務(wù) 必須對(duì)各個(gè)任務(wù)進(jìn)行評(píng)審,確保它能滿足選擇任務(wù)的工程標(biāo)準(zhǔn)。6.定義各個(gè)任務(wù) 工作主要包括:它是什么任務(wù)、如何協(xié)調(diào)工作以及如何通信。,第 54 頁(yè),

45、(四)設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng),數(shù)據(jù)管理子系統(tǒng)的設(shè)計(jì)包括:選擇數(shù)據(jù)管理模式設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng),第 55 頁(yè),選擇數(shù)據(jù)存儲(chǔ)管理模式,不同數(shù)據(jù)存儲(chǔ)管理模式有不同的特點(diǎn),適用范圍也不同,應(yīng)根據(jù)應(yīng)用系統(tǒng)的特點(diǎn)選擇適用的模式。 有三種可選擇的模式:文件管理系統(tǒng)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)OO數(shù)據(jù)庫(kù)管理系統(tǒng),第 56 頁(yè),設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng),設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng),既要設(shè)計(jì)數(shù)據(jù)格式又要設(shè)計(jì)相應(yīng)的服務(wù)。數(shù)據(jù)格式 可以根據(jù)需要采用文件系統(tǒng)、RDBMS

46、或ORDBMS。設(shè)計(jì)相應(yīng)的服務(wù) 也要根據(jù)不同的數(shù)據(jù)存儲(chǔ)格式來(lái)設(shè)計(jì)(包括文件系統(tǒng)、RDBMS或ORDBMS)。,第 57 頁(yè),作業(yè)、思考題,思考: 第11章的第1 ~22題。 謝謝!,第 58 頁(yè),結(jié)束語(yǔ),歡迎參加到中心網(wǎng)站《軟件基礎(chǔ)》課程的學(xué)習(xí)討論中來(lái)。中心網(wǎng)址: http://ctec.xjtu.edu.cn我的E-mail地址: LZQ@ctec.xjtu.edu.cn

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論