確定屬性過程包括分析和選擇兩個步驟分析Adjective_第1頁
確定屬性過程包括分析和選擇兩個步驟分析Adjective_第2頁
確定屬性過程包括分析和選擇兩個步驟分析Adjective_第3頁
確定屬性過程包括分析和選擇兩個步驟分析Adjective_第4頁
確定屬性過程包括分析和選擇兩個步驟分析Adjective_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 確定屬性的過程包括分析和選擇兩個步驟。確定屬性的過程包括分析和選擇兩個步驟。 1. 分析分析(Adjective and Noun phrase for Attribute Candidate) 在需求陳述中用名詞詞組表示屬性。在需求陳述中用名詞詞組表示屬性。 例如,例如,“汽車的顏色汽車的顏色”或或“光標的位置光標的位置”。往往用形。往往用形 容詞表示可枚舉的具體屬性,例如,容詞表示可枚舉的具體屬性,例如,“紅色的紅色的”、 “打開的打開的”。但是,不可能在需求陳述中找到所有屬。但是,不可能在需求陳述中找到所有屬 性,分析員還必須藉助于領(lǐng)域知識和常識才能分析得性,分析員還必須藉助于領(lǐng)域知識

2、和常識才能分析得 出需要的屬性。出需要的屬性。 10.3.4 確定屬性確定屬性(Identifying attribute) 2. 選擇選擇(Choose Proper Attribute) 刪掉不正確的或不必要的屬性。刪掉不正確的或不必要的屬性。 (1) 誤把對象當作屬性誤把對象當作屬性 例如,在郵政目錄中,例如,在郵政目錄中,“城市城市”是一個屬性,而是一個屬性,而 在人口普查中卻應(yīng)該把在人口普查中卻應(yīng)該把“城市城市”當作對象。當作對象。 (2) 誤把關(guān)聯(lián)類的屬性當作一般對象的屬性誤把關(guān)聯(lián)類的屬性當作一般對象的屬性 如果某個性質(zhì)依賴于某個關(guān)聯(lián)鏈的存在,則該性如果某個性質(zhì)依賴于某個關(guān)聯(lián)鏈的存

3、在,則該性 質(zhì)是關(guān)聯(lián)類的屬性,在分析階段不應(yīng)該把它作為一般質(zhì)是關(guān)聯(lián)類的屬性,在分析階段不應(yīng)該把它作為一般 對象的屬性。對象的屬性。 (3) 把限定誤當成屬性把限定誤當成屬性 在在ATM系統(tǒng)的例子中,系統(tǒng)的例子中,“分行代碼分行代碼”、“賬賬 號號”、“雇員號雇員號”、“站號站號”等都是限定詞。等都是限定詞。 (4) 誤把內(nèi)部狀態(tài)當成了屬性誤把內(nèi)部狀態(tài)當成了屬性 如果某個性質(zhì)是對象的非公開的內(nèi)部狀態(tài),則應(yīng)該從如果某個性質(zhì)是對象的非公開的內(nèi)部狀態(tài),則應(yīng)該從 對象模型中刪掉這個屬性。對象模型中刪掉這個屬性。 (5) 過于細化過于細化 在分析階段應(yīng)該忽略那些對大多數(shù)操作都沒有影響的在分析階段應(yīng)該忽略那

4、些對大多數(shù)操作都沒有影響的 屬性。屬性。 (6) 存在不一致的屬性存在不一致的屬性 類應(yīng)該是簡單而且一致的。如果得出一些看起來與其類應(yīng)該是簡單而且一致的。如果得出一些看起來與其 他屬性毫不相關(guān)的屬性,則應(yīng)該考慮把該類分解成兩他屬性毫不相關(guān)的屬性,則應(yīng)該考慮把該類分解成兩 個不同的類。個不同的類。 10.3.5 識別繼承關(guān)系識別繼承關(guān)系(Recognising Inheritance) 用兩種方式建立繼承用兩種方式建立繼承(即泛化即泛化)關(guān)系:關(guān)系: 利用繼承機制共享公共性質(zhì),并對系統(tǒng)中眾多的利用繼承機制共享公共性質(zhì),并對系統(tǒng)中眾多的 類加以組織。類加以組織。 (1) 自底向上:自底向上: 抽象

5、出現(xiàn)有類的共同性質(zhì)泛化出父類,抽象出現(xiàn)有類的共同性質(zhì)泛化出父類, 這個過程實質(zhì)上模擬了人類歸納思維過程。這個過程實質(zhì)上模擬了人類歸納思維過程。 例如,在例如,在ATM系統(tǒng)中,系統(tǒng)中,“遠程事務(wù)遠程事務(wù)”和和“柜員事務(wù)柜員事務(wù)” 是類似的,可以泛化出父類是類似的,可以泛化出父類“事務(wù)事務(wù)”;類似地,可以;類似地,可以 從從“ATM”和和“柜員終端柜員終端”泛化出父類泛化出父類“輸入站輸入站”。 (2) 自頂向下:自頂向下: 把現(xiàn)有類細化成更具體的子類,這模把現(xiàn)有類細化成更具體的子類,這模 擬了人類的演繹思維過程。擬了人類的演繹思維過程。 利用多重繼承可以提高共享程度,但是同時也增利用多重繼承可以

6、提高共享程度,但是同時也增 加了概念上以及實現(xiàn)時的復(fù)雜程度。使用多重繼承機加了概念上以及實現(xiàn)時的復(fù)雜程度。使用多重繼承機 制時,通常應(yīng)該指定一個主要父類,從它繼承大部分制時,通常應(yīng)該指定一個主要父類,從它繼承大部分 屬性和行為;次要父類只補充一些屬性和行為。屬性和行為;次要父類只補充一些屬性和行為。 圖圖10.5增加了繼承關(guān)系之后的增加了繼承關(guān)系之后的ATM對象模型。對象模型。 10.3.6 反復(fù)修改反復(fù)修改(Repetitious Modification) 1. 分解分解“現(xiàn)金兌換卡現(xiàn)金兌換卡”類類 把把“現(xiàn)金兌換卡現(xiàn)金兌換卡”類分解為類分解為“卡權(quán)限卡權(quán)限”和和“現(xiàn)金現(xiàn)金 兌換卡兌換卡”

7、兩個類,將使每個類的功能更單一:前一個兩個類,將使每個類的功能更單一:前一個 類標志儲戶訪問賬戶的權(quán)限,后一個類是含有分行代類標志儲戶訪問賬戶的權(quán)限,后一個類是含有分行代 碼和卡號的數(shù)據(jù)載體。多張現(xiàn)金兌換卡可能對應(yīng)著相碼和卡號的數(shù)據(jù)載體。多張現(xiàn)金兌換卡可能對應(yīng)著相 同的訪問權(quán)限。同的訪問權(quán)限。 2. “事務(wù)事務(wù)”由由“更新更新”組成組成 通常,一個事務(wù)包含對賬戶的若干次更新,這里所說通常,一個事務(wù)包含對賬戶的若干次更新,這里所說 的更新,指的是對賬戶所做的一個動作的更新,指的是對賬戶所做的一個動作(取款、存款取款、存款 或查詢或查詢)。“更新更新”雖然代表一個動作,但是它有自雖然代表一個動作,

8、但是它有自 己的屬性己的屬性(類型、金額等類型、金額等),應(yīng)該獨立存在,因此應(yīng)該,應(yīng)該獨立存在,因此應(yīng)該 把它作為類。把它作為類。 3. 把把“分行分行”與與“分行計算機分行計算機”合并合并 區(qū)分區(qū)分“分行分行”與與“分行計算機分行計算機”,對于分析這個系統(tǒng),對于分析這個系統(tǒng) 來說,并沒有多大意義,為簡單起見,應(yīng)該把它們合來說,并沒有多大意義,為簡單起見,應(yīng)該把它們合 并。類似地,應(yīng)該合并并。類似地,應(yīng)該合并“總行總行”和和“中央計算機中央計算機”。 10.4 建立動態(tài)模型建立動態(tài)模型(Dynamic Modeling) 第一步是編寫典型交互行為的腳本。第一步是編寫典型交互行為的腳本。 第二步

9、,從腳本中提取出事件,確定觸發(fā)每個事第二步,從腳本中提取出事件,確定觸發(fā)每個事 件的動作對象以及接受事件的目標對象。件的動作對象以及接受事件的目標對象。 第三步,排列事件發(fā)生的次序,確定每個對象可第三步,排列事件發(fā)生的次序,確定每個對象可 能有的狀態(tài)及狀態(tài)間的轉(zhuǎn)換關(guān)系,并用狀態(tài)圖描繪它能有的狀態(tài)及狀態(tài)間的轉(zhuǎn)換關(guān)系,并用狀態(tài)圖描繪它 們。們。 最后,比較各個對象的狀態(tài)圖,檢查它們之間的最后,比較各個對象的狀態(tài)圖,檢查它們之間的 一致性,確保事件之間的匹配。一致性,確保事件之間的匹配。 本節(jié)結(jié)合本節(jié)結(jié)合ATM系統(tǒng)的實例,進一步講述建立動系統(tǒng)的實例,進一步講述建立動 態(tài)模型的方法。態(tài)模型的方法。 在

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

11、異常情況腳本(240 頁)。頁)。 10.4.1 編寫腳本編寫腳本(Writing Script) 大多數(shù)交互行為都可以分為應(yīng)用邏輯和用戶界面大多數(shù)交互行為都可以分為應(yīng)用邏輯和用戶界面 兩部分。兩部分。 采用不同界面采用不同界面(例如,命令行或圖形用戶界面例如,命令行或圖形用戶界面), 可以實現(xiàn)同樣的程序邏輯。應(yīng)用邏輯是內(nèi)在的、本質(zhì)可以實現(xiàn)同樣的程序邏輯。應(yīng)用邏輯是內(nèi)在的、本質(zhì) 的內(nèi)容,用戶界面是外在的表現(xiàn)形式。的內(nèi)容,用戶界面是外在的表現(xiàn)形式。 動態(tài)模型著重表示應(yīng)用系統(tǒng)的控制邏輯。動態(tài)模型著重表示應(yīng)用系統(tǒng)的控制邏輯。 10.4.2 設(shè)想用戶界面設(shè)想用戶界面(User Interface De

12、sign) 圖圖10.7 ATM的界面格式的界面格式 完整、正確的腳本為建立動態(tài)模型奠定了必要的完整、正確的腳本為建立動態(tài)模型奠定了必要的 基礎(chǔ)。但是,用自然語言書寫的腳本往往不夠簡明,基礎(chǔ)。但是,用自然語言書寫的腳本往往不夠簡明, 而且有時在閱讀時會有二義性。為了有助于建立動態(tài)而且有時在閱讀時會有二義性。為了有助于建立動態(tài) 模型,通常在畫狀態(tài)圖之前先畫出事件跟蹤圖。為此模型,通常在畫狀態(tài)圖之前先畫出事件跟蹤圖。為此 首先需要進一步明確事件及事件與對象的關(guān)系。首先需要進一步明確事件及事件與對象的關(guān)系。 10.4.3 畫事件跟蹤圖畫事件跟蹤圖(Drawing Events Track Diagr

13、am) 1. 確定事件確定事件(Identifying events) 應(yīng)該仔細分析每個腳本,以便從中提取出所有外部事應(yīng)該仔細分析每個腳本,以便從中提取出所有外部事 件。件。 2. 畫出事件跟蹤圖畫出事件跟蹤圖(Drawing Events Track Diagram) 從腳本中提取出各類事件并確定了每類事件的發(fā)從腳本中提取出各類事件并確定了每類事件的發(fā) 送對象和接受對象之后,就可以用事件跟蹤圖把事件送對象和接受對象之后,就可以用事件跟蹤圖把事件 序列以及事件與對象的關(guān)系,形象、清晰地表示出來。序列以及事件與對象的關(guān)系,形象、清晰地表示出來。 事件跟蹤圖是簡化的事件跟蹤圖是簡化的UML順序圖。

14、順序圖。 在事件跟蹤圖中,一條豎線代表一個對象,每個在事件跟蹤圖中,一條豎線代表一個對象,每個 事件用一條水平的箭頭線表示,箭頭方向從事件的發(fā)事件用一條水平的箭頭線表示,箭頭方向從事件的發(fā) 送對象指向接受對象。時間從上向下遞增。圖中僅用送對象指向接受對象。時間從上向下遞增。圖中僅用 箭頭線在垂直方向上的相對位置表示事件發(fā)生的先后。箭頭線在垂直方向上的相對位置表示事件發(fā)生的先后。 狀態(tài)圖描繪事件與對象狀態(tài)的關(guān)系。當對象接受狀態(tài)圖描繪事件與對象狀態(tài)的關(guān)系。當對象接受 了一個事件以后,引起的狀態(tài)改變稱為了一個事件以后,引起的狀態(tài)改變稱為“轉(zhuǎn)換轉(zhuǎn)換”。 用一張狀態(tài)圖描繪一類對象的行為,它確定了由用一張

15、狀態(tài)圖描繪一類對象的行為,它確定了由 事件序列引出的狀態(tài)序列。僅考慮具有重要交互行為事件序列引出的狀態(tài)序列。僅考慮具有重要交互行為 的那些類。的那些類。 考慮事件跟蹤圖中指向某條豎線的那些箭頭線。考慮事件跟蹤圖中指向某條豎線的那些箭頭線。 把這些事件作為狀態(tài)圖中的有向邊把這些事件作為狀態(tài)圖中的有向邊(即箭頭線即箭頭線),邊上,邊上 標以事件名。兩個事件之間的間隔就是一個狀態(tài)。標以事件名。兩個事件之間的間隔就是一個狀態(tài)。 從事件跟蹤圖中的豎線射出的箭頭線,是這條豎從事件跟蹤圖中的豎線射出的箭頭線,是這條豎 線代表的對象達到某個狀態(tài)時所做的行為線代表的對象達到某個狀態(tài)時所做的行為(往往是引往往是引

16、 起另一類對象狀態(tài)轉(zhuǎn)換的事件起另一類對象狀態(tài)轉(zhuǎn)換的事件)。 10.4.4 畫狀態(tài)圖畫狀態(tài)圖(Drawing States Diagram) 考慮完正常事件之后再考慮邊界情況和特殊情況,考慮完正常事件之后再考慮邊界情況和特殊情況, 出錯處理是不能省略的。出錯處理是不能省略的。 “ATM”、“總行總行”和和“分行分行”的狀態(tài)圖。的狀態(tài)圖。 這些狀態(tài)圖都是簡化的,尤其對異常情況和出錯這些狀態(tài)圖都是簡化的,尤其對異常情況和出錯 情況的考慮是相當粗略的。情況的考慮是相當粗略的。 圖圖10.10 總行類的狀態(tài)圖總行類的狀態(tài)圖 圖圖10.11 分行類的狀態(tài)圖分行類的狀態(tài)圖 各個類的狀態(tài)圖通過共享事件合并起來

17、,構(gòu)成了各個類的狀態(tài)圖通過共享事件合并起來,構(gòu)成了 系統(tǒng)的動態(tài)模型。系統(tǒng)的動態(tài)模型。 在完成了每個具有重要交互行為的類的狀態(tài)圖之在完成了每個具有重要交互行為的類的狀態(tài)圖之 后,應(yīng)該檢查系統(tǒng)級的完整性和一致性。后,應(yīng)該檢查系統(tǒng)級的完整性和一致性。 10.4.5 審查動態(tài)模型審查動態(tài)模型(Review Dynamic Model) 功能模型表明了系統(tǒng)中數(shù)據(jù)之間的依賴關(guān)系,以功能模型表明了系統(tǒng)中數(shù)據(jù)之間的依賴關(guān)系,以 及有關(guān)的數(shù)據(jù)處理功能,它由一組數(shù)據(jù)流圖及有關(guān)的數(shù)據(jù)處理功能,它由一組數(shù)據(jù)流圖(DFD)組組 成。其中的處理功能可以用成。其中的處理功能可以用IPO圖圖(或表或表)、偽碼等多、偽碼等多

18、種方式進一步描述。種方式進一步描述。 通常在建立了對象模型和動態(tài)模型之后再建立功通常在建立了對象模型和動態(tài)模型之后再建立功 能模型。能模型。 10.5 建立功能模型建立功能模型(Function Modeling) 1. 常規(guī)行為常規(guī)行為( Actions) 在分析階段可以認為,類中定義的每個屬性都是在分析階段可以認為,類中定義的每個屬性都是 可以訪問的,也就是說,假設(shè)在每個類中都定義了讀、可以訪問的,也就是說,假設(shè)在每個類中都定義了讀、 寫該類每個屬性的操作。但是,通常無需在類圖中顯寫該類每個屬性的操作。但是,通常無需在類圖中顯 式表示這些常規(guī)操作。式表示這些常規(guī)操作。 10.6 定義服務(wù)定

19、義服務(wù)(Definition Service) 2. 從事件導(dǎo)出的操作從事件導(dǎo)出的操作(Operations) 狀態(tài)圖中發(fā)往對象的事件也就是該對象接收到的狀態(tài)圖中發(fā)往對象的事件也就是該對象接收到的 消息,因此該對象必須有由消息選擇符指定的操作,消息,因此該對象必須有由消息選擇符指定的操作, 這個操作修改對象狀態(tài)這個操作修改對象狀態(tài)(即屬性值即屬性值)并啟動相應(yīng)的服務(wù)。并啟動相應(yīng)的服務(wù)。 例如,在例如,在ATM系統(tǒng)中,發(fā)往系統(tǒng)中,發(fā)往ATM對象的事件對象的事件 “中止中止”,啟動該對象的服務(wù),啟動該對象的服務(wù)“打印賬單打印賬單”; 發(fā)行分行的事件發(fā)行分行的事件“請分行驗卡請分行驗卡”啟動該對象的

20、服啟動該對象的服 務(wù)務(wù)“驗證卡號驗證卡號”; 而事件而事件“處理分行事務(wù)處理分行事務(wù)”啟動分行對象的服務(wù)啟動分行對象的服務(wù) “更新賬戶更新賬戶”。 所啟動的這些服務(wù)通常就是接受事件的對象在相所啟動的這些服務(wù)通常就是接受事件的對象在相 應(yīng)狀態(tài)的行為。應(yīng)狀態(tài)的行為。 3. 與數(shù)據(jù)流圖中處理框?qū)?yīng)的操作與數(shù)據(jù)流圖中處理框?qū)?yīng)的操作(Process of DFD) 數(shù)據(jù)流圖中的每個處理框都與一個對象數(shù)據(jù)流圖中的每個處理框都與一個對象(也可能也可能 是若干個對象是若干個對象)上的操作相對應(yīng)。上的操作相對應(yīng)。 應(yīng)該仔細對照狀態(tài)圖和數(shù)據(jù)流圖,以便更正確地應(yīng)該仔細對照狀態(tài)圖和數(shù)據(jù)流圖,以便更正確地 確定對象應(yīng)

21、該提供的服務(wù)。確定對象應(yīng)該提供的服務(wù)。 例如,在例如,在ATM系統(tǒng)中,從狀態(tài)圖上看出分行對系統(tǒng)中,從狀態(tài)圖上看出分行對 象應(yīng)該提供象應(yīng)該提供“驗證卡號驗證卡號”服務(wù),而在數(shù)據(jù)流圖上與之服務(wù),而在數(shù)據(jù)流圖上與之 對應(yīng)的處理框是對應(yīng)的處理框是“驗卡驗卡”,根據(jù)實際應(yīng)該完成的功能,根據(jù)實際應(yīng)該完成的功能 看,該對象提供的這個服務(wù)應(yīng)該是看,該對象提供的這個服務(wù)應(yīng)該是“驗卡驗卡”。 4. 利用繼承減少冗余操作利用繼承減少冗余操作(Inheritance Operations) 應(yīng)該盡量利用繼承機制以減少所需定義的服務(wù)數(shù)應(yīng)該盡量利用繼承機制以減少所需定義的服務(wù)數(shù) 目。只要不違背領(lǐng)域知識和常識,就盡量抽取出相似目。只要不違背領(lǐng)域知識和常識,就盡量抽取出相似 類的公共屬性和操作,以建立這些類的新父類,并在類的公共屬性和操作,以建立這些類的新父類,并在 類等級的不同層次中正確地定義各個服務(wù)。類等級的不同層次中正確地定義各個服務(wù)。 10-1 用面向?qū)ο蠓椒ǚ治鲅芯勘緯?/p>

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論