111 高普考高考二級 資訊處理 系統分析與設計研究 考古題詳解
第 一 題25 分
若系統開發採用 Scrum 方法,請問 Scrum 開發流程中,在衝刺進行階段使用的燃盡圖(可參考下圖,藍色曲線是實際「任務預估工時」的變化,紅色直線是理想狀況的預測線)如何協助專案管理的控管?
🖼️【此處有附圖,請對照原卷】
登入後即可作答並保存紀錄。
核心觀念
燃盡圖(Burndown Chart)是在衝刺期間追蹤「剩餘工作量」如何隨時間減少的圖表。橫軸通常是衝刺天數,縱軸是尚未完成工作的預估工時或工作量。
圖中的紅色直線代表理想進度:假設工作量平均燃盡,從衝刺開始時的 22 小時,在第 5 天降至 0。藍色曲線代表實際剩餘任務的預估工時變化。藍線高於紅線,表示剩餘工作比理想進度多;低於紅線,表示剩餘工作比理想進度少。
解題方法與圖形判讀
將各日的藍線數值與紅色理想線比較,判斷實際進度與計畫進度的差異:
- 第 0 天:剩餘約 22 小時,衝刺剛開始。
- 第 1 天:剩餘 21 小時,高於紅線,進度略落後。
- 第 2 天:剩餘 15 小時,高於紅線,仍落後於理想進度。
- 第 3 天:剩餘 7 小時,低於紅線,進度超前。
- 第 4 天:剩餘 3 小時,低於紅線,仍超前。
- 第 5 天:剩餘 0 小時,衝刺結束時完成預定工作。
因此,圖形顯示衝刺前段的剩餘工時高於理想線,表示工作燃盡較慢;中後段則低於理想線,表示進度追上並超前,最後在衝刺結束時歸零。
燃盡圖如何協助專案管理控管
-
掌握衝刺進度 團隊可定期更新剩餘預估工時,了解工作是否按計畫減少,並快速發現進度偏離。
-
及早揭露風險 若藍線持續高於紅線,代表剩餘工作偏多,團隊可及早調查原因,例如任務受阻、估時不足、工作拆分不清或成員負荷不均。
第 二 題25 分
進行物件導向系統分析與設計,常以類別圖來表達物件間之靜態結構。
(一)請說明類別間有那四種關係。(10 分)
(二)分別介紹每一種關係之表達意涵。(15 分)
登入後即可作答並保存紀錄。
核心觀念
本題測驗物件導向系統分析與設計(OOAD)中統一塑模語言(Unified Modeling Language, UML)類別圖(Class Diagram)的靜態結構模型。依據物件管理組織(OMG)之 UML 規範,類別與類別(或介面)之間存在四種基本結構關係:相依(Dependency)、關聯(Association)、一般化(Generalization) 與 實現(Realization)。 本題重點在於檢驗考生是否具備以下能力:
- 精確掌握四種關係之標準定義、概念語意(Use-a、Has-a、Is-a、Can-do)。
- 明確區分各關係在生命週期相依性、耦合強度(Coupling Strength)以及程式語言實作層次(區域變數/參數 vs. 成員變數 vs. 繼承 vs. 介面實作)之差異。
- 精準繪製各關係在 UML 類別圖中的標準符號規範(虛線、實線、箭頭樣式與端點圖標)。
解題方法
- 子題(一)切入策略(10 分): 採取「名稱定義+語義標籤+耦合度光譜」之架構作答。依 OMG 規範列出四種核心關係(相依、關聯、一般化、實現),並在關聯中帶出聚合(Aggregation)與組合(Composition)之特化形式,展現對物件導向架構的全面性理解。
- 子題(二)切入策略(15 分): 每一種關係均以四個標準構面深入剖析:
- 語法意涵與關係本質(日常語意與概念模型)。
- 程式碼實作層次映射(讓分析與設計具備落地實作性)。
- 生命週期與耦合強度(相依生命期長短與系統耦合度)。
- UML 標準繪圖語法(線條形式、端點標記與圖形規範)。
選項分析
本題為高考二級之非選題(申論計算題型),無選項。為避免考生在應試時產生概念混淆,特此進行常考觀念辨析:
- 關聯(Association)vs. 相依(Dependency):若類別 僅在方法中以參數或區域變數形式使用類別 ,生命週期僅存於方法呼叫期間,屬於「相依」;若類別 將類別 保留為自身之成員屬性(Attribute),具備持久參照,則屬於「關聯」。
- 聚合(Aggregation)vs. 組合(Composition):二者皆為關聯之特化形式(整體與部分關係)。聚合為「弱擁有」(共享聚集),部分可脫離整體而獨立存在;組合為「強擁有」(複合聚集),部分之生命週期完全由整體掌控,同生共死。
- 一般化(Generalization)vs. 實現(Realization):一般化針對類別與類別間的繼承(含屬性與實作碼複用);實現針對類別對介面(Interface)之契約履行(僅定義行為規格,不具實作細節)。
解題技巧
- 口訣記憶法:以「依、聯、普、現」串聯四種關係(相依、關聯、一般化/普通化、實現)。
- 語義對應速查表:
- 相依(Dependency) Use-a(使用關係)
- 關聯(Association) Has-a / Knows-a(擁有/鏈結關係)
- 一般化(Generalization) Is-a(分類/繼承關係)
- 實現(Realization) Can-do / Implements(行為契約履行)
- 符號防錯檢查:
- UML 絕無實心三角形。凡是泛化、實現皆用「空心三角形箭頭」。
- 空心三角形配實線為「一般化」;配虛線為「實現」。
- 菱形永遠置於「整體(Whole)」端,而非「部分(Part)」端。空心菱形為聚合,實心菱形為組合。
【答案】
(一)類別間之四種關係說明
在 UML 物件導向系統分析與設計中,類別圖用以呈現系統內部之靜態結構。類別與類別(或介面)之間共有以下四種基本關係:
- 相依關係(Dependency): 表示一種暫時性的「使用(Use-a)」關係。指一個類別(客戶端 Client)的定義或實作依賴於另一個類別(供應商 Supplier)的規格變更。當供應商類別發生變更時,客戶端類別亦會受到波及。
- 關聯關係(Association): 表示一種結構性的「擁有/知悉(Has-a / Knows-a)」關係。指物件之間存在語意上的持久鏈結(Link),使彼此能夠長期保存參照並傳遞訊息。關聯依整體與部分之結合強弱,進一步特化出**聚合(Aggregation)與組合(Composition)**兩種形式。
- 一般化關係(Generalization): 表示一種分類與階層式的「繼承(Is-a)」關係。
第 三 題25 分
在物件導向技術中,同名異式一般可分為多載(Overload)與覆寫(Override)兩種型式。
(一)請分別說明何謂多載與覆寫。(15 分)
(二)請說明兩者間有何差異?請說明運用多型設計之優點。(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題聚焦於物件導向技術(Object-Oriented Technology, OOT)三大核心特性之一的「多型」(Polymorphism,題意稱「同名異式」)及其主要實現機制:
- 多載(Method Overloading,編譯期多型/靜態多型):屬於特定多型(Ad-hoc Polymorphism),透過改變方法簽章(Method Signature)中的參數串列,允許同一範圍內存在同名但不同行為的方法。
- 覆寫(Method Overriding,執行期多型/動態多型):屬於包含多型(Inclusion Polymorphism),奠基於繼承架構(Inheritance),子類別重新實作父類別已宣告的方法。
- 繫結機制(Binding Mechanism):靜態繫結(Static/Early Binding)與動態繫結(Dynamic/Late Binding)的運作時機與底層呼叫原理。
- 軟體工程架構原則:多型機制在物件導向設計(OOD)中對開放封閉原則(Open-Closed Principle, OCP)與依賴反向原則(Dependency Inversion Principle, DIP)的支援與貢獻。
解題方法
本題為標準的觀念辨析與效益分析申論題,作答策略如下:
- 第一小題(定義說明,15 分):
- 採「核心定義」、「成立條件(方法簽章結構)」、「繫結時機(Binding Time)」三維度,分別獨立說明多載與覆寫,並搭配簡明虛擬碼/概念語法,建立具體清晰的回答結構。
- 第二小題(差異比較與優點分析,10 分):
- 前半段「差異分析」:以「比較矩陣(表格)」呈現,從作用範疇、方法簽章、回傳型態、多型類別、繫結時序等面向做對比。
- 後半段「多型設計優點」:跳脫語法層次,由軟體工程架構與設計模式(Design Patterns)的高度出發,條列其對系統擴充性、耦合度、維護性及代碼重構(消除條件判斷分支)的優勢。
選項分析
本題為申論問答題,無單選或複選選項。閱卷評分關鍵與給分點配置如下:
- (一)多載與覆寫之定義(15 分):
- 多載定義與條件(名稱相同、參數不同、同一類別、編譯期決定):配分 7~8 分。
- 覆寫定義與條件(繼承關係、名稱與參數皆同、執行期動態分派):配分 7~8 分。
- (二)兩者差異與多型優點(10 分):
- 兩者差異對照(表格化明確條列 4~5 個維度):配分 5 分。
- 多型優點(擴充性、符合 OCP 原則、降低耦合、提高重用性):配分 5 分。
解題技巧
- 關鍵字精準擊中:
- 多載必寫:
同一類別(Class)、參數串列不同、編譯時期(Compile-time)、靜態繫結(Static Binding)。 - 覆寫必寫:
繼承關係(Inheritance)、簽章完全相同、執行時期(Runtime)、動態繫結(Dynamic Binding)、虛擬方法表(vtable)。
- 避免常見陷阱:
- 誤以為「回傳型態(Return Type)不同」即可構成多載(錯誤:僅傳回值型態不同不算多載,編譯器無法僅依傳回值辨識欲呼叫之方法)。
- 混淆語意:切勿將覆寫(Override)與遮蔽/隱藏(Shadowing/Hiding)混為一談。
- 高分論述亮點:
- 在說明多型優點時,帶入設計原則(如:SOLID 中的開放封閉原則),並點出可「消除龐雜的
switch-case或if-else型態判斷分支」,展現資深系統分析師的架構思維。
【答案】
(一)多載(Overload)與覆寫(Override)之說明
1. 多載(Method Overloading)
- 定義:在同一類別(Class)內(或具繼承關係的可見範圍內),定義兩個或兩個以上名稱相同,但參數串列(Parameter List)不同的方法。
- 成立條件:
- 方法名稱必須完全相同。
- 參數串列必須不同(參數的個數不同、型態不同或排列順序不同)。
- 僅改變回傳型態(Return Type)或存取修飾詞(Access Modifier)無法構成多載。
- 運作機制:屬於靜態多型(Static Polymorphism)或特定多型(Ad-hoc Polymorphism)。編譯器在編譯時期(Compile-time)即根據傳入引數的型態與個數,決定實際呼叫的方法版本,此過程稱為靜態繫結(Static Binding / Early Binding)。
- 應用範例:
第 四 題25 分
對關聯式資料庫設計而言,若沒有適當的設計,於資料維護時可能造成異常現象,包括新增異常、刪除異常及修改異常。以學生選課及收費的關聯表為例,其選課與收費規則及關聯表如下:
i. 每一個學員在某一時間內只能登記一種課程。
ii. 每一課程皆有一標準學費。
| 學員代號 | 課程代號 | 學費(元) |
|---|---|---|
| 666789 | CS101 | 8000 |
(一)以上述的關聯表設計為例,請分別舉例說明在何種情況會造成新增、刪除及修改異常。(15 分)
(二)應如何修改以避免上述異常現象?(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題測驗關聯式資料庫(Relational Database)正規化理論(Normalization Theory)的核心概念:**資料維護異常(Data Anomalies)與第三正規化(3NF)**之設計。
- 功能相依(Functional Dependency, FD):
- 規則 i 規範「每一個學員在某一時間內只能登記一種課程」,故在目前的關聯表架構下,給定學員代號即決定其所選課程:
- 規則 ii 規範「每一課程皆有一標準學費」,即給定課程代號即決定該課程學費:
- 由此可導出**候選鍵(Candidate Key)**為
學員代號,主鍵(Primary Key)亦設為學員代號。
- 遞移功能相依(Transitive Dependency):
- 關聯表中存在 且 ,但 ,導致非鍵屬性(
學費)遞移相依於主鍵(學員代號)。 - 該關聯表滿足第一正規化(1NF)與第二正規化(2NF,無部分功能相依),但違反第三正規化(3NF)。
- 資料異常(Data Anomalies):
- 當多個相依概念(「學員選課紀錄」與「課程收費標準」)混雜於同一個關聯表時,會違反**實體完整性(Entity Integrity Constraint,主鍵不可為空值)**及重複儲存資料,進而引發:
- 新增異常(Insertion Anomaly):欲輸入特定資訊時,因缺少其他相依實體的鍵值而無法新增。
- 刪除異常(Deletion Anomaly):刪除特定實體紀錄時,非預期地將其他獨立存在的實體資訊一併抹除。
- 修改異常(Update Anomaly):更新某一項屬性值時,需同步更新多筆重複紀錄,否則會導致資料不一致(Inconsistency)。
解題方法
- 切入點與相依性推導:
- 檢視題目給定的兩個業務規則,精確寫出功能相依式:
- 依據阿姆斯壯公理(Armstrong's Axioms)之遞移律(Transitivity Rule),存在:
- 判定問題本質:關聯表混雜了「選課事實(Enrollment)」與「課程資訊(Course)」,使得非鍵屬性
學費相依於另一個非鍵屬性課程代號。
- 針對第(一)小題之情境設計:
- 設定具體數值與實際業務情境(例如新開設課程尚未有人選修、學員退選、課程學費調漲),分別針對三種異常進行推演,說明為何受限於資料庫完整性限制或資料重複而無法正常維護。
- 針對第(二)小題之正規化分解(Decomposition):
- 運用**無失真連接(Lossless-join Decomposition)與相依性保留(Dependency Preservation)**原則,將關聯表分解至符合 3NF / BCNF:
- 將遞移相依的獨立實體抽離:建立
課程關聯表,由課程代號擔任主鍵。 - 保留原始選課關係:建立
選課關聯表,以學員代號擔任主鍵,並將課程代號設為外來鍵(Foreign Key)。
解題技巧
- 異常現象秒殺判斷法:
- 新增異常:聯想「只建主檔、尚無交易」。若只開一門課,但還沒有學生選,能不能存進去?(卡在主鍵不可為
NULL)。 - 刪除異常:聯想「交易撤銷、主檔陪葬」。若唯一選這門課的學生退選,課程資訊是否就此蒸發?
- 修改異常:聯想「資料重複、修改遺漏」。一門課若有多人選,改學費要改幾筆?若只改一筆會發生什麼事?
- 審題關鍵防雷: