03、結(jié)構化分析_第1頁
03、結(jié)構化分析_第2頁
03、結(jié)構化分析_第3頁
03、結(jié)構化分析_第4頁
03、結(jié)構化分析_第5頁
已閱讀5頁,還剩109頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第三部分、結(jié)構化分析可行性研究的任務1可行性研究過程2需求分析的任務3需求分析的過程4與用戶溝通的方法5分析建模與規(guī)格說明6驗證軟件需求7系統(tǒng)流程圖8實體-聯(lián)系圖9數(shù) 據(jù) 流 圖10數(shù) 據(jù) 字 典11其他圖形工具12成本效益分析13結(jié)構化分析實例14 傳統(tǒng)的軟件工程方法學采用結(jié)構化分析技術完成系統(tǒng)分析(問題定義、可行性研究、需求分析)的任務。 所謂“結(jié)構化”,就是用一組標準的準則和工具來完成某項工作。具體說到結(jié)構化分析,它主要有以下幾個要點: 采用自頂向下功能分解的方法;采用自頂向下功能分解的方法; 強調(diào)邏輯功能而不是實現(xiàn)功能的具體方法;強調(diào)邏輯功能而不是實現(xiàn)功能的具體方法; 使用圖形表達系統(tǒng)

2、分析的結(jié)果。使用圖形表達系統(tǒng)分析的結(jié)果。1 問題定義 本階段任務:在短時間內(nèi)對客戶的需求有比較準確的估計:軟件的目標、規(guī)模要點:要點: 哪些內(nèi)容不需要實現(xiàn),劃清項目的范圍哪些內(nèi)容不需要實現(xiàn),劃清項目的范圍 必須形成書面報告提交給用戶審查必須形成書面報告提交給用戶審查 可行性研究的目的就是,用最小的代價在盡可行性研究的目的就是,用最小的代價在盡可能短的時間內(nèi)研究并確定所面臨的問題是否能可能短的時間內(nèi)研究并確定所面臨的問題是否能夠解決。夠解決。 任務:導出新系統(tǒng)的邏輯模型,從模型出發(fā)任務:導出新系統(tǒng)的邏輯模型,從模型出發(fā)提出若干種實現(xiàn)方案,對每種方案進行可行性分提出若干種實現(xiàn)方案,對每種方案進行可

3、行性分析和提出實現(xiàn)進度,最后提出建議。析和提出實現(xiàn)進度,最后提出建議。2 2 可行性研究的任務可行性研究的任務 一般說來,至少應該從下述三方面研究每種解法的可行性。(1 1)技術可行性)技術可行性:使用現(xiàn)有的技術能實現(xiàn)這個系統(tǒng)嗎(2 2)經(jīng)濟可行性:)經(jīng)濟可行性:這個系統(tǒng)的經(jīng)濟效益能超過它的開發(fā)成本嗎(3 3)操作可行性:)操作可行性:系統(tǒng)的操作方式在這個用戶組織內(nèi)行得通嗎(4 4)法律可行性:)法律可行性:必要時還應該進一步從法律、社會法律、社會效益效益等更廣泛的角度研究每種解法的可行性。 分析員應該為每個可行的解法制定一個粗略的實現(xiàn)進度。 當然,可行性研究最根本的任務是對以后的行動方針提出

4、建議。如果問題沒有可行的解,分析員應該建議停止這項開發(fā)工程,以避免時間、資源、人力和金錢的浪費;如果問題值得解,分析員應該推薦一個較好的解決方案,并且為工程制定一個初步的計劃。 可行性研究需要的時間長短取決于工程的規(guī)模,一般說來,可行性研究的成本只是預期的工程總成本的5%10%。 情景:情景: 20102010年,我國南方某公司為了節(jié)省人年,我國南方某公司為了節(jié)省人工成本,欲開發(fā)一系統(tǒng)軟件,預計軟件總成本為工成本,欲開發(fā)一系統(tǒng)軟件,預計軟件總成本為10001000萬元,軟件估計可使用萬元,軟件估計可使用5 5年。由于使用了該年。由于使用了該軟件,該公司每年大概可以節(jié)省軟件,該公司每年大概可以節(jié)

5、省250250萬元成本。萬元成本。 決策:假設你是該公司財務總監(jiān),你會如何決策:假設你是該公司財務總監(jiān),你會如何抉擇?抉擇? 貨幣的時間價值貨幣的時間價值 通常用利率的形式表示貨幣的時間價值。假通常用利率的形式表示貨幣的時間價值。假設年利率為設年利率為i i,如果現(xiàn)在存入,如果現(xiàn)在存入p p元,則元,則n n年后可以年后可以得到的錢數(shù)為:得到的錢數(shù)為:f=p(1+i)f=p(1+i)n n 這也就是這也就是p p元錢在元錢在n n年后的價值。反之,如果年后的價值。反之,如果n n年后能收入年后能收入f f元錢,那么這些錢的現(xiàn)在價值是元錢,那么這些錢的現(xiàn)在價值是p=f/(1+i)p=f/(1+i

6、)n n 成本效益分析成本效益分析 一般說來,人們投資于一項事業(yè)的目的是為了在將來得到更大好處。開發(fā)一個系統(tǒng)也是一種投資,期望將來獲得更大的經(jīng)濟效益。經(jīng)濟效益通常表現(xiàn)為減少運行費用和增加收入。成本效益分析的目的正是要從經(jīng)濟角度分析開發(fā)一個特定的新系統(tǒng)是否劃算,從而幫助使用部門負責人正確地作出是否投資于這項開發(fā)工程的決定。 軟件開發(fā)成本主要表現(xiàn)為人力消耗,乘以平均工資則得到開發(fā)費用。成本估計不是精確的科學,因此應該使用幾種不同的估計技術以便相互校驗。1. 1. 代碼行技術代碼行技術 代碼行技術是比較簡單的定量估算方法,它把開發(fā)每個軟件功能的成本和實現(xiàn)這個功能需要用的源代碼行數(shù)聯(lián)系起來。通常根據(jù)經(jīng)

7、驗和歷史數(shù)據(jù)估計實現(xiàn)一個功能需要的源程序行數(shù)。當有以往開發(fā)類似軟件的歷史數(shù)據(jù)可供參考時,這個方法是非常有效的。 一旦估計出源代碼行數(shù)以后,用每行代碼的平均成本乘以行數(shù)就可以確定軟件的成本。每行代碼的平均成本主要取決于軟件的復雜程度和工資水平。1 1 成本估計成本估計應用代碼行技術的一個例子應用代碼行技術的一個例子生產(chǎn)率(行人月)估計行數(shù)每行成本(元行)成本(元)人力(人月)獲取實時數(shù)據(jù)92840108907209.1更新數(shù)據(jù)庫1021210546534011.8脫機分析13460072432004.4產(chǎn)生報告14545033148503.1實時控制80110013514850013.73626

8、1042.1 首先把軟件開發(fā)工程分解為若干個相對獨立的任務。首先把軟件開發(fā)工程分解為若干個相對獨立的任務。再分別估計每個單獨的開發(fā)任務的成本,最后累加起來再分別估計每個單獨的開發(fā)任務的成本,最后累加起來得出軟件開發(fā)工程的總成本得出軟件開發(fā)工程的總成本。估計每個任務的成本時,通常先估計完成該項任務需要用的人力(以人月為單位),再乘以每人每月的平均工資而得出每個任務的成本。 最常用的辦法是按開發(fā)階段劃分任務。如果軟件系統(tǒng)很復雜,由若干個子系統(tǒng)組成,則可以把每個子系統(tǒng)再按開發(fā)階段進一步劃分成更小的任務。 2. 2. 任務分解技術任務分解技術任 務人力(%)任 務人力(%)可行性研究5編碼和單元測試2

9、0需求分析10綜合測試40設計25總計100典型環(huán)境下各個開發(fā)階段需要使用的人力的百分比 對于剛才提到的過程控制系統(tǒng)的例子,使用任務分解對于剛才提到的過程控制系統(tǒng)的例子,使用任務分解技術估計該系統(tǒng)的開發(fā)成本,得到的結(jié)果如表。相對比可技術估計該系統(tǒng)的開發(fā)成本,得到的結(jié)果如表。相對比可以看出,用不同估計技術得到的結(jié)果有些差異。以看出,用不同估計技術得到的結(jié)果有些差異。任務估計人力(人月)元人月成本(元)需求分析5.01020051000設計15.09600144000編碼和單元測試8.0795063600綜合測試16.58700143550總計44.5402150 成本效益分析的第一步是估計開發(fā)成

10、本、運行費用和新系統(tǒng)將帶來的經(jīng)濟效益。而系統(tǒng)的經(jīng)濟效益等于因使用新系統(tǒng)而增加的收入,加上使用新系統(tǒng)可以節(jié)省的運行費用。因為運行費用和經(jīng)濟效益兩者在軟件的整個生命周期內(nèi)都存在,總的效益和生命周期的長度有關,所以應該合理地估計軟件的壽命。以后在進行成本效益分析時一律假設生命周期為5年。 比較新系統(tǒng)的開發(fā)成本和經(jīng)濟效益,應從經(jīng)濟角度判斷這個系統(tǒng)是否值得投資,但是,投資是現(xiàn)在進行的,效益是將來獲得的,不能簡單地比較成本和效益,應該考慮貨幣的時間價值。3 3 成本效益分析方法成本效益分析方法 例如,修改一個已有的庫存清單系統(tǒng),使它能在每天送給采購員一份定貨報表。修改已有的庫存清單程序并且編寫產(chǎn)生報表的程

11、序,估計共需5000元;系統(tǒng)修改后能及時定貨將消除零件短缺問題,估計因此每年可以節(jié)省2500元,五年共可節(jié)省12 500元。但是,不能簡單地把5000元和12 500元相比較,因為前者是現(xiàn)在投資的錢,后者是若干年以后節(jié)省的錢。 假定年利率為12%,利用上面計算貨幣現(xiàn)在價值的公式可以算出修改庫存清單系統(tǒng)后每年預計節(jié)省的錢的現(xiàn)在價值,如表所示。將來的收入折算成現(xiàn)在值年將來值(元)(1i)現(xiàn)在值(元)累計的現(xiàn)在值(元)125001.122232.142232.14225001.251992.984225.12325001.401779.456004.57425001.571588.807593.37

12、525001.761418.579011.94 投資回收期 通常用投資回收期衡量一項開發(fā)工程的價值。所謂投資回收期就是使累計的經(jīng)濟效益等于最初投資所需要的時間。顯然,投資回收期越短就能越快獲得利潤,因此這項工程也就越值得投資。 例如,修改庫存清單系統(tǒng)兩年以后可以節(jié)省4225.12元,比最初的投資(5000元)還少774.88元,第三年以后將再節(jié)省1779.45元。774.881779.450.44,因此,投資回收期是2.44年。 投資回收期僅僅是一項經(jīng)濟指標,為了衡量一項開發(fā)工程的價值,還應該考慮其他經(jīng)濟指標。 純收入 衡量工程價值的另一項經(jīng)濟指標是工程的純收入,也就是在整個生命周期之內(nèi)系統(tǒng)的

13、累計經(jīng)濟效益(折合成現(xiàn)在值)與投資之差。這相當于比較投資開發(fā)一個軟件系統(tǒng)和把錢存在銀行中(或貸給其他企業(yè))這兩種方案的優(yōu)劣。如果純收入為零,則工程的預期效益和在銀行存款一樣,但是開發(fā)一個系統(tǒng)要冒風險,因此從經(jīng)濟觀點看這項工程可能是不值得投資的。如果純收入小于零,那么這項工程顯然不值得投資。例如,上述修改庫存清單系統(tǒng),工程的純收入預計是9011.9450004011.94(元)4 4 可行性研究過程可行性研究過程典型的可行性研究過程有下述八個步驟:1. 復查系統(tǒng)規(guī)模和目標2. 研究目前正在使用的系統(tǒng)3. 導出新系統(tǒng)的高層邏輯模型4. 進一步定義問題 可行性研究的前四個步驟實質(zhì)上構成一個循環(huán)。分析

14、員定義問題,分析這個問題,導出一個試探性的解;在此基礎上再次定義問題,再一次分析這個問題,修改這個解;繼續(xù)這個循環(huán)過程,直至提出的邏輯模型完全符合系統(tǒng)目標。5. 導出和評價供選擇的解法6. 推薦行動方針7. 草擬開發(fā)計劃8. 書寫文檔提交審查5 5 需求分析的任務需求分析的任務 為了開發(fā)出真正滿足用戶需求的軟件產(chǎn)品,首先必須確切地知道用戶的需求。 需求分析是軟件定義時期的最后一個階段,它的基本任務是準確地回答“系統(tǒng)必須做什么”這個問題。 需求分析的任務還不是確定系統(tǒng)怎樣完成它的工作,而僅僅是確定系統(tǒng)必須完成哪些工作,也就是對目標系統(tǒng)提出完整、準確、清晰、具體的要求。 可行性研究階段產(chǎn)生的文檔,

15、特別是數(shù)據(jù)流圖,是需求分析的出發(fā)點。 需求分析的結(jié)果是系統(tǒng)開發(fā)的基礎,關系到工程的成敗和軟件產(chǎn)品的質(zhì)量。因此,必須用行之有效的方法對軟件需求進行嚴格的審查驗證。需求分析階段的具體任務。1. 1. 確定對軟件系統(tǒng)的綜合要求確定對軟件系統(tǒng)的綜合要求 對系統(tǒng)的綜合要求主要有下述四個方面。(1)系統(tǒng)功能要求 應該劃分出系統(tǒng)必須完成的所有功能。(2)系統(tǒng)性能要求 例如,聯(lián)機系統(tǒng)的響應時間(即對于從終端輸入的一個“事務”,系統(tǒng)在多長時間之內(nèi)可以做出響應),系統(tǒng)需要的存儲容量以及后援存儲,重新啟動和安全性等方面的考慮都屬于性能要求。(3 3)運行要求)運行要求 這類要求集中表現(xiàn)為對系統(tǒng)運行時所處環(huán)境的要求。

16、例如,支持系統(tǒng)運行的系統(tǒng)軟件是什么,采用哪種數(shù)據(jù)庫管理系統(tǒng),需要什么樣的外存儲器和數(shù)據(jù)通信接口等。(4 4)將來可能提出的要求)將來可能提出的要求 應該明確地列出那些雖然不屬于當前系統(tǒng)開發(fā)范疇,但是據(jù)分析將來很可能會提出來的要求。這樣做的目的是在設計過程中對系統(tǒng)將來可能的擴充和修改預做準備,以便一旦需要時能比較容易地進行這種擴充和修改。3. 3. 導出系統(tǒng)的邏輯模型導出系統(tǒng)的邏輯模型 綜合上述兩項需求分析的結(jié)果,可以導出系統(tǒng)詳細的邏輯模型。通常用數(shù)據(jù)流圖、數(shù)據(jù)字典和主要的處理算法描述這個邏輯模型。2. 2. 確定對系統(tǒng)的數(shù)據(jù)要求確定對系統(tǒng)的數(shù)據(jù)要求 任何一個軟件系統(tǒng)本質(zhì)上都是信息處理系統(tǒng),系統(tǒng)

17、必須處理的信息和系統(tǒng)應該產(chǎn)生的信息對軟件設計有深遠影響,因此,必須分析系統(tǒng)的數(shù)據(jù)要求,這是軟件需求分析的一個重要任務。分析系統(tǒng)的數(shù)據(jù)要求通常采用建立概念模型的方法。4. 4. 修正系統(tǒng)開發(fā)計劃修正系統(tǒng)開發(fā)計劃 根據(jù)在需求分析過程中獲得的對軟件系統(tǒng)更深入、更具體的認識,可以較準確地估計系統(tǒng)的成本和進度,從而可以修正在前一個階段所制定的開發(fā)計劃。5. 5. 開發(fā)原型系統(tǒng)開發(fā)原型系統(tǒng) 在需求分析過程中使用原型系統(tǒng)的主要目的是,使得用戶通過實踐獲得關于未來的系統(tǒng)將怎樣為他們工作的更直接更具體的概念,從而可以更準確地提出和確定他們對所開發(fā)的軟件的要求。 建立原型系統(tǒng)作為一種應該采取的策略的理由如下: 由

18、于人類認識能力的局限性,用戶往往不能預先提出全部要求; 在用戶和系統(tǒng)分析員之間存在固有的通信鴻溝,分析員常常誤解了用戶的需求; 用戶需要一個可運行的系統(tǒng)模型,以便獲得有關未來系統(tǒng)的實踐經(jīng)驗; 在軟件開發(fā)過程中重復和反復是必要的和不可避免的; 目前已經(jīng)有快速建立原型系統(tǒng)的工具可供選用。功能需求性能需求可靠性和可用性需求出錯處理需求接口需求 描述應用系統(tǒng)與通信環(huán)境的格式約束 描述在設計或?qū)崿F(xiàn)應用系統(tǒng)時遵循的條件限制逆向需求 系統(tǒng)不應該做什么將來可能提出的要求6 6 需求分析的過程需求分析的過程 結(jié)構化分析方法(簡稱結(jié)構化分析方法(簡稱sasa方法)就是面向數(shù)據(jù)流自方法)就是面向數(shù)據(jù)流自頂向下逐步求

19、精進行需求分析的方法。頂向下逐步求精進行需求分析的方法。通過可行性研究已經(jīng)得出了目標系統(tǒng)的高層數(shù)據(jù)流圖,需求分析的目的之一就是把數(shù)據(jù)流和數(shù)據(jù)存儲定義到元素級。 典型的需求分析過程主要由下述步驟組成。典型的需求分析過程主要由下述步驟組成。 1. 1. 沿數(shù)據(jù)流圖回溯沿數(shù)據(jù)流圖回溯 2. 2. 請用戶復查請用戶復查 3. 3. 細化數(shù)據(jù)流圖細化數(shù)據(jù)流圖 隨著分析過程的進展,經(jīng)過發(fā)現(xiàn)問題和解答問題的反復循環(huán),分析員越來越深入具體地定義了目標系統(tǒng),最終得到對系統(tǒng)數(shù)據(jù)和功能需求的滿意了解。圖粗略地概括了上述分析過程。 需求分析的基本過程4. 4. 修正開發(fā)計劃修正開發(fā)計劃5. 5. 書寫文檔書寫文檔 系

20、統(tǒng)規(guī)格說明系統(tǒng)規(guī)格說明 數(shù)據(jù)要求數(shù)據(jù)要求 用戶系統(tǒng)描述用戶系統(tǒng)描述 修正的開發(fā)計劃修正的開發(fā)計劃6. 6. 審查和復審審查和復審7 7 與用戶溝通的方法與用戶溝通的方法 軟件需求分析過程總是從兩方或多方之間的溝通與交流開始。通常,用戶對他們所面臨的問題有親身體會,知道必須做什么,但是往往不能完整準確地表達出他們的要求,更不知道怎樣利用計算機軟件解決他們的問題;軟件開發(fā)人員知道怎樣用軟件實現(xiàn)人們的要求,但是對特定用戶的具體要求并不完全清楚。這樣就需要相互溝通和交流信息。 原型系統(tǒng)原型系統(tǒng)是促進溝通的重要手段,快速建立軟件原型是最準確、最有效、最強大的需求分析技術。除了通過原型系統(tǒng)相互溝通之外,還

21、訪談訪談和簡易的應用規(guī)格說明技術簡易的應用規(guī)格說明技術兩種典型技術。1 1 訪談訪談 訪談(或稱為會談)是最早開始運用的獲取用戶需求訪談(或稱為會談)是最早開始運用的獲取用戶需求的技術,也是迄今為止仍然廣泛使用的主要的需求分析技的技術,也是迄今為止仍然廣泛使用的主要的需求分析技術。術。 訪談有兩種基本形式,分別是正式的和非正式的訪談。 當需要調(diào)查大量人員的意見時,向被調(diào)查的人員分發(fā)調(diào)查表是一個十分有效的做法。 在對用戶進行訪談的過程中使用情景分析技術往往非常有效。所謂情景分析就是對用戶運用目標系統(tǒng)解決某個具體問題的方法和結(jié)果進行分析。 情景分析的用處主要體現(xiàn)在下述兩個方面: 它能在某種程度上演

22、示產(chǎn)品的行為,從而便于用戶理解,而且還可能進一步揭示出一些系統(tǒng)分析員目前還不知道的需求。 由于情景分析較易為用戶所理解,因此,使用這種技術能保證用戶在需求分析過程中始終扮演一個積極主動的角色。需求分析的目標是了解用戶的真正需求,而這一信息的惟一來源是用戶,因此,讓用戶起積極主動的作用對需求分析工作獲得成功是至關重要的。 使用傳統(tǒng)的訪談技術定義需求時,用戶和開發(fā)者往往有意無意地區(qū)分“我們和他們”。由于不能做到像同一個團隊的人那樣同心協(xié)力地識別和精化需求,這種方法的效果有時并不理想(經(jīng)常發(fā)生誤解,還可能遺漏重要的信息)。 為了解決上述問題,人們研究出了一種面向團隊的需求收集法,稱為簡易的應用規(guī)格說

23、明技術。這種方法提倡用戶與開發(fā)者密切合作,共同標識問題,提出解決方案的要素,商討不同的方法并指定基本的需求。今天,簡易的應用規(guī)格說明技術已經(jīng)成為信息系統(tǒng)界使用的主流技術。2 2 簡易的應用規(guī)格說明技術簡易的應用規(guī)格說明技術 盡管存在許多不同的簡易應用規(guī)格說明方法,但是它們遵循的基本準則是相同的: 在中立地點舉行由開發(fā)者和用戶雙方出席的會議。 制定準備會議和參加會議的規(guī)則。 提出一個議事日程,這個日程應該足夠正式以便能夠涵蓋所有要點,同時這個日程又應該足夠非正式,以便鼓勵自由思維。 由一個“協(xié)調(diào)人”來主持會議,他既可以是用戶也可以是開發(fā)者還可以是從外面請來的人。 使用一種“定義機制”(例如,工作

24、表、圖表等)。 目標是標識問題、提出解決方案要素、商討不同的方法以及在有利于實現(xiàn)目標的氛圍中指定初步的需求。8 8 分析建模與規(guī)格說明分析建模與規(guī)格說明1 1 分析建模分析建模 系統(tǒng)分析,特別是需求分析的主要任務,是理解用戶的需求定義所要開發(fā)的目標系統(tǒng)。為了更好地理解問題,人們常常采用建立模型的方法。模型就是為了理解事物而模型就是為了理解事物而對事物做出的一種抽象,是對事物的一種無歧義的書面描對事物做出的一種抽象,是對事物的一種無歧義的書面描述。述。通常,通常,模型由一組圖形符號和組織這些符號的規(guī)則組模型由一組圖形符號和組織這些符號的規(guī)則組成。成。 1 1:必須理解和表示問題的信息域,建立數(shù):

25、必須理解和表示問題的信息域,建立數(shù)據(jù)模型據(jù)模型 2 2:必須定義軟件應完成的功能,要求建立:必須定義軟件應完成的功能,要求建立功能模型功能模型 3 3:必須表示作為外部事件結(jié)果的軟件行為,:必須表示作為外部事件結(jié)果的軟件行為,建立行為模型建立行為模型 需求建模需求建模數(shù)據(jù)模型:實體數(shù)據(jù)模型:實體- -聯(lián)系圖聯(lián)系圖(er(er圖圖) )功能模型:數(shù)據(jù)流圖功能模型:數(shù)據(jù)流圖(dfd)(dfd) 行為模型:狀態(tài)轉(zhuǎn)換圖行為模型:狀態(tài)轉(zhuǎn)換圖 從技術的角度看,軟件工程實質(zhì)上是從一系列建模活軟件工程實質(zhì)上是從一系列建?;顒娱_始的動開始的,這些建?;顒訉е聦σ箝_發(fā)的軟件要有完整的需求規(guī)格說明和全面的設計表示

26、。 結(jié)構化分析就是一種建立結(jié)構化的分析模型的活動。從不同角度描述或理解軟件系統(tǒng),需要不同的模型。結(jié)構化分析主要建立功能模型和數(shù)據(jù)模型。2 2 軟件需求規(guī)格說明書軟件需求規(guī)格說明書 由國家標準局發(fā)布的國家標準gb8567-88“計算機軟件產(chǎn)品開發(fā)文件編制指南”,規(guī)定了在需求分析階段應寫出兩份文檔,分別是“軟件需求說明書”和“數(shù)據(jù)要求說明書”。9 9 驗證軟件需求驗證軟件需求9.1 9.1 至少從四個方面驗證軟件需求至少從四個方面驗證軟件需求 需求分析階段的工作結(jié)果是開發(fā)軟件系統(tǒng)的重要基礎,大量統(tǒng)計數(shù)字表明,軟件系統(tǒng)中15%的錯誤起源于錯誤的需求。為了提高軟件質(zhì)量,確保軟件開發(fā)成功,降低軟件開發(fā)成

27、本,一旦對目標系統(tǒng)提出一組要求之后,必須嚴格驗證這些需求的正確性。一般說來,應該從下述四個方面進行驗證: 一致性一致性 完整性完整性 現(xiàn)實性現(xiàn)實性 有效性有效性跳過9.2 9.2 驗證軟件需求的方法驗證軟件需求的方法1. 驗證需求的一致性 當需求分析的結(jié)果是用自然語言書寫的時候,除了靠人工技術審查驗證軟件系統(tǒng)規(guī)格說明書的正確性之外,目前還沒有其他更好的“測試”方法。但是,這種非形式化的規(guī)格說明書是難于驗證的。 2. 2. 驗證需求的現(xiàn)實性驗證需求的現(xiàn)實性 為了驗證需求的現(xiàn)實性,分析員應該參照以往開發(fā)類似系統(tǒng)的經(jīng)驗,分析用現(xiàn)有的軟、硬件技術實現(xiàn)目標系統(tǒng)的可能性。必要的時候應該采用仿真或性能模擬技

28、術,輔助分析軟件需求規(guī)格說明書的現(xiàn)實性。3 3、4 4: 驗證需求的完整性和有效性驗證需求的完整性和有效性 只有目標系統(tǒng)的用戶才真正知道軟件需求規(guī)格說明書是否完整、準確地描述了他們的需求。因此,檢驗需求的完整性,特別是證明系統(tǒng)確實滿足用戶的實際需要,只有在用戶的密切合作下才能完成。只有當他們有某種工作著的軟件系統(tǒng)可以實際使用和評價時,才能完整確切地提出他們的需要。 使用原型系統(tǒng)是一個比較現(xiàn)實的替代方法,開發(fā)原型系統(tǒng)所需要的成本和時間可以大大少于開發(fā)實際系統(tǒng)所需要的。用戶通過試用原型系統(tǒng),也能獲得許多寶貴的經(jīng)驗,從而可以提出更符合實際的要求。9.3 9.3 用于需求分析的軟件工具用于需求分析的軟

29、件工具 為了更有效地保證軟件需求的正確性,特別是為了保證需求的一致性,需要有適當?shù)能浖ぞ咧С中枨蠓治龉ぷ?。這類軟件工具應該滿足下列要求。 (1)必須有形式化的語法(或表),因此可以用計算機自動處理使用這種語法說明的內(nèi)容; (2)使用這個軟件工具能夠?qū)С鲈敿毜奈臋n; (3)必須提供分析(測試)規(guī)格說明書的不一致性和冗余性的手段,并且應該能夠產(chǎn)生一組報告指明對完整性分析的結(jié)果;(4)使用這個軟件工具之后,應該能夠改進通信狀況。10 10 系統(tǒng)流程圖系統(tǒng)流程圖 系統(tǒng)流程圖是描繪物理系統(tǒng)的傳統(tǒng)工具。它的基本思想是用圖形符號以黑盒子形式描繪系統(tǒng)里面的每個部件(程序、文件、數(shù)據(jù)庫、表格、人工過程等等)。

30、系統(tǒng)流系統(tǒng)流程圖表達的是信息在系統(tǒng)各部件之間流動的情況程圖表達的是信息在系統(tǒng)各部件之間流動的情況,而不是對信息進行加工處理的控制過程,因此盡管系統(tǒng)流程圖使用的某些符號和程序流程圖中用的符號相同,但是它卻是物理數(shù)據(jù)流圖而不是程序流程圖。 當以概括的方式抽象地描繪一個系統(tǒng)時,僅使用圖2.2中列出的基本符號就夠了,其中每個符號表示系統(tǒng)中的一個部件。10.1 10.1 系統(tǒng)流程圖的符號系統(tǒng)流程圖的符號當需要更具體地描繪一個物理系統(tǒng)時,還需要使用圖中列出的系統(tǒng)符號。 假設一家工廠的采購部每天需要一張定貨報表,報表按零件編號排序,表中列出所有需要再次定貨的零件。對于每個需要再次定貨的零件應該列出下述數(shù)據(jù):

31、零件編號,零件名稱,定貨數(shù)量,目前價格,主要供應者,次要供應者。零件入庫或出庫稱為事務,通過放在倉庫中的終端把事務報告給定貨系統(tǒng)。當某種零件的庫存數(shù)量少于庫存量臨界值時就應該再次定貨。 圖中每個符號用黑盒子形式定義了組成系統(tǒng)的一個部件,然而并沒有指明每個部件的具體工作過程;圖中的箭頭確定了信息通過系統(tǒng)的邏輯路徑(信息流動路徑)。 系統(tǒng)流程圖的習慣畫法是使信息在圖中從頂向下或從左向右流動。 每個符號都有名稱,因此可以起文檔的作用。許多分析員喜歡在系統(tǒng)流程圖上加更詳細的注釋,有些人甚至另加一頁紙來解釋系統(tǒng)流程圖。10.3 10.3 分層畫系統(tǒng)流程圖分層畫系統(tǒng)流程圖 面對復雜的系統(tǒng)時,一個比較好的方

32、法是分層次地描繪這個系統(tǒng)。首先用一張高層次的系統(tǒng)流程圖描繪系統(tǒng)總體概貌,表明系統(tǒng)的關鍵功能。然后分別把每個關鍵功能擴展到適當?shù)脑敿毘潭?,畫在單獨的一頁紙上。這種分層次的描繪方法便于閱讀者按從抽象到具體的過程逐步深入地了解一個復雜的系統(tǒng)。 例如,上述庫存清單系統(tǒng)可以分為兩個層次來描繪(只是為舉例說明分層次描繪的方法,實際上這樣簡單的系統(tǒng)用不著分層描繪)。 分析員通常必須研究現(xiàn)有的物理系統(tǒng),目的不是提供完整的文檔資料,只是為了了解這個系統(tǒng)。畫系統(tǒng)流程圖是概括大量技術信息以及發(fā)現(xiàn)遺漏疏忽的極好方法。 在設計階段需要把設計結(jié)果從抽象的邏輯模型轉(zhuǎn)變成具體的物理系統(tǒng),用特定的程序或過程代替廣義的處理,用具

33、體的文件或數(shù)據(jù)庫代替一般的數(shù)據(jù)存儲。畫出系統(tǒng)流程圖就可以具體設想系統(tǒng)將如何實現(xiàn)。總之,不論在分析階段還是設計階段,系統(tǒng)流程圖作為一種清晰簡明的通信手段都是很有價值的,非常有助于開發(fā)人員和用戶交流信息。 當一個復雜的大系統(tǒng)由許多組軟件工程師共同開發(fā)時,系統(tǒng)流程圖可以作為公共參考文件,指明每個開發(fā)小組的工作在系統(tǒng)中的地位。10.4 10.4 系統(tǒng)流程圖的用途系統(tǒng)流程圖的用途11 11 實體實體- -聯(lián)系圖聯(lián)系圖 軟件系統(tǒng)本質(zhì)上是信息處理系統(tǒng),因此,在軟件系統(tǒng)的整個開發(fā)過程中都必須考慮兩方面的問題“數(shù)據(jù)”及對數(shù)據(jù)的“處理”。在需求分析階段則既要分析用戶的數(shù)據(jù)要求,又要分析用戶的處理要求。 為了把用戶

34、的數(shù)據(jù)要求清晰明確地表達出來,系統(tǒng)分析員通常建立一個概念性的數(shù)據(jù)模型(也稱為信息模型)。概念性數(shù)據(jù)模型是一種面向問題的數(shù)據(jù)模型,是按照用戶的觀點來對數(shù)據(jù)和信息建模。它描述了從用戶角度看到的數(shù)據(jù),它反映了用戶的現(xiàn)實環(huán)境,且與在軟件系統(tǒng)中的實現(xiàn)方法無關。 根據(jù)所要解決的問題,來確定實體的合適的屬性。 在er圖中,用橢圓形或圓角矩形表示實體(或聯(lián)系)的屬性,并用直線把實體(或聯(lián)系)與其屬性連接起來。 人們通常就是用實體、聯(lián)系和屬性這三個概念來理解現(xiàn)實問題的,因此,er模型比較接近人的習慣思維方式。此外,er模型使用簡單的圖形符號表達分析員對所要解決的問題的理解,不熟悉計算機技術的用戶也能理解它,因此

35、,er模型可以作為分析員與用戶之間有效的交流工具。 最常用的表示概念性數(shù)據(jù)模型的方法,是實體-聯(lián)系方法(entity-relationship approach)。這種方法用實體-聯(lián)系圖(也稱為實體-關系圖或e-r圖)描述現(xiàn)實世界中的實體,而不涉及這些實體在系統(tǒng)中的實現(xiàn)方法。用這種方法表示的概念性數(shù)據(jù)模型又稱為er模型。 實體-聯(lián)系模型中包含“實體”、“聯(lián)系”和“屬性”等三個基本成分,下面分別介紹這三個基本成分。1. 1. 實體實體 實體是客觀世界中存在的且可相互區(qū)分的事物。實體可以是人也可以是物;可以是具體事物也可以是抽象概念。例如,職工、學生、課程、教師等都是實體。2. 2. 聯(lián)系聯(lián)系 客

36、觀世界中的事物彼此間往往是有聯(lián)系的。例如,教師與課程間存在“教”這種聯(lián)系,而學生與課程間則存在“學”這種聯(lián)系。聯(lián)系可分為以下三類:(1)一對一聯(lián)系(11)(2)一對多聯(lián)系(1n)(3)多對多聯(lián)系(mn)3. 屬性 屬性是實體或聯(lián)系所具有的性質(zhì)。通常一個實體由若干個屬性來刻畫,例如,“學生”實體有學號、姓名、性別、系、年級等屬性;“教師”實體有教工號、姓名、性別、職稱、職務等屬性;“課程”實體有課程號、課名、學時、學分等屬性。 聯(lián)系也可能有屬性。例如,學生“學”某門課程所取得的成績,既不是學生的屬性也不是課程的屬性。由于“成績”既依賴于某名特定的學生又依賴于某門特定的課程,所以這是學生與課程之間

37、的聯(lián)系“學”的屬性。某校教學管理er圖12 12 數(shù)據(jù)流圖數(shù)據(jù)流圖 數(shù)據(jù)流圖(dfd,data flow diagram)是用來描繪軟件系統(tǒng)的邏輯模型的工具。 通過數(shù)據(jù)流圖描繪信息在系統(tǒng)中流動和加工處理的情況。 是各類人員之間極好的交流、溝通的工具 設計數(shù)據(jù)流圖只需考慮系統(tǒng)必須完成的基本邏輯功能,一般在圖中不使用具體的物理元素,完全不需要考慮如何具體地實現(xiàn)這些功能。 12.112.1數(shù)據(jù)流圖數(shù)據(jù)流圖符號符號 數(shù)據(jù)的源點數(shù)據(jù)的源點/ /終點終點: :是指在系統(tǒng)以外的事物或人是指在系統(tǒng)以外的事物或人 加工處理加工處理: :表示對數(shù)據(jù)的處理功能表示對數(shù)據(jù)的處理功能 數(shù)據(jù)存儲數(shù)據(jù)存儲: :表示對數(shù)據(jù)存

38、儲的邏輯描述,它可以是表示對數(shù)據(jù)存儲的邏輯描述,它可以是數(shù)據(jù)庫文件或任何其他形式的數(shù)據(jù)組織。數(shù)據(jù)庫文件或任何其他形式的數(shù)據(jù)組織。 數(shù)據(jù)流數(shù)據(jù)流: :表示數(shù)據(jù)在系統(tǒng)中流動的方向。表示數(shù)據(jù)在系統(tǒng)中流動的方向。 或或或數(shù)據(jù)的源點/終點加工/處理數(shù)據(jù)存儲數(shù)據(jù)流 除了上述四種基本符號之外,有時也使用除了上述四種基本符號之外,有時也使用幾種附加符號。星號(幾種附加符號。星號(*)表示數(shù)據(jù)流之間是)表示數(shù)據(jù)流之間是“與與”關系(同時存在);加號()表示關系(同時存在);加號()表示“或或”關系關系; 號表示只能從中選一個(互斥號表示只能從中選一個(互斥的關系)。下圖給出了這些附加符號的含義。的關系)。下圖給

39、出了這些附加符號的含義。 數(shù)據(jù)存儲和數(shù)據(jù)流都是數(shù)據(jù),僅僅所處的狀態(tài)不同。數(shù)據(jù)存儲是處于靜止狀態(tài)的數(shù)據(jù),數(shù)據(jù)流是處于運動中的數(shù)據(jù)。 通常在數(shù)據(jù)流圖中忽略出錯處理,也不包括諸如打開或關閉文件之類的內(nèi)務處理。數(shù)據(jù)流圖的基本要點是描繪“做什么”而不考慮“怎樣做”。 定貨系統(tǒng):問題描述(1) 工廠的采購部每天需要一張定貨報表,報表按零件編號排序,表中列出所有需要再次定貨的零件。對于每個需要再次定貨的零件應該列出下述數(shù)據(jù);零件編號、零件名稱、定貨數(shù)量、目前價格、主要供應者和次要供應者。零件入庫或出庫稱為事務,通過放在倉庫中的crt終端把事務報告給定貨系統(tǒng)。當某種零件的庫存數(shù)量少于庫存量臨界值時就應該再次定

40、貨。 畫出上述定貨系統(tǒng)的數(shù)據(jù)流圖可采用以下步驟。12.2 12.2 舉例舉例定貨系統(tǒng):提取dfd元素(2)其中加星號標記的是在其中加星號標記的是在問題描述中隱含的成分。問題描述中隱含的成分。定貨系統(tǒng):頂(0)層數(shù)據(jù)流圖(3)倉庫管理員定貨系統(tǒng)采購員事務定貨報表 在圖中給處理和數(shù)據(jù)存儲都加了編號,這樣做的目的在圖中給處理和數(shù)據(jù)存儲都加了編號,這樣做的目的是便于引用和追蹤。是便于引用和追蹤。定貨系統(tǒng):1層數(shù)據(jù)流圖(4)倉庫管理員產(chǎn)生報表采購員處理事務12d1庫存清單d2定貨信息庫存清單事務定貨信息定貨信息定貨報表2層數(shù)據(jù)流圖(細化處理1)(5)接收事務1.1d1庫存清單d2定貨信息庫存清單事務定貨

41、信息更新庫存清單處理事務事務庫存信息1.21.3倉庫管理員自頂向下,逐步細化 注意,并不是所有數(shù)據(jù)存儲和數(shù)據(jù)流都能直接從問題描述中提取出來。例如,“當某種零件的庫存數(shù)量少于庫存量臨界值時就應該再次定貨”,這個事實意味著必須在某個地方有零件庫存量事實意味著必須在某個地方有零件庫存量和庫存量臨界值這樣的數(shù)據(jù)。和庫存量臨界值這樣的數(shù)據(jù)。因為這些數(shù)據(jù)元素的存在時間看來應該比單個事務的存在時間長,所以認為有一個數(shù)據(jù)存儲保存庫存清單數(shù)據(jù)是合理的。數(shù)據(jù)流圖的分層數(shù)據(jù)流圖的分層 數(shù)據(jù)流圖的層次結(jié)構數(shù)據(jù)流圖的層次結(jié)構 為了表達數(shù)據(jù)處理過程的數(shù)據(jù)加工情況,需為了表達數(shù)據(jù)處理過程的數(shù)據(jù)加工情況,需要采用要采用層次結(jié)

42、構層次結(jié)構的數(shù)據(jù)流圖。按照系統(tǒng)的層的數(shù)據(jù)流圖。按照系統(tǒng)的層次結(jié)構進行次結(jié)構進行逐步分解逐步分解,并以分層的數(shù)據(jù)流圖,并以分層的數(shù)據(jù)流圖反映這種結(jié)構關系,能清楚地表達和容易理反映這種結(jié)構關系,能清楚地表達和容易理解整個系統(tǒng)解整個系統(tǒng)步驟步驟 (1)畫頂層數(shù)據(jù)流圖)畫頂層數(shù)據(jù)流圖 (2)畫第一層數(shù)據(jù)流圖)畫第一層數(shù)據(jù)流圖 (3)畫下層各數(shù)據(jù)流圖)畫下層各數(shù)據(jù)流圖 接下來應該對功能級數(shù)據(jù)流圖中描繪的系統(tǒng)主要功能進接下來應該對功能級數(shù)據(jù)流圖中描繪的系統(tǒng)主要功能進一步細化??紤]通過系統(tǒng)的邏輯數(shù)據(jù)流:當發(fā)生一個事務時一步細化??紤]通過系統(tǒng)的邏輯數(shù)據(jù)流:當發(fā)生一個事務時必須首先接收它;隨后按照事務的內(nèi)容修改

43、庫存清單;最后,必須首先接收它;隨后按照事務的內(nèi)容修改庫存清單;最后,如果更新后的庫存量少于庫存量臨界值,則應該再次定貨,如果更新后的庫存量少于庫存量臨界值,則應該再次定貨,也就是需要處理定貨信息。因此,把也就是需要處理定貨信息。因此,把“處理事務處理事務”這個功能這個功能分解為分解為“接收事務接收事務”、“更新庫存清單更新庫存清單”和和“處理定貨處理定貨”這這樣三個子功能,在邏輯上是合理的。樣三個子功能,在邏輯上是合理的。畫數(shù)據(jù)流圖的注意事項畫數(shù)據(jù)流圖的注意事項 在數(shù)據(jù)流圖中,需按層給加工框編號。編號表明該加工所處層次及上下層的親子關系 規(guī)定任何一個數(shù)據(jù)流子圖必須與它上一層的一個加工對應,兩

44、者的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流必須一致。此即父圖與子圖的平衡 可以在數(shù)據(jù)流圖中加入物質(zhì)流,幫助用戶理解數(shù)據(jù)流圖 圖上每個元素都必須有名字 數(shù)據(jù)流圖中不可夾帶控制流 初畫時可以忽略瑣碎的細節(jié),以集中精力于主要數(shù)據(jù)流1. 為數(shù)據(jù)流(或數(shù)據(jù)存儲)命名 名字應代表整個數(shù)據(jù)流(或數(shù)據(jù)存儲)的內(nèi)容,而不是僅僅反映它的某些成分。 不要使用空洞的、缺乏具體含義的名字(如“數(shù)據(jù)”、“信息”、“輸入”之類)。 如果在為某個數(shù)據(jù)流(或數(shù)據(jù)存儲)起名字時遇到了困難,則很可能是因為對數(shù)據(jù)流圖分解不恰當造成的,應該試試重新分解,看是否能克服這個困難。12.3 12.3 命名命名 通常先為數(shù)據(jù)流命名,然后再為與之相關聯(lián)的處理命

45、通常先為數(shù)據(jù)流命名,然后再為與之相關聯(lián)的處理命名。體現(xiàn)了人類習慣的名。體現(xiàn)了人類習慣的“由表及里由表及里”的思考過程。的思考過程。 名字應該反映整個處理的功能,而不是它的一部分。名字應該反映整個處理的功能,而不是它的一部分。 名字最好由一個及物動詞,加上一個具體的賓語組成名字最好由一個及物動詞,加上一個具體的賓語組成。盡量避免使用。盡量避免使用“加工加工”、“處理處理”等籠統(tǒng)的動詞作名字。等籠統(tǒng)的動詞作名字。 通常名字中僅包括一個動詞,如果必須用兩個動詞才通常名字中僅包括一個動詞,如果必須用兩個動詞才能描述整個處理的功能,則把這個處理再分解成兩個處理可能描述整個處理的功能,則把這個處理再分解成

46、兩個處理可能更恰當些。能更恰當些。 如果在為某個處理命名時遇到困難,則很可能是發(fā)現(xiàn)如果在為某個處理命名時遇到困難,則很可能是發(fā)現(xiàn)了分解不當?shù)嫩E象,應考慮重新分解。了分解不當?shù)嫩E象,應考慮重新分解。2. 2. 為處理命名為處理命名12.4 數(shù)據(jù)流圖的用途數(shù)據(jù)流圖的用途 畫數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工畫數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工具。分析員把他對現(xiàn)有系統(tǒng)的認識或?qū)δ繕讼到y(tǒng)的設想具。分析員把他對現(xiàn)有系統(tǒng)的認識或?qū)δ繕讼到y(tǒng)的設想用數(shù)據(jù)流圖描繪出來,供有關人員審查確認。由于在數(shù)用數(shù)據(jù)流圖描繪出來,供有關人員審查確認。由于在數(shù)據(jù)流圖中通常僅僅使用四種基本符號,而且不包含任何據(jù)流

47、圖中通常僅僅使用四種基本符號,而且不包含任何有關物理實現(xiàn)的細節(jié),因此,絕大多數(shù)用戶都可以理解有關物理實現(xiàn)的細節(jié),因此,絕大多數(shù)用戶都可以理解和評價它。和評價它。 數(shù)據(jù)流圖的另一個主要用途是作為分析和設計的工數(shù)據(jù)流圖的另一個主要用途是作為分析和設計的工具。具。 動態(tài)模型表示瞬時的、行為化的系統(tǒng)的動態(tài)模型表示瞬時的、行為化的系統(tǒng)的“控制控制”性質(zhì),性質(zhì),它規(guī)定了對象模型中的對象的合法變化序列。它規(guī)定了對象模型中的對象的合法變化序列。 一旦建立起對象模型之后,就需要考察對象的動態(tài)行一旦建立起對象模型之后,就需要考察對象的動態(tài)行為。生命周期中的階段也就是對象的狀態(tài)。所謂狀態(tài),是為。生命周期中的階段也就

48、是對象的狀態(tài)。所謂狀態(tài),是對對象屬性值的一種抽象。當然,在定義狀態(tài)時應該忽略對對象屬性值的一種抽象。當然,在定義狀態(tài)時應該忽略那些不影響對象行為的屬性。各對象之間相互觸發(fā)(即作那些不影響對象行為的屬性。各對象之間相互觸發(fā)(即作用),就形成了一系列的狀態(tài)變化。我們把一個觸發(fā)行為用),就形成了一系列的狀態(tài)變化。我們把一個觸發(fā)行為稱作一個事件。對象對事件的響應,取決于接受該觸發(fā)的稱作一個事件。對象對事件的響應,取決于接受該觸發(fā)的對象當時所處的狀態(tài),響應包括改變自己的狀態(tài)或者又形對象當時所處的狀態(tài),響應包括改變自己的狀態(tài)或者又形成一個新的觸發(fā)行為。成一個新的觸發(fā)行為。13 13 動動 態(tài)態(tài) 模模 型型

49、13.1 13.1 概念概念 建立動態(tài)模型時需要使用的一些基本概念:建立動態(tài)模型時需要使用的一些基本概念:1. 1. 事件事件 事件是某個特定時刻所發(fā)生的事情,它是對引起對事件是某個特定時刻所發(fā)生的事情,它是對引起對象從一種狀態(tài)轉(zhuǎn)換到另一種狀態(tài)的現(xiàn)實世界中的事件的象從一種狀態(tài)轉(zhuǎn)換到另一種狀態(tài)的現(xiàn)實世界中的事件的抽象。事件沒有持續(xù)時間,是瞬間完成的。抽象。事件沒有持續(xù)時間,是瞬間完成的。 事件也就是信息從一個對象到另一個對象的單向傳事件也就是信息從一個對象到另一個對象的單向傳送。受此事件觸發(fā)的第二個對象,可以發(fā)送答復事件也送。受此事件觸發(fā)的第二個對象,可以發(fā)送答復事件也可以不發(fā)送答復事件,即使發(fā)

50、送答復事件,它也是受第可以不發(fā)送答復事件,即使發(fā)送答復事件,它也是受第二個對象控制的一個獨立事件。二個對象控制的一個獨立事件。 簡而言之,簡而言之,事件就是引起對象狀態(tài)轉(zhuǎn)換的控制信息事件就是引起對象狀態(tài)轉(zhuǎn)換的控制信息。2. 2. 狀態(tài)狀態(tài) 狀態(tài)就是對象在其生命周期中的某個特定階段所處的狀態(tài)就是對象在其生命周期中的某個特定階段所處的某種情形,它是對影響對象行為的屬性值的一種抽象。某種情形,它是對影響對象行為的屬性值的一種抽象。 狀態(tài)規(guī)定了對象對輸入事件的響應方式。對象對事件狀態(tài)規(guī)定了對象對輸入事件的響應方式。對象對事件的響應,既可以是作一個(或一系列)動作,也可以是僅的響應,既可以是作一個(或一

51、系列)動作,也可以是僅僅改變對象本身的狀態(tài)。僅改變對象本身的狀態(tài)。 狀態(tài)有持續(xù)性,它占用一段時間間隔。狀態(tài)與事件密狀態(tài)有持續(xù)性,它占用一段時間間隔。狀態(tài)與事件密不可分,一個事件分開兩個狀態(tài),一個狀態(tài)隔開兩個事件不可分,一個事件分開兩個狀態(tài),一個狀態(tài)隔開兩個事件。事件表示時刻,狀態(tài)代表時間間隔。事件表示時刻,狀態(tài)代表時間間隔。 在定義狀態(tài)的時候,應該忽略那些不影響對象行為的在定義狀態(tài)的時候,應該忽略那些不影響對象行為的屬性。屬性。3. 3. 行為行為 所謂行為,是指對象達到某種狀態(tài)時所做的一系所謂行為,是指對象達到某種狀態(tài)時所做的一系列處理操作。這些操作是需要耗費時間的。列處理操作。這些操作是需

52、要耗費時間的。13.2 13.2 圖示符號圖示符號 圖給出了狀態(tài)圖中使用的表示符號。圖給出了狀態(tài)圖中使用的表示符號。圖狀態(tài)圖中使用的表示符號3. 3. 舉例舉例 為了具體說明狀態(tài)圖的畫法,下面以大家熟悉的電為了具體說明狀態(tài)圖的畫法,下面以大家熟悉的電梯系統(tǒng)為例,畫出它的狀態(tài)圖,如圖所示。梯系統(tǒng)為例,畫出它的狀態(tài)圖,如圖所示。 電梯的狀態(tài)圖 在在“空閑空閑”狀態(tài),把狀態(tài)變量狀態(tài),把狀態(tài)變量timertimer的值置為的值置為0 0,然,然后連續(xù)遞增后連續(xù)遞增timertimer的值,直到的值,直到“上樓上樓”或或“下樓下樓”事件發(fā)事件發(fā)生或守衛(wèi)條件生或守衛(wèi)條件“timertimer超時值超時值”

53、為真,觸發(fā)狀態(tài)轉(zhuǎn)換。為真,觸發(fā)狀態(tài)轉(zhuǎn)換。注意,從注意,從“空閑空閑”狀態(tài)到狀態(tài)到“在第一層在第一層”狀態(tài)之間的狀態(tài)轉(zhuǎn)狀態(tài)之間的狀態(tài)轉(zhuǎn)換,有一個守衛(wèi)條件和一個動作表達式,但沒有事件說明換,有一個守衛(wèi)條件和一個動作表達式,但沒有事件說明。因此,只要守衛(wèi)條件。因此,只要守衛(wèi)條件“timertimer超時值超時值”為真,狀態(tài)轉(zhuǎn)為真,狀態(tài)轉(zhuǎn)換就發(fā)生,這時將執(zhí)行動作換就發(fā)生,這時將執(zhí)行動作“下樓(第一層)下樓(第一層)”,然后狀,然后狀態(tài)由態(tài)由“空閑空閑”轉(zhuǎn)變?yōu)檗D(zhuǎn)變?yōu)椤霸诘谝粚釉诘谝粚印薄W值渥值渥值涫菫樽痔峁┮繇?、意思解釋、例句、用法等等的工具書。在西方,是沒有字典的概念,它是中國獨有的。 字典收字為主

54、,亦會收詞。詞典或辭典收詞為主,也會收字。字典的功能現(xiàn)代的字典都提供了很多功能,其中兩大功能分別是:以溝通為主,幫助對文字的理解、翻譯及五筆以知識為主,針對某事物來尋獲知識字典在黑客領域的含義字典在黑客領域的含義黑客破解方面的字典是指一個包含很多密碼的文本文件,黑客常用相關軟件生成包含很多密碼的字典文件,然后用軟件把字典中的密碼去不斷嘗試登陸,直到登陸成功。該過程被稱為暴力破解,或者叫窮舉。1414、數(shù)據(jù)字典、數(shù)據(jù)字典 定義:數(shù)據(jù)字典是描述與系統(tǒng)相關的信息的集合,定義:數(shù)據(jù)字典是描述與系統(tǒng)相關的信息的集合,是對系統(tǒng)中所有數(shù)據(jù)的定義的集合。是對系統(tǒng)中所有數(shù)據(jù)的定義的集合。 數(shù)據(jù)流圖描述系統(tǒng)的邏輯

55、模型,但它不可能表達一個系統(tǒng)的全部邏輯特性,特別是有關數(shù)據(jù)的詳細內(nèi)容。 數(shù)據(jù)字典恰恰彌補了數(shù)據(jù)流圖在這個方面的不足,它專門記錄有關數(shù)據(jù)方面的信息,作為對數(shù)據(jù)流圖的補充和解釋。 數(shù)據(jù)流圖和數(shù)據(jù)詞典共同構成全面描述軟件需求說明書的核心。 數(shù)據(jù)字典要對數(shù)據(jù)流圖中出現(xiàn)的所有名字進行定義。 同日常使用的詞典一樣,為了便于查閱,詞典中的所有條目都要按一定的次序排列起來,也可采用卡片的形式,以供開發(fā)與維護人員方便地使用。 數(shù)據(jù)字典的內(nèi)容主要包括:數(shù)據(jù)元素、數(shù)據(jù)流、數(shù)據(jù)存儲、外部項、加工處理等。按詞條形式描述數(shù)據(jù)的屬性、結(jié)構、邏輯關系、特征信息等。14.2 14.2 定義數(shù)據(jù)的方法定義數(shù)據(jù)的方法 定義絕大多數(shù)

56、復雜事物的方法,都是用被定義事物成定義絕大多數(shù)復雜事物的方法,都是用被定義事物成分的某種組合表示這個事物,這些組成成分又由更低層的成分的某種組合表示這個事物,這些組成成分又由更低層的成分的組合來定義。分的組合來定義。 由數(shù)據(jù)元素組成數(shù)據(jù)的方式只有下述三種基本類型:由數(shù)據(jù)元素組成數(shù)據(jù)的方式只有下述三種基本類型: 順序順序 即以確定次序連接兩個或多個分量。即以確定次序連接兩個或多個分量。 選擇選擇 即從兩個或多個可能的元素中選取一個。即從兩個或多個可能的元素中選取一個。 重復重復 即把指定的分量重復零次或多次。即把指定的分量重復零次或多次。 可選可選 即一個分量是可有可無的(重復零次或一次)即一個

57、分量是可有可無的(重復零次或一次)。數(shù)據(jù)流定義中常用的符號含義如下: =表示“被定義為”; + 表示“和”,連接兩個或多個分量; .|. 表示“選擇”,即可選擇方括號中的一項,用“|”作為各項的分割符; ( ) 表示“可選”,即括號內(nèi)的項可選可不選; mn表示“重復”,n為重復次數(shù)的上限,m為重復次數(shù)的下限,如重復次數(shù)沒有限定可不標出上下限。也可以利用上下標表示。 x = ab.,. 或或 .|. x =a,b,x=a|b . 或或 m.n x = a,x = 3a8(.) x = (a)“.” x = “a” . x = 1.914.3 14.3 數(shù)據(jù)字典的用途數(shù)據(jù)字典的用途 數(shù)據(jù)字典最重要的用途是作為分析階段的工具。在數(shù)據(jù)字典中建立的一組嚴密

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論