110 地方特考三等 電子工程 計算機概論 考古題詳解
第 一 題20 分
何謂軟體開發生命週期(software development life cycle)?試述之。
登入後即可作答並保存紀錄。
核心觀念
軟體開發生命週期(Software Development Life Cycle,SDLC)是指軟體自形成開發需求、經過規劃與建置,直到正式運作、維護更新,最後退役淘汰的完整過程。
本題主要考查:
- SDLC 的定義與目的。
- 軟體開發的主要階段。
- 各階段的工作內容與產出。
- 不同開發模式的特性。
- 軟體品質、成本、時程及風險的控制方式。
SDLC 的核心精神,是將複雜的軟體開發工作分成若干階段,透過明確的程序、文件與審查,降低需求錯誤、開發失敗及後續維護困難的風險。
解題方法
本題屬於名詞解釋與申論題,作答時可採用「定義—階段—模型—目的」的架構:
- 先說明 SDLC 的意義。
- 依序說明各開發階段。
- 補充常見生命週期模型。
- 說明 SDLC 對軟體品質及專案管理的功能。
- 以維護及退役作結,形成完整循環。
一、可行性分析與專案規劃
此階段主要判斷軟體專案是否值得執行,以及應採取何種開發策略。
主要工作包括:
- 確認專案目標及問題背景。
- 分析技術可行性。
- 評估經濟效益與開發成本。
- 評估時程、人力及資源是否足夠。
- 分析法律、資安及組織方面的限制。
- 擬定專案範圍、時程、預算與風險管理計畫。
主要產出包括可行性分析報告、專案計畫書、初步成本效益分析及風險清單。
二、需求分析
需求分析是了解使用者及組織真正需要什麼,並將需求轉換成明確、可驗證的系統需求。
需求可分為:
1. 功能性需求
說明系統必須提供的功能,例如:
- 使用者登入。
- 資料新增、修改、刪除及查詢。
- 報表產製。
- 權限管理。
- 與其他系統交換資料。
2. 非功能性需求
說明系統應達到的品質與限制,例如:
- 效能。
- 可用性。
- 安全性。
- 可靠性。
- 可維護性。
- 擴充性。
- 相容性。
需求分析時通常會透過訪談、問卷、觀察、文件分析及原型展示等方式蒐集需求,並將結果整理成軟體需求規格書(Software Requirements Specification,SRS)。
良好的需求應具備完整性、一致性、明確性、可測試性及可追蹤性。若需求分析不完整,後續設計與程式開發即使正確,也可能因為「做錯了東西」而導致專案失敗。
三、系統設計
系統設計是將需求規格轉換成可供程式人員實作的技術方案,通常分為高階設計及詳細設計。
1. 高階設計
決定系統的整體架構,例如:
- 三層式架構。
- 主從式架構。
- 用戶端與伺服器架構。
- 微服務架構。
- 雲端架構。
同時規劃系統模組、子系統、資料流、外部介面及系統間的關係。
2. 詳細設計
進一步設計:
- 資料庫及資料表。
- 類別與物件。
- 演算法及流程。
- API 與外部介面。
- 使用者介面。
- 權限及資安控制。
- 錯誤處理與例外處理。
主要產出包括系統設計文件、資料庫設計、介面規格、流程圖、類別圖及原型畫面。
四、程式撰寫與建置
本階段依據需求規格及設計文件撰寫程式,將設計內容轉換為可執行的軟體。
主要工作包括:
- 選擇適當的程式語言及開發工具。
- 撰寫程式與設定檔。
- 建立資料庫及測試資料。
- 使用版本控制系統管理原始碼。
- 遵守編碼規範。
- 執行程式碼審查。
- 進行持續整合及建置。
此階段不只是「把程式寫出來」,還包括程式可讀性、模組化、效能、安全性及可維護性的控制。
五、測試與驗證
測試的目的是發現缺陷,確認軟體是否符合需求與設計。驗證則著重於確認軟體是否依正確方式建置;確認則著重於系統是否真正滿足使用者需求。
常見測試層級如下:
1. 單元測試
針對個別函式、類別或模組進行測試,確認最小功能單位運作正確。
2. 整合測試
測試不同模組間的介面與資料交換,確認模組組合後能正常運作。
3. 系統測試
將完整系統視為整體進行測試,檢驗功能、效能、安全性、可靠性及相容性。
4. 驗收測試
由使用者、業主或代表依據需求規格進行測試,確認系統是否符合實際業務需求,作為正式上線的重要依據。
常見測試方法包括黑箱測試、白箱測試、功能測試、效能測試、安全測試、壓力測試及回歸測試。
六、部署與正式上線
測試通過後,系統進入部署階段,將軟體安裝至正式環境供使用者操作。
部署工作包括:
- 建立正式環境。
- 安裝程式及資料庫。
- 設定網路、權限及安全機制。
- 進行資料轉換與資料移轉。
- 建立備份及復原機制。
- 撰寫操作手冊及維護文件。
- 執行使用者教育訓練。
- 監控上線後的系統狀況。
第 二 題20 分
以卡諾圖化簡 為最簡和項之積。
登入後即可作答並保存紀錄。
核心觀念
題式為
表示「最大項之積」,因此所列出的編號代表函數為 的格子:
使用卡諾圖化簡成「和項之積」(POS)時,應:
- 將函數值為 的格子填入卡諾圖。
- 以相鄰的 格進行分組。
- 每一組 產生一個和項。
- 各和項相乘,即得 POS 形式。
對於 格分組,其變數取值規則為:
- 固定為 的變數,寫未反相形式。
- 固定為 的變數,寫反相形式。
- 分組中有變化的變數予以消去。
解題方法
採用 為列、 為欄,並依 Gray code 排列:
| 00 | 01 | 11 | 10 | |
|---|---|---|---|---|
| 00 | 1 | 0 | 0 | 1 |
| 01 | 1 | 1 | 1 | 1 |
| 11 | 0 | 1 | 1 | 0 |
| 10 | 1 | 0 | 0 | 1 |
其中 格為:
第一組:
這四格可利用卡諾圖上下邊界相鄰的特性形成四格群組:
在此群組中:
- 有變化,消去。
- 有變化,消去。
- 固定,保留 。
- 固定,保留 。
因此產生和項:
第 三 題20 分
完全符合以下三個條件的二元樹(binary tree)有幾個?請畫出來。
- 有 6 個節點,每個節點均儲存一個英文字母
- 使用層序走訪(level order traversal)的結果:A B C D E F
- 使用後序走訪(postorder traversal)的結果:D E B F C A
登入後即可作答並保存紀錄。
核心觀念
本題考查二元樹的三種走訪方式:
- 層序走訪(Level Order):由上而下、由左而右逐層走訪。
- 後序走訪(Postorder):依序為「左子樹 → 右子樹 → 根節點」。
- 二元樹:每個節點至多有左、右兩個子節點。
題目給定:
- 層序:
- 後序:
解題方法
1. 判定根節點
後序走訪的最後一個節點必為整棵樹的根節點,因此:
層序走訪的第一個節點也為 ,相互符合。
2. 判定根節點的左右子樹
後序走訪為:
根節點 前面的部分可分成:
- 左子樹:
- 右子樹:
因此, 的左子樹根節點為 ,右子樹根節點為 。
層序走訪前兩層為:
所以 為 的左子節點, 為 的右子節點。
3. 判定 的子樹
的子樹包含 ,其後序結果必須是:
要符合後序「左、右、根」:
- 必須位於 的左子樹
- 必須位於 的右子樹
因此:
若令 為 的子節點、 為 的子節點,雖然後序可形成 ,但層序會先出現 再出現 ,與題目給定的 順序不符。
第 四 題25 分
說明下列 python 語言程式的執行過程,並寫出程式的輸出。
num = 80586 ans = [] i = 1 while i < num: i += 1 if num % i == 0: ans.append(i) num /= i while num % i == 0: num /= i
print(ans)
登入後即可作答並保存紀錄。
核心觀念
本題考查 Python 程式流程控制、串列操作、取餘數運算及質因數分解。
num % i == 0:判斷i是否為目前num的因數。ans.append(i):將找到的因數加入串列ans。num /= i:將num除以因數i。- 內層
while:持續除以相同的因數,去除該因數的所有次方。 - 外層
while i < num:逐一增加 ,尋找目前數值的因數。
因此,ans 最後儲存的是 80586 的相異質因數。
解題方法
先將 分解:
所以:
程式會由 開始逐一測試。
第一次找到因數:
初始狀態:
num = 80586
ans = []
i = 1
進入外層迴圈後,先執行:
i += 1
因此 。
因為:
執行:
ans.append(2)
num /= 2
此時:
ans = [2]
num = 40293
接著檢查是否還能繼續除以 :
所以離開內層迴圈。
找到因數:
持續增加至 。
因為:
加入 並持續除以 :
第 五 題15 分
三個區域網路(LAN)連接方式如下圖,其中有八台電腦及兩台橋接器(bridge)。試述橋接器的功能。若電腦 6 需要傳遞資料給電腦 1,如何達成資料傳輸?請詳述工作流程。
🖼️【此處有附圖,請對照原卷】
登入後即可作答並保存紀錄。
核心觀念
本題考查區域網路中橋接器(bridge)的功能,以及橋接器依據 MAC 位址進行資料轉送的流程。
圖中拓樸如下:
- 區域網路 1:電腦 1、2、3,並連接橋接器 1。
- 區域網路 2:電腦 4、5,並連接橋接器 1、2。
- 區域網路 3:電腦 6、7、8,並連接橋接器 2。
橋接器屬於 OSI 模型的資料連結層設備,主要依據乙太網路框架中的目的 MAC 位址,決定框架應轉送或過濾。
橋接器的功能
橋接器主要具有下列功能:
- 連接不同區域網路
橋接器可將不同的 LAN 連接起來,使各網段中的電腦可以互相傳輸資料。
- 依 MAC 位址轉送資料
橋接器接收到資料框架後,檢查來源 MAC 位址與目的 MAC 位址,並依據橋接表(MAC table)決定資料應送往哪一個網段。
- 學習 MAC 位址
橋接器會從收到的框架中讀取來源 MAC 位址,記錄該位址是由哪一個連接埠或網段進入,逐步建立橋接表。
- 過濾不必要的資料
若目的電腦與來源電腦位於同一個網段,橋接器不需將框架轉送至其他網段,可直接過濾,以降低網路流量。
- 隔離碰撞網域
橋接器可將不同 LAN 分隔成不同的碰撞網域,使某一網段發生的碰撞不會直接擴散到其他網段。
- 處理未知目的位址
若橋接器尚未學習目的 MAC 位址,會將框架轉送至除輸入網段以外的其他網段,此方式稱為泛洪(flooding)。目的電腦收到後才會接受該框架,其他電腦則予以丟棄。
橋接器主要依據 MAC 位址工作,不負責跨不同 IP 網路的路由選擇,因此與路由器的功能不同。
電腦 6 傳送資料給電腦 1 的流程
第一步:確認目的 MAC 位址
若電腦 6 已經知道電腦 1 的 MAC 位址,便可直接建立乙太網路資料框架:
- 來源 MAC 位址:電腦 6
- 目的 MAC 位址:電腦 1
- 資料內容:要傳送的資料
- FCS:錯誤檢查碼
若電腦 6 只知道電腦 1 的 IP 位址,則須先利用 ARP 廣播要求查詢電腦 1 的 MAC 位址。ARP 請求會經由橋接器轉送至其他 LAN,電腦 1 回覆其 MAC 位址後,電腦 6 才能建立單播資料框架。
第二步:資料框架在區域網路 3 傳送
電腦 6 將資料框架送入區域網路 3。
區域網路 3 上的電腦 7、8以及橋接器 2都會偵測到此框架,但橋接器 2會讀取框架內容:
- 記錄來源 MAC 位址「電腦 6」位於區域網路 3。
- 查詢目的 MAC 位址「電腦 1」所在的網段。