軟件工程第3章(NEW)_第1頁(yè)
軟件工程第3章(NEW)_第2頁(yè)
軟件工程第3章(NEW)_第3頁(yè)
軟件工程第3章(NEW)_第4頁(yè)
軟件工程第3章(NEW)_第5頁(yè)
已閱讀5頁(yè),還剩78頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第3章章 需求分析需求分析3.1 需求分析的任務(wù)需求分析的任務(wù)3.2 與用戶溝通獲取需求的方法與用戶溝通獲取需求的方法3.3 分析建模與規(guī)格說(shuō)明分析建模與規(guī)格說(shuō)明3.4 實(shí)體實(shí)體-聯(lián)系圖聯(lián)系圖3.5 數(shù)據(jù)規(guī)范化數(shù)據(jù)規(guī)范化3.6 狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖3.7 其他圖形工具其他圖形工具3.8 驗(yàn)證軟件需求驗(yàn)證軟件需求3.9 小結(jié)小結(jié)習(xí)題習(xí)題 需求分析是軟件定義時(shí)期的最后一個(gè)階段,它需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)是準(zhǔn)確地回答的基本任務(wù)是準(zhǔn)確地回答“系統(tǒng)必須做什么系統(tǒng)必須做什么?”這個(gè)這個(gè)問(wèn)題。問(wèn)題。 不是確定系統(tǒng)怎樣完成它的工作,而僅僅是確不是確定系統(tǒng)怎樣完成它的工作,而僅僅是確

2、定系統(tǒng)必須完成哪些工作。定系統(tǒng)必須完成哪些工作。 在需求分析階段結(jié)束之前,系統(tǒng)分析員應(yīng)該寫(xiě)在需求分析階段結(jié)束之前,系統(tǒng)分析員應(yīng)該寫(xiě)出軟件需求規(guī)格說(shuō)明書(shū),以書(shū)面形式準(zhǔn)確地描述軟出軟件需求規(guī)格說(shuō)明書(shū),以書(shū)面形式準(zhǔn)確地描述軟件需求。件需求。 只有用戶才真正知道自己需要什么,但是他們只有用戶才真正知道自己需要什么,但是他們并不知道怎樣用軟件實(shí)現(xiàn)自己的需求,用戶必須把并不知道怎樣用軟件實(shí)現(xiàn)自己的需求,用戶必須把他們對(duì)軟件的需求盡量準(zhǔn)確、具體地描述出來(lái);他們對(duì)軟件的需求盡量準(zhǔn)確、具體地描述出來(lái); 分析員知道怎樣用軟件實(shí)現(xiàn)人們的需求,但是分析員知道怎樣用軟件實(shí)現(xiàn)人們的需求,但是在需求分析開(kāi)始時(shí)他們對(duì)用戶的需

3、求并不十分清楚,在需求分析開(kāi)始時(shí)他們對(duì)用戶的需求并不十分清楚,必須通過(guò)與用戶溝通獲取用戶對(duì)軟件的需求。必須通過(guò)與用戶溝通獲取用戶對(duì)軟件的需求。用于需求分析的結(jié)構(gòu)化分析方法都遵守下述準(zhǔn)則:用于需求分析的結(jié)構(gòu)化分析方法都遵守下述準(zhǔn)則:(1) 理解并描述問(wèn)題的信息域理解并描述問(wèn)題的信息域 = 建立建立數(shù)據(jù)模型數(shù)據(jù)模型。(2) 定義軟件應(yīng)完成的功能定義軟件應(yīng)完成的功能 = 建立建立功能模型功能模型。(3) 描述外部事件結(jié)果的軟件行為描述外部事件結(jié)果的軟件行為 = 建立建立行為模型行為模型。(4) 對(duì)模型進(jìn)行分解對(duì)模型進(jìn)行分解 = 用層次的方式用層次的方式展示細(xì)節(jié)展示細(xì)節(jié)。1. 功能需求功能需求 指定系

4、統(tǒng)必須提供的服務(wù)。指定系統(tǒng)必須提供的服務(wù)。(例如,例如,ATM存取款)存取款)2. 性能需求性能需求 指定系統(tǒng)必須滿足的定時(shí)約束或容量約束,通指定系統(tǒng)必須滿足的定時(shí)約束或容量約束,通常包括速度常包括速度(響應(yīng)時(shí)間響應(yīng)時(shí)間)、信息量速率、主存容量、磁、信息量速率、主存容量、磁盤容量、安全性等方面的需求。盤容量、安全性等方面的需求。 (例如,例如, 存取款響應(yīng)時(shí)間應(yīng)該小于存取款響應(yīng)時(shí)間應(yīng)該小于30秒)秒)3.1 需求分析的任務(wù)需求分析的任務(wù) 3.1.1 確定對(duì)系統(tǒng)的綜合要求確定對(duì)系統(tǒng)的綜合要求3. 可靠性和可用性需求可靠性和可用性需求 定量地指定系統(tǒng)的可靠性。定量地指定系統(tǒng)的可靠性。 (例如,例如

5、,ATM存取款系統(tǒng)一個(gè)月故障不得超過(guò)存取款系統(tǒng)一個(gè)月故障不得超過(guò)2次)次)4. 出錯(cuò)處理需求出錯(cuò)處理需求 說(shuō)明系統(tǒng)對(duì)環(huán)境錯(cuò)誤應(yīng)該怎樣響應(yīng)。說(shuō)明系統(tǒng)對(duì)環(huán)境錯(cuò)誤應(yīng)該怎樣響應(yīng)。(例如,如果它接收到從另一個(gè)銀行系統(tǒng)發(fā)來(lái)的違(例如,如果它接收到從另一個(gè)銀行系統(tǒng)發(fā)來(lái)的違反協(xié)議格式的消息,應(yīng)該做什么反協(xié)議格式的消息,應(yīng)該做什么? ) 5. 接口需求接口需求 描述應(yīng)用系統(tǒng)與它的環(huán)境通信的格式。描述應(yīng)用系統(tǒng)與它的環(huán)境通信的格式。常見(jiàn)的接口需求有:常見(jiàn)的接口需求有: 用戶接口需求;用戶接口需求; (例如,用戶輸入數(shù)字例如,用戶輸入數(shù)字0-9) 硬件接口需求;硬件接口需求; 軟件接口需求;軟件接口需求; 通信接口需

6、求。通信接口需求。6. 約束約束 說(shuō)明用戶或環(huán)境強(qiáng)加給項(xiàng)目的限制條件。說(shuō)明用戶或環(huán)境強(qiáng)加給項(xiàng)目的限制條件。 (例如,例如,ATM存取款以存取款以100元為計(jì)量單位)元為計(jì)量單位) 常見(jiàn)的約束有:常見(jiàn)的約束有: 精度;精度; 工具和語(yǔ)言約束;工具和語(yǔ)言約束; 設(shè)計(jì)約束;設(shè)計(jì)約束; 應(yīng)該使用的標(biāo)準(zhǔn);應(yīng)該使用的標(biāo)準(zhǔn); 應(yīng)該使用的硬件平臺(tái)。應(yīng)該使用的硬件平臺(tái)。7. 逆向需求逆向需求 逆向需求說(shuō)明軟件系統(tǒng)不應(yīng)該做什么。逆向需求說(shuō)明軟件系統(tǒng)不應(yīng)該做什么。 (例如,例如,ATM存取款系統(tǒng)不打印以往賬戶清單)存取款系統(tǒng)不打印以往賬戶清單)8. 將來(lái)可能提出的要求將來(lái)可能提出的要求 明確地列出那些雖然不屬于當(dāng)前

7、系統(tǒng)開(kāi)發(fā)范疇,明確地列出那些雖然不屬于當(dāng)前系統(tǒng)開(kāi)發(fā)范疇,但是據(jù)分析將來(lái)很可能會(huì)提出來(lái)的要求。但是據(jù)分析將來(lái)很可能會(huì)提出來(lái)的要求。 以便設(shè)計(jì)過(guò)程中對(duì)系統(tǒng)將來(lái)可能的擴(kuò)充和修以便設(shè)計(jì)過(guò)程中對(duì)系統(tǒng)將來(lái)可能的擴(kuò)充和修改預(yù)做準(zhǔn)備改預(yù)做準(zhǔn)備 。 (例如,例如,ATM存取款系統(tǒng)將來(lái)可能接受國(guó)外發(fā)存取款系統(tǒng)將來(lái)可能接受國(guó)外發(fā)行的信用卡存取款)行的信用卡存取款) 任何一個(gè)軟件系統(tǒng)本質(zhì)上都是信息處理系統(tǒng),任何一個(gè)軟件系統(tǒng)本質(zhì)上都是信息處理系統(tǒng),必須分析系統(tǒng)的數(shù)據(jù)要求,這是軟件需求分析的一必須分析系統(tǒng)的數(shù)據(jù)要求,這是軟件需求分析的一個(gè)重要任務(wù)。個(gè)重要任務(wù)。 分析系統(tǒng)的數(shù)據(jù)要求通常采用建立數(shù)據(jù)模型的分析系統(tǒng)的數(shù)據(jù)要求通

8、常采用建立數(shù)據(jù)模型的方法方法 。 復(fù)雜的數(shù)據(jù)由許多基本的數(shù)據(jù)元素組成,為復(fù)雜的數(shù)據(jù)由許多基本的數(shù)據(jù)元素組成,為了提高可理解性,常常利用圖形工具輔助描繪數(shù)據(jù)了提高可理解性,常常利用圖形工具輔助描繪數(shù)據(jù)結(jié)構(gòu)。結(jié)構(gòu)。 常用的圖形工具有層次方框圖和常用的圖形工具有層次方框圖和Warnier圖。圖。3.1.2 分析系統(tǒng)的數(shù)據(jù)要求分析系統(tǒng)的數(shù)據(jù)要求 通過(guò)上述分析系統(tǒng)的綜合要求和數(shù)據(jù)要求可以通過(guò)上述分析系統(tǒng)的綜合要求和數(shù)據(jù)要求可以導(dǎo)出系統(tǒng)的詳細(xì)的邏輯模型導(dǎo)出系統(tǒng)的詳細(xì)的邏輯模型. 通常用數(shù)據(jù)流圖、實(shí)體通常用數(shù)據(jù)流圖、實(shí)體-聯(lián)系圖、狀態(tài)轉(zhuǎn)換圖、聯(lián)系圖、狀態(tài)轉(zhuǎn)換圖、數(shù)據(jù)字典和主要的處理算法描述這個(gè)邏輯模型。數(shù)據(jù)

9、字典和主要的處理算法描述這個(gè)邏輯模型。3.1.3 導(dǎo)出系統(tǒng)的邏輯模型導(dǎo)出系統(tǒng)的邏輯模型 根據(jù)在分析過(guò)程中獲得的對(duì)系統(tǒng)的更深入更具根據(jù)在分析過(guò)程中獲得的對(duì)系統(tǒng)的更深入更具體的了解,可以比較準(zhǔn)確地估計(jì)系統(tǒng)的成本和進(jìn)度,體的了解,可以比較準(zhǔn)確地估計(jì)系統(tǒng)的成本和進(jìn)度,修正以前制定的開(kāi)發(fā)計(jì)劃。修正以前制定的開(kāi)發(fā)計(jì)劃。3.1.4 修正系統(tǒng)開(kāi)發(fā)計(jì)劃修正系統(tǒng)開(kāi)發(fā)計(jì)劃訪談是廣泛使用的需求分析技術(shù)。訪談是廣泛使用的需求分析技術(shù)。訪談?dòng)袃煞N基本形式訪談?dòng)袃煞N基本形式:正式訪談時(shí),正式訪談時(shí), 系統(tǒng)分析員將提出一些事先準(zhǔn)備好的具體問(wèn)題。系統(tǒng)分析員將提出一些事先準(zhǔn)備好的具體問(wèn)題。在非正式訪談中,在非正式訪談中, 分析員

10、將提出一些用戶可以自由回答的開(kāi)放性分析員將提出一些用戶可以自由回答的開(kāi)放性問(wèn)題,以鼓勵(lì)被訪問(wèn)人員說(shuō)出自己的想法。問(wèn)題,以鼓勵(lì)被訪問(wèn)人員說(shuō)出自己的想法。3.2 與用戶溝通獲取需求的方法與用戶溝通獲取需求的方法 3.2.1 訪談訪談當(dāng)需要調(diào)查大量人員的意見(jiàn)時(shí),向被調(diào)查人分發(fā)當(dāng)需要調(diào)查大量人員的意見(jiàn)時(shí),向被調(diào)查人分發(fā)調(diào)查表是一個(gè)十分有效的做法。調(diào)查表是一個(gè)十分有效的做法。 分析員仔細(xì)閱讀收回的調(diào)查表,然后再有針?lè)治鰡T仔細(xì)閱讀收回的調(diào)查表,然后再有針對(duì)性地訪問(wèn)一些用戶,以便向他們?cè)儐?wèn)在分析調(diào)對(duì)性地訪問(wèn)一些用戶,以便向他們?cè)儐?wèn)在分析調(diào)查表時(shí)發(fā)現(xiàn)的新問(wèn)題。查表時(shí)發(fā)現(xiàn)的新問(wèn)題。在訪問(wèn)用戶的過(guò)程中使用情景分析

11、技術(shù)往往非常在訪問(wèn)用戶的過(guò)程中使用情景分析技術(shù)往往非常有效。有效。 情景分析就是對(duì)用戶將來(lái)使用目標(biāo)系統(tǒng)解決情景分析就是對(duì)用戶將來(lái)使用目標(biāo)系統(tǒng)解決某個(gè)具體問(wèn)題的方法和結(jié)果進(jìn)行分析。某個(gè)具體問(wèn)題的方法和結(jié)果進(jìn)行分析。情景分析技術(shù)的用處主要體現(xiàn)在下述兩個(gè)方面:情景分析技術(shù)的用處主要體現(xiàn)在下述兩個(gè)方面:(1) 它能在某種程度上演示目標(biāo)系統(tǒng)的行為,從而它能在某種程度上演示目標(biāo)系統(tǒng)的行為,從而便于用戶理解,可能進(jìn)一步揭示出目前還不知便于用戶理解,可能進(jìn)一步揭示出目前還不知道的需求。道的需求。(2) 由于情景分析較易為用戶所理解,使用這種技由于情景分析較易為用戶所理解,使用這種技術(shù)能保證用戶在需求分析過(guò)程中

12、始終扮演一個(gè)術(shù)能保證用戶在需求分析過(guò)程中始終扮演一個(gè)積極主動(dòng)的角色。積極主動(dòng)的角色。 結(jié)構(gòu)化分析方法就是面向數(shù)據(jù)流自頂向下逐步結(jié)構(gòu)化分析方法就是面向數(shù)據(jù)流自頂向下逐步求精進(jìn)行需求分析的方法。求精進(jìn)行需求分析的方法。 通過(guò)可行性研究已經(jīng)得出了目標(biāo)系統(tǒng)的高層數(shù)通過(guò)可行性研究已經(jīng)得出了目標(biāo)系統(tǒng)的高層數(shù)據(jù)流圖,需求分析的目標(biāo)之一就是把數(shù)據(jù)流和數(shù)據(jù)據(jù)流圖,需求分析的目標(biāo)之一就是把數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)定義到元素級(jí)。存儲(chǔ)定義到元素級(jí)。3.2.2 面向數(shù)據(jù)流自頂向下求精面向數(shù)據(jù)流自頂向下求精 通常把分析過(guò)程中得到的有關(guān)數(shù)據(jù)元素的信通常把分析過(guò)程中得到的有關(guān)數(shù)據(jù)元素的信息記錄在數(shù)據(jù)字典中,把對(duì)算法的簡(jiǎn)明描述記錄在息

13、記錄在數(shù)據(jù)字典中,把對(duì)算法的簡(jiǎn)明描述記錄在IPO圖圖(見(jiàn)見(jiàn)3.7節(jié)節(jié))中。中。 從輸入端開(kāi)始,分析員借助數(shù)據(jù)流圖、數(shù)據(jù)從輸入端開(kāi)始,分析員借助數(shù)據(jù)流圖、數(shù)據(jù)字典和字典和IPO圖向用戶解釋輸入數(shù)據(jù)是怎樣一步一步圖向用戶解釋輸入數(shù)據(jù)是怎樣一步一步地轉(zhuǎn)變成輸出數(shù)據(jù)的。地轉(zhuǎn)變成輸出數(shù)據(jù)的。 隨著分析過(guò)程的進(jìn)展,經(jīng)過(guò)問(wèn)題和解答的反隨著分析過(guò)程的進(jìn)展,經(jīng)過(guò)問(wèn)題和解答的反復(fù)循環(huán),分析員越來(lái)越深入具體地定義了目標(biāo)系統(tǒng),復(fù)循環(huán),分析員越來(lái)越深入具體地定義了目標(biāo)系統(tǒng),最終得到對(duì)系統(tǒng)數(shù)據(jù)和功能要求的滿意了解。最終得到對(duì)系統(tǒng)數(shù)據(jù)和功能要求的滿意了解。圖圖3.1 面向數(shù)據(jù)流自頂向下求精過(guò)程面向數(shù)據(jù)流自頂向下求精過(guò)程 使

14、用傳統(tǒng)的訪談或面向數(shù)據(jù)流自頂向下求精方使用傳統(tǒng)的訪談或面向數(shù)據(jù)流自頂向下求精方法定義需求時(shí),用戶處于被動(dòng)地位,這兩種方法的法定義需求時(shí),用戶處于被動(dòng)地位,這兩種方法的效果有時(shí)并不理想。效果有時(shí)并不理想。 為了解決上述問(wèn)題,人們研究出一種面向團(tuán)隊(duì)為了解決上述問(wèn)題,人們研究出一種面向團(tuán)隊(duì)的需求收集法,稱為簡(jiǎn)易的應(yīng)用規(guī)格說(shuō)明技術(shù)。的需求收集法,稱為簡(jiǎn)易的應(yīng)用規(guī)格說(shuō)明技術(shù)。 今天,簡(jiǎn)易的應(yīng)用規(guī)格說(shuō)明技術(shù)已經(jīng)成為信息今天,簡(jiǎn)易的應(yīng)用規(guī)格說(shuō)明技術(shù)已經(jīng)成為信息系統(tǒng)領(lǐng)域使用的主流技術(shù)。系統(tǒng)領(lǐng)域使用的主流技術(shù)。3.2.3 簡(jiǎn)易的應(yīng)用規(guī)格說(shuō)明技術(shù)簡(jiǎn)易的應(yīng)用規(guī)格說(shuō)明技術(shù)應(yīng)用規(guī)格說(shuō)明技術(shù)分析需求的典型過(guò)程如下:應(yīng)用規(guī)

15、格說(shuō)明技術(shù)分析需求的典型過(guò)程如下:1. 進(jìn)行初步的訪談,確定待解決的問(wèn)題的范圍和解決進(jìn)行初步的訪談,確定待解決的問(wèn)題的范圍和解決方案。方案。2. 開(kāi)發(fā)者和用戶分別寫(xiě)出開(kāi)發(fā)者和用戶分別寫(xiě)出“產(chǎn)品需求產(chǎn)品需求”。3. 開(kāi)會(huì)把在會(huì)前準(zhǔn)備好的列表展示出來(lái)供大家討論。開(kāi)會(huì)把在會(huì)前準(zhǔn)備好的列表展示出來(lái)供大家討論。4. 大家共同創(chuàng)建一張組合列表。大家共同創(chuàng)建一張組合列表。5. 與會(huì)者分成更小的小組,為項(xiàng)目制定小型規(guī)格說(shuō)明。與會(huì)者分成更小的小組,為項(xiàng)目制定小型規(guī)格說(shuō)明。6. 各小組展示制定的小型規(guī)格說(shuō)明,供大家討論。各小組展示制定的小型規(guī)格說(shuō)明,供大家討論。7. 由一名與會(huì)者根據(jù)會(huì)議成果起草完整的軟件需求規(guī)由

16、一名與會(huì)者根據(jù)會(huì)議成果起草完整的軟件需求規(guī)格說(shuō)明書(shū)。格說(shuō)明書(shū)。 快速建立軟件原型是最準(zhǔn)確、有效的需求分析技術(shù)??焖俳④浖褪亲顪?zhǔn)確、有效的需求分析技術(shù)。 快速原型就是快速建立起來(lái)的旨在演示目標(biāo)系統(tǒng)快速原型就是快速建立起來(lái)的旨在演示目標(biāo)系統(tǒng)主要功能的可運(yùn)行的程序。主要功能的可運(yùn)行的程序。 構(gòu)建原型的要點(diǎn)是,它應(yīng)該實(shí)現(xiàn)用戶看得見(jiàn)的功構(gòu)建原型的要點(diǎn)是,它應(yīng)該實(shí)現(xiàn)用戶看得見(jiàn)的功能能(例如,屏幕顯示或打印報(bào)表例如,屏幕顯示或打印報(bào)表),省略目標(biāo)系統(tǒng)的,省略目標(biāo)系統(tǒng)的“隱隱含含”功能功能(例如,內(nèi)部業(yè)務(wù)處理過(guò)程例如,內(nèi)部業(yè)務(wù)處理過(guò)程)。 ( 例如,用瀏覽器頁(yè)面快速生成模擬例如,用瀏覽器頁(yè)面快速生成模擬

17、ATM存取款存取款的用戶界面供銀行領(lǐng)導(dǎo)判斷系統(tǒng)設(shè)計(jì)是否合適。)的用戶界面供銀行領(lǐng)導(dǎo)判斷系統(tǒng)設(shè)計(jì)是否合適。)3.2.4 快速建立軟件原型快速建立軟件原型快速原型應(yīng)該具備的第一個(gè)特性是快速原型應(yīng)該具備的第一個(gè)特性是“快速快速”。 以便使用戶和開(kāi)發(fā)者在目標(biāo)系統(tǒng)應(yīng)該以便使用戶和開(kāi)發(fā)者在目標(biāo)系統(tǒng)應(yīng)該“做什么做什么”這個(gè)問(wèn)題上盡可能快地達(dá)成共識(shí)。原型的某些缺陷這個(gè)問(wèn)題上盡可能快地達(dá)成共識(shí)。原型的某些缺陷是可以忽略的。是可以忽略的??焖僭蛻?yīng)該具備的第二個(gè)特性是快速原型應(yīng)該具備的第二個(gè)特性是“容易修改容易修改”。 在實(shí)際開(kāi)發(fā)軟件產(chǎn)品時(shí),原型的在實(shí)際開(kāi)發(fā)軟件產(chǎn)品時(shí),原型的“修改修改試試用用反饋反饋”過(guò)程可能重

18、復(fù)多遍,如果修改耗時(shí)過(guò)多,過(guò)程可能重復(fù)多遍,如果修改耗時(shí)過(guò)多,勢(shì)必延誤軟件開(kāi)發(fā)時(shí)間。勢(shì)必延誤軟件開(kāi)發(fā)時(shí)間。 了快速地構(gòu)建和修改原型,通常使用下述了快速地構(gòu)建和修改原型,通常使用下述3種方種方法和工具:法和工具:(1) 第四代技術(shù)第四代技術(shù) 第四代技術(shù)包括眾多數(shù)據(jù)庫(kù)查詢和報(bào)表語(yǔ)言、第四代技術(shù)包括眾多數(shù)據(jù)庫(kù)查詢和報(bào)表語(yǔ)言、程序和應(yīng)用系統(tǒng)生成器以及其他非常高級(jí)的非過(guò)程程序和應(yīng)用系統(tǒng)生成器以及其他非常高級(jí)的非過(guò)程語(yǔ)言。語(yǔ)言。(2) 可重用的軟件構(gòu)件可重用的軟件構(gòu)件 使用一組已有的軟件構(gòu)件使用一組已有的軟件構(gòu)件( 組件組件)來(lái)裝配來(lái)裝配(而不而不是從頭構(gòu)造是從頭構(gòu)造)原型。原型。 軟件構(gòu)件可以是數(shù)據(jù)結(jié)構(gòu)

19、軟件構(gòu)件可以是數(shù)據(jù)結(jié)構(gòu)(或數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)),或軟件,或軟件體系結(jié)構(gòu)構(gòu)件體系結(jié)構(gòu)構(gòu)件(即程序即程序),或過(guò)程構(gòu)件,或過(guò)程構(gòu)件(即模塊即模塊)。(3) 形式化規(guī)格說(shuō)明和原型環(huán)境形式化規(guī)格說(shuō)明和原型環(huán)境 已經(jīng)研究出許多形式化規(guī)格說(shuō)明語(yǔ)言和工具已經(jīng)研究出許多形式化規(guī)格說(shuō)明語(yǔ)言和工具(參參見(jiàn)第見(jiàn)第4章章),用于替代自然語(yǔ)言規(guī)格說(shuō)明技術(shù)。,用于替代自然語(yǔ)言規(guī)格說(shuō)明技術(shù)。 今天,形式化語(yǔ)言的倡導(dǎo)者正在開(kāi)發(fā)交互式環(huán)今天,形式化語(yǔ)言的倡導(dǎo)者正在開(kāi)發(fā)交互式環(huán)境,以便可以調(diào)用自動(dòng)工具把基于形式語(yǔ)言的規(guī)格境,以便可以調(diào)用自動(dòng)工具把基于形式語(yǔ)言的規(guī)格說(shuō)明翻譯成可執(zhí)行的程序代碼。說(shuō)明翻譯成可執(zhí)行的程序代碼。 用戶能夠使用

20、可執(zhí)行的原型代碼去進(jìn)一步精化用戶能夠使用可執(zhí)行的原型代碼去進(jìn)一步精化形式化的規(guī)格說(shuō)明。形式化的規(guī)格說(shuō)明。 為了更好地理解復(fù)雜事物,人們常常采用建立事為了更好地理解復(fù)雜事物,人們常常采用建立事物模型的方法。物模型的方法。 所謂模型,就是為了理解事物而對(duì)事物做出的所謂模型,就是為了理解事物而對(duì)事物做出的一種抽象,是對(duì)事物的一種無(wú)歧義的書(shū)面描述。一種抽象,是對(duì)事物的一種無(wú)歧義的書(shū)面描述。 通常,模型由一組圖形符號(hào)和組織這些符號(hào)的通常,模型由一組圖形符號(hào)和組織這些符號(hào)的規(guī)則組成。規(guī)則組成。3.3 分析建模與規(guī)格說(shuō)明分析建模與規(guī)格說(shuō)明 3.3.1 分析建模分析建模 結(jié)構(gòu)化分析實(shí)質(zhì)上是一種創(chuàng)建模型的活動(dòng)。

21、結(jié)構(gòu)化分析實(shí)質(zhì)上是一種創(chuàng)建模型的活動(dòng)。 系統(tǒng)分析員應(yīng)該從不同角度抽象出目標(biāo)系統(tǒng)的系統(tǒng)分析員應(yīng)該從不同角度抽象出目標(biāo)系統(tǒng)的特性,使用精確的表示方法構(gòu)造系統(tǒng)的模型,直至特性,使用精確的表示方法構(gòu)造系統(tǒng)的模型,直至最終達(dá)到可以用程序?qū)崿F(xiàn)模型。最終達(dá)到可以用程序?qū)崿F(xiàn)模型。 需求分析過(guò)程應(yīng)該建立需求分析過(guò)程應(yīng)該建立3種模型,它們分別是種模型,它們分別是數(shù)據(jù)模型、功能模型和行為模型。數(shù)據(jù)模型、功能模型和行為模型。數(shù)據(jù)模型數(shù)據(jù)模型 實(shí)體實(shí)體-聯(lián)系圖,描繪數(shù)據(jù)對(duì)象及數(shù)據(jù)對(duì)象之間的聯(lián)系圖,描繪數(shù)據(jù)對(duì)象及數(shù)據(jù)對(duì)象之間的關(guān)系,是用于建立數(shù)據(jù)模型的圖形。關(guān)系,是用于建立數(shù)據(jù)模型的圖形。 (見(jiàn)(見(jiàn)3.4節(jié)節(jié) )功能模型

22、功能模型 數(shù)據(jù)流圖,描繪當(dāng)數(shù)據(jù)在軟件系統(tǒng)中移動(dòng)時(shí)被變數(shù)據(jù)流圖,描繪當(dāng)數(shù)據(jù)在軟件系統(tǒng)中移動(dòng)時(shí)被變換的邏輯過(guò)程,是建立功能模型的基礎(chǔ)。(見(jiàn)換的邏輯過(guò)程,是建立功能模型的基礎(chǔ)。(見(jiàn)2.4節(jié)節(jié) )行為模型行為模型 狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖(簡(jiǎn)稱為狀態(tài)圖簡(jiǎn)稱為狀態(tài)圖),描繪了系統(tǒng)的各種,描繪了系統(tǒng)的各種行為模式行為模式(稱為稱為“狀態(tài)狀態(tài)”)和在不同狀態(tài)間轉(zhuǎn)換的方式。和在不同狀態(tài)間轉(zhuǎn)換的方式。是行為建模的基礎(chǔ)。是行為建模的基礎(chǔ)。 (見(jiàn)(見(jiàn)3.6節(jié)節(jié) ) 通過(guò)需求分析除了創(chuàng)建分析模型之外,還應(yīng)該通過(guò)需求分析除了創(chuàng)建分析模型之外,還應(yīng)該寫(xiě)出軟件需求規(guī)格說(shuō)明書(shū),它是需求分析階段得出寫(xiě)出軟件需求規(guī)格說(shuō)明書(shū),它是需求

23、分析階段得出的最主要的文檔。的最主要的文檔。 通常用自然語(yǔ)言完整、準(zhǔn)確、具體地描述系通常用自然語(yǔ)言完整、準(zhǔn)確、具體地描述系統(tǒng)的數(shù)據(jù)要求、功能需求、性能需求、可靠性和可統(tǒng)的數(shù)據(jù)要求、功能需求、性能需求、可靠性和可用性要求、出錯(cuò)處理需求、接口需求、約束、逆向用性要求、出錯(cuò)處理需求、接口需求、約束、逆向需求以及將來(lái)可能提出的要求。需求以及將來(lái)可能提出的要求。3.3.2 軟件需求規(guī)格說(shuō)明軟件需求規(guī)格說(shuō)明 為了把用戶的數(shù)據(jù)要求清楚、準(zhǔn)確地描述出來(lái),為了把用戶的數(shù)據(jù)要求清楚、準(zhǔn)確地描述出來(lái),系統(tǒng)分析員通常建立一個(gè)概念性的數(shù)據(jù)模型。系統(tǒng)分析員通常建立一個(gè)概念性的數(shù)據(jù)模型。 這種模型是一種面向問(wèn)題的數(shù)據(jù)模型,

24、它描述這種模型是一種面向問(wèn)題的數(shù)據(jù)模型,它描述了從用戶角度看到的數(shù)據(jù),反映了用戶的現(xiàn)實(shí)環(huán)境,了從用戶角度看到的數(shù)據(jù),反映了用戶的現(xiàn)實(shí)環(huán)境,而且與在軟件系統(tǒng)中的實(shí)現(xiàn)方法無(wú)關(guān)。而且與在軟件系統(tǒng)中的實(shí)現(xiàn)方法無(wú)關(guān)。 3.4 實(shí)體實(shí)體-聯(lián)系圖聯(lián)系圖( Entity-Relationship diagram ) 數(shù)據(jù)模型中包含數(shù)據(jù)模型中包含3種相互關(guān)聯(lián)的信息:種相互關(guān)聯(lián)的信息: 數(shù)據(jù)對(duì)象、數(shù)據(jù)對(duì)象、 數(shù)據(jù)對(duì)象的屬性數(shù)據(jù)對(duì)象的屬性 數(shù)據(jù)對(duì)象彼此間相互連接的關(guān)系。數(shù)據(jù)對(duì)象彼此間相互連接的關(guān)系。 數(shù)據(jù)對(duì)象是對(duì)軟件必須理解的數(shù)據(jù)對(duì)象是對(duì)軟件必須理解的復(fù)合信息復(fù)合信息的抽象。的抽象。 所謂復(fù)合信息是指具有一系列不同

25、性質(zhì)或?qū)傩缘乃^復(fù)合信息是指具有一系列不同性質(zhì)或?qū)傩缘氖挛?,僅有單個(gè)值的事物事物,僅有單個(gè)值的事物(例如,寬度例如,寬度)不是數(shù)據(jù)對(duì)象。不是數(shù)據(jù)對(duì)象。 數(shù)據(jù)對(duì)象可以是數(shù)據(jù)對(duì)象可以是事物事物(例如,報(bào)表例如,報(bào)表)、行為行為(例如,例如,打電話打電話)、事件事件(例如,響警報(bào)例如,響警報(bào))、角色角色(例如,教師、學(xué)例如,教師、學(xué)生生)、單位單位(例如,會(huì)計(jì)科例如,會(huì)計(jì)科)、地點(diǎn)地點(diǎn)(例如,倉(cāng)庫(kù)例如,倉(cāng)庫(kù))或或結(jié)構(gòu)結(jié)構(gòu)(例如,文件例如,文件)等。等。 總之,可以由一組屬性來(lái)定義的實(shí)體都可以被認(rèn)總之,可以由一組屬性來(lái)定義的實(shí)體都可以被認(rèn)為是數(shù)據(jù)對(duì)象。為是數(shù)據(jù)對(duì)象。3.4.1 數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象 數(shù)據(jù)對(duì)

26、象彼此間是有關(guān)聯(lián)的,數(shù)據(jù)對(duì)象彼此間是有關(guān)聯(lián)的, 例如,教師例如,教師“教教”課程,學(xué)生課程,學(xué)生“學(xué)學(xué)”課程,課程, 教或?qū)W的關(guān)系表示教師和課程或?qū)W生和課程之教或?qū)W的關(guān)系表示教師和課程或?qū)W生和課程之間的一種特定的連接。間的一種特定的連接。 屬性定義了數(shù)據(jù)對(duì)象的性質(zhì)。屬性定義了數(shù)據(jù)對(duì)象的性質(zhì)。 必須把一個(gè)或多個(gè)屬性定義為必須把一個(gè)或多個(gè)屬性定義為“標(biāo)識(shí)符標(biāo)識(shí)符”,也,也就是說(shuō),當(dāng)我們希望找到數(shù)據(jù)對(duì)象的一個(gè)實(shí)例時(shí),就是說(shuō),當(dāng)我們希望找到數(shù)據(jù)對(duì)象的一個(gè)實(shí)例時(shí),用標(biāo)識(shí)符屬性作為用標(biāo)識(shí)符屬性作為“關(guān)鍵字關(guān)鍵字” 。 應(yīng)該根據(jù)對(duì)所要解決的問(wèn)題的理解,來(lái)確定特應(yīng)該根據(jù)對(duì)所要解決的問(wèn)題的理解,來(lái)確定特定數(shù)據(jù)對(duì)

27、象的一組合適的屬性。定數(shù)據(jù)對(duì)象的一組合適的屬性。3.4.2 屬性屬性 數(shù)據(jù)對(duì)象彼此之間相互連接的方式稱為聯(lián)系,數(shù)據(jù)對(duì)象彼此之間相互連接的方式稱為聯(lián)系,也稱為關(guān)系。也稱為關(guān)系。聯(lián)系可分為以下聯(lián)系可分為以下3種類型:種類型:(1) 一對(duì)一聯(lián)系一對(duì)一聯(lián)系(1 1) 例如,一個(gè)部門有一個(gè)經(jīng)理,而每個(gè)經(jīng)理只在例如,一個(gè)部門有一個(gè)經(jīng)理,而每個(gè)經(jīng)理只在一個(gè)部門任職,則部門與經(jīng)理的聯(lián)系是一對(duì)一的。一個(gè)部門任職,則部門與經(jīng)理的聯(lián)系是一對(duì)一的。(2) 一對(duì)多聯(lián)系一對(duì)多聯(lián)系(1 N) 例如,某校教師與課程之間存在一對(duì)多的聯(lián)系例如,某校教師與課程之間存在一對(duì)多的聯(lián)系“教教”,即每位教師可以教多門課程,但是每門課,即每

28、位教師可以教多門課程,但是每門課程只能由一位教師來(lái)教程只能由一位教師來(lái)教(見(jiàn)圖見(jiàn)圖3.2)。3.4.3 聯(lián)系聯(lián)系圖圖3.2 某校教學(xué)管理某校教學(xué)管理ER圖圖(3) 多對(duì)多聯(lián)系多對(duì)多聯(lián)系(M N) 例如,圖例如,圖3.2表示學(xué)生與課程間的聯(lián)系表示學(xué)生與課程間的聯(lián)系(“學(xué)學(xué)”)是多對(duì)多的,即一個(gè)學(xué)生可以學(xué)多門課程,而每門是多對(duì)多的,即一個(gè)學(xué)生可以學(xué)多門課程,而每門課程可以有多個(gè)學(xué)生來(lái)學(xué)。課程可以有多個(gè)學(xué)生來(lái)學(xué)。 聯(lián)系也可能有屬性。例如,學(xué)生聯(lián)系也可能有屬性。例如,學(xué)生“學(xué)學(xué)”某門某門課程所取得的成績(jī),既不是學(xué)生的屬性也不是課程課程所取得的成績(jī),既不是學(xué)生的屬性也不是課程的屬性。的屬性。 由于由于“

29、成績(jī)成績(jī)”既依賴于某名特定的學(xué)生又依賴既依賴于某名特定的學(xué)生又依賴于某門特定的課程,所以它是學(xué)生與課程之間的聯(lián)于某門特定的課程,所以它是學(xué)生與課程之間的聯(lián)系系“學(xué)學(xué)”的屬性的屬性(見(jiàn)圖見(jiàn)圖3.2)。 使用實(shí)體使用實(shí)體-聯(lián)系圖聯(lián)系圖(entity-relationship diagram)來(lái)建立數(shù)據(jù)模型。來(lái)建立數(shù)據(jù)模型。 可以把實(shí)體可以把實(shí)體-聯(lián)系圖簡(jiǎn)稱為聯(lián)系圖簡(jiǎn)稱為ER圖,相應(yīng)地可把圖,相應(yīng)地可把用用ER圖描繪的數(shù)據(jù)模型稱為圖描繪的數(shù)據(jù)模型稱為ER模型。模型。 ER圖中包含了圖中包含了實(shí)體實(shí)體(即數(shù)據(jù)對(duì)象即數(shù)據(jù)對(duì)象)、關(guān)系關(guān)系和和屬性屬性等等3種基本成分,種基本成分, 3.4.4 實(shí)體實(shí)體-聯(lián)

30、系圖的符號(hào)聯(lián)系圖的符號(hào)1. 通常用通常用矩形框代表矩形框代表實(shí)體實(shí)體,2. 用連接相關(guān)實(shí)體的用連接相關(guān)實(shí)體的菱形框表示菱形框表示關(guān)系關(guān)系,3. 用用圓角矩形或橢圓形表示實(shí)體圓角矩形或橢圓形表示實(shí)體(或關(guān)系或關(guān)系)的的屬性屬性,4. 并用直線把實(shí)體并用直線把實(shí)體(或關(guān)系或關(guān)系)與其屬性連接起來(lái)。與其屬性連接起來(lái)。 軟件系統(tǒng)經(jīng)常使用各種長(zhǎng)期保存的信息,這些軟件系統(tǒng)經(jīng)常使用各種長(zhǎng)期保存的信息,這些信息通常以一定方式組織并存儲(chǔ)在數(shù)據(jù)庫(kù)或文件中。信息通常以一定方式組織并存儲(chǔ)在數(shù)據(jù)庫(kù)或文件中。 為減少數(shù)據(jù)冗余,避免出現(xiàn)插入異常或刪除異為減少數(shù)據(jù)冗余,避免出現(xiàn)插入異常或刪除異常,簡(jiǎn)化修改數(shù)據(jù)的過(guò)程,通常需要

31、把常,簡(jiǎn)化修改數(shù)據(jù)的過(guò)程,通常需要把數(shù)據(jù)結(jié)構(gòu)規(guī)數(shù)據(jù)結(jié)構(gòu)規(guī)范化范化。3.5 數(shù)據(jù)規(guī)范化數(shù)據(jù)規(guī)范化什么是什么是“范式范式”? 范式的概念和理論是美國(guó)著名科學(xué)哲學(xué)家托馬范式的概念和理論是美國(guó)著名科學(xué)哲學(xué)家托馬斯斯庫(kù)恩庫(kù)恩(Thomas, Kunn) 提出并在提出并在科學(xué)革命的科學(xué)革命的結(jié)構(gòu)結(jié)構(gòu) (The Structure of Scientific Revolutions)()中系統(tǒng)闡述的,()中系統(tǒng)闡述的, 指常規(guī)科學(xué)所賴以運(yùn)作的理論基礎(chǔ)和實(shí)踐規(guī)范,指常規(guī)科學(xué)所賴以運(yùn)作的理論基礎(chǔ)和實(shí)踐規(guī)范,是從事某一科學(xué)的研究者群體所共同遵從的世是從事某一科學(xué)的研究者群體所共同遵從的世界觀和行為方式。界觀和行為

32、方式。 范式從本質(zhì)上講是一種理論體系。范式從本質(zhì)上講是一種理論體系。 庫(kù)恩指出:庫(kù)恩指出:“按既定的用法,范式就是一種公認(rèn)按既定的用法,范式就是一種公認(rèn)的模型或模式。的模型或模式。” “我采用這個(gè)術(shù)語(yǔ)是想說(shuō)明,在科學(xué)實(shí)際活動(dòng)中我采用這個(gè)術(shù)語(yǔ)是想說(shuō)明,在科學(xué)實(shí)際活動(dòng)中某些被公認(rèn)的范例某些被公認(rèn)的范例包括定律、理論、應(yīng)用以包括定律、理論、應(yīng)用以及儀器設(shè)備統(tǒng)統(tǒng)在內(nèi)的范例及儀器設(shè)備統(tǒng)統(tǒng)在內(nèi)的范例為某種科學(xué)研究為某種科學(xué)研究傳統(tǒng)的出現(xiàn)提供了模型傳統(tǒng)的出現(xiàn)提供了模型范式的特點(diǎn)是:范式的特點(diǎn)是:(1)范式在一定程度內(nèi)具有公認(rèn)性;)范式在一定程度內(nèi)具有公認(rèn)性;(2)范式是一個(gè)由基本定律、理論、應(yīng)用以及相)范式

33、是一個(gè)由基本定律、理論、應(yīng)用以及相關(guān)的儀器設(shè)備等構(gòu)成的一個(gè)整體,它的存在給關(guān)的儀器設(shè)備等構(gòu)成的一個(gè)整體,它的存在給科學(xué)家提供了一個(gè)研究綱領(lǐng);科學(xué)家提供了一個(gè)研究綱領(lǐng);(3)范式還為科學(xué)研究提供了)范式還為科學(xué)研究提供了可模仿的成功的先可模仿的成功的先例例。 關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)范式關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)范式 1 第一范式第一范式(1NF) - 無(wú)重復(fù)的無(wú)重復(fù)的列列 第一范式(第一范式(1NF)是指數(shù)據(jù)庫(kù)表的每一列都是不)是指數(shù)據(jù)庫(kù)表的每一列都是不可分割的基本數(shù)據(jù)項(xiàng),同一列中不能有多個(gè)值??煞指畹幕緮?shù)據(jù)項(xiàng),同一列中不能有多個(gè)值。 表的每一行只包含一個(gè)實(shí)例的信息。簡(jiǎn)而言之,表的每一行只包含一個(gè)實(shí)例的信息。簡(jiǎn)而

34、言之,第一范式就是無(wú)重復(fù)的列。第一范式就是無(wú)重復(fù)的列。 說(shuō)明:在任何一個(gè)關(guān)系數(shù)據(jù)庫(kù)中,第一范式說(shuō)明:在任何一個(gè)關(guān)系數(shù)據(jù)庫(kù)中,第一范式(1NF)是對(duì)關(guān)系模式的基本要求,不滿足第一)是對(duì)關(guān)系模式的基本要求,不滿足第一范式(范式(1NF)的數(shù)據(jù)庫(kù)就不是關(guān)系數(shù)據(jù)庫(kù)。)的數(shù)據(jù)庫(kù)就不是關(guān)系數(shù)據(jù)庫(kù)。 關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)范式關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)范式 第二范式第二范式(2NF)-屬性完全依賴于屬性完全依賴于主鍵主鍵 第二范式(第二范式(2NF)是在第一范式()是在第一范式(1NF)的基礎(chǔ)上)的基礎(chǔ)上建立起來(lái)的,即滿足第二范式(建立起來(lái)的,即滿足第二范式(2NF)必須先滿足)必須先滿足第一范式(第一范式(1NF)。)。 第

35、二范式(第二范式(2NF)要求數(shù)據(jù)庫(kù)表中的每個(gè)實(shí)例或)要求數(shù)據(jù)庫(kù)表中的每個(gè)實(shí)例或行行必須可以被唯一地區(qū)分。必須可以被唯一地區(qū)分。 為實(shí)現(xiàn)區(qū)分通常需要為表加上一個(gè)列,以存儲(chǔ)各為實(shí)現(xiàn)區(qū)分通常需要為表加上一個(gè)列,以存儲(chǔ)各個(gè)實(shí)例的唯一標(biāo)識(shí)。個(gè)實(shí)例的唯一標(biāo)識(shí)。 例如員工信息表中加上了員工編號(hào)(例如員工信息表中加上了員工編號(hào)(emp_id)列,)列,因?yàn)槊總€(gè)員工的員工編號(hào)是唯一的,因此每個(gè)員因?yàn)槊總€(gè)員工的員工編號(hào)是唯一的,因此每個(gè)員工可以被唯一區(qū)分。這個(gè)唯一屬性列被稱為主關(guān)工可以被唯一區(qū)分。這個(gè)唯一屬性列被稱為主關(guān)鍵字或主鍵、主碼。鍵字或主鍵、主碼。 關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)范式關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)范式 第三范式第三范式

36、(3NF)-屬性不依賴于其它非主屬性屬性不依賴于其它非主屬性消除傳遞依賴消除傳遞依賴 滿足第三范式(滿足第三范式(3NF)必須先滿足第二范式)必須先滿足第二范式(2NF)。)。 簡(jiǎn)而言之,第三范式(簡(jiǎn)而言之,第三范式(3NF)要求一個(gè)數(shù)據(jù)庫(kù)表)要求一個(gè)數(shù)據(jù)庫(kù)表中不包含已在其它表中已包含的非主關(guān)鍵字信息。中不包含已在其它表中已包含的非主關(guān)鍵字信息。 例如,存在一個(gè)部門信息表,其中每個(gè)部門有部門例如,存在一個(gè)部門信息表,其中每個(gè)部門有部門編號(hào)(編號(hào)(dept_id)、部門名稱、部門簡(jiǎn)介等信息。)、部門名稱、部門簡(jiǎn)介等信息。 那么在員工信息表中列出部門編號(hào)后就不能再將部那么在員工信息表中列出部門編號(hào)

37、后就不能再將部門名稱、部門簡(jiǎn)介等與部門有關(guān)的信息再加入員工門名稱、部門簡(jiǎn)介等與部門有關(guān)的信息再加入員工信息表中。信息表中。 如果不存在部門信息表,則根據(jù)第三范式(如果不存在部門信息表,則根據(jù)第三范式(3NF)也應(yīng)該構(gòu)建它,否則就會(huì)有大量的數(shù)據(jù)冗余。也應(yīng)該構(gòu)建它,否則就會(huì)有大量的數(shù)據(jù)冗余。 在需求分析過(guò)程中應(yīng)該建立起軟件系統(tǒng)的行在需求分析過(guò)程中應(yīng)該建立起軟件系統(tǒng)的行為模型。為模型。 狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖(簡(jiǎn)稱狀態(tài)圖簡(jiǎn)稱狀態(tài)圖)通過(guò)描繪系統(tǒng)的狀態(tài)通過(guò)描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來(lái)表示系統(tǒng)的行為。及引起系統(tǒng)狀態(tài)轉(zhuǎn)換的事件,來(lái)表示系統(tǒng)的行為。 狀態(tài)圖還指明了作為特定事件的結(jié)果系統(tǒng)將做狀態(tài)圖

38、還指明了作為特定事件的結(jié)果系統(tǒng)將做哪些動(dòng)作哪些動(dòng)作(例如,處理數(shù)據(jù)例如,處理數(shù)據(jù))。3.6 狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖 狀態(tài)規(guī)定了系統(tǒng)對(duì)事件的響應(yīng)方式。狀態(tài)規(guī)定了系統(tǒng)對(duì)事件的響應(yīng)方式。 系統(tǒng)對(duì)事件的響應(yīng),既可以是做一個(gè)系統(tǒng)對(duì)事件的響應(yīng),既可以是做一個(gè)(或一系列或一系列)動(dòng)作,也可以是僅僅改變系統(tǒng)本身的狀態(tài),還可以動(dòng)作,也可以是僅僅改變系統(tǒng)本身的狀態(tài),還可以是既改變狀態(tài)又做動(dòng)作。是既改變狀態(tài)又做動(dòng)作。 在狀態(tài)圖中定義的狀態(tài)主要有:在狀態(tài)圖中定義的狀態(tài)主要有: 初態(tài)初態(tài)(初始狀態(tài)初始狀態(tài))、終態(tài)終態(tài)(最終狀態(tài)最終狀態(tài))和和中間狀態(tài)中間狀態(tài)。 在一張狀態(tài)圖中只能有一個(gè)初態(tài),而終態(tài)則可在一張狀態(tài)圖中只能有一

39、個(gè)初態(tài),而終態(tài)則可以有以有0至多個(gè)。至多個(gè)。3.6.1 狀態(tài)狀態(tài) 事件是在某個(gè)特定時(shí)刻發(fā)生的事情。事件是在某個(gè)特定時(shí)刻發(fā)生的事情。 例如,用戶移動(dòng)或點(diǎn)擊鼠標(biāo),內(nèi)部時(shí)鐘表明例如,用戶移動(dòng)或點(diǎn)擊鼠標(biāo),內(nèi)部時(shí)鐘表明某個(gè)規(guī)定的時(shí)間段已經(jīng)過(guò)去等都是事件。某個(gè)規(guī)定的時(shí)間段已經(jīng)過(guò)去等都是事件。 簡(jiǎn)而言之,事件就是引起系統(tǒng)做動(dòng)作或轉(zhuǎn)換狀簡(jiǎn)而言之,事件就是引起系統(tǒng)做動(dòng)作或轉(zhuǎn)換狀態(tài)的控制信息。態(tài)的控制信息。3.6.2 事件事件 初態(tài)用實(shí)心圓表示,終態(tài)用一對(duì)同心圓初態(tài)用實(shí)心圓表示,終態(tài)用一對(duì)同心圓(內(nèi)圓為內(nèi)圓為實(shí)心圓實(shí)心圓)表示。表示。 中間狀態(tài)用圓角矩形表示,可以用兩條水平橫中間狀態(tài)用圓角矩形表示,可以用兩條水平

40、橫線把它分成上、中、下線把它分成上、中、下3個(gè)部分。個(gè)部分。 上面部分為狀態(tài)的名稱;中間部分為狀態(tài)變量上面部分為狀態(tài)的名稱;中間部分為狀態(tài)變量的名字和值;下面部分是活動(dòng)表。的名字和值;下面部分是活動(dòng)表。 在活動(dòng)表中經(jīng)常使用下述在活動(dòng)表中經(jīng)常使用下述3種標(biāo)準(zhǔn)事件:種標(biāo)準(zhǔn)事件: entry,exit 和和 do。3.6.3 符號(hào)符號(hào) 狀態(tài)圖中兩個(gè)狀態(tài)之間帶箭頭的連線稱為狀態(tài)轉(zhuǎn)狀態(tài)圖中兩個(gè)狀態(tài)之間帶箭頭的連線稱為狀態(tài)轉(zhuǎn)換,箭頭指明了轉(zhuǎn)換方向。換,箭頭指明了轉(zhuǎn)換方向。 狀態(tài)變遷通常是由事件觸發(fā)的,在表示狀態(tài)轉(zhuǎn)狀態(tài)變遷通常是由事件觸發(fā)的,在表示狀態(tài)轉(zhuǎn)換的箭頭線上標(biāo)出觸發(fā)轉(zhuǎn)換的事件表達(dá)式;換的箭頭線上標(biāo)出

41、觸發(fā)轉(zhuǎn)換的事件表達(dá)式;圖圖3.3 狀態(tài)圖中使用的主要符號(hào)狀態(tài)圖中使用的主要符號(hào)電話系統(tǒng)的狀態(tài)圖。電話系統(tǒng)的狀態(tài)圖。 沒(méi)有人打電話時(shí)電話處于閑置狀態(tài);沒(méi)有人打電話時(shí)電話處于閑置狀態(tài); 有人拿起聽(tīng)筒則進(jìn)入撥號(hào)音狀態(tài),到達(dá)這個(gè)狀態(tài)有人拿起聽(tīng)筒則進(jìn)入撥號(hào)音狀態(tài),到達(dá)這個(gè)狀態(tài)后,電話的行為是響起撥號(hào)音并計(jì)時(shí);后,電話的行為是響起撥號(hào)音并計(jì)時(shí); 這時(shí)如果拿起聽(tīng)筒的人改變主意不想打了,他這時(shí)如果拿起聽(tīng)筒的人改變主意不想打了,他把聽(tīng)筒放下把聽(tīng)筒放下(掛斷掛斷),電話重又回到閑置狀態(tài);,電話重又回到閑置狀態(tài); 如果拿起聽(tīng)筒很長(zhǎng)時(shí)間不撥號(hào)如果拿起聽(tīng)筒很長(zhǎng)時(shí)間不撥號(hào)(超時(shí)超時(shí)),則進(jìn)入超,則進(jìn)入超時(shí)狀態(tài);時(shí)狀態(tài);。

42、3.6.4 例子例子 層次方框圖用樹(shù)形結(jié)構(gòu)的一系列多層次的矩形層次方框圖用樹(shù)形結(jié)構(gòu)的一系列多層次的矩形框描繪數(shù)據(jù)的層次結(jié)構(gòu)??蛎枥L數(shù)據(jù)的層次結(jié)構(gòu)。 樹(shù)形結(jié)構(gòu)的頂層是一個(gè)單獨(dú)的矩形框,它代表樹(shù)形結(jié)構(gòu)的頂層是一個(gè)單獨(dú)的矩形框,它代表完整的數(shù)據(jù)結(jié)構(gòu),下面的各層矩形框代表這個(gè)數(shù)據(jù)完整的數(shù)據(jù)結(jié)構(gòu),下面的各層矩形框代表這個(gè)數(shù)據(jù)的子集,最底層的各個(gè)框代表組成這個(gè)數(shù)據(jù)的實(shí)際的子集,最底層的各個(gè)框代表組成這個(gè)數(shù)據(jù)的實(shí)際數(shù)據(jù)元素?cái)?shù)據(jù)元素(不能再分割的元素不能再分割的元素)。 3.7 其他圖形工具其他圖形工具 3.7.1 層次方框圖層次方框圖 例如,描繪一家計(jì)算機(jī)公司全部產(chǎn)品的數(shù)據(jù)結(jié)例如,描繪一家計(jì)算機(jī)公司全部產(chǎn)品

43、的數(shù)據(jù)結(jié)構(gòu)可以用層次方框圖表示。構(gòu)可以用層次方框圖表示。圖圖3.5 層次方框圖例層次方框圖例 這種模式非常適合于需求分析階段的需要。這種模式非常適合于需求分析階段的需要。 系統(tǒng)分析員從對(duì)頂層信息的分類開(kāi)始,沿圖中系統(tǒng)分析員從對(duì)頂層信息的分類開(kāi)始,沿圖中每條路徑反復(fù)細(xì)化,直到確定了數(shù)據(jù)結(jié)構(gòu)的全部細(xì)每條路徑反復(fù)細(xì)化,直到確定了數(shù)據(jù)結(jié)構(gòu)的全部細(xì)節(jié)時(shí)為止。節(jié)時(shí)為止。 法國(guó)計(jì)算機(jī)科學(xué)家法國(guó)計(jì)算機(jī)科學(xué)家Warnier 提出了表示信息層提出了表示信息層次結(jié)構(gòu)的另外一種圖形工具。次結(jié)構(gòu)的另外一種圖形工具。Warnier 圖也用樹(shù)形圖也用樹(shù)形結(jié)構(gòu)描繪信息。結(jié)構(gòu)描繪信息。 用用Warnier 圖可以表明信息的邏輯

44、組織,很容圖可以表明信息的邏輯組織,很容易把易把Warnier 圖轉(zhuǎn)變成軟件設(shè)計(jì)的工具。圖轉(zhuǎn)變成軟件設(shè)計(jì)的工具。3.7.2 Warnier 圖圖圖圖3.6 Warnier 圖的一個(gè)例子圖的一個(gè)例子 I PO圖是輸入、處理、輸出圖的簡(jiǎn)稱,它是美圖是輸入、處理、輸出圖的簡(jiǎn)稱,它是美國(guó)國(guó)IBM公司發(fā)展完善起來(lái)的一種圖形工具,能夠方公司發(fā)展完善起來(lái)的一種圖形工具,能夠方便地描繪輸入數(shù)據(jù)、對(duì)數(shù)據(jù)的處理和輸出數(shù)據(jù)之間便地描繪輸入數(shù)據(jù)、對(duì)數(shù)據(jù)的處理和輸出數(shù)據(jù)之間的關(guān)系。的關(guān)系。 它的基本形式是在左邊的框中列出有關(guān)的輸入它的基本形式是在左邊的框中列出有關(guān)的輸入數(shù)據(jù),在中間的框內(nèi)列出主要的處理,在右邊的框數(shù)據(jù),

45、在中間的框內(nèi)列出主要的處理,在右邊的框內(nèi)列出產(chǎn)生的輸出數(shù)據(jù)。內(nèi)列出產(chǎn)生的輸出數(shù)據(jù)。3.7.3 I PO圖圖圖圖3.7 IPO圖的一個(gè)例子圖圖的一個(gè)例子圖圖圖3.8改進(jìn)的改進(jìn)的IPO圖的形式圖的形式 軟件系統(tǒng)中軟件系統(tǒng)中15%的錯(cuò)誤起源于錯(cuò)誤的需求。的錯(cuò)誤起源于錯(cuò)誤的需求。 為了提高軟件質(zhì)量,確保軟件開(kāi)發(fā)成功,降低為了提高軟件質(zhì)量,確保軟件開(kāi)發(fā)成功,降低軟件開(kāi)發(fā)成本,必須嚴(yán)格驗(yàn)證這些需求的正確性。軟件開(kāi)發(fā)成本,必須嚴(yán)格驗(yàn)證這些需求的正確性。 一般說(shuō)來(lái),應(yīng)該從下述一般說(shuō)來(lái),應(yīng)該從下述4個(gè)方面進(jìn)行驗(yàn)證:個(gè)方面進(jìn)行驗(yàn)證:3.8 驗(yàn)證軟件需求驗(yàn)證軟件需求 3.8.1 從哪些方面驗(yàn)證軟件需求的正確性從哪些

46、方面驗(yàn)證軟件需求的正確性(1) 一致性一致性: 所有需求必須是一致的,任何一條需求不所有需求必須是一致的,任何一條需求不能和其他需求互相矛盾。能和其他需求互相矛盾。(2) 完整性完整性: 需求必須是完整的,規(guī)格說(shuō)明書(shū)應(yīng)該包括需求必須是完整的,規(guī)格說(shuō)明書(shū)應(yīng)該包括用戶需要的每一個(gè)功能或性能。用戶需要的每一個(gè)功能或性能。(3) 現(xiàn)實(shí)性現(xiàn)實(shí)性: 指定的需求應(yīng)該是用現(xiàn)有的硬件技術(shù)和軟件技指定的需求應(yīng)該是用現(xiàn)有的硬件技術(shù)和軟件技術(shù)基本上可以實(shí)現(xiàn)的。對(duì)硬件技術(shù)的進(jìn)步可以做些術(shù)基本上可以實(shí)現(xiàn)的。對(duì)硬件技術(shù)的進(jìn)步可以做些預(yù)測(cè),對(duì)軟件技術(shù)的進(jìn)步則很難做出預(yù)測(cè),只能從預(yù)測(cè),對(duì)軟件技術(shù)的進(jìn)步則很難做出預(yù)測(cè),只能從現(xiàn)有

47、技術(shù)水平出發(fā)判斷需求的現(xiàn)實(shí)性?,F(xiàn)有技術(shù)水平出發(fā)判斷需求的現(xiàn)實(shí)性。(4) 有效性有效性: 必須證明需求是正確有效的,確實(shí)能解決用戶必須證明需求是正確有效的,確實(shí)能解決用戶面對(duì)的問(wèn)題。面對(duì)的問(wèn)題。1. 驗(yàn)證需求的一致性驗(yàn)證需求的一致性 當(dāng)需求分析的結(jié)果是用自然語(yǔ)言書(shū)寫(xiě)的時(shí)候,當(dāng)需求分析的結(jié)果是用自然語(yǔ)言書(shū)寫(xiě)的時(shí)候,除了靠人工技術(shù)審查驗(yàn)證軟件系統(tǒng)規(guī)格說(shuō)明書(shū)的正除了靠人工技術(shù)審查驗(yàn)證軟件系統(tǒng)規(guī)格說(shuō)明書(shū)的正確性之外,目前還沒(méi)有其他更好的確性之外,目前還沒(méi)有其他更好的“測(cè)試測(cè)試”方法。方法。 當(dāng)軟件需求規(guī)格說(shuō)明書(shū)是用形式化的需求陳當(dāng)軟件需求規(guī)格說(shuō)明書(shū)是用形式化的需求陳述語(yǔ)言書(shū)寫(xiě)的時(shí)候,可以用軟件工具驗(yàn)證需

48、求的一述語(yǔ)言書(shū)寫(xiě)的時(shí)候,可以用軟件工具驗(yàn)證需求的一致性致性(見(jiàn)見(jiàn)3.8.3節(jié)節(jié)),從而能有效地保證軟件需求的一,從而能有效地保證軟件需求的一致性。致性。3.8.2 驗(yàn)證軟件需求的方法驗(yàn)證軟件需求的方法2. 驗(yàn)證需求的現(xiàn)實(shí)性驗(yàn)證需求的現(xiàn)實(shí)性 為了驗(yàn)證需求的現(xiàn)實(shí)性,分析員應(yīng)該參照以往為了驗(yàn)證需求的現(xiàn)實(shí)性,分析員應(yīng)該參照以往開(kāi)發(fā)類似系統(tǒng)的經(jīng)驗(yàn),分析用現(xiàn)有的軟、硬件技術(shù)開(kāi)發(fā)類似系統(tǒng)的經(jīng)驗(yàn),分析用現(xiàn)有的軟、硬件技術(shù)實(shí)現(xiàn)目標(biāo)系統(tǒng)的可能性。實(shí)現(xiàn)目標(biāo)系統(tǒng)的可能性。 必要的時(shí)候應(yīng)該采用仿真或性能模擬技術(shù),輔必要的時(shí)候應(yīng)該采用仿真或性能模擬技術(shù),輔助分析軟件需求規(guī)格說(shuō)明書(shū)的現(xiàn)實(shí)性。助分析軟件需求規(guī)格說(shuō)明書(shū)的現(xiàn)實(shí)性

49、。3. 驗(yàn)證需求的完整性和有效性驗(yàn)證需求的完整性和有效性 只有目標(biāo)系統(tǒng)的用戶才真正知道軟件需求規(guī)格只有目標(biāo)系統(tǒng)的用戶才真正知道軟件需求規(guī)格說(shuō)明書(shū)是否完整、準(zhǔn)確地描述了他們的需求。說(shuō)明書(shū)是否完整、準(zhǔn)確地描述了他們的需求。 然而許多用戶并不能清楚地認(rèn)識(shí)到他們的需要。然而許多用戶并不能清楚地認(rèn)識(shí)到他們的需要。 使用原型系統(tǒng)是一個(gè)比較現(xiàn)實(shí)的方法,用戶通使用原型系統(tǒng)是一個(gè)比較現(xiàn)實(shí)的方法,用戶通過(guò)試用原型系統(tǒng),可以提出更符合實(shí)際的要求。過(guò)試用原型系統(tǒng),可以提出更符合實(shí)際的要求。 為了更有效地保證軟件需求的正確性,需要有為了更有效地保證軟件需求的正確性,需要有適當(dāng)?shù)能浖ぞ咧С中枨蠓治龉ぷ?。適當(dāng)?shù)能浖ぞ咧?/p>

50、持需求分析工作。1977年設(shè)計(jì)完成了年設(shè)計(jì)完成了RSL(需求陳述語(yǔ)言需求陳述語(yǔ)言)。1977年美國(guó)密執(zhí)安大學(xué)開(kāi)發(fā)了年美國(guó)密執(zhí)安大學(xué)開(kāi)發(fā)了PSL/PSA (問(wèn)題陳述問(wèn)題陳述語(yǔ)言語(yǔ)言/問(wèn)題陳述分析程序問(wèn)題陳述分析程序)系統(tǒng)。系統(tǒng)。3.8.3 用于需求分析的軟件工具用于需求分析的軟件工具 傳統(tǒng)軟件工程方法學(xué)使用結(jié)構(gòu)化分析技術(shù),傳統(tǒng)軟件工程方法學(xué)使用結(jié)構(gòu)化分析技術(shù),完成分析用戶需求的工作。完成分析用戶需求的工作。 1. 需求分析的第一步是發(fā)現(xiàn)用戶所面臨的問(wèn)題和需求分析的第一步是發(fā)現(xiàn)用戶所面臨的問(wèn)題和對(duì)目標(biāo)系統(tǒng)的基本需求;對(duì)目標(biāo)系統(tǒng)的基本需求;2. 接下來(lái)對(duì)用戶的基本需求反復(fù)細(xì)化逐步求精,接下來(lái)對(duì)用戶的

51、基本需求反復(fù)細(xì)化逐步求精,以得出對(duì)目標(biāo)系統(tǒng)的完整、準(zhǔn)確和具體的需求。以得出對(duì)目標(biāo)系統(tǒng)的完整、準(zhǔn)確和具體的需求。3.9 小結(jié)小結(jié)3. 具體地說(shuō),應(yīng)該確定系統(tǒng)必須具有的功能、性具體地說(shuō),應(yīng)該確定系統(tǒng)必須具有的功能、性能、能、可靠性和可用性,必須實(shí)現(xiàn)的出錯(cuò)處理需求、接口可靠性和可用性,必須實(shí)現(xiàn)的出錯(cuò)處理需求、接口需求和逆向需求,必須滿足的約束條件,并且預(yù)測(cè)需求和逆向需求,必須滿足的約束條件,并且預(yù)測(cè)系統(tǒng)的發(fā)展前景。系統(tǒng)的發(fā)展前景。 為了詳細(xì)地了解并正確地理解用戶的需求,必為了詳細(xì)地了解并正確地理解用戶的需求,必須使用適當(dāng)方法與用戶溝通。須使用適當(dāng)方法與用戶溝通。 訪談是與用戶通信的歷史悠久的技術(shù),至

52、今仍訪談是與用戶通信的歷史悠久的技術(shù),至今仍被許多系統(tǒng)分析員采用。被許多系統(tǒng)分析員采用。 從可行性研究階段得到的數(shù)據(jù)流圖出發(fā),在用從可行性研究階段得到的數(shù)據(jù)流圖出發(fā),在用戶的協(xié)助下面向數(shù)據(jù)流自頂向下逐步求精,也是與戶的協(xié)助下面向數(shù)據(jù)流自頂向下逐步求精,也是與用戶溝通獲取需求的一個(gè)有效的方法。用戶溝通獲取需求的一個(gè)有效的方法。 為了促使用戶與分析員齊心協(xié)力共同分析需求,為了促使用戶與分析員齊心協(xié)力共同分析需求,人們研究出一種面向團(tuán)隊(duì)的需求收集法,稱為簡(jiǎn)易人們研究出一種面向團(tuán)隊(duì)的需求收集法,稱為簡(jiǎn)易的應(yīng)用規(guī)格說(shuō)明技術(shù),現(xiàn)在這種技術(shù)已經(jīng)成為信息的應(yīng)用規(guī)格說(shuō)明技術(shù),現(xiàn)在這種技術(shù)已經(jīng)成為信息系統(tǒng)領(lǐng)域使用

53、的主流技術(shù)。系統(tǒng)領(lǐng)域使用的主流技術(shù)。 實(shí)踐表明,快速建立軟件原型是最準(zhǔn)確、最有實(shí)踐表明,快速建立軟件原型是最準(zhǔn)確、最有效和最強(qiáng)大的需求分析技術(shù)。效和最強(qiáng)大的需求分析技術(shù)。 快速原型應(yīng)該具備的基本特性是快速原型應(yīng)該具備的基本特性是“快速快速”和和“容易修改容易修改”,因此,必須用適當(dāng)?shù)能浖ぞ咧С郑虼?,必須用適當(dāng)?shù)能浖ぞ咧С挚焖僭图夹g(shù)??焖僭图夹g(shù)。 通常使用第四代技術(shù)、可重用的軟件構(gòu)件及形通常使用第四代技術(shù)、可重用的軟件構(gòu)件及形式化規(guī)格說(shuō)明與原型環(huán)境,快速地構(gòu)建和修改原型。式化規(guī)格說(shuō)明與原型環(huán)境,快速地構(gòu)建和修改原型。 為了更好地理解問(wèn)題,人們常常采用建立模型為了更好地理解問(wèn)題,人們常常采用建立模型的方法,結(jié)構(gòu)化分析實(shí)質(zhì)上就是一種建?;顒?dòng),在的方法,結(jié)構(gòu)化分析實(shí)質(zhì)上就是一種建模活動(dòng),在需求分析階段通常建立數(shù)據(jù)模型、功能模型和行為需求分析階段通常建立數(shù)據(jù)模型、

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論