查看全部128種考試
軟件水平考試
 考試動態(tài) 報考指南 歷年真題 模擬試題 復習資料 心得技巧 專業(yè)英語 技術文章 軟考論壇 考試用書
 程序員 軟件設計師 網絡管理員 網絡工程師 系統(tǒng)分析師 數(shù)據(jù)庫系統(tǒng)工程師
1
2
3
4
5
6
7
8
9
10
ak47  
【字體: 軟件設計師歷年設計題分析及實例
軟件設計師歷年設計題分析及實例
spks.exam8.com 來源:軟考在線 更新:2005-3-15 1:31:00 軟件水平考試 考試論壇
    根據(jù)軟件水平與資格考試大綱的要求,高級程序員不僅要具備高水平的程序編制能力,而且要熟練掌握軟件設計的方法和技術,具備一定的軟件設計能力。軟件設計題是下午試題的難點,本文針對軟件設計題,給出了解答的一般方法,并且給出了解答實例,最后對歷年試題進行了分析,希望能夠給廣大考生提供幫助。


    解題的一般方法

  一、軟件設計題要點

  綜觀1990年到2004年的高程下午設計題,主要包括以下考點:

  1. 完善處理流程,或指出處理內容,或指出處理結果。

  2. 指出流程圖中錯誤,或為避免錯誤應在某處添加處理項目。

  3. 為達到某目的,需要改動哪些處理,或改變處理方法會引起什么后果。

  4. 指出錯誤清單內容。

  5. 文件的記錄應包含哪些內容。

  6. 完成處理需要什么樣的文件,或文件有什么特征,或引入某文件有什么好處。

  7. 文件怎樣分類,或指出關鍵字。

  8. 某處理的頻度。

  9. 輸入數(shù)據(jù)的格式。

  10. 題意中的分類有何好處。

  11. 為實現(xiàn)某目的適當修改文件的記錄內容。

  12. 指出圖中數(shù)據(jù)流名,或指出哪些位置數(shù)據(jù)可增加或刪去。

考點最集中的部分是關于文件記錄的內容,其次是文件的分類排序,再次是當目的改變應該改動哪些。

  二、答題注意事項

  事務處理流程圖一般由若干處理與若干數(shù)據(jù)組成,在評估流程圖并回答試題的問題時,應該注意下面一些問題。

  從“處理”的角度來說,必須注意:

  1. 每個事務處理均有一個特定目標,這一目標往往都是文字說明的。與此對應的處理應能覆蓋所設定的目標。對于說明處理要求,都應從問題目標進行考慮。

  2. 除覆蓋問題目標的處理外,還有兩類處理應予考慮:一是為了保證處理的正確性,設計一些處理框,以檢查輸入數(shù)據(jù)的數(shù)據(jù)項及數(shù)據(jù)的值域;另一種是檢查數(shù)據(jù)會合時數(shù)據(jù)的一致性。二是為了處理的效率,如速度、次數(shù)、減少處理訪問等而引進了一些處理。

  3. 在一個流程圖內,在一條流程上的各個處理不能有功能上的重復。如有重復,不是有錯,就是流程還可優(yōu)化。

  4. 每個處理都是由“處理的依據(jù)”到“使用數(shù)據(jù)”,以及從“處理結果”到“產生數(shù)據(jù)”!笆褂脭(shù)據(jù)”或者“產生數(shù)據(jù)”與處理相互匹配是十分重要的。

從“數(shù)據(jù)”的角度來說,必須注意:

  1. 注意流程圖最初的輸入數(shù)據(jù)與最終輸出數(shù)據(jù),考慮從輸入到輸出之間數(shù)據(jù)演變的情況。根據(jù)數(shù)據(jù)的演變與流程,關于從輸入到輸出應有哪些數(shù)據(jù)就比較清楚了,其作用也可以從演變方面了解。

  2. 考慮數(shù)據(jù)流程中,哪些數(shù)據(jù)應作為文件形式出現(xiàn),哪些是中間使用的臨時數(shù)據(jù)。在數(shù)據(jù)演變中,一些數(shù)據(jù)經多個“處理”加工后得到結果,每加工一次就產生一個新數(shù)據(jù),對這些數(shù)據(jù)分析,就能得出各數(shù)據(jù)的存儲要求。

  3. 對數(shù)據(jù)按問題要求設計數(shù)據(jù)結構。輸入(輸出)數(shù)據(jù)的結構與問題有關,而中間數(shù)據(jù)的結構除與輸入(輸出)數(shù)據(jù)有關外,還與處理有關。

  4. 為減少數(shù)據(jù)冗余,要保證數(shù)據(jù)一致性,數(shù)據(jù)文件設計中應考慮關系,亦即各種文件的記錄之間的聯(lián)系。
我們對高級程序員軟件設計題的解題方法做了分析,現(xiàn)在我們來分析一道例題。

  ★解答實例

  2000年試題3:閱讀以下說明和流程圖,回答問題1和問題2。

【說明】

  某供銷系統(tǒng)接受顧客的訂貨單。當庫存中某配件的數(shù)量小于訂購量或庫存量低于一定數(shù)量時,向供應商發(fā)出采購單;當某配件的庫存量大于或等于訂購量時,或者收到供應商的送貨單并更新了庫存后,向顧客發(fā)出提貨單。該系統(tǒng)還可隨時向總經理提供銷售和庫存情況表。該供銷系統(tǒng)的分層數(shù)據(jù)流圖中部分數(shù)據(jù)流和文件的組成如下:

文件

  配件庫存=配件號+配件名+規(guī)格+數(shù)量+允許的最低率庫存量

數(shù)據(jù)流

  訂貨單=配件號+配件名+規(guī)格+數(shù)量+顧客名+地址

  提貨單=訂貨單+金額

  采貨單=配件號+配件名+規(guī)格+數(shù)量+供應商名+地址

  送貨單=配件號+配件名+規(guī)格+數(shù)量+金額

  假定頂層圖是正確的,“供應商”文件已由其他系統(tǒng)生成。

[問題1]

指出哪張圖中的哪些文件可不必畫出。
[問題2]
指出在哪些圖中遺漏了哪些數(shù)據(jù)流;卮饡r用如下形式之一。
(1) X X 圖中遺漏了 X X 加工 (或文件) 流向 X X 加工 (或文件) 的 x x 數(shù)據(jù)流;
(2) X X 圖中 X X 加工遺漏了 X X 輸入 (或輸出) 數(shù)據(jù)流。


  在頂層圖中,供銷系統(tǒng)的3個輸入數(shù)據(jù)流(訂貨單、送貨單與銷售及庫存情況)和5個輸出數(shù)據(jù)流(不合法的訂貨單、不合法的送貨單、提貨單、采購單與銷售及庫存情況表)在0層圖中都得到反映?疾0層圖中所有的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流,是否有遺漏的加工呢?在頂層圖中總經理的查詢是單獨的加工,但在0層圖中卻給包括到加工1中去了,成為加工1.3,其輸入或輸出數(shù)據(jù)流也都包括在該加工中。考查加工1子圖,加工1.3包含在加工1中是科學的,因為該加工需要來自加工1數(shù)據(jù)支持,且事務簡單,包含在加工1中可以大大減小系統(tǒng)分析和設計的復雜程度。因此不能說0層圖遺漏了加工。至于文件,在0層圖中凡是需要文件的地方都是從文件輸入的,未發(fā)生遺漏現(xiàn)象。

  仔細研究0層圖,大體上確定加工1有3個輸入數(shù)據(jù)流(訂貨單、到貨通知和查詢銷售及庫存情況),加工1子圖中只有訂貨單與查詢銷售及庫存情況兩個數(shù)據(jù)流,顯然遺漏了輸入數(shù)據(jù)到貨通知,該數(shù)據(jù)流應該從哪個子加工輸入呢?看試題中的說明“收到供應商的送貨單并更新了庫存后,向顧客發(fā)出了提貨單”。據(jù)此至少可以判定輸入數(shù)據(jù)流到貨通知是子加工1.4更新庫存的前提條件,沒有到貨通知,就無法更新庫存。是直接輸入加工1.4嗎?再看子加工1.4與其他子加工的關系。子加工1.5輸出數(shù)據(jù)流的去向是子加工1.4。而子加工1.5需要到貨通知的支持,但從子加工1.4到子加工1.5卻沒有數(shù)據(jù)流。綜合以上分析,應該在子加工1.5處輸入數(shù)據(jù)流到貨通知。

  首先看配件庫存文件。在加工1子圖(圖3)中,配件庫存文件經過加工1.4更新庫存而修改,然后還要為加工1.1和加工1.2提供數(shù)據(jù)支持,在加工1.1中,通過檢查訂貨單中訂購的配件在配件庫存中是否有記錄,來確定該配件是否屬于經銷范圍,然后以此來確定訂貨單是否合法。其次,還要在加工1.2中比較合法訂貨單的數(shù)量與庫存數(shù)量,以此確定是否需要發(fā)出采購請求。再次,在發(fā)出提貨單后,如果庫存量低于允許的最低庫存量,也要發(fā)出采購單?梢钥闯觯谠摷庸D中,未發(fā)現(xiàn)對配件庫存文件的不適當?shù)氖褂谩?/P>

  在加工2子圖(圖4)中,在加工2.4核對送貨單后要更新庫存文件然后加工2.3計算增量提供數(shù)據(jù)支持,計算出需要采購的配件的數(shù)量。應該說這里對配件庫存文件的使用是正確的。因此我們可以確定配件庫存文件在加工1和加工2中都有應用,畫在0層圖中是合適的。

  缺貨訂單文件在試題說明中沒有提到,具體的應用需要我們自己分析。0層圖中顯示該文件被加工1和加工2使用,F(xiàn)在的任務就是確定兩個加工中對該文件的使用是正確的。在加工1中缺貨訂單的數(shù)據(jù)來自加工1.2和加工1.4,在加工1.2中,接受合法的訂貨單后,如果訂貨單上數(shù)量大于配件庫存文件的數(shù)量,將產生缺貨訂單文件。在加工1.4中,在有貨訂單送達后,需要交出提貨單,然后更新庫存。如果庫存量低于允許的最低庫存量,應該將缺貨信息反映到缺貨訂單中。在加工2中,缺貨訂單為加工2.3提供部分數(shù)據(jù)支持,在計算配件增量以明確需要增加的配件的清單時,需要參照缺貨訂單。結合以上對使用缺貨訂單文件的分析,可以認為,因此將該文件畫在0層圖中是有必要的。

我們分析了配件庫存文件和缺貨訂單文件,再來看采購清單。

  0層圖顯示該文件只應用于加工2。采購清單如果只應用在加工1中,最有可能的地方是加工1.2及其后的采購請求數(shù)據(jù)流,但在這里采購清單是有必要的嗎?從加工2中可以看出,采購清單是按供應商對采購單進行匯總來產生的,對采購單進行匯總,顯然已經屬于加工2的工作,不應在加工1中予以反映。由此可以斷定在加工1中不應該有采購單文件。所以在0層圖中畫采購清單是不合適的。

  以上考查了0層圖、加工1子圖和加工2子圖中缺貨訂單、配件庫存及采購清單的使用,下面研究加工1中的銷售歷史文件。如果沒有該文件支持,加工1.3是無法制作銷售及庫存情況表的;而且該文件由加工1.4更新庫存產生,其輸入數(shù)據(jù)流和輸出數(shù)據(jù)流均在加工1中,在加工1中使用該文件是合適的。

  問題2要求指出哪些圖中遺漏了哪些元素。一般來說,這類題目的解答首先要考慮各層次圖的數(shù)據(jù)平衡,其次要考慮加工的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流要平衡,即保證加工的輸出數(shù)據(jù)流都有其對應的輸入數(shù)據(jù)流。所謂數(shù)據(jù)平衡,就是在多層次數(shù)據(jù)流程圖中,父圖和子圖之間的數(shù)據(jù)流必須保持一致,比如說在父圖中某加工有2個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流,那么在該加工的子圖中的輸入(輸出)數(shù)據(jù)流必須在數(shù)目上和內容上與父圖保持一致。

    考查0層圖,加工1有不合格訂貨單、銷售及庫存情況表、提貨單與采購請求4個輸出數(shù)據(jù)流。但在加工1子圖中,卻沒有輸出數(shù)據(jù)流提貨單,這顯然是不符合數(shù)據(jù)平衡原則的。但該數(shù)據(jù)流應從何處輸出呢?根據(jù)試題說明,在更新庫存后應向顧客發(fā)出提貨單。顯然這里合適的位置是子加工1.4。

轉帖于:軟件水平考試_考試吧
文章搜索  
看了本文的網友還看了:
軟件水平考試權威輔導教材: 訂書電話:010-62168566  更多>>>
網友評論
昵 稱: *  評 分: 1分 2分 3分 4分 5分
標題:   匿名發(fā)表    (共有條評論)查看全部評論>>
版權聲明 -------------------------------------------------------------------------------------
  如果軟件水平考試網所轉載內容不慎侵犯了您的權益,請與我們聯(lián)系,我們將會及時處理。如轉載本軟件水平考試網內容,請注明出處。
關于本站  網站聲明  廣告服務  聯(lián)系方式  付款方式  站內導航  客服中心  友情鏈接  考試論壇  網站地圖
Copyright © 2004-2008 考試吧軟件水平考試網 All Rights Reserved    
中國科學院研究生院權威支持(北京) 電 話:010-62168566 傳 真:010-62192699
百度大聯(lián)盟黃金認證  十佳網絡教育機構  經營許可證號:京ICP060677