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

下載本文檔

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

文檔簡介

1、第第3章章 需求分析需求分析3.1 需求分析的任務需求分析的任務3.2 與用戶溝通獲取需求的方法與用戶溝通獲取需求的方法3.3 分析建模與規格說明分析建模與規格說明3.4 實體實體-聯系圖聯系圖3.5 數據規范化數據規范化3.6 狀態轉換圖狀態轉換圖3.7 其他圖形工具其他圖形工具3.8 驗證軟件需求驗證軟件需求3.9 小結小結習題習題 需求分析是軟件定義時期的最后一個階段,它需求分析是軟件定義時期的最后一個階段,它的基本任務是準確地回答的基本任務是準確地回答“系統必須做什么系統必須做什么?”這個這個問題。問題。 不是確定系統怎樣完成它的工作,而僅僅是確不是確定系統怎樣完成它的工作,而僅僅是確

2、定系統必須完成哪些工作。定系統必須完成哪些工作。 在需求分析階段結束之前,系統分析員應該寫在需求分析階段結束之前,系統分析員應該寫出軟件需求規格說明書,以書面形式準確地描述軟出軟件需求規格說明書,以書面形式準確地描述軟件需求。件需求。 只有用戶才真正知道自己需要什么,但是他們只有用戶才真正知道自己需要什么,但是他們并不知道怎樣用軟件實現自己的需求,用戶必須把并不知道怎樣用軟件實現自己的需求,用戶必須把他們對軟件的需求盡量準確、具體地描述出來;他們對軟件的需求盡量準確、具體地描述出來; 分析員知道怎樣用軟件實現人們的需求,但是分析員知道怎樣用軟件實現人們的需求,但是在需求分析開始時他們對用戶的需

3、求并不十分清楚,在需求分析開始時他們對用戶的需求并不十分清楚,必須通過與用戶溝通獲取用戶對軟件的需求。必須通過與用戶溝通獲取用戶對軟件的需求。用于需求分析的結構化分析方法都遵守下述準則:用于需求分析的結構化分析方法都遵守下述準則:(1) 理解并描述問題的信息域理解并描述問題的信息域 = 建立建立數據模型數據模型。(2) 定義軟件應完成的功能定義軟件應完成的功能 = 建立建立功能模型功能模型。(3) 描述外部事件結果的軟件行為描述外部事件結果的軟件行為 = 建立建立行為模型行為模型。(4) 對模型進行分解對模型進行分解 = 用層次的方式用層次的方式展示細節展示細節。1. 功能需求功能需求 指定系

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

5、,ATM存取款系統一個月故障不得超過存取款系統一個月故障不得超過2次)次)4. 出錯處理需求出錯處理需求 說明系統對環境錯誤應該怎樣響應。說明系統對環境錯誤應該怎樣響應。(例如,如果它接收到從另一個銀行系統發來的違(例如,如果它接收到從另一個銀行系統發來的違反協議格式的消息,應該做什么反協議格式的消息,應該做什么? ) 5. 接口需求接口需求 描述應用系統與它的環境通信的格式。描述應用系統與它的環境通信的格式。常見的接口需求有:常見的接口需求有: 用戶接口需求;用戶接口需求; (例如,用戶輸入數字例如,用戶輸入數字0-9) 硬件接口需求;硬件接口需求; 軟件接口需求;軟件接口需求; 通信接口需

6、求。通信接口需求。6. 約束約束 說明用戶或環境強加給項目的限制條件。說明用戶或環境強加給項目的限制條件。 (例如,例如,ATM存取款以存取款以100元為計量單位)元為計量單位) 常見的約束有:常見的約束有: 精度;精度; 工具和語言約束;工具和語言約束; 設計約束;設計約束; 應該使用的標準;應該使用的標準; 應該使用的硬件平臺。應該使用的硬件平臺。7. 逆向需求逆向需求 逆向需求說明軟件系統不應該做什么。逆向需求說明軟件系統不應該做什么。 (例如,例如,ATM存取款系統不打印以往賬戶清單)存取款系統不打印以往賬戶清單)8. 將來可能提出的要求將來可能提出的要求 明確地列出那些雖然不屬于當前

7、系統開發范疇,明確地列出那些雖然不屬于當前系統開發范疇,但是據分析將來很可能會提出來的要求。但是據分析將來很可能會提出來的要求。 以便設計過程中對系統將來可能的擴充和修以便設計過程中對系統將來可能的擴充和修改預做準備改預做準備 。 (例如,例如,ATM存取款系統將來可能接受國外發存取款系統將來可能接受國外發行的信用卡存取款)行的信用卡存取款) 任何一個軟件系統本質上都是信息處理系統,任何一個軟件系統本質上都是信息處理系統,必須分析系統的數據要求,這是軟件需求分析的一必須分析系統的數據要求,這是軟件需求分析的一個重要任務。個重要任務。 分析系統的數據要求通常采用建立數據模型的分析系統的數據要求通

8、常采用建立數據模型的方法方法 。 復雜的數據由許多基本的數據元素組成,為復雜的數據由許多基本的數據元素組成,為了提高可理解性,常常利用圖形工具輔助描繪數據了提高可理解性,常常利用圖形工具輔助描繪數據結構。結構。 常用的圖形工具有層次方框圖和常用的圖形工具有層次方框圖和Warnier圖。圖。3.1.2 分析系統的數據要求分析系統的數據要求 通過上述分析系統的綜合要求和數據要求可以通過上述分析系統的綜合要求和數據要求可以導出系統的詳細的邏輯模型導出系統的詳細的邏輯模型. 通常用數據流圖、實體通常用數據流圖、實體-聯系圖、狀態轉換圖、聯系圖、狀態轉換圖、數據字典和主要的處理算法描述這個邏輯模型。數據

9、字典和主要的處理算法描述這個邏輯模型。3.1.3 導出系統的邏輯模型導出系統的邏輯模型 根據在分析過程中獲得的對系統的更深入更具根據在分析過程中獲得的對系統的更深入更具體的了解,可以比較準確地估計系統的成本和進度,體的了解,可以比較準確地估計系統的成本和進度,修正以前制定的開發計劃。修正以前制定的開發計劃。3.1.4 修正系統開發計劃修正系統開發計劃訪談是廣泛使用的需求分析技術。訪談是廣泛使用的需求分析技術。訪談有兩種基本形式訪談有兩種基本形式:正式訪談時,正式訪談時, 系統分析員將提出一些事先準備好的具體問題。系統分析員將提出一些事先準備好的具體問題。在非正式訪談中,在非正式訪談中, 分析員

10、將提出一些用戶可以自由回答的開放性分析員將提出一些用戶可以自由回答的開放性問題,以鼓勵被訪問人員說出自己的想法。問題,以鼓勵被訪問人員說出自己的想法。3.2 與用戶溝通獲取需求的方法與用戶溝通獲取需求的方法 3.2.1 訪談訪談當需要調查大量人員的意見時,向被調查人分發當需要調查大量人員的意見時,向被調查人分發調查表是一個十分有效的做法。調查表是一個十分有效的做法。 分析員仔細閱讀收回的調查表,然后再有針分析員仔細閱讀收回的調查表,然后再有針對性地訪問一些用戶,以便向他們詢問在分析調對性地訪問一些用戶,以便向他們詢問在分析調查表時發現的新問題。查表時發現的新問題。在訪問用戶的過程中使用情景分析

11、技術往往非常在訪問用戶的過程中使用情景分析技術往往非常有效。有效。 情景分析就是對用戶將來使用目標系統解決情景分析就是對用戶將來使用目標系統解決某個具體問題的方法和結果進行分析。某個具體問題的方法和結果進行分析。情景分析技術的用處主要體現在下述兩個方面:情景分析技術的用處主要體現在下述兩個方面:(1) 它能在某種程度上演示目標系統的行為,從而它能在某種程度上演示目標系統的行為,從而便于用戶理解,可能進一步揭示出目前還不知便于用戶理解,可能進一步揭示出目前還不知道的需求。道的需求。(2) 由于情景分析較易為用戶所理解,使用這種技由于情景分析較易為用戶所理解,使用這種技術能保證用戶在需求分析過程中

12、始終扮演一個術能保證用戶在需求分析過程中始終扮演一個積極主動的角色。積極主動的角色。 結構化分析方法就是面向數據流自頂向下逐步結構化分析方法就是面向數據流自頂向下逐步求精進行需求分析的方法。求精進行需求分析的方法。 通過可行性研究已經得出了目標系統的高層數通過可行性研究已經得出了目標系統的高層數據流圖,需求分析的目標之一就是把數據流和數據據流圖,需求分析的目標之一就是把數據流和數據存儲定義到元素級。存儲定義到元素級。3.2.2 面向數據流自頂向下求精面向數據流自頂向下求精 通常把分析過程中得到的有關數據元素的信通常把分析過程中得到的有關數據元素的信息記錄在數據字典中,把對算法的簡明描述記錄在息

13、記錄在數據字典中,把對算法的簡明描述記錄在IPO圖圖(見見3.7節節)中。中。 從輸入端開始,分析員借助數據流圖、數據從輸入端開始,分析員借助數據流圖、數據字典和字典和IPO圖向用戶解釋輸入數據是怎樣一步一步圖向用戶解釋輸入數據是怎樣一步一步地轉變成輸出數據的。地轉變成輸出數據的。 隨著分析過程的進展,經過問題和解答的反隨著分析過程的進展,經過問題和解答的反復循環,分析員越來越深入具體地定義了目標系統,復循環,分析員越來越深入具體地定義了目標系統,最終得到對系統數據和功能要求的滿意了解。最終得到對系統數據和功能要求的滿意了解。圖圖3.1 面向數據流自頂向下求精過程面向數據流自頂向下求精過程 使

14、用傳統的訪談或面向數據流自頂向下求精方使用傳統的訪談或面向數據流自頂向下求精方法定義需求時,用戶處于被動地位,這兩種方法的法定義需求時,用戶處于被動地位,這兩種方法的效果有時并不理想。效果有時并不理想。 為了解決上述問題,人們研究出一種面向團隊為了解決上述問題,人們研究出一種面向團隊的需求收集法,稱為簡易的應用規格說明技術。的需求收集法,稱為簡易的應用規格說明技術。 今天,簡易的應用規格說明技術已經成為信息今天,簡易的應用規格說明技術已經成為信息系統領域使用的主流技術。系統領域使用的主流技術。3.2.3 簡易的應用規格說明技術簡易的應用規格說明技術應用規格說明技術分析需求的典型過程如下:應用規

15、格說明技術分析需求的典型過程如下:1. 進行初步的訪談,確定待解決的問題的范圍和解決進行初步的訪談,確定待解決的問題的范圍和解決方案。方案。2. 開發者和用戶分別寫出開發者和用戶分別寫出“產品需求產品需求”。3. 開會把在會前準備好的列表展示出來供大家討論。開會把在會前準備好的列表展示出來供大家討論。4. 大家共同創建一張組合列表。大家共同創建一張組合列表。5. 與會者分成更小的小組,為項目制定小型規格說明。與會者分成更小的小組,為項目制定小型規格說明。6. 各小組展示制定的小型規格說明,供大家討論。各小組展示制定的小型規格說明,供大家討論。7. 由一名與會者根據會議成果起草完整的軟件需求規由

16、一名與會者根據會議成果起草完整的軟件需求規格說明書。格說明書。 快速建立軟件原型是最準確、有效的需求分析技術。快速建立軟件原型是最準確、有效的需求分析技術。 快速原型就是快速建立起來的旨在演示目標系統快速原型就是快速建立起來的旨在演示目標系統主要功能的可運行的程序。主要功能的可運行的程序。 構建原型的要點是,它應該實現用戶看得見的功構建原型的要點是,它應該實現用戶看得見的功能能(例如,屏幕顯示或打印報表例如,屏幕顯示或打印報表),省略目標系統的,省略目標系統的“隱隱含含”功能功能(例如,內部業務處理過程例如,內部業務處理過程)。 ( 例如,用瀏覽器頁面快速生成模擬例如,用瀏覽器頁面快速生成模擬

17、ATM存取款存取款的用戶界面供銀行領導判斷系統設計是否合適。)的用戶界面供銀行領導判斷系統設計是否合適。)3.2.4 快速建立軟件原型快速建立軟件原型快速原型應該具備的第一個特性是快速原型應該具備的第一個特性是“快速快速”。 以便使用戶和開發者在目標系統應該以便使用戶和開發者在目標系統應該“做什么做什么”這個問題上盡可能快地達成共識。原型的某些缺陷這個問題上盡可能快地達成共識。原型的某些缺陷是可以忽略的。是可以忽略的。快速原型應該具備的第二個特性是快速原型應該具備的第二個特性是“容易修改容易修改”。 在實際開發軟件產品時,原型的在實際開發軟件產品時,原型的“修改修改試試用用反饋反饋”過程可能重

18、復多遍,如果修改耗時過多,過程可能重復多遍,如果修改耗時過多,勢必延誤軟件開發時間。勢必延誤軟件開發時間。 了快速地構建和修改原型,通常使用下述了快速地構建和修改原型,通常使用下述3種方種方法和工具:法和工具:(1) 第四代技術第四代技術 第四代技術包括眾多數據庫查詢和報表語言、第四代技術包括眾多數據庫查詢和報表語言、程序和應用系統生成器以及其他非常高級的非過程程序和應用系統生成器以及其他非常高級的非過程語言。語言。(2) 可重用的軟件構件可重用的軟件構件 使用一組已有的軟件構件使用一組已有的軟件構件( 組件組件)來裝配來裝配(而不而不是從頭構造是從頭構造)原型。原型。 軟件構件可以是數據結構

19、軟件構件可以是數據結構(或數據庫或數據庫),或軟件,或軟件體系結構構件體系結構構件(即程序即程序),或過程構件,或過程構件(即模塊即模塊)。(3) 形式化規格說明和原型環境形式化規格說明和原型環境 已經研究出許多形式化規格說明語言和工具已經研究出許多形式化規格說明語言和工具(參參見第見第4章章),用于替代自然語言規格說明技術。,用于替代自然語言規格說明技術。 今天,形式化語言的倡導者正在開發交互式環今天,形式化語言的倡導者正在開發交互式環境,以便可以調用自動工具把基于形式語言的規格境,以便可以調用自動工具把基于形式語言的規格說明翻譯成可執行的程序代碼。說明翻譯成可執行的程序代碼。 用戶能夠使用

20、可執行的原型代碼去進一步精化用戶能夠使用可執行的原型代碼去進一步精化形式化的規格說明。形式化的規格說明。 為了更好地理解復雜事物,人們常常采用建立事為了更好地理解復雜事物,人們常常采用建立事物模型的方法。物模型的方法。 所謂模型,就是為了理解事物而對事物做出的所謂模型,就是為了理解事物而對事物做出的一種抽象,是對事物的一種無歧義的書面描述。一種抽象,是對事物的一種無歧義的書面描述。 通常,模型由一組圖形符號和組織這些符號的通常,模型由一組圖形符號和組織這些符號的規則組成。規則組成。3.3 分析建模與規格說明分析建模與規格說明 3.3.1 分析建模分析建模 結構化分析實質上是一種創建模型的活動。

21、結構化分析實質上是一種創建模型的活動。 系統分析員應該從不同角度抽象出目標系統的系統分析員應該從不同角度抽象出目標系統的特性,使用精確的表示方法構造系統的模型,直至特性,使用精確的表示方法構造系統的模型,直至最終達到可以用程序實現模型。最終達到可以用程序實現模型。 需求分析過程應該建立需求分析過程應該建立3種模型,它們分別是種模型,它們分別是數據模型、功能模型和行為模型。數據模型、功能模型和行為模型。數據模型數據模型 實體實體-聯系圖,描繪數據對象及數據對象之間的聯系圖,描繪數據對象及數據對象之間的關系,是用于建立數據模型的圖形。關系,是用于建立數據模型的圖形。 (見(見3.4節節 )功能模型

22、功能模型 數據流圖,描繪當數據在軟件系統中移動時被變數據流圖,描繪當數據在軟件系統中移動時被變換的邏輯過程,是建立功能模型的基礎。(見換的邏輯過程,是建立功能模型的基礎。(見2.4節節 )行為模型行為模型 狀態轉換圖狀態轉換圖(簡稱為狀態圖簡稱為狀態圖),描繪了系統的各種,描繪了系統的各種行為模式行為模式(稱為稱為“狀態狀態”)和在不同狀態間轉換的方式。和在不同狀態間轉換的方式。是行為建模的基礎。是行為建模的基礎。 (見(見3.6節節 ) 通過需求分析除了創建分析模型之外,還應該通過需求分析除了創建分析模型之外,還應該寫出軟件需求規格說明書,它是需求分析階段得出寫出軟件需求規格說明書,它是需求

23、分析階段得出的最主要的文檔。的最主要的文檔。 通常用自然語言完整、準確、具體地描述系通常用自然語言完整、準確、具體地描述系統的數據要求、功能需求、性能需求、可靠性和可統的數據要求、功能需求、性能需求、可靠性和可用性要求、出錯處理需求、接口需求、約束、逆向用性要求、出錯處理需求、接口需求、約束、逆向需求以及將來可能提出的要求。需求以及將來可能提出的要求。3.3.2 軟件需求規格說明軟件需求規格說明 為了把用戶的數據要求清楚、準確地描述出來,為了把用戶的數據要求清楚、準確地描述出來,系統分析員通常建立一個概念性的數據模型。系統分析員通常建立一個概念性的數據模型。 這種模型是一種面向問題的數據模型,

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

25、性質或屬性的所謂復合信息是指具有一系列不同性質或屬性的事物,僅有單個值的事物事物,僅有單個值的事物(例如,寬度例如,寬度)不是數據對象。不是數據對象。 數據對象可以是數據對象可以是事物事物(例如,報表例如,報表)、行為行為(例如,例如,打電話打電話)、事件事件(例如,響警報例如,響警報)、角色角色(例如,教師、學例如,教師、學生生)、單位單位(例如,會計科例如,會計科)、地點地點(例如,倉庫例如,倉庫)或或結構結構(例如,文件例如,文件)等。等。 總之,可以由一組屬性來定義的實體都可以被認總之,可以由一組屬性來定義的實體都可以被認為是數據對象。為是數據對象。3.4.1 數據對象數據對象 數據對

26、象彼此間是有關聯的,數據對象彼此間是有關聯的, 例如,教師例如,教師“教教”課程,學生課程,學生“學學”課程,課程, 教或學的關系表示教師和課程或學生和課程之教或學的關系表示教師和課程或學生和課程之間的一種特定的連接。間的一種特定的連接。 屬性定義了數據對象的性質。屬性定義了數據對象的性質。 必須把一個或多個屬性定義為必須把一個或多個屬性定義為“標識符標識符”,也,也就是說,當我們希望找到數據對象的一個實例時,就是說,當我們希望找到數據對象的一個實例時,用標識符屬性作為用標識符屬性作為“關鍵字關鍵字” 。 應該根據對所要解決的問題的理解,來確定特應該根據對所要解決的問題的理解,來確定特定數據對

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

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

29、成績成績”既依賴于某名特定的學生又依賴既依賴于某名特定的學生又依賴于某門特定的課程,所以它是學生與課程之間的聯于某門特定的課程,所以它是學生與課程之間的聯系系“學學”的屬性的屬性(見圖見圖3.2)。 使用實體使用實體-聯系圖聯系圖(entity-relationship diagram)來建立數據模型。來建立數據模型。 可以把實體可以把實體-聯系圖簡稱為聯系圖簡稱為ER圖,相應地可把圖,相應地可把用用ER圖描繪的數據模型稱為圖描繪的數據模型稱為ER模型。模型。 ER圖中包含了圖中包含了實體實體(即數據對象即數據對象)、關系關系和和屬性屬性等等3種基本成分,種基本成分, 3.4.4 實體實體-聯

30、系圖的符號聯系圖的符號1. 通常用通常用矩形框代表矩形框代表實體實體,2. 用連接相關實體的用連接相關實體的菱形框表示菱形框表示關系關系,3. 用用圓角矩形或橢圓形表示實體圓角矩形或橢圓形表示實體(或關系或關系)的的屬性屬性,4. 并用直線把實體并用直線把實體(或關系或關系)與其屬性連接起來。與其屬性連接起來。 軟件系統經常使用各種長期保存的信息,這些軟件系統經常使用各種長期保存的信息,這些信息通常以一定方式組織并存儲在數據庫或文件中。信息通常以一定方式組織并存儲在數據庫或文件中。 為減少數據冗余,避免出現插入異常或刪除異為減少數據冗余,避免出現插入異常或刪除異常,簡化修改數據的過程,通常需要

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

32、方式。 范式從本質上講是一種理論體系。范式從本質上講是一種理論體系。 庫恩指出:庫恩指出:“按既定的用法,范式就是一種公認按既定的用法,范式就是一種公認的模型或模式。的模型或模式。” “我采用這個術語是想說明,在科學實際活動中我采用這個術語是想說明,在科學實際活動中某些被公認的范例某些被公認的范例包括定律、理論、應用以包括定律、理論、應用以及儀器設備統統在內的范例及儀器設備統統在內的范例為某種科學研究為某種科學研究傳統的出現提供了模型傳統的出現提供了模型范式的特點是:范式的特點是:(1)范式在一定程度內具有公認性;)范式在一定程度內具有公認性;(2)范式是一個由基本定律、理論、應用以及相)范式

33、是一個由基本定律、理論、應用以及相關的儀器設備等構成的一個整體,它的存在給關的儀器設備等構成的一個整體,它的存在給科學家提供了一個研究綱領;科學家提供了一個研究綱領;(3)范式還為科學研究提供了)范式還為科學研究提供了可模仿的成功的先可模仿的成功的先例例。 關系數據庫設計范式關系數據庫設計范式 1 第一范式第一范式(1NF) - 無重復的無重復的列列 第一范式(第一范式(1NF)是指數據庫表的每一列都是不)是指數據庫表的每一列都是不可分割的基本數據項,同一列中不能有多個值。可分割的基本數據項,同一列中不能有多個值。 表的每一行只包含一個實例的信息。簡而言之,表的每一行只包含一個實例的信息。簡而

34、言之,第一范式就是無重復的列。第一范式就是無重復的列。 說明:在任何一個關系數據庫中,第一范式說明:在任何一個關系數據庫中,第一范式(1NF)是對關系模式的基本要求,不滿足第一)是對關系模式的基本要求,不滿足第一范式(范式(1NF)的數據庫就不是關系數據庫。)的數據庫就不是關系數據庫。 關系數據庫設計范式關系數據庫設計范式 第二范式第二范式(2NF)-屬性完全依賴于屬性完全依賴于主鍵主鍵 第二范式(第二范式(2NF)是在第一范式()是在第一范式(1NF)的基礎上)的基礎上建立起來的,即滿足第二范式(建立起來的,即滿足第二范式(2NF)必須先滿足)必須先滿足第一范式(第一范式(1NF)。)。 第

35、二范式(第二范式(2NF)要求數據庫表中的每個實例或)要求數據庫表中的每個實例或行行必須可以被唯一地區分。必須可以被唯一地區分。 為實現區分通常需要為表加上一個列,以存儲各為實現區分通常需要為表加上一個列,以存儲各個實例的唯一標識。個實例的唯一標識。 例如員工信息表中加上了員工編號(例如員工信息表中加上了員工編號(emp_id)列,)列,因為每個員工的員工編號是唯一的,因此每個員因為每個員工的員工編號是唯一的,因此每個員工可以被唯一區分。這個唯一屬性列被稱為主關工可以被唯一區分。這個唯一屬性列被稱為主關鍵字或主鍵、主碼。鍵字或主鍵、主碼。 關系數據庫設計范式關系數據庫設計范式 第三范式第三范式

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

37、后就不能再將部門名稱、部門簡介等與部門有關的信息再加入員工門名稱、部門簡介等與部門有關的信息再加入員工信息表中。信息表中。 如果不存在部門信息表,則根據第三范式(如果不存在部門信息表,則根據第三范式(3NF)也應該構建它,否則就會有大量的數據冗余。也應該構建它,否則就會有大量的數據冗余。 在需求分析過程中應該建立起軟件系統的行在需求分析過程中應該建立起軟件系統的行為模型。為模型。 狀態轉換圖狀態轉換圖(簡稱狀態圖簡稱狀態圖)通過描繪系統的狀態通過描繪系統的狀態及引起系統狀態轉換的事件,來表示系統的行為。及引起系統狀態轉換的事件,來表示系統的行為。 狀態圖還指明了作為特定事件的結果系統將做狀態圖

38、還指明了作為特定事件的結果系統將做哪些動作哪些動作(例如,處理數據例如,處理數據)。3.6 狀態轉換圖狀態轉換圖 狀態規定了系統對事件的響應方式。狀態規定了系統對事件的響應方式。 系統對事件的響應,既可以是做一個系統對事件的響應,既可以是做一個(或一系列或一系列)動作,也可以是僅僅改變系統本身的狀態,還可以動作,也可以是僅僅改變系統本身的狀態,還可以是既改變狀態又做動作。是既改變狀態又做動作。 在狀態圖中定義的狀態主要有:在狀態圖中定義的狀態主要有: 初態初態(初始狀態初始狀態)、終態終態(最終狀態最終狀態)和和中間狀態中間狀態。 在一張狀態圖中只能有一個初態,而終態則可在一張狀態圖中只能有一

39、個初態,而終態則可以有以有0至多個。至多個。3.6.1 狀態狀態 事件是在某個特定時刻發生的事情。事件是在某個特定時刻發生的事情。 例如,用戶移動或點擊鼠標,內部時鐘表明例如,用戶移動或點擊鼠標,內部時鐘表明某個規定的時間段已經過去等都是事件。某個規定的時間段已經過去等都是事件。 簡而言之,事件就是引起系統做動作或轉換狀簡而言之,事件就是引起系統做動作或轉換狀態的控制信息。態的控制信息。3.6.2 事件事件 初態用實心圓表示,終態用一對同心圓初態用實心圓表示,終態用一對同心圓(內圓為內圓為實心圓實心圓)表示。表示。 中間狀態用圓角矩形表示,可以用兩條水平橫中間狀態用圓角矩形表示,可以用兩條水平

40、橫線把它分成上、中、下線把它分成上、中、下3個部分。個部分。 上面部分為狀態的名稱;中間部分為狀態變量上面部分為狀態的名稱;中間部分為狀態變量的名字和值;下面部分是活動表。的名字和值;下面部分是活動表。 在活動表中經常使用下述在活動表中經常使用下述3種標準事件:種標準事件: entry,exit 和和 do。3.6.3 符號符號 狀態圖中兩個狀態之間帶箭頭的連線稱為狀態轉狀態圖中兩個狀態之間帶箭頭的連線稱為狀態轉換,箭頭指明了轉換方向。換,箭頭指明了轉換方向。 狀態變遷通常是由事件觸發的,在表示狀態轉狀態變遷通常是由事件觸發的,在表示狀態轉換的箭頭線上標出觸發轉換的事件表達式;換的箭頭線上標出

41、觸發轉換的事件表達式;圖圖3.3 狀態圖中使用的主要符號狀態圖中使用的主要符號電話系統的狀態圖。電話系統的狀態圖。 沒有人打電話時電話處于閑置狀態;沒有人打電話時電話處于閑置狀態; 有人拿起聽筒則進入撥號音狀態,到達這個狀態有人拿起聽筒則進入撥號音狀態,到達這個狀態后,電話的行為是響起撥號音并計時;后,電話的行為是響起撥號音并計時; 這時如果拿起聽筒的人改變主意不想打了,他這時如果拿起聽筒的人改變主意不想打了,他把聽筒放下把聽筒放下(掛斷掛斷),電話重又回到閑置狀態;,電話重又回到閑置狀態; 如果拿起聽筒很長時間不撥號如果拿起聽筒很長時間不撥號(超時超時),則進入超,則進入超時狀態;時狀態;。

42、3.6.4 例子例子 層次方框圖用樹形結構的一系列多層次的矩形層次方框圖用樹形結構的一系列多層次的矩形框描繪數據的層次結構。框描繪數據的層次結構。 樹形結構的頂層是一個單獨的矩形框,它代表樹形結構的頂層是一個單獨的矩形框,它代表完整的數據結構,下面的各層矩形框代表這個數據完整的數據結構,下面的各層矩形框代表這個數據的子集,最底層的各個框代表組成這個數據的實際的子集,最底層的各個框代表組成這個數據的實際數據元素數據元素(不能再分割的元素不能再分割的元素)。 3.7 其他圖形工具其他圖形工具 3.7.1 層次方框圖層次方框圖 例如,描繪一家計算機公司全部產品的數據結例如,描繪一家計算機公司全部產品

43、的數據結構可以用層次方框圖表示。構可以用層次方框圖表示。圖圖3.5 層次方框圖例層次方框圖例 這種模式非常適合于需求分析階段的需要。這種模式非常適合于需求分析階段的需要。 系統分析員從對頂層信息的分類開始,沿圖中系統分析員從對頂層信息的分類開始,沿圖中每條路徑反復細化,直到確定了數據結構的全部細每條路徑反復細化,直到確定了數據結構的全部細節時為止。節時為止。 法國計算機科學家法國計算機科學家Warnier 提出了表示信息層提出了表示信息層次結構的另外一種圖形工具。次結構的另外一種圖形工具。Warnier 圖也用樹形圖也用樹形結構描繪信息。結構描繪信息。 用用Warnier 圖可以表明信息的邏輯

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

45、在中間的框內列出主要的處理,在右邊的框內列出產生的輸出數據。內列出產生的輸出數據。3.7.3 I PO圖圖圖圖3.7 IPO圖的一個例子圖圖的一個例子圖圖圖3.8改進的改進的IPO圖的形式圖的形式 軟件系統中軟件系統中15%的錯誤起源于錯誤的需求。的錯誤起源于錯誤的需求。 為了提高軟件質量,確保軟件開發成功,降低為了提高軟件質量,確保軟件開發成功,降低軟件開發成本,必須嚴格驗證這些需求的正確性。軟件開發成本,必須嚴格驗證這些需求的正確性。 一般說來,應該從下述一般說來,應該從下述4個方面進行驗證:個方面進行驗證:3.8 驗證軟件需求驗證軟件需求 3.8.1 從哪些方面驗證軟件需求的正確性從哪些

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

47、技術水平出發判斷需求的現實性。現有技術水平出發判斷需求的現實性。(4) 有效性有效性: 必須證明需求是正確有效的,確實能解決用戶必須證明需求是正確有效的,確實能解決用戶面對的問題。面對的問題。1. 驗證需求的一致性驗證需求的一致性 當需求分析的結果是用自然語言書寫的時候,當需求分析的結果是用自然語言書寫的時候,除了靠人工技術審查驗證軟件系統規格說明書的正除了靠人工技術審查驗證軟件系統規格說明書的正確性之外,目前還沒有其他更好的確性之外,目前還沒有其他更好的“測試測試”方法。方法。 當軟件需求規格說明書是用形式化的需求陳當軟件需求規格說明書是用形式化的需求陳述語言書寫的時候,可以用軟件工具驗證需

48、求的一述語言書寫的時候,可以用軟件工具驗證需求的一致性致性(見見3.8.3節節),從而能有效地保證軟件需求的一,從而能有效地保證軟件需求的一致性。致性。3.8.2 驗證軟件需求的方法驗證軟件需求的方法2. 驗證需求的現實性驗證需求的現實性 為了驗證需求的現實性,分析員應該參照以往為了驗證需求的現實性,分析員應該參照以往開發類似系統的經驗,分析用現有的軟、硬件技術開發類似系統的經驗,分析用現有的軟、硬件技術實現目標系統的可能性。實現目標系統的可能性。 必要的時候應該采用仿真或性能模擬技術,輔必要的時候應該采用仿真或性能模擬技術,輔助分析軟件需求規格說明書的現實性。助分析軟件需求規格說明書的現實性

49、。3. 驗證需求的完整性和有效性驗證需求的完整性和有效性 只有目標系統的用戶才真正知道軟件需求規格只有目標系統的用戶才真正知道軟件需求規格說明書是否完整、準確地描述了他們的需求。說明書是否完整、準確地描述了他們的需求。 然而許多用戶并不能清楚地認識到他們的需要。然而許多用戶并不能清楚地認識到他們的需要。 使用原型系統是一個比較現實的方法,用戶通使用原型系統是一個比較現實的方法,用戶通過試用原型系統,可以提出更符合實際的要求。過試用原型系統,可以提出更符合實際的要求。 為了更有效地保證軟件需求的正確性,需要有為了更有效地保證軟件需求的正確性,需要有適當的軟件工具支持需求分析工作。適當的軟件工具支

50、持需求分析工作。1977年設計完成了年設計完成了RSL(需求陳述語言需求陳述語言)。1977年美國密執安大學開發了年美國密執安大學開發了PSL/PSA (問題陳述問題陳述語言語言/問題陳述分析程序問題陳述分析程序)系統。系統。3.8.3 用于需求分析的軟件工具用于需求分析的軟件工具 傳統軟件工程方法學使用結構化分析技術,傳統軟件工程方法學使用結構化分析技術,完成分析用戶需求的工作。完成分析用戶需求的工作。 1. 需求分析的第一步是發現用戶所面臨的問題和需求分析的第一步是發現用戶所面臨的問題和對目標系統的基本需求;對目標系統的基本需求;2. 接下來對用戶的基本需求反復細化逐步求精,接下來對用戶的

51、基本需求反復細化逐步求精,以得出對目標系統的完整、準確和具體的需求。以得出對目標系統的完整、準確和具體的需求。3.9 小結小結3. 具體地說,應該確定系統必須具有的功能、性具體地說,應該確定系統必須具有的功能、性能、能、可靠性和可用性,必須實現的出錯處理需求、接口可靠性和可用性,必須實現的出錯處理需求、接口需求和逆向需求,必須滿足的約束條件,并且預測需求和逆向需求,必須滿足的約束條件,并且預測系統的發展前景。系統的發展前景。 為了詳細地了解并正確地理解用戶的需求,必為了詳細地了解并正確地理解用戶的需求,必須使用適當方法與用戶溝通。須使用適當方法與用戶溝通。 訪談是與用戶通信的歷史悠久的技術,至

52、今仍訪談是與用戶通信的歷史悠久的技術,至今仍被許多系統分析員采用。被許多系統分析員采用。 從可行性研究階段得到的數據流圖出發,在用從可行性研究階段得到的數據流圖出發,在用戶的協助下面向數據流自頂向下逐步求精,也是與戶的協助下面向數據流自頂向下逐步求精,也是與用戶溝通獲取需求的一個有效的方法。用戶溝通獲取需求的一個有效的方法。 為了促使用戶與分析員齊心協力共同分析需求,為了促使用戶與分析員齊心協力共同分析需求,人們研究出一種面向團隊的需求收集法,稱為簡易人們研究出一種面向團隊的需求收集法,稱為簡易的應用規格說明技術,現在這種技術已經成為信息的應用規格說明技術,現在這種技術已經成為信息系統領域使用

53、的主流技術。系統領域使用的主流技術。 實踐表明,快速建立軟件原型是最準確、最有實踐表明,快速建立軟件原型是最準確、最有效和最強大的需求分析技術。效和最強大的需求分析技術。 快速原型應該具備的基本特性是快速原型應該具備的基本特性是“快速快速”和和“容易修改容易修改”,因此,必須用適當的軟件工具支持,因此,必須用適當的軟件工具支持快速原型技術。快速原型技術。 通常使用第四代技術、可重用的軟件構件及形通常使用第四代技術、可重用的軟件構件及形式化規格說明與原型環境,快速地構建和修改原型。式化規格說明與原型環境,快速地構建和修改原型。 為了更好地理解問題,人們常常采用建立模型為了更好地理解問題,人們常常采用建立模型的方法,結構化分析實質上就是一種建模活動,在的方法,結構化分析實質上就是一種建模活動,在需求分析階段通常建立數據模型、功能模型和行為需求分析階段通常建立數據模型、

溫馨提示

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

評論

0/150

提交評論