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

下載本文檔

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

文檔簡介

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

教學(xué)目標(biāo):面向?qū)ο蠓治龅幕具^程需求陳述建立對象模型建立動態(tài)模型建立功能模型定義服務(wù)

一、面向?qū)ο蠓治龅幕具^程

面向?qū)ο蠓治鯫OA的目標(biāo)是完成對所求解問題的分析,確定系統(tǒng)“做什么”,并建立系統(tǒng)的模型。1.OOA的基本任務(wù)

運用面向?qū)ο蟮姆椒?對問題域和系統(tǒng)責(zé)任進(jìn)行分析和理解,找出描述它們的類和對象,定義其屬性和操作,及其結(jié)構(gòu)、靜態(tài)聯(lián)系和動態(tài)聯(lián)系。

OOA的分析過程獲取用戶基本需求標(biāo)識類和對象定義類的結(jié)構(gòu)和層次表示類(對象)間的關(guān)系為對象行為建模圖10.1OOA分析過程

OOA

法的基本任務(wù)就是要建立3種模型,解決“作什么”的問題。對象模型(信息模型)定義構(gòu)成系統(tǒng)的類和對象,它們的屬性與操作。動態(tài)模型(狀態(tài)模型)描述任何時刻對象的聯(lián)系及其聯(lián)系的改變,即時序。常用狀態(tài)圖,事件追蹤圖描述。功能模型(函數(shù)模型)描述系統(tǒng)內(nèi)部數(shù)據(jù)的傳送處理。顯然,在三大模型中,最重要的是對象模型。2.3個子模型與5個層次

主題層類與對象層結(jié)構(gòu)層屬性層服務(wù)層對于復(fù)雜系統(tǒng)的對象模型通常由5個層次組成:

用戶與開發(fā)者之間進(jìn)行充分交流,常用Usercase來收集和描述用戶的需求。即先標(biāo)識使用該系統(tǒng)的不同的行為者(actor),須有領(lǐng)域?qū)<业拿芮信浜蟻硗瓿伞?/p>

二、需求陳述獲取用戶基本需求標(biāo)識類和對象定義類的結(jié)構(gòu)和層次表示類(對象)間的關(guān)系為對象行為建模

行為者所提出的每個使用場景(或功能)稱為一個用例,所有的用例則構(gòu)成完整的系統(tǒng)需求。

某銀行擬開發(fā)一個自動取款機系統(tǒng),它是一個由自動取款機、中央計算機、分行計算機及柜員終端組成的網(wǎng)絡(luò)系統(tǒng)。ATM和中央計算機由總行投資購買。總行擁有多臺ATM,分別設(shè)在全市各主要街道上。分行負(fù)責(zé)提供分行計算機和柜員終端。柜員終端設(shè)在分行營業(yè)廳及分行下屬的各個儲蓄所內(nèi)。該系統(tǒng)的軟件開發(fā)成本由各個分行分?jǐn)?。實例分?/p>

圖10.2ATM系統(tǒng)

銀行柜員使用柜員終端處理儲戶提交的儲蓄事務(wù)。儲戶可以用現(xiàn)金或支票向自己擁有的某個賬戶內(nèi)存款或開新賬戶。儲戶也可以從自己的賬戶中取款。通常,一個儲戶可能擁有多個賬戶。柜員負(fù)責(zé)把儲戶提交的存款或取款事務(wù)輸進(jìn)柜員終端,接收儲戶交來的現(xiàn)金或支票,或付給儲戶現(xiàn)金。柜員終端與相應(yīng)的分行計算機通信,分行計算機具體處理針對某個賬戶的事務(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ā)的訪問。

當(dāng)用戶把現(xiàn)金兌換卡插入ATM之后,ATM就與用戶交互,以獲取有關(guān)這次事務(wù)的信息,并與中央計算機交換關(guān)于事務(wù)的信息。首先,ATM要求用戶輸入密碼,接下來ATM把從這張卡上讀到的信息以及用戶輸入的密碼傳給中央計算機,請求中央計算機核對這些信息并處理這次事務(wù)。中央計算機根據(jù)卡上的分行代碼確定這次事務(wù)與分行的對應(yīng)關(guān)系,并且委托相應(yīng)的分行計算機驗證用戶密碼。如果用戶輸入的密碼是正確的,ATM就要求用戶選擇事務(wù)類型(取款、查詢等)。當(dāng)用戶選擇取款時,ATM請求用戶輸入取款額。最后,ATM從現(xiàn)金出口吐出現(xiàn)金,并且打印出賬單交給用戶。

三、建立對象模型建立對象模型通常有五個層次:1.確定類—&—對象類和對象是在問題域中客觀存在的,系統(tǒng)分析員的主要任務(wù),就是通過分析找出這些類和對象。在確定系統(tǒng)的用例后,可標(biāo)識類,以及類的屬性和操作。從問題域或用例描述入手,發(fā)現(xiàn)對象。

對象可能的形式有:外部實體、事物、發(fā)生的事件、角色、組織單位、場所、構(gòu)造物等。

識別對象需要對對象的分類加以認(rèn)識,一般對象有幾種形式:(1)與系統(tǒng)相關(guān)的外部物理實體,如打印機、各種物理設(shè)備等。(2)與目標(biāo)系統(tǒng)交互的人員及各種角色。如用戶、程序員等。(3)系統(tǒng)運行中要記憶的事件,如故障錯誤日志的報告等。(4)各種環(huán)境因素、問題等。(5)客觀存在的事物、概念。

ATM系統(tǒng),從陳述中找出下列名詞,可以把它們作為類與對象的初步的候選者:銀行,自動取款機(ATM),系統(tǒng),中央計算機,分行計算機,柜員終端,網(wǎng)絡(luò),總行,分行,軟件,成本,市,街道,營業(yè)廳,儲蓄所,柜員,儲戶,現(xiàn)金,支票,賬戶,事務(wù),現(xiàn)金兌換卡,余額,磁卡,分行代碼,卡號,用戶,副本,信息,密碼,類型,取款額,賬單,訪問。

篩選出正確的類和對象(1)冗余如果兩個類表達(dá)了同樣的信息,則應(yīng)該保留在此問題域中最富于描述力的名稱。

例:以ATM系統(tǒng)為例,儲戶用戶,現(xiàn)金兌換卡磁卡副本

(2)無關(guān)現(xiàn)實世界中存在許多對象,不能把它們都納入到系統(tǒng)中去,僅需要把與本問題密切相關(guān)的類與對象放進(jìn)目標(biāo)系統(tǒng)中。例:以ATM系統(tǒng)中,這個系統(tǒng)并不處理分?jǐn)傑浖_發(fā)成本的問題,而且ATM和柜員終端放置的地點與本軟件的關(guān)系也不大。因此,應(yīng)該去掉候選類“成本”、“市”、“街道”、“營業(yè)廳”和“儲蓄所”。

(3)籠統(tǒng)在需求陳述中常常使用一些籠統(tǒng)的、泛指的名詞,要么系統(tǒng)無須記憶有關(guān)它們的信息,要么在需求陳述中有更明確更具體的名詞對應(yīng)它們所暗示的事務(wù)。例:ATM系統(tǒng)中,“銀行”實際指總行或分行,“訪問”在這里實際指事務(wù),“信息”的具體內(nèi)容在需求陳述中隨后就指明了。總之,在本例中應(yīng)該去掉“銀行”、“網(wǎng)絡(luò)”、“系統(tǒng)”、“軟件”、“信息”、“訪問”等候選類。

(4)屬性在需求陳述中有些名詞實際上描述的是其他對象的屬性,應(yīng)該把這些名詞從候選類與對象中去掉。當(dāng)然,如果某個性質(zhì)具有很強的獨立性,則應(yīng)把它作為類而不是作為屬性。在ATM系統(tǒng)的例子中,“現(xiàn)金”、“支票”、“取款額”、“賬單”、“余額”、“分行代碼”、“卡號”、“密碼”、“類型”等,實際上都應(yīng)該作為屬性對待。

(5)實現(xiàn)在分析階段不應(yīng)該過早地考慮怎樣實現(xiàn)目標(biāo)系統(tǒng)。因此,應(yīng)該去掉僅和實現(xiàn)有關(guān)的候選的類與對象。例:在ATM系統(tǒng)的例子中,應(yīng)該暫時去掉“事務(wù)日志”和“通信鏈路”這兩個類,在設(shè)計或?qū)崿F(xiàn)時再考慮它們。

綜上所述,在ATM系統(tǒng)的例子中,經(jīng)過初步篩選,剩下下列類與對象:ATM、中央計算機、分行計算機、柜員終端、總行、分行、柜員、儲戶、賬戶、事務(wù)、現(xiàn)金兌換卡。

2.確定關(guān)聯(lián)兩個或多個對象之間的相互依賴,相互作用的關(guān)系就是關(guān)聯(lián),分析確定關(guān)聯(lián),要考慮問題域的邊緣情況的復(fù)雜度。用“對象-關(guān)系模型”描述了系統(tǒng)的靜態(tài)結(jié)構(gòu):(1)初步確定關(guān)聯(lián)(2)篩選(3)進(jìn)一步完善。

第1步:收集——①需求陳述中涉及objets的動詞短語:分行計算機維護(hù)賬戶柜員終端與分行計算機通信柜員輸入針對賬戶的事務(wù)ATM與中央計算機交換關(guān)于事務(wù)的信息中央計算機確定事務(wù)與分行的對應(yīng)關(guān)系A(chǔ)TM讀現(xiàn)金兌換卡ATM與用戶交互ATM吐出現(xiàn)金ATM打印賬單系統(tǒng)處理并發(fā)的訪問ATM、中央計算機、分行計算機及柜員終端組成網(wǎng)絡(luò)總行擁有多臺ATMATM設(shè)在主要街道上分行提供分行計算機和柜員終端柜員終端設(shè)在分行營業(yè)廳及儲蓄所內(nèi)分行分?jǐn)傑浖_發(fā)成本儲戶擁有賬戶分行計算機處理針對賬戶的事務(wù)

②需求陳述中隱含的關(guān)聯(lián)總行由各個分行組成系統(tǒng)維護(hù)事務(wù)日志

分行保管賬戶系統(tǒng)提供必要的安全性總行擁有中央計算機儲戶擁有現(xiàn)金兌換卡③根據(jù)問題域知識得出的關(guān)聯(lián)現(xiàn)金兌換卡訪問賬戶分行雇用柜員

第2步:篩選刪除——①與已刪去的object有關(guān)的關(guān)聯(lián)②與問題無關(guān)的或應(yīng)在實現(xiàn)階段考慮的關(guān)聯(lián)

ATM、中央計算機、分行計算機及柜員終端組成網(wǎng)絡(luò)總行擁有多臺ATMATM設(shè)在主要街道上分行提供分行計算機和柜員終端柜員終端設(shè)在分行營業(yè)廳及儲蓄所內(nèi)分行分?jǐn)傑浖_發(fā)成本儲戶擁有賬戶總行由各個分行組成分行計算機處理針對賬戶的事務(wù)分行計算機維護(hù)賬戶柜員終端與分行計算機通信柜員輸入針對賬戶的事務(wù)ATM與中央計算機交換關(guān)于事務(wù)的信息中央計算機確定事務(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)提供必要的安全性總行擁有中央計算機儲戶擁有現(xiàn)金兌換卡分行雇用柜員

③瞬時事件:注意關(guān)聯(lián)描述靜態(tài)結(jié)構(gòu)

ATM、中央計算機、分行計算機及柜員終端組成網(wǎng)絡(luò)總行擁有多臺ATMATM設(shè)在主要街道上分行提供分行計算機和柜員終端柜員終端設(shè)在分行營業(yè)廳及儲蓄所內(nèi)分行分?jǐn)傑浖_發(fā)成本儲戶擁有賬戶總行由各個分行組成分行計算機處理針對賬戶的事務(wù)分行計算機維護(hù)賬戶柜員終端與分行計算機通信柜員輸入針對賬戶的事務(wù)ATM與中央計算機交換關(guān)于事務(wù)的信息中央計算機確定事務(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)提供必要的安全性總行擁有中央計算機儲戶擁有現(xiàn)金兌換卡分行雇用柜員

④三元關(guān)聯(lián):分解為二元關(guān)聯(lián)或限定關(guān)聯(lián)柜員輸入針對賬戶的事務(wù)

=柜員輸入事務(wù)+事務(wù)修改賬戶分行計算機處理針對賬戶的事務(wù)

=分行計算機處理事務(wù)+事務(wù)修改賬戶ATM與中央計算機交換關(guān)于事務(wù)的信息

=ATM與中央計算機通信+在ATM上輸入事務(wù)注:識別鏈屬性——某實體僅用于描述另兩個實體的關(guān)系,且該實體本身不包含屬性。例如“公司付給員工工資”可分解為“公司雇用員工”,附鏈屬性“工資”。

⑤派生關(guān)聯(lián):即可用其它關(guān)聯(lián)定義的冗余關(guān)聯(lián)總行擁有多臺ATM分行提供分行計算機和柜員終端儲戶擁有賬戶總行由各個分行組成分行保管賬戶總行擁有中央計算機現(xiàn)金兌換卡訪問賬戶儲戶擁有現(xiàn)金兌換卡分行雇用柜員

分行計算機處理事務(wù)分行計算機維護(hù)賬戶柜員終端與分行計算機通信柜員輸入事務(wù)事務(wù)修改賬戶ATM與中央計算機通信在ATM上輸入事務(wù)中央計算機確定事務(wù)與分行的對應(yīng)關(guān)系

第3步:完善①正名:分行提供分行計算機和柜員終端

=分行擁有分行計算機+分行擁有柜員終端②分解:適當(dāng)分解前面確定的class-&-objects,使其適用于不同的關(guān)聯(lián)事務(wù)=遠(yuǎn)程事務(wù)+柜員事務(wù)③補充柜員輸入柜員事務(wù)在ATM上輸入遠(yuǎn)程事務(wù)柜員事務(wù)輸進(jìn)柜員終端

遠(yuǎn)程事務(wù)由現(xiàn)金兌換卡授權(quán)④標(biāo)明階數(shù)(可能經(jīng)常變動,不要花太多時間)

圖10.3ATM系統(tǒng)原始的類圖

屬性是對象的性質(zhì),藉助于屬性我們能對類與對象和結(jié)構(gòu)有更深入更具體的認(rèn)識。注意,在分析階段不要用屬性來表示對象間的關(guān)系,使用關(guān)聯(lián)能夠表示兩個對象間的任何關(guān)系,而且把關(guān)系表示得更清晰、更醒目。3.確定屬性

在開發(fā)交互式系統(tǒng)時,動態(tài)模型卻起著很重要的作用。如果收集輸入信息是目標(biāo)系統(tǒng)的一項主要工作,則在開發(fā)這類應(yīng)用系統(tǒng)時建立正確的動態(tài)模型是至關(guān)重要的。有3個步驟:編寫典型交互行為的腳本從腳本中提取出事件排列事件發(fā)生的次序,確定每個對象可能有的狀態(tài)及狀態(tài)間的轉(zhuǎn)換關(guān)系,并用狀態(tài)圖描繪它們四、建立動態(tài)模型

在建立動態(tài)模型的過程中,腳本是指系統(tǒng)在某一執(zhí)行期間內(nèi)出現(xiàn)的一系列事件。腳本描述用戶(或其他外部設(shè)備)與目標(biāo)系統(tǒng)之間的一個或多個典型的交互過程,以便對目標(biāo)系統(tǒng)的行為有更具體的認(rèn)識。編寫腳本的目的,是保證不遺漏重要的交互步驟,它有助于確保整個交互過程的正確性的和清晰性。表10.1和表10.2(見書240頁)分別給出了ATM系統(tǒng)的正常情況腳本和異常情況腳本。1.編寫腳本

例:ATM系統(tǒng)的正常、異常情況腳本ATM系統(tǒng)的正常情況腳本

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

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

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

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

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

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

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

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

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

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

ATM請儲戶插卡

ATM系統(tǒng)的異常情況腳本

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

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

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

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

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

ATM請總行驗證后知此次輸入的密碼正確。

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

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

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

ATM請儲戶插卡

2.設(shè)想用戶界面

用戶界面的美觀程度、方便程度、易學(xué)程度以及效率等,是用戶使用系統(tǒng)時最先感受到的,用戶界面的好壞往往對用戶是否喜歡接受一個系統(tǒng)起著重要的作用。

3.事件追蹤圖(簡化的順序圖)

事件:包括系統(tǒng)與用戶(或外部設(shè)備)交互的所有信號、輸入、輸出、動作等。

事件追蹤圖描述事件序列及事件與對象的關(guān)系,側(cè)重描述系統(tǒng)執(zhí)行過程中的一個特定的“場景(Scenarios)”。場景有時也叫“腳本”,是完成系統(tǒng)某個功能發(fā)生的一個事件序列。即描述多個對象的集體行為。

1、拿起電話受話器 12、打電話者聽見振鈴聲2、電話括號音開始 13、對方接電話3、撥電話號碼數(shù)5 14、接話方停止振鈴4、電話忙音結(jié)束 15、打電話方停止振鈴聲5、撥電話號碼數(shù)5 16、通電話6、撥電話號碼數(shù)5 17、對方掛電話7、撥電話號碼數(shù)1 18、電話切斷8、撥電話號碼數(shù)219、打電話者掛電話……………..11、對方電話開始振鈴 例:打電話的場景

打電話的事件追蹤圖打電話者電話線接電話者拿起接收器撥號音開始撥號(5)忙音結(jié)束撥號(5)撥號(5)撥號(1)撥號(2)撥號(3)撥號(4)撥號(8)鈴聲鈴聲停止電話連通電話斷開打電話者掛機鈴聲受話方回答鈴聲停止電話連通受話方掛機電話斷開打電話者打電話的事件追綜圖

空閑撥號連接鈴響連接斷連忙音快速忙音撥號音超出時間記錄的信息放下話筒放下話筒提起話筒超時超時無效號碼有效號碼對方應(yī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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論