版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第二章可行性研究2.1可行性研究的任務2.2可行性研究過程2.3系統(tǒng)流程圖2.4數據流圖2.5數據字典2.6成本/效益分析第二章可行性研究2.1可行性研究的任務1可行性研究開發(fā)一個基于計算機的系統(tǒng)通常都受到資源(人力、財力、設備等)和時間上的限制,可行性分析主要從經濟、技術、法律等方面分析所給出的解決方案是否可行,能否在規(guī)定的資源和時間的約束下完成??尚行匝芯块_發(fā)一個基于計算機的系統(tǒng)通常都受到資源(人力、財力2開始問題定義可性行研究可行否?項目實施計劃終止項目的建議結束YN問題的定義與可性行研究Who
為誰設計,用戶是誰?What
要解決哪些問題?Why
為什么要解決這些問題
有用的軟件
3W開始問題定義可性行研究可行否?項目實施計劃終止項目的建議Y3可行性研究目的:用最小的代價在盡可能短的時間內確定問題是否能夠解決。不是解決問題,而是確定問題是否值得去解決??尚行匝芯磕康模?可行性研究的目的說明該軟件開發(fā)項目的實現在技術上、經濟上和社會條件上的可行性;評述為合理地達到開發(fā)目標可能選擇的各種方案。
(GB8567-88《計算機軟件產品開發(fā)文件編制指南》)可行性研究的目的說明該軟件開發(fā)項目的實現在技術上、經濟52.1可行性研究的任務GB8566-88《計算機軟件開發(fā)規(guī)范》中指出:
可行性研究的主要任務是“了解客戶的要求及現實環(huán)境,從技術、經濟和社會因素等三方面研究并論證本軟件項目的可行性,編寫可行性研究報告,制定初步項目開發(fā)計劃?!笨尚行匝芯康淖罡救蝿帐牵簩σ院蟮男袆臃结樚岢鼋ㄗh。2.1可行性研究的任務GB8566-88《計算機軟件6可行性研究的內容(1)技術可行性(2)經濟可行性(3)操作可行性(4)社會可行性(法律可行性)(5)抉擇可行性研究的內容(1)技術可行性7經濟可行性度量系統(tǒng)解決方案的性能價格比??紤]的問題:成本/效益分析(開發(fā)、運行的成本/效益)有形成本、效益無形成本、效益價值和成本的關系質量與價值、成本的關系價值/成本的均衡經濟可行性度量系統(tǒng)解決方案的性能價格比。8技術可行性分析技術可行性主要根據系統(tǒng)的功能、性能、約束條件等,分析在現有資源和技術條件下系統(tǒng)能否實現。技術可行性分析通常包括風險分析、資源分析和技術分析。技術可行性分析技術可行性主要根據系統(tǒng)的功能、性能、約束條件等9風險分析:分析在給定的約束條件下設計和實現系統(tǒng)的風險。采用不成熟的技術可能造成技術風險人員流動可能給項目帶來風險成本和人員估算不合理造成的預算風險風險分析的目的是找出風險,評價風險的大小,并有效地控制和緩解風險。風險分析:分析在給定的約束條件下設計和實現系統(tǒng)的風險。10資源分析:論證是否具備系統(tǒng)開發(fā)所需的各類人員、軟件、硬件等資源和相應的工作環(huán)境。例如,有一支開發(fā)過類似項目的開發(fā)和管理的團隊,或者開發(fā)人員比較熟悉系統(tǒng)所處的領域,并有足夠的人員保證,所需的硬件和支撐軟件能通過合法的手段獲取,那么從資源角度看,可以認為具備設計和實現系統(tǒng)的條件。資源分析:論證是否具備系統(tǒng)開發(fā)所需的各類人員、軟件、硬件等資11技術分析:分析當前的科學技術是否支持系統(tǒng)開發(fā)的各項活動。在技術分析過程中,分析員收集系統(tǒng)的性能、可靠性、可維護性和生產率方面的信息,分析實現系統(tǒng)功能、性能所需的技術、方法、算法或過程,從技術角度分析可能存在的風險,以及這些技術問題對成本的影響。技術可行性分析時通常需進行系統(tǒng)建模,必要時可建造原型和進行系統(tǒng)模擬技術分析:分析當前的科學技術是否支持系統(tǒng)開發(fā)的各項活動。12社會可行性(法律可行性)
開發(fā)項目是否會在社會上或政治上引起侵權、破壞或其它責任問題。社會可行性(法律可行性)開發(fā)項目是否會在社會上或政治上13法律可行性分析研究系統(tǒng)開發(fā)過程中可能涉及到的合同、侵權、責任以及各種與法律相抵觸的問題。1990年我國頒布了《中華人民共和國著作權法》,其中將計算機軟件作為著作權法的保護對象。1991年國務院頒布了《計算機軟件保護條例》。這兩個法律文件是法律可行性分析的主要依據。法律可行性分析研究系統(tǒng)開發(fā)過程中可能涉及到的合同、侵權、責任14操作可行性用戶使用可能性時間進度可行性組織和文化上的可行性操作可行性用戶使用可能性15方案的選擇和折衷一個基于計算機的系統(tǒng)可以有多個可行的實現方案,每個方案對成本、時間、人員、技術、設備都有不同的要求,不同方案開發(fā)出來的系統(tǒng)在功能、性能方面也會有所不同。因此要在多個可行的實現方案中作出選擇。方案評估的依據是待開發(fā)系統(tǒng)的功能、性能、成本、開發(fā)時間、采用的技術、設備、風險以及對開發(fā)人員的要求等。由于系統(tǒng)的功能和性能受到多種因素的影響,某些因素之間相互關聯(lián)和制約。如,為達到高的精度就可能導致長的執(zhí)行時間,為達到高可靠性就會導致高的成本等等。因此,在必要時應進行折衷。方案的選擇和折衷一個基于計算機的系統(tǒng)可以有多個可行的實現方案16可行性分析的結論可以立即開始進行需要推遲到某些條件(例如資金、人力、設備等)落實之后才能開始進行需要對開發(fā)目標進行某些修改之后才能開始進行因為某種原因(如,技術不成熟、經濟上不合算等)不能進行可行性分析的結論可以立即開始進行172.2可行性研究過程1.復查系統(tǒng)規(guī)模和目標2.研究目前正在使用的系統(tǒng)3.導出新系統(tǒng)的高層邏輯模型4.進一步定義問題5.導出和評價供選擇的解法6.推薦行動方針7.草擬開發(fā)計劃8.書寫文檔提交審查2.2可行性研究過程1.復查系統(tǒng)規(guī)模和目標182.3系統(tǒng)流程圖系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。作用:以概括的形式描述現有的和未來的系統(tǒng)。它的基本思想是用圖形符號以黑盒子形式描繪組成系統(tǒng)的每個部件(程序,文檔,數據庫,人工過程等)。系統(tǒng)流程圖表達的是數據在系統(tǒng)各部件之間流動的情況,而不是對數據進行加工處理的控制過程,因此盡管系統(tǒng)流程圖的某些符號和程序流程圖的符號形式相同,但是它卻是物理數據流圖而不是程序流程圖。2.3系統(tǒng)流程圖系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具19基本符號
----以概括的方式抽象地描繪一個實際系統(tǒng)所用符號基本符號
----以概括的方式抽象地描繪一個實際系統(tǒng)20
---具體地描繪一個物理系統(tǒng)所用符號系統(tǒng)符號---具體地描繪一個物理系統(tǒng)所用符號21舉例----計算機售書系統(tǒng)流程圖結束學生購書發(fā)票到書庫領書購書單終端審查并開發(fā)票11---學生各學期用書數據庫購書單22---教材存量數據庫舉例----計算機售書系統(tǒng)流程圖結束學生購書發(fā)票到書庫22
2.4
數據流圖DFD----DataFlowDiagram
是分析員和用戶溝通的工具,是設計的出發(fā)點一種圖形化技術,它描繪信息流和數據從輸入移動到輸出的過程中所經受的變換。在數據流圖中沒有任何具體的物理部件,它只是描繪數據在軟件中流動和被處理的邏輯過程,是系統(tǒng)邏輯功能的圖形表示。數據流圖從數據傳遞和加工的角度出發(fā),刻畫數據流從輸入到輸出的移動和變換過程。由于它能夠清晰地反映系統(tǒng)必須完成的邏輯功能,所以它已經成為需求分析階段中功能建模最常用的工具。2.4數據流圖DFD----DataFlow23
數據流圖四種基本符號數據加工(數據變換)數據源點或終點(外部實體)數據流數據存儲文件或或或數據流圖四種基本符號數據加工(數據變換)數據源點或終24圖5工資計算系統(tǒng)的頂層(0層)數據流圖返回圖5工資計算系統(tǒng)的頂層(0層)數據流圖返回25
1.數據的源點或終點數據的源點或終點用于反映數據流圖與外部實體之間的聯(lián)系,表示圖中的輸入數據來自哪里或處理結果送向何處。如圖中的人事部門、后勤部門是工資系統(tǒng)中數據的源點,而職工和銀行則是工資系統(tǒng)中數據的終點。1.數據的源點或終點26
2.數據流數據流是數據在系統(tǒng)中(包括數據處理之間、數據處理和數據存儲之間以及數據處理和數據的源點或終點之間)的傳送通道,數據流符號的箭頭指明了數據的流動方向。如圖中的出勤表、業(yè)績表、水電扣款表、工資條及工資存款清單等均為數據流。在數據流圖中,除了連接加工和數據存儲的數據流以外,其他的數據流在圖中都對應一個惟一的名字。2.數據流27
3.加工加工也稱為數據處理,是對系統(tǒng)中的數據流進行的某些操作或變換。圖中每個加工都要有對應的名稱,最常見的名稱是由一個表明具體動作的動詞和一個表明處理對象的名詞構成的,如計算應發(fā)工資、打印工資清單等。
4.數據存儲在數據流圖中用于保存數據的數據文件被稱為數據存儲,它可以是數據庫文件或任何其他形式的數據組織。流向數據存儲的數據流可理解為向文件寫入數據或對文件進行查詢,流出數據存儲的數據流可理解為從文件中讀取數據或得到查詢結果。3.加工28數據流與加工之間的關系在數據流圖中,可以有兩個以上的數據流進入同一個加工,也可以有兩個以上的數據流從同一個加工中流出,這樣的多個數據流之間往往存在一定的關系。為了表示這些數據流之間的關系,需要在數據流圖中給這些數據流對應的加工加上一定的標記符號。在下表中列出了加工中常見的幾種關系的表示方法。(表中以從加工流入或流出兩個數據流為例)。數據流與加工之間的關系29數據流圖幾種附加符號數據流圖幾種附加符號30數據流圖的層次結構為了表達數據處理過程的數據加工情況,需要采用層次結構的數據流圖。按照系統(tǒng)的層次結構進行逐步分解,并以分層的數據流圖反映這種結構關系,能清楚地表達和容易理解整個系統(tǒng)。數據流圖的層次結構為了表達數據處理過程的數據加工情況,需要采31面對復雜的系統(tǒng)----分層描繪首先用一張高層次的數據流圖描繪系統(tǒng)總體概貌,表明系統(tǒng)的關鍵功能。然后分別把每個關鍵功能擴展到適當的詳細程度,畫在單獨的一頁紙上。這種分層次的描繪方法便于閱讀者按從抽象到具體的過程逐步深入地了解一個復雜的系統(tǒng)。面對復雜的系統(tǒng)----分層描繪首先用一張高層次的數32數據流模型的建立方法
對于一個復雜的系統(tǒng)來說,可能存在著幾十個甚至成百上千個加工,若要在一個數據流圖中清楚地描述出整個系統(tǒng)加工的過程是很困難的,而采用對數據流圖進行分層的方法則可以很好地解決這個問題。按照結構化分析方法中“自頂向下,逐步分解”的思想,可以先將整個系統(tǒng)看作是一個加工,它的輸入數據和輸出數據表明了系統(tǒng)和外部環(huán)境的接口,從而首先畫出系統(tǒng)的頂層數據流圖。數據流模型的建立方法33為了能夠清楚地表明系統(tǒng)加工的詳細過程,接著從頂層數據流圖出發(fā),逐層地對系統(tǒng)進行分解。每分解一次,系統(tǒng)中加工的數量就隨之增加,每個加工的功能描述也越來越具體。重復這種分解,直至得到系統(tǒng)的底層數據流圖。底層數據流圖中的所有加工都應是不可再分解的、最簡單的“原子加工”。通過分解過程中得到的這一組分層數據流圖(由頂層、中間層和底層數據流圖共同構成)就可以十分清晰地描述出整個系統(tǒng)所有加工的詳細情況。為了能夠清楚地表明系統(tǒng)加工的詳細過程,接著從頂層數據流圖出發(fā)34分層的數據流圖分層的數據流圖35下面以某單位工資管理系統(tǒng)為例,來介紹一下分層數據流模型的建立方法。1.建立頂層數據流圖任何系統(tǒng)的頂層數據流圖都只有一個,用于反映目標系統(tǒng)所要實現的功能及與外部環(huán)境的接口。頂層數據流圖中只有一個代表整個系統(tǒng)的加工,數據的源點和終點對應著系統(tǒng)的外部實體,表明了系統(tǒng)輸入數據的來源和輸出數據的去向。工資管理系統(tǒng)的頂層數據流圖如圖5所示。下面以某單位工資管理系統(tǒng)為例,來介紹一下分層數據流模36
2.數據流圖的分層細化首先按照系統(tǒng)的功能,對頂層數據流圖進行分解,生成第一層數據流圖。如例子中的工資計算系統(tǒng)可劃分為計算工資、打印工資清單和工資轉存三個加工。其中,計算工資完成單位職工工資計算,生成工資清單的功能;打印工資清單完成工資條的打印功能;工資轉存完成生成職工工資存款清單并將其發(fā)送到銀行的功能。對劃分得到的加工應進行編號,此外,在標出數據流和劃分加工的同時,還要在圖中畫出涉及的數據存儲。2.數據流圖的分層細化37圖6工資計算系統(tǒng)第一層數據流圖圖6工資計算系統(tǒng)第一層數據流圖38對第一層數據流圖中的加工繼續(xù)分解,則可得到第二層數據流圖,如圖7所示。若數據流圖中的加工還可繼續(xù)細化,則重復以上分解過程,直到獲得系統(tǒng)的底層數據流圖。工資計算系統(tǒng)的第三層數據流圖如圖8所示。對第一層數據流圖中的加工繼續(xù)分解,則可得到第二層數據39圖7工資計算系統(tǒng)的第二層數據流圖(a)“計算工資”子數據流圖;(b)“工資轉存”子數據流圖圖7工資計算系統(tǒng)的第二層數據流圖40圖8工資計算系統(tǒng)的第三層數據流圖圖8工資計算系統(tǒng)的第三層數據流圖41建立數據流模型的原則建立數據流模型要遵循以下的原則:(1)每個加工至少應有一個輸入數據流(反映被處理數據的來源)和一個輸出數據流(反映加工的結果)。(2)數據流圖中各構成元素的名稱必須具有明確的含義且能夠代表對應元素的內容或功能。(3)對數據流圖中某個加工進行細化生成的下層數據流圖,稱為其上層圖的子圖。應保證分層數據流圖中任意對應的父圖和子圖的輸入/輸出數據保持一致。
建立數據流模型的原則42(4)在數據流圖中,應按照層次給每個加工編號,用于表明該加工所處的層次及上、下層的父圖與子圖的關系。編號的規(guī)則為:頂層加工不用編號;第二層加工的編號為1,2,…,n;第三層加工的編號為1.1,1.2,…,2.1,…,n.1,n.2,…等,依次類推。如編號1.2表明該加工處于第三層數據流圖中,序號為2,該圖是對上層數據流圖中編號為1的加工進行細化得到的子圖。(5)在父圖中不要出現子圖中涉及的局部數據存儲文件。通常除底層數據流圖中需標明所有數據存儲外,為了保持畫面的整潔,各中間層數據流圖只需顯示處于加工之間的接口文件即可。(4)在數據流圖中,應按照層次給每個加工編號,用于43(6)數據流圖只能由四種基本符號組成,是實際業(yè)務流程的客觀映象,用于說明系統(tǒng)應該“做什么”,而不需要指明系統(tǒng)“如何做”。(7)數據流圖的分解速度應保持適中。通常一個加工每次可分解為2~4個子加工,最多不要超過七個,因為過快的分解會增加用戶對系統(tǒng)模型理解的難度。
(6)數據流圖只能由四種基本符號組成,是實際業(yè)務流程44.便于實現.便于使用---采用逐步細化的擴展方法,可避免一次引入過多的細節(jié),有利于控制問題的復雜度;
---用一組圖代替一張總圖,方便用戶及
軟件開發(fā)人員閱讀。分層DFD圖的優(yōu)點.便于實現.便于使用---采用逐步細化的擴展方法,45舉例1、電梯控制系統(tǒng)(見書P71-74)2、學生購買教材系統(tǒng)舉例1、電梯控制系統(tǒng)(見書P71-74)46畫數據流圖的步驟1、先找出系統(tǒng)的數據源點與終點。(它們是外部實體,由它們來確定系統(tǒng)與外界的接口)
2、是畫頂層圖。通常把整個系統(tǒng)當作一個大的加工,并標明系統(tǒng)的輸入與輸出,以及數據的源點與終點。系統(tǒng)從學生接受購書單,經處理后把領書單返回給學生,使學生可憑領書單到書庫領書。對脫銷的教材,系統(tǒng)則用缺書單的形式通知給書庫;新書進庫后也由書庫將進書通知返回給系統(tǒng)。
3、畫分層DFD圖:把系統(tǒng)分解為銷售和采購兩大加工。如圖所示,顯然,外部項學生應與銷售子系統(tǒng)聯(lián)系,保管員應與采購子系統(tǒng)聯(lián)系。且兩個子系統(tǒng)之間也存在兩項數據聯(lián)系:其一是缺書登記表,由銷售子系統(tǒng)把脫銷的教材傳給采購子系統(tǒng);其二是進書通知,直接由采購子系統(tǒng)將教材入庫信息通知銷售子系統(tǒng)。同時,對于銷售子系統(tǒng)來說,它還需要對教材存量表進行操作,即對售出的教材要在原存量中減去售出的數量,而對于新購的教材還要寫到教材存量表中,所以該文件執(zhí)行的讀寫操作,應用雙箭頭表示。學生教材購銷系統(tǒng)購書單領書單缺書單進書通知保管員第1
層外部實體外部實體進書通知1銷售購書單領書單學生缺書單進書通知2采購保管員第2
層教材存量表F1缺書登記表F2畫數據流圖的步驟1、先找出系統(tǒng)的數據源點與終點。47 繼續(xù)分解,就可以獲得第三層的數據流圖。我們可以從第1層的銷售子系統(tǒng)擴展而成: 繼續(xù)分解,就可以獲得第三層的數據流圖。我們可以從第1層的銷48教材銷售子系統(tǒng)無效書單購書單1.3登記并開領書單1.2開發(fā)票1.1審查有效性1.4登記缺書1.5補售教材采購學生學生進書通知有效書單發(fā)票領書單暫缺書單1銷售購書單領書單缺書單進書通知2采購進書通知缺書登記表教材存量表學生保管員第2
層補售書單第3層教材存量表F1缺書登記表F2
F1書號單價數量各班用書表F3售書登記表F4審查有效性時,首先要核對購書單上的內容是否與學生用書表F3相符,還要通過售書登記F4檢查學生已否購買過這些教材。若發(fā)現購書單中有學生不用或買重了的教材,便發(fā)出無效書單。只有將通過了審查的教材保留在有效構書單中。開發(fā)票加工符號,按購書單的內容查對教材存量表(F1),把可供應的教材寫入發(fā)票,在F4中登記后開領書單并發(fā)給學生。對數量不足或全缺的教材寫入暫缺書單并登記到缺書登記表(F2)中,等待接到進書通知后再補售給學生。補售的手續(xù)及數據流圖和第一次購書相同。請大家注意,在上一層DFD中,采購是系統(tǒng)內部的一個加工符號,但本圖卻是處于銷售子系統(tǒng)之外的一個外部實體。從圖中可以看出,該銷售子系統(tǒng)將被分解為5個子加工,編號從1.1----1.5,涉及到4個數據文件,分別用F1—F4來表示。外部項教材銷售子系統(tǒng)無效書單購書單1.31.21.11.41491銷售購書單領書單缺書單進書通知2采購進書通知缺書登記表教材存量表學生保管員第2層第3
層缺書單2.3修改教材庫存和待購量銷售進書通知進書通知保管員教材存量表F1待購教材表F5教材一覽表F6由銷售子系統(tǒng)建立起來的缺書登記表,首先按書號匯總后登入待購教材表,然后再按出版社分別統(tǒng)計制成缺書單并送給書庫保管員作為采購教材的依據。另外,在匯總缺書要再次核查教材存量表,而且,分出版社統(tǒng)計時還要參閱教材一覽表,從該文件中可以知道這些缺書是何處出版的。新書入庫后,要及時修改教材存量表和待購教材表中的有關教材數量,同時把進書信息通知銷售子系統(tǒng),使銷售人員能通知缺書的學生補售教材。2.2按出版社統(tǒng)計缺書2.1按書號匯總缺書缺書登記表F2采購子系統(tǒng)
1購書單領書單缺書單進書通知2進書通知缺書登記表教材存量表學50
從圖中可以看出,該采購子系統(tǒng)將被分解為3個子加工,編號從2.1----2.3,涉及到4個數據文件,分別用F1,F2和F5,F6。以上三層、4張的DFD圖,一起組成了教材購銷系統(tǒng)的分層DFD圖。從分析中大家可以得知,愈到下層,加工愈細。第三層就有8個加工。大都是足夠簡單的---基本加工,可以不用再進行分解了。從圖中可以看出,該采購子系統(tǒng)將被分解為3個子加工51
1)
為數據流(或數據存儲)命名(1)名字應代表整個數據流(或數據存儲)的內容,而不是僅僅反映它的某些成分。(2)不要使用空洞的、缺乏具體含義的名字(如“數據”、“信息”、“輸入”之類)。(3)如果在為某個數據流(或數據存儲)起名字時遇到了困難,則很可能是因為對數據流圖分解不恰當造成的,應該試試重新分解,看是否能克服這個困難。畫分層DFD的指導原則1.注意數據流圖中成分的命名1)為數據流(或數據存儲)命名畫分層DFD的指導原則522)
為處理命名(1)通常先為數據流命名,然后再為與之相關聯(lián)的處理命名。這樣命名比較容易,而且體現了人類習慣的“由表及里”的思考過程。(2)名字應該反映整個處理的功能,而不是它的一部分功能。(3)名字最好由一個具體的及物動詞加上一個具體的賓語組成。應該盡量避免使用“加工”、“處理”等空洞籠統(tǒng)的動詞作名字。(4)通常名字中僅包括一個動詞,如果必須用兩個動詞才能描述整個處理的功能,則把這個處理再分解成兩個處理可能更恰當些。(5)如果在為某個處理命名時遇到困難,則很可能是發(fā)現了分解不當的跡象,應考慮重新分解。畫分層DFD的指導原則1.注意數據流圖中成分的命名2)為處理命名畫分層DFD的指導原則53畫分層DFD的指導原則2.注意父圖和子圖的平衡:所謂的平衡,就是指父圖和子圖的輸入和輸出數據應分別保持一致。
發(fā)票1.3開領書單領書單(a)父圖1.3.1學生領書單1.3.21.3.3教材(a)子圖畫分層DFD的指導原則發(fā)票1.3領書單(a)父圖1.54
畫分層DFD的指導原則3.區(qū)分局部文件和局部外部項1銷售購書單領書單缺書單進書通知2采購進書通知缺書登記表教材存量表學生保管員采購子系統(tǒng)
第2層第3
層缺書單2.3修改教材庫存和待購量銷售進書通知進書通知2.1按書號匯總缺書2.2按出版社統(tǒng)計缺書保管員教材存量表F1待購教材表F5教材一覽表F6缺書登記表F2局部外部項局部文件畫分層DFD的指導原則1購書單領書單缺書單進書通知2進55畫分層DFD的指導原則
4.掌握分解的速度一般來說,每一個加工每次可分為2-4個子加工,最多不得超過7個。5.遵守加工編號規(guī)則頂層加工不編號。第二層的加工編號為1,2,3,…,n號。第三層編號為1.1,1.2,1.3…n.1,n.2…等號,依此類推。畫分層DFD的指導原則4.掌握分解的速度一562.5數據字典
----DD(DataDictionary)
數據流圖和數據字典共同構成系統(tǒng)的邏輯模型,沒有數據字典數據流圖就不嚴格,然而沒有數據流圖數據字典也難于發(fā)揮作用。數據字典的任務是:對于數據流圖中出現的所有被命名的圖形元素在字典中作為一個詞條加以定義,使得每一個圖形元素的名字都有一個確切的解釋。2.5數據字典
--57數據字典的內容一般說來,數據字典應該由下列4類元素的定義組成:(1)數據流(2)數據流分量(即數據元素)(3)數據存儲(4)處理數據字典的內容一般說來,數據字典應該由58數據流名:說明:簡要介紹作用,即它產生的原因和結果。數據流來源:即該數據流來自何方。數據流去向:去向何處。數據流組成:數據結構。每個數據量流通量:數據量、流通量。(1)數據流詞條的描述
數據流名:發(fā)票說明:用作學生已付書款的依據數據流來源:來自加工“審查并開發(fā)票”數據流去向:流向加工“開領書單”。數據流組成:學號+姓名+書號+單價/總價+書費合計審查并開發(fā)票發(fā)票購書單
數據流名:(1)數據流詞條的描述數據流名59數據元素名:類型:數字(離散值、連續(xù)值),文字(編碼類型)長度:取值范圍:相關的數據元素及數據結構
(2)
數據元素詞條的描述
年=“1900”..“3000”月=“01”..“12”日=“01”..“31”摘要=1{字母}4金額=“00000000.01”..“999999999.99”……數據元素名:(2)數據元素詞條的描述年60(3)數據文件詞條的描述
數據文件名:簡述:存放的是什么數據。輸入數據:輸出數據:數據文件組成:數據結構。存儲方式:順序,直接,關鍵碼。存取頻率:
…
…審查并開發(fā)票學生發(fā)票購書單各班學生用書表教材存量表(3)數據文件詞條的描述數據文件名:審查61
加工名:加工編號:反映該加工的層次簡要描述:加工邏輯及功能簡述輸入數據流:取值范圍:相關的數據元素及數據結構
…
…(4)
加工邏輯詞條的描述
1.3審查并開發(fā)票學生發(fā)票購書單各班學生用書表教材存量表加工名:(4)加工邏輯詞條的描述1.362
名稱:外部實體名簡要描述:什么外部實體有關數據流:數目:(5)外部實體詞條描述
1銷售購書單領書單缺書單進書通知2采購進書通知缺書登記表教材存量表學生保管員名稱:外部實體名(5)外部實體詞條描述63數據字典定義符號符號含義例子
=被定義為+與[]x=a+b,則表示x
由a和
b
組成x=[a,b],則表示x
由a或由
b
組成{}或重復x={a},則表示x
由0個或多個a組成()可選
表示在兩個*
之間的內容為詞條的注釋m{}n重復x=3{a}8,則表示x中至少出現3次a,最多出現8次*…*注釋符
x=(a),則表示a在x中出現,也可不出現數據字典定義符號符號含義例子64例:存折格式例:存折格式65日期(年月日)摘要支出存入余額操作復核戶名:所號:帳號:開戶日:性質:印密:存折=戶名+所號+帳號+開戶日+性質+(印密)+1{存取行}20戶名=2{字母}24所號=“001”..“999”帳號=“00000001”..“99999999”開戶日=年+月+日性質=“1”..“6”注:“1”表示普通戶,…“6”表示工資戶等印密=“0”注:印密在存折上不顯示存取行=日期+(摘要)+支出+存入+余額+操作+復核日期=年+月+日年=“1900”..“3000”月=“01”..“12”日=“01”..“31”摘要=1{字母}4支出=金額金額=“00000000.01”..“999999999.99”……日期(年月日)摘要支出存入余額操作復核戶名:所號:帳號:開66數據字典的建立1.建立數據字典的方法(1)手工建立。分別將數據字典中每一個條目按照規(guī)定的格式寫在卡片上,由專人負責管理和維護。為了便于查找,通??蓪⒖ㄆ诸悾礂l目的名稱或編號進行排序。(2)自動建立。利用現有的數據字典建立程序,通過按照指定格式輸入各類條目的內容,由計算機自動建立相應的數據字典。且通常這類工具軟件還能夠對建立好的數據字典進行完整性、一致性檢查,以及進行日常的管理和維護工作。如由美國密執(zhí)安大學開發(fā)的PSL/PSA系統(tǒng)就是這類軟件的杰出代表。數據字典的建立672.建立數據字典的原則(1)所有定義必須嚴密、精確,不能存在二義性。(2)書寫格式應簡潔且嚴格。(3)應可方便地實現對所需條目的按名查閱。(4)應便于修改和更新。2.建立數據字典的原則68注:加工說明
----(ProcessSpecification)
加工說明是:對DFD中每個加工給予說明。它是從系統(tǒng)功能的角度對DFD作出了注解,與DD一樣是DFD必不可缺少的輔助資料。PS注:加工說明----(ProcessSpecific69加工說明組成輸入數據加工邏輯輸出數據加工說明描述工具結構化語言判定表判定樹
描述把輸入數據流變換為輸出數據流的加工過程,是加工說明的主體。加工說明組成輸入加工輸出加工說明描述工具結構化判定判定70對數據流圖的每一個基本加工,必須有一個基本加工邏輯說明。基本加工邏輯說明必須描述基本加工如何把輸入數據流變換為輸出數據流的加工規(guī)則。加工邏輯說明必須描述實現加工的策略而不是實現加工的細節(jié)。加工邏輯說明中包含的信息應是充足的,完備的,有用的,無冗余的。加工邏輯說明對數據流圖的每一個基本加工,必須有一個基本加工邏輯說明。加工71自然語言+結構化形式(1)結構化語言選擇結構如果<條件><策略>
If<condition><policy>如果<條件>
則<策略1>
否則<策略2>情況1<條件><策略1>…
…情況n<條件><策略n>If<condition>
then<policy1>Otherwise<policy2>case1<condition><policy1>…
…casen<condition><policyn>循環(huán)結構對
…,<策略>重復以下<策略>直至<條件>Foreach…,<policy>Repeatthefollowing:<policy>Until<condition>自然語言+結構化形式(1)結構化語言選如果<條件>If72商店業(yè)務處理系統(tǒng)中“檢查發(fā)貨單”if發(fā)貨單金額超過$500thenif欠款超過了60天then
在償還欠款前不予批準
else(欠款未超期)發(fā)批準書,發(fā)貨單
else(發(fā)貨單金額未超過$500)
if欠款超過60天then
發(fā)批準書,發(fā)貨單及賒欠報告
else(欠款未超期)發(fā)批準書,發(fā)貨單
商店業(yè)務處理系統(tǒng)中“檢查發(fā)貨單”if發(fā)貨單金額超過$50073(2)判定表如果數據流圖的加工需要依賴于多個邏輯條件的取值,使用判定表來描述比較合適(2)判定表如果數據流圖的加工需要依賴于多個邏輯條件的取值,74以“檢查發(fā)貨單”為例以“檢查發(fā)貨單”為例75(3)判定樹判定樹也是用來表達加工邏輯的一種工具。有時侯它比判定表更直觀。檢查發(fā)貨單金額>$500金額$500欠款>60天不發(fā)出批準書欠款60天發(fā)出批準書、發(fā)貨單欠款>60天發(fā)出批準書、發(fā)貨單及賒欠報告欠款60天發(fā)出批準書、發(fā)貨單(3)判定樹判定樹也是用來表達加工邏輯的一種工具。有時侯它比762.6成本/效益分析
成本/效益分析的目的:從經濟角度分析開發(fā)一個特定的新系統(tǒng)是否劃算,從而幫助客戶組織的負責人正確地作出是否投資于這項開發(fā)工程的決定。2.6成本/效益分析成本/效益分析的目的:77
2.6.1
成本估計----人力成本估計軟件開發(fā)成本主要表現為人力消耗(乘以平均工資則得到開發(fā)費用)。估算技術:
1.代碼行技術
2.任務分解技術3.自動估計成本技術2.6.1成本估計----人力成本估計78代碼行技術根據經驗和歷史數據估計實現一個功能需要的源程序行數,用每行代碼的平均成本乘以行數就可以確定軟件的成本。每行代碼的平均成本主要取決于軟件的復雜程度和工資水平。代碼行技術是比較簡單的定量估算方法。當有以往開發(fā)類似工程的歷史數據可供參考時,這個方法是非常有效的。具體計算方法見10.2.1
章節(jié)代碼行技術根據經驗和歷史數據估計實現一個功能需要的源79任務分解技術首先把軟件開發(fā)工程分解為若干個相對獨立的任務。再分別估計每個單獨的開發(fā)任務的成本,最后累加起來得出軟件開發(fā)工程的總成本。估計每個任務的成本時,通常先估計完成該項任務需要用的人力(以人月為單位),再乘以每人每月的平均工資而得出每個任務的成本。具體計算方法見10.2.1章節(jié)
任務分解技術首先把軟件開發(fā)工程分解為若干個相對獨立的80自動估計成本技術
采用自動估計成本的軟件工具可以減輕人的勞動,并且使得估計的結果更客觀。但是,采用這種技術必須有長期搜集的大量歷史數據為基礎,并且需要有良好的數據庫系統(tǒng)支持。自動估計成本技術采用自動估計成本的軟件工具可以812.6.2成本/效益分析的方法成本/效益分析的第一步是估計開發(fā)成本、運行費用和新系統(tǒng)將帶來的經濟效益,然后從經濟角度判斷這個系統(tǒng)是否值得投資。運行費用取決于系統(tǒng)的操作費用(操作員人數,工作時間,消耗的物資等)和維護費用。系統(tǒng)的經濟效益等于因使用新系統(tǒng)而增加的收入加上使用新系統(tǒng)可以節(jié)省的運行費用。2.6.2成本/效益分析的方法成本/效益分析的第一步是822.6.2成本/效益分析的方法注意:總的效益和生命周期的長度有關,所以應該合理地估計軟件的壽命。投資是現在進行的,效益是將來獲得的,不能簡單地比較成本和效益,應該考慮貨幣的時間價值。2.6.2成本/效益分析的方法注意:83成本/效益分析使用的幾個概念貨幣的時間價值投資回收期純收入投資回收率成本/效益分析使用的幾個概念貨幣的時間價值84效益經濟效益包括使用基于計算機的系統(tǒng)后可增加的收入和可節(jié)省的運行費用(如操作人員數、工作時間、消耗的物資等)。在進行成本效益分析時通常只統(tǒng)計五年內的經濟效益。社會效益指使用基于計算機的系統(tǒng)后對社會產生的影響(如提高了辦事效益,使用戶滿意等),通常社會效益只能定性地估計。經濟效益通??捎秘泿诺臅r間價值、投資回收期和純收入來度量。效益85貨幣的時間價值設:當前金額為P,年利率為i,n年后的金額為F,則計算時,累計經濟效益應折合成當前金額例如,一個基于計算機的系統(tǒng)使用后,每年產生的經濟效益為10萬,如果年利率為5%,那么,五年內該系統(tǒng)的累計經濟效益是43.2948萬,而不是50萬。貨幣的時間價值86投資回收期:累計的經濟效益正好等于投資數(成本)所需的時間。純收入:累計經濟效益–投資數當純收入大于零時,該工程值得投資開發(fā)當純收入小于零時,該工程不值得投資(除非它有明顯的社會效益)當純收入等于零時,通常也不值得投資顯然,純收入越大越好。投資回收期:累計的經濟效益正好等于投資數(成本)所需的時間。87舉例
12345
年6040200成本-效益(萬元)該系統(tǒng)節(jié)省經費該系統(tǒng)成本盈虧平衡點投資回收期---------成本及效益分析圖舉例123488例:假設購置一套應用軟件投資20萬元,預計可使用5年,每年直接經濟效益9.6萬元,年利率為5%,試計算投入/產出比。解:考慮到貨幣的時間價值,5年的總體收入應當逐年按照上式計算,并非為恒定的9.6萬元。1~5年中,每年的收入折算到當前的數據如表所示。軟件工程-可行性分析89表貨幣的時間價值年份將來收益/萬元(1+i)n當前收益累計的當前收益19.61.059.14299.142929.61.10258.707517.851339.61.15768.292826.143249.61.21557.897934.041159.61.27637.521941.5630表貨幣的時間價值年份將來收益/萬元(1+i)n當前收益累90根據上表所列數據,本軟件投入/產出比為41.5630/20=2.0785(2)投資回收期:根據上例,兩年后收入17.8513萬元,尚欠2.15萬元沒有收回成本,在第三年還需要:2.15/26.1432=0.259(年),故投資回收期為2.259年。(3)純收入:根據上面的計算結果,5年純收入為41.5630-20=21.5630萬元這相當于比較一個待投入的軟件項目可能獲取的利潤和將20萬元存入銀行所取得的效益。只有當純收入大于0時,開發(fā)軟件才有真正的效益。根據上表所列數據,本軟件投入/產出比為91
可行性研究報告的編寫
GB8567-88《計算機軟件產品開發(fā)文件編制指南》可行性研究報告的編寫
GB8567-88《計算機92可行性研究報告的編寫1引言
1.1編寫目的
1.2背景
1.3定義
1.4參考資料2可行性研究的前提
2.1要求
2.2目標
2.3條件、假定和限制
2.4進行可行性研究的方法
2.5評價尺度可行性研究報告的編寫1引言2可行性研究的前提93可行性研究報告的編寫3對現有系統(tǒng)的分析
3.1數據流程和處理流程
3.2工作負荷
3.3費用開支
3.4人員
3.5設備
3.6局限性4所建議的系統(tǒng)
4.1對所建議系統(tǒng)的說明
4.2數據流程和處理流程
4.3改進之處
4.4影響
4.5局限性
4.6技術條件方面的可行性可行性研究報告的編寫3對現有系統(tǒng)的分析4所建議的系統(tǒng)94可行性研究報告的編寫5可選擇的其它系統(tǒng)方案
5.1可選擇的其它系統(tǒng)15.2可選擇的其它系統(tǒng)2
......6投資及收益分析
6.1支出
6.2收益
6.3收益/投資比
6.4投資回收周期
6.5敏感性分析7社會條件方面的可行性
7.1法律方面的可行性
7.2使用方面的可行性可行性研究報告的編寫5可選擇的其它系統(tǒng)方案6投資及收益分95第二章可行性研究2.1可行性研究的任務2.2可行性研究過程2.3系統(tǒng)流程圖2.4數據流圖2.5數據字典2.6成本/效益分析第二章可行性研究2.1可行性研究的任務96可行性研究開發(fā)一個基于計算機的系統(tǒng)通常都受到資源(人力、財力、設備等)和時間上的限制,可行性分析主要從經濟、技術、法律等方面分析所給出的解決方案是否可行,能否在規(guī)定的資源和時間的約束下完成。可行性研究開發(fā)一個基于計算機的系統(tǒng)通常都受到資源(人力、財力97開始問題定義可性行研究可行否?項目實施計劃終止項目的建議結束YN問題的定義與可性行研究Who
為誰設計,用戶是誰?What
要解決哪些問題?Why
為什么要解決這些問題
有用的軟件
3W開始問題定義可性行研究可行否?項目實施計劃終止項目的建議Y98可行性研究目的:用最小的代價在盡可能短的時間內確定問題是否能夠解決。不是解決問題,而是確定問題是否值得去解決??尚行匝芯磕康模?9可行性研究的目的說明該軟件開發(fā)項目的實現在技術上、經濟上和社會條件上的可行性;評述為合理地達到開發(fā)目標可能選擇的各種方案。
(GB8567-88《計算機軟件產品開發(fā)文件編制指南》)可行性研究的目的說明該軟件開發(fā)項目的實現在技術上、經濟1002.1可行性研究的任務GB8566-88《計算機軟件開發(fā)規(guī)范》中指出:
可行性研究的主要任務是“了解客戶的要求及現實環(huán)境,從技術、經濟和社會因素等三方面研究并論證本軟件項目的可行性,編寫可行性研究報告,制定初步項目開發(fā)計劃?!笨尚行匝芯康淖罡救蝿帐牵簩σ院蟮男袆臃结樚岢鼋ㄗh。2.1可行性研究的任務GB8566-88《計算機軟件101可行性研究的內容(1)技術可行性(2)經濟可行性(3)操作可行性(4)社會可行性(法律可行性)(5)抉擇可行性研究的內容(1)技術可行性102經濟可行性度量系統(tǒng)解決方案的性能價格比??紤]的問題:成本/效益分析(開發(fā)、運行的成本/效益)有形成本、效益無形成本、效益價值和成本的關系質量與價值、成本的關系價值/成本的均衡經濟可行性度量系統(tǒng)解決方案的性能價格比。103技術可行性分析技術可行性主要根據系統(tǒng)的功能、性能、約束條件等,分析在現有資源和技術條件下系統(tǒng)能否實現。技術可行性分析通常包括風險分析、資源分析和技術分析。技術可行性分析技術可行性主要根據系統(tǒng)的功能、性能、約束條件等104風險分析:分析在給定的約束條件下設計和實現系統(tǒng)的風險。采用不成熟的技術可能造成技術風險人員流動可能給項目帶來風險成本和人員估算不合理造成的預算風險風險分析的目的是找出風險,評價風險的大小,并有效地控制和緩解風險。風險分析:分析在給定的約束條件下設計和實現系統(tǒng)的風險。105資源分析:論證是否具備系統(tǒng)開發(fā)所需的各類人員、軟件、硬件等資源和相應的工作環(huán)境。例如,有一支開發(fā)過類似項目的開發(fā)和管理的團隊,或者開發(fā)人員比較熟悉系統(tǒng)所處的領域,并有足夠的人員保證,所需的硬件和支撐軟件能通過合法的手段獲取,那么從資源角度看,可以認為具備設計和實現系統(tǒng)的條件。資源分析:論證是否具備系統(tǒng)開發(fā)所需的各類人員、軟件、硬件等資106技術分析:分析當前的科學技術是否支持系統(tǒng)開發(fā)的各項活動。在技術分析過程中,分析員收集系統(tǒng)的性能、可靠性、可維護性和生產率方面的信息,分析實現系統(tǒng)功能、性能所需的技術、方法、算法或過程,從技術角度分析可能存在的風險,以及這些技術問題對成本的影響。技術可行性分析時通常需進行系統(tǒng)建模,必要時可建造原型和進行系統(tǒng)模擬技術分析:分析當前的科學技術是否支持系統(tǒng)開發(fā)的各項活動。107社會可行性(法律可行性)
開發(fā)項目是否會在社會上或政治上引起侵權、破壞或其它責任問題。社會可行性(法律可行性)開發(fā)項目是否會在社會上或政治上108法律可行性分析研究系統(tǒng)開發(fā)過程中可能涉及到的合同、侵權、責任以及各種與法律相抵觸的問題。1990年我國頒布了《中華人民共和國著作權法》,其中將計算機軟件作為著作權法的保護對象。1991年國務院頒布了《計算機軟件保護條例》。這兩個法律文件是法律可行性分析的主要依據。法律可行性分析研究系統(tǒng)開發(fā)過程中可能涉及到的合同、侵權、責任109操作可行性用戶使用可能性時間進度可行性組織和文化上的可行性操作可行性用戶使用可能性110方案的選擇和折衷一個基于計算機的系統(tǒng)可以有多個可行的實現方案,每個方案對成本、時間、人員、技術、設備都有不同的要求,不同方案開發(fā)出來的系統(tǒng)在功能、性能方面也會有所不同。因此要在多個可行的實現方案中作出選擇。方案評估的依據是待開發(fā)系統(tǒng)的功能、性能、成本、開發(fā)時間、采用的技術、設備、風險以及對開發(fā)人員的要求等。由于系統(tǒng)的功能和性能受到多種因素的影響,某些因素之間相互關聯(lián)和制約。如,為達到高的精度就可能導致長的執(zhí)行時間,為達到高可靠性就會導致高的成本等等。因此,在必要時應進行折衷。方案的選擇和折衷一個基于計算機的系統(tǒng)可以有多個可行的實現方案111可行性分析的結論可以立即開始進行需要推遲到某些條件(例如資金、人力、設備等)落實之后才能開始進行需要對開發(fā)目標進行某些修改之后才能開始進行因為某種原因(如,技術不成熟、經濟上不合算等)不能進行可行性分析的結論可以立即開始進行1122.2可行性研究過程1.復查系統(tǒng)規(guī)模和目標2.研究目前正在使用的系統(tǒng)3.導出新系統(tǒng)的高層邏輯模型4.進一步定義問題5.導出和評價供選擇的解法6.推薦行動方針7.草擬開發(fā)計劃8.書寫文檔提交審查2.2可行性研究過程1.復查系統(tǒng)規(guī)模和目標1132.3系統(tǒng)流程圖系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。作用:以概括的形式描述現有的和未來的系統(tǒng)。它的基本思想是用圖形符號以黑盒子形式描繪組成系統(tǒng)的每個部件(程序,文檔,數據庫,人工過程等)。系統(tǒng)流程圖表達的是數據在系統(tǒng)各部件之間流動的情況,而不是對數據進行加工處理的控制過程,因此盡管系統(tǒng)流程圖的某些符號和程序流程圖的符號形式相同,但是它卻是物理數據流圖而不是程序流程圖。2.3系統(tǒng)流程圖系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具114基本符號
----以概括的方式抽象地描繪一個實際系統(tǒng)所用符號基本符號
----以概括的方式抽象地描繪一個實際系統(tǒng)115
---具體地描繪一個物理系統(tǒng)所用符號系統(tǒng)符號---具體地描繪一個物理系統(tǒng)所用符號116舉例----計算機售書系統(tǒng)流程圖結束學生購書發(fā)票到書庫領書購書單終端審查并開發(fā)票11---學生各學期用書數據庫購書單22---教材存量數據庫舉例----計算機售書系統(tǒng)流程圖結束學生購書發(fā)票到書庫117
2.4
數據流圖DFD----DataFlowDiagram
是分析員和用戶溝通的工具,是設計的出發(fā)點一種圖形化技術,它描繪信息流和數據從輸入移動到輸出的過程中所經受的變換。在數據流圖中沒有任何具體的物理部件,它只是描繪數據在軟件中流動和被處理的邏輯過程,是系統(tǒng)邏輯功能的圖形表示。數據流圖從數據傳遞和加工的角度出發(fā),刻畫數據流從輸入到輸出的移動和變換過程。由于它能夠清晰地反映系統(tǒng)必須完成的邏輯功能,所以它已經成為需求分析階段中功能建模最常用的工具。2.4數據流圖DFD----DataFlow118
數據流圖四種基本符號數據加工(數據變換)數據源點或終點(外部實體)數據流數據存儲文件或或或數據流圖四種基本符號數據加工(數據變換)數據源點或終119圖5工資計算系統(tǒng)的頂層(0層)數據流圖返回圖5工資計算系統(tǒng)的頂層(0層)數據流圖返回120
1.數據的源點或終點數據的源點或終點用于反映數據流圖與外部實體之間的聯(lián)系,表示圖中的輸入數據來自哪里或處理結果送向何處。如圖中的人事部門、后勤部門是工資系統(tǒng)中數據的源點,而職工和銀行則是工資系統(tǒng)中數據的終點。1.數據的源點或終點121
2.數據流數據流是數據在系統(tǒng)中(包括數據處理之間、數據處理和數據存儲之間以及數據處理和數據的源點或終點之間)的傳送通道,數據流符號的箭頭指明了數據的流動方向。如圖中的出勤表、業(yè)績表、水電扣款表、工資條及工資存款清單等均為數據流。在數據流圖中,除了連接加工和數據存儲的數據流以外,其他的數據流在圖中都對應一個惟一的名字。2.數據流122
3.加工加工也稱為數據處理,是對系統(tǒng)中的數據流進行的某些操作或變換。圖中每個加工都要有對應的名稱,最常見的名稱是由一個表明具體動作的動詞和一個表明處理對象的名詞構成的,如計算應發(fā)工資、打印工資清單等。
4.數據存儲在數據流圖中用于保存數據的數據文件被稱為數據存儲,它可以是數據庫文件或任何其他形式的數據組織。流向數據存儲的數據流可理解為向文件寫入數據或對文件進行查詢,流出數據存儲的數據流可理解為從文件中讀取數據或得到查詢結果。3.加工123數據流與加工之間的關系在數據流圖中,可以有兩個以上的數據流進入同一個加工,也可以有兩個以上的數據流從同一個加工中流出,這樣的多個數據流之間往往存在一定的關系。為了表示這些數據流之間的關系,需要在數據流圖中給這些數據流對應的加工加上一定的標記符號。在下表中列出了加工中常見的幾種關系的表示方法。(表中以從加工流入或流出兩個數據流為例)。數據流與加工之間的關系124數據流圖幾種附加符號數據流圖幾種附加符號125數據流圖的層次結構為了表達數據處理過程的數據加工情況,需要采用層次結構的數據流圖。按照系統(tǒng)的層次結構進行逐步分解,并以分層的數據流圖反映這種結構關系,能清楚地表達和容易理解整個系統(tǒng)。數據流圖的層次結構為了表達數據處理過程的數據加工情況,需要采126面對復雜的系統(tǒng)----分層描繪首先用一張高層次的數據流圖描繪系統(tǒng)總體概貌,表明系統(tǒng)的關鍵功能。然后分別把每個關鍵功能擴展到適當的詳細程度,畫在單獨的一頁紙上。這種分層次的描繪方法便于閱讀者按從抽象到具體的過程逐步深入地了解一個復雜的系統(tǒng)。面對復雜的系統(tǒng)----分層描繪首先用一張高層次的數127數據流模型的建立方法
對于一個復雜的系統(tǒng)來說,可能存在著幾十個甚至成百上千個加工,若要在一個數據流圖中清楚地描述出整個系統(tǒng)加工的過程是很困難的,而采用對數據流圖進行分層的方法則可以很好地解決這個問題。按照結構化分析方法中“自頂向下,逐步分解”的思想,可以先將整個系統(tǒng)看作是一個加工,它的輸入數據和輸出數據表明了系統(tǒng)和外部環(huán)境的接口,從而首先畫出系統(tǒng)的頂層數據流圖。數據流模型的建立方法128為了能夠清楚地表明系統(tǒng)加工的詳細過程,接著從頂層數據流圖出發(fā),逐層地對系統(tǒng)進行分解。每分解一次,系統(tǒng)中加工的數量就隨之增加,每個加工的功能描述也越來越具體。重復這種分解,直至得到系統(tǒng)的底層數據流圖。底層數據流圖中的所有加工都應是不可再分解的、最簡單的“原子加工”。通過分解過程中得到的這一組分層數據流圖(由頂層、中間層和底層數據流圖共同構成)就可以十分清晰地描述出整個系統(tǒng)所有加工的詳細情況。為了能夠清楚地表明系統(tǒng)加工的詳細過程,接著從頂層數據流圖出發(fā)129分層的數據流圖分層的數據流圖130下面以某單位工資管理系統(tǒng)為例,來介紹一下分層數據流模型的建立方法。1.建立頂層數據流圖任何系統(tǒng)的頂層數據流圖都只有一個,用于反映目標系統(tǒng)所要實現的功能及與外部環(huán)境的接口。頂層數據流圖中只有一個代表整個系統(tǒng)的加工,數據的源點和終點對應著系統(tǒng)的外部實體,表明了系統(tǒng)輸入數據的來源和輸出數據的去向。工資管理系統(tǒng)的頂層數據流圖如圖5所示。下面以某單位工資管理系統(tǒng)為例,來介紹一下分層數據流模131
2.數據流圖的分層細化首先按照系統(tǒng)的功能,對頂層數據流圖進行分解,生成第一層數據流圖。如例子中的工資計算系統(tǒng)可劃分為計算工資、打印工資清單和工資轉存三個加工。其中,計算工資完成單位職工工資計算,生成工資清單的功能;打印工資清單完成工資條的打印功能;工資轉存完成生成職工工資存款清單并將其發(fā)送到銀行的功能。對劃分得到的加工應進行編號,此外,在標出數據流和劃分加工的同時,還要在圖中畫出涉及的數據存儲。2.數據流圖的分層細化132圖6工資計算系統(tǒng)第一層數據流圖圖6工資計算系統(tǒng)第一層數據流圖133對第一層數據流圖中的加工繼續(xù)分解,則可得到第二層數據流圖,如圖7所示。若數據流圖中的加工還可繼續(xù)細化,則重復以上分解過程,直到獲得系統(tǒng)的底層數據流圖。工資計算系統(tǒng)的第三層數據流圖如圖8所示。對第一層數據流圖中的加工繼續(xù)分解,則可得到第二層數據134圖7工資計算系統(tǒng)的第二層數據流圖(a)“計算工資”子數據流圖;(b)“工資轉存”子數據流圖圖7工資計算系統(tǒng)的第二層數據流圖135圖8工資計算系統(tǒng)的第三層數據流圖圖8工資計算系統(tǒng)的第三層數據流圖136建立數據流模型的原則建立數據流模型要遵循以下的原則:(1)每個加工至少應有一個輸入數據流(反映被處理數據的來源)和一個輸出數據流(反映加工的結果)。(2)數據流圖中各構成元素的名稱必須具有明確的含義且能夠代表對應元素的內容或功能。(3)對數據流圖中某個加工進行細化生成的下層數據流圖,稱為其上層圖的子圖。應保證分層數據流圖中任意對應的父圖和子圖的輸入/輸出數據保持一致。
建立數據流模型的原則137(4)在數據流圖中,應按照層次給每個加工編號,用于表明該加工所處的層次及上、下層的父圖與子圖的關系。編號的規(guī)則為:頂層加工不用編號;第二層加工的編號為1,2,…,n;第三層加工的編號為1.1,1.2,…,2.1,…,n.1,n.2,…等,依次類推。如編號1.2表明該加工處于第三層數據流圖中,序號為2,該圖是對上層數據流圖中編號為1的加工進行細化得到的子圖。(5)在父圖中不要出現子圖中涉及的局部數據存儲文件。通常除底層數據流圖中需標明所有數據存儲外,為了保持畫面的整潔,各中間層數據流圖只需顯示處于加工之間的接口文件即可。(4)在數據流圖中,應按照層次給每個加工編號,用于138(6)數據流圖只能由四種基本符號組成,是實際業(yè)務流程的客觀映象,用于說明系統(tǒng)應該“做什么”,而不需要指明系統(tǒng)“如何做”。(7)數據流圖的分解速度應保持適中。通常一個加工每次可分解為2~4個子加工,最多不要超過七個,因為過快的分解會增加用戶對系統(tǒng)模型理解的難度。
(6)數據流圖只能由四種基本符號組成,是實際業(yè)務流程139.便于實現.便于使用---采用逐步細化的擴展方法,可避免一次引入過多的細節(jié),有利于控制問題的復雜度;
---用一組圖代替一張總圖,方便用戶及
軟件開發(fā)人員閱讀。分層DFD圖的優(yōu)點.便于實現.便于使用---采用逐步細化的擴展方法,140舉例1、電梯控制系統(tǒng)(見書P71-74)2、學生購買教材系統(tǒng)舉例1、電梯控制系統(tǒng)(見書P71-74)141畫數據流圖的步驟1、先找出系統(tǒng)的數據源點與終點。(它們是外部實體,由它們來確定系統(tǒng)與外界的接口)
2、是畫頂層圖。通常把整個系統(tǒng)當作一個大的加工,并標明系統(tǒng)的輸入與輸出,以及數據的源點與終點。系統(tǒng)從學生接受購書單,經處理后把領書單返回給學生,使學生可憑領書單到書庫領書。對脫銷的教材,系統(tǒng)則用缺書單的形式通知給書庫;新書進庫后也由書庫將進書通知返回給系統(tǒng)。
3、畫分層DFD圖:把系統(tǒng)分解為銷售和采購兩大加工。如圖所示,顯然,外部項學生應與銷售子系統(tǒng)聯(lián)系,保管員應與采購子系統(tǒng)聯(lián)系。且兩個子系統(tǒng)之間也存在兩項數據聯(lián)系:其一是缺書登記表,由銷售子系統(tǒng)把脫銷的教材傳給采購子系統(tǒng);其二是進書通知,直接由采購子系統(tǒng)將教材入庫信息通知銷售子系統(tǒng)。同時,對于銷售子系統(tǒng)來說,它還需要對教材存量表進行操作,即對售出的教材要在原存量中減去售出的數量,而對于新購的教材還要寫到教材存量表中,所以該文件執(zhí)行的讀寫操作,應用雙箭頭表示。學生教材購銷系統(tǒng)購書單領書單缺書單進書通知保管員第1
層外部實體外部實體進書通知1銷售購書單領書單學生缺書單進書通知2采購保管員第2
層教材存量表F1缺書登記表F2畫數據流圖的步驟1、先找出系統(tǒng)的數據源點與終點。142 繼續(xù)分解,就可以獲得第三層的數據流圖。我們可以從第1層的銷售子系統(tǒng)擴展而成: 繼續(xù)分解,就可以獲得第三層的數據流圖。我們可以從第1層的銷143教材銷售子系統(tǒng)無效書單購書單1.3登記并開領書單1.2開發(fā)票1.1審查有效性1.4登記缺書1.5補售教材采購學生學生進書通知有效書單發(fā)票領書單暫缺書單1銷售購書單領書單缺書單進書通知2采購進書通知缺書登記表教材存量表學生保管員第2
層補售書單第3層教材存量表F1缺書登記表F2
F1書號單價數量各班用書表F3售書登記表F4審查有效性時,首先要核對購書單上的內容是否與學生用書表F3相符,還要通過售書登記F4檢查學生已否購買過這些教材。若發(fā)現購書單中有學生不用或買重了的教材,便發(fā)出無效書單。只有將通過了審查的教材保留在有效構書單中。開發(fā)票加工符號,按購書單的內容查對教材存量表(F1),把可供應的教材寫入發(fā)票,在F4中登記后開領書單并發(fā)給學生。對數量不足或全缺的教材寫入暫缺書單并登記到缺書登記表(F2)中,等待接到進書通知后再補售給學生。補售的手續(xù)及數據流圖和第一次購書相同。請大家注意,在上一層DFD中,采購是系統(tǒng)內部的一個加工符號,但本圖卻是處于銷售子系統(tǒng)之外的一個外部實體。從圖中可以看出,該銷售子系統(tǒng)將被分解為5個子加工,編號從1.1----1.5,涉及到4個數據文件,分別用F1—F4來表示。外部項教材銷售子系統(tǒng)無效書單購書單1.31.21.11.411441銷售購書單領書單缺書單進書通知2采購進書通知缺書登記表教材存量表學生保管員第2層第3
層缺書單2.3修改教材庫存和待購量銷售進書通知進書通知保管員教材存量表F1待購教材表F5教材一覽表F6由銷售子系統(tǒng)建立起來的缺書登記表,首先按書號匯總后登入待購教材表,然后再按出版社分別統(tǒng)計制成缺書單并送給書庫保管員作為采購教材的依據。另外,在匯總缺書要再次核查教材存量表,而且,分出版社統(tǒng)計時還要參閱教材一覽表,從該文件中可以知道這些缺書是何處出版的。新書入庫后,要及時修改教材存量表和待購教材表中的有關教材數量,同時把進書信息通知銷售子系統(tǒng),使銷售人員能通知缺書的學生補售教材。2.2按出版社統(tǒng)計缺書2.1按書號匯總缺書缺書登記表F2采購子系統(tǒng)
1購書單領書單缺書單進書通知2進書通知缺書登記表教材存量表學145
從圖中可以看出,該采購子系統(tǒng)將被分解為3個子加工,編號從2.1----2.3,涉及到4個數據文件,分別用F1,F2和F5,F6。以上三層、4張的DFD圖,一起組成了教材購銷系統(tǒng)的分層DFD圖。從分析中大家可以得知,愈到下層,加工愈細。第三層就有8個加工。大都是足夠簡單的---基本加工,可以不用再進行分解了。從圖中可以看出,該采購子系統(tǒng)將被分解為3個子加工146
1)
為數據流(或數據存儲)命名(1)名字應代表整個數據流(或數據存儲)的內容,而不是僅僅反映它的某些成分。(2)不要使用空洞的、缺乏具體含義的名字(如“數據”、“信息”、“輸入”之類)。(3)如果在為某個數據流(或數據存儲)起名字時遇到了困難,則很可能是因為對數據流圖分解不恰當造成的,應該試試重新分解,看是否能克服這個困難。畫分層DFD的指導原則1.注意數據流圖中成分的命名1)為數據流(或數據存儲)命名畫分層DFD的指導原則1472)
為處理命名(1)通常先為數據流命名,然后再為與之相關聯(lián)的處理命名。這樣命名比較容易,而且體現了人類習慣的“由表及里”的思考過程。(2)名字應該反映整個處理的功能,而不是它的一部分功能。(3)名字最好由一個具體的及物動詞加上一個具體的賓語組成。應該盡量避免使用“加工”、“處理”等空洞籠統(tǒng)的動詞作名字。(4)通常名字中僅包括一個動詞,如果必須用兩個動詞才能描述整個處理的功能,則把這個處理再分解成兩個處理可能更恰當些。(5)如果在為某個處理命名時遇到困難,則很可能是發(fā)現了分解不當的跡象,應考慮重新分解。畫分層DFD的指導原則1.注意數據流圖中成分的命名2)為處理命名畫分層DFD的指導原則148畫分層DFD的指導原則2.注意父圖和子圖的平衡:所謂的平衡,就是指父圖和子圖的輸入和輸出數據應分別保持一致。
發(fā)票1.3開領書單領書單(a)父圖1.3.1學生領書單1.3.21.3.3教材(a)子圖畫分層DFD的指導原則發(fā)票1.3領書單(a)父圖1.149
畫分層DFD的指導原則3.區(qū)分局部文件和局部外部項1銷售購書單領書單缺書單進書通知2采購進書通知
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 承包荒山合同(2篇)
- 二零二五年度環(huán)保型排水溝建造與養(yǎng)護合同4篇
- 二零二五版新能源電動汽車充電設施建設服務合同范本2篇
- 2025年度二零二五年度民辦學校教師學術交流與合作合同4篇
- 二零二五年度出口貿易合同中英雙語不可抗力條款合同范本4篇
- 二零二五年度建筑外墻裝飾面磚采購合同3篇
- 二零二五年度廚師健康管理與職業(yè)發(fā)展規(guī)劃合同4篇
- 二零二五年度臨時工勞務派遣服務合同范本6篇
- 2025年度設施農業(yè)大棚租賃合同范本4篇
- 2025年度個人房產買賣合同范本(含貸款及還款安排)4篇
- CJT 511-2017 鑄鐵檢查井蓋
- 配電工作組配電網集中型饋線自動化技術規(guī)范編制說明
- 職業(yè)分類表格
- 2024高考物理全國乙卷押題含解析
- 廣東省深圳高級中學2023-2024學年八年級下學期期中考試物理試卷
- 介入科圍手術期護理
- 青光眼術后護理課件
- 設立工程公司組建方案
- 設立項目管理公司組建方案
- 《物理因子治療技術》期末考試復習題庫(含答案)
- 退款協(xié)議書范本(通用版)docx
評論
0/150
提交評論