《軟件工程》第二講 可行性研究
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,軟件工程導論,第2章 可行性研究,2.1,可行性研究的任務,2.2 可行性研究過程,2.4 數(shù)據(jù)流圖,2.5 數(shù)據(jù)字典,2.6 成本/效益分析,目標,理解可行性研究過程,設計軟件系統(tǒng)的數(shù)據(jù)流圖,定義數(shù)據(jù)字典,2.1 可行性研究的任務,2.1 可行性研究的任務,對以后的行動方針,提出建議。,需要的時間長短取決于工程的規(guī)模。,技術可行性,經濟可行性,操作可行性,法律可行性,2.2 可行性研究過程(I),2.2 可行性研究過程(II),2.3 系統(tǒng)流程圖,概括地描繪物理系統(tǒng)的傳統(tǒng)工具。,用圖形符號以黑盒子形式,描繪組成系統(tǒng)的每個部件(程序,文檔,數(shù)據(jù)庫,人工過程等)。,表達的是數(shù)據(jù)在系統(tǒng)各部件之間流動的情況,而不是對數(shù)據(jù)進行加工處理的控制過程,,是物理數(shù)據(jù)流圖而不是程序流程圖。,2.3.1 符號,2.3.2 例子,某裝配廠有一座存放零件的倉庫,零件庫存量的每一次變化稱為一個事務,庫存清單程序對事務進行處理,更新存儲在磁盤上的庫存清單主文件,并且把必要的定貨信息寫在磁帶上。最后,每天由報告生成程序讀一次磁帶,并且打印出定貨報告。,圖中每個符號用黑盒子形式定義了組成系統(tǒng)的一個部件,然而并沒有指明每個部件的具體工作過程;圖中的箭頭確定了信息通過系統(tǒng)的邏輯路徑。,2.4 數(shù)據(jù)流圖,(Data Flow Diagram),一種圖形化技術,,描繪信息流和數(shù)據(jù),從輸入移動到輸出的過程中,所經受的變換。,數(shù)據(jù)流圖和數(shù)據(jù)字典,(Data Dictionary)共同構成了系統(tǒng)的邏輯模型。,描繪“做什么”而不考慮“怎樣做”。,基本元素,數(shù)據(jù)流(data flow):由一組固定成分的數(shù)據(jù)組成,代表數(shù)據(jù)的流動方向,處理/加工(process):描述了輸入數(shù)據(jù)流到輸出數(shù)據(jù)流的變換,即將輸入數(shù)據(jù)流加工成輸出數(shù)據(jù)流,數(shù)據(jù)存數(shù)/文件(file):使用文件、數(shù)據(jù)庫等保存某些數(shù)據(jù)結果供以后使用,源或宿(source or sink):由一組固定成分的數(shù)據(jù)組成,代表數(shù)據(jù)的流動方向,2.4.3 數(shù)據(jù)流與數(shù)據(jù)加工之間的關系,示例:圖書訂購系統(tǒng)DFD,圖書庫存,入庫單,圖書代理商,書庫,管理,收費,制作,財務報表,財務報表,經理,帳務數(shù)據(jù)庫,制作,發(fā)書單,圖書,訂購,核準的訂購單,發(fā)書單,訂購單,顧客,顧客,收費數(shù)據(jù),帳單,數(shù)據(jù)流圖的層次結構(I),為了表達數(shù)據(jù)處理過程的數(shù)據(jù)加工情況,需要采用,層次結構,的數(shù)據(jù)流圖。,按照系統(tǒng)的層次結構進行,逐步分解,,并以分層的數(shù)據(jù)流圖反映這種結構關系,能清楚地表達和容易理解整個系統(tǒng),數(shù)據(jù)流圖的層次結構(II),在多層數(shù)據(jù)流圖中,,頂層流圖,僅包含一個加工,它代表被開發(fā)系統(tǒng)。它的輸入/輸出流是該系統(tǒng)的輸入/輸出數(shù)據(jù),底層流圖,是指其加工不需再做分解,它處在最底層,中間層流圖,則表示對其上層父圖的細化。它的每一加工可能繼續(xù)細化,形成子圖。,數(shù)據(jù)流圖的層次結構(III),考務,處理系統(tǒng),考試中心,考生,不合格報名單,閱卷站,錯誤成績清單,成績清單,考生名單,合格標準,報名單,準考證,考生通知單,統(tǒng)計分析表,畫數(shù)據(jù)流圖的步驟,1畫系統(tǒng)的輸入和輸出,2畫系統(tǒng)內部,3畫加工內部,4重復第3步,直至每個尚未分解的加工都足夠簡單(即不必再分解),2.4.2 例子,假設一家工廠的采購部,每天需要一張定貨報表,報表按零件編號排序,表中列出所有需要再次定貨的零件。,對于每個需要再次定貨的零件,應該列出下述數(shù)據(jù):零件編號,零件名稱,定貨數(shù)量,目前價格,主要供應者,次要供應者。,零件入庫或出庫稱為事務,通過放在倉庫中的CRT終端把事務報告給定貨系統(tǒng)。,當某種零件的庫存數(shù)量,少于庫存量臨界值時,就應該再次定貨。,如何畫出數(shù)據(jù)流圖,確定數(shù)據(jù)的源點和終點,,,確定處理/加工,確定數(shù)據(jù)流,確定數(shù)據(jù)存儲,從問題描述中,提取數(shù)據(jù)流圖的4種成分:,如何畫出數(shù)據(jù)流圖,數(shù)據(jù)的源點和終點,“采購部每天需要一張定貨報表”,“通過放在倉庫中的CRT終端把事務報告給定貨系統(tǒng)”,所以采購員是數(shù)據(jù)終點,而倉庫管理員是數(shù)據(jù)源點。,處理/加工,,“采購部需要報表”,顯然他們還沒有這種報表,因此必須有一個用于產生報表的處理。事務的后果是改變零件庫存量,然而任何改變數(shù)據(jù)的操作都是處理,因此對事務進行的加工是另一個處理。,數(shù)據(jù)流和數(shù)據(jù)存儲,系統(tǒng)把定貨報表送給采購部,因此定貨報表是一個數(shù)據(jù)流;事務需要從倉庫送到系統(tǒng)中,顯然事務是另一個數(shù)據(jù)流。頂層DFD不需要畫出數(shù)據(jù)存儲,系統(tǒng)必須完成的兩個主要功能是“產生報表”和“處理事務”,它們將代替頂層圖的“定貨系統(tǒng)”,并加了編號。,系統(tǒng)必須增加了兩個數(shù)據(jù)存儲:處理事務需要“庫存清單”數(shù)據(jù);產生報表和處理事務在不同時間,因此需要存儲“定貨信息”。,系統(tǒng)功能的進一步細化:,當發(fā)生一個事務時必須首先接收它;,隨后按照事務的內容修改庫存清單;,最后如果更新后的庫存量少于庫存量臨界值時,則應該再次定貨,也就是需要處理定貨信息。,因此,把“處理事務”分解為下述3個處理:“接收事務”、“更新庫存清單”和“處理定貨”,2.4.4 用途,利用它作為,交流信息的工具,。,僅僅使用4種基本符號,而且不包含任何有關物理實現(xiàn)的細節(jié),因此,絕大多數(shù)用戶都可以理解和評價它。,另一個主要用途是作為,分析和設計的工具,。,這種描繪方法形象具體,比較容易驗證它的正確性,用數(shù)據(jù)流圖,輔助物理系統(tǒng)的設計,用數(shù)據(jù)流圖輔助物理系統(tǒng)的設計,,以圖中不同處理的定時要求為指南,能夠在數(shù)據(jù)流圖上畫出許多組自動化邊界,每組自動化邊界可能意味著一個不同的物理系統(tǒng),因此可以根據(jù)系統(tǒng)的邏輯模型考慮系統(tǒng)的物理實現(xiàn),另一種劃分自動化邊界的方法建議,檢查和修改數(shù)據(jù)流圖的原則(I),圖形符號只限于前述,四種基本圖形元素,主圖,必須包括前述四種基本元素,,缺一不可,主圖,上的數(shù)據(jù)流必須封閉在外部實體之間,每個加工至少有,一個輸入數(shù)據(jù)流,和,一個輸出數(shù)據(jù)流,在數(shù)據(jù)流圖中,需,按層給加工框編號,。編號表明該加工所處層次及上下層的,親子關系,規(guī)定任何一個數(shù)據(jù)流子圖,必須與它上一層的一個加工對應,兩者的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流必須一致。此即,父圖與子圖的平衡,父圖與子圖的平衡,分層DFD中應該不存在矛盾和沖突,不存在遺漏的數(shù)據(jù)流、加工等元素,例:,1,2,3,A,B,C,M,N,T,2.1,2.2,2.3,N,P,S,T,Q,一致性的實例:父圖與子圖平衡,關鍵:數(shù)據(jù)流中的數(shù)據(jù)項全體平衡。,若 b=b1+b2,下面父圖與子圖平衡,e,2.5,2.4,2.3,2.2,2.1,b2,b1,a,c,d,b,2,1,a,c,d,e,(a)父圖,(b)子圖,2.5 數(shù)據(jù)字典,字典的用途,是供人查閱對不了解的條目的解釋,,數(shù)據(jù)字典的作用,是在軟件分析和設計的過程中,給人提供關于數(shù)據(jù)的描述信息。,數(shù)據(jù)字典是關于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素的定義的集合。,數(shù)據(jù)流圖和數(shù)據(jù)字典共同構成系統(tǒng)的邏輯模型。沒有數(shù)據(jù)字典數(shù)據(jù)流圖就不嚴格,然而沒有數(shù)據(jù)流圖數(shù)據(jù)字典也難于發(fā)揮作用。只有DFD與DD在一起,才能共同構成系統(tǒng)的規(guī)格說明。,2.5.1 數(shù)據(jù)字典的內容,4類元素的定義組成:,(1)數(shù)據(jù)流,(2)數(shù)據(jù)流分量(數(shù)據(jù)項),(3)數(shù)據(jù)存儲,(4)處理,定義的內容有,:,名字,,,別名或編號,,,分類,,,描述,,,定義,,,位置,,,其它,,等,用其他工具(如IPO圖或PDL)對數(shù)據(jù)處理描述更方便,,2.5.1 數(shù)據(jù)流描述,數(shù)據(jù)流名:,說明:簡要介紹作用即它產生的原因和結果,數(shù)據(jù)流來源:來自何方,數(shù)據(jù)流去向:去向何處,數(shù)據(jù)流組成:數(shù)據(jù)結構,數(shù)據(jù)量流通量:數(shù)據(jù)量,流通量,2.5.2 數(shù)據(jù)元素詞條描述,數(shù)據(jù)元素名:,類型:數(shù)字(離散值,連續(xù)值),文字(編碼類型),長度:,取值范圍:,相關的數(shù)據(jù)元素及數(shù)據(jù)結構:,2.5.3 數(shù)據(jù)文件詞條描述,數(shù)據(jù)文件名:,簡述:存放的是什么數(shù)據(jù),輸入數(shù)據(jù):,輸出數(shù)據(jù):,數(shù)據(jù)文件組成:數(shù)據(jù)結構,存儲方式:順序,直接,關鍵碼,存取頻率:,2.5.4 加工邏輯詞條描述,加工名:,加工編號:反映該加工的層次,簡要描述:加工邏輯及功能簡述,輸入數(shù)據(jù)流:,輸出數(shù)據(jù)流:,加工邏輯:簡述加工程序,加工順序,2.5.5 源點及匯(終)點詞條描述,名稱:外部實體名,簡要描述:什么外部實體,有關數(shù)據(jù)流:,數(shù)目:,課堂作業(yè),Page54 習題2.5,電話號碼=校內電話|校外電話,校內電話=非零數(shù)字+3數(shù)字3,校外電話=本市號碼|外地號碼,本市號碼=數(shù)字零+8位號碼,外地號碼=數(shù)字零+區(qū)號+8位號碼,數(shù)字零=0,區(qū)號=3數(shù)字3,8位號碼=非零數(shù)字+7數(shù)字7,數(shù)字=數(shù)字零|非零數(shù)字,非零數(shù)字=1.9,2.6 成本/效益分析,開發(fā)一個軟件系統(tǒng)是一種投資,期望將來獲得更大的經濟效益。經濟效益通常表現(xiàn)為減少運行費用或(和)增加收入。為了對比成本和效益,首先需要估計它們的數(shù)量。,2.6.1 成本估計,代碼行技術,任務分解技術,自動估計成本技術,2.6.2 成本/效益分析的方法(I),成本=開發(fā)成本+運行費用,效益=新系統(tǒng)節(jié)約的運行成本+增加的收入,2.6.2 成本/效益分析的方法(II),1.貨幣的時間價值,如果n年后能收入F元錢,那么這些錢的現(xiàn)在價值是P=F/(1+i),n,2.投資回收期,使累計的經濟效益,等于最初投資所需要的時間。,3.純收入,在整個生命周期之內,系統(tǒng)的累計經濟效益(折合成現(xiàn)在值)與投資之差。,4.投資回收率,把資金存入銀行或貸給其他企業(yè)能夠獲得利息,演講完畢,謝謝觀看!,內容總結,軟件工程導論。需要的時間長短取決于工程的規(guī)模。圖中每個符號用黑盒子形式定義了組成系統(tǒng)的一個部件,然而并沒有指明每個部件的具體工作過程。圖中的箭頭確定了信息通過系統(tǒng)的邏輯路徑。描繪“做什么”而不考慮“怎樣做”。數(shù)據(jù)存數(shù)/文件(file):使用文件、數(shù)據(jù)庫等保存某些數(shù)據(jù)結果供以后使用。為了表達數(shù)據(jù)處理過程的數(shù)據(jù)加工情況,需要采用層次結構的數(shù)據(jù)流圖。在多層數(shù)據(jù)流圖中,頂層流圖僅包含一個加工,它代表被開發(fā)系統(tǒng)。4重復第3步,直至每個尚未分解的加工都足夠簡單(即不必再分解)。零件入庫或出庫稱為事務,通過放在倉庫中的CRT終端把事務報告給定貨系統(tǒng)。事務需要從倉庫送到系統(tǒng)中,顯然事務是另一個數(shù)據(jù)流。系統(tǒng)必須增加了兩個數(shù)據(jù)存儲:處理事務需要“庫存清單”數(shù)據(jù)。2.5.1 數(shù)據(jù)字典的內容。(2)數(shù)據(jù)流分量(數(shù)據(jù)項)。加工編號:反映該加工的層次。加工邏輯:簡述加工程序,加工順序。電話號碼=校內電話|校外電話。演講完畢,謝謝觀看,