參與者的特性:
- 參與者位於系統外部,它不屬於系統的一部分,所以我們不需要去建造參與者。
- 只有會使用系統,會跟系統互動,會跟系統交換資訊者,才會視系統的參與者。
- 參與者會啟動、參與使用案例,所以找到參與者,就可以引道我們找到使用案例。
- 我們雖然不需要建造參與者,但是卻需要考慮介面。系統需要提供介面讓參與者使用,或者系統需要使用到參與者提供的介面。
尋找參與者的問題表:
- 誰會來使用這個系統?
- 誰會來安裝這個系統?
- 誰會來啟動這個系統?
- 誰會來維護這個系統?
- 誰會來關閉這個系統?
- 那些其他的系統會來使用這個系統?
- 誰會從這個系統取得資訊?
- 誰會提供資訊給這個系統?
- 在預設的時間到時,有時麼事情會自動發生嗎?
- 那些其他的系統會與這個系統連線的?
- 可有硬體設備會與這個系統連線?
- 那些資料庫會與這個系統連線?
- 公司內部有哪些人員會來使用這個系統?
- 公司外部可有什麼樣的人士會來使用這個系統?
- 當特定的時間或事件發生時,這個系統需要自動通知什麼人,或者是自動通知其他系統嗎?
參與者種類表:
| 種類 | 細項 | 參與者 | 
| 人 | 公司內部的人 | |
| 公司外部的人 | ||
| 系統 | 其他系統(內部) | |
| 其他系統(外部) | ||
| 硬體設備 | ||
系統簡述:
- 系統名稱:
- 系統簡述:<用三兩句話點出系統的主要特色>
- 重點整理:  - <最好可以使用條列式的方式,將討論到的或者想到重要的,一一條列下來,方便日後回顧。>
 
使用案例的問題表:
- 參與者想要從這個系統獲得什麼樣的功能?
- 這個系統儲存資訊嗎?那些參與者將建立、讀取、更新或刪除這些資訊?
- 當系統內部狀態有變動時,這個系統需要通知參與者嗎?
- 是否有什麼外部事件是這個系統需要知道的?當這些外部事件發生時,那些參與者會通知這個系統?
- 這個系統需要定期執行什麼工作嗎?
- 當發生了某些重要的外部事件時,這個系統需要自動執行什麼工作嗎?
- 這個使用案例的名稱夠明確嗎?是不是可以從這個使用案例的名稱,直接判斷出它的產出?
- 這個使用案例會有多樣產出結果嗎?還是這些產出結果,其實是在不同的時間點產出的?
使用案例要點表:
| 使用案例 | 要點 | 說明 | 
| 名稱 | 產出 | |
| 重要步驟 | ||
| 議題 | 
使用案例敘述最簡版:
- 使用案例:<名稱>
- 事件流程:  - <起始點>
- <終結點>
 
替代流程的問題表:
- 在這個流程步驟上頭,是否還有其他替代的動作?
- 在這個流程步驟上頭,是否會發生什麼樣的錯誤?
- 在整個使用案例執行過程中,是否隨時可能發生其他未記錄在敘述中的動作?
- 參與者輸入資料時,是否會提供不完整的資料,需要重新補上的?
- 是否會出現錯誤的資料,需要特別處理的?
- 參與者是否會在操作期間,臨時中斷流程?
- 參與者是否會在使用案例期間,隨時取消互動?
- 參與者是否會想要挑選其他的執行方法?
- 參與者在流程執行過程中,會不會有需要協助的地方?
- 系統發生當機時,是否需要特殊的處置?
- 系統反應時間過長時,是否需要特殊的對應方法?
替代流程分類表:
- 替代流程:  - 替代1:不完整的資料
- 替代2:錯誤的資料
- 替代3:取消或中斷操作
- 替代4:其他的執行方法
- 替代5:需要協助
- 替代6:系統當機或無回應
 
包含關係要點表:
- 需要共享的相同流程,才能夠獨立出來
- 暫存資料或者存取資料庫的動作,不要輕易獨立出來。
- 如果只是一兩句相同的流程敘述,不需要大費周章地獨立出來。
擴充關係要點表:
- 謹慎地使用擴充關係,避免因為濫用擴充關係,而讓使用案例圖變得很難理解。
- 擴充關係通常使用在系統上線之後的改版,可以在不變動已經寫好的使用案例敘述的情況下,利用擴充關係,加上一段新的使用案例敘述,以滿足新的需求。
- 不一定會執行的流程,可以放置在替代流程中;要是想要跟其他使用案例共用這段流程的話,也可以改用擴充關係。
切分次系統使用案例的步驟表:
- 判斷原先的系統使用案例比較適合分配給哪個次系統,然後幫這個次系統新增一個同名的次系統使用案例。
- 再者,原先的系統使用案例敘述中,大部分的流程步驟,都留給這個同名的次系統使用案例。
- 然後,將不適合流在新的次系統使用案例中的其餘步驟切分出來,分配給其他次系統,形成其他次系統內部的次系統使用案例。在分派的時候,可以趁機再一次檢視並修訂使用案例敘述,成為新的次系統使用案例敘述。
- 接著,更新次系統的使用案例圖,以及重新整理次系統使用案例敘述。
- 最後,繪製其他次系統的使用案例圖,以及撰寫這些次系統使用案例敘述。
使用案例圖和使用案例敘述的完整性檢視:
- 您是否有發現任何新的參與者?以及,是否有哪些參與者是不需要的?
- 是否有任何參與者不小心被移進系統內了?或者,有任何事物應該位於系統內部,可是卻不小心被移到系統外了?
- 是否所有參與者的名稱和說明都是有意義,而且閱讀者都能夠容易理解?
- 您是否有發現任何新的使用案例?是否有遺漏掉任何使用案例呢?
- 是否所有使用案例的名稱和敘述都是有意義,而且閱讀者都能夠容易理解?
- 在所有的使用案例敘述中,是否至少描述了一條主要流程?
- 在所有的使用案例敘述中,是否都有描述替代流程?
決定使用案例的細膩度:
- 誰需要閱讀並且逼准這份使用案例敘述文件?
- 誰需要使用這份使用案例敘述文件?
- 這份使用案例敘述文件用來做什麼的?
估計工時=>
使用案例點計算公式:
- 未經調整的使用案例點=參與者總權重+使用案例總權重 - 技術複雜因子=0.6+(0.01*技術總權重) - 環境因子=1.4+(-0.03*環境總權重) - 使用案例點=未經調整的使用案例點*技術複雜因子*環境因子 - 工時=使用案例點*20人時(或28人時) - 參與者加權值: - 簡單型參與者:這類型的參與者通常是其他系統,採用程是介面與我們所開發的系統互動。簡單型參與者的加權值是1。 - 一般型參與者:這類型的參與者有兩種:第一種是採用特殊協定互動的其他系統;第二種是採用文字模式互動的人類使用者。普通型參與者的加權值是2。 - 複雜型參與者:這類型的參與者就是我們常見的人類使用者,採用豐富且親和力高的圖形介面。複雜型參與者的加權值是3。 - 使用案例加權值(依業務量): - 簡單型使用案例:這類型的使用案例擁有少於3個的業務量,它的加權值是5。 - 一般型使用案例:這類型的使用案例擁有4~7個的業務量,它的加權值是10。 - 複雜型使用案例:這類型的使用案例擁有多於7個的業務量,它的加權值是15。 - 使用案例加權值(依物件量): - 簡單型使用案例:這類型的使用案例使用了少於5種的分析物件,它的加權值是5。 - 一般型使用案例:這類型的使用案例使用了5~10種的分析物件,它的加權值是10。 - 複雜型使用案例:這類型的使用案例使用了多於10種的分析物件,它的加權值是15。 - 技術因子和加權值 - (強烈等級評分:0是最弱的,3是中等強度,5是最強烈的等級。) - 因子 - 說明 - 加權值 - 強烈等級 - 技術權重 - T1 - 分散式系統 - 2 - T2 - 反應時間(連線) - 1 - T3 - 終端使用者效能 - 1 - T4 - 複雜的內部處理 - 1 - T5 - 程式碼可重用程度 - 1 - T6 - 容易安裝 - 0.5 - T7 - 容易使用 - 0.5 - T8 - 便於攜帶 - 2 - T9 - 容易更改 - 1 - T10 - 同步性 - 1 - T11 - 包含特殊的安全機制 - 1 - T12 - 提供直接存取給第三方 - 1 - T13 - 特殊的使用者培訓設施要求 - 1 - 環境因子和加權值 - (強烈等級評分:0是最弱的,3是中等強度,5是最強烈的等級。) - 因子 - 說明 - 加權值 - 強烈等級 - 技術權重 - E1 - 熟悉循環式開發方法 - 1.5 - E2 - 應用領域的經驗 - 0.5 - E3 - 物件導向的經驗 - 1 - E4 - 分析師的能力 - 0.5 - E5 - 幹勁 - 1 - E6 - 穩定的需求 - 2 - E7 - 兼職的工作人力 - -1 - E8 - 困難的程式語言 - -1 - 負面因子: - E1~E6,強烈等級低於3的個數;E7~E8,強烈等級高於3的個數;兩個數字加總,即為負面因子個數。 - ≦2:專案的總負面因子少於或等於2時,可以採用20人時來估算。 - 3~4:專案的總負面因子個數等於3或4時,可以採用28人時來估算。 - ≧5:專案的總負面因子個數大於或等於5時,專案失敗的可能性非常高,最好可以調整專案,直到專案的負面因子個數降到5以下為止。 
 
 
沒有留言:
張貼留言