面向數(shù)據(jù)的分析方法_第1頁
面向數(shù)據(jù)的分析方法_第2頁
面向數(shù)據(jù)的分析方法_第3頁
面向數(shù)據(jù)的分析方法_第4頁
面向數(shù)據(jù)的分析方法_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程名稱:軟件工程課程名稱:軟件工程 第第11講講 班班 級:級: 日日 期:期: 教教 室:室: 教學題目:第教學題目:第6章章 面向數(shù)據(jù)的分析方法。面向數(shù)據(jù)的分析方法。 教學目的:理解教學目的:理解Warnier圖及圖及DSSD、Jackson系統(tǒng)開系統(tǒng)開 發(fā)方法。發(fā)方法。 教學重點:教學重點: Warnier圖及圖及DSSD、Jackson系統(tǒng)開發(fā)方系統(tǒng)開發(fā)方 法。法。 教學難點:教學難點: Jackson系統(tǒng)開發(fā)方法。系統(tǒng)開發(fā)方法。 教教 具:多媒體教室、電子教案具:多媒體教室、電子教案 作作 業(yè):業(yè): 除了面向數(shù)據(jù)流的分析方法,仍有其他一些方法可除了面向數(shù)據(jù)流的分析方法,仍有其他一些

2、方法可 供分析人員選擇,這些方法包括面向數(shù)據(jù)結構的系供分析人員選擇,這些方法包括面向數(shù)據(jù)結構的系 統(tǒng)開發(fā)方法(統(tǒng)開發(fā)方法(DSSD),),Jackson系統(tǒng)開發(fā)方法系統(tǒng)開發(fā)方法 (JSD)以及形式化軟件規(guī)格說明技術。前兩種統(tǒng))以及形式化軟件規(guī)格說明技術。前兩種統(tǒng) 稱為面向數(shù)據(jù)的需求分析方法。它們的共同特點是:稱為面向數(shù)據(jù)的需求分析方法。它們的共同特點是: 1以信息對象及其操作為核心進行需求分析,這以信息對象及其操作為核心進行需求分析,這 一點與面向對象分析有相似之處。一點與面向對象分析有相似之處。 2認為復合信息對象具有層次結構,并且可按順認為復合信息對象具有層次結構,并且可按順 序、選擇、重

3、復三種結構分解為成員信息對象。序、選擇、重復三種結構分解為成員信息對象。 3提供將層次信息結構映射為程序結構的機制,提供將層次信息結構映射為程序結構的機制, 從而為軟件設計奠定較好的基礎。從而為軟件設計奠定較好的基礎。 DSSD也叫也叫Warnier-Orr方法。方法。 1974年,法國人年,法國人J.D.Warnier提出了一種提出了一種LCP (Logical Construction of Programs,邏輯構造程,邏輯構造程 序)。他利用順序、選擇、重復三種結構表示信息序)。他利用順序、選擇、重復三種結構表示信息 的層次分解,并指出可以從信息層次結構推導出程的層次分解,并指出可以從

4、信息層次結構推導出程 序結構。序結構。 1981年年Ken Orr對對Warnier的工作進行了擴充,使其的工作進行了擴充,使其 不僅包含了不僅包含了Warnier的信息層次結構,還引進了數(shù)據(jù)的信息層次結構,還引進了數(shù)據(jù) 流和處理功能,從而發(fā)展成為一種需求分析方法。流和處理功能,從而發(fā)展成為一種需求分析方法。 本節(jié)首先介紹本節(jié)首先介紹Warnier圖,然后以此為基礎闡述圖,然后以此為基礎闡述 DSSD方法,其主要內容包括:如何創(chuàng)建實體圖、信方法,其主要內容包括:如何創(chuàng)建實體圖、信 息過程圖及息過程圖及Warnier Orr原型圖。原型圖。 Warnier圖又稱為圖又稱為Warnier-Orr圖

5、,可以表示數(shù)據(jù)結圖,可以表示數(shù)據(jù)結 構和程序結構。考慮一個典型的報紙自動組版系統(tǒng)。構和程序結構??紤]一個典型的報紙自動組版系統(tǒng)。 報紙作為其中重要的信息對象,具有以下內容:報紙作為其中重要的信息對象,具有以下內容: 1首版首版 1)標題新聞)標題新聞 2)國內新聞)國內新聞 3)本地新聞)本地新聞 2商業(yè)金融版商業(yè)金融版 1)股市行情)股市行情 2)商業(yè)新聞)商業(yè)新聞 3)廣告)廣告 3文化體育版文化體育版 1)文化、體育新聞)文化、體育新聞 2)散文)散文 3)新書評論)新書評論 該信息結構用該信息結構用Warnier圖如圖圖如圖6 1 1所示。所示。 圖圖6 1 1 Warnier 圖示例

6、圖示例 標題新聞標題新聞 國內新聞國內新聞 本地新聞本地新聞 股市行情股市行情(0,1) 商業(yè)新聞商業(yè)新聞 廣告廣告(1,5) 文化、體育新聞文化、體育新聞 散文散文 新書評論新書評論 文化體育版文化體育版 首首 版版 商業(yè)金融版商業(yè)金融版 報報 紙紙 花括號內的信息條目構成順序關系;花括號內的信息條目構成順序關系; 花括號從左至右排列表示樹型層次結構;花括號從左至右排列表示樹型層次結構; 符號符號“ ”表示不可兼具的選擇關系;表示不可兼具的選擇關系; “”表示表示“非非”。 圓括號內的數(shù)字表示重復次數(shù):圓括號內的數(shù)字表示重復次數(shù): (1,n)表示重復結構,)表示重復結構, (1)或不標次數(shù)表

7、示順序結構,)或不標次數(shù)表示順序結構, (0,1)表示選擇結構。)表示選擇結構。 基于基于DSSD需求分析方法的主要步驟是:需求分析方法的主要步驟是: 1)標識與應用問題有關的實體。)標識與應用問題有關的實體。 2)創(chuàng)建一種類似于數(shù)據(jù)流圖的信息)創(chuàng)建一種類似于數(shù)據(jù)流圖的信息 過程圖。過程圖。 3)創(chuàng)建)創(chuàng)建Warnier Orr原型圖。原型圖。 在詳細介紹在詳細介紹DSSD的具體步驟之前,首先用數(shù)據(jù)流的具體步驟之前,首先用數(shù)據(jù)流 圖描述一個基于計算機的軟件專賣店管理系統(tǒng),見圖描述一個基于計算機的軟件專賣店管理系統(tǒng),見 圖圖6 1 2。(該數(shù)據(jù)流圖并非。(該數(shù)據(jù)流圖并非DSSD的組成部分,的組成

8、部分, 僅用于說明后面將要用到的應用問題實例。)僅用于說明后面將要用到的應用問題實例。) 圖圖6 1 2 軟件專賣店管理系統(tǒng)的數(shù)據(jù)流軟件專賣店管理系統(tǒng)的數(shù)據(jù)流 圖圖 結算系統(tǒng)結算系統(tǒng) 管理系統(tǒng)管理系統(tǒng) 客戶客戶 訂單處理員接訂單處理員接 收并登錄訂單收并登錄訂單 郵寄員提取、郵寄員提取、 包裝軟件產(chǎn)品包裝軟件產(chǎn)品 訂單訂單 訂單編號訂單編號 訂單文件訂單文件 訂單編號訂單編號 客戶姓名、地址客戶姓名、地址 預定日期預定日期 支票編號支票編號 軟件名稱、編號軟件名稱、編號 作者作者 數(shù)量數(shù)量 單價單價 總價總價 軟件編號軟件編號 數(shù)量數(shù)量 預定日期預定日期 客戶姓名、地址客戶姓名、地址 郵局郵局

9、 郵寄品郵寄品 訂單編號訂單編號 在在DSSD中,與應用問題有關的實體及它們之間的中,與應用問題有關的實體及它們之間的 信息流用實體圖表示。信息流用實體圖表示。 具體地,分析人員可以通過對下述問題的回答來具體地,分析人員可以通過對下述問題的回答來 生成實體圖:生成實體圖: 1)軟件系統(tǒng)必須處理哪些信息項?)軟件系統(tǒng)必須處理哪些信息項? 2)信息項的生產(chǎn)者和消費者分別是哪些實體?)信息項的生產(chǎn)者和消費者分別是哪些實體? 在上述應用問題中,有關的實體是:客戶、訂在上述應用問題中,有關的實體是:客戶、訂 單處理員、郵寄員、銀行、結算員、管理員和郵局,單處理員、郵寄員、銀行、結算員、管理員和郵局, 如

10、圖如圖6 1 3(a)所示。)所示。 訂單處理員的實體圖如圖訂單處理員的實體圖如圖6 1 3(b)所示。)所示。 注:實體圖中的結點表示實體、有向邊表示實體之間的信息流。注:實體圖中的結點表示實體、有向邊表示實體之間的信息流。 (a)信息的生產(chǎn)者和消費者)信息的生產(chǎn)者和消費者 (b)實體圖示例)實體圖示例 圖圖6 1 3 軟件名稱、軟件名稱、 編號編號 地地 址址 訂單編號訂單編號 支票編號支票編號 客戶姓名客戶姓名 客戶客戶郵寄員郵寄員 訂單訂單 處理員處理員 銀行銀行 結算員結算員 管理員管理員 郵局郵局 客戶客戶 郵寄員郵寄員 結算員結算員 訂訂 單單 處處 理理 員員 訂單訂單 編號編

11、號 訂單編號訂單編號 圖圖6 1 4 組合實體圖示例組合實體圖示例 當所有實體的實體圖都構造完成后,將它們綜合起當所有實體的實體圖都構造完成后,將它們綜合起 來便形成整個目標軟件系統(tǒng)的實體圖。來便形成整個目標軟件系統(tǒng)的實體圖。 客戶客戶郵寄郵寄 員員 軟件產(chǎn)品庫軟件產(chǎn)品庫 結算員結算員 管理員管理員 銀行銀行 訂單信息訂單信息= 客戶姓名客戶姓名+ 地址地址+ 軟件名稱與編碼軟件名稱與編碼+ 支票編號支票編號 郵寄品郵寄品 支支 付付 催催 款款 軟件軟件 產(chǎn)品產(chǎn)品 月報表月報表 收據(jù)收據(jù) 存款存款 訂單編號訂單編號 訂單編號訂單編號 訂單信息訂單信息 訂單編號訂單編號 訂單訂單 處理員處理員

12、 DSSD中的信息中的信息 過程圖與數(shù)據(jù)流圖的作過程圖與數(shù)據(jù)流圖的作 用類似,都是用來表示信息流及其處理用類似,都是用來表示信息流及其處理 功能的。但是,信息功能的。但是,信息 過程圖從每個實過程圖從每個實 體的輸出信息流開始,逆向尋找用于生體的輸出信息流開始,逆向尋找用于生 成該輸出信息的輸入信息流及相應的處成該輸出信息的輸入信息流及相應的處 理功能。理功能。 圖圖6 1 5 信息信息 過程圖示例過程圖示例 郵寄品是由訂單編號和軟件產(chǎn)品經(jīng)過郵寄品包郵寄品是由訂單編號和軟件產(chǎn)品經(jīng)過郵寄品包 裝過程生成的,訂單編號又是由客戶訂購信息裝過程生成的,訂單編號又是由客戶訂購信息 和訂單編號過程生成的。

13、和訂單編號過程生成的。 郵寄品郵寄品 訂單編號訂單編號 軟件產(chǎn)品軟件產(chǎn)品 + 郵寄品包裝郵寄品包裝 訂購信息訂購信息 + 訂單編號過程訂單編號過程 DSSD方法要求分析人員在最后以表格形式給出主要的方法要求分析人員在最后以表格形式給出主要的 輸出信息的組成元素(見圖輸出信息的組成元素(見圖6 1 6(a),然后將),然后將 其精確地表示為其精確地表示為Warnier Orr圖(見圖圖(見圖6 1 6(b) 姓名姓名 客戶信息客戶信息 地址地址 電話電話 軟件編號軟件編號(1n) 郵寄品郵寄品 單價單價(1n) 總價總價 姓名姓名 客戶信息客戶信息 地址地址 電話電話 郵寄品郵寄品 客戶姓名客戶

14、姓名 地地 址址 電電 話話 總總 價價 發(fā)件人姓名發(fā)件人姓名 地址地址 電話電話 定單編號定單編號 軟件編號軟件編號 單單 價價 數(shù)數(shù) 量量 總總 價價 (a)輸出信息的表格表示)輸出信息的表格表示 (b)Warnier Orr圖圖 圖圖6 1 6 軟件產(chǎn)品軟件產(chǎn)品 信息信息 1975年,英國人年,英國人M.A.Jackson提出了軟件工程領域中提出了軟件工程領域中 著名的著名的Jackson方法,當時它只用于軟件設計。方法,當時它只用于軟件設計。1983 年,年,Jackson又對它進行了多方面的擴充和完善,最又對它進行了多方面的擴充和完善,最 終發(fā)展成為一種需求分析方法。終發(fā)展成為一種需

15、求分析方法。 其核心思想是:根據(jù)作用于數(shù)據(jù)的行為序列的結構其核心思想是:根據(jù)作用于數(shù)據(jù)的行為序列的結構 (順序、選擇、重復),建立目標軟件系統(tǒng)的模型,(順序、選擇、重復),建立目標軟件系統(tǒng)的模型, 然后在軟件設計階段將模型轉換為相應的程序結構。然后在軟件設計階段將模型轉換為相應的程序結構。 Jackson方法在需求分析階段的主要步驟是:方法在需求分析階段的主要步驟是: (1)標識實體與行為。)標識實體與行為。 (2)生成實體結構圖。)生成實體結構圖。 (3)創(chuàng)建軟件系統(tǒng)模型。)創(chuàng)建軟件系統(tǒng)模型。 類似于面向對象分析中對象及其行為的識別,類似于面向對象分析中對象及其行為的識別, Jackson方

16、法針對初步需求分析形成的用戶方法針對初步需求分析形成的用戶 需求描述進行語法分析:需求描述進行語法分析: 名詞及名詞短語名詞及名詞短語潛在的實體,潛在的實體, 相關的動詞相關的動詞構成實體的潛在行為。構成實體的潛在行為。 分析人員根據(jù)應用問題的邊界及自己的理解,分析人員根據(jù)應用問題的邊界及自己的理解, 決定對潛在實體和行為的取舍。決定對潛在實體和行為的取舍。 【例【例6.1】北華大學決定將分處兩地的校園用直達】北華大學決定將分處兩地的校園用直達 交通車連接起來。在每個校園設一個站,站內配交通車連接起來。在每個校園設一個站,站內配 置一個按鈕。學生通過按鈕請求交通車搭載。交置一個按鈕。學生通過按

17、鈕請求交通車搭載。交 通車應盡快滿足學生的請求??臻e時,交通車停通車應盡快滿足學生的請求??臻e時,交通車停 在任意站等候。在任意站等候。 分析人員可從分析人員可從“大學大學”、“校園校園”、“交通交通 車車”、“車站車站”、“學生學生”、“按鈕按鈕”等名詞中等名詞中 選取與應用問題相關的實體:選取與應用問題相關的實體:“交通車交通車”、“車車 站站”、“按鈕按鈕”。與它們有關的行為是:。與它們有關的行為是:“到到 站站”、“離站離站”、“按鍵按鍵”?!暗群虻群颉焙秃汀斑\行運行” 可以作為可以作為“交通車交通車”的狀態(tài)。的狀態(tài)。 在在Jackson方法中,實體結構是指實體在時間坐標系中方法中,實

18、體結構是指實體在時間坐標系中 的行為序列。這種序列以順序、選擇和重復三種結構的行為序列。這種序列以順序、選擇和重復三種結構 進行復合。進行復合。Jackson給出的實體結構圖的表示機制如圖給出的實體結構圖的表示機制如圖 6 2 1所示。其中的子結點既可以是行為,也可以所示。其中的子結點既可以是行為,也可以 是子實體。在后一種情況下,子實體應該繼續(xù)分解,是子實體。在后一種情況下,子實體應該繼續(xù)分解, 不能作為實體結構圖的葉結點。不能作為實體結構圖的葉結點。 順序結構順序結構 * 重復結構重復結構 選擇結構選擇結構 圖圖6 2 1 實體結構圖的圖形記實體結構圖的圖形記 號號 圖圖6 2 2 實體結

19、構圖示例實體結構圖示例 例例6.1的實體結構圖如圖的實體結構圖如圖6 2 2所示。在圖中,所示。在圖中,i 只能取值只能取值1或或2。并且,在。并且,在“站(站(i)”的重復序列的重復序列 中,中,i首先取首先取2,然后交替變化。交通車首先停在站,然后交替變化。交通車首先停在站 1,然后在兩站之間反復往返運行,最后??吭谡?,然后在兩站之間反復往返運行,最后??吭谡?。 為了刻畫交通車在兩站之間的往返穿梭,引入了虛為了刻畫交通車在兩站之間的往返穿梭,引入了虛 擬的概念實體擬的概念實體“Shuttle body”。 Shuttle Shuttle* body Station(i) Arrive(i

20、)Leave(i) Arrive(1)Button Push* Leave(1) 創(chuàng)建目標軟件系統(tǒng)模型的第一步,創(chuàng)建目標軟件系統(tǒng)模型的第一步,Jackson方法要方法要 求分析人員首先用圖求分析人員首先用圖6 2 3所示的圖形記號建立所示的圖形記號建立 系統(tǒng)規(guī)格說明圖(系統(tǒng)規(guī)格說明圖(System Specification Diagram)。)。 “數(shù)據(jù)流數(shù)據(jù)流”(Data Stream)記號)記號表示現(xiàn)實世界表示現(xiàn)實世界 中的過程或裝置不斷地向目標軟件系統(tǒng)中的相應過中的過程或裝置不斷地向目標軟件系統(tǒng)中的相應過 程發(fā)送數(shù)據(jù),后者以先進先出方式消費數(shù)據(jù)。兩者程發(fā)送數(shù)據(jù),后者以先進先出方式消費數(shù)

21、據(jù)。兩者 之間的緩沖區(qū)容量是無限的。之間的緩沖區(qū)容量是無限的。 “狀態(tài)向量狀態(tài)向量”(State Vector)記號)記號表示在兩者表示在兩者 之間存在狀態(tài)向量,發(fā)送方設置狀態(tài)向量,接收方之間存在狀態(tài)向量,發(fā)送方設置狀態(tài)向量,接收方 讀取狀態(tài)向量。讀取狀態(tài)向量。 約定:約定:0 表示現(xiàn)實世界中的過程或裝置,表示現(xiàn)實世界中的過程或裝置, 1 表示目標軟件系統(tǒng)中的過程表示目標軟件系統(tǒng)中的過程 圖圖6 2 3 系統(tǒng)規(guī)格說明圖的圖形記號系統(tǒng)規(guī)格說明圖的圖形記號 過程過程1DS 過程過程0過程過程1 SV 數(shù)據(jù)流(數(shù)據(jù)流(Data Stream) 過程過程0 狀態(tài)向量(狀態(tài)向量(State Vector

22、) 圖圖6 2 4 系統(tǒng)規(guī)格說明圖示例系統(tǒng)規(guī)格說明圖示例 在前述應用問題中,站內按鈕和目標軟在前述應用問題中,站內按鈕和目標軟 件中的按鈕處理過程之間以件中的按鈕處理過程之間以“數(shù)據(jù)流數(shù)據(jù)流” 方式連接,交通車和交通車控制過程之方式連接,交通車和交通車控制過程之 間則應以間則應以“狀態(tài)向量狀態(tài)向量”方式連接。見圖方式連接。見圖 6 2 4。 Button 1 DS Shuttle 0 Shuttle 1 SV 數(shù)據(jù)流聯(lián)系數(shù)據(jù)流聯(lián)系 Button 0 狀態(tài)向量聯(lián)系狀態(tài)向量聯(lián)系 創(chuàng)建模型的第二步是利用創(chuàng)建模型的第二步是利用Jackson給出的給出的“結構正文結構正文” (Structure Tex

23、t)將實體結構圖和系統(tǒng)規(guī)格說明圖綜)將實體結構圖和系統(tǒng)規(guī)格說明圖綜 合起來,并針對目標軟件系統(tǒng)中的每一過程用正文方合起來,并針對目標軟件系統(tǒng)中的每一過程用正文方 式給出更為精確、更為詳盡的描述。式給出更為精確、更為詳盡的描述。 BUUTTON_1 Read ButtonDown 信號信號 PUSH_BODY itr while ButtonDown /* 循環(huán)結構循環(huán)結構 */ PUSH /* 按鍵處理按鍵處理 */ Read ButtonDown 信號信號 PUSH_BODY end BOTTON_1 end SHUTTLE_1 seq /* 順序結構順序結構 */ Read 狀態(tài)向量狀態(tài)向

24、量 WAIT_BODY1 itr while Wait(1) /* 如果狀態(tài)向量如果狀態(tài)向量 中等待標志置位,則循環(huán)等待中等待標志置位,則循環(huán)等待 */ Read 狀態(tài)向量狀態(tài)向量 WAIT_BODY1 end TRANSIT_BODY1 itr while Transit(1) /* 如果狀態(tài)向如果狀態(tài)向 量中運行標志置位,則一直運行量中運行標志置位,則一直運行 */ Read 狀態(tài)向量狀態(tài)向量 TRANSIT_BODY1 end Leave(1) /* 控制交通車離開站控制交通車離開站1 */ SHUTTLE_BODY itr /* 往返重復運行往返重復運行 */ STATION seq

25、Arrive(i) /* 控制交通車減速,準備停靠站控制交通車減速,準備??空緄 */ WAIT_BODY itr while Wait(i) /* 如果狀態(tài)向量如果狀態(tài)向量 中在站中在站i的等待標志置位,則循環(huán)等待的等待標志置位,則循環(huán)等待 */ Read 狀態(tài)向量狀態(tài)向量 WAIT_BODY end Leave(i) TRANSIT_BODY itr while Wait(i) Read 狀態(tài)向量狀態(tài)向量 TRANSIT_BODY end STATION end SHUTTLE_BODY end Arrive(1) SHUTTLE_1 end 圖圖6 2 5 對應于結構正文的結構圖對應于結

26、構正文的結構圖 Shuttle 1 Station(i)* Arrive(1)Leave(1) Shuttle body1 TRANSit body1 wait body1 Transit(i)* Transit(1)* Arrive(i)Leave(i) Wait(1)* TRANSit body wait body Wait(i)* 前面對數(shù)據(jù)流圖等語言機制并未給出數(shù)學意義上嚴前面對數(shù)據(jù)流圖等語言機制并未給出數(shù)學意義上嚴 格的語法和語義說明。因此,這些需求模型都或多格的語法和語義說明。因此,這些需求模型都或多 或少地帶有不精確性、不完整性,甚至不一致性?;蛏俚貛в胁痪_性、不完整性,甚至不

27、一致性。 需求分析完成后,軟件開發(fā)的正確實施仍有賴于設需求分析完成后,軟件開發(fā)的正確實施仍有賴于設 計人員對分析人員主觀意圖的揣摩,而不僅僅取決計人員對分析人員主觀意圖的揣摩,而不僅僅取決 于他們對需求文檔的客觀理解。于他們對需求文檔的客觀理解。 許多軟件開發(fā)實踐都希望借助于形式化方法嚴格地許多軟件開發(fā)實踐都希望借助于形式化方法嚴格地 定義用戶需求,并通過數(shù)學推演而不是代價昂貴的定義用戶需求,并通過數(shù)學推演而不是代價昂貴的 失敗教訓來確保需求定義的一致性和完整性。本節(jié)失敗教訓來確保需求定義的一致性和完整性。本節(jié) 簡要介紹形式方法的引入、主要思想、分類、優(yōu)缺簡要介紹形式方法的引入、主要思想、分類

28、、優(yōu)缺 點以及軟件形式開發(fā)方法。點以及軟件形式開發(fā)方法。 在傳統(tǒng)的軟件開發(fā)過程中,人們普遍采用許多非形式在傳統(tǒng)的軟件開發(fā)過程中,人們普遍采用許多非形式 化的圖形工具和文字符號工具,例如:數(shù)據(jù)流圖化的圖形工具和文字符號工具,例如:數(shù)據(jù)流圖 (DFD)、模塊結構圖()、模塊結構圖(SC)、)、IPO圖、結構化語言、圖、結構化語言、 類程序設計語言、判定表、判定樹等,并按照一定的設類程序設計語言、判定表、判定樹等,并按照一定的設 計原則和有序步驟,或自上而下或循環(huán)往復逐步開發(fā)出計原則和有序步驟,或自上而下或循環(huán)往復逐步開發(fā)出 目標軟件,同時手工或輔助編寫有關設計文檔。目標軟件,同時手工或輔助編寫有關

29、設計文檔。 軟件工程的實踐表明,用戶需求規(guī)格說明的質量對于軟件工程的實踐表明,用戶需求規(guī)格說明的質量對于 后續(xù)的軟件開發(fā)過程是非常重要的。系統(tǒng)分析人員依據(jù)后續(xù)的軟件開發(fā)過程是非常重要的。系統(tǒng)分析人員依據(jù) 用戶需求,為目標軟件系統(tǒng)創(chuàng)建了需求規(guī)格說明用戶需求,為目標軟件系統(tǒng)創(chuàng)建了需求規(guī)格說明 (Specification)。設計和編程人員根據(jù)這個需求規(guī)格)。設計和編程人員根據(jù)這個需求規(guī)格 說明進行系統(tǒng)結構和模塊設計及編碼。軟件測試及驗收說明進行系統(tǒng)結構和模塊設計及編碼。軟件測試及驗收 人員則根據(jù)這個需求規(guī)格說明驗證目標系統(tǒng)。人員則根據(jù)這個需求規(guī)格說明驗證目標系統(tǒng)。 若采用自然語言描述的規(guī)格說明具有

30、模糊性和若采用自然語言描述的規(guī)格說明具有模糊性和 二義性,給下一步的開發(fā)工作造成理解上的困二義性,給下一步的開發(fā)工作造成理解上的困 難。同時自然語言又是非形式化的,無法得到難。同時自然語言又是非形式化的,無法得到 計算機的支持,使軟件生成自動化幾乎不可能。計算機的支持,使軟件生成自動化幾乎不可能。 程序設計語言著重描述的是程序設計語言著重描述的是“如何做如何做”(How to do)而不是)而不是“做什么做什么”(What to do)的問)的問 題。因此程序設計語言并不太適合描述抽象程題。因此程序設計語言并不太適合描述抽象程 度較高的需求規(guī)格說明。度較高的需求規(guī)格說明。 近年來,人們正在發(fā)展

31、一種更抽象的程序設計語言近年來,人們正在發(fā)展一種更抽象的程序設計語言 更高級語言(更高級語言(Very High Lan-guage),也稱為第四),也稱為第四 代語言代語言4GL。這種語言更多地采用了過程抽象和數(shù)據(jù)。這種語言更多地采用了過程抽象和數(shù)據(jù) 抽象技術。但這種語言的出發(fā)點仍在系統(tǒng)的設計方面,抽象技術。但這種語言的出發(fā)點仍在系統(tǒng)的設計方面, 作為需求規(guī)格的描述語言仍存在不足。作為需求規(guī)格的描述語言仍存在不足。 20世紀世紀80年代中期以來,一種專用于需求規(guī)格說明的年代中期以來,一種專用于需求規(guī)格說明的 形式規(guī)格說明語言應運而生。這種形式規(guī)格說明語言形式規(guī)格說明語言應運而生。這種形式規(guī)格

32、說明語言 克服了自然語言和程序設計語言的不足,應用形式化、克服了自然語言和程序設計語言的不足,應用形式化、 規(guī)范化的數(shù)學理論,嚴格定義軟件系統(tǒng)規(guī)范化的數(shù)學理論,嚴格定義軟件系統(tǒng)“做什么做什么”的的 形式語義模型,并支持自動程序轉換系統(tǒng)將需求規(guī)格形式語義模型,并支持自動程序轉換系統(tǒng)將需求規(guī)格 說明的語義模型轉換為可執(zhí)行代碼。由此產(chǎn)生的軟件說明的語義模型轉換為可執(zhí)行代碼。由此產(chǎn)生的軟件 形式開發(fā)方法正日益受到各國軟件界的重視。形式開發(fā)方法正日益受到各國軟件界的重視。 形式化需求分析方法的主要思想,是利用形式形式化需求分析方法的主要思想,是利用形式 化規(guī)格說明語言嚴格地定義用戶需求,并采用化規(guī)格說明

33、語言嚴格地定義用戶需求,并采用 數(shù)學推演的方法證明需求定義的性質,例如一數(shù)學推演的方法證明需求定義的性質,例如一 致性、實時系統(tǒng)的活性(致性、實時系統(tǒng)的活性(liveness)和公平性)和公平性 (fairness)等。)等。 從某種意義上講,形式化方法是克服需求分析從某種意義上講,形式化方法是克服需求分析 階段中主要困難(不精確性、不一致性和不完階段中主要困難(不精確性、不一致性和不完 全性)的有效途徑。全性)的有效途徑。 形式化規(guī)格說明語言包括:嚴格的語法定義、形式化規(guī)格說明語言包括:嚴格的語法定義、 嚴格的語義定義以及一系列的數(shù)學推演規(guī)則。嚴格的語義定義以及一系列的數(shù)學推演規(guī)則。 規(guī)格說

34、明語言的語法一般基于集合論、數(shù)理邏規(guī)格說明語言的語法一般基于集合論、數(shù)理邏 輯或代數(shù)學。輯或代數(shù)學。 規(guī)格說明語言的語義是其所有語法符號的意義規(guī)格說明語言的語義是其所有語法符號的意義 的數(shù)學描述。經(jīng)典的語義定義方法包括指稱語的數(shù)學描述。經(jīng)典的語義定義方法包括指稱語 義、代數(shù)語義和操作語義方法。義、代數(shù)語義和操作語義方法。 形式化規(guī)格說明語言的推演規(guī)則一般與其數(shù)學形式化規(guī)格說明語言的推演規(guī)則一般與其數(shù)學 基礎和語義定義方法密切相關。例如,以集合基礎和語義定義方法密切相關。例如,以集合 論和謂詞邏輯為基礎的論和謂詞邏輯為基礎的Z語言就包含了原數(shù)學語言就包含了原數(shù)學 系統(tǒng)中有關的規(guī)則。規(guī)則必須在規(guī)格

35、說明語言系統(tǒng)中有關的規(guī)則。規(guī)則必須在規(guī)格說明語言 的語義系統(tǒng)中可證。因此,可以認為規(guī)則是派的語義系統(tǒng)中可證。因此,可以認為規(guī)則是派 生的語義定義,它們可以直接應用于軟件規(guī)格生的語義定義,它們可以直接應用于軟件規(guī)格 說明的性質證明并簡化推演過程。說明的性質證明并簡化推演過程。 形式化方法是應用嚴格的形式符號和數(shù)學方法定義或形式化方法是應用嚴格的形式符號和數(shù)學方法定義或 描述目標軟件系統(tǒng)需求規(guī)格說明的一種方法。根據(jù)對描述目標軟件系統(tǒng)需求規(guī)格說明的一種方法。根據(jù)對 需求規(guī)格說明的定義方式,形式方法可分為以下兩大需求規(guī)格說明的定義方式,形式方法可分為以下兩大 類:類: 1面向模型的形式方法。面向模型的

36、形式方法又稱為面向模型的形式方法。面向模型的形式方法又稱為 基于狀態(tài)描述的形式方法。其基本思想是利用域、元基于狀態(tài)描述的形式方法。其基本思想是利用域、元 組、集合、序列、映射、包等這些已知特性的數(shù)學抽組、集合、序列、映射、包等這些已知特性的數(shù)學抽 象概念來為目標軟件系統(tǒng)的狀態(tài)特征和行為特征構造象概念來為目標軟件系統(tǒng)的狀態(tài)特征和行為特征構造 形式語義模型。語義模型就作為目標軟件系統(tǒng)需求規(guī)形式語義模型。語義模型就作為目標軟件系統(tǒng)需求規(guī) 格的形式說明。面向模型的形式方法的主要代表有:格的形式說明。面向模型的形式方法的主要代表有: VDM方法(維也納開發(fā)方法)、軟件工程方法(維也納開發(fā)方法)、軟件工程Z方法等。方法等。 2代數(shù)構造形式方法。代數(shù)形式方法為目標軟件系統(tǒng)代數(shù)構造形式方法。代數(shù)形式方法為目標軟件系統(tǒng) 的需求規(guī)格說明提供一些特殊的構造機制,并以代數(shù)的需求規(guī)格說明提供一些特殊的構造機制,并以代數(shù) 構造方式描述目標系統(tǒng)的結構、功能。構造方式描述目標系統(tǒng)的結構、功能。 將形式化方法應用于軟件開發(fā)過程稱為軟件形式開發(fā)將形式化方法應用于軟件開發(fā)過程稱為軟件形式開發(fā) 方法。方法

溫馨提示

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

評論

0/150

提交評論