軟件工程導論- 課件_第1頁
軟件工程導論- 課件_第2頁
軟件工程導論- 課件_第3頁
軟件工程導論- 課件_第4頁
軟件工程導論- 課件_第5頁
已閱讀5頁,還剩137頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

軟件工程導論

SoftwareEngineering主講:呂曉華E-mail:bowen995@1 軟件工程導論

SoftwareEngineering主講Chap02可行性研究可行性研究的任務可行性研究過程系統流程圖數據流圖數據字典(內容、方法、用途、實現)成本/效益分析(成本估計、分析方法)可行性研究的目的就是用最小的代價在盡可能短的時間內確定問題是否能夠解決;可行性研究的目的不是解決問題,而是確定問題是否值得去解。

2Chap02可行性研究可行性研究的任務可行性研究的目的就2.1可行性研究的任務可行性研究實質上是要進行一次大大壓縮簡化了的系統分析和設計的過程,也就是在較高層次上以較抽象的方式進行的系統分析和設計的過程:分析和澄清問題定義導出系統的邏輯模型-探索系統實現方案:

技術可行性:現有的技術經濟可行性:開發成本操作可行性:用戶操作實現進度可行性研究的成本:預期的工程總成本的5%~10%32.1可行性研究的任務可行性研究實質上是要進行一次大大壓縮2.2可行性研究的步驟復查系統規模和目標研究目前正在使用的系統導出新系統的高層邏輯模型重新定義問題導出和評價供選擇的解法推薦行動方針草擬開發計劃書寫文檔提交審查42.2可行性研究的步驟復查系統規模和目標4復查系統規模和目標對問題定義階段書寫的關于規模和目標的報告書進一步復查確認。改正報告書中的敘述模糊、不正確的地方。這個步驟的工作,實質上是為了確保分析員正在解決的問題確實是要求他解決的問題。進一步復查確認“規模和目標報告書”5復查系統規模和目標對問題定義階段書寫的關于規模和目標的報告書研究目前正在使用的系統正在使用的系統的基本功能以及某些缺點分析現有系統的文檔資料和使用手冊,實地考察現有系統描繪現有系統的高層系統流程圖并確認記錄現有系統的接口6研究目前正在使用的系統正在使用的系統的基本功能以及某些缺點6導出新系統的高層邏輯模型設計過程通常總是從現有的物理系統出發,再參考現有系統的邏輯模型,設想目標系統的邏輯模型,最后根據目標系統的邏輯模型建造新的物理系統。使用數據流圖,描繪數據在系統中流動和處理的情況,從而概括地表達出對新系統的設想。通常為了把新系統描繪得更清晰準確,還應該有一個初步的數據字典,定義系統中使用的數據。數據流圖和數據字典共同定義了新系統的邏輯模型,以后可以從這個邏輯模型出發設計新系統。7導出新系統的高層邏輯模型設計過程通常總是從現有的物理系統出發重新定義問題分析員應該和用戶一起再次復查問題定義、工程規模和目標,這次復查應該把數據流圖和數據字典作為討論的基礎。可行性研究的前四個步驟實質上構成一個循環。

定義問題分析問題導出一個試探性的解重新定義問題符合系統目標?YN8重新定義問題分析員應該和用戶一起再次復查問題定義、工程規模和導出和評價供選擇的解法分析員應該從他建議的系統邏輯模型出發,導出若干個較高層次的(較抽象的)物理解法供比較和選擇。從技術角度出發考慮解決問題的不同方案。例如,2.4節中將舉例說明在數據流圖上劃分不同的自動化邊界根據技術可行性的考慮初步排除一些不現實的系統。例如,如果要求系統的響應時間不超過幾秒鐘,顯然應該排除任何批處理方案。考慮操作方面的可行性。分析員應該根據使用部門處理事務的原則和習慣檢查技術上可行的那些方案,去掉其中從操作方式或操作過程的角度看用戶不能接受的方案。考慮經濟方面的可行性。分析員應該估計余下的每個可能的系統的開發成本和運行費用,并且估計相對于現有的系統而言這個系統可以節省的開支或可以增加的收入。在這些估計數字的基礎上,對每個可能的系統進行成本/效益分析。(參看2.6節)制定實現進度表。通常只需要估計生命周期每個階段的工作量。9導出和評價供選擇的解法分析員應該從他建議的系統邏輯模型出發,推薦行動方針做出一個關鍵性的決定:是否繼續進行這項開發工程。如果分析員認為值得繼續進行這項開發工程,那么他應該選擇一種最好的解法,并且說明選擇這個解決方案的理由。10推薦行動方針做出一個關鍵性的決定:是否繼續進行這項開發工程。草擬開發計劃為推薦的系統草擬一份開發計劃:工程進度表估計對各種開發人員和各種資源的需要情況。估計系統生命周期每個階段的成本。最后應該給出下一個階段(需求分析)的詳細進度表和成本估計。11草擬開發計劃為推薦的系統草擬一份開發計劃:11書寫文檔提交審查寫成清晰的文檔,請用戶和使用部門的負責人仔細審查。12書寫文檔提交審查寫成清晰的文檔,請用戶和使用部門的負責人仔細2.3系統流程圖系統流程圖是描繪物理系統的傳統工具。它的基本思想是用圖形符號以黑盒子形式描繪系統里面的每個部件(程序,文件,數據庫,表格,人工過程等等)。系統流程圖表達的是信息在系統各部件之間流動的情況,而不是對信息進行加工處理的控制過程。盡管系統流程圖使用的某些符號和程序流程圖中用的符號相同,但是它卻是物理數據流程圖而不是程序流程圖。2.3.1符號132.3系統流程圖系統流程圖是描繪物理系統的傳統工具。2.基本符號

一個符號表示系統中的一個部件。

符號名

稱說

明處理能改變數據值或數據位置的加工或部件,例如,程序、處理機、人工加工等都是處理。輸入/輸出表示輸入或輸出(或既輸入又輸出),是一個廣義的不指明具體設備的符號。連接指出轉到圖的另一部分或從圖的另一部分轉來,通常在同一頁上。換頁連接指出轉到另一頁圖上或由另一頁圖轉來。

數據流用來連接其他符號,指明數據流動方向。14基本符號一個符號表示系統中的一個部件。符號名稱說系統符號

15系統符號152.3.2例子某裝配廠有一座存放零件的倉庫,倉庫中現有的各種零件的數量以及每種零件的庫存量臨界值等數據記錄在庫存清單主文件中。當倉庫中零件數量有變化時,應該及時修改庫存清單主文件,如果那種零件的庫存量少于它的庫存量臨界值,則應該報告給采購部門以便定貨,規定每天向采購部門送一次定貨報告。習慣畫法是使信息在圖中從頂向下,從左向右流動。系統流程圖162.3.2例子某裝配廠有一座存放零件的倉庫,倉庫中現有的各2.3.3分層首先用一張高層次的系統流程圖描繪系統總體概貌,表明系統的關鍵功能。然后分別把每個關鍵功能擴展到適當的詳細程度,畫在單獨的一頁紙上。這種分層次的描繪方法便于閱讀者按從抽象到具體的過程逐步深入地了解一個復雜的系統。提示:下一節--2.4數據流圖172.3.3分層首先用一張高層次的系統流程圖描繪系統總體概貌2.4數據流圖-1數據流圖描繪系統的邏輯模型,圖中沒有任何具體的物理元素,只是描繪信息在系統中流動和處理的情況。182.4數據流圖-1數據流圖描繪系統的邏輯模型,圖中沒有任2.4數據流圖-2因為數據流圖是邏輯系統的圖形表示,即使不是專業的計算機技術人員也容易理解,所以是極好的通信工具。此外,設計數據流圖只需考慮系統必須完成的基本邏輯功能,完全不需要考慮如何具體地實現這些功能,所以它也是軟件設計的很好的出發點。192.4數據流圖-2因為數據流圖是邏輯系統的圖形表示,即使四種基本符號表示數據的源點或終點。表示變換數據的處理。表示數據存儲(靜止數據)。表示數據流,即特定數據的流動方向(流動數據)。20四種基本符號表示數據的源點或終點。20三個附加符號*:表示數據之間是“與”關系。+:表示數據之間是“或”關系。:表示數據之間是“互斥”關系(只能從中選一個)。21三個附加符號*:表示數據之間是“與”關系。21說明數據存儲和數據流都是數據,僅僅所處的狀態不同。數據存儲是處于靜止狀態的數據,數據流是處于運動中的數據。22說明數據存儲和數據流都是數據,僅僅所處的狀態不同。數據存儲是說明有時數據的源點和終點相同。如果只用一個符號代表數據的源點和終點,則至少有兩個箭頭和這個符號相連(一個進一個出,)可能其中一條箭頭相當長,這將降低數據流圖的清晰度,如果代表同一個事物的同樣符號在圖中出現在n個地方,則在這個符號的一個角上畫n-1條短斜線做標記。23說明有時數據的源點和終點相同。如果只用一個符號代表數據的源點說明數據流與程序流程圖中用箭頭表示的控制流有本質不同,千萬不要混淆。熟悉程序流程圖的初學者在畫數據流圖時,往往試圖在數據流圖中表現分支條件或循環,殊不知這樣做將造成混亂,畫不出正確的數據流圖。24說明數據流與程序流程圖中用箭頭表示的控制流有本質不同,千萬不說明在數據流圖中應該描繪所有可能的數據流向,而不應該描繪出現某個數據流的條件。數據流圖的基本要點是描繪“做什么”而不考慮“怎樣做”。25說明在數據流圖中應該描繪所有可能的數據流向,而不應該描繪出現例子問題定義:一家工廠的采購部每天需要一張定貨報表,報表按零件編號排序,表中列出所有需要再次定貨的零件。對于每個需要再次定貨的零件應該列出下述數據:零件編號,零件名稱,定貨數量,目前價格,主要供應者,次要供應者。零件入庫或出庫稱為事務,通過放在倉庫中的CRT終端把事務報告給定貨系統。當某個零件的庫存數量少于庫存量臨界值時就應該再次定貨。26例子問題定義:一家工廠的采購部每天需要一張定貨報表,報表按零提取數據流圖的四種成分-1

“通過放在倉庫中的CRT終端把事務報告給定貨系統”——倉庫管理員是數據源點。“采購部每天需要一張定貨報表”——采購員是數據終點。“采購部需要報表”——用于產生報表的處理。“事務的后果是改變零件庫存量”——對事務進行的加工的處理。27提取數據流圖的四種成分-1“通過放在倉庫中的CRT終端把事提取數據流圖的四種成分-2“系統把定貨報表送給采購部”——定貨報表是一個數據流。“事務需要從倉庫送到系統中”——事務是一個數據流。“每當有一個事務發生時立即處理它,然而每天只產生一次定貨報表”——應該有一個數據存儲保存產生定貨報表的數據。“當某個零件的庫存數量少于庫存量臨界值時就應該再次定貨”——應該有一個數據存儲保存庫存清單數據。28提取數據流圖的四種成分-2“系統把定貨報表送給采購部”——數據流圖的四種成分29數據流圖的四種成分29定貨系統的基本系統模型倉庫管理員定貨系統采購員事務定貨報表

30定貨系統的基本系統模型倉庫定貨采購員事務定貨報表3定貨系統的功能級數據流圖31定貨系統的功能級數據流圖31把處理功能進一步分解后的數據流圖32把處理功能進一步分解后的數據流圖32注意當進一步分解將涉及如何具體地實現一個功能時就不應該再分解了。例如:為什么不進一步分解“產生報表”這個功能呢?定貨報表中需要的數據在存儲的定貨信息中全都有,產生報表只不過是按一定順序排列這些信息,再按一定格式打印出來。然而這些考慮純屬具體實現的細節,不應該在數據流圖中表現。33注意當進一步分解將涉及如何具體地實現一個功能時就不應該再分解注意當對數據流圖分層細化時必須保持信息連續性。也就是說,當把一個處理分解為一系列處理時,分解前和分解后的輸入/輸出數據流必須相同。34注意當對數據流圖分層細化時必須保持信息連續性。34注意應該注意在圖中對處理進行編號的方法。35注意應該注意在圖中對處理進行編號的方法。352.4.3命名數據流圖中每個成分的命名是否恰當,直接影響數據流圖的可理解性。362.4.3命名數據流圖中每個成分的命名是否恰當,直接影響為數據流(或數據存儲)命名名字應代表整個數據流(或數據存儲)的內容,而不是僅僅反映它的某些成分。不要使用空洞的、缺乏具體含義的名字(如:“數據”、“信息”、“輸入”等)。如果在為數據流(或數據存儲)起名字時遇到了困難,則很可能是因為對數據流圖分解不恰當造成的,應嘗試重新分解,看是否能克服這個困難。37為數據流(或數據存儲)命名名字應代表整個數據流(或數據存儲)為處理命名-1通常先為數據流命名,然后再為與之相關聯的處理命名。這樣命名比較容易,而且體現了人類習慣的“由表及里”的思考過程。名字應該反映整個處理的功能,而不是它的一部分功能。名字最好由一個具體的及物動詞,加上一個具體的賓語組成。應該盡量避免使用“加工”、“處理”等空洞籠統的動詞作名字。38為處理命名-1通常先為數據流命名,然后再為與之相關聯的處理命為處理命名-2通常名字中僅包括一個動詞,如果必須用兩個動詞才能描述整個處理的功能,則把這個處理再分解成兩個處理可能更恰當些。如果在為某個處理命名時遇到困難,則很可能是發現了分解不當的跡象,應考慮重新分解。39為處理命名-2通常名字中僅包括一個動詞,如果必須用兩個動詞才為數據源點/終點命名采用它們在問題域中習慣使用的名字(如“采購員”、“倉庫管理員”等)40為數據源點/終點命名采用它們在問題域中習慣使用的名字(如“采2.4.4用途-1畫數據流圖的基本目的是利用它作為交流信息的工具。數據流圖的另一個主要用途是作為分析和設計的工具。可以根據系統的邏輯模型考慮系統的物理實現。當用數據流圖輔助物理系統的設計時,以圖中不同處理的定時要求為指南,能夠在數據流圖上畫出許多組自動化邊界,每組自動化邊界可能意味著一個不同的物理系統。412.4.4用途-1畫數據流圖的基本目的是利用它作為交流信例1可以聯機地接收事務并放入隊列中,然而更新庫存清單、處理定貨和產生報表以批量方式進行。當然,這種方案需要增加一個數據存儲以存放事務數據。42例1可以聯機地接收事務并放入隊列中,然而更新庫存清單、處理定數據流圖43數據流圖43例2改變自動化邊界,把處理1.1、1.2和1.3放在同一個邊界內。這個系統將聯機地接收事務、更新庫存清單和處理定貨及輸出定貨信息;然而處理2將以批量方式產生定貨報表。44例2改變自動化邊界,把處理1.1、1.2和1.3放在同一個邊數據流圖45數據流圖452.4.4用途-2數據流圖對更詳細的設計步驟也有幫助。本書第五章將講述從數據流圖出發映射出軟件結構的方法——面向數據流的設計方法。462.4.4用途-2數據流圖對更詳細的設計步驟也有幫助。42.5數據字典數據字典是關于數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合。數據流圖和數據字典共同構成系統的邏輯模型,沒有數據字典數據流圖就不嚴格,然而沒有數據流圖數據字典也難于發揮作用。472.5數據字典數據字典是關于數據的信息的集合,也就是對數2.5.1數據字典的內容一般說來,數據字典應該由對下列四類元素的定義組成:(1)數據流(2)數據流分量(即,數據元素)(3)數據存儲(4)處理。本書中數據字典將主要由對數據的定義組成。數據處理的定義用其它工具(如IPO圖或PDL)描述更方便。482.5.1數據字典的內容一般說來,數據字典應該由對下列四數據字典中記錄的數據元素的信息一般信息:名字,別名,描述等。定義:數據類型,長度,結構等。使用特點:值的范圍,使用頻率,使用方式——輸入/輸出/本地,條件值等。控制信息:來源,用戶,使用它的程序,改變權,使用權等。分組信息:父結構,從屬結構,物理位置----記錄、文件和數據庫等。49數據字典中記錄的數據元素的信息一般信息:名字,別名,描述等出現別名主要原因對于同樣的數據,不同的用戶使用了不同的名字;一個分析員在不同時期對同一個數據使用了不同的名字;兩個分析員分別分析同一個數據流時,使用了不同的名字。50出現別名主要原因對于同樣的數據,不同的用戶使用了不同的名字2.5.2定義數據的方法數據字典中的定義就是對數據自頂向下的分解。一般說來,當分解到不需要進一步定義,每個和工程有關的人也都清楚其含義的元素時,這種分解過程就完成了。512.5.2定義數據的方法數據字典中的定義就是對數據自頂向數據元素組成數據的方式順序 即以確定次序連接兩個或多個分量;選擇 即從兩個或多個可能的元素中選取一個;重復 即把指定的分量重復零次或多次。可選

即一個分量是可有可無的(重復零次或一次)。52數據元素組成數據的方式順序 即以確定次序連接兩個或多個分量符號-1

=意思是等價于(或定義為)+意思是和(即,連接兩個分量)[]意思是或(即,從方括弧內列出的若干個分量中選擇一個)53符號-1=意思是等價于(或定義為)53符號-2{}意思是重復(即,重復花括弧內的分量)()意思是可選(即,圓括弧里的分量可有可無)54符號-2{}意思是重復(即,重復花括弧內的分量)542.5.3數據字典的用途數據字典最重要的用途是作為分析階段的工具。數據字典中包含的每個數據元素的控制信息是很有價值的。容易估計改變一個數據將產生的影響,并且能對所有受影響的程序或模塊作出相應的改變。最后,數據字典是開發數據庫的第一步。552.5.3數據字典的用途數據字典最重要的用途是作為分析階2.5.4數據字典的實現三種途徑:全人工過程全自動化過程(利用數據字典處理程序)混合過程(用正文編輯程序、報告生成程序等已有的使用程序幫助人工過程)562.5.4數據字典的實現三種途徑:56數據字典具有的特點通過名字能方便地查閱數據的定義。沒有冗余。盡量不重復在規格說明的其它組成部分中已經出現的信息。容易更新和修改。能單獨處理描述每個數據元素的信息。定義的書寫方法簡單方便而且嚴格。57數據字典具有的特點通過名字能方便地查閱數據的定義。57數據字典的例子-1名字:定貨報表別名:定貨信息描述:每天一次送給采購員的需要定貨的零件表定義:定貨報表=零件編號+零件名稱+定貨數量+目前價格+主要供應者+次要供應者位置:輸出到打印機58數據字典的例子-1名字:定貨報表58數據字典的例子-2名字:零件編號別名:描述:唯一地標識庫存清單中一個特定零件的關鍵域定義:零件編號=8{字符}8位置:定貨報表、定貨信息、庫存清單59數據字典的例子-2名字:零件編號59數據字典的例子-3名字:定貨數量別名:描述:某個零件一次定貨的數量定義:定貨數量=1{數字}5位置:定貨報表、定貨信息60數據字典的例子-3名字:定貨數量602.6成本/效益分析成本/效益分析的目的要從經濟角度分析開發一個特定的新系統是否劃算,從而幫助使用部門負責人正確地作出是否投資于這項開發工程的決定。

612.6成本/效益分析成本/效益分析的目的612.6.1成本估計軟件開發成本主要表現為人力消耗(乘以平均工資則得到開發費用)。代碼行技術任務分解技術自動估計成本技術622.6.1成本估計軟件開發成本主要表現為人力消耗(乘以平2.6.2成本/效益分析的方法成本/效益分析的第一步是估計開發成本、運行費用和新系統將帶來的經濟效益。運行費用:系統的操作費用(操作員人數,工作時間,消耗的物資等等)和維護費用。系統的經濟效益:因使用新系統而增加的收入加上使用新系統可以節省的運行費用。632.6.2成本/效益分析的方法成本/效益分析的第一步是估相關概念-1貨幣的時間價值假設年利率為i,如果現在存入P元,則n年后可以得到的錢數為:F=P(1+i)n反之,如果n年后能收入F元錢,那么這些錢的現在價值是P=F/(1+i)n64相關概念-1貨幣的時間價值64相關概念-2投資回收期通常用投資回收期衡量一項開發工程的價值。所謂投資回收期就是使累計的經濟效益等于最初投資所需要的時間。65相關概念-2投資回收期65相關概念-3純收入衡量工程價值的另一項經濟指標是工程的純收入。純收入就是在整個生命周期之內系統的累計經濟效益(折合成現在值)與投資之差。66相關概念-3純收入66相關概念-4投資回收率把資金存入銀行或貸給其他企業能夠獲得利息,通常用年利率衡量利息多少。類似地也可以計算投資回收率,用它衡量投資效益的大小,并且可以把它和年利率相比較,在衡量工程的經濟效益時,它是最重要的參考數據。67相關概念-4投資回收率67相關概念-4投資回收率計算公式:P=F1/(1+j)+F2/(1+j)2+…+Fn/(1+j)nP是現在的投資額;Fi是第i年年底的效益(i=1,2,…,n);n是系統的使用壽命;j是投資回收率;解出這個高階代數方程即可求出投資回收率(假設系統壽命n=5)。68相關概念-4投資回收率682.7小結-1可行性研究目的是進一步探討問題定義階段所確定的問題是否有可行的解。過程

1、經過定義問題,分析問題,提出解法的反復過程,最終提出一個符合系統目標的高層次的邏輯模型。 2、然后根據系統的這個邏輯模型設想各種可能的物理系統,并且從技術、經濟和操作等各方面分析這些物理系統的可行性。 3、最后,系統分析員提出一個推薦的行動方針,提交用戶和使用部門負責人審查批準。

692.7小結-1可行性研究目的是進一步探討問題定義階段2.7小結-2系統流程圖實質上是物理數據流圖,它描繪組成系統的主要物理元素以及信息在這些元素間流動和處理的情況。數據流圖的基本符號只有四種,它是描繪系統邏輯模型的極好工具。通常數據字典和數據流圖共同構成系統的邏輯模型。成本/效益分析是可行性研究的一項重要內容702.7小結-2系統流程圖實質上是物理數據流圖,它描繪Thanks!9/13/2004NEXTCHAP03需求分析作業:P434、571Thanks!NEXTCHAP03需求分析作業:P

軟件工程導論

SoftwareEngineering主講:呂曉華E-mail:bowen995@72 軟件工程導論

SoftwareEngineering主講Chap02可行性研究可行性研究的任務可行性研究過程系統流程圖數據流圖數據字典(內容、方法、用途、實現)成本/效益分析(成本估計、分析方法)可行性研究的目的就是用最小的代價在盡可能短的時間內確定問題是否能夠解決;可行性研究的目的不是解決問題,而是確定問題是否值得去解。

73Chap02可行性研究可行性研究的任務可行性研究的目的就2.1可行性研究的任務可行性研究實質上是要進行一次大大壓縮簡化了的系統分析和設計的過程,也就是在較高層次上以較抽象的方式進行的系統分析和設計的過程:分析和澄清問題定義導出系統的邏輯模型-探索系統實現方案:

技術可行性:現有的技術經濟可行性:開發成本操作可行性:用戶操作實現進度可行性研究的成本:預期的工程總成本的5%~10%742.1可行性研究的任務可行性研究實質上是要進行一次大大壓縮2.2可行性研究的步驟復查系統規模和目標研究目前正在使用的系統導出新系統的高層邏輯模型重新定義問題導出和評價供選擇的解法推薦行動方針草擬開發計劃書寫文檔提交審查752.2可行性研究的步驟復查系統規模和目標4復查系統規模和目標對問題定義階段書寫的關于規模和目標的報告書進一步復查確認。改正報告書中的敘述模糊、不正確的地方。這個步驟的工作,實質上是為了確保分析員正在解決的問題確實是要求他解決的問題。進一步復查確認“規模和目標報告書”76復查系統規模和目標對問題定義階段書寫的關于規模和目標的報告書研究目前正在使用的系統正在使用的系統的基本功能以及某些缺點分析現有系統的文檔資料和使用手冊,實地考察現有系統描繪現有系統的高層系統流程圖并確認記錄現有系統的接口77研究目前正在使用的系統正在使用的系統的基本功能以及某些缺點6導出新系統的高層邏輯模型設計過程通常總是從現有的物理系統出發,再參考現有系統的邏輯模型,設想目標系統的邏輯模型,最后根據目標系統的邏輯模型建造新的物理系統。使用數據流圖,描繪數據在系統中流動和處理的情況,從而概括地表達出對新系統的設想。通常為了把新系統描繪得更清晰準確,還應該有一個初步的數據字典,定義系統中使用的數據。數據流圖和數據字典共同定義了新系統的邏輯模型,以后可以從這個邏輯模型出發設計新系統。78導出新系統的高層邏輯模型設計過程通常總是從現有的物理系統出發重新定義問題分析員應該和用戶一起再次復查問題定義、工程規模和目標,這次復查應該把數據流圖和數據字典作為討論的基礎。可行性研究的前四個步驟實質上構成一個循環。

定義問題分析問題導出一個試探性的解重新定義問題符合系統目標?YN79重新定義問題分析員應該和用戶一起再次復查問題定義、工程規模和導出和評價供選擇的解法分析員應該從他建議的系統邏輯模型出發,導出若干個較高層次的(較抽象的)物理解法供比較和選擇。從技術角度出發考慮解決問題的不同方案。例如,2.4節中將舉例說明在數據流圖上劃分不同的自動化邊界根據技術可行性的考慮初步排除一些不現實的系統。例如,如果要求系統的響應時間不超過幾秒鐘,顯然應該排除任何批處理方案。考慮操作方面的可行性。分析員應該根據使用部門處理事務的原則和習慣檢查技術上可行的那些方案,去掉其中從操作方式或操作過程的角度看用戶不能接受的方案。考慮經濟方面的可行性。分析員應該估計余下的每個可能的系統的開發成本和運行費用,并且估計相對于現有的系統而言這個系統可以節省的開支或可以增加的收入。在這些估計數字的基礎上,對每個可能的系統進行成本/效益分析。(參看2.6節)制定實現進度表。通常只需要估計生命周期每個階段的工作量。80導出和評價供選擇的解法分析員應該從他建議的系統邏輯模型出發,推薦行動方針做出一個關鍵性的決定:是否繼續進行這項開發工程。如果分析員認為值得繼續進行這項開發工程,那么他應該選擇一種最好的解法,并且說明選擇這個解決方案的理由。81推薦行動方針做出一個關鍵性的決定:是否繼續進行這項開發工程。草擬開發計劃為推薦的系統草擬一份開發計劃:工程進度表估計對各種開發人員和各種資源的需要情況。估計系統生命周期每個階段的成本。最后應該給出下一個階段(需求分析)的詳細進度表和成本估計。82草擬開發計劃為推薦的系統草擬一份開發計劃:11書寫文檔提交審查寫成清晰的文檔,請用戶和使用部門的負責人仔細審查。83書寫文檔提交審查寫成清晰的文檔,請用戶和使用部門的負責人仔細2.3系統流程圖系統流程圖是描繪物理系統的傳統工具。它的基本思想是用圖形符號以黑盒子形式描繪系統里面的每個部件(程序,文件,數據庫,表格,人工過程等等)。系統流程圖表達的是信息在系統各部件之間流動的情況,而不是對信息進行加工處理的控制過程。盡管系統流程圖使用的某些符號和程序流程圖中用的符號相同,但是它卻是物理數據流程圖而不是程序流程圖。2.3.1符號842.3系統流程圖系統流程圖是描繪物理系統的傳統工具。2.基本符號

一個符號表示系統中的一個部件。

符號名

稱說

明處理能改變數據值或數據位置的加工或部件,例如,程序、處理機、人工加工等都是處理。輸入/輸出表示輸入或輸出(或既輸入又輸出),是一個廣義的不指明具體設備的符號。連接指出轉到圖的另一部分或從圖的另一部分轉來,通常在同一頁上。換頁連接指出轉到另一頁圖上或由另一頁圖轉來。

數據流用來連接其他符號,指明數據流動方向。85基本符號一個符號表示系統中的一個部件。符號名稱說系統符號

86系統符號152.3.2例子某裝配廠有一座存放零件的倉庫,倉庫中現有的各種零件的數量以及每種零件的庫存量臨界值等數據記錄在庫存清單主文件中。當倉庫中零件數量有變化時,應該及時修改庫存清單主文件,如果那種零件的庫存量少于它的庫存量臨界值,則應該報告給采購部門以便定貨,規定每天向采購部門送一次定貨報告。習慣畫法是使信息在圖中從頂向下,從左向右流動。系統流程圖872.3.2例子某裝配廠有一座存放零件的倉庫,倉庫中現有的各2.3.3分層首先用一張高層次的系統流程圖描繪系統總體概貌,表明系統的關鍵功能。然后分別把每個關鍵功能擴展到適當的詳細程度,畫在單獨的一頁紙上。這種分層次的描繪方法便于閱讀者按從抽象到具體的過程逐步深入地了解一個復雜的系統。提示:下一節--2.4數據流圖882.3.3分層首先用一張高層次的系統流程圖描繪系統總體概貌2.4數據流圖-1數據流圖描繪系統的邏輯模型,圖中沒有任何具體的物理元素,只是描繪信息在系統中流動和處理的情況。892.4數據流圖-1數據流圖描繪系統的邏輯模型,圖中沒有任2.4數據流圖-2因為數據流圖是邏輯系統的圖形表示,即使不是專業的計算機技術人員也容易理解,所以是極好的通信工具。此外,設計數據流圖只需考慮系統必須完成的基本邏輯功能,完全不需要考慮如何具體地實現這些功能,所以它也是軟件設計的很好的出發點。902.4數據流圖-2因為數據流圖是邏輯系統的圖形表示,即使四種基本符號表示數據的源點或終點。表示變換數據的處理。表示數據存儲(靜止數據)。表示數據流,即特定數據的流動方向(流動數據)。91四種基本符號表示數據的源點或終點。20三個附加符號*:表示數據之間是“與”關系。+:表示數據之間是“或”關系。:表示數據之間是“互斥”關系(只能從中選一個)。92三個附加符號*:表示數據之間是“與”關系。21說明數據存儲和數據流都是數據,僅僅所處的狀態不同。數據存儲是處于靜止狀態的數據,數據流是處于運動中的數據。93說明數據存儲和數據流都是數據,僅僅所處的狀態不同。數據存儲是說明有時數據的源點和終點相同。如果只用一個符號代表數據的源點和終點,則至少有兩個箭頭和這個符號相連(一個進一個出,)可能其中一條箭頭相當長,這將降低數據流圖的清晰度,如果代表同一個事物的同樣符號在圖中出現在n個地方,則在這個符號的一個角上畫n-1條短斜線做標記。94說明有時數據的源點和終點相同。如果只用一個符號代表數據的源點說明數據流與程序流程圖中用箭頭表示的控制流有本質不同,千萬不要混淆。熟悉程序流程圖的初學者在畫數據流圖時,往往試圖在數據流圖中表現分支條件或循環,殊不知這樣做將造成混亂,畫不出正確的數據流圖。95說明數據流與程序流程圖中用箭頭表示的控制流有本質不同,千萬不說明在數據流圖中應該描繪所有可能的數據流向,而不應該描繪出現某個數據流的條件。數據流圖的基本要點是描繪“做什么”而不考慮“怎樣做”。96說明在數據流圖中應該描繪所有可能的數據流向,而不應該描繪出現例子問題定義:一家工廠的采購部每天需要一張定貨報表,報表按零件編號排序,表中列出所有需要再次定貨的零件。對于每個需要再次定貨的零件應該列出下述數據:零件編號,零件名稱,定貨數量,目前價格,主要供應者,次要供應者。零件入庫或出庫稱為事務,通過放在倉庫中的CRT終端把事務報告給定貨系統。當某個零件的庫存數量少于庫存量臨界值時就應該再次定貨。97例子問題定義:一家工廠的采購部每天需要一張定貨報表,報表按零提取數據流圖的四種成分-1

“通過放在倉庫中的CRT終端把事務報告給定貨系統”——倉庫管理員是數據源點。“采購部每天需要一張定貨報表”——采購員是數據終點。“采購部需要報表”——用于產生報表的處理。“事務的后果是改變零件庫存量”——對事務進行的加工的處理。98提取數據流圖的四種成分-1“通過放在倉庫中的CRT終端把事提取數據流圖的四種成分-2“系統把定貨報表送給采購部”——定貨報表是一個數據流。“事務需要從倉庫送到系統中”——事務是一個數據流。“每當有一個事務發生時立即處理它,然而每天只產生一次定貨報表”——應該有一個數據存儲保存產生定貨報表的數據。“當某個零件的庫存數量少于庫存量臨界值時就應該再次定貨”——應該有一個數據存儲保存庫存清單數據。99提取數據流圖的四種成分-2“系統把定貨報表送給采購部”——數據流圖的四種成分100數據流圖的四種成分29定貨系統的基本系統模型倉庫管理員定貨系統采購員事務定貨報表

101定貨系統的基本系統模型倉庫定貨采購員事務定貨報表3定貨系統的功能級數據流圖102定貨系統的功能級數據流圖31把處理功能進一步分解后的數據流圖103把處理功能進一步分解后的數據流圖32注意當進一步分解將涉及如何具體地實現一個功能時就不應該再分解了。例如:為什么不進一步分解“產生報表”這個功能呢?定貨報表中需要的數據在存儲的定貨信息中全都有,產生報表只不過是按一定順序排列這些信息,再按一定格式打印出來。然而這些考慮純屬具體實現的細節,不應該在數據流圖中表現。104注意當進一步分解將涉及如何具體地實現一個功能時就不應該再分解注意當對數據流圖分層細化時必須保持信息連續性。也就是說,當把一個處理分解為一系列處理時,分解前和分解后的輸入/輸出數據流必須相同。105注意當對數據流圖分層細化時必須保持信息連續性。34注意應該注意在圖中對處理進行編號的方法。106注意應該注意在圖中對處理進行編號的方法。352.4.3命名數據流圖中每個成分的命名是否恰當,直接影響數據流圖的可理解性。1072.4.3命名數據流圖中每個成分的命名是否恰當,直接影響為數據流(或數據存儲)命名名字應代表整個數據流(或數據存儲)的內容,而不是僅僅反映它的某些成分。不要使用空洞的、缺乏具體含義的名字(如:“數據”、“信息”、“輸入”等)。如果在為數據流(或數據存儲)起名字時遇到了困難,則很可能是因為對數據流圖分解不恰當造成的,應嘗試重新分解,看是否能克服這個困難。108為數據流(或數據存儲)命名名字應代表整個數據流(或數據存儲)為處理命名-1通常先為數據流命名,然后再為與之相關聯的處理命名。這樣命名比較容易,而且體現了人類習慣的“由表及里”的思考過程。名字應該反映整個處理的功能,而不是它的一部分功能。名字最好由一個具體的及物動詞,加上一個具體的賓語組成。應該盡量避免使用“加工”、“處理”等空洞籠統的動詞作名字。109為處理命名-1通常先為數據流命名,然后再為與之相關聯的處理命為處理命名-2通常名字中僅包括一個動詞,如果必須用兩個動詞才能描述整個處理的功能,則把這個處理再分解成兩個處理可能更恰當些。如果在為某個處理命名時遇到困難,則很可能是發現了分解不當的跡象,應考慮重新分解。110為處理命名-2通常名字中僅包括一個動詞,如果必須用兩個動詞才為數據源點/終點命名采用它們在問題域中習慣使用的名字(如“采購員”、“倉庫管理員”等)111為數據源點/終點命名采用它們在問題域中習慣使用的名字(如“采2.4.4用途-1畫數據流圖的基本目的是利用它作為交流信息的工具。數據流圖的另一個主要用途是作為分析和設計的工具。可以根據系統的邏輯模型考慮系統的物理實現。當用數據流圖輔助物理系統的設計時,以圖中不同處理的定時要求為指南,能夠在數據流圖上畫出許多組自動化邊界,每組自動化邊界可能意味著一個不同的物理系統。1122.4.4用途-1畫數據流圖的基本目的是利用它作為交流信例1可以聯機地接收事務并放入隊列中,然而更新庫存清單、處理定貨和產生報表以批量方式進行。當然,這種方案需要增加一個數據存儲以存放事務數據。113例1可以聯機地接收事務并放入隊列中,然而更新庫存清單、處理定數據流圖114數據流圖43例2改變自動化邊界,把處理1.1、1.2和1.3放在同一個邊界內。這個系統將聯機地接收事務、更新庫存清單和處理定貨及輸出定貨信息;然而處理2將以批量方式產生定貨報表。115例2改變自動化邊界,把處理1.1、1.2和1.3放在同一個邊數據流圖116數據流圖452.4.4用途-2數據流圖對更詳細的設計步驟也有幫助。本書第五章將講述從數據流圖出發映射出軟件結構的方法——面向數據流的設計方法。1172.4.4用途-2數據流圖對更詳細的設計步驟也有幫助。42.5數據字典數據字典是關于數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合。數據流圖和數據字典共同構成系統的邏輯模型,沒有數據字典數據流圖就不嚴格,然而沒有數據流圖數據字典也難于發揮作用。1182.5數據字典數據字典是關于數據的信息的集合,也就是對數2.5.1數據字典的內容一般說來,數據字典應該由對下列四類元素的定義組成:(1)數據流(2)數據流分量(即,數據元素)(3)數據存儲(4)處理。本書中數據字典將主要由對數據的定義組成。數據處理的定義用其它工具(如IPO圖或PDL)描述更方便。1192.5.1數據字典的內容一般說來,數據字典應該由對下列四數據字典中記錄的數據元素的信息一般信息:名字,別名,描述等。定義:數據類型,長度,結構等。使用特點:值的范圍,使用頻率,使用方式——輸入/輸出/本地,條件值等。控制信息:來源,用戶,使用它的程序,改變權,使用權等。分組信息:父結構,從屬結構,物理位置----記錄、文件和數據庫等。120數據字典中記錄的數據元素的信息一般信息:名字,別名,描述等出現別名主要原因對于同樣的數據,不同的用戶使用了不同的名字;一個分析員在不同時期對同一個數據使用了不同的名字;兩個分析員分別分析同一個數據流時,使用了不同的名字。121出現別名主要原因對于同樣的數據,不同的用戶使用了不同的名字2.5.2定義數據的方法數據字典中的定義就是對數據自頂向下的分解。一般說來,當分解到不需要進一步定義,每個和工程有關的人也都清楚其含義的元素時,這種分解過程就完成了。1222.5.2定義數據的方法數據字典中的定義就是對數據自頂向數據元素組成數據的方式順序 即以確定次序連接兩個或多個分量;選擇 即從兩個或多個可能的元素中選取一個;重復 即把指定的分量重復零次或多次。可選

即一個分量是可有可無的(重復零次或一次)。123數據元素組成數據的方式順序 即以確定次序連接兩個或多個分量符號-1

=意思是等價于(或定義為)+意思是和(即,連接兩個分量)[]意思是或(即,從方括弧內列出的若干個分量中選擇一個)124符號-1=意思是等價于(或定義為)53符號-2{}意思是重復(即,重復花括弧內的分量)()意思是可選(即,圓括弧里的分量可有可無)125符號-2{}意思是重復(即,重復花括弧內的分量)542.5.3數據字典的用途數據字典最重要的用途是作為分析階段的工具。數據字典中包含的每個數據元素的控制信息是很有價值的。容易估計改變一個數據將產生的影響,并且能對所有受影響的程序或模塊作出相應的改變。最后,數據字典是開發數據庫的第一步。1262.5.3數據字典的用途數據字典最重要的用途是作為分析階2.5.4數據字典的實現三種途徑:全人工過程全自動化過程(利用數據字典處理程序)混合過程(用正文編輯程序、報告生成程序等已有的使用程序幫助人工過程)1272.5.4數據字典的實現三種途徑:56數據字典具有的特點通過名字能方便地查閱數據的定義。沒有冗余。盡量不重復在規格說明的其它組成部分中已經出現的信息。容易更新和修改。能單獨處理描述每個數據元素

溫馨提示

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

評論

0/150

提交評論