【软件工程导论题型大总结】画图题总结
文章目錄
- 一:概要(各章圖形及對應符號)
- (1)傳統軟件工程部分
- A:可行性研究
- ①:系統流程圖
- ②:數據流圖(DFD)
- ③:數據字典
- B:需求分析
- ①:E-R圖
- ②:狀態轉換圖
- ③:層次方框圖
- ④:warnier圖
- ⑤:IPO圖
- C:總體設計
- ①:層次圖(H圖)和HIPO圖(H圖+IPO)
- ②:結構圖
- D:詳細設計
- ①:程序流程圖
- ②:流圖
- ③:盒圖
- ④:PAD圖
- ⑤:判定表和判定樹
- ⑥:PDL
- ⑦:Jackson圖
- (2)面向對象部分
- ①:類圖
- ②:用例圖
- ③:狀態圖
- ④:順序圖
- 二:著重考察畫法的圖
- (1)數據流圖(★★★★★)
- A:畫法介紹
- B:典型例題
- (2)E-R圖(★★★★★)
- A:畫法介紹
- B:典型例題
- (3)狀態轉換圖(★★★)
- A:畫法介紹
- B:典型例題
- (4)結構圖(★★★)
- A:畫法介紹
- B:典型例題
- (5)程序流程圖和盒圖(★★★★★)
- A:畫法介紹
- B:典型例題
- (6)流圖
- A:畫法介紹
- B:典型例題
- (7)判定表
- A:畫法介紹
- B:典型例題
- (8)類圖
- A:畫法介紹
- B:典型例題
一:概要(各章圖形及對應符號)
注意:
- 沒有用紅色字體標出的圖,代表這類題目基本不會以畫圖的方式考察(我也不敢百分之百保證),著重會在選擇、填空中考察概念
- 使用紅色字體標出的圖,是必須要掌握它的畫法的
- 總的來說:E-R圖、數據流圖、狀態轉換圖(流圖)、結構圖、程序流程圖、盒圖、判定表、類圖、時序圖、用例圖必考畫法
(1)傳統軟件工程部分
A:可行性研究
①:系統流程圖
系統流程圖是概括地描繪物理系統的傳統工具。系統流程圖的基本思想是用圖形符號以黑盒子形式描繪組成系統的每個部件(程序、文檔、數據庫、人工過程等)。系統流程圖表達的是數據在系統各部件之間流動的情況,而不是對數據進行加工處理的控制過程,因此盡管系統流程圖的某些符號和程序流程圖的符號形式相同,但是它卻是物理數據流圖而不是程序流程圖
②:數據流圖(DFD)
基本符號
關于“數據流”的擴充
③:數據字典
符號表示
B:需求分析
①:E-R圖
符號表示
②:狀態轉換圖
符號表示
③:層次方框圖
層次方框圖用樹形結構的一系列多層次的矩形框描繪數據的層次結構。樹形結構的頂層是一個單獨的矩形框,它代表完整的數據結構,下面的各層矩形框代表這個數據的子集,最底層的各個框代表組成這個數據的實際數據元素
隨著結構的精細化,層次方框圖對數據結構也描繪得越來越詳細,這種模式非常適合于需求分析階段的需要。系統分析員從對頂層信息的分類開始,沿圖中每條路徑反復細化,直到確定了數據結構的全部細節時為止
④:warnier圖
Warnier圖是法國計算機科學家Warnier提出的表示信息層次結構的另外一種圖像工具,它用樹形結構描繪信息,可以表明信息的邏輯組織,即可以指出一類信息或一個信息元素是重復出現的,也可以表示特定信息在某一類信息中是有條件地出現的,它比層次方框圖提供了更豐富的描繪手段
- 圖中花括號用來區分數據結構的層次
- 在一個花括號內的所有名字都屬于同一類信息
- 異或符號表明一類信息或一個數據元素在一定條件下才出現,而且在這個符號上、下方的兩個名字所代表的數據只能出現一個;在一個名字下面(或右邊)的圓括號中的數字指明了這個名字代表的信息類(或元素)在這個數據結構中重復出現的次數
⑤:IPO圖
IPO圖是輸入、處理、輸出圖的簡稱,它是由美國IBM公司發展完善起來的一種圖形工具,能夠方便地描繪輸入數據、對數據的處理和輸出數據之間的關系
IPO圖的基本形式是在左邊的框中列出有關的輸入數據,在中間的框內列出主要的處理,在右邊的框內列出產生的輸出數據。處理框中列出處理的次序暗示了執行的順序。在IPO圖中還用類似向量符號的粗大箭頭清楚地指出數據通信的情況。下圖一個主文件更新的例子
C:總體設計
①:層次圖(H圖)和HIPO圖(H圖+IPO)
層次圖用來描繪軟件的層次結構。層次圖中的一個矩形框代表一個模塊,方框間的連線表示調用關系而不像層次方框圖那樣表示組成關系。如下圖的一個例子,最頂層的方框代表正文加工系統的主控模塊,它調用下層模塊完成正文加工的全部功能;第二層的每個模塊控制完成正文加工的一個主要功能,第二層的模塊又可
以調用下一層的模塊完成具體的工作
HIPO圖是“層次圖加輸入/處理/輸出圖”的縮寫。使HIPO圖具有可追蹤性,在層次圖里除了最頂層的方框,之外,每個方框都加了編號
②:結構圖
基本符號
- 方框代表模塊、框內注明模塊的名字或主要功能
- 箭頭或直線表示調用關系
- 尾部是空心圓表示傳遞的是數據;若是實心圓則表示傳遞的是控制信息
特殊符號
表示當模塊M中某個判定為真時調用模塊A,為假時調用模塊B
表示模塊M循環調用模塊A、B和C
D:詳細設計
①:程序流程圖
符號
- a:選擇
- b:注釋
- c:預先定義的處理
- d:多分支
- e:開始或停止
- f:準備
- g:循環上界限
- h:循環下界限
- i:虛線
- j:省略符
- k:并行方式
- l:處理
- m:輸入輸出
- n:連接
- o:換頁連接
- p:控制流
②:流圖
程序流程圖映射為流圖的方法
①:對于順序結構,一個順序處理和下一個選擇可以映射為一個結點
②:對于選擇語句,開始/結束語句映射為一個結點,兩條分支至少各映射成一個結點
③:開始語句和結束語句各映射成一個結點
③:盒圖
符號
出于要有一種不允許違背結構程序設計精神的圖形工具的考慮,提出了盒圖,又稱為N-S圖。其基本符號如下
- a:順序結構
- b:IF_TEEN_ELSE型分支
- c:CASE型多分支
- d:循環結構
- e:調用子程序A
④:PAD圖
PAD是問題分析圖(problem analysis is diagram)的英文縮寫,是使用二維樹形結構的圖來表示程序的控制流,這種圖翻譯為程序代碼比較容易。其基本符號如下
- a:順序
- b:選擇(IF C THEN P1 ELSE P2)
- c:CASE型多分支
- d:WHILE型循環(WHILE C DO P)
- e:UNTIL型循環(REPEAT P UNTIL C)
- f:語句符號
- g:定義
PAD優點(需要記憶)
- 使用表示結構化控制結構的PAD符號所設計出來的程序必然是結構化程序
- PAD圖所描繪的程序結構十分清晰。圖中最左面的豎線是程序的主線,即第一層結構。隨著程序層次的增加,PAD圖逐漸向右延伸,每增加一個層次,圖形向右擴展一條豎線。PAD圖中豎線的總條數就是程序的層次數
- 用PAD圖表現程序邏輯,易讀、易懂、易記。PAD圖是二維樹形結構的圖形,程序從圖中最左豎線上端的結點開始執行 ,自上而下,從左向右順序執行,遍歷所有結點
- 容易將PAD圖轉換成高級語言源程序,這種轉換可用軟件工具自動完成,從而可省去人工編碼的工作,有利于提高軟件可靠性和軟件生產率
- 即可用于表示程序邏輯,也可用于描繪數據結構
- PAD圖的符號支持自頂向下、逐步求精方法的使用。開始時設計者可以定義一個抽象的程序,隨著設計工作的深入而使用def符號逐步增加細節,直至完成詳細設計(如下圖所示,左圖表示初始的PAD圖,右圖表示使用def符號細化處理框P2)
⑤:判定表和判定樹
當算法中包含多重嵌套的條件選擇時,判定表能夠清晰地表示復雜的條件組合與應做的動作之間的對應關系。由以下部分組成
- 左上部列出所有條件
- 左下部是所有可能做的動作
- 右上部是表示各種條件組合的一個矩陣
- 右下部是和每種條件組合相對應的動作
⑥:PDL
過程設計語言(PDL), 即偽碼,它是用正文形式表示數據和處理過程的設計工具。PDL具有嚴格的關鍵字外部語法,用于定義控制結構和數據結構。PDL表示實際操作和條件的內部語法通常又是靈活自由的,可以適應各種工程項目的需要
⑦:Jackson圖
- 面向數據結構的設計方法:面向數據結構的設計方法的最終目標是得出對程序處理過程的描述,面向數據結構的設計方法最適合于在詳細設計階段使用,即在完成了軟件結構設計之后,可以使用面向數據結構的方法來設計每個模塊的處理過程
- Jackson方法:Jackson方法和Warnier方法是最著名的兩個面向數據結構的設計方法,Jackson圖根據程序中數據元素彼此間的邏輯關系可分為順序結構、選擇結構和重復結構3類
(2)面向對象部分
①:類圖
具體符號細節請移步:(軟件工程復習核心重點)第八章面向對象方法學-第三節:面向對象建模之對象模型
- 類圖:類名、屬性、服務
- 類關系:泛化=實現>組合>聚集>關系>依賴
②:用例圖
③:狀態圖
狀態圖用來描述一個特定對象的所有可能狀態及其引起狀態轉移的事件,描述哪些狀態之間可以轉換,不同的狀態下有不同的行為
- 實心圓:表示初始狀態
- 實行圓外面一個空心圓:表示中止狀態
- 狀態框:上面是名稱,下面說明處于該狀態時,系統或對象要進行的活動
- 航空訂票系統狀態圖
④:順序圖
UML順序圖一般用于確認和豐富一個使用情境的邏輯。順序圖將交互關系表現為一個二維圖,縱向是時間軸,時間沿豎線向下延伸。橫向軸代表了在協作中各獨立對象的類元角色,類元角色的活動用生命線表示
- 生命線用一條縱向虛線表示
- 對象表示為一個矩形,其中對象名稱標有下劃線
- 激活是過程的執行,包括等待過程執行的時間。在順序圖中激活部分替換生命線,使用長條的矩形表示
- 消息是對象之間的通信,是兩個對象之間的單路通信,是從發送者到接收者之間的控制信息流。消息在順序圖中由有標記的箭頭表示,箭頭從一個對象的生命線指向另一個對象的生命線,消息按時間順序在圖中從上到下排列
- 在順序圖中,對象安排在X軸。啟動交互的對象放在最左邊,隨后放入消息的對象放在啟動交互對象的右邊。交互中對象發送和接收的消息沿著Y軸以時間增加的次序放置。在順序圖中,有的消息對應于激活,表示它將會激活一個對象,這種消息稱為調用消息(Call Message);如果消息沒有對應激活框,表示它不是一個調用消息,不會引發其他對象的活動,這種消息稱為發送消息(Send Message)
二:著重考察畫法的圖
(1)數據流圖(★★★★★)
A:畫法介紹
1:仔細閱讀題目,找出源點/終點、處理、數據流、數據存儲這四個要素(能找見多少就找多少)
- 源點/終點:例如人員
- 處理:例如數據的更新、條件等操作
- 數據流:例如信息、數據
- 數據存儲:例如數據庫、文件(比如賬戶密碼就必須要存儲起來)
2:畫出基本系統模型,這是一個高度抽象、簡單的模型。任何系統的基本模型都由若干數據源點/終點以及一個處理組成,該處理代表系統對數據加工變換的基本功能
3:細化模型中的功能,其中數據存儲可以最后畫
B:典型例題
1.假設一家工廠的采購部每天需要一張訂貨報表,報表按零件編號排序,表中列出所有需要再次訂貨的零件。對于每個需要再次訂貨的零件應該列出下述數據:零件編號,零件名稱,訂貨數量,目前價格,主要供應者,次要供應者。零件入庫或出庫稱為事務,通過放在倉庫中的CRT終端把事務報告給訂貨系統。當某種零件的庫存數量少于庫存量臨界值時就應該再次訂貨。畫出上述訂貨系統的數據流圖
1:基本系統模型
- 任何系統的基本模型都由若干數據源點/終點以及一個處理組成,該處理代表系統對數據加工變換的基本功能
如下
2:細化模型,描繪系統主要功能
- 產生報表和處理事物是系統必須完成的兩個主要功能
- 細化后增加了兩個數據存儲:處理事物需要庫存清單數據;產生報表和處理事物需要訂貨信息
3:進一步細化功能級數據流圖中描繪的系統主要功能
當一個事物發生使必須先接受它,隨后按照事物的內容修改庫存清單,最后如果更新后的庫存量少于臨界值,需要再次訂貨
4:考慮是否繼續分解和細化
一旦在想要分解時產生了諸如 “如何具體地實現一個功能” 這樣的疑問時就表明不需要分解了
5:檢查
- 分層必須保證信息的連續性
- 注意編號的處理
2.銀行計算機儲蓄系統的工作過程大致如下:儲戶填寫的存款單或取款單由業務員鍵入系統,如果是存款則系統記錄存款人姓名、住址(或電話號碼)、身份證號碼、存款類型、存款日期、到期日期、利率及密碼(可選)等信息,并印出存單給儲戶;如果是取款而且存款時留有密碼,則系統首先核對儲戶密碼,若密碼正確或存款時未留密碼,則系統計算利息并印出利息清單給儲戶
頂層
第一層
3.醫院對患者監護系統的基本要求是隨時接收每個病人的生理信號(脈搏、體溫、血壓、心電圖等),定時記錄病人情況以形成患者日志,當某個病人的生理信號超出醫生規定的安全范圍時向值班護士發出警告信息,此外,護士在需要時還可以要求系統印出某個指定病人的病情報告
4.高考錄取統分子系統有如下功能
(1)計算標準分:根據考生原始分計算得到標準分,存入考生分數文件
(2)計算錄取分數線:根據標準分、招生計劃文件中的招生人數計算錄取線,存入錄取
線文件。
根據要求畫出該系統的數據流圖
5.
(2)E-R圖(★★★★★)
A:畫法介紹
最經典的就是那個“教學管理系統”E-R圖,其余圖可套用它
一個學生可選修多門課,一門課有若干學生選修;一個教師可講授多門課,一門課只有一個教師講授;學生選修一門課,產生成績;學生的屬性有學號、姓名等;教師的屬性有教師編號,教師姓名等;課程的屬性有課程號、課程名等。請畫出該系統E-R圖
B:典型例題
1.請為某倉庫的管理設計一個ER模型。該倉庫主要管理零件的訂購和供應等事項。倉庫向工程項目供應零件,并且根據需要向供應商訂購零件
2.請畫出銀行儲蓄系統的E-R圖
3.請畫出飛機訂票系統的E-R圖
4.請畫出醫患監護系統E-R圖
(3)狀態轉換圖(★★★)
A:畫法介紹
在讀題目時區分狀態與事件
-
狀態:狀態是任何可以被觀察到的系統行為模式,一個狀態代表系統的一種行為模式。狀態規定了系統對事件的響應方式。系統對事件的響應,既可以是做一個(或一系列)動作,也可以是僅僅改變系統本身的狀態,還可以是既改變狀態,又做動作
-
狀態圖:狀態圖是有限自動機的圖形表示,反映了狀態與事件的關系
-
事件:事件就是引起系統做動作或(和)轉換狀態的控制信息
B:典型例題
1.復印機的工作過程大致如未接到復印命令時,處于閑置狀態。-旦接到復印命令,則進入復印狀態。完成一個復印命令規定的工作后,又回到閑置狀態。等待下一個復印命令。如果執行復印命令時發現沒紙,則進入缺紙狀態,發出警告,等待裝置。裝滿紙后進入閑置狀態,準備接收復印命令。如果復印時發生卡紙故障。則進入卡紙狀態。發出警告,等待維修人員來排除故障,故障排除后回到閑置狀態。試用狀態轉換圖,描繪復印機的行為
- 復印機的狀態有:閑置、復印、缺紙、卡紙
- 引起狀態轉換的事件:復印命令、完成復印命令、發現缺紙、裝滿紙、發生卡紙、卡紙排除
2.請用狀態轉換圖刻畫堆棧對象的動態行為模型
(4)結構圖(★★★)
A:畫法介紹
一個典型的結構圖例子
- 最左側一般是輸入
- 中間是處理
- 最右側是輸出
B:典型例題
1.計算考生分數計算系統的結構圖
【答案】
(5)程序流程圖和盒圖(★★★★★)
A:畫法介紹
- 程序流程圖這里就再不多說了,從高中起就在話這個東西
- 重點掌握程序流程圖和盒圖的轉換
B:典型例題
1.研究下面盒圖和程序流程圖的對應關系
【答案】
2.
【答案】
(6)流圖
A:畫法介紹
-
主要涉及考點就是程序流程圖轉換為流圖,然后根據流圖估計程序復雜度
-
具體映射方法在前面已有介紹
-
流圖不畫開始畫結束
-
流圖中用圓表示結點,一個圓代表一條或多條語句(比如4、5)。程序流程圖中的一個順序的處理框序列和一個菱形判定框,可以映射成流圖中的一個結點(比如2,3)
-
流圖中的箭頭線稱為邊,代表控制流。流圖中一條邊必須終止于一個結點(比如9必須為一個結點),即使這個結點并不代表任何語句
-
由邊和結點圍成的面積稱為區域,計算區域數時應包括圖外部未被圍起來的區域
B:典型例題
1.
(7)判定表
A:畫法介紹
- 列出所有條件,分清這些條件的大小(一般條件數少的作為大條件)
- 我的建議時先畫判定樹,再弄判定表,如果直接上來就是判定表,很容易出錯
B:典型例題
假設某航空公司規定,乘客可以免費托運重量不超過30kg(條件1)的行李。當行李重量超過30kg時,對頭等艙(條件2)的國內乘客(條件3) 超重部分每公斤收費4元,對其他艙(條件2) 的國內乘客超重部分每公斤收費6元,對外國乘客(條件4) 超重部分每公斤收費比國內乘客多–倍,對殘疾乘客超重部分每公斤收費比正常乘客少一半
在表的右上部分中T表示它左邊那個條件成立,F表示條件不成立,空白表示這個條件成立與否并不影響對動作的選擇。判定表右下部分中畫X表示做它左邊的那項動作,空白表示不做這項動作
- 第一個條件是行李重量,分為大于30kg和小于30kg
- 第二個條件是國內乘客和國外乘客,分配兩派
- 第三個條件是頭等艙和其他艙,分為兩派
- 第三個套件是正常和普通旅客,分為兩派
- 交易總金額
- 每股售價
- 買進、賣出的股數是否是100的倍數
- 交易的股數是否是100的倍數
(8)類圖
A:畫法介紹
- 注意這種題沒有標準的答案,按照連接自己的畫就可以了
- 先畫對象,然后再連接
B:典型例題
現代人的生活離不開銀行及其ATM柜員機,客戶會在銀行開設多個賬戶,通過柜員
機刷卡,(包括跨行ATM) 進行交易來辦理取款入賬和轉賬等多種交易業務,請用
類圖刻畫上述銀行業務的靜態邏輯結構
總結
以上是生活随笔為你收集整理的【软件工程导论题型大总结】画图题总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一道画图题
- 下一篇: windows freeSSHd搭建SF