第 6 章

6.10 Case M01使用案例模型實作

使用案例分析與建模

6.10.1 確認系統範圍與參與者

Case M01的正式名稱為「專題競賽報名與審查系統」,涵蓋競賽報名、專題文件上傳、評審分派、專題評分、評分更正及結果公告。建立使用案例模型時,應從已確認的系統範圍、參與者、功能需求及業務規則出發。

系統名稱:專題競賽報名與審查系統

參與者定義主要目標
隊長代表學生團隊辦理報名的人員提交及修改報名資料、上傳專題文件
評審對被分派專題進行評定的人員查看分派內容並提交評分
競賽承辦人員負責競賽評審行政作業的人員分派評審、處理更正、公告結果
主辦單位對競賽結果具有最終確認與決策權限的角色確認競賽結果是否可以進入公告程序
校園身分驗證系統提供身分驗證結果的外部系統支援使用者身分確認
被刪除的隊員或指導教師在報名資料異動中被移除的人員接收異動通知
電子郵件服務協助系統寄送通知的外部服務傳送異動通知

指導教師不是核心使用案例的主要參與者,其身分仍可能影響BR-05的評審分派限制。當系統依FR-14向被刪除的指導教師發送通知時,指導教師會在該局部情境中成為接收系統結果的次要參與者;若未發生該情境,則不需要出現在核心業務圖中。

6.10.2 補足需求並建立經確認的使用案例清單

為使使用案例具有明確的功能與驗收依據,本案例新增並確認下列需求。FR-13、FR-14及AC-14~AC-16分別規範身分驗證與刪除通知;其餘需求補足提交報名、提交評分、確認結果及公告結果的追蹤缺口。

識別碼內容
FR-13系統應在使用者執行受保護的系統服務時確認其有效身分;校內使用者透過校園身分驗證系統完成驗證,校外評審的登入方式仍依TBC-10確認。
FR-14當修改報名資料涉及刪除隊員或指導教師時,系統應在異動核准並生效後,透過電子郵件服務通知被刪除者。
FR-15系統應允許隊長在報名截止前正式提交符合規定的競賽報名。
FR-16系統應允許評審對被分派的參賽專題輸入並正式提交評分。
FR-17系統應允許主辦單位確認競賽結果是否可以進入公告程序。
FR-18系統應允許競賽承辦人員公告已經主辦單位確認的競賽結果。
AC-14身分驗證成功時,系統允許使用者依其權限繼續執行受保護服務。
AC-15身分驗證失敗或無法取得有效結果時,系統不得執行受保護服務。
AC-16刪除隊員或指導教師的異動核准並生效時,系統發送電子郵件通知並保存通知紀錄。
AC-17隊長在期限內提交完整且符合規定的報名資料時,系統正式保存報名及提交紀錄。
AC-18評審對被分派的專題提交完整評分時,系統保存正式評分及提交紀錄。
AC-19主辦單位確認競賽結果時,系統保存確認狀態、確認人員及確認時間。
AC-20競賽承辦人員要求公告未經主辦單位確認的結果時,系統拒絕公告。
AC-21競賽承辦人員要求公告已經主辦單位確認的結果時,系統完成公告並保存公告紀錄。
識別碼使用案例主要或相關參與者主要依據
UC-01提交競賽報名隊長FR-05、FR-15、BR-01、BR-09
UC-02修改報名資料隊長FR-01~FR-04、FR-14
UC-03上傳專題文件隊長FR-11、BR-13
UC-04分派評審競賽承辦人員FR-12、BR-05
UC-05評定參賽專題評審FR-08、FR-16、BR-11
UC-06處理評分更正競賽承辦人員FR-09、FR-10、BR-11、BR-12
UC-07確認競賽結果主辦單位FR-17、BR-10
UC-08公告競賽結果競賽承辦人員FR-18、BR-10
UC-09驗證使用者身分校園身分驗證系統FR-13
UC-10通知被刪除的隊員或指導教師被刪除者、電子郵件服務FR-14

每個「主要依據」都應連回正式需求登錄表。若現有資料不足以確認某項關係,應建立TBC,而不是自行補寫規則。

6.10.3 建立使用案例圖

為了讓讀者同時查看原始碼與圖形,先以text程式碼區塊呈現可複製的PlantUML原始碼,再以plantuml程式碼區塊交由支援的編輯器產生圖形。

PlantUML程式碼

text
@startuml
left to right direction
skinparam packageStyle rectangle

actor 隊長 as Captain
actor 評審 as Judge
actor 競賽承辦人員 as Staff
actor 主辦單位 as Organizer
actor 校園身分驗證系統 as Identity
actor 被刪除的隊員 as RemovedMember
actor 被刪除的指導教師 as RemovedAdvisor
actor 電子郵件服務 as EmailService

rectangle 專題競賽報名與審查系統 {
  usecase "UC-01\n提交競賽報名" as UC01
  usecase "UC-02\n修改報名資料" as UC02
  usecase "UC-03\n上傳專題文件" as UC03
  usecase "UC-04\n分派評審" as UC04
  usecase "UC-05\n評定參賽專題" as UC05
  usecase "UC-06\n處理評分更正" as UC06
  usecase "UC-07\n確認競賽結果" as UC07
  usecase "UC-08\n公告競賽結果" as UC08
  usecase "UC-09\n驗證使用者身分" as Authenticate
  usecase "UC-10\n通知被刪除的隊員或指導教師" as Notify
}

Captain -- UC01
Captain -- UC02
Captain -- UC03
Judge -- UC05
Staff -- UC04
Staff -- UC06
Staff -- UC08
Organizer -- UC07

UC01 ..> Authenticate : <<include>>
UC02 ..> Authenticate : <<include>>
UC03 ..> Authenticate : <<include>>
UC04 ..> Authenticate : <<include>>
UC05 ..> Authenticate : <<include>>
UC06 ..> Authenticate : <<include>>
UC07 ..> Authenticate : <<include>>
UC08 ..> Authenticate : <<include>>
Identity -- Authenticate
Notify -- RemovedMember
Notify -- RemovedAdvisor
EmailService -- Notify
Notify ..> UC02 : <<extend>>\n刪除異動核准並生效
@enduml

程式碼產生的使用案例圖

PlantUML 圖形預覽Mermaid 11.12
查看並複製 PlantUML 程式碼
plantuml
@startuml
left to right direction
skinparam packageStyle rectangle

actor 隊長 as Captain
actor 評審 as Judge
actor 競賽承辦人員 as Staff
actor 主辦單位 as Organizer
actor 校園身分驗證系統 as Identity
actor 被刪除的隊員 as RemovedMember
actor 被刪除的指導教師 as RemovedAdvisor
actor 電子郵件服務 as EmailService

rectangle 專題競賽報名與審查系統 {
  usecase "UC-01\n提交競賽報名" as UC01
  usecase "UC-02\n修改報名資料" as UC02
  usecase "UC-03\n上傳專題文件" as UC03
  usecase "UC-04\n分派評審" as UC04
  usecase "UC-05\n評定參賽專題" as UC05
  usecase "UC-06\n處理評分更正" as UC06
  usecase "UC-07\n確認競賽結果" as UC07
  usecase "UC-08\n公告競賽結果" as UC08
  usecase "UC-09\n驗證使用者身分" as Authenticate
  usecase "UC-10\n通知被刪除的隊員或指導教師" as Notify
}

Captain -- UC01
Captain -- UC02
Captain -- UC03
Judge -- UC05
Staff -- UC04
Staff -- UC06
Staff -- UC08
Organizer -- UC07

UC01 ..> Authenticate : <<include>>
UC02 ..> Authenticate : <<include>>
UC03 ..> Authenticate : <<include>>
UC04 ..> Authenticate : <<include>>
UC05 ..> Authenticate : <<include>>
UC06 ..> Authenticate : <<include>>
UC07 ..> Authenticate : <<include>>
UC08 ..> Authenticate : <<include>>
Identity -- Authenticate
Notify -- RemovedMember
Notify -- RemovedAdvisor
EmailService -- Notify
Notify ..> UC02 : <<extend>>\n刪除異動核准並生效
@enduml

此圖呈現八個主要業務使用案例,以及兩個共用或條件式使用案例。「主辦單位」負責UC-07確認競賽結果,「競賽承辦人員」負責UC-08公告競賽結果,兩者可以由不同人擔任,也可以由同一人兼任,但在使用案例模型中仍應依職責分別建模。

本案例已確認FR-13,因此UC-01至UC-08均以«include»關係納入UC-09「驗證使用者身分」。校園身分驗證系統支援校內使用者的身分確認;校外評審的登入方式仍依TBC-10確認。UC-10則依FR-14在刪除隊員或指導教師的異動核准並生效時擴充UC-02。被刪除者是接收通知的次要參與者,電子郵件服務則是支援通知傳送的外部服務。

6.10.4 撰寫核心使用案例描述

§ UC-04 分派評審

欄位內容
目的將參賽專題分派給符合規則的評審
主要參與者競賽承辦人員
觸發事件承辦人員開始進行評審分派
前置條件承辦人員具有可供校園身分驗證系統識別的帳號,且參賽專題及評審名單可供分派
成功後置條件系統保存符合規則的分派結果
相關需求與規則FR-12、FR-13、BR-05、AC-06、AC-14、AC-15
包含使用案例UC-09 驗證使用者身分

基本流程

  1. 競賽承辦人員要求進行評審分派。
  2. 系統執行UC-09「驗證使用者身分」。
  3. 系統取得可供分派的參賽專題與評審資料。
  4. 系統依BR-05排除本人指導該學生團隊的評審。
  5. 競賽承辦人員確認分派內容。
  6. 系統保存分派結果。

UC-04-EF-01 沒有符合條件的評審

  1. 系統無法為某項專題找到符合規則的評審。
  2. 系統不建立該項不完整分派,並指出待處理的專題。
  3. 競賽承辦人員依正式程序處理。

§ UC-05 評定參賽專題

欄位內容
目的評審對被分派的參賽專題提交評分
主要參與者評審
觸發事件評審要求評定被分派的參賽專題
前置條件評審具有可供校園身分驗證系統識別的帳號,且專題已分派給該評審
成功後置條件系統保存正式提交的評分及提交紀錄
相關需求與規則FR-08、FR-13、FR-16、BR-11、AC-07、AC-08、AC-14、AC-15、AC-18
包含使用案例UC-09 驗證使用者身分

基本流程

  1. 評審要求查看被分派的參賽專題。
  2. 系統執行UC-09「驗證使用者身分」。
  3. 系統呈現評審可評定的專題及評分資料。
  4. 評審提供評分內容並提出提交要求。
  5. 系統檢查必要資料與權限。
  6. 系統保存正式評分及提交時間。
  7. 系統回覆提交成功。

已提交的評分不得由評審直接修改;若需更正,應依正式程序提出並由授權人員處理。

6.10.5 建立追蹤與一致性檢查

模型完成後,應逐項檢查:

  • UC-01是否反映FR-05、BR-01與BR-09?
  • UC-02是否反映報名截止前後不同的修改權限與處理程序?
  • UC-03是否同時反映PDF格式與20 MB限制?
  • UC-04是否依BR-05排除本人所指導之學生團隊?
  • UC-05是否只允許評審評定被分派的專題?
  • UC-06是否遵守更正申請及授權處理程序?
  • UC-07是否由主辦單位確認競賽結果?
  • UC-08是否只公告已確認的結果?
  • UC-09是否在每項受保護服務執行時完成身分驗證,並正確處理驗證失敗?
  • UC-10是否只在刪除異動核准並生效時通知被刪除者,且保存通知紀錄?
  • 所有文件是否統一使用「專題」?
  • 所有識別碼是否採兩位數補零?
  • 使用案例圖、描述、需求與驗收準則是否一致?

若發現需求沒有對應的實際使用案例,不一定代表模型有誤;非功能需求可能只是跨使用案例的限制。若使用案例沒有任何需求或規則依據,則必須確認其是否為合理缺漏、待確認項目,或由AI與分析者自行加入的假設。

6.10.6 模型審查結果

Case M01使用案例模型可以作為流程模型、互動模型、資料模型及設計模型的共同依據。正式定稿前,應由業務代表、系統分析者、設計人員及測試人員共同檢查:

  • 系統邊界是否符合核准範圍?
  • 參與者是否完整且角色定義清楚?
  • 使用案例是否代表可辨識的業務目標?
  • 關係是否符合UML語意?
  • 情境是否反映重要規則及例外?
  • 每項模型內容是否可追溯至可靠來源?