版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第 2 頁,教學(xué)目標(biāo)、內(nèi)容,了解OO方法的實(shí)施過程、方法、步驟,第 3 頁,三、面向?qū)ο蠓治鯫OA,OOA的關(guān)鍵是識別出問題域內(nèi)的對象,并分析它們相互之間的關(guān)系,最終建立起問題域的精確、可理解的正確模型。OOA階段主要是明確問題中存在哪些數(shù)據(jù)實(shí)體,它們的意義是什么,而不考慮對它們的處理。,第 4 頁,基本任務(wù):,運(yùn)用OO方法,對問題域進(jìn)行分析和理解;找出描述問題域所需的對象及類;定義這些對象和類的屬性與服務(wù);定義對
2、象和類之間所形成的結(jié)構(gòu)、靜態(tài)聯(lián)系和動態(tài)聯(lián)系。OOA的最終目的是產(chǎn)生一個(gè)符合用戶需求,并能夠直接反映問題域的 OOA模型及其軟件需求規(guī)格說明。,第 5 頁,1.概述,OOA就是抽取和整理用戶要求并建立問題域精確模型的過程。OOA從分析用戶需求文件開始,發(fā)現(xiàn)和改正其中的二義性和不一致性,補(bǔ)充遺漏的內(nèi)容,使需求陳述更完整、更準(zhǔn)確。分析人員應(yīng)深入理解用戶需求,抽象出目標(biāo)系統(tǒng)的本質(zhì)屬性,并用模型準(zhǔn)確地表示出來。在OO建模中,分析人員
3、要認(rèn)真向領(lǐng)域?qū)<覍W(xué)習(xí)。尤其是建模過程中的分類工作往往有很大的難度,需專家配合。,第 6 頁,2、三個(gè)子模型,模型對象三要素(子模型):對象模型 描述靜態(tài)結(jié)構(gòu)動態(tài)模型 描述交互次序功能模型 描述數(shù)據(jù)變換解決的問題不同,這三個(gè)子模型的重要程度也不同。當(dāng)問題涉及交互作用和時(shí)序(用戶界面、過程控制等),動態(tài)模型是重要的;解決運(yùn)算量很大的問題(科學(xué)計(jì)算等),則涉及功能模型;,第 7 頁,3、五個(gè)層次,對于復(fù)雜問題,對象模型由5
4、個(gè)層次組成:主題層 指導(dǎo)“讀者”理解大型、復(fù)雜模型的機(jī)制;通過劃分主題,把一個(gè)復(fù)雜、大型對象模型分解為幾個(gè)不同的概念模型(心理研究表明:人短期記憶能力一般限于一次記憶5~9個(gè)對象,即7±2原則,OOA從“控制可見性”和“指導(dǎo)讀者注意力”兩方面來體現(xiàn)這條原則)。類-對象層 由類和對象組成的層結(jié)構(gòu)層 對象之間的層次結(jié)構(gòu) 屬性層 對象數(shù)據(jù)的描述服務(wù)層 對象操作的描述,第 8 頁,五個(gè)層次對應(yīng)五個(gè)活動,5個(gè)層次對應(yīng)OOA
5、過程中5個(gè)主要的活動:找出類和對象識別結(jié)構(gòu)識別主題定義屬性定義服務(wù)這5項(xiàng)活動可以交叉開展,不需要嚴(yán)格遵守自頂向下的原則。,第 9 頁,4、需求陳述,需求陳述的內(nèi)容包括:問題范圍、功能和性能需求、應(yīng)用環(huán)境及假設(shè)條件等。需求陳述應(yīng)該闡明“做什么”而不是“怎樣做”。 要求:盡力做到語法正確,應(yīng)慎重選用名詞、動詞、形容詞和同義詞。絕大多數(shù)需求陳述有二義性,不完整,甚至有沖突。這就要求分析人員在分析過程中快速地建立起原
6、型系統(tǒng),以便與用戶更有效地交流。,第 10 頁,自動取款機(jī)的例子,某銀行擬開發(fā)一個(gè)ATM系統(tǒng)。該系統(tǒng)是由ATM、中央計(jì)算機(jī)、分行計(jì)算機(jī)及柜員終端組成的網(wǎng)絡(luò)系統(tǒng)。,第 11 頁,對ATM的需求,ATM和主機(jī)由總行投資購買。分行負(fù)責(zé)提供分行計(jì)算機(jī)和柜員終端。柜員終端設(shè)在分行營業(yè)廳及下屬的各儲蓄所。軟件系統(tǒng)成本由各行分?jǐn)偂?銀行柜員使用柜員終端處理儲戶提交的業(yè)務(wù)(可用現(xiàn)金、支票;可取款;有多帳號)。柜員的工作范圍和職責(zé)包括:輸入儲戶
7、的存、取款信息,接收儲戶交來的現(xiàn)金、支票或給儲戶現(xiàn)金;柜員終端與分行計(jì)算機(jī)通信,分行計(jì)算機(jī)具體處理儲戶事務(wù)等。擁有銀行帳號的儲戶可領(lǐng)取現(xiàn)金兌換卡,使用該卡可以通過ATM訪問自己的賬戶(目前只限于訪問自己帳戶信息,用現(xiàn)金兌換卡在ATM上提取現(xiàn)金;將來可使用ATM辦理轉(zhuǎn)帳、存款等事務(wù))?,F(xiàn)金兌換卡具有一定的使用方法和功能。,第 12 頁,5、建立對象模型,用OOA方法求解問題,首先是建立對象模型,然后再建立另外兩個(gè)模型。建立對象模
8、型的操作過程:確定類和對象確定關(guān)聯(lián)劃分主題確定屬性識別繼承關(guān)系反復(fù)修改,第 13 頁,⑴確定類和對象,類和對象 在問題域中是客觀的存在,要通過分析把它們找出來。確定類和對象的操作步驟是:找出候選的類和對象選擇出正確的類和對象去掉籠統(tǒng)的類確定對象的屬性定義操作實(shí)現(xiàn),第 14 頁,找出候選的類和對象,對象分為5類:可感知的物理實(shí)體,例如飛機(jī)、計(jì)算機(jī)等;人或組織的角色,例如醫(yī)生、計(jì)算機(jī)系等;應(yīng)該記憶的事件
9、,例如訪問、飛行等;多個(gè)對象之間的相互作用,例如購買、結(jié)婚等;需要說明的概念,例如版權(quán)法、保險(xiǎn)政策等。,第 15 頁,非正式分析法,以用自然語言書寫的需求陳述為依據(jù),把陳述中名詞作為類和對象的侯選者,用形容詞作為確定屬性的線索,把動詞作為服務(wù)的侯選者。還應(yīng)根據(jù)領(lǐng)域知識或常識進(jìn)一步把隱含的類和對象提取出來。例如,ATM系統(tǒng)中的“通信鏈路”和“事務(wù)日志”。,第 16 頁,選擇出正確的類和對象,從候選類和對象中篩選出正確的
10、類和對象。篩選標(biāo)準(zhǔn)為:⑴ 冗余 若表達(dá)同樣的信息有多個(gè)類,則僅保留與本問題有密切相關(guān)的,其余則刪除;例如“用戶、儲戶”、“現(xiàn)金兌換卡、磁卡”是相同的兩類信息,所以,只保留“儲戶”和“現(xiàn)金兌換卡”。⑵ 無關(guān) 有些類在其他問題中可能很重要,但與當(dāng)前要解決的問題無關(guān),把它刪去。例如,開發(fā)成本、ATM、柜員終端放置地點(diǎn)與本系統(tǒng)關(guān)系不大,應(yīng)該去掉成本、城市、街道、營業(yè)廳和儲蓄所。⑶ 籠統(tǒng) 應(yīng)去掉籠統(tǒng)、模糊的類,例如,銀行實(shí)際指總行或分行,則
11、可去掉銀行侯選類。⑷ 屬性 有些名詞實(shí)際上描述的是其他對象的屬性,應(yīng)該去掉,例如,“現(xiàn)金”、“支票”、“分行代碼”、“密碼”等都可作為屬性。⑸ 操作 定義操作時(shí)要慎重考慮操作的確切含義。例如,常把電話“撥號”當(dāng)作動詞,因此定義“撥號”為操作。但在開發(fā)電話的自動記帳系統(tǒng)時(shí),“撥號”需有自己的屬性(如日期、時(shí)間等),因此應(yīng)作為類對待。⑹ 實(shí)現(xiàn) 在分析階段不應(yīng)過早考慮如何實(shí)現(xiàn)目標(biāo)系統(tǒng),否則會分散注意力。,第 17 頁,⑵確定關(guān)聯(lián),兩
12、個(gè)或多個(gè)對象之間的相互依賴、相互作用的關(guān)系就是關(guān)聯(lián)。分析確定關(guān)聯(lián),能促使分析員考慮問題域的邊緣情況,有助于發(fā)現(xiàn)那些尚未被發(fā)現(xiàn)的類和對象。操作步驟:初步確定關(guān)聯(lián)篩選進(jìn)一步完善,第 18 頁,初步確定關(guān)聯(lián),在需求陳述中使用的描述性動詞或動詞詞組,通常表示關(guān)聯(lián)關(guān)系。因此,大多數(shù)關(guān)聯(lián)可通過提供需求陳述中的動詞詞組而得到。以ATM系統(tǒng)為例,經(jīng)過分析初步確定出下列關(guān)聯(lián):⑴ 直接提取動詞短語得出的關(guān)聯(lián)儲戶擁有帳號ATM吐出現(xiàn)金⑵
13、 需求陳述中隱含的關(guān)聯(lián)分行保管賬戶儲戶擁有現(xiàn)金兌換卡⑶ 根據(jù)問題域知識得出的關(guān)聯(lián)現(xiàn)金兌換卡訪問賬戶,第 19 頁,篩選,篩選時(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)把本問題域之外的關(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)描述問題瞬間事件域的靜態(tài)結(jié)構(gòu),而不應(yīng)該是一個(gè)瞬時(shí)事件。例如,“ATM讀現(xiàn)金兌換卡”描述了ATM與用戶交互周期中的一個(gè)動作,但不是“ATM”和“現(xiàn)金兌換卡”間的固有關(guān)系。三個(gè)或以上對象之間的關(guān)聯(lián),可分解為二元關(guān)聯(lián)或用詞組描述成限定的關(guān)聯(lián)。例如,“柜員輸入針對賬戶的事務(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 頁,進(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)分解以前確定的類和對象。例如,把“事務(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 頁,ATM原始對象圖,,,,,,,,,總行,分行代碼,組成,分行,賬戶,儲戶,保管,擁有,1+,1+,,現(xiàn)金兌換卡,,擁有,1+,1+,,,,訪問,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 頁,⑶劃分主題,為了降低求解大型復(fù)雜問題的難度,通常把系統(tǒng)進(jìn)一步劃分為幾個(gè)不同的主題。對大系統(tǒng)而言,先要識別出類、對象和關(guān)聯(lián),再劃分主題,即先粗略識別出對象和關(guān)聯(lián),初步劃分主題,再進(jìn)一步研究、修改和精練主題。確定主題方法:按問題域確定主題;按不同主題內(nèi)的對象相互依賴和交互最小的原則來確
18、定主題。例如,對于ATM系統(tǒng),可把它劃分為“總行”、“分行”和“ATM”三個(gè)主題。,第 23 頁,把ATM劃分為三個(gè)主題,,,,,,,,,,總行,分行代碼,組成,分行,賬戶,儲戶,保管,擁有,1+,1+,,現(xiàn)金兌換卡,,擁有,1+,1+,,,,訪問,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 頁,⑷確定屬性,屬性是對對象性質(zhì)的描述。確定屬性分兩個(gè)步驟: 分析和選擇屬性分析屬性:通常,需求陳述中用名詞詞組表示屬性。例如,“光標(biāo)的位置”。確定找出屬性還要借助領(lǐng)域知識和常識分析得到。屬性的確定既與問題域有關(guān),也和目標(biāo)系統(tǒng)的任務(wù)有關(guān)
20、。應(yīng)該只考慮與具體應(yīng)用直接相關(guān)的屬性,不考慮那些超出所要解決問題范圍的屬性。在分析過程中應(yīng)該首先找出最重要的屬性,以后再逐步地把其他屬性增添進(jìn)去。,第 25 頁,選擇屬性,選擇屬性時(shí)有以下幾種常見情況:誤把對象當(dāng)作屬性。例如,在郵政目錄中,“城市”是一個(gè)屬性,而在人口普查中“城市”則作為對象。把限定誤當(dāng)作屬性。正確地使用限定詞可以減少關(guān)聯(lián)的階數(shù)。在ATM例中,“分行帳號”、“雇員號”等都是限定詞,不能作為屬性。把內(nèi)部狀態(tài)當(dāng)作屬
21、性。如果某個(gè)性質(zhì)是對象的非公開的內(nèi)部狀態(tài),則不能作為該對象的屬性。過于細(xì)化。忽略那些對大多數(shù)操作沒有影響的屬性。存在不一致的屬性。如果存在與其他屬性毫不相關(guān)的屬性,則應(yīng)該把該類分解為兩個(gè)不同的類。,第 26 頁,ATM對象模型中的屬性,,,,,,,,,總行,分行代碼,組成,分行,賬戶,儲戶,保管,1+,1+,,現(xiàn)金兌換卡,,擁有,1+,,,,訪問,1+,1+,,遠(yuǎn)程事務(wù),,ATM,,分行計(jì)算機(jī),,,擁有,通信,授權(quán),,
22、輸入,1+,,1+,,1+,修改,,柜員事務(wù),,柜員終端,,,,,1+,,輸入,,中央計(jì)算機(jī),,柜員,,輸入,1+,,通信,1+,,1+,,通信,,雇傭,1+,,擁有,,總行名,,站號,,現(xiàn)有金額付出金額,類型日期金額,,,密碼,,1+,,,,修改,修改,,類型日期金額,,,,姓名地址,擁有,,卡號,,站號,,,,站號,分行名,,擁有,,賬號,,雇員號,,,,,姓名,,分行代碼,,,,,發(fā)放,姓名,,金額限額
23、類型,,,第 27 頁,⑸識別繼承關(guān)系,確定了類中的屬性后,就可以對系統(tǒng)中的類確認(rèn)它們的繼承關(guān)系了。可以使用兩種方式建立繼承關(guān)系:自底向上。抽象出現(xiàn)有類的共同性質(zhì)泛化出父類。例如,ATM中“遠(yuǎn)程事務(wù)”和“柜員事務(wù)”是類似的,可以泛化出父類“事務(wù)”。自頂向下。把現(xiàn)有類細(xì)化成更具體的子類。例如,帶形容詞修飾的名詞詞組往往暗示了一些具體類。但在分析階段應(yīng)該避免過度細(xì)化。,第 28 頁,帶有繼承關(guān)系的ATM對象模型,,,,保管,
24、1+,訪問,,,,,,輸入,1+,擁有,1+,,,總行,分行代碼,,總行名,,ATM,,現(xiàn)有金額付出金額,,事務(wù),類型日期金額,,現(xiàn)金兌換卡,,,密碼,1+,,修改,,儲戶,,姓名地址,擁有,,分行計(jì)算機(jī),,站號,,,分行,,站號,,賬號,分行名,,,雇員號,,,,中央計(jì)算機(jī),,站號,,,分行代碼,,,,柜員事務(wù),,,賬戶,,金額限額類型,,,,輸入站,,,,,,擁有,通信,,通信,,通信,,,擁有,,,擁
25、有,,柜員,,姓名,卡號,,,,,,,雇傭,,,,發(fā)放,,遠(yuǎn)程事務(wù),,,柜員終端,,,,,,,,1+,授權(quán),1+,輸入,組成,1+,1+,,,,,,第 29 頁,⑹反復(fù)修改,建立模型的過程往往是反復(fù)修改的過程,只要發(fā)現(xiàn)模型有缺陷,就必須返回到前期階段進(jìn)行修改。例如,對于上述ATM系統(tǒng),可能做的修改:分解“現(xiàn)金兌換卡”類為“卡權(quán)限”和“現(xiàn)金兌換卡”兩個(gè)類?!笆聞?wù)”由“更新”組成。一個(gè)事務(wù)包含對賬戶的若干次更新。把“分行”與“
26、分行計(jì)算機(jī)”合并。類似的,合并“總行”和“中央計(jì)算機(jī)”。,第 30 頁,四、面向?qū)ο笤O(shè)計(jì)OOD,OOD是用OO觀點(diǎn)建立求解域模型的過程。OOA是通過對象的認(rèn)定,確定問題空間中應(yīng)當(dāng)存在的對象和對象層次結(jié)構(gòu);OOD則是通過對象的認(rèn)定和對象層次結(jié)構(gòu)的組織,確定解空間中應(yīng)存在的對象和對象層次結(jié)構(gòu),并確定外部接口和主要的數(shù)據(jù)結(jié)構(gòu)。OOD也分兩個(gè)步驟:即高層設(shè)計(jì)階段和低層設(shè)計(jì)階段。高層設(shè)計(jì)階段開發(fā)系統(tǒng)的結(jié)構(gòu),構(gòu)造軟件系統(tǒng)的總體模型,包括開發(fā)
27、用戶界面等。低層設(shè)計(jì)集中于類的詳細(xì)設(shè)計(jì),包括對象類的關(guān)聯(lián)、接口形式及實(shí)現(xiàn)服務(wù)的算法等。,第 31 頁,面向?qū)ο笤O(shè)計(jì)的目標(biāo),OOD的主要目標(biāo)是提高生產(chǎn)率、提高質(zhì)量及提高可維護(hù)性。提高生產(chǎn)率 OOD是一種系統(tǒng)設(shè)計(jì)活動,使用OOD最多使整個(gè)生產(chǎn)率提高20%左右。OOD使用重用類機(jī)制來改進(jìn)效率,類庫是這種結(jié)構(gòu)的主要組成部分。提高質(zhì)量 OOA和OOD過程能夠減少開發(fā)后期發(fā)現(xiàn)的錯(cuò)誤,并大大提高系統(tǒng)的質(zhì)量。提高可維護(hù)性 OO方法開發(fā)的系統(tǒng)中
28、,最穩(wěn)定的是類,系統(tǒng)可變的是服務(wù),服務(wù)的復(fù)雜程度也是變化的,外部接口也是最可能變化的部分。為提高可維護(hù)性,就要把系統(tǒng)中穩(wěn)定的部分和易變的部分分離開來。,第 32 頁,1、面向?qū)ο笤O(shè)計(jì)的準(zhǔn)則,在SP軟件設(shè)計(jì)中的基本原理,在OO方法中也適用,這就是:模塊化 對象就是模塊抽象 OO方法支持過程抽象、數(shù)據(jù)抽象、規(guī)格說明抽象和參數(shù)化抽象(如,C++中的“模板”)信息隱藏 通過封裝性實(shí)現(xiàn)弱耦合 對象間有兩類耦合“交互耦合”(消息傳遞)和
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)聚(這是對領(lǐng)域知識的正確抽?。?芍赜?盡量使用已有類;設(shè)計(jì)新類時(shí)考慮可重用。,第 33 頁,2、啟發(fā)規(guī)則,設(shè)計(jì)結(jié)果應(yīng)清晰易懂一般-特殊結(jié)構(gòu)的深度應(yīng)適當(dāng)設(shè)計(jì)簡單的類使用簡單的協(xié)議使用簡單的服務(wù)把設(shè)計(jì)變動減至最小,第 34 頁,設(shè)計(jì)結(jié)果應(yīng)清晰易懂,設(shè)計(jì)結(jié)果清晰、易懂是提高軟件可維
30、護(hù)性和可重用性的重要措施。保證設(shè)計(jì)結(jié)果清晰、易懂的主要因素:用詞一致。使用的名字與它所表示的事物一致,盡量使用人們習(xí)慣的名字。使用己有的協(xié)議。減少消息模式的數(shù)目。避免模糊的定義。一個(gè)類的用途應(yīng)該是有限的,而且應(yīng)該從類名可以較容易地推想出它的用途。,第 35 頁,一般-特殊結(jié)構(gòu)的深度應(yīng)適當(dāng),應(yīng)該使類等級中包含的層次數(shù)適當(dāng)。在一個(gè)中等規(guī)模(約100個(gè)類)的系統(tǒng)中,類等級層次數(shù)應(yīng)保持為7±2。不應(yīng)僅從方便編碼角度出發(fā)
31、隨意創(chuàng)建派生類,應(yīng)該使一般-特殊結(jié)構(gòu)與領(lǐng)域知識或常識保持一致。,第 36 頁,設(shè)計(jì)簡單的類,簡單的類便于開發(fā)、維護(hù)和管理。為此應(yīng)該注意:避免包含過多的屬性。屬性多,功能就復(fù)雜。有明確的定義。每個(gè)類的任務(wù)能用一兩個(gè)簡單句描述。盡量簡化對象之間的合作關(guān)系。不要提供太多服務(wù)。一個(gè)類提供的服務(wù)過多(以不超過7個(gè)公共服務(wù)為易)會導(dǎo)致接口和消息模式復(fù)雜。,第 37 頁,使用簡單的協(xié)議,一般說來,消息中的參數(shù)不要超過3個(gè)。不過,這不是
32、絕對的。但是,經(jīng)驗(yàn)表明,通過復(fù)雜消息相互關(guān)聯(lián)的對象是緊耦合,對一個(gè)對象的修改往往導(dǎo)致其他對象的修改。,第 38 頁,使用簡單的服務(wù),OO設(shè)計(jì)出來的類中的服務(wù)通常都很小,一般只有3~5行源代碼,可以用僅含一個(gè)動詞和一個(gè)賓語的簡單句描述它的功能。若一個(gè)服務(wù)中包含了過多的源代碼,或者語句嵌套層次太多,或使用了復(fù)雜的CASE語句,則應(yīng)該仔細(xì)檢查該服務(wù),設(shè)法分解或簡化它。如果需要在服務(wù)中使用CASE語句,通常應(yīng)考慮用一般-特殊結(jié)構(gòu)
33、代替這個(gè)類的可能性。,第 39 頁,把設(shè)計(jì)變動減至最小,通常,設(shè)計(jì)的質(zhì)量越高,設(shè)計(jì)結(jié)果保持的時(shí)間也越長。即使出現(xiàn)必須修改設(shè)計(jì)的情況,也應(yīng)該使修改的范圍盡可能小。,在設(shè)計(jì)早期階段,變動較大,隨時(shí)間推移,設(shè)計(jì)方案日趨成熟,改動也越來越小。,第 40 頁,3、軟件重用,軟件重用分3個(gè)層次:知識重用(例如,軟件工程知識的重用)方法和標(biāo)準(zhǔn)的重用(例如,OO方法或國家制定的軟件開發(fā)規(guī)范的重用)軟件成分的重用。前兩種重用屬于知識工程研
34、究的范疇,這里只討論軟件成分重用問題。,第 41 頁,軟件成分的重用級別,軟件成分的重用可劃分為3個(gè)級別:⑴代碼重用:可以是下列形式中的任何一種:源代碼剪貼源代碼包含(#include 包含庫中源代碼)繼承 利用類的繼承機(jī)制⑵設(shè)計(jì)結(jié)果重用: 指重用某個(gè)軟件系統(tǒng)的設(shè)計(jì)模型。這類重用有助于把一個(gè)應(yīng)用系統(tǒng)移植到完全不同的軟硬件平臺上。⑶分析結(jié)果重用:指重用某個(gè)系統(tǒng)的分析模型。這類重用適用于用戶需求未改變,但系統(tǒng)體系結(jié)構(gòu)發(fā)生了根
35、本變化的場合。,第 42 頁,4、系統(tǒng)分解,解決復(fù)雜問題采用的普遍策略是“分而治之,各個(gè)擊破”。系統(tǒng)設(shè)計(jì)也采用類似的方法:系統(tǒng)分解。將系統(tǒng)分解得到的結(jié)果,稱為子系統(tǒng)。分解子系統(tǒng)的原則:應(yīng)盡量減少子系統(tǒng)彼此之間的依賴性。OOD模型得到4個(gè)子系統(tǒng)問題域子系統(tǒng)人機(jī)交互子系統(tǒng)任務(wù)管理子系統(tǒng)數(shù)據(jù)管理子系統(tǒng),,,,,人機(jī)交互子系統(tǒng),問題域子系統(tǒng),任務(wù)管理子系統(tǒng),數(shù)據(jù)管理子系統(tǒng),,,,,,主題層類對象層結(jié)構(gòu)層屬性層
36、服務(wù)層,第 43 頁,(一)設(shè)計(jì)問題域子系統(tǒng),在OOA階段,得到有關(guān)問題域的精確模型,為設(shè)計(jì)問題域子系統(tǒng)奠定了基礎(chǔ),同時(shí)建立起求解域的總體框架。在OOD階段,應(yīng)對在OOA中得到的結(jié)果進(jìn)行改進(jìn)和增補(bǔ),主要是根據(jù)需求的變化,對OOA產(chǎn)生的模型中的某些類與對象、結(jié)構(gòu)、屬性及服務(wù)進(jìn)行組合與分解,調(diào)整繼承關(guān)系等等。 問題域子系統(tǒng)設(shè)計(jì)任務(wù)主要包括:調(diào)整需求、重用設(shè)計(jì)(類)、組合問題域相關(guān)的類、增添一般化類來建立類間協(xié)議、調(diào)整繼承層次、改進(jìn)性
37、能與加入較低層的構(gòu)件等。,第 44 頁,,,ATM系統(tǒng)問題域子系統(tǒng)的結(jié)構(gòu),,儲戶,,,界面,ATM,現(xiàn)金兌換卡,事務(wù),ATM站,,,ATM站,中央計(jì)算機(jī),分行計(jì)算機(jī),,分行代碼,,事務(wù),,站號,總行,,,,電話線,,電話線,,,事務(wù),,柜 員,柜員終端,,數(shù)據(jù)庫,賬 戶,儲戶信息,卡權(quán)限,第 45 頁,(二)設(shè)計(jì)人機(jī)交互子系統(tǒng),人–機(jī)交互子系統(tǒng)即用戶界面。它的設(shè)計(jì)結(jié)果,將對用戶情緒和工作效率產(chǎn)生重要影響。若該界
38、面設(shè)計(jì)得好,會對用戶產(chǎn)生吸引力,用戶在使用系統(tǒng)的過程中能夠激發(fā)用戶的創(chuàng)造力,提高工作效率;相反,若該界面設(shè)計(jì)得不好,用戶在使用過程中就會感到不方便、不習(xí)慣,甚至?xí)a(chǎn)生厭煩和惱怒的情緒。由于對人–機(jī)界面的評價(jià),在很大程度上由人的主觀因素決定,因此,使用由原型支持的系統(tǒng)化的設(shè)計(jì)策略,是成功地設(shè)計(jì)人–機(jī)交互子系統(tǒng)的關(guān)鍵。,第 46 頁,設(shè)計(jì)人-機(jī)交互界面的準(zhǔn)則,一致性 使用一致的術(shù)語、一致的步驟、一致的動作。減少步驟 應(yīng)使用戶為做某
39、件事情而需操作的步驟最少(鼠標(biāo)點(diǎn)擊、擊鍵次數(shù))。及時(shí)提供反饋信息提供撤消命令無須記憶易學(xué) 應(yīng)提供聯(lián)機(jī)幫助系統(tǒng)或參考資料。富有吸引力,第 47 頁,設(shè)計(jì)人-機(jī)交互子系統(tǒng)的策略,分類用戶描述用戶設(shè)計(jì)命令層次設(shè)計(jì)人-機(jī)交互類,第 48 頁,用戶分類,研究使用系統(tǒng)的各類人員,了解他們:是如何干自己的工作的?想做什么事情?必須完成什么工作?需要哪些工具的幫助來完成工作?使用系統(tǒng)的人可能有如下分類:按技能層次分類
40、:外行|初學(xué)者|熟練者|專家;按組織層次分類:行政人員|管理人員|專業(yè)技術(shù)人員|其他辦事員;按職能分類:顧客|職員。,第 49 頁,描述用戶及其任務(wù),對以上定義的每一類用戶,列出以下問題:用戶類型使用系統(tǒng)的目的特征(年齡、受教育程度、限制因素等)關(guān)鍵的成功因素(需求、愛好、習(xí)慣等) 熟練程度完成本職工作的任務(wù)描述,第 50 頁,設(shè)計(jì)命令層次,(l)研究現(xiàn)行的人-機(jī)交互活動的內(nèi)容和準(zhǔn)則。如“輸入時(shí)眼睛不易疲勞”、“
41、必須是窗口和對話框界面”等。(2)建立一個(gè)初始的命令層;可以有多種形式,如一系列菜單窗口,或一個(gè)菜單條,或一系列圖標(biāo)。(3)細(xì)化命令層。要考慮以下幾個(gè)問題:排列命令層次。把使用最頻繁的操作放在前面;按照用戶工作步驟排列。通過逐步分解,找到整體-部分模式,幫助在命令層中對操作進(jìn)行分塊。根據(jù)人們短期記憶的“7±2”或“每次記憶3塊/每塊3項(xiàng)”的特點(diǎn),對菜單寬度與深度進(jìn)行比較,把深度盡量限制在三層之內(nèi)。減少操作步驟。在完
42、成必須任務(wù)的前提下,把單擊、拖動和鍵盤操作減到最少。,第 51 頁,設(shè)計(jì)人-機(jī)交互類,首先從組織窗口和部件的用戶界面的設(shè)計(jì)開始。通常包括類窗口、條件窗口、檢查窗口、文檔窗口、畫圖窗口等。每個(gè)類包括窗口的菜單條、下拉菜單、彈出菜單的定義。還要定義用于創(chuàng)建菜單、加亮選擇項(xiàng)、引用相應(yīng)響應(yīng)的操作。每個(gè)類還負(fù)責(zé)窗口的實(shí)際顯示。所有有關(guān)物理對話的處理都封裝在類的內(nèi)部。必要時(shí),還要增加在窗口中畫圖形、圖符的類、在窗口中選擇項(xiàng)目的類、字體控
43、制類、支持剪切和粘貼的類等。,第 52 頁,(三)設(shè)計(jì)任務(wù)管理子系統(tǒng),常見的任務(wù)有事件驅(qū)動任務(wù)、時(shí)鐘驅(qū)動任務(wù)、優(yōu)先任務(wù)、關(guān)鍵任務(wù)和協(xié)調(diào)任務(wù)等。設(shè)計(jì)任務(wù)管理子系統(tǒng),包括確定和選擇各類任務(wù)并分配執(zhí)行它們。設(shè)計(jì)工作有……,第 53 頁,設(shè)計(jì)工作包括,1.確定事件驅(qū)動任務(wù) 與硬件設(shè)備通信的任務(wù)是事件驅(qū)動的。2.確定時(shí)鐘驅(qū)動任務(wù) 以固定的時(shí)間間隔激發(fā)這類任務(wù)以執(zhí)行某些處理。例如,有些設(shè)備需要周期性地獲得數(shù)據(jù),在這種場合下需要使用
44、時(shí)鐘驅(qū)動任務(wù)。3.確定優(yōu)先任務(wù)和關(guān)鍵任務(wù) 根據(jù)處理的優(yōu)先級別來選調(diào)執(zhí)行各個(gè)任務(wù)。① 高優(yōu)先級任務(wù)和② 低優(yōu)先級任務(wù)。關(guān)鍵任務(wù)是對系統(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.評審各個(gè)任務(wù) 必須對各個(gè)任務(wù)進(jìn)行評審,確保它能滿足選擇任務(wù)的工程標(biāo)準(zhǔn)。6.定義各個(gè)任務(wù) 工作主要包括:它是什么任務(wù)、如何協(xié)調(diào)工作以及如何通信。,第 54 頁,
45、(四)設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng),數(shù)據(jù)管理子系統(tǒng)的設(shè)計(jì)包括:選擇數(shù)據(jù)管理模式設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng),第 55 頁,選擇數(shù)據(jù)存儲管理模式,不同數(shù)據(jù)存儲管理模式有不同的特點(diǎn),適用范圍也不同,應(yīng)根據(jù)應(yīng)用系統(tǒng)的特點(diǎn)選擇適用的模式。 有三種可選擇的模式:文件管理系統(tǒng)關(guān)系數(shù)據(jù)庫管理系統(tǒng)OO數(shù)據(jù)庫管理系統(tǒng),第 56 頁,設(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ù)存儲格式來設(shè)計(jì)(包括文件系統(tǒng)、RDBMS或ORDBMS)。,第 57 頁,作業(yè)、思考題,思考: 第11章的第1 ~22題。 謝謝!,第 58 頁,結(jié)束語,歡迎參加到中心網(wǎng)站《軟件基礎(chǔ)》課程的學(xué)習(xí)討論中來。中心網(wǎng)址: http://ctec.xjtu.edu.cn我的E-mail地址: LZQ@ctec.xjtu.edu.cn
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 72407.選文類型教學(xué)目標(biāo)教學(xué)內(nèi)容
- 小班第一學(xué)期教學(xué)目標(biāo)及內(nèi)容
- 小學(xué)習(xí)作教學(xué)目標(biāo)、內(nèi)容以及策略1
- 幼兒園美術(shù)教學(xué)目標(biāo)及參考內(nèi)容
- 幼兒園美術(shù)教學(xué)目標(biāo)及參考內(nèi)容
- 語文教學(xué)目標(biāo)的確定與教學(xué)內(nèi)容的選擇
- 中小學(xué)美術(shù)學(xué)科教學(xué)目標(biāo)及內(nèi)容研究
- 淺析農(nóng)科本科生遙感課程教學(xué)目標(biāo)、教材及教學(xué)內(nèi)容
- 采購的目標(biāo)與內(nèi)容
- 美術(shù)學(xué)科的目標(biāo)與教學(xué)內(nèi)容和方法的選擇
- 劍橋國際少兒英語kb1每課教學(xué)目標(biāo)內(nèi)容
- 檢查目標(biāo)內(nèi)容及要求
- 建設(shè)目標(biāo)、規(guī)模、內(nèi)容、周期
- 高校會計(jì)信息化教學(xué)目標(biāo)與內(nèi)容重構(gòu)
- 《目標(biāo)管理》內(nèi)容摘要
- 考試內(nèi)容與考核目標(biāo)
- 現(xiàn)金管理目標(biāo)和內(nèi)容
- 幼兒園開展幼兒基本體操教學(xué)目標(biāo)內(nèi)容的研究.pdf
- 數(shù)字信號管理目標(biāo)教學(xué)教材程佩青課后題內(nèi)容答案
- 教學(xué)目標(biāo)
評論
0/150
提交評論