軟件工程與項目管理_10_第1頁
軟件工程與項目管理_10_第2頁
軟件工程與項目管理_10_第3頁
軟件工程與項目管理_10_第4頁
軟件工程與項目管理_10_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2012 Inspur GroupInspur Education 第第1010章章 面面向?qū)ο蠓治鱿驅(qū)ο蠓治鯥nspur Education 2012 Inspur Group上講回顧上講回顧u 面向?qū)ο蠓椒▽W概述u 面向?qū)ο蟮母拍顄 面向?qū)ο蠼 對象模型u 動態(tài)模型u 功能模型u 3種模型之間的關(guān)系Inspur Education 2012 Inspur Groupu 面向?qū)ο蠓治龅幕具^程u 需求陳述u 建立對象模型u 建立動態(tài)模型u 建立功能模型u 定義服務u 小結(jié) 本講目標本講目標Inspur Education 2012 Inspur Group10.1 10.1 面向?qū)ο蠓治?/p>

2、的基本過程面向?qū)ο蠓治龅幕具^程u面向?qū)ο蠓治雒嫦驅(qū)ο蠓治?抽取和整理用戶需求并建立問題域精確模型抽取和整理用戶需求并建立問題域精確模型的過程的過程. . 理解理解-用戶、分析員和領域?qū)<矣脩?、分析員和領域?qū)<?表達表達-需求規(guī)格說明書需求規(guī)格說明書(對象模型、(對象模型、動態(tài)模型、功能模型)動態(tài)模型、功能模型) 驗證驗證-二義性,完善性二義性,完善性 對象模型最基本、最重要、最核心。對象模型最基本、最重要、最核心。Inspur Education 2012 Inspur Group10.1 10.1 面向?qū)ο蠓治龅幕具^程面向?qū)ο蠓治龅幕具^程u3 3個子模型個子模型 對所解決問題的描述角度

3、進行劃分:對所解決問題的描述角度進行劃分: 靜態(tài)結(jié)構(gòu)(對象模靜態(tài)結(jié)構(gòu)(對象模型)型) 3 3個子模型個子模型 交互次序(動態(tài)模型)交互次序(動態(tài)模型) 數(shù)據(jù)變換(功能模數(shù)據(jù)變換(功能模型)型) 解決問題不同,三個子模型的重要程度也不解決問題不同,三個子模型的重要程度也不同。同。Inspur Education 2012 Inspur Group10.1 10.1 面向?qū)ο蠓治龅幕具^程面向?qū)ο蠓治龅幕具^程u5 5個層次個層次 復雜問題的對象模型的5個層次五個層次像是對象模型的五個層次像是對象模型的5張水平切片,張水平切片, 一層比一層顯示出對象模型的更多細節(jié)。一層比一層顯示出對象模型的更多細

4、節(jié)。主題指讀者理解大型、主題指讀者理解大型、復雜模型的一種機制復雜模型的一種機制(記憶的(記憶的7+27+2原則)原則)Inspur Education 2012 Inspur Group10.1 10.1 面向?qū)ο蠓治龅幕具^程面向?qū)ο蠓治龅幕具^程u面向?qū)ο蠓治龅倪^程面向?qū)ο蠓治龅倪^程 尋找類與對象 識別結(jié)構(gòu) 識別主題 定義屬性 建立動態(tài)模型 建立功能模型 定義服務 Inspur Education 2012 Inspur Group10.2 10.2 需求陳述需求陳述u需求陳述是需求陳述是闡明闡明“做什么做什么”,而不是,而不是“怎樣做怎樣做”問題范圍功能需求性能需求應用環(huán)境假設條件In

5、spur Education 2012 Inspur Group10.2 10.2 需求陳述需求陳述ATMATM機系統(tǒng)問題描述機系統(tǒng)問題描述n銀行網(wǎng)絡中包含柜員和 ATM,ATM 被共享中心所分享。n每家銀行利用自己的計算機維護自己的賬戶并處理賬戶所屬的交易,這些交易包括存款和取款。n某些銀行擁有自己的柜員站,柜員站直接和該銀行的計算機通信,柜員鍵入賬戶數(shù)據(jù)和交易數(shù)據(jù)。nATM 和中心計算機通信,中心計算機再和銀行清賬。nATM 接受金融卡,要求用戶做些操作后和中心計算機通信,執(zhí)行交易給予現(xiàn)金和打印收據(jù)。n系統(tǒng)要求保留交易記錄和嚴守安全規(guī)定。n能同時存取客戶的相同賬戶。Inspur Educa

6、tion 2012 Inspur Group10.2 10.2 需求陳述需求陳述u自動取款機(自動取款機(ATMATM)系統(tǒng))系統(tǒng) ATMATM系統(tǒng)系統(tǒng)Inspur Education 2012 Inspur Group10.3 10.3 建立對象模型建立對象模型建立對象模型典型的步驟:建立對象模型典型的步驟:u確定對象類和關(guān)聯(lián),對于大型復雜問題還要進一步劃分確定對象類和關(guān)聯(lián),對于大型復雜問題還要進一步劃分出若干個主題;出若干個主題;u給類和關(guān)聯(lián)增添屬性,以進一步描述它們;給類和關(guān)聯(lián)增添屬性,以進一步描述它們;u利用適當?shù)睦^承關(guān)系進一步合并和組織類。利用適當?shù)睦^承關(guān)系進一步合并和組織類。Ins

7、pur Education 2012 Inspur Group10.3 10.3 建立對象模型建立對象模型10.3.1 10.3.1 找出候選類與對象找出候選類與對象1.找出候選的類與對象尋找以下五類客觀事物尋找以下五類客觀事物可感知的物理實體人或組織的角色應該記憶的事件兩個或多個對象的相互作用,通常具有交易或接觸的性質(zhì)需要說明的概念Inspur Education 2012 Inspur Group10.3 10.3 建立對象模型建立對象模型10.3.110.3.1找出候選類與對象找出候選類與對象1.找出候選的類與對象(續(xù))p名詞解析法 從陳述中找出所有名詞,作為類和對象的初步候選者從陳述中

8、找出所有名詞,作為類和對象的初步候選者 銀行,自動取款機(ATM),系統(tǒng),中央計算機, 分行計算機,柜員終端,網(wǎng)絡,總行,分行,軟件, 成本,市,街道,營業(yè)廳,儲蓄所,柜員,儲戶, 現(xiàn)金,支票,賬戶,事物,現(xiàn)金兌換卡,余額, 磁卡,分行代碼,卡號,用戶,副本,信息,密碼, 類型,取款額,賬單,訪問。 通信鏈路通信鏈路 事務日志事務日志Inspur Education 2012 Inspur Group10.3 10.3 建立對象模型建立對象模型10.3.110.3.1找出候選類與對象找出候選類與對象2.篩選出正確的類與對象p篩選時主要依據(jù)下列標準,刪除不正確或不必要的類與對篩選時主要依據(jù)下列標

9、準,刪除不正確或不必要的類與對象象(1)冗余(2)無關(guān)(3)籠統(tǒng)(4)屬性(5)操作(6)實現(xiàn)銀行,自動取款機(ATM),系統(tǒng),中央計算機分行計算機,柜員終端,網(wǎng)絡,總行,分行,軟件,成本,市,街道,營業(yè)廳,儲蓄所,柜員,儲戶, 現(xiàn)金,支票,賬戶,事物,現(xiàn)金兌換卡,余額,磁卡,分行代碼,卡號,用戶,副本,信息,密碼,類型,取款額,賬單,訪問。通信鏈路通信鏈路 事務日志事務日志(儲戶、用戶;現(xiàn)金兌換卡、磁卡和副本)(成本、市、街道、營業(yè)廳和儲蓄所)(銀行、訪問、信息、網(wǎng)絡、系統(tǒng)、軟件等)(現(xiàn)金、支票、取款額、賬單、余額、分行代碼、 卡號、密碼、類型)(事務日志、通信鏈路) Inspur Educ

10、ation 2012 Inspur Group10.3 10.3 建立對象模型建立對象模型10.3.110.3.1找出候選類與對象找出候選類與對象2.篩選出正確的類與對象 ATM、中央計算機、分行計算機、柜員終端、總行、分行、柜員、儲戶、賬戶、事務、現(xiàn)金兌換卡Inspur Education 2012 Inspur Group10.3 10.3 建立對象模型建立對象模型10.3.2 10.3.2 確定關(guān)聯(lián)確定關(guān)聯(lián)1.初步確定關(guān)聯(lián) 需求陳述中使用的描述性動詞或動詞詞組,通 常表示關(guān)聯(lián)關(guān)系。 直接提取動詞短語得出關(guān)聯(lián) 需求陳述中隱含的關(guān)聯(lián) 根據(jù)問題域知識得出的關(guān)聯(lián)2.篩選(根據(jù)下述標準刪除候選關(guān)聯(lián)

11、) 已刪去的類之間的關(guān)聯(lián) 與問題無關(guān)的或在實現(xiàn)階段考慮的關(guān)聯(lián) 瞬時事件 三元關(guān)聯(lián) 派生關(guān)聯(lián) Inspur Education 2012 Inspur Group直接提取動詞短語得出的關(guān)聯(lián)直接提取動詞短語得出的關(guān)聯(lián)ATMATM、中央計算機、分行計算機及柜員終端組成網(wǎng)絡。、中央計算機、分行計算機及柜員終端組成網(wǎng)絡??傂袚碛卸嗯_總行擁有多臺ATMATM。ATMATM設在主要街道上。設在主要街道上。分行提供分行計算機和柜員終端。分行提供分行計算機和柜員終端。柜員終端設在分行營業(yè)廳及儲蓄所內(nèi)。柜員終端設在分行營業(yè)廳及儲蓄所內(nèi)。分行分攤軟件開發(fā)成本。分行分攤軟件開發(fā)成本。儲戶擁有賬戶。儲戶擁有賬戶。分行計

12、算機處理針對賬戶的事務。分行計算機處理針對賬戶的事務。分行計算機維護賬戶。分行計算機維護賬戶。柜員終端與分行計算機通信。柜員終端與分行計算機通信。柜員輸入針對賬戶的事務。柜員輸入針對賬戶的事務。ATMATM與中央計算機交換關(guān)于事務的信息。與中央計算機交換關(guān)于事務的信息。中央計算機確定事務與分行的對應關(guān)系。中央計算機確定事務與分行的對應關(guān)系。ATMATM讀現(xiàn)金兌換卡。讀現(xiàn)金兌換卡。ATMATM與用戶交互。與用戶交互。ATMATM吐出現(xiàn)金。吐出現(xiàn)金。ATMATM打印賬單。打印賬單。系統(tǒng)處理并發(fā)的訪問。系統(tǒng)處理并發(fā)的訪問。隱含的關(guān)聯(lián)隱含的關(guān)聯(lián)總行由各個分行組成。分行保管賬戶??傂袚碛兄醒胗嬎銠C。系統(tǒng)

13、維護事務日志。系統(tǒng)提供必要的安全性。儲戶擁有現(xiàn)金兌換卡。中央計算機與分行通信根據(jù)問題域知識得出的關(guān)聯(lián)根據(jù)問題域知識得出的關(guān)聯(lián)現(xiàn)金兌換卡訪問賬戶。分行雇用柜員。Inspur Education 2012 Inspur Group10.3 10.3 建立對象模型建立對象模型10.3.2 10.3.2 確定關(guān)聯(lián)確定關(guān)聯(lián)3.進一步完善正名、分解、補充、標明重數(shù) ATMATM系統(tǒng)原始的類圖系統(tǒng)原始的類圖Inspur Education 2012 Inspur Group10.3 10.3 建立對象模型建立對象模型10.3.3 10.3.3 劃分主題劃分主題n在概念上把系統(tǒng)包含的內(nèi)容分解成若干個范疇應該按

14、問題領域而不是用功能分解的方法來確定主題不同主題內(nèi)的對象相互間依賴和交互最少的原則 總行(總行和中央計算機) ATM系統(tǒng) 分行(分行、分行計算機、柜員終端、柜員 事務、柜員和賬戶等) ATM(ATM、遠程事務、現(xiàn)金兌換卡和儲戶)Inspur Education 2012 Inspur Group10.3 10.3 建立對象模型建立對象模型10.3.4 10.3.4 確定屬性確定屬性n屬性是對象的性質(zhì)或特征n注意在分析階段不要用屬性來表示對象間的關(guān)系,使用關(guān)聯(lián)能夠表示兩個對象間的任何關(guān)系,而且把關(guān)系表示得更清晰、更醒目。n確定屬性的過程包括分析和選擇兩個步驟。Inspur Education 2

15、012 Inspur Group10.3 10.3 建立對象模型建立對象模型10.3.4 10.3.4 確定屬性確定屬性n選擇在需求陳述中一般用名詞詞組表示屬性需藉助于領域知識和常識才能分析得出屬性屬性對問題域的基本結(jié)構(gòu)影響很小屬性的確定與問題域和目標系統(tǒng)的任務有關(guān)。不要考慮那些超出所要解決的問題范圍的屬性。先找最重要的屬性,再逐漸把其余屬性增添進去。分析階段不考慮那些純粹用于實現(xiàn)的屬性。Inspur Education 2012 Inspur Group10.3 10.3 建立對象模型建立對象模型10.3.4 10.3.4 確定屬性確定屬性n分析(1) 誤把對象當作屬性同一個實體在不同應用領

16、域中,到底應該作為對象還是屬性,需要具體分析才能確定。例如,儲戶/賬戶.(2) 誤把關(guān)聯(lián)類的屬性當作對象的屬性如果某個性質(zhì)依賴于某個關(guān)聯(lián)鏈的存在,則該性質(zhì)是關(guān)聯(lián)類的屬性,不應該把它作為一般對象的屬性。例如,帶寬是體現(xiàn)關(guān)聯(lián)的屬性而不是ATM的Inspur Education 2012 Inspur Group10.3 10.3 建立對象模型建立對象模型10.3.4 10.3.4 確定屬性確定屬性n分析(3) 把限定誤當成屬性正確使用限定詞往往可以減少關(guān)聯(lián)的重數(shù)。如果把某個屬性值固定下來以后能減少關(guān)聯(lián)的重數(shù),則應該考慮把這個屬性重新表述成一個限定詞。在ATM系統(tǒng)的例子中,“分行代碼”、“賬號”、“

17、雇員號”、“站號”等都是限定詞。(4) 誤把內(nèi)部狀態(tài)當成了屬性如果某個性質(zhì)是對象的非公開的內(nèi)部狀態(tài),則應該從對象模型中刪掉這個屬性。Inspur Education 2012 Inspur Group10.3 10.3 建立對象模型建立對象模型10.3.4 10.3.4 確定屬性確定屬性n分析(5) 過于細化在分析階段應該忽略那些對大多數(shù)操作都沒有影響的屬性。(6) 存在不一致的屬性類應該是簡單而且一致的。如果得出一些看起來與其他屬性毫不相關(guān)的屬性,則應該考慮把該類分解成兩個不同的類。e.g. 輪,帆;Inspur Education 2012 Inspur Group10.3 10.3 建立

18、對象模型建立對象模型經(jīng)過篩選之后,得到ATM系統(tǒng)中各個類的屬性,如圖所示。Inspur Education 2012 Inspur Group10.3.5 10.3.5 識別繼承關(guān)系識別繼承關(guān)系建立類間的繼承是為了共享其公共性質(zhì)建立類間的繼承是為了共享其公共性質(zhì)/ /屬性。屬性。 繼承也對類按層次加以組織。繼承也對類按層次加以組織。繼承關(guān)系反映出一定深度的領域知識,需領域?qū)<颐芮欣^承關(guān)系反映出一定深度的領域知識,需領域?qū)<颐芮信浜喜拍芡瓿伞E浜喜拍芡瓿?。繼承前人的成果是提高效率的重要方法,也是復用的基繼承前人的成果是提高效率的重要方法,也是復用的基礎。礎。Inspur Education 20

19、12 Inspur Group兩種建立繼承兩種建立繼承( (即泛化即泛化) )關(guān)系的方式:關(guān)系的方式:(1) (1) 自底向上:自底向上: 抽象出現(xiàn)有類的共同性質(zhì)泛化出父類抽象出現(xiàn)有類的共同性質(zhì)泛化出父類,這個過程實質(zhì)上模擬了人類歸納思維過程。,這個過程實質(zhì)上模擬了人類歸納思維過程。例如,在例如,在ATMATM系統(tǒng)中,系統(tǒng)中,“遠程事務遠程事務”和和“柜員事務柜員事務”是是類似的,可以泛化出父類類似的,可以泛化出父類“事務事務”;類似地,從;類似地,從“ATM”ATM”和和“柜員終端柜員終端”泛化出父類泛化出父類“輸入站輸入站”。(2) (2) 自頂向下:自頂向下: 把現(xiàn)有類細化成更具體的子類

20、或從已把現(xiàn)有類細化成更具體的子類或從已知類派生出一個新類,這模擬了人類的演繹思維過程:知類派生出一個新類,這模擬了人類的演繹思維過程:從一般到特殊。從一般到特殊。帶有形容詞修飾的名詞詞組往往暗示了一些具體類。分帶有形容詞修飾的名詞詞組往往暗示了一些具體類。分析階段應該避免過度細化。析階段應該避免過度細化。Inspur Education 2012 Inspur Group增加了繼承關(guān)系之后的增加了繼承關(guān)系之后的ATMATM對象模型對象模型Inspur Education 2012 Inspur Group10.3.6 10.3.6 反復修改反復修改一次建模過程很難得到完全正確的對象模型。一次建

21、模過程很難得到完全正確的對象模型。有些細化工作有些細化工作( (例如,定義服務例如,定義服務) )是在建立了動態(tài)模型和是在建立了動態(tài)模型和功能模型之后才進行的。功能模型之后才進行的。由于面向?qū)ο蟮母拍詈头栐谡麄€開發(fā)過程中都是一致由于面向?qū)ο蟮母拍詈头栐谡麄€開發(fā)過程中都是一致的,因此遠比使用結(jié)構(gòu)分析、設計技術(shù)更容易實現(xiàn)反復的,因此遠比使用結(jié)構(gòu)分析、設計技術(shù)更容易實現(xiàn)反復修改、逐步完善的過程。修改、逐步完善的過程。建模的步驟并不一定按照前面講述的次序進行。建模的步驟并不一定按照前面講述的次序進行。它給初學者提供了一個指南。它給初學者提供了一個指南。下面以下面以ATMATM系統(tǒng)為例,討論可能做的

22、修改:系統(tǒng)為例,討論可能做的修改:Inspur Education 2012 Inspur Group1. 1. 分解分解“現(xiàn)金兌換卡現(xiàn)金兌換卡”類類“現(xiàn)金兌換卡現(xiàn)金兌換卡”有兩個相對獨立的功能,它既是鑒別儲有兩個相對獨立的功能,它既是鑒別儲戶戶及及使用使用ATMATM的權(quán)限的卡,又是的權(quán)限的卡,又是ATMATM獲得分行代碼和卡號獲得分行代碼和卡號等數(shù)據(jù)的數(shù)據(jù)載體。等數(shù)據(jù)的數(shù)據(jù)載體。因此,把因此,把“現(xiàn)金兌換卡現(xiàn)金兌換卡”類分解為類分解為“卡權(quán)限卡權(quán)限”和和“現(xiàn)金現(xiàn)金兌換卡兌換卡”兩個類,將使每個類的功能更單一:前一個類兩個類,將使每個類的功能更單一:前一個類標志儲戶訪問賬戶的權(quán)限,后一個類是

23、含有分行代碼和標志儲戶訪問賬戶的權(quán)限,后一個類是含有分行代碼和卡號的數(shù)據(jù)載體??ㄌ柕臄?shù)據(jù)載體。多張現(xiàn)金兌換卡可能對應著相同的訪問權(quán)限。多張現(xiàn)金兌換卡可能對應著相同的訪問權(quán)限。Inspur Education 2012 Inspur Group2. “2. “事務事務”由由“更新更新”組成組成一個事務可包含對賬戶的若干次更新。更新指的是對賬一個事務可包含對賬戶的若干次更新。更新指的是對賬戶所做的一個動作戶所做的一個動作( (取款、存款或查詢?nèi)】?、存款或查? )?!案赂隆?” 有有自己的屬性自己的屬性( (類型、金額等類型、金額等) ),應該獨立存在,因此應該,應該獨立存在,因此應該把它作為

24、類。把它作為類。3. 3. 把把“分行分行”與與“分行計算機分行計算機”合并合并區(qū)分區(qū)分“分行分行”與與“分行計算機分行計算機”,對于分析這個系統(tǒng)來,對于分析這個系統(tǒng)來說,并沒有多大意義,為簡單起見,把它們合并。類似說,并沒有多大意義,為簡單起見,把它們合并。類似地,應該合并地,應該合并“總行總行”和和“中央計算機中央計算機”。下圖給出了修改后的下圖給出了修改后的ATMATM對象模型,與修改前比較起來對象模型,與修改前比較起來,它更簡單、更清晰。,它更簡單、更清晰。Inspur Education 2012 Inspur Group修正:修正:總行總行/ /分行的通信,分行的通信,儲戶輸入事務

25、儲戶輸入事務(ATM) (ATM) ATMATM讀卡讀卡擁有擁有/ /通信通信修改后的修改后的ATMATM對象模型對象模型Inspur Education 2012 Inspur Group10.4 10.4 建立動態(tài)模型的方法建立動態(tài)模型的方法對于僅存儲靜態(tài)數(shù)據(jù)的系統(tǒng)對于僅存儲靜態(tài)數(shù)據(jù)的系統(tǒng)( (例如數(shù)據(jù)庫例如數(shù)據(jù)庫) )來說,來說,動態(tài)模型并沒有什么意義。動態(tài)模型并沒有什么意義。但是若開發(fā)但是若開發(fā)交互式系統(tǒng)交互式系統(tǒng)時,動態(tài)模型卻起著很重要的作時,動態(tài)模型卻起著很重要的作用。用。 例如例如: : 收集輸入信息是目標系統(tǒng)的主要工作收集輸入信息是目標系統(tǒng)的主要工作Inspur Educati

26、on 2012 Inspur Group建立動態(tài)模型的三步:建立動態(tài)模型的三步:1)1) 編寫典型交互行為的腳本編寫典型交互行為的腳本, , 不遺漏常見的交互行為不遺漏常見的交互行為。2)2)從腳本中提取出事件,確定觸發(fā)每個事件的動作對象從腳本中提取出事件,確定觸發(fā)每個事件的動作對象以及接受事件的目標對象。以及接受事件的目標對象。3)3)排列事件發(fā)生的次序,確定每個對象可能有的狀態(tài)及排列事件發(fā)生的次序,確定每個對象可能有的狀態(tài)及狀態(tài)間的轉(zhuǎn)換關(guān)系,并用狀態(tài)圖描繪它們。狀態(tài)間的轉(zhuǎn)換關(guān)系,并用狀態(tài)圖描繪它們。最后,比較各個對象的狀態(tài)圖,檢查它們之間的一致性最后,比較各個對象的狀態(tài)圖,檢查它們之間的一

27、致性,確保事件之間的匹配。,確保事件之間的匹配。Inspur Education 2012 Inspur Group10.4.1 10.4.1 編寫腳本編寫腳本腳本腳本: : 是指系統(tǒng)在某一執(zhí)行期間內(nèi)出現(xiàn)的一系列事件是指系統(tǒng)在某一執(zhí)行期間內(nèi)出現(xiàn)的一系列事件。腳本功能腳本功能: : 描述用戶描述用戶( (或其他外部設備或其他外部設備) )與目標系統(tǒng)之間與目標系統(tǒng)之間的一個或多個典型的交互過程。的一個或多個典型的交互過程。編寫腳本的目的編寫腳本的目的: : 是保證不遺漏重要的交互步驟,有助是保證不遺漏重要的交互步驟,有助于確保整個交互過程的正確性的和清晰性。于確保整個交互過程的正確性的和清晰性。編

28、寫腳本內(nèi)容編寫腳本內(nèi)容: : 描寫既可以包括系統(tǒng)中發(fā)生的全部事件描寫既可以包括系統(tǒng)中發(fā)生的全部事件,也可以只包括由某些特定對象觸發(fā)的事件。,也可以只包括由某些特定對象觸發(fā)的事件。對于每個事件,都應該指明觸發(fā)該事件的動作對象對于每個事件,都應該指明觸發(fā)該事件的動作對象( (系系統(tǒng)、用戶或其他事物統(tǒng)、用戶或其他事物) )、接受事件的目標對象以及該事、接受事件的目標對象以及該事件的參數(shù)。件的參數(shù)。編寫步驟編寫步驟: : u編寫正常情況的腳本。編寫正常情況的腳本。u考慮特殊情況,例如輸入或輸出的數(shù)據(jù)為最大值考慮特殊情況,例如輸入或輸出的數(shù)據(jù)為最大值( (或或最小值最小值) )。u考慮出錯情況,例如,輸

29、入的值為非法值或響應失敗考慮出錯情況,例如,輸入的值為非法值或響應失敗。Inspur Education 2012 Inspur GroupATMATM系統(tǒng)正常系統(tǒng)正常和異常腳本和異常腳本Inspur Education 2012 Inspur Group10.4.2 10.4.2 設想用戶界面設想用戶界面u 交互行為可以分為應用邏輯和用戶界面兩部分。交互行為可以分為應用邏輯和用戶界面兩部分。u 不同界面不同界面( (例如,命令行或圖形用戶界面例如,命令行或圖形用戶界面) ),可以實,可以實現(xiàn)同樣的應用邏輯。應用邏輯是內(nèi)在的、本質(zhì)的內(nèi)容,現(xiàn)同樣的應用邏輯。應用邏輯是內(nèi)在的、本質(zhì)的內(nèi)容,用戶界面

30、是外在的表現(xiàn)形式。用戶界面是外在的表現(xiàn)形式。u 動態(tài)模型著重表示應用系統(tǒng)的控制邏輯。動態(tài)模型著重表示應用系統(tǒng)的控制邏輯。u 分析階段不能忽略用戶界面。應確定界面的輪廓分析階段不能忽略用戶界面。應確定界面的輪廓. . u 可以考慮其他方式可以考慮其他方式, , 如語音如語音. . 目的是確保能夠完成目的是確保能夠完成全部必要的信息交換。全部必要的信息交換。Inspur Education 2012 Inspur Group10.4.3 10.4.3 畫事件跟蹤圖畫事件跟蹤圖u事件跟蹤圖有助于畫狀態(tài)圖。事件跟蹤圖有助于畫狀態(tài)圖。u它把事件序列以及事件與對象的關(guān)系,形象、清晰地它把事件序列以及事件與

31、對象的關(guān)系,形象、清晰地表示出來。事件跟蹤圖實質(zhì)上是擴充的腳本,是簡化的表示出來。事件跟蹤圖實質(zhì)上是擴充的腳本,是簡化的UMLUML順序圖。順序圖。u在事件跟蹤圖中,一條豎線代表一個對象,每個事件在事件跟蹤圖中,一條豎線代表一個對象,每個事件用一條水平的箭頭線表示,箭頭方向從事件的發(fā)送對象用一條水平的箭頭線表示,箭頭方向從事件的發(fā)送對象指向接受對象。時間從上向下遞增。指向接受對象。時間從上向下遞增。u下圖是下圖是ATMATM系統(tǒng)正常情況下的事件跟蹤圖。系統(tǒng)正常情況下的事件跟蹤圖。Inspur Education 2012 Inspur Group如何確定事件 通過分析腳本,可從中提取出所有外部

32、事件。 事件包括系統(tǒng)與用戶交互的所有信號、輸入、輸出、中斷、動作等等。 例如,儲戶插入現(xiàn)金兌換卡。 不能遺漏了異常事件和出錯。 某些事件可以按類組合在一起。 例如,“吐出現(xiàn)金”是一個事件類,吐出的具體的現(xiàn)金數(shù) 額用參數(shù)/屬性值表達。 區(qū)分出每類事件的發(fā)送對象和接受對象。Inspur Education 2012 Inspur GroupATMATM系統(tǒng)正常情況下的事件跟蹤圖系統(tǒng)正常情況下的事件跟蹤圖時間對象事件/消息Inspur Education 2012 Inspur Group順序圖(順序圖(Sequence DiagramSequence Diagram)u順序圖也稱為序列圖,它按時間

33、順序顯示對象之間的順序圖也稱為序列圖,它按時間順序顯示對象之間的交互。交互。 Inspur Education 2012 Inspur Group10.4.4 10.4.4 畫狀態(tài)圖畫狀態(tài)圖u 一張狀態(tài)圖描繪一類對象的行為,它確定了由事件一張狀態(tài)圖描繪一類對象的行為,它確定了由事件序列引出的狀態(tài)序列。序列引出的狀態(tài)序列。u 從一張事件跟蹤圖出發(fā)畫狀態(tài)圖時,僅考慮影響對從一張事件跟蹤圖出發(fā)畫狀態(tài)圖時,僅考慮影響對象的一類事件。象的一類事件。u 兩個事件之間的間隔就是一個狀態(tài)兩個事件之間的間隔就是一個狀態(tài)( (也可能不變也可能不變) )。u 從豎線射出的箭頭線,常是對象達到某個狀態(tài)時所從豎線射出的

34、箭頭線,常是對象達到某個狀態(tài)時所做的行為做的行為( (也常是引起另一類對象狀態(tài)轉(zhuǎn)換的事件也常是引起另一類對象狀態(tài)轉(zhuǎn)換的事件) )。u 要把從不同腳本或事件跟蹤圖得到的同一類的狀要把從不同腳本或事件跟蹤圖得到的同一類的狀態(tài)圖合并。態(tài)圖合并。Inspur Education 2012 Inspur Groupu 考慮完正常事件之后再考慮邊界情況和特殊情況考慮完正常事件之后再考慮邊界情況和特殊情況. .如,用戶要求取消該當前事務如,用戶要求取消該當前事務, “, “超時超時”, , 停停電電/ /機。機。不能省略對用戶出錯情況的處理。不能省略對用戶出錯情況的處理。u一張覆蓋了腳本中某類對象的全部事件

35、的狀態(tài)圖仍可一張覆蓋了腳本中某類對象的全部事件的狀態(tài)圖仍可能會一些遺漏的情況。能會一些遺漏的情況。設想各種可能出現(xiàn)的情況,多問幾個設想各種可能出現(xiàn)的情況,多問幾個“如果如果,則,則”的問題是一種測試完整性的方法的問題是一種測試完整性的方法. .盡量給每個狀態(tài)取個有意義的名字。盡量給每個狀態(tài)取個有意義的名字。10.4.4 畫狀態(tài)圖Inspur Education 2012 Inspur Group以以ATMATM系統(tǒng)為例系統(tǒng)為例: : n “ATM”、“柜員終端”、“總行”和“分行”都是主動對象,它們相互發(fā)送事件;n “現(xiàn)金兌換卡”、“事務”和“賬戶”是被動對象,并不發(fā)送事件。n“儲戶”和“柜員

36、”雖然也是動作對象,但是,它們都是系統(tǒng)外部的因素,無須在系統(tǒng)內(nèi)實現(xiàn)它們。Inspur Education 2012 Inspur GroupATMATM的狀態(tài)圖的狀態(tài)圖Inspur Education 2012 Inspur Group圖圖10.10 10.10 總行類的狀態(tài)圖總行類的狀態(tài)圖Inspur Education 2012 Inspur Group10.4.5 10.4.5 審查動態(tài)模型審查動態(tài)模型u 各個類的狀態(tài)圖通過共享事件聯(lián)系各個類的狀態(tài)圖通過共享事件聯(lián)系( (合并合并) )起來,構(gòu)起來,構(gòu)成了系統(tǒng)的動態(tài)模型。成了系統(tǒng)的動態(tài)模型。u 應該檢查系統(tǒng)級的完整性和一致性。應該檢查系統(tǒng)

37、級的完整性和一致性。u 對于沒有前驅(qū)或沒有后繼的狀態(tài)應該著重審查,如對于沒有前驅(qū)或沒有后繼的狀態(tài)應該著重審查,如果這個狀態(tài)既不是交互序列的起點也不是終點,則發(fā)現(xiàn)果這個狀態(tài)既不是交互序列的起點也不是終點,則發(fā)現(xiàn)了一個錯誤。了一個錯誤。Inspur Education 2012 Inspur Groupu 應該審查每個事件,跟蹤它對系統(tǒng)中各個對象所產(chǎn)應該審查每個事件,跟蹤它對系統(tǒng)中各個對象所產(chǎn)生的效果,以保證它們與每個腳本都匹配。生的效果,以保證它們與每個腳本都匹配。例例: ATM: ATM系統(tǒng)系統(tǒng)在總行類的狀態(tài)圖中,事件在總行類的狀態(tài)圖中,事件“無效代碼無效代碼”, , 是由總行發(fā)是由總行發(fā)出的

38、,但是在出的,但是在ATMATM類的狀態(tài)圖中并沒有一個狀態(tài)接受這類的狀態(tài)圖中并沒有一個狀態(tài)接受這個事件。因此,在個事件。因此,在ATMATM類的狀態(tài)圖中應該再補充一個狀類的狀態(tài)圖中應該再補充一個狀態(tài)態(tài)“do/do/顯示分行代碼錯信息顯示分行代碼錯信息”,它接受由前驅(qū)狀態(tài),它接受由前驅(qū)狀態(tài)“do/do/驗證賬戶驗證賬戶”發(fā)出的事件發(fā)出的事件“無效代碼無效代碼”,它的后續(xù),它的后續(xù)狀態(tài)是狀態(tài)是“退卡退卡”。10.4.5 審查動態(tài)模型Inspur Education 2012 Inspur Group10.5 10.5 建立功能模型建立功能模型功能模型功能模型n含義p功能模型描述的是系統(tǒng)內(nèi)值的變化,

39、以及通過值的變化表現(xiàn)出來的系統(tǒng)功能、映射、約束、功能依賴的條件。n內(nèi)容p確定輸入值和輸出值p畫出數(shù)據(jù)流圖 (DFD) 以表示功能之間的依賴關(guān)系p描述各功能p確定約束p詳細說明優(yōu)化標準Inspur Education 2012 Inspur Group功能模型功能模型 ( (續(xù)續(xù)) )n基本概念和圖形表示p處理 p數(shù)據(jù)流 數(shù)據(jù)流的克隆 vs. 數(shù)據(jù)流的分離 p數(shù)據(jù)存儲 數(shù)據(jù)存儲是被動對象 數(shù)據(jù)存儲不產(chǎn)生操作p動作者 動作者是主動對象 動作者位于數(shù)據(jù)流的源點或終點 (即終止符) 動作者產(chǎn)生的操作不包括在 DFD 中而應屬于動態(tài)模型10.5 建立功能模型Inspur Education 2012 I

40、nspur Group功能模型功能模型 ( (續(xù)續(xù)) )n功能模型、對象模型、動態(tài)模型等之間的關(guān)系功能模型、對象模型、動態(tài)模型等之間的關(guān)系p就功能模型而言,對象模型表示了功能模型中的動作者、數(shù)據(jù)流、數(shù)據(jù)存儲的結(jié)構(gòu);動態(tài)模型則表示了功能模型中處理的執(zhí)行次序。p就對象模型而言,功能模型表示了類上的操作和每個操作的變量,因而也表示了類之間的客戶/服務器關(guān)系;動態(tài)模型則表示了每個對象的狀態(tài)和當對象接收事件時/當對象改變狀態(tài)時所 執(zhí)行的操作。p就動態(tài)模型而言,功能模型表示了動態(tài)模型中未定義的動作和活動的定義;對象模型則表示了是什么改變了狀態(tài)/是什么接收了操作。Inspur Education 2012

41、Inspur Group10.6 10.6 定義服務定義服務在確定類中應有的服務時,既要考慮該類實體的常規(guī)行在確定類中應有的服務時,既要考慮該類實體的常規(guī)行為,又要考慮在本系統(tǒng)中特殊需要的服務。為,又要考慮在本系統(tǒng)中特殊需要的服務。1. 1. 常規(guī)行為常規(guī)行為在分析階段可以認為,類中定義的每個屬性都是可以訪在分析階段可以認為,類中定義的每個屬性都是可以訪問的,也就是說,假設在每個類中都定義了讀、寫該類問的,也就是說,假設在每個類中都定義了讀、寫該類每個屬性的操作。但是,通常無需在類圖中顯式表示這每個屬性的操作。但是,通常無需在類圖中顯式表示這些常規(guī)操作。些常規(guī)操作。Inspur Educati

42、on 2012 Inspur Group2. 2. 從事件導出的操作從事件導出的操作狀態(tài)圖中對象接收消息,因此該對象必須有由消息選擇狀態(tài)圖中對象接收消息,因此該對象必須有由消息選擇符指定的操作,它啟動相應的服務。符指定的操作,它啟動相應的服務。在在ATMATM系統(tǒng)中,事件系統(tǒng)中,事件“處理分行事務處理分行事務”啟動分行對象的啟動分行對象的服務服務“更新賬戶更新賬戶”。所啟動的服務常是接受事件的對象。所啟動的服務常是接受事件的對象在相應狀態(tài)的行為。在相應狀態(tài)的行為。Inspur Education 2012 Inspur Group3. 3. 與數(shù)據(jù)流圖中處理框?qū)牟僮髋c數(shù)據(jù)流圖中處理框?qū)牟僮鲾?shù)據(jù)流圖中的每個處理框都與一個對象數(shù)據(jù)流圖中的每個處理框都與一個對象( (也可能是若干也可能是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論