版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟件工程軟件工程計(jì)算機(jī)與信息科學(xué)學(xué)院計(jì)算機(jī)與信息科學(xué)學(xué)院曹嚴(yán)元曹嚴(yán)元第第1章章 軟件工程學(xué)概述軟件工程學(xué)概述第第2章章 可行性研究可行性研究第第3章章 需求分析需求分析第第4章章 形式化說明技術(shù)形式化說明技術(shù)第第5章章 總體設(shè)計(jì)總體設(shè)計(jì)第第6章章 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)第第7章章 實(shí)現(xiàn)實(shí)現(xiàn)第第8章章 維護(hù)維護(hù)第第9章章 面向?qū)ο蠓椒▽W(xué)引論面向?qū)ο蠓椒▽W(xué)引論第第10章章 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治龅诘?1章章 面向?qū)ο笤O(shè)計(jì)面向?qū)ο笤O(shè)計(jì)第第12章章 面向?qū)ο髮?shí)現(xiàn)面向?qū)ο髮?shí)現(xiàn)第第13章章 軟件項(xiàng)目管理軟件項(xiàng)目管理第十章第十章 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治鰒分析過程要完成的任務(wù):分析過程要完成的任務(wù):v分析工作主
2、要包括分析工作主要包括3 3項(xiàng)內(nèi)容:項(xiàng)內(nèi)容:v理解理解v表達(dá)表達(dá)v驗(yàn)證驗(yàn)證v獲取需求獲取需求教學(xué)內(nèi)容:教學(xué)內(nèi)容:面向?qū)ο蠓治龅幕具^程面向?qū)ο蠓治龅幕具^程 需求陳述需求陳述建立對(duì)象模型建立對(duì)象模型建立動(dòng)態(tài)模型建立動(dòng)態(tài)模型建立功能模型建立功能模型定義服務(wù)定義服務(wù)面向?qū)ο蠓治龅幕具^程面向?qū)ο蠓治龅幕具^程什么是面向?qū)ο蠓治??什么是面向?qū)ο蠓治觯砍槿『驼碛脩粜枨蟛⒔栴}抽取和整理用戶需求并建立問題域精確模型的過程。域精確模型的過程。面向?qū)ο蠼5玫降拿嫦驅(qū)ο蠼5玫降? 3個(gè)子模型:個(gè)子模型:v對(duì)象模型對(duì)象模型v動(dòng)態(tài)模型動(dòng)態(tài)模型v功能模型功能模型解決問題不同,解決問題不同,3 3種模型的重要
3、程種模型的重要程度也不同度也不同對(duì)象模型的對(duì)象模型的5 5個(gè)層次:個(gè)層次:類或者對(duì)象之類或者對(duì)象之間的關(guān)系間的關(guān)系指導(dǎo)讀者理解指導(dǎo)讀者理解復(fù)雜系統(tǒng)的機(jī)復(fù)雜系統(tǒng)的機(jī)制制面向?qū)ο蠓治龅拇笾虏襟E:面向?qū)ο蠓治龅拇笾虏襟E:v找出類與對(duì)象找出類與對(duì)象v識(shí)別結(jié)構(gòu)識(shí)別結(jié)構(gòu)v識(shí)別主題識(shí)別主題v定義屬性定義屬性v定義服務(wù)定義服務(wù)v建立動(dòng)態(tài)模型建立動(dòng)態(tài)模型v建立功能模型建立功能模型需求陳述需求陳述需求陳述的內(nèi)容包括:需求陳述的內(nèi)容包括:v問題范圍問題范圍v功能需求功能需求v性能需求性能需求v應(yīng)用環(huán)境及假設(shè)條件等。應(yīng)用環(huán)境及假設(shè)條件等。實(shí)例:自動(dòng)取款機(jī)實(shí)例:自動(dòng)取款機(jī)(ATM)系統(tǒng)系統(tǒng)自動(dòng)取款機(jī)自動(dòng)取款機(jī)(ATM)
4、系統(tǒng)的需求陳述:系統(tǒng)的需求陳述: 某銀行擬開發(fā)一個(gè)自動(dòng)取款機(jī)系統(tǒng),它是一個(gè)由自動(dòng)某銀行擬開發(fā)一個(gè)自動(dòng)取款機(jī)系統(tǒng),它是一個(gè)由自動(dòng)取款機(jī)、中央計(jì)算機(jī)、分行計(jì)算機(jī)及柜員終端組成的網(wǎng)絡(luò)取款機(jī)、中央計(jì)算機(jī)、分行計(jì)算機(jī)及柜員終端組成的網(wǎng)絡(luò)系統(tǒng)。系統(tǒng)。ATM和中央計(jì)算機(jī)由總行投資購(gòu)買??傂袚碛卸嗯_(tái)和中央計(jì)算機(jī)由總行投資購(gòu)買。總行擁有多臺(tái)ATM,分別設(shè)在全市各主要街道上。分行負(fù)責(zé)提供分行計(jì),分別設(shè)在全市各主要街道上。分行負(fù)責(zé)提供分行計(jì)算機(jī)和柜員終端。柜員終端設(shè)在分行營(yíng)業(yè)廳及分行下屬的算機(jī)和柜員終端。柜員終端設(shè)在分行營(yíng)業(yè)廳及分行下屬的各個(gè)儲(chǔ)蓄所內(nèi)。該系統(tǒng)的軟件開發(fā)成本由各個(gè)分行分?jǐn)?。各個(gè)儲(chǔ)蓄所內(nèi)。該系統(tǒng)的軟件開
5、發(fā)成本由各個(gè)分行分?jǐn)偂?銀行柜員使用柜員終端處理儲(chǔ)戶提交的儲(chǔ)蓄事務(wù)。儲(chǔ)銀行柜員使用柜員終端處理儲(chǔ)戶提交的儲(chǔ)蓄事務(wù)。儲(chǔ)戶可以用現(xiàn)金或支票向自己擁有的某個(gè)賬戶內(nèi)存款或開新戶可以用現(xiàn)金或支票向自己擁有的某個(gè)賬戶內(nèi)存款或開新賬戶。儲(chǔ)戶也可以從自己的賬戶中取款。通常,一個(gè)儲(chǔ)戶賬戶。儲(chǔ)戶也可以從自己的賬戶中取款。通常,一個(gè)儲(chǔ)戶可能擁有多個(gè)賬戶。柜員負(fù)責(zé)把儲(chǔ)戶提交的存款或取款事可能擁有多個(gè)賬戶。柜員負(fù)責(zé)把儲(chǔ)戶提交的存款或取款事務(wù)輸進(jìn)柜員終端,接收儲(chǔ)戶交來的現(xiàn)金或支票,或付給儲(chǔ)務(wù)輸進(jìn)柜員終端,接收儲(chǔ)戶交來的現(xiàn)金或支票,或付給儲(chǔ)戶現(xiàn)金。柜員終端與相應(yīng)的分行計(jì)算機(jī)通信,分行計(jì)算機(jī)戶現(xiàn)金。柜員終端與相應(yīng)的分行計(jì)算機(jī)
6、通信,分行計(jì)算機(jī)具體處理針對(duì)某個(gè)賬戶的事務(wù)并且維護(hù)賬戶。具體處理針對(duì)某個(gè)賬戶的事務(wù)并且維護(hù)賬戶。 擁有銀行賬戶的儲(chǔ)戶有權(quán)申請(qǐng)領(lǐng)取現(xiàn)金兌換卡。使用擁有銀行賬戶的儲(chǔ)戶有權(quán)申請(qǐng)領(lǐng)取現(xiàn)金兌換卡。使用現(xiàn)金兌換卡可以通過現(xiàn)金兌換卡可以通過ATM訪問自己的賬戶。目前僅限于用訪問自己的賬戶。目前僅限于用現(xiàn)金兌換卡在現(xiàn)金兌換卡在ATM上提取現(xiàn)金上提取現(xiàn)金(即取款即取款),或查詢有關(guān)自己,或查詢有關(guān)自己賬戶的信息賬戶的信息(例如,某個(gè)指定賬戶上的余額例如,某個(gè)指定賬戶上的余額)。將來可能還。將來可能還要求使用要求使用ATM辦理轉(zhuǎn)賬、存款等事務(wù)。辦理轉(zhuǎn)賬、存款等事務(wù)。 所謂現(xiàn)金兌換卡就是一張?zhí)刂频拇趴?,上面有分行?/p>
7、所謂現(xiàn)金兌換卡就是一張?zhí)刂频拇趴?,上面有分行代碼和卡號(hào)。分行代碼惟一標(biāo)識(shí)總行下屬的一個(gè)分行,卡號(hào)碼和卡號(hào)。分行代碼惟一標(biāo)識(shí)總行下屬的一個(gè)分行,卡號(hào)確定了這張卡可以訪問哪些賬戶。通常,一張卡可以訪問確定了這張卡可以訪問哪些賬戶。通常,一張卡可以訪問儲(chǔ)戶的若干個(gè)賬戶,但是不一定能訪問這個(gè)儲(chǔ)戶的全部賬儲(chǔ)戶的若干個(gè)賬戶,但是不一定能訪問這個(gè)儲(chǔ)戶的全部賬戶。每張現(xiàn)金兌換卡僅屬于一個(gè)儲(chǔ)戶所有,但是,同一張戶。每張現(xiàn)金兌換卡僅屬于一個(gè)儲(chǔ)戶所有,但是,同一張卡可能有多個(gè)副本,因此,必須考慮同時(shí)在若干臺(tái)卡可能有多個(gè)副本,因此,必須考慮同時(shí)在若干臺(tái)ATM上上使用同樣的現(xiàn)金兌換卡的可能性。也就是說,系統(tǒng)應(yīng)該能使用同
8、樣的現(xiàn)金兌換卡的可能性。也就是說,系統(tǒng)應(yīng)該能夠處理并發(fā)的訪問。夠處理并發(fā)的訪問。 當(dāng)用戶把現(xiàn)金兌換卡插入當(dāng)用戶把現(xiàn)金兌換卡插入ATM之后,之后,ATM就與用就與用戶交互,以獲取有關(guān)這次事務(wù)的信息,并與中央計(jì)算機(jī)戶交互,以獲取有關(guān)這次事務(wù)的信息,并與中央計(jì)算機(jī)交換關(guān)于事務(wù)的信息。首先,交換關(guān)于事務(wù)的信息。首先,ATM要求用戶輸入密碼,要求用戶輸入密碼,接下來接下來ATM把從這張卡上讀到的信息以及用戶輸入的把從這張卡上讀到的信息以及用戶輸入的密碼傳給中央計(jì)算機(jī),請(qǐng)求中央計(jì)算機(jī)核對(duì)這些信息并密碼傳給中央計(jì)算機(jī),請(qǐng)求中央計(jì)算機(jī)核對(duì)這些信息并處理這次事務(wù)。中央計(jì)算機(jī)根據(jù)卡上的分行代碼確定這處理這次事務(wù)。
9、中央計(jì)算機(jī)根據(jù)卡上的分行代碼確定這次事務(wù)與分行的對(duì)應(yīng)關(guān)系,并且委托相應(yīng)的分行計(jì)算機(jī)次事務(wù)與分行的對(duì)應(yīng)關(guān)系,并且委托相應(yīng)的分行計(jì)算機(jī)驗(yàn)證用戶密碼。如果用戶輸入的密碼是正確的,驗(yàn)證用戶密碼。如果用戶輸入的密碼是正確的,ATM就要求用戶選擇事務(wù)類型就要求用戶選擇事務(wù)類型(取款、查詢等取款、查詢等)。當(dāng)用戶選擇。當(dāng)用戶選擇取款時(shí),取款時(shí),ATM請(qǐng)求用戶輸入取款額。最后,請(qǐng)求用戶輸入取款額。最后,ATM從現(xiàn)從現(xiàn)金出口吐出現(xiàn)金,并且打印出賬單交給用戶。金出口吐出現(xiàn)金,并且打印出賬單交給用戶。建立對(duì)象模型建立對(duì)象模型1 1、確定類與對(duì)象、確定類與對(duì)象2 2、確定關(guān)聯(lián)、確定關(guān)聯(lián)3 3、劃分主題、劃分主題4 4
10、、確定屬性、確定屬性5 5、識(shí)別繼承關(guān)系、識(shí)別繼承關(guān)系6 6、反復(fù)修改、反復(fù)修改找出候選的類與對(duì)象找出候選的類與對(duì)象篩選出正確的類與對(duì)象篩選出正確的類與對(duì)象初步確定關(guān)聯(lián)初步確定關(guān)聯(lián)篩選篩選進(jìn)一步完善進(jìn)一步完善分析分析選擇選擇建立對(duì)象模型建立對(duì)象模型 確定類與對(duì)象確定類與對(duì)象1. 找出候選的類與對(duì)象找出候選的類與對(duì)象 法一:可以參照法一:可以參照5類常見事物,找出在當(dāng)前問類常見事物,找出在當(dāng)前問題域中的候選類與對(duì)象。題域中的候選類與對(duì)象。 法二:法二:非正式分析法非正式分析法2.篩選出正確的類與對(duì)象篩選出正確的類與對(duì)象什么是非正式分析?什么是非正式分析?進(jìn)入實(shí)例學(xué)習(xí)進(jìn)入實(shí)例學(xué)習(xí)以需求陳述為依據(jù),
11、把陳述中的名詞作為類與對(duì)象以需求陳述為依據(jù),把陳述中的名詞作為類與對(duì)象的候選者,用形容詞作為確定屬性的線索,把動(dòng)詞的候選者,用形容詞作為確定屬性的線索,把動(dòng)詞作為服務(wù)作為服務(wù)(操作操作)的候選者。的候選者。自動(dòng)取款機(jī)(自動(dòng)取款機(jī)(ATMATM)中央計(jì)算機(jī)中央計(jì)算機(jī)分行計(jì)算機(jī)分行計(jì)算機(jī)柜員終端柜員終端總行總行分行分行成本成本市市街道街道營(yíng)業(yè)所營(yíng)業(yè)所儲(chǔ)蓄所儲(chǔ)蓄所柜員柜員儲(chǔ)戶儲(chǔ)戶現(xiàn)金現(xiàn)金支票支票賬戶賬戶事務(wù)事務(wù)現(xiàn)金兌換卡現(xiàn)金兌換卡余額余額磁卡磁卡分行代碼分行代碼卡號(hào)卡號(hào)用戶用戶副本副本信息信息密碼密碼類型類型取款額取款額賬單賬單銀行銀行系統(tǒng)系統(tǒng)網(wǎng)絡(luò)網(wǎng)絡(luò)軟件軟件訪問訪問2. 篩選出正確的類與對(duì)象篩選出
12、正確的類與對(duì)象v主要依據(jù)下列標(biāo)準(zhǔn),刪除不正確或不必要的類與對(duì)象:主要依據(jù)下列標(biāo)準(zhǔn),刪除不正確或不必要的類與對(duì)象:冗余。如果兩個(gè)類表達(dá)了同樣的信息,則應(yīng)該保留在此問冗余。如果兩個(gè)類表達(dá)了同樣的信息,則應(yīng)該保留在此問題域中最富于描述力的名稱。題域中最富于描述力的名稱。 無關(guān)。僅需要把與本問題密切相關(guān)的類與對(duì)象放進(jìn)目標(biāo)系無關(guān)。僅需要把與本問題密切相關(guān)的類與對(duì)象放進(jìn)目標(biāo)系統(tǒng)中。統(tǒng)中。(3) 籠統(tǒng)。要么系統(tǒng)無須記憶有關(guān)它們的信息,要么在需求陳籠統(tǒng)。要么系統(tǒng)無須記憶有關(guān)它們的信息,要么在需求陳述中有更明確更具體的名詞對(duì)應(yīng)它們所暗示的事務(wù),通常述中有更明確更具體的名詞對(duì)應(yīng)它們所暗示的事務(wù),通常把這些籠統(tǒng)的或
13、模糊的類去掉。把這些籠統(tǒng)的或模糊的類去掉。(4) 屬性。在需求陳述中有些名詞實(shí)際上描述的是其他對(duì)象的屬性。在需求陳述中有些名詞實(shí)際上描述的是其他對(duì)象的屬性,應(yīng)該把這些名詞從候選類與對(duì)象中去掉。屬性,應(yīng)該把這些名詞從候選類與對(duì)象中去掉。(5) 操作。在需求陳述中有時(shí)可能使用一些既可作為名詞,又操作。在需求陳述中有時(shí)可能使用一些既可作為名詞,又可作為動(dòng)詞的詞,應(yīng)該慎重考慮把它們作為類還是作為類可作為動(dòng)詞的詞,應(yīng)該慎重考慮把它們作為類還是作為類中定義的操作。中定義的操作。(6) 實(shí)現(xiàn)。在分析階段不應(yīng)該過早地考慮怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)。實(shí)現(xiàn)。在分析階段不應(yīng)該過早地考慮怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)。因此,應(yīng)該去掉僅和實(shí)現(xiàn)
14、有關(guān)的候選的類與對(duì)象。因此,應(yīng)該去掉僅和實(shí)現(xiàn)有關(guān)的候選的類與對(duì)象。v在在ATM系統(tǒng)的例子中,經(jīng)過初步篩選,剩下的類與對(duì)象:系統(tǒng)的例子中,經(jīng)過初步篩選,剩下的類與對(duì)象:ATM、中央計(jì)算機(jī)、分行計(jì)算機(jī)、柜員終端、總行、分行、中央計(jì)算機(jī)、分行計(jì)算機(jī)、柜員終端、總行、分行、柜員、儲(chǔ)戶、賬戶、事務(wù)、現(xiàn)金兌換卡。柜員、儲(chǔ)戶、賬戶、事務(wù)、現(xiàn)金兌換卡。思考: 用非正式分析法分析確定下述雜貨雜貨店問題問題中的對(duì)對(duì)象。 一家雜貨店想使其庫(kù)存管理自動(dòng)化,這家雜貨店擁有能夠記錄顧客購(gòu)買的所有商品的名稱和數(shù)量的銷售終端。顧客服務(wù)臺(tái)也有類似的終端,以處理顧客的退貨。它在碼頭有另一個(gè)終端處理供應(yīng)商發(fā)貨。肉食部和農(nóng)產(chǎn)品部有終
15、端用于輸入由于損耗導(dǎo)致的損失和折扣。肉食品 農(nóng)產(chǎn)品10.3.2 確定關(guān)聯(lián)確定關(guān)聯(lián)v兩個(gè)或多個(gè)對(duì)象之間的相互依賴、相互作用的關(guān)系就是關(guān)兩個(gè)或多個(gè)對(duì)象之間的相互依賴、相互作用的關(guān)系就是關(guān)聯(lián)。聯(lián)。1. 初步確定關(guān)聯(lián)初步確定關(guān)聯(lián)v在需求陳述中使用的描述性動(dòng)詞或動(dòng)詞詞組,通常表示關(guān)在需求陳述中使用的描述性動(dòng)詞或動(dòng)詞詞組,通常表示關(guān)聯(lián)關(guān)系。聯(lián)關(guān)系。v 通過直接提取需求陳述中的動(dòng)詞詞組,得出大多數(shù)關(guān)聯(lián)通過直接提取需求陳述中的動(dòng)詞詞組,得出大多數(shù)關(guān)聯(lián)v 通過分析需求陳述,發(fā)現(xiàn)一些在陳述中隱含的關(guān)聯(lián)通過分析需求陳述,發(fā)現(xiàn)一些在陳述中隱含的關(guān)聯(lián)v 分析員與用戶及領(lǐng)域?qū)<矣懻摚鶕?jù)領(lǐng)域知識(shí)再進(jìn)一步補(bǔ)分析員與用戶及領(lǐng)
16、域?qū)<矣懻?,根?jù)領(lǐng)域知識(shí)再進(jìn)一步補(bǔ)充一些關(guān)聯(lián)充一些關(guān)聯(lián)以以ATM系統(tǒng)為例,經(jīng)過分析可初步確定出哪些關(guān)聯(lián)?系統(tǒng)為例,經(jīng)過分析可初步確定出哪些關(guān)聯(lián)?(1) 直接提取動(dòng)詞短語(yǔ)得出的關(guān)聯(lián)?直接提取動(dòng)詞短語(yǔ)得出的關(guān)聯(lián)?(2) 需求陳述中隱含的關(guān)聯(lián)?需求陳述中隱含的關(guān)聯(lián)?(3) 根據(jù)問題域知識(shí)得出的關(guān)聯(lián)?根據(jù)問題域知識(shí)得出的關(guān)聯(lián)?ATM、中央計(jì)算機(jī)、分行計(jì)算機(jī)及柜員終端組成網(wǎng)絡(luò)。、中央計(jì)算機(jī)、分行計(jì)算機(jī)及柜員終端組成網(wǎng)絡(luò)??傂袚碛卸嗯_(tái)總行擁有多臺(tái)ATM。ATM設(shè)在主要街道上。設(shè)在主要街道上。分行提供分行計(jì)算機(jī)和柜員終端。分行提供分行計(jì)算機(jī)和柜員終端。柜員終端設(shè)在分行營(yíng)業(yè)廳及儲(chǔ)蓄所內(nèi)。柜員終端設(shè)在分行營(yíng)業(yè)廳
17、及儲(chǔ)蓄所內(nèi)。分行分?jǐn)傑浖_發(fā)成本。分行分?jǐn)傑浖_發(fā)成本。儲(chǔ)戶擁有賬戶。儲(chǔ)戶擁有賬戶。分行計(jì)算機(jī)處理針對(duì)賬戶的事務(wù)。分行計(jì)算機(jī)處理針對(duì)賬戶的事務(wù)。分行計(jì)算機(jī)維護(hù)賬戶。分行計(jì)算機(jī)維護(hù)賬戶。柜員終端與分行計(jì)算機(jī)通信。柜員終端與分行計(jì)算機(jī)通信。柜員輸入針對(duì)賬戶的事務(wù)。柜員輸入針對(duì)賬戶的事務(wù)。ATM與中央計(jì)算機(jī)交換關(guān)于事務(wù)的信息。與中央計(jì)算機(jī)交換關(guān)于事務(wù)的信息。中央計(jì)算機(jī)確定事務(wù)與分行的對(duì)應(yīng)關(guān)系。中央計(jì)算機(jī)確定事務(wù)與分行的對(duì)應(yīng)關(guān)系。ATM讀現(xiàn)金兌換卡。讀現(xiàn)金兌換卡。ATM與用戶交互。與用戶交互。ATM吐出現(xiàn)金。吐出現(xiàn)金。ATM打印賬單。打印賬單。系統(tǒng)處理并發(fā)的訪問。系統(tǒng)處理并發(fā)的訪問??傂杏筛鱾€(gè)分行組成
18、??傂杏筛鱾€(gè)分行組成。分行保管賬戶。分行保管賬戶。總行擁有中央計(jì)算機(jī)。總行擁有中央計(jì)算機(jī)。系統(tǒng)維護(hù)事務(wù)日志。系統(tǒng)維護(hù)事務(wù)日志。系統(tǒng)提供必要的安全性。系統(tǒng)提供必要的安全性。儲(chǔ)戶擁有現(xiàn)金兌換卡。儲(chǔ)戶擁有現(xiàn)金兌換卡?,F(xiàn)金兌換卡訪問賬戶。現(xiàn)金兌換卡訪問賬戶。分行雇用柜員。分行雇用柜員。2. 篩選篩選v篩選時(shí)主要根據(jù)下述標(biāo)準(zhǔn)刪除不正確或不必要的關(guān)聯(lián):篩選時(shí)主要根據(jù)下述標(biāo)準(zhǔn)刪除不正確或不必要的關(guān)聯(lián):已刪去的類之間的關(guān)聯(lián)。如果在分析確定類與對(duì)象的過程已刪去的類之間的關(guān)聯(lián)。如果在分析確定類與對(duì)象的過程中已經(jīng)刪掉了某個(gè)候選類,則與這個(gè)類有關(guān)的關(guān)聯(lián)也應(yīng)該中已經(jīng)刪掉了某個(gè)候選類,則與這個(gè)類有關(guān)的關(guān)聯(lián)也應(yīng)該刪去,或用
19、其他類重新表達(dá)這個(gè)關(guān)聯(lián)。刪去,或用其他類重新表達(dá)這個(gè)關(guān)聯(lián)。(2) 與問題無關(guān)的或應(yīng)在實(shí)現(xiàn)階段考慮的關(guān)聯(lián)。應(yīng)該把處在本與問題無關(guān)的或應(yīng)在實(shí)現(xiàn)階段考慮的關(guān)聯(lián)。應(yīng)該把處在本問題域之外的關(guān)聯(lián)或與實(shí)現(xiàn)密切相關(guān)的關(guān)聯(lián)刪去。問題域之外的關(guān)聯(lián)或與實(shí)現(xiàn)密切相關(guān)的關(guān)聯(lián)刪去。(3) 瞬時(shí)事件。關(guān)聯(lián)應(yīng)該描述問題域的靜態(tài)結(jié)構(gòu),而不應(yīng)該是瞬時(shí)事件。關(guān)聯(lián)應(yīng)該描述問題域的靜態(tài)結(jié)構(gòu),而不應(yīng)該是一個(gè)瞬時(shí)事件。如果用動(dòng)作表述的需求隱含了問題域的某一個(gè)瞬時(shí)事件。如果用動(dòng)作表述的需求隱含了問題域的某種基本結(jié)構(gòu),則應(yīng)該用適當(dāng)?shù)膭?dòng)詞詞組重新表示這個(gè)關(guān)聯(lián)。種基本結(jié)構(gòu),則應(yīng)該用適當(dāng)?shù)膭?dòng)詞詞組重新表示這個(gè)關(guān)聯(lián)。(4) 三元關(guān)聯(lián)。三個(gè)或三個(gè)以上對(duì)
20、象之間的關(guān)聯(lián),大多可以分三元關(guān)聯(lián)。三個(gè)或三個(gè)以上對(duì)象之間的關(guān)聯(lián),大多可以分解為二元關(guān)聯(lián)或用詞組描述成限定的關(guān)聯(lián)。解為二元關(guān)聯(lián)或用詞組描述成限定的關(guān)聯(lián)。(5) 派生關(guān)聯(lián)。應(yīng)該去掉那些可以用其他關(guān)聯(lián)定義的冗余關(guān)聯(lián)。派生關(guān)聯(lián)。應(yīng)該去掉那些可以用其他關(guān)聯(lián)定義的冗余關(guān)聯(lián)。3. 改進(jìn)改進(jìn)v通常從以下幾個(gè)方面改進(jìn)經(jīng)過篩選后余下的關(guān)聯(lián):通常從以下幾個(gè)方面改進(jìn)經(jīng)過篩選后余下的關(guān)聯(lián):(1) 正名。應(yīng)該仔細(xì)選擇含義更明確的名字作為關(guān)聯(lián)名。正名。應(yīng)該仔細(xì)選擇含義更明確的名字作為關(guān)聯(lián)名。(2) 分解。為了能夠適用于不同的關(guān)聯(lián),必要時(shí)應(yīng)該分解以前分解。為了能夠適用于不同的關(guān)聯(lián),必要時(shí)應(yīng)該分解以前確定的類與對(duì)象。確定的類與
21、對(duì)象。(3) 補(bǔ)充。發(fā)現(xiàn)了遺漏的關(guān)聯(lián)就應(yīng)該及時(shí)補(bǔ)上。補(bǔ)充。發(fā)現(xiàn)了遺漏的關(guān)聯(lián)就應(yīng)該及時(shí)補(bǔ)上。(4) 標(biāo)明重?cái)?shù)。應(yīng)該初步判定各個(gè)關(guān)聯(lián)的類型,并粗略地確定標(biāo)明重?cái)?shù)。應(yīng)該初步判定各個(gè)關(guān)聯(lián)的類型,并粗略地確定關(guān)聯(lián)的重?cái)?shù)。關(guān)聯(lián)的重?cái)?shù)。ATM系統(tǒng)原始的類圖:系統(tǒng)原始的類圖:10.3.3 劃分主題劃分主題v把系統(tǒng)劃分成幾個(gè)不同的主題,也就是在概念上把系統(tǒng)包把系統(tǒng)劃分成幾個(gè)不同的主題,也就是在概念上把系統(tǒng)包含的內(nèi)容分解成若干個(gè)范疇。含的內(nèi)容分解成若干個(gè)范疇。在開發(fā)很小的系統(tǒng)時(shí),無須引入主題層;在開發(fā)很小的系統(tǒng)時(shí),無須引入主題層;對(duì)于含有較多對(duì)象的系統(tǒng),則先識(shí)別出類與對(duì)象和關(guān)聯(lián),對(duì)于含有較多對(duì)象的系統(tǒng),則先識(shí)別出
22、類與對(duì)象和關(guān)聯(lián),然后劃分主題,并用它作為指導(dǎo)開發(fā)者和用戶觀察整個(gè)模然后劃分主題,并用它作為指導(dǎo)開發(fā)者和用戶觀察整個(gè)模型的一種機(jī)制;型的一種機(jī)制;對(duì)于規(guī)模極大的系統(tǒng),則首先由高級(jí)分析員粗略地識(shí)別對(duì)對(duì)于規(guī)模極大的系統(tǒng),則首先由高級(jí)分析員粗略地識(shí)別對(duì)象和關(guān)聯(lián),然后初步劃分主題,經(jīng)進(jìn)一步分析,對(duì)系統(tǒng)結(jié)象和關(guān)聯(lián),然后初步劃分主題,經(jīng)進(jìn)一步分析,對(duì)系統(tǒng)結(jié)構(gòu)有更深入的了解之后,再進(jìn)一步修改和精煉主題。構(gòu)有更深入的了解之后,再進(jìn)一步修改和精煉主題。v確定主題的兩個(gè)原則:確定主題的兩個(gè)原則:v應(yīng)該按問題領(lǐng)域而不是用功能分解方法來確定主題;應(yīng)該按問題領(lǐng)域而不是用功能分解方法來確定主題;v應(yīng)該按照使不同主題內(nèi)的對(duì)象
23、相互間依賴和交互最少的應(yīng)該按照使不同主題內(nèi)的對(duì)象相互間依賴和交互最少的原則來確定主題。原則來確定主題。v以以ATM系統(tǒng)為例,可以把它劃分成系統(tǒng)為例,可以把它劃分成3個(gè)主題:個(gè)主題:v總行(包含總行和中央計(jì)算機(jī)這兩個(gè)類)總行(包含總行和中央計(jì)算機(jī)這兩個(gè)類)v分行(包含分行、分行計(jì)算機(jī)、柜員終端、柜員事務(wù)、分行(包含分行、分行計(jì)算機(jī)、柜員終端、柜員事務(wù)、柜員和賬戶等類)柜員和賬戶等類)vATM(包含(包含ATM、遠(yuǎn)程事務(wù)、現(xiàn)金兌換卡和儲(chǔ)戶等類)、遠(yuǎn)程事務(wù)、現(xiàn)金兌換卡和儲(chǔ)戶等類)10.3.4 確定屬性確定屬性v確定屬性的過程包括分析和選擇兩個(gè)步驟。確定屬性的過程包括分析和選擇兩個(gè)步驟。1. 分析分析
24、v通常,在需求陳述中用名詞詞組表示屬性,用形容詞表示通常,在需求陳述中用名詞詞組表示屬性,用形容詞表示可枚舉的具體屬性。但是不可能在需求陳述中找到所有屬可枚舉的具體屬性。但是不可能在需求陳述中找到所有屬性,分析員還必須藉助于領(lǐng)域知識(shí)和常識(shí)才能分析得出需性,分析員還必須藉助于領(lǐng)域知識(shí)和常識(shí)才能分析得出需要的屬性。要的屬性。v應(yīng)該僅考慮與具體應(yīng)用直接相關(guān)的屬性,不要考慮那些超應(yīng)該僅考慮與具體應(yīng)用直接相關(guān)的屬性,不要考慮那些超出所要解決的問題范圍的屬性。出所要解決的問題范圍的屬性。2. 選擇選擇 v認(rèn)真考察經(jīng)初步分析而確定下來的那些屬性,從中刪掉不認(rèn)真考察經(jīng)初步分析而確定下來的那些屬性,從中刪掉不正
25、確的或不必要的屬性。通常有以下幾種常見情況:正確的或不必要的屬性。通常有以下幾種常見情況:誤把對(duì)象當(dāng)作屬性誤把對(duì)象當(dāng)作屬性誤把關(guān)聯(lián)類的屬性當(dāng)作一般對(duì)象的屬性誤把關(guān)聯(lián)類的屬性當(dāng)作一般對(duì)象的屬性誤把限定當(dāng)成屬性誤把限定當(dāng)成屬性誤把內(nèi)部狀態(tài)當(dāng)成了屬性誤把內(nèi)部狀態(tài)當(dāng)成了屬性過于細(xì)化。在分析階段應(yīng)該忽略那些對(duì)大多數(shù)操作都沒有過于細(xì)化。在分析階段應(yīng)該忽略那些對(duì)大多數(shù)操作都沒有影響的屬性影響的屬性存在不一致的屬性存在不一致的屬性添加了屬性之后的添加了屬性之后的ATMATM系統(tǒng)的對(duì)象模型系統(tǒng)的對(duì)象模型10.3.5 識(shí)別繼承關(guān)系識(shí)別繼承關(guān)系v確定了類中應(yīng)該定義的屬性之后,應(yīng)識(shí)別繼承關(guān)系并據(jù)此確定了類中應(yīng)該定義的
26、屬性之后,應(yīng)識(shí)別繼承關(guān)系并據(jù)此對(duì)系統(tǒng)中眾多的類加以組織。它應(yīng)該反映出一定深度的領(lǐng)對(duì)系統(tǒng)中眾多的類加以組織。它應(yīng)該反映出一定深度的領(lǐng)域知識(shí),因此必須有領(lǐng)域?qū)<颐芮信浜喜拍芡瓿?。域知識(shí),因此必須有領(lǐng)域?qū)<颐芮信浜喜拍芡瓿伞一般說來,可以使用兩種方式建立繼承一般說來,可以使用兩種方式建立繼承( (即泛化即泛化) )關(guān)系:關(guān)系:(1) (1) 自底向上:自底向上: 抽象出現(xiàn)有類的共同性質(zhì)泛化出父類,這個(gè)抽象出現(xiàn)有類的共同性質(zhì)泛化出父類,這個(gè)過程實(shí)質(zhì)上模擬了人類歸納思維過程。過程實(shí)質(zhì)上模擬了人類歸納思維過程。(2) (2) 自頂向下:自頂向下: 把現(xiàn)有類細(xì)化成更具體的子類,這模擬了人把現(xiàn)有類細(xì)化成更具
27、體的子類,這模擬了人類的演繹思維過程。類的演繹思維過程。帶有繼承關(guān)系的帶有繼承關(guān)系的ATMATM系統(tǒng)對(duì)象模型系統(tǒng)對(duì)象模型10.3.6 反復(fù)修改反復(fù)修改v經(jīng)過一次建模過程很難得到完全正確的對(duì)象模型。事實(shí)上,經(jīng)過一次建模過程很難得到完全正確的對(duì)象模型。事實(shí)上,軟件開發(fā)過程就是一個(gè)多次反復(fù)修改、逐步完善的過程。軟件開發(fā)過程就是一個(gè)多次反復(fù)修改、逐步完善的過程。 v在建模的任何一個(gè)步驟中,如果發(fā)現(xiàn)了模型的缺陷,都必在建模的任何一個(gè)步驟中,如果發(fā)現(xiàn)了模型的缺陷,都必須返回到前期階段進(jìn)行修改。須返回到前期階段進(jìn)行修改。v在實(shí)際工作中,建模的步驟并不一定嚴(yán)格按照前面講述的在實(shí)際工作中,建模的步驟并不一定嚴(yán)格
28、按照前面講述的次序進(jìn)行。次序進(jìn)行。以以ATMATM系統(tǒng)為例,討論可能做的修改:系統(tǒng)為例,討論可能做的修改:1. 1. 分解分解“現(xiàn)金兌換卡現(xiàn)金兌換卡”類:類:把把“現(xiàn)金兌換卡現(xiàn)金兌換卡”類分解為類分解為“卡卡權(quán)限權(quán)限”和和“現(xiàn)金兌換卡現(xiàn)金兌換卡”兩個(gè)類,將使每個(gè)類的功能更單兩個(gè)類,將使每個(gè)類的功能更單一:一:v“卡權(quán)限卡權(quán)限”類:標(biāo)志儲(chǔ)戶訪問賬戶的權(quán)限類:標(biāo)志儲(chǔ)戶訪問賬戶的權(quán)限v“現(xiàn)金兌換卡現(xiàn)金兌換卡”類:是含有分行代碼和卡號(hào)的數(shù)據(jù)載體,類:是含有分行代碼和卡號(hào)的數(shù)據(jù)載體,多張現(xiàn)金兌換卡可能對(duì)應(yīng)著相同的訪問權(quán)限。多張現(xiàn)金兌換卡可能對(duì)應(yīng)著相同的訪問權(quán)限。2. “2. “事務(wù)事務(wù)”由由“更新更新”
29、組成:組成:一個(gè)事務(wù)包含對(duì)賬戶的若干次一個(gè)事務(wù)包含對(duì)賬戶的若干次更新,更新, “ “更新更新”雖然代表一個(gè)動(dòng)作,但是它有自己的屬雖然代表一個(gè)動(dòng)作,但是它有自己的屬性,應(yīng)該把它作為一個(gè)類。性,應(yīng)該把它作為一個(gè)類。3. 3. 把把“分行分行”與與“分行計(jì)算機(jī)分行計(jì)算機(jī)”合并合并修改后的修改后的ATMATM系統(tǒng)對(duì)象模型系統(tǒng)對(duì)象模型思考:建立下述牙科診所管理系統(tǒng)的對(duì)象模型對(duì)象模型:王大夫在小鎮(zhèn)開了一家牙科診所。他有一個(gè)牙科助手,一個(gè)牙科保健員,王大夫在小鎮(zhèn)開了一家牙科診所。他有一個(gè)牙科助手,一個(gè)牙科保健員,一個(gè)接待員。一個(gè)接待員。當(dāng)病人打電話預(yù)約時(shí),接待員將查閱預(yù)約登記表,如果病人申請(qǐng)的就診當(dāng)病人打電
30、話預(yù)約時(shí),接待員將查閱預(yù)約登記表,如果病人申請(qǐng)的就診時(shí)間與已定下的預(yù)約時(shí)間沖突,則接待員建議一個(gè)就診時(shí)間以安排病人時(shí)間與已定下的預(yù)約時(shí)間沖突,則接待員建議一個(gè)就診時(shí)間以安排病人盡早得到診治。如果病人同意建議的就診時(shí)間,接待員將輸入約定時(shí)間盡早得到診治。如果病人同意建議的就診時(shí)間,接待員將輸入約定時(shí)間和病人的名字。系統(tǒng)將核實(shí)病人的名字并提供記錄的病人數(shù)據(jù),數(shù)據(jù)包和病人的名字。系統(tǒng)將核實(shí)病人的名字并提供記錄的病人數(shù)據(jù),數(shù)據(jù)包括病人的病歷號(hào)等。在每次治療或清洗后,助手或保健員將標(biāo)記相應(yīng)的括病人的病歷號(hào)等。在每次治療或清洗后,助手或保健員將標(biāo)記相應(yīng)的預(yù)約診治已經(jīng)完成,如果必要的話會(huì)安排病人下一次再來。
31、預(yù)約診治已經(jīng)完成,如果必要的話會(huì)安排病人下一次再來。系統(tǒng)能夠按病人姓名和按日期進(jìn)行查詢,能夠顯示記錄的病人數(shù)據(jù)和預(yù)系統(tǒng)能夠按病人姓名和按日期進(jìn)行查詢,能夠顯示記錄的病人數(shù)據(jù)和預(yù)約信息。接待員可以取消預(yù)約,可以打印出前兩天預(yù)約尚未接診的病人約信息。接待員可以取消預(yù)約,可以打印出前兩天預(yù)約尚未接診的病人清單。系統(tǒng)可以從病人記錄中獲知病人的電話號(hào)碼。接待員還可以打印清單。系統(tǒng)可以從病人記錄中獲知病人的電話號(hào)碼。接待員還可以打印出關(guān)于所有病人的每天和每周的工作安排。出關(guān)于所有病人的每天和每周的工作安排。10.4 建立動(dòng)態(tài)模型建立動(dòng)態(tài)模型v在開發(fā)交互式系統(tǒng)時(shí),動(dòng)態(tài)模型起著很重要的作用。在開發(fā)交互式系統(tǒng)時(shí)
32、,動(dòng)態(tài)模型起著很重要的作用。v建立動(dòng)態(tài)模型的步驟:建立動(dòng)態(tài)模型的步驟:v 編寫典型交互行為的腳本編寫典型交互行為的腳本v 從腳本中提取出事件,確定觸發(fā)每個(gè)事件的動(dòng)作對(duì)象以及從腳本中提取出事件,確定觸發(fā)每個(gè)事件的動(dòng)作對(duì)象以及接受事件的目標(biāo)對(duì)象接受事件的目標(biāo)對(duì)象v 排列事件發(fā)生的次序,確定每個(gè)對(duì)象可能有的狀態(tài)及狀態(tài)排列事件發(fā)生的次序,確定每個(gè)對(duì)象可能有的狀態(tài)及狀態(tài)間的轉(zhuǎn)換關(guān)系,并用狀態(tài)圖描繪它們間的轉(zhuǎn)換關(guān)系,并用狀態(tài)圖描繪它們v 比較各個(gè)對(duì)象的狀態(tài)圖,檢查它們之間的一致性,確保事比較各個(gè)對(duì)象的狀態(tài)圖,檢查它們之間的一致性,確保事件之間的匹配件之間的匹配10.4.1 編寫腳本編寫腳本v腳本:指系統(tǒng)在
33、某一執(zhí)行期間內(nèi)出現(xiàn)的一系列事件,用來腳本:指系統(tǒng)在某一執(zhí)行期間內(nèi)出現(xiàn)的一系列事件,用來描述用戶描述用戶( (或其他外部設(shè)備或其他外部設(shè)備) )與目標(biāo)系統(tǒng)之間的一個(gè)或多個(gè)與目標(biāo)系統(tǒng)之間的一個(gè)或多個(gè)典型的交互過程。編寫腳本的過程,實(shí)質(zhì)上就是分析用戶典型的交互過程。編寫腳本的過程,實(shí)質(zhì)上就是分析用戶對(duì)系統(tǒng)交互行為的要求的過程。對(duì)系統(tǒng)交互行為的要求的過程。v腳本描寫的范圍主要由編寫腳本的具體目的決定。腳本描寫的范圍主要由編寫腳本的具體目的決定。v編寫腳本時(shí),首先編寫正常情況的腳本。然后考慮特殊情編寫腳本時(shí),首先編寫正常情況的腳本。然后考慮特殊情況,最后考慮出錯(cuò)情況。況,最后考慮出錯(cuò)情況。v對(duì)于每個(gè)事件
34、,都應(yīng)該指明觸發(fā)該事件的動(dòng)作對(duì)象、接受對(duì)于每個(gè)事件,都應(yīng)該指明觸發(fā)該事件的動(dòng)作對(duì)象、接受事件的目標(biāo)對(duì)象以及該事件的參數(shù)。事件的目標(biāo)對(duì)象以及該事件的參數(shù)。v課本表課本表10.110.1、10.210.210.4.2 設(shè)想用戶界面設(shè)想用戶界面v大多數(shù)交互行為都可以分為應(yīng)用邏輯和用戶界面兩部分。大多數(shù)交互行為都可以分為應(yīng)用邏輯和用戶界面兩部分。應(yīng)用邏輯是內(nèi)在的、本質(zhì)的內(nèi)容,用戶界面是外在的表現(xiàn)應(yīng)用邏輯是內(nèi)在的、本質(zhì)的內(nèi)容,用戶界面是外在的表現(xiàn)形式,采用不同界面可以實(shí)現(xiàn)同樣的程序邏輯。形式,采用不同界面可以實(shí)現(xiàn)同樣的程序邏輯。v在分析階段也不能完全忽略用戶界面。在這個(gè)階段用戶界在分析階段也不能完全忽略
35、用戶界面。在這個(gè)階段用戶界面的細(xì)節(jié)并不太重要,重要的是在這種界面下的信息交換面的細(xì)節(jié)并不太重要,重要的是在這種界面下的信息交換方式。方式。v軟件開發(fā)人員往往快速地建立起用戶界面的原型,供用戶軟件開發(fā)人員往往快速地建立起用戶界面的原型,供用戶試用與評(píng)價(jià)。試用與評(píng)價(jià)。ATMATM系統(tǒng)界面格式:系統(tǒng)界面格式:10.4.3 畫事件跟蹤圖畫事件跟蹤圖v完整、正確的腳本是建立動(dòng)態(tài)模型的基礎(chǔ)。但是,用自然完整、正確的腳本是建立動(dòng)態(tài)模型的基礎(chǔ)。但是,用自然語(yǔ)言書寫的腳本往往不夠簡(jiǎn)明,而且可能有二義性。為了語(yǔ)言書寫的腳本往往不夠簡(jiǎn)明,而且可能有二義性。為了更好的建立動(dòng)態(tài)模型,通常在畫狀態(tài)圖之前先畫出事件跟更好的
36、建立動(dòng)態(tài)模型,通常在畫狀態(tài)圖之前先畫出事件跟蹤圖。蹤圖。1. 確定事件確定事件v仔細(xì)分析每個(gè)腳本,從中提取出所有外部事件。仔細(xì)分析每個(gè)腳本,從中提取出所有外部事件。v事件包括系統(tǒng)與用戶事件包括系統(tǒng)與用戶( (或外部設(shè)備或外部設(shè)備) )交互的所有信號(hào)、輸入、交互的所有信號(hào)、輸入、輸出、中斷、動(dòng)作等;傳遞信息的對(duì)象的動(dòng)作也是事件;輸出、中斷、動(dòng)作等;傳遞信息的對(duì)象的動(dòng)作也是事件;大多數(shù)對(duì)象到對(duì)象的交互行為都對(duì)應(yīng)著事件。大多數(shù)對(duì)象到對(duì)象的交互行為都對(duì)應(yīng)著事件。v應(yīng)該把對(duì)控制流產(chǎn)生相同效果的那些事件組合在一起作為應(yīng)該把對(duì)控制流產(chǎn)生相同效果的那些事件組合在一起作為一類事件,并給它們?nèi)∫粋€(gè)惟一的名字;應(yīng)該
37、把對(duì)控制流一類事件,并給它們?nèi)∫粋€(gè)惟一的名字;應(yīng)該把對(duì)控制流有不同影響的那些事件區(qū)分開來,不要誤把它們組合在一有不同影響的那些事件區(qū)分開來,不要誤把它們組合在一起。起。v經(jīng)過分析,應(yīng)該區(qū)分出每類事件的發(fā)送對(duì)象和接受對(duì)象。經(jīng)過分析,應(yīng)該區(qū)分出每類事件的發(fā)送對(duì)象和接受對(duì)象。2. 畫出事件跟蹤圖畫出事件跟蹤圖10.4.4 畫狀態(tài)圖畫狀態(tài)圖v狀態(tài)圖描繪事件與對(duì)象狀態(tài)的關(guān)系。由事件引起的狀態(tài)改狀態(tài)圖描繪事件與對(duì)象狀態(tài)的關(guān)系。由事件引起的狀態(tài)改變稱為變稱為“轉(zhuǎn)換轉(zhuǎn)換”。如果一個(gè)事件并不引起當(dāng)前狀態(tài)發(fā)生轉(zhuǎn)。如果一個(gè)事件并不引起當(dāng)前狀態(tài)發(fā)生轉(zhuǎn)換,則可忽略這個(gè)事件。換,則可忽略這個(gè)事件。v通常,用一張狀態(tài)圖描繪
38、一類對(duì)象的行為,但并不是任何通常,用一張狀態(tài)圖描繪一類對(duì)象的行為,但并不是任何一個(gè)類都需要一張狀態(tài)圖,系統(tǒng)分析員僅需集中精力考慮一個(gè)類都需要一張狀態(tài)圖,系統(tǒng)分析員僅需集中精力考慮具有重要交互行為的那些類。具有重要交互行為的那些類。v從事件跟蹤圖出發(fā)畫某類對(duì)象的狀態(tài)圖:從事件跟蹤圖出發(fā)畫某類對(duì)象的狀態(tài)圖:v把事件跟蹤圖中指向某條豎線(某類對(duì)象)的那些箭把事件跟蹤圖中指向某條豎線(某類對(duì)象)的那些箭頭線(事件)作為狀態(tài)圖中的有向邊頭線(事件)作為狀態(tài)圖中的有向邊( (即箭頭線即箭頭線) ),邊,邊上標(biāo)以事件名;上標(biāo)以事件名;v兩個(gè)事件之間的間隔就是一個(gè)狀態(tài);兩個(gè)事件之間的間隔就是一個(gè)狀態(tài);v把從事
39、件跟蹤圖中某條豎線(某類對(duì)象)射出的箭頭把從事件跟蹤圖中某條豎線(某類對(duì)象)射出的箭頭線作為此類對(duì)象達(dá)到某個(gè)狀態(tài)時(shí)所做的行為;線作為此類對(duì)象達(dá)到某個(gè)狀態(tài)時(shí)所做的行為;v根據(jù)一張事件跟蹤圖畫出狀態(tài)圖之后,再把其他腳本的事根據(jù)一張事件跟蹤圖畫出狀態(tài)圖之后,再把其他腳本的事件跟蹤圖合并到已畫出的狀態(tài)圖中:在事件跟蹤圖中找出件跟蹤圖合并到已畫出的狀態(tài)圖中:在事件跟蹤圖中找出以前考慮過的腳本的分支點(diǎn)(例如以前考慮過的腳本的分支點(diǎn)(例如“驗(yàn)證賬戶驗(yàn)證賬戶”),然后),然后把其他腳本中的事件序列并入已有的狀態(tài)圖中,作為一條把其他腳本中的事件序列并入已有的狀態(tài)圖中,作為一條可選的路徑。可選的路徑。v考慮完正常
40、事件之后再考慮邊界情況和特殊情況,其中包考慮完正常事件之后再考慮邊界情況和特殊情況,其中包括在不適當(dāng)時(shí)候發(fā)生的事件。括在不適當(dāng)時(shí)候發(fā)生的事件。v狀態(tài)圖構(gòu)造完成后,還需進(jìn)一步設(shè)想各種可能出現(xiàn)的情況狀態(tài)圖構(gòu)造完成后,還需進(jìn)一步設(shè)想各種可能出現(xiàn)的情況來測(cè)試狀態(tài)圖的完整性和出錯(cuò)處理能力。來測(cè)試狀態(tài)圖的完整性和出錯(cuò)處理能力。ATMATM類的狀態(tài)圖類的狀態(tài)圖總行類的狀態(tài)圖總行類的狀態(tài)圖分行類的狀態(tài)圖分行類的狀態(tài)圖10.4.5 審查動(dòng)態(tài)模型審查動(dòng)態(tài)模型v各個(gè)類的狀態(tài)圖通過共享事件合并起來,構(gòu)成了系統(tǒng)的動(dòng)各個(gè)類的狀態(tài)圖通過共享事件合并起來,構(gòu)成了系統(tǒng)的動(dòng)態(tài)模型。態(tài)模型。 v在完成了每個(gè)具有重要交互行為的類的狀
41、態(tài)圖之后,應(yīng)該在完成了每個(gè)具有重要交互行為的類的狀態(tài)圖之后,應(yīng)該檢查系統(tǒng)級(jí)的完整性和一致性:檢查系統(tǒng)級(jí)的完整性和一致性:v每個(gè)事件都應(yīng)該既有發(fā)送對(duì)象又有接受對(duì)象;每個(gè)事件都應(yīng)該既有發(fā)送對(duì)象又有接受對(duì)象;v除了交互序列的起點(diǎn)和終點(diǎn),每個(gè)狀態(tài)都應(yīng)該有前驅(qū)除了交互序列的起點(diǎn)和終點(diǎn),每個(gè)狀態(tài)都應(yīng)該有前驅(qū)和后繼。和后繼。v應(yīng)該審查每個(gè)事件,跟蹤它對(duì)系統(tǒng)中各個(gè)對(duì)象所產(chǎn)生的效應(yīng)該審查每個(gè)事件,跟蹤它對(duì)系統(tǒng)中各個(gè)對(duì)象所產(chǎn)生的效果,以保證它們與每個(gè)腳本都匹配。果,以保證它們與每個(gè)腳本都匹配。建立上述牙科診所管理系統(tǒng)的動(dòng)態(tài)模型。建立上述牙科診所管理系統(tǒng)的動(dòng)態(tài)模型。10.5 建立功能模型建立功能模型v功能模型表明了
42、系統(tǒng)中數(shù)據(jù)之間的依賴關(guān)系,以及有關(guān)的功能模型表明了系統(tǒng)中數(shù)據(jù)之間的依賴關(guān)系,以及有關(guān)的數(shù)據(jù)處理功能,它由一組數(shù)據(jù)流圖組成。其中的處理功能數(shù)據(jù)處理功能,它由一組數(shù)據(jù)流圖組成。其中的處理功能可以用可以用IPOIPO圖圖( (或表或表) )、偽碼等多種方式進(jìn)一步描述。、偽碼等多種方式進(jìn)一步描述。v通常在建立了對(duì)象模型和動(dòng)態(tài)模型之后再建立功能模型。通常在建立了對(duì)象模型和動(dòng)態(tài)模型之后再建立功能模型。10.5.1 畫出基本系統(tǒng)模型圖畫出基本系統(tǒng)模型圖v基本系統(tǒng)模型由若干個(gè)數(shù)據(jù)源點(diǎn)基本系統(tǒng)模型由若干個(gè)數(shù)據(jù)源點(diǎn)/ /終點(diǎn),及一個(gè)處理框組終點(diǎn),及一個(gè)處理框組成,這個(gè)處理框代表了系統(tǒng)加工、變換數(shù)據(jù)的整體功能。成,
43、這個(gè)處理框代表了系統(tǒng)加工、變換數(shù)據(jù)的整體功能。10.5.2 畫出功能級(jí)數(shù)據(jù)流圖畫出功能級(jí)數(shù)據(jù)流圖v把基本系統(tǒng)模型中單一的處理框分解成若干個(gè)處理框,以把基本系統(tǒng)模型中單一的處理框分解成若干個(gè)處理框,以描述系統(tǒng)加工、變換數(shù)據(jù)的基本功能,就得到功能級(jí)數(shù)據(jù)描述系統(tǒng)加工、變換數(shù)據(jù)的基本功能,就得到功能級(jí)數(shù)據(jù)流圖。流圖。ATMATM系統(tǒng)功能級(jí)數(shù)據(jù)流圖系統(tǒng)功能級(jí)數(shù)據(jù)流圖10.5.3 描述處理框功能描述處理框功能v把數(shù)據(jù)流圖分解細(xì)化到一定程度之后,就應(yīng)該描述圖中各把數(shù)據(jù)流圖分解細(xì)化到一定程度之后,就應(yīng)該描述圖中各個(gè)處理框的功能。應(yīng)該注意的是,要著重描述每個(gè)處理框個(gè)處理框的功能。應(yīng)該注意的是,要著重描述每個(gè)處理
44、框所代表的功能,而不是實(shí)現(xiàn)功能的具體算法。所代表的功能,而不是實(shí)現(xiàn)功能的具體算法。v描述既可以是說明性的,也可以是過程性的。描述既可以是說明性的,也可以是過程性的。v說明性描述規(guī)定了輸入值和輸出值之間的關(guān)系,以及說明性描述規(guī)定了輸入值和輸出值之間的關(guān)系,以及輸出值應(yīng)遵循的規(guī)律。輸出值應(yīng)遵循的規(guī)律。v過程性描述則通過算法說明過程性描述則通過算法說明“做什么做什么”。v一般說來,說明性描述優(yōu)于過程性描述。一般說來,說明性描述優(yōu)于過程性描述。v課本課本255255頁(yè)表頁(yè)表10.310.3:對(duì)更新賬戶功能的描述:對(duì)更新賬戶功能的描述建立用例模型 使用用例方法來描述系統(tǒng)的功能需求的過程就是用例建模,主要
45、包括下面兩部分: 用例圖:確定系統(tǒng)中所包含的參與者、用例和兩者之間的對(duì)應(yīng)關(guān)系,是關(guān)于系統(tǒng)功能的概述; 用例規(guī)約(use case specification):針對(duì)每一個(gè)用例都應(yīng)該有一個(gè)用例規(guī)約文檔與之相對(duì)應(yīng),該文檔描述用例的細(xì)節(jié)內(nèi)容。 用例建模過程中,建議先找出參與者,再根據(jù)參與者確定每個(gè)參與者相關(guān)的用例,最后再細(xì)化每一個(gè)用例的用例規(guī)約。尋找參與者 尋找參與者可以從以下問題入手: 系統(tǒng)開發(fā)完成之后,哪些人會(huì)使用這個(gè)系統(tǒng)? 系統(tǒng)需要從哪些人或其他系統(tǒng)中獲得數(shù)據(jù)? 系統(tǒng)會(huì)為哪些人或其他系統(tǒng)提供數(shù)據(jù)? 系統(tǒng)會(huì)與哪些其他系統(tǒng)相關(guān)聯(lián)? 系統(tǒng)是由誰(shuí)來維護(hù)和管理的? 參與者是由系統(tǒng)邊界所決定的。用例建模時(shí)不要將一些系統(tǒng)的組成結(jié)構(gòu)作為參與者來進(jìn)行抽象。 有時(shí)需要在系統(tǒng)內(nèi)部定時(shí)地執(zhí)行一些操作,從表面上看這些操作并不是由外部的人或系統(tǒng)觸發(fā)的,應(yīng)該怎樣用用例方法來表述這一類功能需求呢? 可以抽象出一個(gè)系統(tǒng)時(shí)鐘或定時(shí)器參與者,利用該參與者來觸發(fā)這一類定時(shí)操作。確定用例 尋找用例可以從以下問題入手(針對(duì)每一個(gè)參與者
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 深入探討科技企業(yè)如何通過強(qiáng)化知識(shí)產(chǎn)權(quán)保護(hù)來提升品牌形象和競(jìng)爭(zhēng)力
- 現(xiàn)代綠色辦公樓的設(shè)計(jì)與施工經(jīng)驗(yàn)分享
- 生產(chǎn)制造中基于智能算法的調(diào)度系統(tǒng)設(shè)計(jì)
- 2023三年級(jí)英語(yǔ)上冊(cè) Unit 3 My friends第4課時(shí)說課稿 牛津譯林版
- 2024年春八年級(jí)語(yǔ)文下冊(cè) 第二單元 5 大自然的語(yǔ)言說課稿 新人教版
- 9 烏鴉喝水(說課稿)-2024-2025學(xué)年統(tǒng)編版語(yǔ)文一年級(jí)上冊(cè)
- Unit 4 My Family Lesson 2(說課稿)-2023-2024學(xué)年人教新起點(diǎn)版英語(yǔ)三年級(jí)下冊(cè)
- Unit 6 Useful numbers Lesson 2(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語(yǔ)三年級(jí)上冊(cè)
- 2024-2025學(xué)年高中歷史 第三單元 各國(guó)經(jīng)濟(jì)體制的創(chuàng)新和調(diào)整 第16課 戰(zhàn)后資本主義經(jīng)濟(jì)的調(diào)整教學(xué)說課稿 岳麓版必修2
- 2025淮安市城東花園小區(qū)門禁系統(tǒng)工程合同
- 2025年人教五四新版八年級(jí)物理上冊(cè)階段測(cè)試試卷含答案
- 2025新人教版英語(yǔ)七年級(jí)下單詞表(小學(xué)部分)
- 2025年春季1530安全教育記錄主題
- 礦山2025年安全工作計(jì)劃
- 基本藥物制度政策培訓(xùn)課件
- 2025年包裝印刷項(xiàng)目可行性研究報(bào)告
- 2025年九年級(jí)物理中考復(fù)習(xí)計(jì)劃
- 企業(yè)融資報(bào)告特斯拉成功案例分享
- 合資經(jīng)營(yíng)工廠合同范本
- 2024年新疆(兵團(tuán))公務(wù)員考試《行測(cè)》真題及答案解析
- 2024年《論教育》全文課件
評(píng)論
0/150
提交評(píng)論