




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、信息系統(tǒng)分析、設(shè)計與開發(fā)方法,面向?qū)ο蟮南到y(tǒng)分析,4.1 面向?qū)ο蟮幕具^程 4.2 面向?qū)ο蠓治龅奶攸c 4.3 需求分析陳述 4.4 面向?qū)ο蟮南到y(tǒng)分析活動 4.5 建立對象模型 4.6 建立動態(tài)模型 4.7 建立功能模型 4.8 案例,目錄,4.1.1 概述,面向?qū)ο蠓治?Object-Oriented Analysis,簡稱OOA),就是運用面向?qū)ο蟮姆椒ㄟM行系統(tǒng)分析,強調(diào)運用面向?qū)ο蠓椒?,對問題域和系統(tǒng)職責進行分析和理解,找出描述問題域及系統(tǒng)職責所需的對象,定義對象的屬性、服務(wù)以及它們之間的關(guān)系,目標是建立一個符合問題域、符合用戶需求的OOA模型,4.1 面向?qū)ο蠓治龅幕具^程,4.1
2、 面向?qū)ο蠓治龅幕具^程,問題域(problem domain)就是被開發(fā)系統(tǒng)的應(yīng)用領(lǐng)域,即軟件系統(tǒng)所能處理的現(xiàn)實世界中的業(yè)務(wù)范圍。 系統(tǒng)責任(system responsibilities)即所開發(fā)的軟件系統(tǒng)應(yīng)該具備的職能,4.1.1 概述,4.1 面向?qū)ο蠓治龅幕具^程,OOA的主要任務(wù)就是 對問題域和系統(tǒng)責任進行分析和理解; 找出跟問題域與系統(tǒng)責任有關(guān)的類及對象; 定義這些對象的屬性和操作,以及它們之間所形成的結(jié)構(gòu),靜態(tài)聯(lián)系和動態(tài)聯(lián)系。 簡言之,確定系統(tǒng)分析中的對象,描述對象的靜態(tài)特征和動態(tài)特征,找出對象間的各種關(guān)系以及對象的行為約束,是OOA的主要任務(wù),4.1.1 概述,4.1 面向?qū)?/p>
3、象分析的基本過程,OOA和OOD的職責劃分 OOA針對現(xiàn)實世界中的問題域和系統(tǒng)職責,用面向?qū)ο蟮姆椒ń⑵餙OA模型,作為分析的結(jié)果。OOA模型不考慮與系統(tǒng)具體實現(xiàn)相關(guān)的因素,從而使OOA模型獨立于具體的實現(xiàn)環(huán)境。 OOD則是針對系統(tǒng)的具體實現(xiàn),運用OO方法進行系統(tǒng)設(shè)計。其中包括兩方面的工作: 1.根據(jù)實現(xiàn)條件對OOA模型做某些必要的調(diào)整和修改,使其成為OOD模型的一部分; 2.針對具體實現(xiàn)條件,建立人機界面、數(shù)據(jù)存儲和控制驅(qū)動等模型。這些部分與OOA采用相同的概念與表示法,4.1.1 概述,4.1 面向?qū)ο蠓治龅幕具^程,用OO方法開發(fā)軟件,通常建立3種模型: 對象模型(基本):描述系統(tǒng)靜態(tài)
4、數(shù)據(jù)結(jié)構(gòu)。 動態(tài)模型(輔助):描述系統(tǒng)的交互次序和行為過程。 功能模型(輔助):描述數(shù)據(jù)變換結(jié)果。 三個模型的側(cè)重點 對象模型對于任何系統(tǒng)都是最基礎(chǔ)、最重要和最核心的,是必需的。 動態(tài)模型對于設(shè)計交互行為和時序過程(如用戶界面及過程控制)的系統(tǒng)是重要的。 功能模型對于解決運算量很大的問題(如科學(xué)和工程計算)是重要的,4.1.1 概述,關(guān)系層,特征層,對象層,基本模型(類圖,模型組織 包圖,輔助模型 交互圖 活動圖 狀態(tài)圖 數(shù)據(jù)流圖,OOA模型,OOA過程 建立基本模型 描述系統(tǒng)的基本特征,類圖 建立動態(tài)模型(可選) 描述系統(tǒng)的動態(tài)行為特征,交互圖,活動圖和狀態(tài)圖 建立功能模型(可選) 描述數(shù)據(jù)
5、變換結(jié)果,數(shù)據(jù)流圖 建立模型組織 包圖,系統(tǒng),子系統(tǒng) 寫詳細說明 注意:模型的建立不需要按順序,不分先后,4.1.2 面向?qū)ο蟮幕具^程,4.1 面向?qū)ο蠓治龅幕具^程,OOA具體過程,4.1.2 面向?qū)ο蟮幕具^程,4.1 面向?qū)ο蠓治龅幕具^程,OOA過程模型,原型開發(fā) *結(jié)合其它活動反復(fù)進行,劃分主題,建立包圖 (輔助模型,可選,建立交互圖、狀態(tài)圖、活動圖(動態(tài)模型,可選,對模型中的成分進行規(guī)范的定義和文字說明,可集中進行,也可分散在各個活動中,實施OOA過程的幾點建議: 1. 把對系統(tǒng)需求的捕獲和描述放在分析工作的開始。 2. 建立基本模型的三個活動,可根據(jù)需要隨時從一個活動切換到另一
6、個; 3. 建立動態(tài)模型可以安排到建立對象模型之后,也可以同時進行; 4. 建立詳細說明的活動應(yīng)結(jié)合在其它活動中分散進行,最后做一次集中的審查和補充; 5. 原型開發(fā)可反復(fù)進行,開發(fā)早期原型主要用于證實用戶需求; 6. 分析較小的系統(tǒng)時,可以省略分包的活動,在分析大中型系統(tǒng)時,也可按需求先分包,再根據(jù)包分工,4.1.2 面向?qū)ο蟮幕具^程,4.1 面向?qū)ο蠓治龅幕具^程,OOA過程由5項主要活動組成: (1)識別類和對象 (2)確定結(jié)構(gòu) (3)確定主題 (4)定義屬性 (5)定義服務(wù) 根據(jù)這些主要活動,OOA模型也由5個層次組成,4.1.2 面向?qū)ο蟮幕具^程,4.1 面向?qū)ο蠓治龅幕具^程,
7、4.1.2 面向?qū)ο蟮幕具^程,4.1 面向?qū)ο蠓治龅幕具^程,本節(jié)要掌握的內(nèi)容: OOA模型的三個子模型和五個層次,OOA的主要原則 (1)抽象原則 (2)分類原則 (3)聚合原則 (4)關(guān)聯(lián)原則 (5)消息通信原則 (6)粒度控制原則,4.2 面向?qū)ο蠓治龅奶攸c,OOA的主要優(yōu)點(1) (1)OOA是在人類思維組織的基本方法框架下定義并表達 需求,直觀性好。 (2)便于分析人員集中精力于問題空間的理解和分析, 有利于超越系統(tǒng)的復(fù)雜性困難。 (3)把屬性和有關(guān)服務(wù)方法作為對象整體來看待,比較 自然。 (4)使用對象間的最小相關(guān)性來分析和說明。這有利于 實行封裝性原則,并使OOA適應(yīng)開發(fā)需求的
8、變化,也 有利于制作和提取可復(fù)用的部件,4.2 面向?qū)ο蠓治龅奶攸c,OOA的主要優(yōu)點(2) (5)通過對共性的顯式表示而提高表達能力。抽 象層次與后續(xù)OOP結(jié)合,編程思路清晰,特 別是有利于提高程序效率。 (6)分析法與設(shè)計法的一致性,密切配合建造一 個問題域模型。 (7)對系統(tǒng)族的適用性和可擴展性強,4.2 面向?qū)ο蠓治龅奶攸c,1)寫什么:需求陳述的內(nèi)容包括:問題范圍,功能需求,性能需求,應(yīng)用環(huán)境及約束條件等。簡單地講,需求陳述應(yīng)該闡明系統(tǒng)“做什么” ,而不管“怎樣做”。 2)怎么寫:文字描述要做到語法正確,內(nèi)容完整,條理清晰。準確使用名詞、動詞、形容詞和同義詞。 3)需求陳述作用:需求陳述
9、僅僅是理解用戶需求的出發(fā)點,千萬不可將此陳述當成完整、準確、有效和一成不變的文檔,4.3 需求分析陳述,書寫要點,需求陳述舉例,下圖所示為自動取款機(ATM)系統(tǒng),ATM系統(tǒng),自動取款機(ATM)系統(tǒng)需求陳述: 某銀行擬開發(fā)一個自動取款機系統(tǒng),它是一個由自動取款機、中央計算機、分行計算機及柜員終端組成的網(wǎng)絡(luò)系統(tǒng)。ATM和中央計算機由總行投資購買??傂袚碛卸嗯_ATM,分別設(shè)在全市各主要街道上。分行負責提供分行計算機和柜員終端。柜員終端設(shè)在分行營業(yè)廳及分行下屬的各個儲蓄所內(nèi)。該系統(tǒng)的軟件開發(fā)成本由各個分行分攤,銀行柜員使用柜員終端處理儲戶提交的儲蓄事務(wù)。儲戶可以用現(xiàn)金或支票向自己擁有的某個賬戶內(nèi)存
10、款或開新賬戶。儲戶也可以從自己的賬戶中取款。通常,一個儲戶可能擁有多個賬戶。柜員負責把儲戶提交的存款或取款事務(wù)輸進柜員終端,接收儲戶交來的現(xiàn)金或支票,或付給儲戶現(xiàn)金。柜員終端與相應(yīng)的分行計算機通信,分行計算機具體處理針對某個賬戶的事務(wù)并且維護賬戶,擁有銀行賬戶的儲戶有權(quán)申請領(lǐng)取現(xiàn)金兌換卡。使用現(xiàn)金兌換卡可以通過ATM訪問自己的賬戶。目前僅限于用現(xiàn)金兌換卡在ATM上提取現(xiàn)金(即取款),或查詢有關(guān)自己賬戶的信息(例如,某個指定賬戶上的余額)。將來可能還要求使用ATM辦理轉(zhuǎn)賬、存款等事務(wù)。 所謂現(xiàn)金兌換卡就是一張?zhí)刂频拇趴?,上面有分行代碼和卡號。分行代碼惟一標識總行下屬的一個分行,卡號確定了這張卡可
11、以訪問哪些賬戶。通常,一張卡可以訪問儲戶的若干個賬戶,但是不一定能訪問這個儲戶的全部賬戶。每張現(xiàn)金兌換卡僅屬于一個儲戶所有,但是,同一張卡可能有多個副本,因此,必須考慮同時在若干臺ATM上使用同樣的現(xiàn)金兌換卡的可能性。也就是說,系統(tǒng)應(yīng)該能夠處理并發(fā)的訪問,當用戶把現(xiàn)金兌換卡插入ATM之后,ATM就與用戶交互,以獲取有關(guān)這次事務(wù)的信息,并與中央計算機交換關(guān)于事務(wù)的信息。首先,ATM要求用戶輸入密碼,接下來ATM把從這張卡上讀到的信息以及用戶輸入的密碼傳給中央計算機,請求中央計算機核對這些信息并處理這次事務(wù)。中央計算機根據(jù)卡上的分行代碼確定這次事務(wù)與分行的對應(yīng)關(guān)系,并且委托相應(yīng)的分行計算機驗證用戶
12、密碼。如果用戶輸入的密碼是正確的,ATM就要求用戶選擇事務(wù)類型(取款、查詢等)。當用戶選擇取款時,ATM請求用戶輸入取款額。最后,ATM從現(xiàn)金出口吐出現(xiàn)金,并且打印出賬單交給用戶,基本思想: 首先找出與問題域相關(guān)的所有候選類與對象,然后從候選類與對象中篩選掉不正確的或不必要的,4.4.1 獲取對象和類,4.4 面向?qū)ο蟮南到y(tǒng)分析活動,1、先找出候選的類與對象 尋找類與對象的一般方法: 對象是對問題域中相關(guān)實體或事物的抽象,既可以是客觀實體,也可以是抽象概念。一般劃分5類: 1) 可感知的物理實體:如飛機、汽車、書、房屋等等。 2) 人或組織:例醫(yī)生、教師、雇主、計算機系、財務(wù)處等。 3) 應(yīng)該
13、記憶的事件:如飛行、演出、訪問、交通事故等。 4) 兩個或多個對象的相互作用:如購買、納稅、結(jié)婚等。 5) 需要說明的概念:如政策、保險政策、版權(quán)法等。 按照上述5類抽取和尋找系統(tǒng)的全部必要類和對象,4.4.1 獲取對象和類,4.4 面向?qū)ο蟮南到y(tǒng)分析活動,一種尋找對象類的非正式分析方法 名詞識別法 這種分析方法以需求陳述為依據(jù),把陳述中的名詞作為類與對象的候選者;用形容詞或名詞作為確定屬性的候選者;把動詞作為服務(wù)(操作)的候選者,下面以ATM系統(tǒng)為例,說明非正式分析過程。 認真閱讀ATM需求陳述,從中找出相關(guān)名詞,可以把它們作為類與對象的初步的候選者: 銀行,自動取款機(ATM),系統(tǒng),中央
14、計算機,分行計算機,柜員終端,網(wǎng)絡(luò),總行,分行,軟件,成本,市,街道,營業(yè)廳,儲蓄所,柜員,儲戶,現(xiàn)金,支票,賬戶,事務(wù),現(xiàn)金兌換卡,余額,磁卡,分行代碼,卡號,用戶,副本,信息,密碼,類型,取款額,賬單,訪問。 注意:分析員應(yīng)該根據(jù)領(lǐng)域知識或常識進一步把隱含的類與對象提取出來。例如,ATM系統(tǒng)必須包含“通信鏈路”和“事務(wù)日志”實體,應(yīng)該補充進來,2. 篩選出正確的類與對象 候選類與對象可能包括一些不正確的或不必要的類與對象,應(yīng)該篩選掉,僅保留確那些確實需要記錄信息或提供服務(wù)的對象。 刪除不正確或不必要的類與對象的篩選準則: 1)冗余:如果兩個類表達了同樣的信息,則應(yīng)該保留行業(yè)規(guī)范名稱。 AT
15、M例中:儲戶與用戶,現(xiàn)金兌換卡與磁卡及副本分別描述了相同的兩類信息,因此,僅保留“儲戶”和“現(xiàn)金兌換卡”這兩個類,應(yīng)該去掉“用戶”、“磁卡”、“副本”等冗余的類,銀行,自動取款機(ATM),系統(tǒng),中央計算機, 分行計算機,柜員終端,網(wǎng)絡(luò),總行,分行, 軟件,成本,市,街道,營業(yè)廳,儲蓄所,柜員,儲戶,現(xiàn)金,支票,賬戶,事務(wù),現(xiàn)金兌換卡, 余額,磁卡,分行代碼,卡號,用戶,副本, 信息,密碼,類型,取款額,賬單,訪問, 通信鏈路,事務(wù)日志,2)無關(guān):保留與本問題密切相關(guān)的類與對象,刪除與本問題無關(guān)或關(guān)系不大的類與對象。 ATM系統(tǒng)為例:系統(tǒng)不處理分攤軟件開發(fā)成本的問題,另外ATM和柜員終端放置的
16、地點與本軟件的關(guān)系也不大。因此,應(yīng)該去掉候選類“成本”、“市”、“街道”、“營業(yè)廳”和“儲蓄所,銀行,自動取款機(ATM),系統(tǒng),中央計算機, 分行計算機,柜員終端,網(wǎng)絡(luò),總行,分行, 軟件,成本,市,街道,營業(yè)廳,儲蓄所,柜員,儲戶,現(xiàn)金,支票,賬戶,事務(wù),現(xiàn)金兌換卡, 余額,磁卡,分行代碼,卡號,用戶,副本, 信息,密碼,類型,取款額,賬單,訪問, 通信鏈路,事務(wù)日志,3)籠統(tǒng):刪除籠統(tǒng)的、泛指的、模糊的名詞對應(yīng)的候選類與對象,保留有更明確、更具體的名詞對應(yīng)的類與對象。 以ATM系統(tǒng)為例:銀行實際指總行或分行,訪問在這里實際指事務(wù),此外還有一些籠統(tǒng)含糊的名詞。在本例中應(yīng)該去掉“銀行”、“網(wǎng)
17、絡(luò)”、“系統(tǒng)”、“軟件”、“信息”、“訪問”等候選類,銀行,自動取款機(ATM),系統(tǒng),中央計算機, 分行計算機,柜員終端,網(wǎng)絡(luò),總行,分行, 軟件,成本,市,街道,營業(yè)廳,儲蓄所,柜員,儲戶,現(xiàn)金,支票,賬戶,事務(wù),現(xiàn)金兌換卡, 余額,磁卡,分行代碼,卡號,用戶,副本, 信息,密碼,類型,取款額,賬單,訪問, 通信鏈路,事務(wù)日志,4)屬性:把描述屬性的名詞應(yīng)從候選類與對象中去掉。 在ATM系統(tǒng)的例子中,“現(xiàn)金”、“支票”、“取款額”、“賬單”、“余額”、“分行代碼”、“卡號”、“密碼”、“類型”等,實際上都應(yīng)該作為屬性對待,銀行,自動取款機(ATM),系統(tǒng),中央計算機, 分行計算機,柜員終端
18、,網(wǎng)絡(luò),總行,分行, 軟件,成本,市,街道,營業(yè)廳,儲蓄所,柜員,儲戶,現(xiàn)金,支票,賬戶,事務(wù),現(xiàn)金兌換卡, 余額,磁卡,分行代碼,卡號,用戶,副本, 信息,密碼,類型,取款額,賬單,訪問, 通信鏈路,事務(wù)日志,5)操作:在需求陳述中既可作為名詞,又可作為動詞的詞,應(yīng)該慎重考慮它們在本問題中的含義,以便正確決定他們作為類還是操作。 6)實現(xiàn):在分析階段不應(yīng)該過早地考慮怎樣實現(xiàn)目標系統(tǒng)。因此,應(yīng)該去掉只和實現(xiàn)有關(guān)的候選的類與對象。 在ATM系統(tǒng)中,“事務(wù)日志”是對一系列事務(wù)的記錄,它的確切表示方式是面向?qū)ο笤O(shè)計的議題;“通信鏈路”在邏輯上是一種聯(lián)系,在系統(tǒng)實現(xiàn)時它是關(guān)聯(lián)類的物理實現(xiàn)。應(yīng)該暫時去掉
19、 “事務(wù)日志”和“通信鏈路”這兩個類,在設(shè)計或?qū)崿F(xiàn)時再考慮它們,銀行,自動取款機(ATM),系統(tǒng),中央計算機, 分行計算機,柜員終端,網(wǎng)絡(luò),總行,分行, 軟件,成本,市,街道,營業(yè)廳,儲蓄所,柜員,儲戶,現(xiàn)金,支票,賬戶,事務(wù),現(xiàn)金兌換卡, 余額,磁卡,分行代碼,卡號,用戶,副本, 信息,密碼,類型,取款額,賬單,訪問, 通信鏈路,事務(wù)日志,經(jīng)過初步篩選,ATM系統(tǒng)保留的類與對象為: ATM、中央計算機、分行計算機、柜員終端、總行、分行、柜員、儲戶、賬戶、事務(wù)、現(xiàn)金兌換卡,關(guān)聯(lián)是指兩個或多個對象之間的相互依賴、相互作用的關(guān)系。 分析確定關(guān)聯(lián),有助于發(fā)現(xiàn)尚未被發(fā)現(xiàn)的類和對象。 一般特殊結(jié)構(gòu) 一般
20、特殊關(guān)系又稱類屬關(guān)系,是現(xiàn)實世界中一般對象和特殊對象之間的關(guān)系,反映了現(xiàn)實世界中事物之間的分類關(guān)系。前者稱為父類,后者稱為子類,子類繼承父類的特性(屬性、操作、關(guān)聯(lián)等),同時又擁有自己的特性,4.4.2 確定關(guān)聯(lián),4.4 面向?qū)ο蟮南到y(tǒng)分析活動,例如圖書借閱管理系統(tǒng)中,對象類“人員”是類“管理員”和“借閱者”類的父類,而子類“管理員”又是類“系統(tǒng)維護人員”和類“一般操作人員”的父類,一般特殊關(guān)系,4.4.2 確定關(guān)聯(lián),4.4 面向?qū)ο蟮南到y(tǒng)分析活動,整體部分 對象實例之間的整體部分關(guān)系,反映了現(xiàn)實世界中的事物之間的構(gòu)成關(guān)系。 整體部分關(guān)聯(lián)又可以從兩個方面來反映: 聚合關(guān)系:表示對象實例之間的整
21、體與部分的關(guān)系,作為整體的對象擁有作為部分的對象。在聚合關(guān)系中,部分的生命周期獨立于整體的生命周期。 組合關(guān)系:是聚合關(guān)系的一種特殊形式。在組合關(guān)系中,整體和部分之間有著一致的生命周期,4.4.2 確定關(guān)聯(lián),4.4 面向?qū)ο蟮南到y(tǒng)分析活動,聚合,組合,4.4 面向?qū)ο蟮南到y(tǒng)分析活動,聚合關(guān)系,組合關(guān)系,4.4.2 確定關(guān)聯(lián),關(guān)聯(lián) 表示對象實例之間的靜態(tài)聯(lián)系,這兩個對象實例之間存在某種語義上聯(lián)系。例如,員工為公司工作,一個公司有許多部門,因此,可以認為員工和公司、公司和部門之間存在某種語義上的聯(lián)系,如下圖所示,4.4.2 確定關(guān)聯(lián),4.4 面向?qū)ο蟮南到y(tǒng)分析活動,依賴關(guān)系 一個模型元素的變化影響
22、另一個模型元素,則兩個元素之間存在依賴關(guān)系。以X和Y兩個元素為例,當修改X的定義時,引起Y的定義的修改,則稱Y依賴于X,4.4.2 確定關(guān)聯(lián),4.4 面向?qū)ο蟮南到y(tǒng)分析活動,確定關(guān)聯(lián)的步驟: 1. 初步確定關(guān)聯(lián)(候選關(guān)聯(lián)) 基本方法:以需求陳述中描述性動詞或動詞詞組為紐帶,確定類與對象之間的關(guān)聯(lián)關(guān)系。(語法:主語+謂語+賓語) 尋找范圍:直接提取需求陳述中的動詞詞組;分析發(fā)現(xiàn)陳述中隱含的關(guān)聯(lián);與用戶及領(lǐng)域?qū)<矣懻摣@取關(guān)聯(lián),4.4 面向?qū)ο蟮南到y(tǒng)分析活動,4.4.2 確定關(guān)聯(lián),以ATM系統(tǒng)為例,經(jīng)過分析初步確定出下列關(guān)聯(lián): 1)直接提取動詞短語得出的關(guān)聯(lián) ATM、中央計算機、分行計算機及柜員終端
23、組成網(wǎng)絡(luò)。 總行擁有多臺ATM。 ATM設(shè)在主要街道上。 分行提供分行計算機和柜員終端。 柜員終端設(shè)在分行營業(yè)廳及儲蓄所內(nèi)。 分行分攤軟件開發(fā)成本。 儲戶擁有賬戶。 分行計算機處理針對賬戶的事務(wù)。 分行計算機維護賬戶,柜員終端與分行計算機通信。 柜員輸入針對賬戶的事務(wù)。 ATM與中央計算機交換關(guān)于事務(wù)的信息。 中央計算機確定事務(wù)與分行的對應(yīng)關(guān)系。 ATM讀現(xiàn)金兌換卡。 ATM與用戶交互。 ATM吐出現(xiàn)金。 ATM打印賬單。 系統(tǒng)處理并發(fā)的訪問,2)需求陳述中隱含的關(guān)聯(lián) 總行由各個分行組成。 分行保管賬戶。 總行擁有中央計算機。 系統(tǒng)維護事務(wù)日志。 系統(tǒng)提供必要的安全性。 儲戶擁有現(xiàn)金兌換卡。
24、3)根據(jù)問題域知識得出的關(guān)聯(lián) 現(xiàn)金兌換卡訪問賬戶。 分行雇用柜員,ATM、中央計算機、分行計算機及柜員終端組成網(wǎng)絡(luò)。 總行擁有多臺ATM。 ATM設(shè)在主要街道上。 分行提供分行計算機和柜員終端。 柜員終端設(shè)在分行營業(yè)廳及儲蓄所內(nèi)。 分行分攤軟件開發(fā)成本。 儲戶擁有賬戶。 分行計算機處理針對賬戶的事務(wù)。 分行計算機維護賬戶。 柜員終端與分行計算機通信。 柜員輸入針對賬戶的事務(wù)。 ATM與中央計算機交換關(guān)于事務(wù)的信息。 中央計算機確定事務(wù)與分行的對應(yīng)關(guān)系,ATM讀現(xiàn)金兌換卡。 ATM與用戶交互。 ATM吐出現(xiàn)金。 ATM打印賬單。 系統(tǒng)處理并發(fā)的訪問。 總行由各個分行組成。 分行保管賬戶。 總行擁
25、有中央計算機。 系統(tǒng)維護事務(wù)日志。 系統(tǒng)提供必要的安全性。 儲戶擁有現(xiàn)金兌換卡。 現(xiàn)金兌換卡訪問賬戶。 分行雇用柜員,候選關(guān)聯(lián),2. 篩選 候選關(guān)聯(lián)中包含了一些不正確或不必要的關(guān)聯(lián),應(yīng)該刪除掉。篩選時主要根據(jù)下述標準刪除候選的關(guān)聯(lián): 1) 已刪去的類之間的關(guān)聯(lián) 與某個已刪候選類相關(guān)的關(guān)聯(lián),也應(yīng)該刪去。 以ATM系統(tǒng)為例,由于已經(jīng)刪去了“系統(tǒng)”、“網(wǎng)絡(luò)”、“市”、“街道”、“成本”、“軟件”、“事務(wù)日志”、“現(xiàn)金”、“營業(yè)廳”、“儲蓄所”、“賬單”等候選類,因此,與這些類有關(guān)的關(guān)聯(lián)也應(yīng)該刪去,ATM、中央計算機、分行計算機及柜員終端組成網(wǎng)絡(luò)。 ATM設(shè)在主要街道上。 分行分攤軟件開發(fā)成本。 系統(tǒng)
26、提供必要的安全性。 系統(tǒng)維護事務(wù)日志。 系統(tǒng)處理并發(fā)的訪問 ATM吐出現(xiàn)金。 ATM打印賬單。 柜員終端設(shè)在分行營業(yè)廳及儲蓄所內(nèi),ATM、中央計算機、分行計算機及柜員終端組成網(wǎng)絡(luò)。 總行擁有多臺ATM。 ATM設(shè)在主要街道上。 分行提供分行計算機和柜員終端。 柜員終端設(shè)在分行營業(yè)廳及儲蓄所內(nèi)。 分行分攤軟件開發(fā)成本。 儲戶擁有賬戶。 分行計算機處理針對賬戶的事務(wù)。 分行計算機維護賬戶。 柜員終端與分行計算機通信。 柜員輸入針對賬戶的事務(wù)。 ATM與中央計算機交換關(guān)于事務(wù)的信息。 中央計算機確定事務(wù)與分行的對應(yīng)關(guān)系,ATM讀現(xiàn)金兌換卡。 ATM與用戶交互。 ATM吐出現(xiàn)金。 ATM打印賬單。 系
27、統(tǒng)處理并發(fā)的訪問。 總行由各個分行組成。 分行保管賬戶。 總行擁有中央計算機。 系統(tǒng)維護事務(wù)日志。 系統(tǒng)提供必要的安全性。 儲戶擁有現(xiàn)金兌換卡。 現(xiàn)金兌換卡訪問賬戶。 分行雇用柜員,候選關(guān)聯(lián),2) 與問題無關(guān)的或應(yīng)在實現(xiàn)階段考慮的關(guān)聯(lián) 應(yīng)該把處在本問題域之外的關(guān)聯(lián)或與實現(xiàn)密切相關(guān)的關(guān)聯(lián)刪去。 3) 瞬時事件: 關(guān)聯(lián)應(yīng)該描述問題域的靜態(tài)結(jié)構(gòu),而不應(yīng)該是一個瞬時事件。 例如,“ATM讀現(xiàn)金兌換卡”描述了ATM與用戶交互周期中的一個動作,它并不是ATM與現(xiàn)金兌換卡之間的固有關(guān)系,因此應(yīng)該刪去。類似地,還應(yīng)該刪去“ATM與用戶交互”這個候選的關(guān)聯(lián),ATM、中央計算機、分行計算機及柜員終端組成網(wǎng)絡(luò)。 總
28、行擁有多臺ATM。 ATM設(shè)在主要街道上。 分行提供分行計算機和柜員終端。 柜員終端設(shè)在分行營業(yè)廳及儲蓄所內(nèi)。 分行分攤軟件開發(fā)成本。 儲戶擁有賬戶。 分行計算機處理針對賬戶的事務(wù)。 分行計算機維護賬戶。 柜員終端與分行計算機通信。 柜員輸入針對賬戶的事務(wù)。 ATM與中央計算機交換關(guān)于事務(wù)的信息。 中央計算機確定事務(wù)與分行的對應(yīng)關(guān)系,ATM讀現(xiàn)金兌換卡。 ATM與用戶交互。 ATM吐出現(xiàn)金。 ATM打印賬單。 系統(tǒng)處理并發(fā)的訪問。 總行由各個分行組成。 分行保管賬戶。 總行擁有中央計算機。 系統(tǒng)維護事務(wù)日志。 系統(tǒng)提供必要的安全性。 儲戶擁有現(xiàn)金兌換卡。 現(xiàn)金兌換卡訪問賬戶。 分行雇用柜員,候
29、選關(guān)聯(lián),4) 三元關(guān)聯(lián): 三個或三個以上對象之間的關(guān)聯(lián),大多可以分解為二元關(guān)聯(lián)或用詞組描述成限定的關(guān)聯(lián)。 在ATM系統(tǒng)的例子中,“柜員輸入針對賬戶的事務(wù)”可以分解成“柜員輸入事務(wù)”和“事務(wù)修改賬戶”這樣兩個二元關(guān)聯(lián)。而“分行計算機處理針對賬戶的事務(wù)”也可以做類似的分解。“ATM與中央計算機交換關(guān)于事務(wù)的信息”這個關(guān)聯(lián)隱含了“ATM與中央計算機通信”和“在ATM上輸入事務(wù)”這兩個二元關(guān)聯(lián),總行擁有多臺ATM。 分行提供分行計算機和柜員終端。 儲戶擁有賬戶。 分行計算機處理針對賬戶的事務(wù)。 分行計算機維護賬戶。 柜員終端與分行計算機通信。 柜員輸入針對賬戶的事務(wù)。 ATM與中央計算機交換關(guān)于事務(wù)的
30、信息。 中央計算機確定事務(wù)與分行的對應(yīng)關(guān)系。 總行由各個分行組成。 分行保管賬戶。 總行擁有中央計算機,儲戶擁有現(xiàn)金兌換卡。 現(xiàn)金兌換卡訪問賬戶。 分行雇用柜員,候選關(guān)聯(lián),柜員輸入事務(wù),事務(wù)修改賬戶,分行計算機處理事務(wù),ATM與中央計算機通信,在ATM上輸入事務(wù),5) 派生關(guān)聯(lián): 應(yīng)該去掉那些可以用其他關(guān)聯(lián)定義或派生的冗余關(guān)聯(lián)。 在ATM系統(tǒng)的例子中,“總行擁有多臺ATM”實質(zhì)上是“總行擁有中央計算機”和“ATM與中央計算機通信”這兩個關(guān)聯(lián)組合的結(jié)果。而“分行計算機維護賬戶”的實際含義是“分行保管賬戶”和“事務(wù)修改賬戶,總行擁有多臺ATM。 分行提供分行計算機和柜員終端。 儲戶擁有賬戶。 分行
31、計算機維護賬戶。 柜員終端與分行計算機通信。 中央計算機確定事務(wù)與分行的對應(yīng)關(guān)系。 總行由各個分行組成。 分行保管賬戶。 總行擁有中央計算機,儲戶擁有現(xiàn)金兌換卡。 現(xiàn)金兌換卡訪問賬戶。 分行雇用柜員。 柜員輸入事務(wù) 事務(wù)修改賬戶 分行計算機處理事務(wù) ATM與中央計算機通信 在ATM上輸入事務(wù),去掉派生的關(guān)聯(lián),3. 進一步完善 進一步完善經(jīng)篩選后余下的關(guān)聯(lián),通常從下述幾個方面進行改進: 正名: 應(yīng)該仔細選擇含義更明確的名字作為關(guān)聯(lián)名。 例如,“分行提供分行計算機和柜員終端”不如改為“分行擁有分行計算機”和“分行擁有柜員終端”。 2) 分解: 必要時分解以前確定的類與對象,以適用于不同的關(guān)聯(lián)。 在
32、ATM系統(tǒng)中,應(yīng)該把“事務(wù)”分解成“遠程事務(wù)”和“柜員事務(wù),3) 補充:發(fā)現(xiàn)了遺漏的關(guān)聯(lián)就應(yīng)該及時補上。 在ATM系統(tǒng)中,把“事務(wù)”分解成上述兩類之后,需要補充“柜員輸入柜員事務(wù)”、“柜員事務(wù)輸進柜員終端”、“在ATM上輸入遠程事務(wù)”和“遠程事務(wù)由現(xiàn)金兌換卡授權(quán)”等關(guān)聯(lián)。 4) 標明重數(shù):根據(jù)關(guān)聯(lián)類型,初步確定關(guān)聯(lián)重數(shù)。 重數(shù)是指類產(chǎn)生的對象之間的數(shù)量關(guān)系,例如,分行提供分行計算機和柜員終端。 儲戶擁有賬戶。 柜員終端與分行計算機通信。 中央計算機確定事務(wù)與分行的對應(yīng)關(guān)系。 總行由各個分行組成。 分行保管賬戶。 總行擁有中央計算機,儲戶擁有現(xiàn)金兌換卡。 現(xiàn)金兌換卡訪問賬戶。 分行雇用柜員。 柜
33、員輸入事務(wù) 事務(wù)修改賬戶 分行計算機處理事務(wù) ATM與中央計算機通信 在ATM上輸入事務(wù),進一步完善,分行擁有分行計算機,分行擁有柜員終端,柜員輸入柜員事務(wù),柜員事務(wù)輸進柜員終端,在ATM上輸入遠程事務(wù),遠程事務(wù)由現(xiàn)金兌換卡授權(quán),柜員事務(wù)修改賬戶,中央計算機與分行計算機通信,圖10.3 ATM系統(tǒng)原始的類圖,經(jīng)上述分析過程之后得出的ATM系統(tǒng)原始的類圖,主題是幫助或指導(dǎo)理解整個模型的一種機制。在開發(fā)大型復(fù)雜系統(tǒng)的過程中,為了降低復(fù)雜程度,人們習(xí)慣于把系統(tǒng)包含的內(nèi)容再進一步劃分成幾個不同的組成范圍或范疇,即主題。 以ATM系統(tǒng)為例,可以把它劃分成總行(包含總行和中央計算機這兩個類)、分行(包含分
34、行、分行計算機、柜員終端、柜員事務(wù)、柜員和賬戶等類)和ATM(包含ATM、遠程事務(wù)、現(xiàn)金兌換卡和儲戶等類)等3個主題,4.4 面向?qū)ο蟮南到y(tǒng)分析活動,4.4.3 確定主題,圖10.3 ATM系統(tǒng)原始的類圖,經(jīng)上述分析過程之后得出的ATM系統(tǒng)原始的類圖,總行,分行,ATM,對象的屬性是描述對象靜態(tài)特征的,確定對象屬性時要從問題域和目標系統(tǒng)兩方面進行。一般說來,確定屬性的過程包括分析和選擇兩個步驟。 1. 分析 在需求陳述分析中,常用名詞詞組或形容詞限定的名詞表示屬性,例如,汽車的顏色,光標的位置,體重,身高,存款余額,等等。 除需求陳述外,還須借助領(lǐng)域知識和常識獲得屬性,4.4 面向?qū)ο蟮南到y(tǒng)分
35、析活動,4.4.4 確定屬性,2. 選擇 通常篩選下幾種屬性: 1)誤把對象當作屬性:擁有屬性的實體應(yīng)作為一個對象而不是屬性。 2)誤把關(guān)聯(lián)類的屬性當作一般對象的屬性:屬性隨著關(guān)聯(lián)存在并描述關(guān)聯(lián)。 3)把限定誤當成屬性:如,“分行代碼”、“賬號”、“雇員號”、“站號”等都是限定詞。 4)誤把內(nèi)部狀態(tài)當成了屬性:如ATM就緒、故障等。 5) 過于細化:忽略那些對大多數(shù)操作都沒有影響的屬性。 6) 存在不一致的屬性:類中含有一些看起來與其他屬性毫不相關(guān)的屬性,則應(yīng)該考慮把該類分解成兩個不同的類,ATM系統(tǒng)對象模型中的屬性,經(jīng)過篩選之后,得到ATM系統(tǒng)中各個類的屬性,方法,也稱服務(wù)、操作或行為等,用
36、來描述對象的動態(tài)特征。有的面向?qū)ο蟮某绦蛟O(shè)計語言中,又將方法稱之為類的成員函數(shù)或簡稱函數(shù)。 一般從以下三個方面發(fā)現(xiàn)和定義對象方法: 系統(tǒng)責任 問題域 對象狀態(tài) 在確定類中應(yīng)有的服務(wù)時,既要考慮該類實體的常規(guī)行為,又要考慮在系統(tǒng)中特殊需要的服務(wù),4.4 面向?qū)ο蟮南到y(tǒng)分析活動,4.4.5 確定方法,1. 常規(guī)行為 在分析階段可以認為,類中定義的每個屬性都是可以訪問的,即假設(shè)在每個類中都定義了讀、寫該類每個屬性的操作。但是,通常無需在類圖中顯式表示這些常規(guī)操作,2. 從事件導(dǎo)出的操作 狀態(tài)圖中對象接收的事件,也就是該對象接收到的消息,該對象必須有由消息選擇符指定的操作,這個操作修改對象狀態(tài)(即屬性
37、值)并啟動相應(yīng)的服務(wù),分行”類的狀態(tài)圖,例如:在ATM系統(tǒng)中,分行接收的事件“請分行驗卡”啟動該對象的服務(wù)“驗證卡號”;“處理分行事務(wù)”事件啟動分行服務(wù)“更新賬戶”等,3. 與數(shù)據(jù)流圖中處理框?qū)?yīng)的操作 數(shù)據(jù)流圖中的每個處理框都與一個對象或多個對象上的操作相對應(yīng)。應(yīng)對照狀態(tài)圖和數(shù)據(jù)流圖,以便更正確地確定對象應(yīng)該提供的服務(wù),例如,在ATM系統(tǒng)中,從狀態(tài)圖上看出分行對象應(yīng)該提供“驗證卡號”服務(wù),而在數(shù)據(jù)流圖上與之對應(yīng)的處理框是“驗卡”,根據(jù)實際應(yīng)該完成的功能看,該對象提供的這個服務(wù)應(yīng)該是“驗卡,注意:在建立了動態(tài)模型和功能模型之后,才能最終確定類中應(yīng)有的方法,數(shù)據(jù)流圖,練習(xí):下面是自動售貨機系統(tǒng)的
38、需求陳述,請建立它的對象模型。 自動售貨機系統(tǒng)是一種無人售貨系統(tǒng)。售貨時,顧客把硬幣投入機器的投幣口中,機器檢查硬幣的大小、重量、厚度及邊緣類型。有效的硬幣是一元幣、五角幣、一角幣、五分幣、二分幣和一分幣。其他貨幣都被認為是假幣。機器拒絕接收假幣,并將其從退幣孔退出。當機器接收了有效的硬幣之后,就把硬幣送入硬幣儲藏器中。顧客支付的貨幣根據(jù)硬幣的面值進行累加。 自動售貨機裝有貨物分配器。每個貨物分配器中包含零個或多個價格相同的貨物。顧客通過選擇貨物分配器來選擇貨物。如果貨物分配器中有貨物,而且顧客支付的貨幣值不小于該貨物的價格,貨物將被分配到貨物傳送孔送給顧客,并將適當?shù)牧沐X返回到退幣孔。如果分
39、配器是空的,則和顧客支付的貨幣值相等的硬幣將被送回到退幣孔。如果顧客支付的貨幣值少于所選擇的分配器中貨物的價格,機器將等待顧客投進更多的貨幣。如果顧客決定不買所選擇的貨物,他投放進的貨幣將從退幣孔中退出,OOA模型的三個子模型: 對象模型 動態(tài)模型 功能模型,4.5 建立對象模型,建立對象模型,面向?qū)ο蠓治鍪滓墓ぷ?,是建立問題域的對象模型。這個模型描述了現(xiàn)實世界中的“類與對象”以及它們之間的關(guān)系,表示了目標系統(tǒng)的靜態(tài)數(shù)據(jù)結(jié)構(gòu)。 靜態(tài)數(shù)據(jù)結(jié)構(gòu)對應(yīng)用細節(jié)依賴較少,比較容易確定。當用戶需求變化時,靜態(tài)數(shù)據(jù)結(jié)構(gòu)相對來說比較穩(wěn)定。因此,用面向?qū)ο蠓椒ㄩ_發(fā)大多數(shù)軟件時,都是首先建立對象模型,然后再建立另
40、外兩個子模型,OOA基本模型分為三個層次: 對象層給出系統(tǒng)中所有反映問題域和系統(tǒng)責任的對象。 特征層給出類(對象)的內(nèi)部特征,即類的屬性和操作。 關(guān)系層給出各類(對象)之間的關(guān)系,即類之間的四種關(guān)系,4.5 建立對象模型,建立對象模型,對象模型的作用是描述系統(tǒng)的靜態(tài)結(jié)構(gòu),靜態(tài)模型包括類圖、對象圖、包圖、部署圖和組件圖。 對象圖是類圖的實例,跟類圖非常相似,可以認為對象圖是類圖在程序執(zhí)行過程中某一瞬間的快照; 包圖由包和類組成,它表示包和包之間的關(guān)系,包圖可以用于描述系統(tǒng)的分層結(jié)構(gòu); 組件圖和部署圖設(shè)計程序的物理實現(xiàn),4.5 建立對象模型,建立對象模型,類圖 類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu), 定義系
41、統(tǒng)中的類 表示類之間的關(guān)系(如關(guān)聯(lián)、依賴、聚集等) 表達類的內(nèi)部結(jié)構(gòu)(即類的屬性和操作)。 類圖描述的這種靜態(tài)關(guān)系涉及軟件系統(tǒng)開發(fā)的整個生命周期。它不顯示暫時性的信息,4.5 建立對象模型,建立對象模型,建筑設(shè)計院公文審批類圖,類圖作用 對系統(tǒng)的靜態(tài)對象建模。如圖書借閱系統(tǒng)的Book類、reader類,學(xué)生管理系統(tǒng)的Student類等。 對簡單的協(xié)作建模。協(xié)作是一些共同行為的類、接口和其他元素的群體。 協(xié)作是指一些類、接口和其他的元素一起工作提供一些合作的行為,這些行為不是簡單地將元素加能得到的。 對邏輯數(shù)據(jù)庫模式建模。在很多領(lǐng)域中,都需要在關(guān)系數(shù)據(jù)庫或面向?qū)ο髷?shù)據(jù)庫中存儲永久信息,系統(tǒng)分析者
42、可以用類圖對這些需要永久化的實體建模,4.5 建立對象模型,建立對象模型,類一般包括三個組成部分,4.5 建立對象模型,建立對象模型,類名,屬性,操作,名稱,表現(xiàn)類的特征,可用于描述類的狀態(tài)。 “+”表示公有數(shù)據(jù)類型 “-”表示私有數(shù)據(jù)類型 “#”表示受保護類型,操縱屬性或執(zhí)行其它動作,給類命名時應(yīng)該遵守以下準則: 使用標準術(shù)語; 使用具有確切含義的名詞; 必要時使用名詞短語; 類名、屬性、操作也有一定的書寫規(guī)范,具體如下。 類名:正體字代表可被實例化的類,斜體字代表抽象類; 屬性:“可見性 屬性名:類型=初始值”; 操作:“可見性 方法名稱(參數(shù)列表):返回類型”; 可見性:+表示publi
43、c,-表示private,#表示protected,省略修飾詞具有package級別的可見性。 如果屬性或方法具有下劃線,則說明它是靜態(tài)的,4.5 建立對象模型,建立對象模型,類的表示方法有兩種: 全部顯示類的屬性和操作; 隱藏屬性部分或操作部分,或者兩者都隱藏,4.5 建立對象模型,建立對象模型,隱藏操作,隱藏屬性,只顯示類名,對象圖 對象圖表示在某一時刻系統(tǒng)對象的狀態(tài)、對象之間的聯(lián)系的狀態(tài)以及對象行為的靜態(tài)方面的狀態(tài)。對象圖和類圖一樣反映系統(tǒng)的靜態(tài)過程,但它是從實際的或原型化的情景來表達的。 對象圖是類圖的實例,幾乎使用與類圖完全相同的標識。它們的不同點在于對象圖顯示類的多個對象實例,而不
44、是實際的類。一個對象圖是類圖的一個實例。由于對象存在生命周期,因此對象圖只能在系統(tǒng)某一時間段存在,4.5 建立對象模型,建立對象模型,對象圖的用途: 捕獲實例和連接 在分析和設(shè)計階段創(chuàng)建 捕獲交互的靜態(tài)部分 舉例說明數(shù)據(jù)/對象結(jié)構(gòu) 詳細描述瞬態(tài)圖 由分析人員、設(shè)計人員和代碼實現(xiàn)人員開發(fā),4.5 建立對象模型,建立對象模型,類圖: 有三個分欄(類名,屬性,操作); 類名分欄中只有類名 屬性分欄定義所有屬性的特征; 操作分欄列出了操作 類之間使用關(guān)聯(lián)連接,標上重數(shù),4.5 建立對象模型,對象圖,對象圖: 只有兩個分欄(名稱,屬性); 名稱形式為“對象名:類名”;匿名對象的名稱形式為“:類名”; 只
45、定義屬性的當前值; 不包含操作; 對象之間使用鏈連接,沒有重數(shù),包圖 包(Package)是一種常規(guī)用途的組合機制。UML中的一個包直接對應(yīng)于Java中的一個包。在Java中,一個包可能含有其他包、類或者同時含有這兩者。進行建模時,通常使用邏輯性的包,用于對模型進行組織;使用物理性的包,用于轉(zhuǎn)換成系統(tǒng)中的Java包。每個包的名稱對這個包進行了唯一性的標識,4.5 建立對象模型,建立對象模型,包圖建模: 將關(guān)系相近的類放到相同的包中。 將一個框架的所有類放置在相同的包中; 將相同繼承層次的類放在相同的包中; 彼此間有聚集或組成關(guān)系的類通常放在相同的包中; 彼此合作頻繁的類、信息能夠通過順序圖和合
46、作圖反映出來的類,通常放在相同的包中; 確定包與包之間的依賴關(guān)系或泛化關(guān)系,4.5 建立對象模型,建立對象模型,確定系統(tǒng)的動態(tài)模型 動態(tài)模型的作用:描述系統(tǒng)中各個對象在外部事件的觸發(fā)下,按照一定的控制邏輯和運行規(guī)則,使其狀態(tài)發(fā)生變化的行為過程。 例如:儲戶與ATM系統(tǒng)的交互的存款或取款過程。 動態(tài)模型是與時間和變化有關(guān)的系統(tǒng)性質(zhì)。該模型描述了系統(tǒng)的控制結(jié)構(gòu),它表示了瞬間的、行為化的系統(tǒng)控制性質(zhì),它關(guān)心的是系統(tǒng)的控制,操作的執(zhí)行順序,它從對象的事件和狀態(tài)的角度出發(fā),表現(xiàn)了對象的相互行為。 該模型使用狀態(tài)圖作為描述工具。它涉及到事件、狀態(tài)、操作等重要概念,4.6 建立動態(tài)模型,事件 事件是指定時刻
47、發(fā)生的某件事。引起對象狀態(tài)發(fā)生變化的行為或動作或事情統(tǒng)稱為事件。 狀態(tài) 狀態(tài)是對象屬性值在對象的運行過程中所呈現(xiàn)的各種變化序列。狀態(tài)指明了對象對輸入事件的響應(yīng)。 狀態(tài)圖 狀態(tài)圖一個標準的計算機概念,是用有限自動機的圖形表示的。 狀態(tài)圖反映了狀態(tài)與事件的關(guān)系。用來描繪對象的狀態(tài)在外部事件的觸發(fā)下所發(fā)生的變換過程和規(guī)律。當接收一事件時,下一狀態(tài)就取決于當前狀態(tài)和所接收的該事件,由該事件引起的狀態(tài)變化稱為轉(zhuǎn)換,4.6 建立動態(tài)模型,狀態(tài)圖 狀態(tài)圖的描繪與結(jié)構(gòu)化方法狀態(tài)圖相同。在狀態(tài)圖中,用結(jié)點表示狀態(tài),結(jié)點用圓圈表示;圓圈內(nèi)有狀態(tài)名,用箭頭連線表示狀態(tài)的轉(zhuǎn)換,上面標記事件名,箭頭方向表示轉(zhuǎn)換的方向,
48、4.6 建立動態(tài)模型,4.6 建立動態(tài)模型,電話系統(tǒng)的狀態(tài)圖,動態(tài)模型的構(gòu)成: 把每個類的狀態(tài)圖用共享事件連接起來,則構(gòu)成系統(tǒng)的動態(tài)模型。即動態(tài)模型是基于事件共享而互相關(guān)聯(lián)的一組對象狀態(tài)圖的集合。 建立動態(tài)模型的步驟: 1)編寫腳本:一個腳本是系統(tǒng)完成某項工作的一次具體交互執(zhí)行過程的說明和描述。腳本包括正常交互行為和異常事件引發(fā)的交互行為。 2)繪制系統(tǒng)事件跟蹤圖:從腳本中抽取事件,并確定引發(fā)每個事件的動作對象和接受該事件的目標對象,然后繪制系統(tǒng)事件跟蹤圖。 3)繪制對象狀態(tài)圖:排列每個對象有關(guān)的事件發(fā)生次序,描繪每個對象狀態(tài)圖。 4)建立動態(tài)模型:借助共享事件把各個對象的狀態(tài)圖集合在一起,構(gòu)
49、成系統(tǒng)的動態(tài)模型。 5)審查動態(tài)模型:比較各個對象的狀態(tài)圖,檢查它們之間的一致性,確保事件之間的匹配,4.6 建立動態(tài)模型,編寫腳本,腳本:系統(tǒng)在某一執(zhí)行期間出現(xiàn)的一系列事件。 腳本功能:描述用戶與目標系統(tǒng)之間的一個或多個典型的交互行為。 編寫腳本的目的:保證不遺漏重要的交互步驟,有助于確保整個交互過程的正確性和清晰性。 腳本的內(nèi)容:既可以包括系統(tǒng)中發(fā)生的全部事件,也可以只包括由特定對象觸發(fā)的事件。對于某個事件,必須指明觸發(fā)(產(chǎn)生)事件的動作對象(如系統(tǒng)、用戶),接受事件的目標對象以及該事件的參數(shù)(交互信息)。 編寫步驟: 編寫正常情況的腳本。 考慮特殊情況,例如輸入和輸出為最大值。 考慮出錯
50、情況,例如輸入值非法或響應(yīng)失敗,4.6 建立動態(tài)模型,ATM系統(tǒng)異常情況腳本,畫事件跟蹤圖,事件跟蹤圖是以圖形的方式描述事件及事件與對象的關(guān)系,即表達腳本含義的模型。事件跟蹤圖實質(zhì)上是擴充的腳本,是簡化的UML順序圖。 1. 確定事件 分析每個腳本,從中提取出所有外部事件以及事件的發(fā)送和接收對象。除從腳本中要找出正常事件、還要找出異常事件和出錯條件。 2. 畫出事件跟蹤圖 事件跟蹤圖把事件序列以及事件與對象的關(guān)系直觀清晰地表示出來,4.6 建立動態(tài)模型,事件跟蹤圖畫法:在事件跟蹤圖中,一條豎線代表一個對象,每個事件用一條水平的箭頭線表示,箭頭方向從事件的引發(fā)對象指向接受對象。事件發(fā)生的前后順序
51、由水平箭頭的上下次序確定,上面先發(fā)生,下面后發(fā)生。箭頭線之間的間距不代表時間長短,僅代表事件發(fā)生的先后,4.6 建立動態(tài)模型,ATM正常事件跟蹤圖,順序圖:按順序顯示對象之間的交互,一張狀態(tài)圖描述某一類對象的行為,它確定了由時間序列引起的狀態(tài)序列。 一般步驟: 1)先以某一事件跟蹤圖(先正常后異常)為起點畫出各個對象狀態(tài)圖。 畫法:分別集中考慮某一個對象,從事件跟蹤圖中獲取指向該對象豎線的那些箭頭線(接收事件),并把這些事件作為狀態(tài)圖中的狀態(tài)轉(zhuǎn)換箭頭線,其上標以事件名,兩個事件之間的間隔就是一個狀態(tài);再從事件跟蹤圖獲取當前考慮的對象豎線射出的箭頭線,通常代表該對象達到某個狀態(tài)時所做的行為,畫狀
52、態(tài)圖,4.6 建立動態(tài)模型,2)根據(jù)一張事件跟蹤圖畫出某個類的狀態(tài)圖之后,再把其他腳本的事件跟蹤圖中的事件合并到已畫出的狀態(tài)圖中。 并入方法是:在未考慮的事件跟蹤圖中找出相應(yīng)對象的所有事件,并在對象的現(xiàn)有狀態(tài)圖中找出產(chǎn)生這些事件的狀態(tài),然后把其事件序列并入已有的狀態(tài)圖中,作為一條可選的路徑畫出相關(guān)狀態(tài)。 例如:“驗證賬戶”一個狀態(tài)可以發(fā)出“賬戶有效”、“無效賬戶”、“密碼錯”三個事件。 3)考慮完正常事件后,再考慮邊界情況和特殊情況。如“用戶取消該事務(wù)”、“超時”、“停電”,不能省略對用戶出錯情況的處理,4.6 建立動態(tài)模型,ATM正常事件跟蹤圖,狀態(tài)圖,圖10.10 總行類的狀態(tài)圖,總行類的狀態(tài)圖,圖10.11 分行類的狀態(tài)圖,分行類的狀態(tài)圖,ATM系統(tǒng)對象狀態(tài)圖: “ATM”、“柜員終端”、“總
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 租客合同終止租房協(xié)議
- 技術(shù)開發(fā)與轉(zhuǎn)讓合同保密范本
- 智能化系統(tǒng)供貨安裝合同樣本
- 礦山企業(yè)輪換工勞動合同模板及示例
- 農(nóng)村土地出租權(quán)屬合同樣本
- 標準貨物銷售合同簡版
- 城市配送服務(wù)合同一覽
- 小學(xué)生種花演講課件
- 影視設(shè)備行業(yè)交流服務(wù)批發(fā)考核試卷
- 廣播電視節(jié)目的心理影響與教育意義考核試卷
- 低溫絕熱液氧瓶充裝操作規(guī)程模版(2篇)
- 大眾汽車使用說明書
- (高清版)DZT 0145-2017 土壤地球化學(xué)測量規(guī)程
- 供熱公司安全教育知識
- 高中英語課程綱要
- 《藥物設(shè)計學(xué)》課件
- 隨機微分方程
- 道路設(shè)施施工現(xiàn)場安全管理基本要求
- 公寓樓改造裝修施工方案
- 煙臺大學(xué)化學(xué)化工學(xué)院實驗室儀器設(shè)備搬遷項目
- 2022版10kV架空配電線路無人機自主巡檢作業(yè)導(dǎo)則
評論
0/150
提交評論