軟件工程 第10章 面向?qū)ο蠓治鯻第1頁
軟件工程 第10章 面向?qū)ο蠓治鯻第2頁
軟件工程 第10章 面向?qū)ο蠓治鯻第3頁
軟件工程 第10章 面向?qū)ο蠓治鯻第4頁
軟件工程 第10章 面向?qū)ο蠓治鯻第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第十章面向?qū)ο蠓治?/p>

(Object-OrientedAnalysis)§1.基本過程:RequirementstatementRapidprototypeModels其中model有三個:①Objectmodel:最重要,開發(fā)任何系統(tǒng)都需要;②Dynamicmodel:對于開發(fā)交互式系統(tǒng)(interactivesystem)很重要;③Functionmodel:對于開發(fā)大運(yùn)算量問題(如科學(xué)計算、編譯系統(tǒng)等)很重要。.主題結(jié)構(gòu)1+1+屬性方法§1.基本過程Objectmodel由五個層次組成(Coad&Yourdon,1991),相當(dāng)于把五張透明膠片(transparencies)疊在一起,每一層顯示更多的細(xì)節(jié)。類與對象.主題是指導(dǎo)讀者(包括系統(tǒng)分析員、軟件設(shè)計人員、領(lǐng)域?qū)<摇⒐芾砣藛T、用戶等)理解大型、復(fù)雜模型的一種機(jī)制。也就是說,通過劃分主題把一個大型、復(fù)雜的對象模型分解成幾個不同的概念范疇。它可以從一個相當(dāng)高的層次描述總體模型,并對讀者的注意力加以指導(dǎo)。.5個層次對應(yīng)著在面向?qū)ο蠓治鲞^程中建立對象模型的5項(xiàng)主要活動:找出類與對象,識別結(jié)構(gòu),識別主題,定義屬性,定義服務(wù)“5項(xiàng)活動”,而不是5個步驟,這5項(xiàng)工作完全沒有必要順序完成,也無須徹底完成一項(xiàng)工作以后再開始另外一項(xiàng)工作。.面向?qū)ο蠓治龃篌w上按照下列順序進(jìn)行:尋找類與對象,識別結(jié)構(gòu),識別主題,定義屬性,建立動態(tài)模型,建立功能模型,定義服務(wù)。分析不可能嚴(yán)格地按照預(yù)定順序進(jìn)行,大型、復(fù)雜系統(tǒng)的模型需要反復(fù)構(gòu)造多遍才能建成。通常,先構(gòu)造出模型的子集,然后再逐漸擴(kuò)充,直到完全、充分地理解了整個問題,才能最終把模型建立起來。.§2.需求陳述第三章中已介紹過,需求陳述的內(nèi)容包括:問題范圍、功能需求、性能要求、應(yīng)用環(huán)境、假設(shè)條件等等。陳述方式可繁可簡,說明What而不是

How。例:教材p.226-227,對AutomatedTellerMachine(ATM)的需求陳述。.自動取款機(jī)(ATM)系統(tǒng):某銀行擬開發(fā)一個自動取款機(jī)系統(tǒng),它是一個由自動取款機(jī)、中央計算機(jī)、分行計算機(jī)及柜員終端組成的網(wǎng)絡(luò)系統(tǒng)。ATM和中央計算機(jī)由總行投資購買??傂袚碛卸嗯_ATM,分別設(shè)在全市各主要街道上。分行負(fù)責(zé)提供分行計算機(jī)和柜員終端。柜員終端設(shè)在分行營業(yè)廳及分行下屬的各個儲蓄所內(nèi)。該系統(tǒng)的軟件開發(fā)成本由各個分行分?jǐn)偂?

ATM系統(tǒng).銀行柜員使用柜員終端處理儲戶提交的儲蓄事務(wù)。一個儲戶可能擁有多個賬戶。儲戶可以用現(xiàn)金或支票向自己擁有的某個賬戶內(nèi)存款或開新賬戶。儲戶也可以從自己的賬戶中取款。柜員負(fù)責(zé)把儲戶提交的存款或取款事務(wù)輸進(jìn)柜員終端,接收儲戶交來的現(xiàn)金或支票,或付給儲戶現(xiàn)金。柜員終端與相應(yīng)的分行計算機(jī)通信,分行計算機(jī)具體處理針對某個賬戶的事務(wù)并且維護(hù)賬戶。.擁有銀行賬戶的儲戶有權(quán)申請領(lǐng)取現(xiàn)金兌換卡。使用現(xiàn)金兌換卡可以通過ATM訪問自己的賬戶。目前僅限于用現(xiàn)金兌換卡在ATM上提取現(xiàn)金(即取款),或查詢有關(guān)自己賬戶的信息(例如,某個指定賬戶上的余額)。將來可能還要求使用ATM辦理轉(zhuǎn)賬、存款等事務(wù)。.所謂現(xiàn)金兌換卡就是一張?zhí)刂频拇趴?,上面有分行代碼和卡號。分行代碼惟一標(biāo)識總行下屬的一個分行,卡號確定了這張卡可以訪問哪些賬戶。通常,一張卡可以訪問儲戶的若干個賬戶,但是不一定能訪問這個儲戶的全部賬戶。每張現(xiàn)金兌換卡僅屬于一個儲戶所有,但是,同一張卡可能有多個副本,因此,必須考慮同時在若干臺ATM上使用同樣的現(xiàn)金兌換卡的可能性。也就是說,系統(tǒng)應(yīng)該能夠處理并發(fā)的訪問。.ATM要求用戶輸入密碼ATM卡上信息用戶密碼傳給中央計算機(jī)中央計算機(jī)委托相應(yīng)的分行計算機(jī)驗(yàn)證用戶密碼。如果用戶輸入的密碼是正確的,ATM就要求用戶選擇事務(wù)類型(取款、查詢等)。當(dāng)用戶選擇取款時,ATM請求用戶輸入取款額。最后,ATM從現(xiàn)金出口吐出現(xiàn)金,并且打印出賬單交給用戶?,F(xiàn)金兌換卡插入ATM之后,ATM就與用戶交互,以獲取有關(guān)這次事務(wù)的信息,并與中央計算機(jī)交換關(guān)于事務(wù)的信息。.§3.建立ObjectModel1、確定Class-&-Object:第1步:列出所有候選對象(candidates),它們可能是物理實(shí)體人或組織要處理的事件對象間的活動抽象概念等等非正式分析:從需求陳述中挑出名詞Class-&-Object的候選

形容詞確定Attribute的線索動詞作Method的候選.§3.建立ObjectModel第2步:去粗取精例:從ATM需求分析中提出的名詞集合銀行、ATM、系統(tǒng)、中央計算機(jī)、分行計算機(jī)、柜員終端、網(wǎng)絡(luò)、總行、分行、軟件、成本、市、街道、營業(yè)廳、儲蓄所、柜員、儲戶、現(xiàn)金、支票、賬戶、事務(wù)、現(xiàn)金兌換卡、余額、磁卡、分行代碼、卡號、用戶、副本、信息、密碼、類型、取款額、賬單、訪問篩選時依下列標(biāo)準(zhǔn)刪除:、通信鏈路、事務(wù)日志冗余無關(guān)籠統(tǒng)屬性操作既可為名詞又可為動詞的詞,應(yīng)慎重考慮。實(shí)現(xiàn).§3.建立ObjectModel2、確定關(guān)聯(lián)結(jié)構(gòu)層第1步:收集——①需求陳述中涉及objets的動詞短語:分行計算機(jī)維護(hù)賬戶柜員終端與分行計算機(jī)通信柜員輸入針對賬戶的事務(wù)ATM與中央計算機(jī)交換關(guān)于事務(wù)的信息中央計算機(jī)確定事務(wù)與分行的對應(yīng)關(guān)系A(chǔ)TM讀現(xiàn)金兌換卡ATM與用戶交互ATM吐出現(xiàn)金ATM打印賬單系統(tǒng)處理并發(fā)的訪問ATM、中央計算機(jī)、分行計算機(jī)及柜員終端組成網(wǎng)絡(luò)總行擁有多臺ATMATM設(shè)在主要街道上分行提供分行計算機(jī)和柜員終端柜員終端設(shè)在分行營業(yè)廳及儲蓄所內(nèi)分行分?jǐn)傑浖_發(fā)成本儲戶擁有賬戶分行計算機(jī)處理針對賬戶的事務(wù).②需求陳述中隱含的關(guān)聯(lián)總行由各個分行組成系統(tǒng)維護(hù)事務(wù)日志分行保管賬戶系統(tǒng)提供必要的安全性總行擁有中央計算機(jī)儲戶擁有現(xiàn)金兌換卡§3.建立ObjectModel③根據(jù)問題域知識得出的關(guān)聯(lián)現(xiàn)金兌換卡訪問賬戶分行雇用柜員.第2步:篩選刪除——§3.建立ObjectModel①與已刪去的object有關(guān)的關(guān)聯(lián)②與問題無關(guān)的或應(yīng)在實(shí)現(xiàn)階段考慮的關(guān)聯(lián)

ATM、中央計算機(jī)、分行計算機(jī)及柜員終端組成網(wǎng)絡(luò)總行擁有多臺ATMATM設(shè)在主要街道上分行提供分行計算機(jī)和柜員終端柜員終端設(shè)在分行營業(yè)廳及儲蓄所內(nèi)分行分?jǐn)傑浖_發(fā)成本儲戶擁有賬戶總行由各個分行組成分行計算機(jī)處理針對賬戶的事務(wù)分行計算機(jī)維護(hù)賬戶柜員終端與分行計算機(jī)通信柜員輸入針對賬戶的事務(wù)ATM與中央計算機(jī)交換關(guān)于事務(wù)的信息中央計算機(jī)確定事務(wù)與分行的對應(yīng)關(guān)系A(chǔ)TM讀現(xiàn)金兌換卡ATM與用戶交互ATM吐出現(xiàn)金ATM打印賬單系統(tǒng)處理并發(fā)的訪問現(xiàn)金兌換卡訪問賬戶系統(tǒng)維護(hù)事務(wù)日志分行保管賬戶系統(tǒng)提供必要的安全性總行擁有中央計算機(jī)儲戶擁有現(xiàn)金兌換卡分行雇用柜員.§3.建立ObjectModel③瞬時事件:注意關(guān)聯(lián)描述靜態(tài)結(jié)構(gòu)

ATM、中央計算機(jī)、分行計算機(jī)及柜員終端組成網(wǎng)絡(luò)總行擁有多臺ATMATM設(shè)在主要街道上分行提供分行計算機(jī)和柜員終端柜員終端設(shè)在分行營業(yè)廳及儲蓄所內(nèi)分行分?jǐn)傑浖_發(fā)成本儲戶擁有賬戶總行由各個分行組成分行計算機(jī)處理針對賬戶的事務(wù)分行計算機(jī)維護(hù)賬戶柜員終端與分行計算機(jī)通信柜員輸入針對賬戶的事務(wù)ATM與中央計算機(jī)交換關(guān)于事務(wù)的信息中央計算機(jī)確定事務(wù)與分行的對應(yīng)關(guān)系A(chǔ)TM讀現(xiàn)金兌換卡ATM與用戶交互ATM吐出現(xiàn)金ATM打印賬單系統(tǒng)處理并發(fā)的訪問現(xiàn)金兌換卡訪問賬戶系統(tǒng)維護(hù)事務(wù)日志分行保管賬戶系統(tǒng)提供必要的安全性總行擁有中央計算機(jī)儲戶擁有現(xiàn)金兌換卡分行雇用柜員.§3.建立ObjectModel④三元關(guān)聯(lián):分解為二元關(guān)聯(lián)或限定關(guān)聯(lián)柜員輸入針對賬戶的事務(wù)=柜員輸入事務(wù)+事務(wù)修改賬戶分行計算機(jī)處理針對賬戶的事務(wù)=分行計算機(jī)處理事務(wù)+事務(wù)修改賬戶ATM與中央計算機(jī)交換關(guān)于事務(wù)的信息=ATM與中央計算機(jī)通信+在ATM上輸入事務(wù)注:識別鏈屬性——某實(shí)體僅用于描述另兩個實(shí)體的關(guān)系,且該實(shí)體本身不包含屬性。例如“公司付給員工工資”可分解為“公司雇用員工”,附鏈屬性“工資”。.§3.建立ObjectModel⑤派生關(guān)聯(lián):即可用其它關(guān)聯(lián)定義的冗余關(guān)聯(lián)總行擁有多臺ATM分行提供分行計算機(jī)和柜員終端儲戶擁有賬戶總行由各個分行組成分行保管賬戶總行擁有中央計算機(jī)現(xiàn)金兌換卡訪問賬戶儲戶擁有現(xiàn)金兌換卡分行雇用柜員

分行計算機(jī)處理事務(wù)分行計算機(jī)維護(hù)賬戶柜員終端與分行計算機(jī)通信柜員輸入事務(wù)事務(wù)修改賬戶ATM與中央計算機(jī)通信在ATM上輸入事務(wù)中央計算機(jī)確定事務(wù)與分行的對應(yīng)關(guān)系.§3.建立ObjectModel第3步:完善①正名:分行提供分行計算機(jī)和柜員終端=分行擁有分行計算機(jī)+分行擁有柜員終端②分解:適當(dāng)分解前面確定的class-&-objects,使其適用于不同的關(guān)聯(lián)事務(wù)=遠(yuǎn)程事務(wù)+柜員事務(wù)③補(bǔ)充柜員輸入柜員事務(wù)在ATM上輸入遠(yuǎn)程事務(wù)柜員事務(wù)輸進(jìn)柜員終端遠(yuǎn)程事務(wù)由現(xiàn)金兌換卡授權(quán)④標(biāo)明階數(shù)(可能經(jīng)常變動,不要花太多時間).中央計算機(jī)分行計算機(jī)現(xiàn)金兌換卡總行分行擁有分行代碼組成通信1+通信擁有柜員終端柜員事務(wù)分行通信1+1+擁有1+雇用輸入1+1+輸入賬戶修改1+儲戶保管1+擁有1+遠(yuǎn)程事務(wù)ATM擁有1+1+1+訪問1+1+修改授權(quán)1+輸入1+.§3.建立ObjectModel1233、劃分主題

注意:①按問題域而不是按功能分解

②主題間的依賴和交互盡可能少1.總行2.分行3.ATM中央計算機(jī)分行計算機(jī)現(xiàn)金兌換卡總行分行擁有分行代碼組成通信1+通信擁有柜員終端柜員事務(wù)分行通信1+1+擁有1+雇用輸入1+1+輸入賬戶修改1+儲戶保管1+擁有1+遠(yuǎn)程事務(wù)ATM擁有1+1+1+訪問1+1+修改授權(quán)1+輸入1+.§3.建立ObjectModel4、確立屬性注意:①Attribute不表示objects之間的關(guān)系,只表示其本質(zhì)性質(zhì),不要與鏈屬性、限定詞混淆。②暫不考慮純用于實(shí)現(xiàn)的attributes(即單純的內(nèi)部狀態(tài))。③需求陳述中與已確定的objects有關(guān)的名詞、形容詞可能是選擇的線索。ATM對象模型中的屬性見圖10.4..5、識別繼承關(guān)系及其它修改①Bottom-up:將具有相同屬性的classes向上歸納出父類。②Top-down:將現(xiàn)有classes向下細(xì)化出子類(但分析階段避免過度細(xì)化).§3.建立ObjectModel③若某class中具有幾個獨(dú)立的功能,則考慮分為幾個classes。④對于某class中具有自己特有屬性的部分,可考慮將之列為獨(dú)立存在的class,且是原有class的組成。⑤合并無須分別考慮的若干classes。..歸納合并分解.§4.建立DynamicModel1、編寫腳本(scenarios),描述event序列:事件應(yīng)該指明:觸發(fā)事件的動作對象、接收者、參數(shù)基本類型:①正常情況腳本;②特殊情況腳本(輸入\輸出取邊界值時);③異常情況腳本(應(yīng)允許用戶異常中止或取消一個操作).§4.建立DynamicModel例:ATM系統(tǒng)的正常、異常情況腳本(p.240)ATM系統(tǒng)的正常情況腳本

ATM請儲戶插卡;儲戶插入一張現(xiàn)金兌換卡。

ATM接受該卡并讀它上面的分行代碼和卡號。

ATM要求儲戶輸入密碼;儲戶輸入自己的密碼“1234”等數(shù)字。

ATM請求總行驗(yàn)證卡號和密碼;總行要求“39”號分行核對儲戶密碼,然后通知ATM說這張卡有效。

ATM要求儲戶選擇事務(wù)類型(取款、轉(zhuǎn)帳、查詢等);儲戶選擇“取款”。

ATM要求儲戶輸入取款額;儲戶輸入“880”。

ATM確認(rèn)取款額在預(yù)先規(guī)定的限額內(nèi),然后要求總行處理這個事務(wù);總行把請求轉(zhuǎn)給分行,該分行成功地處理完這項(xiàng)事務(wù)并返回該帳戶的新余額。

ATM吐出現(xiàn)金并請儲戶拿走這些現(xiàn)金;儲戶拿走現(xiàn)金。

ATM問儲戶是否繼續(xù)這項(xiàng)事務(wù);儲戶回答“不”。

ATM打印帳單,退出現(xiàn)金兌換卡,請儲戶拿走它們;儲戶取走帳單和卡。

ATM請儲戶插卡.§4.建立DynamicModelATM系統(tǒng)的異常情況腳本

ATM請儲戶插卡;儲戶插入一張現(xiàn)金兌換卡。

ATM接受該卡并讀它上面的分行代碼和卡號。

ATM要求儲戶輸入密碼;儲戶誤輸入“8888”。

ATM請求總行驗(yàn)證卡號和密碼;總行要求“39”號分行核對儲戶密碼,然后通知ATM拒絕這張卡。

ATM顯示“密碼錯”,并請儲戶重新輸入密碼;儲戶輸入“1234”;

ATM請總行驗(yàn)證后知此次輸入的密碼正確。

ATM要求儲戶選擇事務(wù)類型(取款、轉(zhuǎn)帳、查詢等);儲戶選擇“取款”。

ATM要求儲戶輸入取款額;儲戶改變主意不想取款了,敲“取消”鍵。

ATM退出現(xiàn)金兌換卡,請儲戶拿走它;儲戶取走他的卡。

ATM請儲戶插卡.§4.建立DynamicModel2、設(shè)想用戶界面(userinterface)rapidprototype..3、畫事件跟蹤圖(eventtracingdiagram,ETD)§4.建立DynamicModelEvent觸發(fā)者接收者時間線每個腳本對應(yīng)一張圖豎線代表類-&-對象事件.§4.建立DynamicModel例:ATM系統(tǒng)的正常情況腳本的ETD要求輸入取款額插卡要求密碼輸入密碼請求驗(yàn)證帳戶請求分行驗(yàn)證帳戶帳戶有效帳戶有效要求事務(wù)類型輸入類型輸入取款額請求處理事務(wù)請求處理分行事務(wù)分行事務(wù)成功事務(wù)成功吐出現(xiàn)金請求拿走現(xiàn)金拿走現(xiàn)金請求繼續(xù)此事務(wù)結(jié)束印帳單退卡請求拿走卡拿走卡顯示主屏幕儲戶ATM總行分行.4、畫狀態(tài)圖(eventflowdiagram,EFD)§4.建立DynamicModel從ETD出發(fā):Event2Event1ActionStatusClass-&-Object每個具有交互行為的class-&-object對應(yīng)一張圖。Event1Statusdo:ActionEvent2僅考慮事件跟蹤圖中指向某條豎線的那些箭頭把這些事件作為狀態(tài)圖中的有向邊標(biāo)上事件名,兩個事件間的間隔就是一個狀態(tài)從事件跟蹤圖中當(dāng)前豎線射出的箭頭線是所做的行為.§4.建立DynamicModel例:ATM類的的EFD插卡(可讀)主屏do:顯示主屏幕

等待網(wǎng)絡(luò)響應(yīng)中斷do:顯示取消信息事務(wù)成功帳戶有效do:要求密碼do:驗(yàn)證帳戶do:要求類型不可讀的卡do:顯示不可讀卡信息退卡do:退卡;請求拿走卡取消do:顯示取消信息do:要求金額結(jié)束

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論