106 銀行招考五職等 臺灣銀行-程式設計人員 台銀 程式設計人員(2) 綜合科目 考古題詳解
第 一 題15 分
某大學學生輔導室的一場 36 名教師座談會中,主持人欲了解 36 名教師與學生的互動方式,詢問 36 名教師相關問題後,得到結果如下:
- 以 email 與學生互動的教師有 36 名。
- 以 line 與學生互動的教師有 19 名。
- 以手機與學生互動的教師有 12 名。
- 以 email、line 及手機三種方式與學生互動的教師有 8 名。
試問: (一) 恰好用 2 種方式與學生互動的教師分別有多少名?【7 分】 (二) 有多少名教師至少用 2 種方式與學生互動?【4 分】 (三) 有多少名教師只用 1 種方式與學生互動?【4 分】
登入後即可作答並保存紀錄。
核心觀念
本題考查三集合的分類與集合包含關係。
設:
- :以 email 與學生互動
- :以 Line 與學生互動
- :以手機與學生互動
全體教師共有 名,且以 email 互動者也是 名,因此:
也就是每一名教師都使用 email。因此,使用 Line 或手機的教師必然也屬於 集合。
特別注意:不存在「只用 Line 與手機、但不用 email」的教師,因為全體教師都使用 email。
解題方法
三種方式皆使用者共有 名。
(一)恰好用 2 種方式
1. 恰好使用 email 與 Line
所有使用 Line 的教師共有 名,其中 名同時使用手機,屬於三種方式皆使用者。
因此,恰好使用 email 與 Line 者為:
2. 恰好使用 email 與手機
所有使用手機的教師共有 名,其中 名同時使用 Line,屬於三種方式皆使用者。
因此,恰好使用 email 與手機者為:
3. 恰好使用 Line 與手機
由於每名教師都使用 email,因此使用 Line 與手機者必然同時使用三種方式。
所以不存在「恰好使用 Line 與手機」者:
故恰好使用 2 種方式的教師為:
- email、Line: 名
- email、手機: 名
- Line、手機: 名
(二)至少用 2 種方式
至少使用 2 種方式者,包括:
- 恰好使用 email 與 Line: 名
- 恰好使用 email 與手機: 名
- 恰好使用 Line 與手機: 名
- 三種方式皆使用: 名
因此:
所以至少使用 2 種方式者共有:
(三)只用 1 種方式
因為全體 名教師都使用 email,所以只使用 1 種方式者只能是「只使用 email」。
已知:
第 二 題17 分
軟體工程包括軟體開發技術和軟體專案管理兩方面內容,請回答下列問題: (一) 隨著 Internet 的興起,分散式系統的環境日趨成熟,要將整個 Internet 視為區域網路般的存取資源與交換資料,程式設計上就必須考慮到三層式架構,請說明三層式架構的內容。【9 分】 (二) 請說明何謂 CMMI?根據 CMM 的定義,軟體工程的成熟度分成五個等級,請說明其內容。【8 分】
登入後即可作答並保存紀錄。
第二題
(一)三層式架構
核心觀念
三層式架構(Three-Tier Architecture)是將應用程式依功能分成三個彼此獨立、各司其職的層次:
- 表示層(Presentation Tier)
- 應用程式層/商業邏輯層(Application/Business Logic Tier)
- 資料層(Data Tier)
其主要目的在於降低系統各部分的耦合程度,使系統容易維護、擴充、分散部署及管理。當 Internet 被視為廣域分散式的存取環境時,使用者介面、商業處理及資料儲存不宜全部集中在同一台電腦,因此需要透過三層式架構分工。
解題方法
答題時依序說明三層的「功能、所在位置、彼此互動方式」,再補充其優點,即可完整涵蓋配分重點。
1. 表示層
表示層負責與使用者互動,功能包括:
- 顯示網頁、表單、報表及查詢結果。
- 接受使用者輸入,例如帳號、密碼、查詢條件及交易資料。
- 進行基本的輸入格式檢查。
- 將使用者的請求傳送至應用程式層。
- 將應用程式層處理後的結果呈現給使用者。
在 Internet 環境中,表示層通常由瀏覽器、行動裝置程式或前端網頁所構成。表示層不應直接處理複雜商業規則,也不宜直接連接資料庫。
2. 應用程式層/商業邏輯層
應用程式層是系統的核心處理部分,負責:
- 執行商業規則與業務流程。
- 驗證使用者權限。
- 處理交易、計算及資料轉換。
- 控制表示層與資料層之間的資料交換。
- 判斷資料是否符合業務規範。
例如銀行轉帳系統中,應用程式層必須判斷帳戶是否存在、餘額是否足夠、交易金額是否合理,並控制扣款與入款流程。
此層通常部署在應用程式伺服器(Application Server)上。透過集中管理商業邏輯,可避免每一個客戶端各自實作一套規則,降低程式重複及規則不一致的問題。
3. 資料層
資料層負責資料的儲存與存取,功能包括:
- 儲存資料庫、檔案及其他持久性資料。
- 執行新增、查詢、修改及刪除。
- 維護資料完整性、一致性及安全性。
- 管理交易、索引、備份及復原。
- 對應用程式層提供標準化的資料存取服務。
資料層通常部署在資料庫伺服器(Database Server)上。應用程式層透過資料庫連線、資料存取元件或 API 存取資料,表示層不直接接觸資料庫。
三層之間的運作流程
典型的資料流向如下:
資料層完成處理後,再依相反方向回傳:
例如使用者查詢帳戶餘額時:
- 使用者在表示層輸入帳號及查詢要求。
- 應用程式層驗證身分與權限,並執行查詢邏輯。
- 資料層從資料庫取得帳戶資料。
- 應用程式層整理資料並套用業務規則。
- 表示層將結果顯示給使用者。
三層式架構的優點
- 分工明確:介面、商業邏輯及資料管理各自獨立。
- 容易維護:修改前端畫面時,不必大幅修改資料庫程式。
- 容易擴充:可依需求增加前端伺服器、應用程式伺服器或資料庫伺服器。
- 提高安全性:使用者不能直接連接資料庫,資料存取集中由應用程式層控制。
- 適合分散式環境:三個層次可部署於不同主機,支援 Internet、多使用者及高流量服務。
- 提高重複使用性:同一套應用程式邏輯可同時服務網頁、行動裝置及其他客戶端。
解題技巧
看到「Internet、分散式系統、區域網路般存取、交換資料」等關鍵字,應立即聯想到:
表示層負責互動、應用程式層負責規則、資料層負責儲存。
常見失分點是只寫「前端、後端、資料庫」三個名稱,未說明各層的職責及資料流向;完整答案應補上分層目的與架構優點。
(二)CMMI 與軟體工程成熟度五個等級
核心觀念
CMMI 是 Capability Maturity Model Integration 的縮寫,中文通常譯為「整合式能力成熟度模型」。它是一套用來評估及改善組織流程能力的模型,重點不在於評估單一程式設計師的能力,而在於判斷組織的軟體開發、專案管理及品質管理流程是否制度化、可衡量且能持續改善。
CMMI 的概念源自 CMM(Capability Maturity Model,能力成熟度模型),將組織的軟體工程流程分為五個成熟度等級。成熟度越高,表示流程越有制度、越可預測,對個人英雄式開發的依賴越低。
解題方法
依成熟度由低至高,逐級說明:
- 流程是否混亂。
- 是否能依靠專案管理重複成功。
- 是否建立組織標準流程。
- 是否以量化資料控制流程。
- 是否持續最佳化與改善流程。
CMM 的五個成熟度等級
第一級:初始級(Initial)
此階段的流程具有以下特徵:
- 軟體開發流程不穩定且缺乏制度。
- 專案成敗高度依賴少數有經驗的人員。
- 常以臨時應變方式處理問題。
- 預算、時程、品質及功能容易失控。
- 組織尚未建立可重複使用的標準流程。
此階段即使某一個專案成功,也未必能在下一個專案複製相同成果。
第二級:可重複級(Repeatable)
此階段開始建立基本的專案管理能力,主要特徵包括:
- 能進行需求管理。
- 能規劃專案時程與成本。
- 能追蹤專案進度。
- 能進行軟體專案管理及品質管理。
- 曾經成功的專案經驗可以在類似專案中重複使用。
- 開發流程仍可能因不同專案而有所差異。
此階段的重點是「專案層級的管理」。流程雖已具備可重複性,但尚未形成全組織一致的標準。
第三級:已定義級(Defined)
此階段已建立組織層級的標準流程,主要特徵包括:
- 建立並文件化軟體開發標準流程。
- 將需求分析、設計、編碼、測試及維護等活動制度化。
- 建立組織的流程資產與作業規範。
- 對人員進行相關流程與技術訓練。
- 各專案可依組織標準流程調整出適用的專案流程。
- 流程不再只依賴個人經驗。
第 三 題17 分
(一) 使用 CASE 工具有助於系統分析,包含製作 DFD 文件,請問 CASE 與 DFD 之英文(或中文)全名分別為何?【4 分】 (二) 系統分析師需要確認與驗證新系統「需求」(requirements),包括檢視所列之「需求是否正確」(correct)、「需求是否一致」(consistent),請再列舉四項。【4 分】 (三) 設某「狀態圖」(state diagram)如下圖所示,請說明該圖上各符號之意義為何?【4 分】 (四) 統一塑模語言 UML(unified modeling language)制定了一套圖型表示法以塑模系統架構,請問 UML 中所謂的「4+1 觀點」(views)內容為何?【5 分】
登入後即可作答並保存紀錄。
核心觀念
本題綜合考查軟體工程與系統分析的基本名詞,包括:
- CASE 與 DFD 的定義
- 軟體需求的品質特性
- 狀態圖的表示法
- UML 的 4+1 觀點模型
(一)CASE 與 DFD 全名
- CASE
CASE 是 Computer-Aided Software Engineering,中文為「電腦輔助軟體工程」。 指利用電腦工具輔助系統分析、設計、程式開發、測試及文件製作等軟體工程活動。
- DFD
DFD 是 Data Flow Diagram,中文為「資料流程圖」。 用來表示系統中資料的來源、處理程序、儲存位置及流向。
解題技巧
CASE 是「輔助軟體工程的工具或環境」;DFD 則是「描述資料流動的分析模型」,兩者層次不同,不可混淆。
(二)需求的品質特性
題目已列出:
- 正確性(Correctness)
- 一致性(Consistency)
除此之外,可列舉下列四項:
-
完整性(Completeness) 所有必要的功能、限制條件及例外情況均已納入,沒有遺漏重要需求。
-
可行性或實現性(Feasibility) 需求能在既定的技術、成本、時間及人力條件下實現。
-
可驗證性或可測試性(Verifiability / Testability) 能透過測試、檢查或分析判斷系統是否滿足該需求。
-
可追蹤性(Traceability) 每項需求均能追溯至提出來源、系統功能、設計內容及測試案例。
其他合理答案包括:
- 必要性(Necessity)
- 可理解性(Understandability)
- 不具歧義性(Unambiguity)
- 可修改性(Modifiability)
- 優先順序明確(Prioritization)
解題方法
需求驗證的重點,是確認需求「寫得對不對、彼此有沒有矛盾、內容是否足夠、能不能實作、能不能測試」。因此答案應優先選擇完整性、可行性、可驗證性及可追蹤性等常見需求品質。
解題技巧
需求品質常用記憶方式為:
正確、一致、完整、可行、可測、可追蹤。
(三)狀態圖符號意義
圖中各符號意義如下:
- 圓形節點 S0、S1、S2、S3
表示系統或物件的不同狀態。例如 S0、S1、S2、S3 分別代表四種狀態。
- 有向箭線
表示狀態轉移方向。箭頭由目前狀態指向下一個狀態,代表在特定輸入或事件發生後,系統由一個狀態變成另一個狀態。
- 箭線上的標籤,例如 、、
此圖採用「輸入/輸出」格式:
- 左側數字是輸入或觸發事件。
- 右側英文字母是輸出。
-表示沒有輸出。
例如:
- :收到輸入 2 後,產生輸出 B,並依箭頭方向轉移。
- :收到輸入 2 後,產生輸出 C。
- :收到輸入 1,但不產生輸出。
- 由狀態指回自身的弧線
表示自我轉移(self-transition)。圖中 S3 的迴圈標示 ,表示 S3 在輸入 2 時仍停留於 S3,同時輸出 C。
- 箭頭方向
箭頭尖端所在的節點是轉移後的狀態。例如 S2 指向 S3 的箭線標示 ,表示 S2 遇到輸入 2 後,轉移至 S3 並輸出 B。
解題技巧
看到狀態圖時,依序判斷:
第 四 題17 分
(一) 請以「單向鏈結串列」(Singly Linked List)方式,呈現 5 筆字元資料 T、A、B、F、W 之鏈結串列結構圖。【4 分】 (二) 擬於 12,800 筆已排序過的資料中,以「二元搜尋法」(Binary Search)搜尋一「目標」(target)資料,請問於最佳與最差的搜尋狀況下,其所需的資料「比對」次數分別為何?【5 分】 (三) 請依下圖所示之二元樹(Binary Tree)結構,針對節點作「中序走訪」(in-order traversal)、「後序走訪」(post-order traversal)之節點拜訪順序分別為何?【8 分】
登入後即可作答並保存紀錄。
核心觀念
本題考查三個資料結構觀念:
- 單向鏈結串列:每個節點包含「資料」與「下一個節點位址」。
- 二元搜尋法:資料必須先排序,每次比較都將搜尋範圍縮小約一半。
- 二元樹走訪:
- 中序:左子樹 → 根節點 → 右子樹
- 後序:左子樹 → 右子樹 → 根節點
(一)單向鏈結串列
資料順序為 T、A、B、F、W,因此每個節點依序指向下一個節點:
其中:
Head指向第一個節點 T。- T 指向 A,A 指向 B,B 指向 F,F 指向 W。
- W 為最後一個節點,其
next指標為NULL。
(二)二元搜尋法的比較次數
解題方法
二元搜尋法每次比較後,約可排除一半資料。
最佳搜尋狀況
第一次比較即找到目標資料,因此比較次數為:
最差搜尋狀況
最多需要 次比較時,可處理的節點數為:
本題有 筆資料:
所以最差情況需要:
(三)二元樹走訪
題目中的二元樹結構為:
- 根節點:30
- 30 的左子樹為 18,右子樹為 60
- 18 的左子節點為 8,右子節點為 28
- 8 的右子節點為 12
- 60 的左子節點為 36,右子節點為 66
中序走訪(In-order)
規則為:
依序拜訪:
- 8 的左子樹:無
- 拜訪 8
- 拜訪 12
- 拜訪 18
- 拜訪 28
- 拜訪 30
- 拜訪 36
- 拜訪 60
- 拜訪 66
因此中序走訪為:
後序走訪(Post-order)
規則為:
依序處理:
第 五 題17 分
(一) 於關聯式資料表(relational tables)中,針對表內之主鍵(primary key)欄位值有何限定?【4 分】 (二) 資料庫系統於操作過程將產生「交易日誌檔」(transaction logs),請問此檔案有何作用?【4 分】 (三) 設關聯表 TABLE_X 之主鍵欄位為 PK、外來鍵(foreign key)欄位為 FK,其餘欄位為 X1~X3,設已儲存 6 筆資料錄,如下表所列:
TABLE_X:
| PK | X1 | X2 | X3 | FK |
|---|---|---|---|---|
| P010 | Allen | TW | 50,000 | F010 |
| P020 | David | TW | 28,000 | F028 |
| P030 | Jessie | USA | 28,500 | F010 |
| P040 | Peter | TW | 40,000 | F007 |
| P050 | Wayne | USA | 20,500 | F028 |
| P060 | Jenny | TW | 22,000 | F028 |
請依據下述 SQL 語句 (a)、(b) 所示之查詢要件,分別表列出該項查詢之結果?
(a) SELECT * FROM TABLE_X WHERE (X2 = 'USA' OR X3 > 28,500);【4 分】
(b) SELECT X2, COUNT(*), AVG(X3) FROM TABLE_X GROUP BY X2;【5 分】
登入後即可作答並保存紀錄。
核心觀念
本題考查三項資料庫基本觀念:
- 主鍵(Primary Key)的限制與實體完整性(Entity Integrity)。
- 交易日誌檔(Transaction Log)的功能。
- SQL 的條件查詢、邏輯運算、分組統計與聚合函數。
(一)主鍵欄位值的限定
核心觀念
主鍵是用來唯一識別關聯表中每一筆資料錄的欄位,必須符合:
-
不可重複(Unique) 不同資料錄的主鍵值不得相同。
-
不可為空值(NOT NULL) 主鍵欄位不得為
NULL,因為空值無法有效識別資料錄。 -
唯一識別資料錄 每筆資料錄必須能透過主鍵值被明確辨識。
-
最小性 主鍵應由能唯一識別資料錄的最少欄位所組成。若由多個欄位組成,稱為複合主鍵(Composite Key)。
解題方法
直接套用主鍵的兩項基本限制:
且
解題技巧
看到「主鍵」時,立即聯想到:
唯一且不可為空值。
若題目問的是「候選鍵」,則可能有多組候選鍵;但一個關聯表實際指定的主鍵只能選定一組,且仍須符合唯一性與非空值要求。
(二)交易日誌檔的作用
核心觀念
交易日誌檔會依序記錄資料庫交易的執行資訊,例如:
- 哪一筆交易開始與結束。
- 哪些資料被新增、修改或刪除。
- 修改前的資料值(Before Image)。
- 修改後的資料值(After Image)。
- 交易是否已經提交(Commit)或回復(Rollback)。
主要作用
1. 故障復原
當系統發生電力中斷、硬體故障或程式錯誤時,可依交易日誌進行資料庫復原。
- Undo:撤銷尚未完成或未提交的交易。
- Redo:重新套用已提交但尚未完整寫入資料庫的交易。
2. 維持交易的可靠性
交易日誌協助資料庫維持 ACID 中的:
- Atomicity(原子性):交易全部完成或全部不生效。
- Durability(永久性):交易提交後,即使發生故障,結果仍能被保留。
3. 支援交易回復與稽核
系統可利用日誌執行交易回復,也能追蹤資料異動歷程,作為問題分析與稽核依據。
解題技巧
交易日誌的核心用途可記成:
故障時,未完成的交易做 Undo;已提交但尚未寫入完成的交易做 Redo。
交易日誌不是一般的資料備份檔,而是記錄「交易異動過程」的檔案。
(三)SQL 查詢結果
解題前提
題目中的 28,500 應視為數值 。在標準 SQL 中,數值通常應寫成:
X3 > 28500
逗號一般不作為數值千分位分隔符。
(a)條件查詢
SELECT *
FROM TABLE_X
WHERE (X2 = 'USA' OR X3 > 28500);
核心觀念
WHERE 條件使用 OR,只要符合下列任一條件即可選取:
X2 = 'USA'X3 > 28500
逐筆判斷如下:
| PK | X2 | X3 | X2 = 'USA' | X3 > 28500 | 是否選取 |
|---|---|---|---|---|---|
| P010 | TW | 50,000 | 否 | 是 | 是 |
| P020 | TW | 28,000 | 否 | 否 | 否 |
| P030 | USA | 28,500 | 是 | 否 | 是 |
| P040 | TW | 40,000 | 否 | 是 | 是 |
| P050 | USA | 20,500 | 是 | 否 | 是 |
| P060 | TW | 22,000 | 否 | 否 | 否 |
注意:X3 = 28,500 不符合 X3 > 28,500,因為題目使用的是嚴格大於。
查詢結果
| PK | X1 | X2 | X3 | FK |
|---|---|---|---|---|
| P010 | Allen | TW | 50,000 | F010 |
| P030 | Jessie | USA | 28,500 | F010 |
| P040 | Peter | TW | 40,000 | F007 |
| P050 | Wayne | USA | 20,500 | F028 |
解題技巧
遇到 OR 時,只要一側為真即可。快速篩選方式是:
- 先找出所有
X2 = 'USA'的資料:P030、P050。 - 再找出所有
X3 > 28500的資料:P010、P040。 - 合併兩組資料並去除重複,即得四筆結果。
(b)分組統計查詢
SELECT X2, COUNT(*), AVG(X3)
FROM TABLE_X
GROUP BY X2;
核心觀念
第 六 題17 分
(一) 請說明於主機端下達網路操作指令 ping 168.68.6.8 之主要目的為何?【4 分】
(二) 請問「動態主機組態協定」DHCP(Dynamic Host Configuration Protocol)之主要功用為何?【4 分】
(三) 已知封包傳遞經由三段連結(Links):,假若此三段連結之資料速率(data rate)分別為:250 Mbps、500 Mbps、150 Mbps,則此三段連結之平均資料速率為何?【4 分】
(四) 設公司內有一子網路位址為 168.68.6.0/26,請問此子網路所涵蓋的網址範圍為何?【5 分】
登入後即可作答並保存紀錄。
核心觀念
本題考查電腦網路基礎,包括:
ping指令與 ICMP 通訊協定。- DHCP 的自動組態與租約管理功能。
- 多段連結資料速率的算術平均。
- CIDR 表示法
/26的子網路範圍計算。
本題不涉及選擇題,因此沒有選項需要逐一分析。
(一)ping 168.68.6.8 的主要目的
核心觀念
ping 是用來測試來源主機與目的主機之間網路連通性的指令,主要利用 ICMP(Internet Control Message Protocol,網際網路控制訊息協定)的:
- ICMP Echo Request
- ICMP Echo Reply
進行測試。
解題方法
主機執行:
ping 168.68.6.8
來源主機會向 168.68.6.8 傳送 ICMP Echo Request。若目的主機可達且允許回應,便會返回 ICMP Echo Reply。藉由回應結果,可以判斷:
- 目的主機是否可達。
- 網路路徑是否正常。
- 往返延遲時間(Round-Trip Time, RTT)。
- 是否發生封包遺失。
解題技巧與常見陷阱
ping 成功只能代表 ICMP 封包獲得回應,不能直接證明特定應用服務正常,例如 Web 服務或資料庫服務。若對方主機封鎖 ICMP,也可能出現 ping 失敗,但其他網路服務仍可正常使用。
【答案】
ping 168.68.6.8 的主要目的,是利用 ICMP 測試本機與目的主機 168.68.6.8 之間的網路連通性,並可測量封包往返延遲時間及觀察封包遺失情形。
(二)DHCP 的主要功用
核心觀念
DHCP(Dynamic Host Configuration Protocol,動態主機組態協定)是一種讓主機自動取得網路組態資料的通訊協定,避免管理者逐一手動設定每台電腦。
解題方法
DHCP 伺服器通常可提供下列資訊:
- IP 位址
- 子網路遮罩(Subnet Mask)
- 預設閘道(Default Gateway)
- DNS 伺服器位址
- 租約期限(Lease Time)
- 其他網路組態參數
DHCP 位址通常採「租用」方式提供。用戶端取得 IP 位址後,須在租約到期前進行續租;租約結束後,該位址可回收並重新分配給其他主機。
常見的 DHCP 取得流程可簡記為 DORA:
- Discover:用戶端廣播尋找 DHCP 伺服器。
- Offer:伺服器提供 IP 位址及相關設定。
- Request:用戶端要求採用該組態。
- ACK:伺服器確認分配結果。
解題技巧與常見陷阱
DHCP 的重點不是提供網頁內容,也不是負責網域名稱解析。它的主要功能是「自動分配及管理網路組態」,其中 IP 位址通常以租約方式動態取得。
【答案】
DHCP 的主要功用,是由 DHCP 伺服器自動分配及管理主機的網路組態,例如 IP 位址、子網路遮罩、預設閘道與 DNS 伺服器位址,並透過租約機制管理 IP 位址的使用期限。
(三)三段連結的平均資料速率
核心觀念
題目要求的是三段連結資料速率的「平均值」,採用算術平均公式:
已知:
- Link_A:
- Link_B:
- Link_C:
解題方法
將三段連結的資料速率相加,再除以三段:
解題技巧與常見陷阱
題目問的是「平均資料速率」,不是封包實際傳遞的端到端有效吞吐量。
若題目問三段連結共同傳輸時的最大端到端傳輸速率,則應取最慢連結的資料速率: