必備知識點
數據流圖
圖解相關
又稱DFD或分層數據流圖,需要與E-R圖(實體屬性圖)分開,這裏給出圖元及對應含義。
上述需要注意的是,
需填寫數據流的名稱,一般都在題中(給出的數據流圖或題幹文字)
需填寫數據流的起點終點,一般都在題中(給出的數據流圖或題幹文字)
數據字典相關
數據流圖平衡原則(解題核心)
父圖和子圖之間的平衡
子圖內平衡
注意:數據流圖中操作流程信息的方向。同時應該保證既有輸入也有輸出。
只有輸入沒有輸出稱爲黑洞。
只有輸出沒有輸入稱爲奇蹟。
以上爲基礎知識回顧,以下爲實例解讀。
實例解讀1
閱讀下列說明和有關的圖表,回答問題1至問題3,將解答填入答題紙的對應欄內。
【說明】
A公司決定爲該市車站開發自動售票系統,系統的要求如下:
1.乘客能按以下三步操作購票:選定目的地;投入錢幣;獲得一張票;
2.當且僅當乘客選定目的地後,系統才接收投錢,每次投入的錢只購買一張票;
3.只要投入的錢不少於所需的票價,且票庫中有所要求的票,則應儘快出票;
4.如需找錢,則在出票的同時應退還多餘的錢;
5.如果乘客投入的錢不夠票價,或者票庫中沒有所要求的票時,系統將全額退錢,並允許乘客另選目的地,繼續購票;
6.出票前乘客可以按"取消"按鈕取消購票,系統將全額退出該乘客投入的錢,並允許乘客另選目的地,繼續購票;
7.出票結束(包括退還多餘的錢)後,系統應保存銷售記錄,並等待乘客購票。
該系統還要求快速響應和操作同步,所以它應是一個實時系統。爲此,A公司在該系統的數據流程圖中附加了過程控制部分,形成轉換圖。在該圖中,控制流(事件流)用虛線表示,數據流用實線表示。圖中的數據流並沒有畫全,需要考生填補。轉換圖如圖1所示。
圖1轉換圖
程進行的控制可以用系統內部各個狀態之間的遷移來描述,從而形成狀態遷移圖。在狀態遷移圖中,用雙線框表示狀態,用有向邊表示狀態的遷移。引起狀態遷移的事件以及由該事件引起的動作,在有向邊旁用"事件 動作"形式註明。狀態遷移圖如圖2所示。
圖2狀態遷移圖
該公司還製作了一個過程啓動表,用以表明狀態遷移圖中的4個動作與轉換圖中的4個過程之間的"啓動"關係,即說明哪個動作將啓動哪個過程。用1表示啓動,用0表示不啓動。啓動的過程將根據獲得的輸入數據產生輸出數據,未啓動的過程則不會產生輸出數據。該表中沒有列出的過程,其執行與否與事件無關。過程啓動表見表1:
【問題1】
轉換圖中缺少哪三條數據流?請指明每條數據流的名稱、起點和終點。
【問題2】
在狀態遷移圖中,a,b,c分別表示什麼事件?請用轉換圖中給出的事件名解答。
【問題3】
在過程啓動表中,d,e處應填什麼?請分別用4位二進制碼錶示。
問題1
問的是缺少的數據流和起點終點,這裏我們需要把數據流圖分離出來,即虛線不要,看我們的數據流圖相關圖示即明白,不再詳敘
這裏有一個極大的干擾項,我第一次就做錯了,上面給了一個售票控制,我把它當做加工了,導致數據流全錯,其實不應該出錯的,首先圖示和其他的加工還是有區別的,我近視700+,我的鍋,然後根據題意,這個售票控制應該是轉換圖的一部分,且沒有任何實現的出和入,都是虛線的操作。
如果你沒有出現這個問題,那麼恭喜你,這題很簡單了。
只提出數據流圖,很容易發現
接受目的地後到出票,按照系統說明及日常認知,肯定要進行目的地核查
接受的錢肯定需要進行覈查,然後進行出票和退錢
返回驗證,檢查後是有出票操作的。
所以缺少的數據流爲
- 數據流名:目的地; 起點:"接收目的地";終點:"覈查"。
- 數據流名:投入的錢;起點"接收錢";終點:"覈查"。
- 數據流名:剩餘的錢;起點"覈查";終點:"退還錢"。
問題2
首先這個遷徙圖,我們沒見過,不過有相關的說明,我們需要獲得的信息是啥?
引起狀態遷移的事件以及由該事件引起的動作,在有向邊旁用"事件 動作"形式註明
我們的問題就能轉化爲
1.在接受投錢的時候,什麼事件發生可以退錢,並等待重新選擇目的地
2.在接受投錢的時候,什麼事件發生可以出票
3.在正在出票的時候,什麼事件發生可以接收新目的地
結合題意
a - "取消"操作
b - 覈查正確
c - 出票結束。
問題3
哪個動作將啓動哪個過程
這個我們可以理解爲 哪個過程會包含相關動作(接收錢,出票,退錢,接收新目的地)
這樣理解就好填多了
首先
接收目的地的過程,可能接受新目的地,剛出票結束或取消,可能退錢,票價不夠或沒有票
收錢的過程不會有接受目的地和退錢的動作
出票的過程中也不會有接受目的地和退錢的動作
退還錢的過程中肯定會退錢,沒有接受新目的地的動作,只有等退錢結束後才能接受新目的地
最後答案
d - 1001
e – 1000
實例解讀2
閱讀下列說明和數據流圖,回答問題1~問題3。
【說明】
某考務處理系統主要功能是考生管理和成績管理:
1.對考生送來的報名表進行檢查。
2.對合格的報名表編好准考證號碼後將准考證送給考生,將彙總後的考生名單送給閱卷站。
3.對閱卷站送來的成績表進行檢查,並根據考試中心指定的合格標準審定合格者。
4.填寫考生通知單(內容包含該考生的准考證號、姓名、各課程成績及最終合格/不合格標誌),送給考生。
5.根據考生信息及考試成績,按地區、年齡、文化程度和職業進行成績分類統計及試題難度分析,產生統計分析表。
考務處理系統的頂層圖如圖1所示,第0層圖如圖2所示,加工2子圖如圖3所示。
【數據流圖】
圖1頂層圖
圖2 0層圖
圖3加工2子圖
【問題1】
指出哪張圖的哪些文件可以不必畫出。
【問題2】
數據流圖1-3中缺少3條數據流,請直接在圖中添加。
【問題3】
根據系統功能和數據流圖填充下列數據字典條目中的 (1) 和 (2) :
試題得分表=准考證號+{課程名+成績}
考生名冊=報名號+准考證號+姓名+通信地址+出生年份+文化程度+職業
考生通知單= (1)
報名表= (2)
問題1
哪張圖的哪些文件,可以解讀爲圖示的雙橫線內(文件),即這題的答案就是圖2或者圖3的試卷得分表和考生名冊
即四選一的問題,我們直接開始分析,
圖2的考生名冊連接圖中的1登記報名表,2統計成績,顯然不能去掉,雖然從圖3可以看出考生名冊是輸入,但考生名冊的輸入成謎,且根據題意,顯然不是最好的答案
圖2的試卷得分表,結合圖3的加工子圖,可以直接去掉,此時圖2的試卷得分表的輸入輸出都是針對2統計成績,在圖2中顯得多餘,所以這應該是最好答案
圖3,的兩種表,都是加工的細節,顯然不能去掉,即並不多餘
上述比較囉嗦,這種問題碰到,我們肯定優先選擇帶文件的0層圖,原因之一,細節暴露在加工內肯定比在0層圖好,原因之二,針對加工的數據流表文件既有輸出也有輸入,可以省略,可以當做知識點記住,基礎知識內有理論說明。
0層圖中的"試卷得分表"是局部文件,可不必畫出。
問題2
比較簡單,沒有第一個例題噁心人,我們直接數 輸入和輸出
很容易發現
缺少合格標準的輸入
錯誤成績表的輸出
第三個可能麻煩點,不過仔細閱讀根據考生信息及考試成績,按地區、年齡、文化程度和職業進行成績分類統計及試題難度分析,產生統計分析表這句話,即可明白 分類統計表的輸出需要 考生名冊的輸入
然後就是數據流的起點和終點,第三個已經說出來了,第二個也比較簡單,即與正確的成績表進行分開就好,第一個也很好理解,直接指到審定合格者
(1)分類統計成績中需要讀入考生成績,缺少從"考生名冊"到"2.4分類統計成績"的數據流。
(2)"2.1檢查成績表"缺少輸出數據流"錯誤成績表"。
(3)"2.2審定合格者"缺少輸入數據流"合格標準"。
問題3
這題應該是這三個中最簡單的
4.填寫考生通知單(內容包含該考生的准考證號、姓名、各課程成績及最終合格/不合格標誌),送給考生。
已經給出了,需要注意的是數據字典的寫法
(1)准考證號+姓名+{課程名+成績}+合格/不合格標誌
(2)報名號+姓名+通信地址+出生年份+文化程度+職業
留給你們看的
閱讀下列說明和數據流圖,回答問題1~問題3。
【說明】
某醫院收費系統的主要功能是收取病人門診的各項費用。系統的收費功能分爲3個方面:病歷收費、掛號收費和根據處方單內容收取檢查或藥物費用。
1.病人初次來該醫院看病,首先購買病歷,記錄病人基本情況。
2.病人看病前要掛號。根據病人的病歷和門診部門(內科、外科等),系統提供相應的掛號單和處方單,並收取費用。
3.病人根據處方單進行進一步檢查或取藥前需交納各項費用。系統首先根據病人基本情況檢查處方單中病歷號是否正確,記錄合格的處方單,並提供收據。
4.所有收費都必須依據定價表中的定價來計算,且所有收費都必須寫入收費記錄中。
醫院收費系統的頂層圖如圖2所示;醫院收費系統的第O層DFD圖如圖3所示。其中,加工1的細化圖如圖4所示,加工2的細化圖如圖5所示。
假定頂層圖是正確的,"定價表"文件已由其他系統生成。
【數據流圖】
圖2醫院收費系統的頂層圖
圖3醫院收費系統的0層圖
圖4醫院收費系統的加工1子圖
圖5醫院收費系統的加工2子圖
【問題1】
指出哪張圖的哪些文件可以不必畫出。
【問題2】
數據流圖4中缺少2條數據流,請直接在圖中添加。
【問題3】
數據流圖5中缺少4條數據流,請直接在圖中添加。