版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
軟件工程導論
SoftwareEngineering主講:呂曉華E-mail:bowen995@1 軟件工程導論
SoftwareEngineering主講Chap02可行性研究可行性研究的任務可行性研究過程系統(tǒng)流程圖數(shù)據(jù)流圖數(shù)據(jù)字典(內(nèi)容、方法、用途、實現(xiàn))成本/效益分析(成本估計、分析方法)可行性研究的目的就是用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決;可行性研究的目的不是解決問題,而是確定問題是否值得去解。
2Chap02可行性研究可行性研究的任務可行性研究的目的就2.1可行性研究的任務可行性研究實質(zhì)上是要進行一次大大壓縮簡化了的系統(tǒng)分析和設計的過程,也就是在較高層次上以較抽象的方式進行的系統(tǒng)分析和設計的過程:分析和澄清問題定義導出系統(tǒng)的邏輯模型-探索系統(tǒng)實現(xiàn)方案:
技術可行性:現(xiàn)有的技術經(jīng)濟可行性:開發(fā)成本操作可行性:用戶操作實現(xiàn)進度可行性研究的成本:預期的工程總成本的5%~10%32.1可行性研究的任務可行性研究實質(zhì)上是要進行一次大大壓縮2.2可行性研究的步驟復查系統(tǒng)規(guī)模和目標研究目前正在使用的系統(tǒng)導出新系統(tǒng)的高層邏輯模型重新定義問題導出和評價供選擇的解法推薦行動方針草擬開發(fā)計劃書寫文檔提交審查42.2可行性研究的步驟復查系統(tǒng)規(guī)模和目標4復查系統(tǒng)規(guī)模和目標對問題定義階段書寫的關于規(guī)模和目標的報告書進一步復查確認。改正報告書中的敘述模糊、不正確的地方。這個步驟的工作,實質(zhì)上是為了確保分析員正在解決的問題確實是要求他解決的問題。進一步復查確認“規(guī)模和目標報告書”5復查系統(tǒng)規(guī)模和目標對問題定義階段書寫的關于規(guī)模和目標的報告書研究目前正在使用的系統(tǒng)正在使用的系統(tǒng)的基本功能以及某些缺點分析現(xiàn)有系統(tǒng)的文檔資料和使用手冊,實地考察現(xiàn)有系統(tǒng)描繪現(xiàn)有系統(tǒng)的高層系統(tǒng)流程圖并確認記錄現(xiàn)有系統(tǒng)的接口6研究目前正在使用的系統(tǒng)正在使用的系統(tǒng)的基本功能以及某些缺點6導出新系統(tǒng)的高層邏輯模型設計過程通??偸菑默F(xiàn)有的物理系統(tǒng)出發(fā),再參考現(xiàn)有系統(tǒng)的邏輯模型,設想目標系統(tǒng)的邏輯模型,最后根據(jù)目標系統(tǒng)的邏輯模型建造新的物理系統(tǒng)。使用數(shù)據(jù)流圖,描繪數(shù)據(jù)在系統(tǒng)中流動和處理的情況,從而概括地表達出對新系統(tǒng)的設想。通常為了把新系統(tǒng)描繪得更清晰準確,還應該有一個初步的數(shù)據(jù)字典,定義系統(tǒng)中使用的數(shù)據(jù)。數(shù)據(jù)流圖和數(shù)據(jù)字典共同定義了新系統(tǒng)的邏輯模型,以后可以從這個邏輯模型出發(fā)設計新系統(tǒng)。7導出新系統(tǒng)的高層邏輯模型設計過程通??偸菑默F(xiàn)有的物理系統(tǒng)出發(fā)重新定義問題分析員應該和用戶一起再次復查問題定義、工程規(guī)模和目標,這次復查應該把數(shù)據(jù)流圖和數(shù)據(jù)字典作為討論的基礎??尚行匝芯康那八膫€步驟實質(zhì)上構(gòu)成一個循環(huán)。
定義問題分析問題導出一個試探性的解重新定義問題符合系統(tǒng)目標?YN8重新定義問題分析員應該和用戶一起再次復查問題定義、工程規(guī)模和導出和評價供選擇的解法分析員應該從他建議的系統(tǒng)邏輯模型出發(fā),導出若干個較高層次的(較抽象的)物理解法供比較和選擇。從技術角度出發(fā)考慮解決問題的不同方案。例如,2.4節(jié)中將舉例說明在數(shù)據(jù)流圖上劃分不同的自動化邊界根據(jù)技術可行性的考慮初步排除一些不現(xiàn)實的系統(tǒng)。例如,如果要求系統(tǒng)的響應時間不超過幾秒鐘,顯然應該排除任何批處理方案??紤]操作方面的可行性。分析員應該根據(jù)使用部門處理事務的原則和習慣檢查技術上可行的那些方案,去掉其中從操作方式或操作過程的角度看用戶不能接受的方案。考慮經(jīng)濟方面的可行性。分析員應該估計余下的每個可能的系統(tǒng)的開發(fā)成本和運行費用,并且估計相對于現(xiàn)有的系統(tǒng)而言這個系統(tǒng)可以節(jié)省的開支或可以增加的收入。在這些估計數(shù)字的基礎上,對每個可能的系統(tǒng)進行成本/效益分析。(參看2.6節(jié))制定實現(xiàn)進度表。通常只需要估計生命周期每個階段的工作量。9導出和評價供選擇的解法分析員應該從他建議的系統(tǒng)邏輯模型出發(fā),推薦行動方針做出一個關鍵性的決定:是否繼續(xù)進行這項開發(fā)工程。如果分析員認為值得繼續(xù)進行這項開發(fā)工程,那么他應該選擇一種最好的解法,并且說明選擇這個解決方案的理由。10推薦行動方針做出一個關鍵性的決定:是否繼續(xù)進行這項開發(fā)工程。草擬開發(fā)計劃為推薦的系統(tǒng)草擬一份開發(fā)計劃:工程進度表估計對各種開發(fā)人員和各種資源的需要情況。估計系統(tǒng)生命周期每個階段的成本。最后應該給出下一個階段(需求分析)的詳細進度表和成本估計。11草擬開發(fā)計劃為推薦的系統(tǒng)草擬一份開發(fā)計劃:11書寫文檔提交審查寫成清晰的文檔,請用戶和使用部門的負責人仔細審查。12書寫文檔提交審查寫成清晰的文檔,請用戶和使用部門的負責人仔細2.3系統(tǒng)流程圖系統(tǒng)流程圖是描繪物理系統(tǒng)的傳統(tǒng)工具。它的基本思想是用圖形符號以黑盒子形式描繪系統(tǒng)里面的每個部件(程序,文件,數(shù)據(jù)庫,表格,人工過程等等)。系統(tǒng)流程圖表達的是信息在系統(tǒng)各部件之間流動的情況,而不是對信息進行加工處理的控制過程。盡管系統(tǒng)流程圖使用的某些符號和程序流程圖中用的符號相同,但是它卻是物理數(shù)據(jù)流程圖而不是程序流程圖。2.3.1符號132.3系統(tǒng)流程圖系統(tǒng)流程圖是描繪物理系統(tǒng)的傳統(tǒng)工具。2.基本符號
一個符號表示系統(tǒng)中的一個部件。
符號名
稱說
明處理能改變數(shù)據(jù)值或數(shù)據(jù)位置的加工或部件,例如,程序、處理機、人工加工等都是處理。輸入/輸出表示輸入或輸出(或既輸入又輸出),是一個廣義的不指明具體設備的符號。連接指出轉(zhuǎn)到圖的另一部分或從圖的另一部分轉(zhuǎn)來,通常在同一頁上。換頁連接指出轉(zhuǎn)到另一頁圖上或由另一頁圖轉(zhuǎn)來。
數(shù)據(jù)流用來連接其他符號,指明數(shù)據(jù)流動方向。14基本符號一個符號表示系統(tǒng)中的一個部件。符號名稱說系統(tǒng)符號
15系統(tǒng)符號152.3.2例子某裝配廠有一座存放零件的倉庫,倉庫中現(xiàn)有的各種零件的數(shù)量以及每種零件的庫存量臨界值等數(shù)據(jù)記錄在庫存清單主文件中。當倉庫中零件數(shù)量有變化時,應該及時修改庫存清單主文件,如果那種零件的庫存量少于它的庫存量臨界值,則應該報告給采購部門以便定貨,規(guī)定每天向采購部門送一次定貨報告。習慣畫法是使信息在圖中從頂向下,從左向右流動。系統(tǒng)流程圖162.3.2例子某裝配廠有一座存放零件的倉庫,倉庫中現(xiàn)有的各2.3.3分層首先用一張高層次的系統(tǒng)流程圖描繪系統(tǒng)總體概貌,表明系統(tǒng)的關鍵功能。然后分別把每個關鍵功能擴展到適當?shù)脑敿毘潭龋嬙趩为毜囊豁摷埳?。這種分層次的描繪方法便于閱讀者按從抽象到具體的過程逐步深入地了解一個復雜的系統(tǒng)。提示:下一節(jié)--2.4數(shù)據(jù)流圖172.3.3分層首先用一張高層次的系統(tǒng)流程圖描繪系統(tǒng)總體概貌2.4數(shù)據(jù)流圖-1數(shù)據(jù)流圖描繪系統(tǒng)的邏輯模型,圖中沒有任何具體的物理元素,只是描繪信息在系統(tǒng)中流動和處理的情況。182.4數(shù)據(jù)流圖-1數(shù)據(jù)流圖描繪系統(tǒng)的邏輯模型,圖中沒有任2.4數(shù)據(jù)流圖-2因為數(shù)據(jù)流圖是邏輯系統(tǒng)的圖形表示,即使不是專業(yè)的計算機技術人員也容易理解,所以是極好的通信工具。此外,設計數(shù)據(jù)流圖只需考慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮如何具體地實現(xiàn)這些功能,所以它也是軟件設計的很好的出發(fā)點。192.4數(shù)據(jù)流圖-2因為數(shù)據(jù)流圖是邏輯系統(tǒng)的圖形表示,即使四種基本符號表示數(shù)據(jù)的源點或終點。表示變換數(shù)據(jù)的處理。表示數(shù)據(jù)存儲(靜止數(shù)據(jù))。表示數(shù)據(jù)流,即特定數(shù)據(jù)的流動方向(流動數(shù)據(jù))。20四種基本符號表示數(shù)據(jù)的源點或終點。20三個附加符號*:表示數(shù)據(jù)之間是“與”關系。+:表示數(shù)據(jù)之間是“或”關系。:表示數(shù)據(jù)之間是“互斥”關系(只能從中選一個)。21三個附加符號*:表示數(shù)據(jù)之間是“與”關系。21說明數(shù)據(jù)存儲和數(shù)據(jù)流都是數(shù)據(jù),僅僅所處的狀態(tài)不同。數(shù)據(jù)存儲是處于靜止狀態(tài)的數(shù)據(jù),數(shù)據(jù)流是處于運動中的數(shù)據(jù)。22說明數(shù)據(jù)存儲和數(shù)據(jù)流都是數(shù)據(jù),僅僅所處的狀態(tài)不同。數(shù)據(jù)存儲是說明有時數(shù)據(jù)的源點和終點相同。如果只用一個符號代表數(shù)據(jù)的源點和終點,則至少有兩個箭頭和這個符號相連(一個進一個出,)可能其中一條箭頭相當長,這將降低數(shù)據(jù)流圖的清晰度,如果代表同一個事物的同樣符號在圖中出現(xiàn)在n個地方,則在這個符號的一個角上畫n-1條短斜線做標記。23說明有時數(shù)據(jù)的源點和終點相同。如果只用一個符號代表數(shù)據(jù)的源點說明數(shù)據(jù)流與程序流程圖中用箭頭表示的控制流有本質(zhì)不同,千萬不要混淆。熟悉程序流程圖的初學者在畫數(shù)據(jù)流圖時,往往試圖在數(shù)據(jù)流圖中表現(xiàn)分支條件或循環(huán),殊不知這樣做將造成混亂,畫不出正確的數(shù)據(jù)流圖。24說明數(shù)據(jù)流與程序流程圖中用箭頭表示的控制流有本質(zhì)不同,千萬不說明在數(shù)據(jù)流圖中應該描繪所有可能的數(shù)據(jù)流向,而不應該描繪出現(xiàn)某個數(shù)據(jù)流的條件。數(shù)據(jù)流圖的基本要點是描繪“做什么”而不考慮“怎樣做”。25說明在數(shù)據(jù)流圖中應該描繪所有可能的數(shù)據(jù)流向,而不應該描繪出現(xiàn)例子問題定義:一家工廠的采購部每天需要一張定貨報表,報表按零件編號排序,表中列出所有需要再次定貨的零件。對于每個需要再次定貨的零件應該列出下述數(shù)據(jù):零件編號,零件名稱,定貨數(shù)量,目前價格,主要供應者,次要供應者。零件入庫或出庫稱為事務,通過放在倉庫中的CRT終端把事務報告給定貨系統(tǒng)。當某個零件的庫存數(shù)量少于庫存量臨界值時就應該再次定貨。26例子問題定義:一家工廠的采購部每天需要一張定貨報表,報表按零提取數(shù)據(jù)流圖的四種成分-1
“通過放在倉庫中的CRT終端把事務報告給定貨系統(tǒng)”——倉庫管理員是數(shù)據(jù)源點。“采購部每天需要一張定貨報表”——采購員是數(shù)據(jù)終點?!安少彶啃枰獔蟊怼薄糜诋a(chǎn)生報表的處理。“事務的后果是改變零件庫存量”——對事務進行的加工的處理。27提取數(shù)據(jù)流圖的四種成分-1“通過放在倉庫中的CRT終端把事提取數(shù)據(jù)流圖的四種成分-2“系統(tǒng)把定貨報表送給采購部”——定貨報表是一個數(shù)據(jù)流?!笆聞招枰獜膫}庫送到系統(tǒng)中”——事務是一個數(shù)據(jù)流。“每當有一個事務發(fā)生時立即處理它,然而每天只產(chǎn)生一次定貨報表”——應該有一個數(shù)據(jù)存儲保存產(chǎn)生定貨報表的數(shù)據(jù)?!爱斈硞€零件的庫存數(shù)量少于庫存量臨界值時就應該再次定貨”——應該有一個數(shù)據(jù)存儲保存庫存清單數(shù)據(jù)。28提取數(shù)據(jù)流圖的四種成分-2“系統(tǒng)把定貨報表送給采購部”——數(shù)據(jù)流圖的四種成分29數(shù)據(jù)流圖的四種成分29定貨系統(tǒng)的基本系統(tǒng)模型倉庫管理員定貨系統(tǒng)采購員事務定貨報表
30定貨系統(tǒng)的基本系統(tǒng)模型倉庫定貨采購員事務定貨報表3定貨系統(tǒng)的功能級數(shù)據(jù)流圖31定貨系統(tǒng)的功能級數(shù)據(jù)流圖31把處理功能進一步分解后的數(shù)據(jù)流圖32把處理功能進一步分解后的數(shù)據(jù)流圖32注意當進一步分解將涉及如何具體地實現(xiàn)一個功能時就不應該再分解了。例如:為什么不進一步分解“產(chǎn)生報表”這個功能呢?定貨報表中需要的數(shù)據(jù)在存儲的定貨信息中全都有,產(chǎn)生報表只不過是按一定順序排列這些信息,再按一定格式打印出來。然而這些考慮純屬具體實現(xiàn)的細節(jié),不應該在數(shù)據(jù)流圖中表現(xiàn)。33注意當進一步分解將涉及如何具體地實現(xiàn)一個功能時就不應該再分解注意當對數(shù)據(jù)流圖分層細化時必須保持信息連續(xù)性。也就是說,當把一個處理分解為一系列處理時,分解前和分解后的輸入/輸出數(shù)據(jù)流必須相同。34注意當對數(shù)據(jù)流圖分層細化時必須保持信息連續(xù)性。34注意應該注意在圖中對處理進行編號的方法。35注意應該注意在圖中對處理進行編號的方法。352.4.3命名數(shù)據(jù)流圖中每個成分的命名是否恰當,直接影響數(shù)據(jù)流圖的可理解性。362.4.3命名數(shù)據(jù)流圖中每個成分的命名是否恰當,直接影響為數(shù)據(jù)流(或數(shù)據(jù)存儲)命名名字應代表整個數(shù)據(jù)流(或數(shù)據(jù)存儲)的內(nèi)容,而不是僅僅反映它的某些成分。不要使用空洞的、缺乏具體含義的名字(如:“數(shù)據(jù)”、“信息”、“輸入”等)。如果在為數(shù)據(jù)流(或數(shù)據(jù)存儲)起名字時遇到了困難,則很可能是因為對數(shù)據(jù)流圖分解不恰當造成的,應嘗試重新分解,看是否能克服這個困難。37為數(shù)據(jù)流(或數(shù)據(jù)存儲)命名名字應代表整個數(shù)據(jù)流(或數(shù)據(jù)存儲)為處理命名-1通常先為數(shù)據(jù)流命名,然后再為與之相關聯(lián)的處理命名。這樣命名比較容易,而且體現(xiàn)了人類習慣的“由表及里”的思考過程。名字應該反映整個處理的功能,而不是它的一部分功能。名字最好由一個具體的及物動詞,加上一個具體的賓語組成。應該盡量避免使用“加工”、“處理”等空洞籠統(tǒng)的動詞作名字。38為處理命名-1通常先為數(shù)據(jù)流命名,然后再為與之相關聯(lián)的處理命為處理命名-2通常名字中僅包括一個動詞,如果必須用兩個動詞才能描述整個處理的功能,則把這個處理再分解成兩個處理可能更恰當些。如果在為某個處理命名時遇到困難,則很可能是發(fā)現(xiàn)了分解不當?shù)嫩E象,應考慮重新分解。39為處理命名-2通常名字中僅包括一個動詞,如果必須用兩個動詞才為數(shù)據(jù)源點/終點命名采用它們在問題域中習慣使用的名字(如“采購員”、“倉庫管理員”等)40為數(shù)據(jù)源點/終點命名采用它們在問題域中習慣使用的名字(如“采2.4.4用途-1畫數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工具。數(shù)據(jù)流圖的另一個主要用途是作為分析和設計的工具??梢愿鶕?jù)系統(tǒng)的邏輯模型考慮系統(tǒng)的物理實現(xiàn)。當用數(shù)據(jù)流圖輔助物理系統(tǒng)的設計時,以圖中不同處理的定時要求為指南,能夠在數(shù)據(jù)流圖上畫出許多組自動化邊界,每組自動化邊界可能意味著一個不同的物理系統(tǒng)。412.4.4用途-1畫數(shù)據(jù)流圖的基本目的是利用它作為交流信例1可以聯(lián)機地接收事務并放入隊列中,然而更新庫存清單、處理定貨和產(chǎn)生報表以批量方式進行。當然,這種方案需要增加一個數(shù)據(jù)存儲以存放事務數(shù)據(jù)。42例1可以聯(lián)機地接收事務并放入隊列中,然而更新庫存清單、處理定數(shù)據(jù)流圖43數(shù)據(jù)流圖43例2改變自動化邊界,把處理1.1、1.2和1.3放在同一個邊界內(nèi)。這個系統(tǒng)將聯(lián)機地接收事務、更新庫存清單和處理定貨及輸出定貨信息;然而處理2將以批量方式產(chǎn)生定貨報表。44例2改變自動化邊界,把處理1.1、1.2和1.3放在同一個邊數(shù)據(jù)流圖45數(shù)據(jù)流圖452.4.4用途-2數(shù)據(jù)流圖對更詳細的設計步驟也有幫助。本書第五章將講述從數(shù)據(jù)流圖出發(fā)映射出軟件結(jié)構(gòu)的方法——面向數(shù)據(jù)流的設計方法。462.4.4用途-2數(shù)據(jù)流圖對更詳細的設計步驟也有幫助。42.5數(shù)據(jù)字典數(shù)據(jù)字典是關于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素的定義的集合。數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型,沒有數(shù)據(jù)字典數(shù)據(jù)流圖就不嚴格,然而沒有數(shù)據(jù)流圖數(shù)據(jù)字典也難于發(fā)揮作用。472.5數(shù)據(jù)字典數(shù)據(jù)字典是關于數(shù)據(jù)的信息的集合,也就是對數(shù)2.5.1數(shù)據(jù)字典的內(nèi)容一般說來,數(shù)據(jù)字典應該由對下列四類元素的定義組成:(1)數(shù)據(jù)流(2)數(shù)據(jù)流分量(即,數(shù)據(jù)元素)(3)數(shù)據(jù)存儲(4)處理。本書中數(shù)據(jù)字典將主要由對數(shù)據(jù)的定義組成。數(shù)據(jù)處理的定義用其它工具(如IPO圖或PDL)描述更方便。482.5.1數(shù)據(jù)字典的內(nèi)容一般說來,數(shù)據(jù)字典應該由對下列四數(shù)據(jù)字典中記錄的數(shù)據(jù)元素的信息一般信息:名字,別名,描述等。定義:數(shù)據(jù)類型,長度,結(jié)構(gòu)等。使用特點:值的范圍,使用頻率,使用方式——輸入/輸出/本地,條件值等。控制信息:來源,用戶,使用它的程序,改變權,使用權等。分組信息:父結(jié)構(gòu),從屬結(jié)構(gòu),物理位置----記錄、文件和數(shù)據(jù)庫等。49數(shù)據(jù)字典中記錄的數(shù)據(jù)元素的信息一般信息:名字,別名,描述等出現(xiàn)別名主要原因?qū)τ谕瑯拥臄?shù)據(jù),不同的用戶使用了不同的名字;一個分析員在不同時期對同一個數(shù)據(jù)使用了不同的名字;兩個分析員分別分析同一個數(shù)據(jù)流時,使用了不同的名字。50出現(xiàn)別名主要原因?qū)τ谕瑯拥臄?shù)據(jù),不同的用戶使用了不同的名字2.5.2定義數(shù)據(jù)的方法數(shù)據(jù)字典中的定義就是對數(shù)據(jù)自頂向下的分解。一般說來,當分解到不需要進一步定義,每個和工程有關的人也都清楚其含義的元素時,這種分解過程就完成了。512.5.2定義數(shù)據(jù)的方法數(shù)據(jù)字典中的定義就是對數(shù)據(jù)自頂向數(shù)據(jù)元素組成數(shù)據(jù)的方式順序 即以確定次序連接兩個或多個分量;選擇 即從兩個或多個可能的元素中選取一個;重復 即把指定的分量重復零次或多次??蛇x
即一個分量是可有可無的(重復零次或一次)。52數(shù)據(jù)元素組成數(shù)據(jù)的方式順序 即以確定次序連接兩個或多個分量符號-1
=意思是等價于(或定義為)+意思是和(即,連接兩個分量)[]意思是或(即,從方括弧內(nèi)列出的若干個分量中選擇一個)53符號-1=意思是等價于(或定義為)53符號-2{}意思是重復(即,重復花括弧內(nèi)的分量)()意思是可選(即,圓括弧里的分量可有可無)54符號-2{}意思是重復(即,重復花括弧內(nèi)的分量)542.5.3數(shù)據(jù)字典的用途數(shù)據(jù)字典最重要的用途是作為分析階段的工具。數(shù)據(jù)字典中包含的每個數(shù)據(jù)元素的控制信息是很有價值的。容易估計改變一個數(shù)據(jù)將產(chǎn)生的影響,并且能對所有受影響的程序或模塊作出相應的改變。最后,數(shù)據(jù)字典是開發(fā)數(shù)據(jù)庫的第一步。552.5.3數(shù)據(jù)字典的用途數(shù)據(jù)字典最重要的用途是作為分析階2.5.4數(shù)據(jù)字典的實現(xiàn)三種途徑:全人工過程全自動化過程(利用數(shù)據(jù)字典處理程序)混合過程(用正文編輯程序、報告生成程序等已有的使用程序幫助人工過程)562.5.4數(shù)據(jù)字典的實現(xiàn)三種途徑:56數(shù)據(jù)字典具有的特點通過名字能方便地查閱數(shù)據(jù)的定義。沒有冗余。盡量不重復在規(guī)格說明的其它組成部分中已經(jīng)出現(xiàn)的信息。容易更新和修改。能單獨處理描述每個數(shù)據(jù)元素的信息。定義的書寫方法簡單方便而且嚴格。57數(shù)據(jù)字典具有的特點通過名字能方便地查閱數(shù)據(jù)的定義。57數(shù)據(jù)字典的例子-1名字:定貨報表別名:定貨信息描述:每天一次送給采購員的需要定貨的零件表定義:定貨報表=零件編號+零件名稱+定貨數(shù)量+目前價格+主要供應者+次要供應者位置:輸出到打印機58數(shù)據(jù)字典的例子-1名字:定貨報表58數(shù)據(jù)字典的例子-2名字:零件編號別名:描述:唯一地標識庫存清單中一個特定零件的關鍵域定義:零件編號=8{字符}8位置:定貨報表、定貨信息、庫存清單59數(shù)據(jù)字典的例子-2名字:零件編號59數(shù)據(jù)字典的例子-3名字:定貨數(shù)量別名:描述:某個零件一次定貨的數(shù)量定義:定貨數(shù)量=1{數(shù)字}5位置:定貨報表、定貨信息60數(shù)據(jù)字典的例子-3名字:定貨數(shù)量602.6成本/效益分析成本/效益分析的目的要從經(jīng)濟角度分析開發(fā)一個特定的新系統(tǒng)是否劃算,從而幫助使用部門負責人正確地作出是否投資于這項開發(fā)工程的決定。
612.6成本/效益分析成本/效益分析的目的612.6.1成本估計軟件開發(fā)成本主要表現(xiàn)為人力消耗(乘以平均工資則得到開發(fā)費用)。代碼行技術任務分解技術自動估計成本技術622.6.1成本估計軟件開發(fā)成本主要表現(xiàn)為人力消耗(乘以平2.6.2成本/效益分析的方法成本/效益分析的第一步是估計開發(fā)成本、運行費用和新系統(tǒng)將帶來的經(jīng)濟效益。運行費用:系統(tǒng)的操作費用(操作員人數(shù),工作時間,消耗的物資等等)和維護費用。系統(tǒng)的經(jīng)濟效益:因使用新系統(tǒng)而增加的收入加上使用新系統(tǒng)可以節(jié)省的運行費用。632.6.2成本/效益分析的方法成本/效益分析的第一步是估相關概念-1貨幣的時間價值假設年利率為i,如果現(xiàn)在存入P元,則n年后可以得到的錢數(shù)為:F=P(1+i)n反之,如果n年后能收入F元錢,那么這些錢的現(xiàn)在價值是P=F/(1+i)n64相關概念-1貨幣的時間價值64相關概念-2投資回收期通常用投資回收期衡量一項開發(fā)工程的價值。所謂投資回收期就是使累計的經(jīng)濟效益等于最初投資所需要的時間。65相關概念-2投資回收期65相關概念-3純收入衡量工程價值的另一項經(jīng)濟指標是工程的純收入。純收入就是在整個生命周期之內(nèi)系統(tǒng)的累計經(jīng)濟效益(折合成現(xiàn)在值)與投資之差。66相關概念-3純收入66相關概念-4投資回收率把資金存入銀行或貸給其他企業(yè)能夠獲得利息,通常用年利率衡量利息多少。類似地也可以計算投資回收率,用它衡量投資效益的大小,并且可以把它和年利率相比較,在衡量工程的經(jīng)濟效益時,它是最重要的參考數(shù)據(jù)。67相關概念-4投資回收率67相關概念-4投資回收率計算公式:P=F1/(1+j)+F2/(1+j)2+…+Fn/(1+j)nP是現(xiàn)在的投資額;Fi是第i年年底的效益(i=1,2,…,n);n是系統(tǒng)的使用壽命;j是投資回收率;解出這個高階代數(shù)方程即可求出投資回收率(假設系統(tǒng)壽命n=5)。68相關概念-4投資回收率682.7小結(jié)-1可行性研究目的是進一步探討問題定義階段所確定的問題是否有可行的解。過程
1、經(jīng)過定義問題,分析問題,提出解法的反復過程,最終提出一個符合系統(tǒng)目標的高層次的邏輯模型。 2、然后根據(jù)系統(tǒng)的這個邏輯模型設想各種可能的物理系統(tǒng),并且從技術、經(jīng)濟和操作等各方面分析這些物理系統(tǒng)的可行性。 3、最后,系統(tǒng)分析員提出一個推薦的行動方針,提交用戶和使用部門負責人審查批準。
692.7小結(jié)-1可行性研究目的是進一步探討問題定義階段2.7小結(jié)-2系統(tǒng)流程圖實質(zhì)上是物理數(shù)據(jù)流圖,它描繪組成系統(tǒng)的主要物理元素以及信息在這些元素間流動和處理的情況。數(shù)據(jù)流圖的基本符號只有四種,它是描繪系統(tǒng)邏輯模型的極好工具。通常數(shù)據(jù)字典和數(shù)據(jù)流圖共同構(gòu)成系統(tǒng)的邏輯模型。成本/效益分析是可行性研究的一項重要內(nèi)容702.7小結(jié)-2系統(tǒng)流程圖實質(zhì)上是物理數(shù)據(jù)流圖,它描繪Thanks!9/13/2004NEXTCHAP03需求分析作業(yè):P434、571Thanks!NEXTCHAP03需求分析作業(yè):P
軟件工程導論
SoftwareEngineering主講:呂曉華E-mail:bowen995@72 軟件工程導論
SoftwareEngineering主講Chap02可行性研究可行性研究的任務可行性研究過程系統(tǒng)流程圖數(shù)據(jù)流圖數(shù)據(jù)字典(內(nèi)容、方法、用途、實現(xiàn))成本/效益分析(成本估計、分析方法)可行性研究的目的就是用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決;可行性研究的目的不是解決問題,而是確定問題是否值得去解。
73Chap02可行性研究可行性研究的任務可行性研究的目的就2.1可行性研究的任務可行性研究實質(zhì)上是要進行一次大大壓縮簡化了的系統(tǒng)分析和設計的過程,也就是在較高層次上以較抽象的方式進行的系統(tǒng)分析和設計的過程:分析和澄清問題定義導出系統(tǒng)的邏輯模型-探索系統(tǒng)實現(xiàn)方案:
技術可行性:現(xiàn)有的技術經(jīng)濟可行性:開發(fā)成本操作可行性:用戶操作實現(xiàn)進度可行性研究的成本:預期的工程總成本的5%~10%742.1可行性研究的任務可行性研究實質(zhì)上是要進行一次大大壓縮2.2可行性研究的步驟復查系統(tǒng)規(guī)模和目標研究目前正在使用的系統(tǒng)導出新系統(tǒng)的高層邏輯模型重新定義問題導出和評價供選擇的解法推薦行動方針草擬開發(fā)計劃書寫文檔提交審查752.2可行性研究的步驟復查系統(tǒng)規(guī)模和目標4復查系統(tǒng)規(guī)模和目標對問題定義階段書寫的關于規(guī)模和目標的報告書進一步復查確認。改正報告書中的敘述模糊、不正確的地方。這個步驟的工作,實質(zhì)上是為了確保分析員正在解決的問題確實是要求他解決的問題。進一步復查確認“規(guī)模和目標報告書”76復查系統(tǒng)規(guī)模和目標對問題定義階段書寫的關于規(guī)模和目標的報告書研究目前正在使用的系統(tǒng)正在使用的系統(tǒng)的基本功能以及某些缺點分析現(xiàn)有系統(tǒng)的文檔資料和使用手冊,實地考察現(xiàn)有系統(tǒng)描繪現(xiàn)有系統(tǒng)的高層系統(tǒng)流程圖并確認記錄現(xiàn)有系統(tǒng)的接口77研究目前正在使用的系統(tǒng)正在使用的系統(tǒng)的基本功能以及某些缺點6導出新系統(tǒng)的高層邏輯模型設計過程通??偸菑默F(xiàn)有的物理系統(tǒng)出發(fā),再參考現(xiàn)有系統(tǒng)的邏輯模型,設想目標系統(tǒng)的邏輯模型,最后根據(jù)目標系統(tǒng)的邏輯模型建造新的物理系統(tǒng)。使用數(shù)據(jù)流圖,描繪數(shù)據(jù)在系統(tǒng)中流動和處理的情況,從而概括地表達出對新系統(tǒng)的設想。通常為了把新系統(tǒng)描繪得更清晰準確,還應該有一個初步的數(shù)據(jù)字典,定義系統(tǒng)中使用的數(shù)據(jù)。數(shù)據(jù)流圖和數(shù)據(jù)字典共同定義了新系統(tǒng)的邏輯模型,以后可以從這個邏輯模型出發(fā)設計新系統(tǒng)。78導出新系統(tǒng)的高層邏輯模型設計過程通??偸菑默F(xiàn)有的物理系統(tǒng)出發(fā)重新定義問題分析員應該和用戶一起再次復查問題定義、工程規(guī)模和目標,這次復查應該把數(shù)據(jù)流圖和數(shù)據(jù)字典作為討論的基礎??尚行匝芯康那八膫€步驟實質(zhì)上構(gòu)成一個循環(huán)。
定義問題分析問題導出一個試探性的解重新定義問題符合系統(tǒng)目標?YN79重新定義問題分析員應該和用戶一起再次復查問題定義、工程規(guī)模和導出和評價供選擇的解法分析員應該從他建議的系統(tǒng)邏輯模型出發(fā),導出若干個較高層次的(較抽象的)物理解法供比較和選擇。從技術角度出發(fā)考慮解決問題的不同方案。例如,2.4節(jié)中將舉例說明在數(shù)據(jù)流圖上劃分不同的自動化邊界根據(jù)技術可行性的考慮初步排除一些不現(xiàn)實的系統(tǒng)。例如,如果要求系統(tǒng)的響應時間不超過幾秒鐘,顯然應該排除任何批處理方案。考慮操作方面的可行性。分析員應該根據(jù)使用部門處理事務的原則和習慣檢查技術上可行的那些方案,去掉其中從操作方式或操作過程的角度看用戶不能接受的方案??紤]經(jīng)濟方面的可行性。分析員應該估計余下的每個可能的系統(tǒng)的開發(fā)成本和運行費用,并且估計相對于現(xiàn)有的系統(tǒng)而言這個系統(tǒng)可以節(jié)省的開支或可以增加的收入。在這些估計數(shù)字的基礎上,對每個可能的系統(tǒng)進行成本/效益分析。(參看2.6節(jié))制定實現(xiàn)進度表。通常只需要估計生命周期每個階段的工作量。80導出和評價供選擇的解法分析員應該從他建議的系統(tǒng)邏輯模型出發(fā),推薦行動方針做出一個關鍵性的決定:是否繼續(xù)進行這項開發(fā)工程。如果分析員認為值得繼續(xù)進行這項開發(fā)工程,那么他應該選擇一種最好的解法,并且說明選擇這個解決方案的理由。81推薦行動方針做出一個關鍵性的決定:是否繼續(xù)進行這項開發(fā)工程。草擬開發(fā)計劃為推薦的系統(tǒng)草擬一份開發(fā)計劃:工程進度表估計對各種開發(fā)人員和各種資源的需要情況。估計系統(tǒng)生命周期每個階段的成本。最后應該給出下一個階段(需求分析)的詳細進度表和成本估計。82草擬開發(fā)計劃為推薦的系統(tǒng)草擬一份開發(fā)計劃:11書寫文檔提交審查寫成清晰的文檔,請用戶和使用部門的負責人仔細審查。83書寫文檔提交審查寫成清晰的文檔,請用戶和使用部門的負責人仔細2.3系統(tǒng)流程圖系統(tǒng)流程圖是描繪物理系統(tǒng)的傳統(tǒng)工具。它的基本思想是用圖形符號以黑盒子形式描繪系統(tǒng)里面的每個部件(程序,文件,數(shù)據(jù)庫,表格,人工過程等等)。系統(tǒng)流程圖表達的是信息在系統(tǒng)各部件之間流動的情況,而不是對信息進行加工處理的控制過程。盡管系統(tǒng)流程圖使用的某些符號和程序流程圖中用的符號相同,但是它卻是物理數(shù)據(jù)流程圖而不是程序流程圖。2.3.1符號842.3系統(tǒng)流程圖系統(tǒng)流程圖是描繪物理系統(tǒng)的傳統(tǒng)工具。2.基本符號
一個符號表示系統(tǒng)中的一個部件。
符號名
稱說
明處理能改變數(shù)據(jù)值或數(shù)據(jù)位置的加工或部件,例如,程序、處理機、人工加工等都是處理。輸入/輸出表示輸入或輸出(或既輸入又輸出),是一個廣義的不指明具體設備的符號。連接指出轉(zhuǎn)到圖的另一部分或從圖的另一部分轉(zhuǎn)來,通常在同一頁上。換頁連接指出轉(zhuǎn)到另一頁圖上或由另一頁圖轉(zhuǎn)來。
數(shù)據(jù)流用來連接其他符號,指明數(shù)據(jù)流動方向。85基本符號一個符號表示系統(tǒng)中的一個部件。符號名稱說系統(tǒng)符號
86系統(tǒng)符號152.3.2例子某裝配廠有一座存放零件的倉庫,倉庫中現(xiàn)有的各種零件的數(shù)量以及每種零件的庫存量臨界值等數(shù)據(jù)記錄在庫存清單主文件中。當倉庫中零件數(shù)量有變化時,應該及時修改庫存清單主文件,如果那種零件的庫存量少于它的庫存量臨界值,則應該報告給采購部門以便定貨,規(guī)定每天向采購部門送一次定貨報告。習慣畫法是使信息在圖中從頂向下,從左向右流動。系統(tǒng)流程圖872.3.2例子某裝配廠有一座存放零件的倉庫,倉庫中現(xiàn)有的各2.3.3分層首先用一張高層次的系統(tǒng)流程圖描繪系統(tǒng)總體概貌,表明系統(tǒng)的關鍵功能。然后分別把每個關鍵功能擴展到適當?shù)脑敿毘潭龋嬙趩为毜囊豁摷埳?。這種分層次的描繪方法便于閱讀者按從抽象到具體的過程逐步深入地了解一個復雜的系統(tǒng)。提示:下一節(jié)--2.4數(shù)據(jù)流圖882.3.3分層首先用一張高層次的系統(tǒng)流程圖描繪系統(tǒng)總體概貌2.4數(shù)據(jù)流圖-1數(shù)據(jù)流圖描繪系統(tǒng)的邏輯模型,圖中沒有任何具體的物理元素,只是描繪信息在系統(tǒng)中流動和處理的情況。892.4數(shù)據(jù)流圖-1數(shù)據(jù)流圖描繪系統(tǒng)的邏輯模型,圖中沒有任2.4數(shù)據(jù)流圖-2因為數(shù)據(jù)流圖是邏輯系統(tǒng)的圖形表示,即使不是專業(yè)的計算機技術人員也容易理解,所以是極好的通信工具。此外,設計數(shù)據(jù)流圖只需考慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮如何具體地實現(xiàn)這些功能,所以它也是軟件設計的很好的出發(fā)點。902.4數(shù)據(jù)流圖-2因為數(shù)據(jù)流圖是邏輯系統(tǒng)的圖形表示,即使四種基本符號表示數(shù)據(jù)的源點或終點。表示變換數(shù)據(jù)的處理。表示數(shù)據(jù)存儲(靜止數(shù)據(jù))。表示數(shù)據(jù)流,即特定數(shù)據(jù)的流動方向(流動數(shù)據(jù))。91四種基本符號表示數(shù)據(jù)的源點或終點。20三個附加符號*:表示數(shù)據(jù)之間是“與”關系。+:表示數(shù)據(jù)之間是“或”關系。:表示數(shù)據(jù)之間是“互斥”關系(只能從中選一個)。92三個附加符號*:表示數(shù)據(jù)之間是“與”關系。21說明數(shù)據(jù)存儲和數(shù)據(jù)流都是數(shù)據(jù),僅僅所處的狀態(tài)不同。數(shù)據(jù)存儲是處于靜止狀態(tài)的數(shù)據(jù),數(shù)據(jù)流是處于運動中的數(shù)據(jù)。93說明數(shù)據(jù)存儲和數(shù)據(jù)流都是數(shù)據(jù),僅僅所處的狀態(tài)不同。數(shù)據(jù)存儲是說明有時數(shù)據(jù)的源點和終點相同。如果只用一個符號代表數(shù)據(jù)的源點和終點,則至少有兩個箭頭和這個符號相連(一個進一個出,)可能其中一條箭頭相當長,這將降低數(shù)據(jù)流圖的清晰度,如果代表同一個事物的同樣符號在圖中出現(xiàn)在n個地方,則在這個符號的一個角上畫n-1條短斜線做標記。94說明有時數(shù)據(jù)的源點和終點相同。如果只用一個符號代表數(shù)據(jù)的源點說明數(shù)據(jù)流與程序流程圖中用箭頭表示的控制流有本質(zhì)不同,千萬不要混淆。熟悉程序流程圖的初學者在畫數(shù)據(jù)流圖時,往往試圖在數(shù)據(jù)流圖中表現(xiàn)分支條件或循環(huán),殊不知這樣做將造成混亂,畫不出正確的數(shù)據(jù)流圖。95說明數(shù)據(jù)流與程序流程圖中用箭頭表示的控制流有本質(zhì)不同,千萬不說明在數(shù)據(jù)流圖中應該描繪所有可能的數(shù)據(jù)流向,而不應該描繪出現(xiàn)某個數(shù)據(jù)流的條件。數(shù)據(jù)流圖的基本要點是描繪“做什么”而不考慮“怎樣做”。96說明在數(shù)據(jù)流圖中應該描繪所有可能的數(shù)據(jù)流向,而不應該描繪出現(xiàn)例子問題定義:一家工廠的采購部每天需要一張定貨報表,報表按零件編號排序,表中列出所有需要再次定貨的零件。對于每個需要再次定貨的零件應該列出下述數(shù)據(jù):零件編號,零件名稱,定貨數(shù)量,目前價格,主要供應者,次要供應者。零件入庫或出庫稱為事務,通過放在倉庫中的CRT終端把事務報告給定貨系統(tǒng)。當某個零件的庫存數(shù)量少于庫存量臨界值時就應該再次定貨。97例子問題定義:一家工廠的采購部每天需要一張定貨報表,報表按零提取數(shù)據(jù)流圖的四種成分-1
“通過放在倉庫中的CRT終端把事務報告給定貨系統(tǒng)”——倉庫管理員是數(shù)據(jù)源點。“采購部每天需要一張定貨報表”——采購員是數(shù)據(jù)終點?!安少彶啃枰獔蟊怼薄糜诋a(chǎn)生報表的處理?!笆聞盏暮蠊歉淖兞慵齑媪俊薄獙κ聞者M行的加工的處理。98提取數(shù)據(jù)流圖的四種成分-1“通過放在倉庫中的CRT終端把事提取數(shù)據(jù)流圖的四種成分-2“系統(tǒng)把定貨報表送給采購部”——定貨報表是一個數(shù)據(jù)流?!笆聞招枰獜膫}庫送到系統(tǒng)中”——事務是一個數(shù)據(jù)流?!懊慨斢幸粋€事務發(fā)生時立即處理它,然而每天只產(chǎn)生一次定貨報表”——應該有一個數(shù)據(jù)存儲保存產(chǎn)生定貨報表的數(shù)據(jù)?!爱斈硞€零件的庫存數(shù)量少于庫存量臨界值時就應該再次定貨”——應該有一個數(shù)據(jù)存儲保存庫存清單數(shù)據(jù)。99提取數(shù)據(jù)流圖的四種成分-2“系統(tǒng)把定貨報表送給采購部”——數(shù)據(jù)流圖的四種成分100數(shù)據(jù)流圖的四種成分29定貨系統(tǒng)的基本系統(tǒng)模型倉庫管理員定貨系統(tǒng)采購員事務定貨報表
101定貨系統(tǒng)的基本系統(tǒng)模型倉庫定貨采購員事務定貨報表3定貨系統(tǒng)的功能級數(shù)據(jù)流圖102定貨系統(tǒng)的功能級數(shù)據(jù)流圖31把處理功能進一步分解后的數(shù)據(jù)流圖103把處理功能進一步分解后的數(shù)據(jù)流圖32注意當進一步分解將涉及如何具體地實現(xiàn)一個功能時就不應該再分解了。例如:為什么不進一步分解“產(chǎn)生報表”這個功能呢?定貨報表中需要的數(shù)據(jù)在存儲的定貨信息中全都有,產(chǎn)生報表只不過是按一定順序排列這些信息,再按一定格式打印出來。然而這些考慮純屬具體實現(xiàn)的細節(jié),不應該在數(shù)據(jù)流圖中表現(xiàn)。104注意當進一步分解將涉及如何具體地實現(xiàn)一個功能時就不應該再分解注意當對數(shù)據(jù)流圖分層細化時必須保持信息連續(xù)性。也就是說,當把一個處理分解為一系列處理時,分解前和分解后的輸入/輸出數(shù)據(jù)流必須相同。105注意當對數(shù)據(jù)流圖分層細化時必須保持信息連續(xù)性。34注意應該注意在圖中對處理進行編號的方法。106注意應該注意在圖中對處理進行編號的方法。352.4.3命名數(shù)據(jù)流圖中每個成分的命名是否恰當,直接影響數(shù)據(jù)流圖的可理解性。1072.4.3命名數(shù)據(jù)流圖中每個成分的命名是否恰當,直接影響為數(shù)據(jù)流(或數(shù)據(jù)存儲)命名名字應代表整個數(shù)據(jù)流(或數(shù)據(jù)存儲)的內(nèi)容,而不是僅僅反映它的某些成分。不要使用空洞的、缺乏具體含義的名字(如:“數(shù)據(jù)”、“信息”、“輸入”等)。如果在為數(shù)據(jù)流(或數(shù)據(jù)存儲)起名字時遇到了困難,則很可能是因為對數(shù)據(jù)流圖分解不恰當造成的,應嘗試重新分解,看是否能克服這個困難。108為數(shù)據(jù)流(或數(shù)據(jù)存儲)命名名字應代表整個數(shù)據(jù)流(或數(shù)據(jù)存儲)為處理命名-1通常先為數(shù)據(jù)流命名,然后再為與之相關聯(lián)的處理命名。這樣命名比較容易,而且體現(xiàn)了人類習慣的“由表及里”的思考過程。名字應該反映整個處理的功能,而不是它的一部分功能。名字最好由一個具體的及物動詞,加上一個具體的賓語組成。應該盡量避免使用“加工”、“處理”等空洞籠統(tǒng)的動詞作名字。109為處理命名-1通常先為數(shù)據(jù)流命名,然后再為與之相關聯(lián)的處理命為處理命名-2通常名字中僅包括一個動詞,如果必須用兩個動詞才能描述整個處理的功能,則把這個處理再分解成兩個處理可能更恰當些。如果在為某個處理命名時遇到困難,則很可能是發(fā)現(xiàn)了分解不當?shù)嫩E象,應考慮重新分解。110為處理命名-2通常名字中僅包括一個動詞,如果必須用兩個動詞才為數(shù)據(jù)源點/終點命名采用它們在問題域中習慣使用的名字(如“采購員”、“倉庫管理員”等)111為數(shù)據(jù)源點/終點命名采用它們在問題域中習慣使用的名字(如“采2.4.4用途-1畫數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工具。數(shù)據(jù)流圖的另一個主要用途是作為分析和設計的工具??梢愿鶕?jù)系統(tǒng)的邏輯模型考慮系統(tǒng)的物理實現(xiàn)。當用數(shù)據(jù)流圖輔助物理系統(tǒng)的設計時,以圖中不同處理的定時要求為指南,能夠在數(shù)據(jù)流圖上畫出許多組自動化邊界,每組自動化邊界可能意味著一個不同的物理系統(tǒng)。1122.4.4用途-1畫數(shù)據(jù)流圖的基本目的是利用它作為交流信例1可以聯(lián)機地接收事務并放入隊列中,然而更新庫存清單、處理定貨和產(chǎn)生報表以批量方式進行。當然,這種方案需要增加一個數(shù)據(jù)存儲以存放事務數(shù)據(jù)。113例1可以聯(lián)機地接收事務并放入隊列中,然而更新庫存清單、處理定數(shù)據(jù)流圖114數(shù)據(jù)流圖43例2改變自動化邊界,把處理1.1、1.2和1.3放在同一個邊界內(nèi)。這個系統(tǒng)將聯(lián)機地接收事務、更新庫存清單和處理定貨及輸出定貨信息;然而處理2將以批量方式產(chǎn)生定貨報表。115例2改變自動化邊界,把處理1.1、1.2和1.3放在同一個邊數(shù)據(jù)流圖116數(shù)據(jù)流圖452.4.4用途-2數(shù)據(jù)流圖對更詳細的設計步驟也有幫助。本書第五章將講述從數(shù)據(jù)流圖出發(fā)映射出軟件結(jié)構(gòu)的方法——面向數(shù)據(jù)流的設計方法。1172.4.4用途-2數(shù)據(jù)流圖對更詳細的設計步驟也有幫助。42.5數(shù)據(jù)字典數(shù)據(jù)字典是關于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素的定義的集合。數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型,沒有數(shù)據(jù)字典數(shù)據(jù)流圖就不嚴格,然而沒有數(shù)據(jù)流圖數(shù)據(jù)字典也難于發(fā)揮作用。1182.5數(shù)據(jù)字典數(shù)據(jù)字典是關于數(shù)據(jù)的信息的集合,也就是對數(shù)2.5.1數(shù)據(jù)字典的內(nèi)容一般說來,數(shù)據(jù)字典應該由對下列四類元素的定義組成:(1)數(shù)據(jù)流(2)數(shù)據(jù)流分量(即,數(shù)據(jù)元素)(3)數(shù)據(jù)存儲(4)處理。本書中數(shù)據(jù)字典將主要由對數(shù)據(jù)的定義組成。數(shù)據(jù)處理的定義用其它工具(如IPO圖或PDL)描述更方便。1192.5.1數(shù)據(jù)字典的內(nèi)容一般說來,數(shù)據(jù)字典應該由對下列四數(shù)據(jù)字典中記錄的數(shù)據(jù)元素的信息一般信息:名字,別名,描述等。定義:數(shù)據(jù)類型,長度,結(jié)構(gòu)等。使用特點:值的范圍,使用頻率,使用方式——輸入/輸出/本地,條件值等。控制信息:來源,用戶,使用它的程序,改變權,使用權等。分組信息:父結(jié)構(gòu),從屬結(jié)構(gòu),物理位置----記錄、文件和數(shù)據(jù)庫等。120數(shù)據(jù)字典中記錄的數(shù)據(jù)元素的信息一般信息:名字,別名,描述等出現(xiàn)別名主要原因?qū)τ谕瑯拥臄?shù)據(jù),不同的用戶使用了不同的名字;一個分析員在不同時期對同一個數(shù)據(jù)使用了不同的名字;兩個分析員分別分析同一個數(shù)據(jù)流時,使用了不同的名字。121出現(xiàn)別名主要原因?qū)τ谕瑯拥臄?shù)據(jù),不同的用戶使用了不同的名字2.5.2定義數(shù)據(jù)的方法數(shù)據(jù)字典中的定義就是對數(shù)據(jù)自頂向下的分解。一般說來,當分解到不需要進一步定義,每個和工程有關的人也都清楚其含義的元素時,這種分解過程就完成了。1222.5.2定義數(shù)據(jù)的方法數(shù)據(jù)字典中的定義就是對數(shù)據(jù)自頂向數(shù)據(jù)元素組成數(shù)據(jù)的方式順序 即以確定次序連接兩個或多個分量;選擇 即從兩個或多個可能的元素中選取一個;重復 即把指定的分量重復零次或多次??蛇x
即一個分量是可有可無的(重復零次或一次)。123數(shù)據(jù)元素組成數(shù)據(jù)的方式順序 即以確定次序連接兩個或多個分量符號-1
=意思是等價于(或定義為)+意思是和(即,連接兩個分量)[]意思是或(即,從方括弧內(nèi)列出的若干個分量中選擇一個)124符號-1=意思是等價于(或定義為)53符號-2{}意思是重復(即,重復花括弧內(nèi)的分量)()意思是可選(即,圓括弧里的分量可有可無)125符號-2{}意思是重復(即,重復花括弧內(nèi)的分量)542.5.3數(shù)據(jù)字典的用途數(shù)據(jù)字典最重要的用途是作為分析階段的工具。數(shù)據(jù)字典中包含的每個數(shù)據(jù)元素的控制信息是很有價值的。容易估計改變一個數(shù)據(jù)將產(chǎn)生的影響,并且能對所有受影響的程序或模塊作出相應的改變。最后,數(shù)據(jù)字典是開發(fā)數(shù)據(jù)庫的第一步。1262.5.3數(shù)據(jù)字典的用途數(shù)據(jù)字典最重要的用途是作為分析階2.5.4數(shù)據(jù)字典的實現(xiàn)三種途徑:全人工過程全自動化過程(利用數(shù)據(jù)字典處理程序)混合過程(用正文編輯程序、報告生成程序等已有的使用程序幫助人工過程)1272.5.4數(shù)據(jù)字典的實現(xiàn)三種途徑:56數(shù)據(jù)字典具有的特點通過名字能方便地查閱數(shù)據(jù)的定義。沒有冗余。盡量不重復在規(guī)格說明的其它組成部分中已經(jīng)出現(xiàn)的信息。容易更新和修改。能單獨處理描述每個數(shù)據(jù)元素
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通運輸行業(yè)二手房合同
- 道路橋梁施工合同備案說明
- 承包破樁工程合同范例
- 夜視儀租賃協(xié)議三篇
- 農(nóng)村土地集體收益分配合同三篇
- 貨款預存協(xié)議書模板
- 外調(diào)工作人員合同
- 退還合同保證金法條
- 工業(yè)機床煙霧凈化器技術協(xié)議書
- 集體合同備案交流材料工作總結(jié)
- 2024年獨家:國際商標授權使用合同
- 遼寧省部分高中2023-2024學年高二上學期期末考試 物理 含解析
- 大學美育智慧樹知到期末考試答案章節(jié)答案2024年寧波大學
- 2023版國開電大本科《高級財務會計》在線形考(任務一至四)試題及答案
- 《工程建設標準強制性條文電力工程部分2023年版》
- 2024年智慧體育數(shù)字化時代的運動創(chuàng)新方案課件
- 學校關鍵崗位廉政風險點排查表
- 三角高程計算表
- 保安日常巡查記錄本
- 清華大學全面素質(zhì)教育與拔尖創(chuàng)新人才培養(yǎng)PPT課件
- 線路板pcb專業(yè)英語詞匯(制造、測試、缺陷名等)
評論
0/150
提交評論