03第三章 軟件需求分析_第1頁
已閱讀1頁,還剩186頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2024/4/1,1,3.1 軟件需求分析的重要性3.2 軟件需求分析的困難性3.3 軟件需求分析的任務3.4 軟件需求分析的過程3.5 軟件需求分析的原則3.5 結構化分析方法3.6 原型化方法3.7 補充:有關數(shù)據(jù)庫的基本概念,第三章 軟件需求分析,2024/4/1,2,需求分析,需求分析是軟件定義時期的最后一個階段回答“系統(tǒng)必須做什么?”的問題,系統(tǒng)分析員的主要焦點是 “做什么(what)” ,不是 “怎樣做(ho

2、w)”,2024/4/1,3,3.1 需求分析的重要性,真的很重要嗎?例:Our real-time example is based on the embedded software in the Ariane-5, a space rocket belonging to the European Space Agency (ESA). On June 4, 1996, on its maiden flight, the Aria

3、ne-5 was launched and performed perfectly for approximately 40 seconds. Then, it began to veer off course. At the direction of an Ariane ground controller, the rocket was destroyed by remote control. The destruction o

4、f the uninsured rocket was a loss not only of the rocket itself, but also of the four satellites it contained; the total cost of the disaster was $500 million (Newsbytes home page 1996; Lions et al. 1996).,2024/4/1,4,The

5、 reason: there was no discussion in the requirements documents of the ways in which the Ariane-5 trajectory would be different from Ariane-4.,統(tǒng)計資料: In 1994, the Standish Group surveyed over 350 companies about thei

6、r over 8000 software projects to find out how well they were faring. The results are sobering. Thirty-one percent of the software projects were canceled before they were completed. Moreover, in large companies, only 9

7、% of the projects were delivered on time and cost what they were budgeted, and 16% met those criteria in small companies (Standish 1994).,2024/4/1,5,在美國高科技歷史上曾有過令人痛心的事件: 大家知道,DEC曾經(jīng)是美國三大計算機公司之一,幾年前被康柏收購,從地球上消失,成為美國計

8、算機界一大憾事。DEC曾以眾多的高新技術著稱于世。其中,它在最后的幾年里研發(fā)出的 Alpha 計算機芯片更以卓越的技術在性能上超過了 Intel, sun 和其他廠家的芯片。微軟也曾大力協(xié)助 DEC ,將 Windows Nt 移植到 Alpha 系統(tǒng),然而,Alpha 在市場上徹底地失敗了,成為 DEC 最終失敗的原因之一。 為什么? 究其根本,還是因為 DEC 對其市場和用戶不了解,盲目追求技術而鑄成大錯。Alpha

9、 系統(tǒng)復雜,造價過高,絕大多數(shù)用戶不能接受 ;而且它又不能與已有的系統(tǒng)兼容,使得在其上的軟件開發(fā)相當困難,軟件開發(fā)商也很難接受,所以 Alpha 把它的兩級用戶都得罪了,要想成功,談何容易!,2024/4/1,6,2024/4/1,7,需求分析的重要性,5點事實軟件生命周期中,一個錯誤發(fā)現(xiàn)得越晚,修復錯誤的費用越高,2024/4/1,8,許多錯誤是潛伏的,并且在錯誤產(chǎn)生后很長一段時間才被檢查出來在需求過程中會產(chǎn)生很多錯誤DeMar

10、co在一份研究報告中指出,被檢查出來的錯誤的56%產(chǎn)生的根源可以追溯到需求階段。AIRMICS所進行的一項調(diào)查發(fā)現(xiàn),在一份美國軍方大型管理信息系統(tǒng)的需求現(xiàn)格說明書(SRS)中存在著500多個錯誤,當然這僅僅是一個軟件項目中的一次調(diào)查。在需求階段,代表性的錯誤為疏忽、不一致和二義性美國海軍研究實驗室從20世紀70年代起就對軟件開發(fā)技術不斷地進行研究。他們對海軍A—7E—它機上的”宅行操作程序進行實地測試,以驗證許多新設想的可行性。得

11、出的研究數(shù)據(jù)表明:A—7E項目中77%的需求錯誤特點是不明確:疏忽、不一致和二義性。按錯誤類型對這些錯誤分布進行分析的結果是:49%不正確的事實,31%疏忽,l 3%不一致,5%二義性,2024/4/1,9,需求錯誤是可以被檢查出來的,2024/4/1,10,需求分析的重要性,在需求過程中會產(chǎn)生很多錯誤(事實3和4)。許多錯誤并沒有在早期被發(fā)現(xiàn)(事實2)。這樣的錯誤是能夠在產(chǎn)生的初期被檢查出來的(事實5)。如果沒有及時檢查出來這

12、些錯誤,軟件費用會直線上升(事實1),2024/4/1,11,3.3 需求管理的困難性,2024/4/1,12,需求工程涉及人員,2024/4/1,13,需求工程,需求是什么?需求就是以一種清晰、簡潔、一致且無二義性的方式,對一個待開發(fā)系統(tǒng)中各個有意義方面的陳述的一個集合。需求工程一般指應用已證實有效的原理、方法,通過合適的工具和記號,系統(tǒng)地描述出待開發(fā)系統(tǒng)及其行為特征和相關約束;通常是一些過程的集合:需求獲取(需求引出)、需求分析和

13、編寫軟件規(guī)格說明書(SRS)及驗證(包括鑒定和證實)。,2024/4/1,14,3.3 軟件需求分析的任務,需求工作:深入描述軟件的功能和性能、確定軟件設計的約束和軟件同其它系統(tǒng)元素的接口細節(jié)、定義軟件的其它有效性需求初步目標:逐步細化對軟件的要求,描述軟件要處理的數(shù)據(jù)域,并給軟件開發(fā)提供一種可轉化為數(shù)據(jù)設計、結構設計和過程設計的數(shù)據(jù)和功能表示。,2024/4/1,15,需求分析研究的對象是軟件項目的用戶要求不要-“ 削足適履 ”

14、 ( “足” 為用戶需求,“履” 為技術)準確地表達被接受的用戶要求確定被開發(fā)軟件系統(tǒng)的系統(tǒng)元素(物理模型)將功能和信息結構分配到這些系統(tǒng)元素中,2024/4/1,16,需求分析的任務就是借助于當前系統(tǒng)的邏輯模型導出目標系統(tǒng)的邏輯模型,解決目標系統(tǒng)的 “做什么” 的問題。,,當前系統(tǒng),,目標系統(tǒng),,物理模型,,邏輯模型,,邏輯模型,,物理模型,,,,,模型化,抽象化,具體化,實例化,怎么做,做什么,,,

15、,,,當前系統(tǒng),目標系統(tǒng),需求定義,2024/4/1,18,通常軟件開發(fā)項目是要實現(xiàn)目標系統(tǒng)的物理模型目標系統(tǒng)的具體物理模型是由它的邏輯模型經(jīng)實例化,即具體到某個業(yè)務領域而得到的,2024/4/1,19,基本任務:準確地回答“系統(tǒng)必須做什么?”,1.確定對系統(tǒng)的綜合需求(1)系統(tǒng)功能要求(2)系統(tǒng)性能要求(3)運行要求(4)將來可能提出的要求2.導出系統(tǒng)的邏輯模型數(shù)據(jù)流程圖、數(shù)據(jù)字典、主要算法,2024/4/1

16、,20,一、確定目標系統(tǒng)的具體要求,1、確定系統(tǒng)的運行環(huán)境要求,2、系統(tǒng)的性能要求,3、系統(tǒng)功能,硬件環(huán)境和軟件環(huán)境,確定目標系統(tǒng)具備的所有功能,2024/4/1,21,數(shù)據(jù)庫中存放的是職工的,,某學校醫(yī)療費管理系統(tǒng),所屬部門、職工號、姓名,職工報銷時應填寫:,所屬部門、職工號、姓名、日期,校內(nèi)門診、校外門診、住院費、子女醫(yī)療費,醫(yī)療費分類:,該校規(guī)定,每年每個職工的醫(yī)療費有一個限額(如 80元),限 額在年初確定,其限額規(guī)則如下:

17、,1、每個職工一年內(nèi)報銷的醫(yī)療費不超過限額時,全部報銷 2、超額,則超出部分只可報銷90%,其余10%由職工個人負擔 3、職工子女的醫(yī)療費也有限額(如 40元),2024/4/1,22,1、醫(yī)療費管理系統(tǒng)每天記錄當天報銷的若干職工或職工子女的醫(yī) 療費的類別、金額。 2、在當天下班前讓系統(tǒng)自動結帳、統(tǒng)計當天報銷的醫(yī)療費總額,供 出納員核對。 3、每筆帳要保存?zhèn)洳椋刻焖鶊箐N的費用要和各個職工已報銷的金

18、 額累計起來,以便檢查哪些職工已超額。 4、系統(tǒng)還要配有適當?shù)牟樵児δ堋?5、年終結算后,下一年度開始時要對數(shù)據(jù)庫文件進行初始化。 6、當職工調(diào)離本單位,職工調(diào)如本單位或在本單位內(nèi)部門間調(diào)動, 數(shù)據(jù)庫文件應能及時得到修改。,請完成對上述系統(tǒng)的 需求分析,用戶對系統(tǒng)的要求,2024/4/1,23,該系統(tǒng)規(guī)模不太大,可以和用戶單位的其他管理系統(tǒng)使用相同的計算機硬件設備、相同的操作系統(tǒng)和相同的關 系數(shù)據(jù)庫管理系統(tǒng)。

19、 如果,可以使用漢化了的數(shù)據(jù)庫管理系統(tǒng),但在建立數(shù)據(jù)庫結構時,凡是用英文名稱來代表字段名時,則必須在數(shù)據(jù)字典中予以說明。,1、確定系統(tǒng)的環(huán)境要求,2024/4/1,24,2、系統(tǒng)性能要求,(1)數(shù)據(jù)不能隨意更改 2)保證數(shù)據(jù)的準確性 由于醫(yī)療費管理系統(tǒng)涉及到會計經(jīng)費問題,數(shù)據(jù)不能隨意更改但數(shù)據(jù)輸入又難免會出錯。因而在每輸入一個職工的醫(yī)

20、療費后,屏幕提示“數(shù)據(jù)有誤嗎?”。若是在核對時 有誤,可及時更改,避免輸入錯誤。一天報銷結束時,在 數(shù)據(jù)存檔前,再讓出納員核對一下經(jīng)費總額,若出納員支 出的金額總數(shù)有誤時,應讓計算機顯示每筆帳目,供一一 仔細核對,此時在允許修改一次。當正式登帳后,數(shù)據(jù)就 絕對不允許在修改了,由此保證財務制度的嚴格性,保證 數(shù)據(jù)的安全性。,2024/4/1,25,3、系統(tǒng)的功能,(1)具有表格形式屏幕的輸入格式 (2)具有重復錄入數(shù)據(jù)的功

21、能 (3)具有查詢和統(tǒng)計匯總的功能 (4)職工的調(diào)入和調(diào)出以及對數(shù)據(jù)庫的初始化,2024/4/1,26,二、建立目標系統(tǒng)的邏輯模型,通常軟件軟件開發(fā)項目是要實現(xiàn)目標系統(tǒng)的物理模型,即 確定待開發(fā)軟件系統(tǒng)的系統(tǒng)元素,并將功能和數(shù)據(jù)結構分配到 這些系統(tǒng)元素中。它是軟件實現(xiàn)的基礎。 但是目標系統(tǒng)的物理模型是由它的邏輯模型經(jīng)實例化,即 具體到某個業(yè)務領域而得到的。與物理模型不同,邏輯模型忽 視機制

22、和細節(jié),只描述系統(tǒng)要完成的功能和要處理的數(shù)據(jù)。 為此,該階段的主要任務是,借助于當前系統(tǒng)的邏輯模型 導出目標系統(tǒng)的邏輯模型,也就是解決目標系統(tǒng)“做什么”的問 題。,2024/4/1,27,例 子,例如,學生購買學校教材的手續(xù)可能是:先找系辦公室的張秘書開一證明,憑證明找教材科的王會計開購書發(fā)票,向李出納員交付書款,然后到書庫找趙保管員領書。,2024/4/1,28,通過對現(xiàn)實環(huán)境的調(diào)查研究,獲得當前系統(tǒng)的

23、具體模型。,,在上圖中,張、王、李、趙等具體的人是可以變動的,但需要他們處理的工作,例如審查購書有效性,開發(fā)票,開領書單等則是不變的,后者才是本質(zhì)的內(nèi)容。經(jīng)過這樣的分析,就可抽象出學生購買教材這一系統(tǒng)的邏輯模型。,2024/4/1,29,去掉具體模型中的非本質(zhì)因素,抽象出當前系統(tǒng)的邏輯模型,,,目標系統(tǒng)是一個使用計算機的系統(tǒng)。一般來說,它的功能應該比當前的現(xiàn)行系統(tǒng)更強,不必也不應該完全模擬現(xiàn)行的系統(tǒng)。例如在出售教材的計算機系統(tǒng)中,“有效

24、性審查”和“開發(fā)票”就可全并進行,省去開有效購書單的手續(xù)。,2024/4/1,30,分析當前系統(tǒng)與目標系統(tǒng)的差別、建立目標的邏輯模型,,,2024/4/1,31,對目標進行完善和補充,并寫出完整的需求說明,這一步的主要工作有:(1)    確定目標系統(tǒng)的人-機界面,即哪些功能交給計算機去做,哪些功能由人工完成。例如在上圖的系統(tǒng)中,按照書費收款和發(fā)書這兩項工作仍須由人工完成。(2)  

25、  補充迄今尚未考慮過的細節(jié),例如確定系統(tǒng)的響應時間,增加出錯處理等。在本例中,假如購書單中出現(xiàn)了學生不該購買或已經(jīng)賣完的教材,就可用“無效書單”把相應的情況通知學生。經(jīng)過以上的修正和補充,就可以得到改進了的目標系統(tǒng)邏輯模型,,2024/4/1,32,對需求說明進行復審,直到確認文檔齊全,并且符合用戶的全部需求為止。,從以上的簡單敘述可以看出,需求分析是一個調(diào)查研究,去粗取精,綜合比較,然后作出決策的過程。分析員不僅要熟悉計

26、算機,還應該了解所開發(fā)系統(tǒng)的專業(yè)知識,并且與用戶保持良好的對話與合作。當然,上述步驟僅顯示一個粗略的輪廓,實際工作要復雜得多,下面還要詳細介紹。,2024/4/1,33,,----學生購買教材的 邏輯模型,2024/4/1,34,---- 學生購買教材的具體模型,請建立計算機售書系統(tǒng)的邏輯模型,----學生購買教材的 邏輯模型,2024/4/1,35,----學生購買教材的 邏輯模型,2024/4/1,36,3.4 需求分析的過程,(

27、1) 問題識別? 從系統(tǒng)的角度來理解軟件并評審 軟件范圍是否恰當? 確定對目標系統(tǒng)的綜合要求,即軟件的需求? 提出這些需求實現(xiàn)條件,以及需求應達到的標準,1.用戶需求分類 (1)功能性需求: 定義了系統(tǒng)做什么(描述系統(tǒng)必須支持 的功能和過程) (2)非功能性需求(技術需求): 定義了系統(tǒng)工作時的特性 (描述操作環(huán)境和性能目標),2. 兩類需求包括的內(nèi)容,(1) 功能(2) 性能(3)

28、環(huán)境(4) 界面(5) 用戶或人的因素(6) 文檔 (7) 數(shù)據(jù)(8) 資源(9) 安全保密(10)軟件成本消耗與開發(fā)進度(11)質(zhì)量保證,(1) 功能需求,系統(tǒng)做什么? 系統(tǒng)何時做什么? 系統(tǒng)何時及如何修改 或升級?,(2) 性能需求,軟件開發(fā)的技術性指標例如: 存儲容量限制 執(zhí)行速度、相應時間 吞吐量,(3) 環(huán)境需求,硬件設備:機型、外設、接口、 地點、分布、溫度、

29、 濕度、磁場干擾等軟件: 操作系統(tǒng) 網(wǎng)絡 數(shù)據(jù)庫,(4) 界面需求,有來自其它系統(tǒng)的輸入嗎? 到自其它系統(tǒng)的輸出嗎? 對數(shù)據(jù)格式有規(guī)定嗎? 對數(shù)據(jù)存儲介質(zhì)有規(guī)定嗎?,(5) 用戶或人的因素,用戶類型? 各種用戶熟練程度? 需受何種訓練? 用戶理解、使用系統(tǒng)的難度? 用戶錯誤操作系統(tǒng)的可能性?,(6) 文檔需求,需哪些文檔? 文檔針對

30、哪些讀者?,(7) 數(shù)據(jù)需求,輸入、輸出數(shù)據(jù)的格式? 接收、發(fā)送數(shù)據(jù)的頻率? 數(shù)據(jù)的準確性和精度? 數(shù)據(jù)流量? 數(shù)據(jù)需保持的時間?,(8) 資源需求,軟件運行時所需的數(shù)據(jù)、軟件。 內(nèi)存空間等資源。 軟件開發(fā)、維護所需的人力、 支撐軟件、開發(fā)設備等。,(9) 安全保密要求,需對訪問系統(tǒng)或系統(tǒng)信息加以控 制嗎? 如何隔離用戶之間的數(shù)據(jù)? 用戶程序如何與其它程序和操作 系統(tǒng)隔離? 系統(tǒng)備份要求?

31、,(10) 軟件成本消耗開發(fā)進度需求,開發(fā)有規(guī)定的時間表嗎?軟硬件投資有無限制?,(11) 質(zhì)量保證,系統(tǒng)的可靠性要求? 系統(tǒng)必須監(jiān)測和隔離錯誤嗎? 規(guī)定系統(tǒng)平均出錯時間? 出錯后,重啟系統(tǒng)允許的時間? 系統(tǒng)變化如何反映到設計中? 維護是否包括對系統(tǒng)的改進? 系統(tǒng)的可移植性?,2024/4/1,50,問題識別的另一項工作是建立分析所需要的通信途徑,以保證能順利地對問題進行分析。,2024/4/1,51,(2) 分析與綜合

32、?從信息流和信息結構出發(fā),逐步細化所有的軟件功能,找出系統(tǒng)各元素之間的聯(lián)系、接口特性和設計上的約束,分析它們是否滿足功能要求,是否合理。剔除其不合理的部分,增加其需要部分。最終綜合成系統(tǒng)的解決方案,給出目標系統(tǒng)的詳細邏輯模型。,2024/4/1,52,常用的分析方法,面向數(shù)據(jù)流的結構化分析方法(SA)面向數(shù)據(jù)結構的Jackson方法(JSD)面向?qū)ο蟮姆治龇椒ǎ∣OA)等,2024/4/1,53,(3) 編制需求分析階段的文檔

33、? 軟件需求說明書? 數(shù)據(jù)要求說明書? 初步的用戶手冊? 修改、完善與確定軟件開發(fā)實施計劃,2024/4/1,54,(4) 需求分析評審,系統(tǒng)定義的目標是否與用戶的要求一致;系統(tǒng)需求分析階段提供的文檔資料是否齊全;文檔中的所有描述是否完整、清晰、準確反映用戶要求;與所有其它系統(tǒng)成分的重要接口是否都已經(jīng)描述;,2024/4/1,55,被開發(fā)項目的數(shù)據(jù)流與數(shù)據(jù)結構是否足夠,確定;所有圖表是否清楚,在不補充說明時能否理解;主

34、要功能是否已包括在規(guī)定的軟件范圍之內(nèi),是否都已充分說明;設計的約束條件或限制條件是否符合實際;開發(fā)的技術風險是什么;,2024/4/1,56,是否考慮過軟件需求的其它方案;是否考慮過將來可能會提出的軟件需求;是否詳細制定了檢驗標準,它們能否對系統(tǒng)定義是否成功進行確認;,2024/4/1,57,需求分析流程,2024/4/1,58,需求分析具體過程,1.沿數(shù)據(jù)流程圖回溯從“輸出端”到“輸入端”回溯,分析數(shù)據(jù)元素。2.用戶復查

35、借助已有的數(shù)據(jù)流程圖,幫助復查,再次完善數(shù)據(jù)流程圖。3.細化數(shù)據(jù)流程圖4.修正開發(fā)計劃5.書寫文檔系統(tǒng)規(guī)格說明:系統(tǒng)的概貌、功能要求、運行要求、將來可能的要求。數(shù)據(jù)要求:數(shù)據(jù)字典、圖形工具(數(shù)據(jù)結構的層次圖、Warnier圖)用戶系統(tǒng)描述:初步的用戶手冊修正的開發(fā)計劃,2024/4/1,59,1、沿DFD回溯(1)DFD的輸出端是系統(tǒng)的最終目的(2)向回確定每個數(shù)據(jù)元素的來源(3)為了得到某個數(shù)據(jù)元素需要用到數(shù)據(jù)流圖

36、中目前還沒有的數(shù)據(jù)元素,或者得出某個數(shù)據(jù)元素需要用的算法尚不清楚,可加細DFD及DD,并將相關算法記錄在IPO圖中。,需求分析具體過程,2024/4/1,60,2、用戶復查 數(shù)據(jù)字典準確完整嗎? 算法正確嗎? 有沒有遺漏必要的處理或數(shù)據(jù)元素? 某些數(shù)據(jù)元素是從哪里來的?…… ——構成一個循環(huán),認識螺旋式上升,需求分析具體過程,2024/4/1,61,3、細化DFD: ? 加細前后的I\O須相同。 ?

37、分解到須考慮具體實現(xiàn)的代碼時即可仃止,需求分析具體過程,2024/4/1,62,4、修正計劃5、文檔:《需求規(guī)格說明書》,2024/4/1,63,需求分析規(guī)格說明書,2024/4/1,64,需求分析規(guī)格說明書,⑴系統(tǒng)規(guī)格說明: ? 系統(tǒng)概貌 ? 功能要求 ? 性能要求 ? 運行要求 ? 可能增加的要求 ? DFD ? IPO,⑵ 數(shù)據(jù)要求: ? DD ? Hierarchy

38、 或 Warnier Diagram,⑶ 用戶系統(tǒng)描述 —— 初步用戶手冊:從用戶的觀點考慮系統(tǒng) ? 系統(tǒng)功能、性能 ? 使用與步驟 等,⑷修正的開發(fā)計劃: ? 成本估計 ? 資源使用計劃 ? 進度計劃,2024/4/1,65,第六步 審查和復審以上六步構成一個循環(huán),需求分析具體過程,2024/4/1,66,3.5 軟件需求分析的原則,需要能夠表達和理解問題的數(shù)據(jù)

39、域和功能域,數(shù)據(jù)流:數(shù)據(jù)通過一個系統(tǒng)時的變化方式。數(shù)據(jù)內(nèi)容即數(shù)據(jù)項。數(shù)據(jù)結構:即各種數(shù)據(jù)項的邏輯組織。或表格或樹型。,,數(shù)據(jù)域,2024/4/1,67,II、要能以層次化的方式對問題進行分解和不斷細化,Iii、要給出系統(tǒng)的邏輯視圖和物理視圖,2024/4/1,68,軟件需求方法,需求分析方法由對軟件問題的信息域和功能域的系統(tǒng)分析過程及其表示方法組成,其定義了表示系統(tǒng)邏輯視圖和物理視圖的方式。大多數(shù)的需求分析方法是由信息驅(qū)動的信息

40、域具有三種屬性: 信息流、信息內(nèi)容和信息結構。,?,2024/4/1,69,3.5 結構化分析方法,面向數(shù)據(jù)流進行需求分析的方法結構化分析方法適合于數(shù)據(jù)處理類型軟件的需求分析,2024/4/1,70,具體來說,結構化分析方法就是用抽象模型的概念,按照軟件內(nèi)部數(shù)據(jù)傳遞、變換的關系,自頂向下逐層分解,直到找到滿足功能要求的所有可實現(xiàn)的軟件為止,2024/4/1,71,結構化分析方法使用工具: 數(shù)據(jù)流圖 數(shù)據(jù)詞典 結構化語言 判定

41、表與判定樹,2024/4/1,72,3.5.1 數(shù)據(jù)流圖,---- DFD(Data Flow Diagram),2024/4/1,73,辦理取款手續(xù)的 DFD 圖,2024/4/1,74,,,,,1、數(shù)據(jù)流圖中的主要圖形元素,------ 轉換數(shù)據(jù)流的處理過程,,,---- 可以是數(shù)據(jù)庫文件或任何形式的數(shù) 據(jù)組織。箭頭向內(nèi)則表示寫入文件 或查詢文件,箭頭向外則表示從文 件中讀取數(shù)據(jù)或得到查詢結果,數(shù)

42、據(jù)轉換,外部實體,------ 位于軟件系統(tǒng)邊界之外的信息生產(chǎn)者 或消費者,數(shù)據(jù)流,------ 在轉換之間有向流動的數(shù)據(jù)項或數(shù)據(jù) 集合,數(shù)據(jù)存儲文件,,2024/4/1,75,---- 系統(tǒng)邏輯模型,2024/4/1,76,----學生購買教材的 邏輯模型,審查并開發(fā)票,學生,,發(fā)票,,購書單,各班學生用書表,,,教材存量表,,,,無效書單,開領書單,,領書單,學生,外部實體,

43、數(shù)據(jù)的加工,,,2024/4/1,77,2、數(shù)據(jù)流與數(shù)據(jù)加工之間的關系,2024/4/1,78,3、數(shù)據(jù)流圖的層次結構,為了表達數(shù)據(jù)處理過程的數(shù)據(jù)加工情況,需要采用層次結構的數(shù)據(jù)流圖。按照系統(tǒng)的層次結構進行逐步分解,并以分層的數(shù)據(jù)流圖反映這種結構關系,能清楚地表達和容易理解整個系統(tǒng),2024/4/1,79,分層數(shù)據(jù)流圖,2024/4/1,80,2024/4/1,81,在多層數(shù)據(jù)流圖中,頂層流圖僅包含一個加工,它代表被開發(fā)系統(tǒng)。它的輸入

44、流是該系統(tǒng)的輸入數(shù)據(jù),輸出流是系統(tǒng)所輸出數(shù)據(jù)底層流圖是指其加工不需再做分解的數(shù)據(jù)流圖,它處在最底層中間層流圖則表示對其上層父圖的細化。它的每一加工可能繼續(xù)細化,形成子圖。,2024/4/1,82,4、結構化分析方法步驟示例1,2024/4/1,83,2024/4/1,84,2024/4/1,85,2024/4/1,86,2024/4/1,87,結構化分析方法步驟示例2,教材購銷系統(tǒng)教材購銷系統(tǒng)的頂層DFD 通常把

45、整個系統(tǒng)當作一個大的加工標明系統(tǒng)的輸入與輸出,以及數(shù)據(jù)的源點與終點(統(tǒng)稱為“外部項”),2024/4/1,88,教材購銷系統(tǒng)第二層DFD圖,把系統(tǒng)分解為銷售和采購兩大加工,2024/4/1,89,教材購銷系統(tǒng)第三層DFD圖-銷售子系統(tǒng),2024/4/1,90,,教材購銷系統(tǒng)第三層DFD圖-采購子系統(tǒng),2024/4/1,91,結構化分析方法步驟示例3商店業(yè)務處理系統(tǒng),2024/4/1,92,這個數(shù)據(jù)流圖只是一個高層的系統(tǒng)邏輯模型,它反映

46、了目標系統(tǒng)要實現(xiàn)的功能數(shù)據(jù)流圖繪制步驟首先確定系統(tǒng)的輸入和輸出根據(jù)商店業(yè)務,畫出頂層數(shù)據(jù)流圖,以反映最主要業(yè)務處理流程,2024/4/1,93,經(jīng)過分析,商店業(yè)務處理的主要功能應當有銷售、采購、會計三大項。主要數(shù)據(jù)流輸入的源點和輸出終點是顧客和供應商。然后從輸入端開始,根據(jù)商店業(yè)務工作流程,畫出數(shù)據(jù)流流經(jīng)的各加工框,逐步畫到輸出端,得到第一層數(shù)據(jù)流圖,2024/4/1,94,第一層數(shù)據(jù)流圖,2024/4/1,95,加細每一個加工

47、框 銷售細化,2024/4/1,96,采購細化,2024/4/1,97,5、檢查和修改數(shù)據(jù)流圖的原則,數(shù)據(jù)流圖上所有圖形符號只限于前述四種基本圖形元素數(shù)據(jù)流圖的主圖必須包括前述四種基本元素,缺一不可數(shù)據(jù)流圖的主圖上的數(shù)據(jù)流必須封閉在外部實體之間每個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流,2024/4/1,98,在數(shù)據(jù)流圖中,需按層給加工框編號。編號表明該加工所處層次及上下層的親子關系 頂層加工不編號。

48、第二層的加工編號為1,2,3,…,n號。第三層編號為1.1,1.2,1.3…n.1,n.2…等號,依此類推。規(guī)定任何一個數(shù)據(jù)流子圖必須與它上一層的一個加工對應,兩者的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流必須一致。此即父圖與子圖的平衡,2024/4/1,99,. 注意父圖和子圖的平衡,2024/4/1,100,掌握分解的速度一般來說,每一個加工每次可分為 2-4個子加工,最 多不得超過 7 個。圖上每個元素都必須有名字數(shù)據(jù)流圖中不可夾帶控制流

49、初畫時可以忽略瑣碎的細節(jié),以集中精力于主要數(shù)據(jù)流,2024/4/1,101,6 數(shù)據(jù)流圖的用途,2024/4/1,102,,2024/4/1,103,練,請畫出學生成績管理系統(tǒng)的 DFD 圖,習,2024/4/1,104,3.5.2 數(shù)據(jù)字典,-- DD(Data Dictionary),2024/4/1,105,數(shù)據(jù)詞典,數(shù)據(jù)詞典與數(shù)據(jù)流圖配合,能清楚地表達數(shù)據(jù)處理的要求詞條描述 —— 對于在數(shù)據(jù)流圖中每一個被命名的圖形元素,

50、均加以定義,其內(nèi)容有:名字,別名或編號,分類,描述,定義,位置,其它,等,2024/4/1,106,1、數(shù)據(jù)字典的定義,數(shù)據(jù)流名: 說明:簡要介紹作用即它產(chǎn)生的原因和結果。 數(shù)據(jù)流來源:即該數(shù)據(jù)流來自何方。 數(shù)據(jù)流去向:去向何處。 數(shù)據(jù)流組成:數(shù)據(jù)結構。 每個數(shù)據(jù)量流通量:數(shù)據(jù)量、流通量。,(1) 數(shù)據(jù)流詞條的描述,數(shù)據(jù)流名:發(fā)票 說明:用作學生已付書款的依據(jù) 數(shù)據(jù)流來源:來自加工

51、“審查并開發(fā)票” 數(shù)據(jù)流去向:流向加工“開領書單”。 數(shù)據(jù)流組成:學號+姓名+書號+單價總價+書費合計,2024/4/1,107,數(shù)據(jù)元素名: 類型:數(shù)字(離散值、連續(xù)值),文字(編碼類型) 長度: 取值范圍: 相關的數(shù)據(jù)元素及數(shù)據(jù)結構,(2) 數(shù)據(jù)元素詞條的描述,2024/4/1,108,(3) 數(shù)據(jù)文件詞條的描述,數(shù)據(jù)文件名: 簡述:存放的是什么數(shù)據(jù)。 輸入數(shù)據(jù):

52、 輸出數(shù)據(jù): 數(shù)據(jù)文件組成:數(shù)據(jù)結構。 存儲方式:順序,直接,關鍵碼。 存取頻率: … …,2024/4/1,109,——各班學生用書表,名字:各班學生用書表 數(shù)據(jù)文件別名:描述:由系提供的準確姓名的數(shù)字定義:各班學生用書表={系編號+專業(yè)和班編號+年級+{書號}}位置:各班學生用書表以數(shù)據(jù)庫的形式存放在磁盤中備注:按系、專業(yè)和班編號從小到大排列,2024/4/1,

53、110,加工名: 加工編號:反映該加工的層次 簡要描述:加工邏輯及功能簡述 輸入數(shù)據(jù)流: 取值范圍: 相關的數(shù)據(jù)元素及數(shù)據(jù)結構 … …,(4) 加工邏輯詞條的描述,2024/4/1,111,名稱:外部實體名 簡要描述:什么外部實體 有關數(shù)據(jù)流: 數(shù)目:,(5) 外部實體詞條描述,2024/4/1,112,2、數(shù)據(jù)字典定義符

54、號,=,被定義為,+,與,[ ],x=a+b,則表示 x 由 a 和 b 組成,x=[a,b],則表示 x 由 a 或由 b 組成,{ },或,重復,x={a},則表示 x 由 0個或多個 a 組成,( ),可選,表示在兩個 * 之間的內(nèi)容為詞條的注釋,m{ }n,重復,x=3{a}8,則表示x中至少出現(xiàn)3次a ,最多出現(xiàn)8次,*…*,注釋符,x=(a),則表示 a 在 x 中出現(xiàn), 也可不出現(xiàn),2024/4/1,113,存折

55、格式,2024/4/1,114,存折=戶名+所號+帳號+開戶日+性質(zhì)+(印密)+1{存取行}50戶名=2{字母}24所號=“001”..“999” 帳號=“00000001”..“99999999”開戶日=年+月+日性質(zhì)=“1”..“6” 注:“1”表示普通戶,“5”表示工資戶等印密=“0” 注:印密在存折上不顯示存取行=日期+(摘要)+支出+存入+余額+操作+復核,2024/4/1,115,請為下列給出的 DFD

56、 圖編寫 DD,2024/4/1,116,,對數(shù)據(jù)流圖的每一個基本加工,必須有一個基本加工邏輯說明基本加工邏輯說明必須描述基本加工如何把輸入數(shù)據(jù)流變換為輸出數(shù)據(jù)流的加工規(guī)則,3、基本加工邏輯說明,2024/4/1,117,加工邏輯說明必須描述實現(xiàn)加工的策略而不是實現(xiàn)加工的細節(jié)加工邏輯說明中包含的信息應是充足的,完備的,有用的,沒有重復的多余信息,2024/4/1,118,用于寫加工邏輯說明的工具,? 結構化英語? 判定表? 判定

57、樹,2024/4/1,119,(1)結構化英語,結構化英語的詞匯表由 英語命令動詞 數(shù)據(jù)詞典中定義的名字 有限的自定義詞 邏輯關系詞 IF_THEN_ELSE、 CASE_OF 、 WHILE_DO、 REPEAT_UNTIL等組成。,2024/4/1,120,是一種介于自然語言和形式化語言之間的語言語言的正文用基本控制結構進行分割,加工中的操作用自然語言短語來表示其基本控制結構有三種:簡單陳述

58、句結構:避免復合語句;重復結構:WHILE_DO 或 REPEAT_UNTIL結構。判定結構:IF_THEN_ELSE 或 CASE_OF結構;,2024/4/1,121,商店業(yè)務處理系統(tǒng)中“檢查發(fā)貨單”,IF 發(fā)貨單金額超過$500 THEN IF 欠款超過了60天 THEN 在償還欠款前不予批準

59、ELSE (欠款未超期) 發(fā)批準書,發(fā)貨單 ENDIFELSE (發(fā)貨單金額未超過$500) IF 欠款超過60天 THEN 發(fā)批準書,發(fā)貨單及賒欠報告ELSE (欠款未超期) 發(fā)批準書,發(fā)貨單 ENDIFENDIF,2024/4/1,122,(2)判定表,如果數(shù)據(jù)流圖的加工需要依賴于多個邏輯條件的取值,使用判

60、定表來描述比較合適 即:如果加工的一組動作是由于某一組條件取值的組合而引發(fā),2024/4/1,123,列出各種條件組合,指出在各種條件取值下的相應動作,條件類別,2024/4/1,124,以“檢查發(fā)貨單”為例,判定表舉例 (計算機票折扣率),,,旅游時間,訂 票 量,折 扣 量,,,,,7-9,12月,,,≤20,≤20,> 20,> 20,15%,5%,20%,30%,條件類別,,,,四種條件組合,,操作,,,,條

61、件組合下操作的執(zhí)行,,1-6,10,11月,,2024/4/1,126,(3)判定樹,判定樹也是用來表達加工邏輯的一種工具。有時侯它比判定表更直觀。,?,2024/4/1,127,3.6 原型化方法,在開發(fā)初期,要想得到一個完整準確的規(guī)格說明不是一件容易的事。特別是對一些大型的軟件項目。用戶往往對系統(tǒng)只有一個模糊的想法,很難完全準確地表達對系統(tǒng)的全面要求。,2024/4/1,128,軟件開發(fā)者對于所要解決的應用問題認識更是模糊不清隨

62、著開發(fā)工作向前推進,用戶可能會產(chǎn)生新的要求,或因環(huán)境變化,要求系統(tǒng)也能隨之變化;開發(fā)者又可能在設計與實現(xiàn)的過程中遇到些沒有預料到的實際困難,需要以改變需求來解脫困境。,2024/4/1,129,因此規(guī)格說明難以完善、需求的變更、以及通信中的模糊和誤解,都會成為軟件開發(fā)順利推進的障礙。為了解決這些問題,逐漸形成了軟件系統(tǒng)的快速原型的概念。,2024/4/1,130,快速原型法的基本思想:當我們獲得一組基本需求說明后,通過快速分析構造出一

63、個小型的軟件系統(tǒng),滿足用戶的基本要求。使得用戶可在試用原型系統(tǒng)的過程中得到親身感受和受到啟發(fā),以做出反映和評價,然后開發(fā)者根據(jù)用戶的意見對原型加以改進。隨著不斷試驗、糾錯、使用、評價和修改,獲得新的原型版本,如此的周而復始,逐步減少分析和和通信中的誤解,從而提高了最終產(chǎn)品的質(zhì)量。,2024/4/1,131,2024/4/1,132,軟件原型的分類,在軟件開發(fā)中,原型是軟件的一個早期可運行的版本,它反映最終系統(tǒng)的部分重要特性。 探索型:

64、目的是要弄清對目標系統(tǒng)的要求,確定所希望的特性,并探討多種方案的可行性。,2024/4/1,133,實驗型:這種原型用于大規(guī)模開發(fā)和實現(xiàn)之前,考核方案是否合適,規(guī)格說明是否可靠。 進化型:這種原型的目的不在于改進規(guī)格說明,而是將系統(tǒng)建造得易于變化,在改進原型的過程中,逐步將原型進化成最終系統(tǒng)。,2024/4/1,134,原型使用策略,廢棄策略 先構造好一個功能簡單的而且質(zhì)量要求不高的模型系統(tǒng),然后進行分析修改,形成較好的

65、設計思想,據(jù)此設計出完整、準確、一致、可靠的系統(tǒng)。 原來的系統(tǒng)廢棄。探索型和實驗型原型 追加策略 先構造好一個功能簡單的而且質(zhì)量要求不高的模型系統(tǒng),以此為核心進行追加擴充得到最終的系統(tǒng)。,2024/4/1,135,建立快速原型,進行系統(tǒng)的分析和構造的好處:,增進軟件者和用戶對系統(tǒng)服務需求的理解,使比較含糊的具有不確定性的軟件需求(主要是功能)明確化。軟件原型化方法提供了一種有力的學習手段。,2024/4/1,136,使用原型化

66、方法,可以容易地確定系統(tǒng)的性能,確認各項主要系統(tǒng)服務的可應用性,確認系統(tǒng)設計的可行性,確認系統(tǒng)作為產(chǎn)品的結果。 軟件原型的最終版本,有的可以原封不動地成為產(chǎn)品,有的略加修改就可以成為最終系統(tǒng)的一個組成部分,這樣有利于建成最終系統(tǒng)。,2024/4/1,137,原型法的缺點用戶有時誤解了原型的角色,例如他們可能誤解原形應該和真實系統(tǒng)一樣可靠缺少項目標準,進化原型法有點像編碼修正缺少控制,由于用戶可能不斷提出新要求,因而原型迭代的周期

67、很難控制額外的花費:研究結果表明構造一個原型可能需要10%額外花費運行效率可能會受影響原型法要求開發(fā)者與用戶密切接觸,有時這是不可能的。例如外包軟件。,2024/4/1,138,,在軟件生存期的任何階段都引入快速原型開發(fā)過程。,2024/4/1,139,3.7 補充:有關數(shù)據(jù)庫的基本概念,3.7.1 基本概念在軟件系統(tǒng)中需要處理的數(shù)據(jù)是現(xiàn)實世界中存在的事物及其聯(lián)系的反映。人們通常將與數(shù)據(jù)處理有關的的領域分為三個世界: 現(xiàn)實

68、世界 信息世界 數(shù)據(jù)世界,2024/4/1,140,現(xiàn)實世界是存在于人們頭腦之外的客觀世界,現(xiàn)實世界中的事物可分成對象和性質(zhì)兩大類。對象可以是人、是物,還可以是實際的東西或概念的東西,例如,大學、城市等。對象還可以指事物與事物間的聯(lián)系。性質(zhì)則是指事物的性質(zhì)或特征。,2024/4/1,141,信息世界也叫做觀念世界,是現(xiàn)實世界在人們頭腦中的反映??陀^世界中的事物在信息世界中叫做實體,反映事物之間聯(lián)系的叫做實體模型。實體是由若干

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論