作業: 分析執行時期行為
這項作業說明如何分析元件執行期間的行為,來指出可以改善的地方。
規範: 實作
目的
  • 瞭解元件執行期間的行為。
  • 指出不規則的行為以及任何必要的更正動作。
關係
角色主要執行者: 其他執行者:
輸入強制: 選用:
輸出
流程用法
步驟
決定必要的執行情境
目的:  指出會導向屬意的執行時期行為之執行路徑

如果觀察及分析執行時期行為是為了提供軟體行為的內部透視,您就需要考慮有必要探查的應用程式執行路徑,以及在這些執行路徑中,哪些路徑最有助於瞭解軟體的執行時期行為。

一般而言,最有用的探查情境,都傾向於反映出使用者通常會使用的全部或局部情境。因此,最好盡可能透過使用問卷或諮詢領域專家方式,例如所開發的軟體之代表使用者,來指出情境。

使用案例可以提供一套極有價值的構件,因而可以從中找出和探查到極有用的情境。身為開發人員,您最熟悉的這些情境會是使用案例實現化方式,因此您應該盡可能從這些開始進行。如果沒有使用案例實現化方式,請在任何可用的使用案例情境中,指出可以針對使用者在瀏覽使用案例內的各個事件流程時,對瀏覽路徑提供文字式說明的使用個案情境。最後,可以參考事件的使用案例流程,以提供可能可以從中找出候選情境的資訊。詢問使用案例參與者代表或其他領域專家,可以提高最後一個方法的成功率。

在嘗試指出有助於進行執行時期分析的情境時,測試人員也是可以詢問的另一種有用資源。測試人員由於長期進行測試工作,使他們形同是該領域的專家,因此對該領域會有極深的透視和體驗。在許多情況下,觀察軟體執行時期行為的刺激因素,常是來自於測試作業本身。

如果這項作業是因為已提出的問題報告而產生,則主要的重點將會是在受管制的環境中重新產生這項作業。依據發生問題時所記載的資訊,必須找出一些 Test Case,作為問題會再發的可能情況。您可能需要調整一下部分測試或是撰寫新的測試案例,不過請記得重新產生問題是必要的步驟,並且就大部分的情況而言,固定問題要比解決問題花更多時間。

準備執行時期觀察的實作元件
目的: 確保元件處於適當的狀態,可以開始執行時期執行

若要使元件的執行時期執行產生精確的結果,必須謹慎準備元件的必備條件,才不會因為實作、編譯或鏈結錯誤,而連帶發生不規則的結果。

這裡通常需要使用 Stub 元件,以便能適時完成執行時期觀察,或是在元件必須仰賴尚未實作的其他元件情況下執行。

您也需要準備執行元件所需的任何架構或支援工具。在某些情況下,這可能是指建立驅動程式或 配置程式碼,來支援元件執行作業;有時則是指配置元件,讓外部支援工具可以觀察,也可能控制元件行為。

準備執行環境
目的: 確保已正確完成目標環境的必備條件設定。

一定要顧及進行執行時期分析的目標環境必有的任何需求和限制。有時,可能需要模擬必須執行元件的一或多個屬意的部署環境。不過有時卻只需要觀察元件在開發人員機器上的執行時期行為即可。

不論是哪一種情況,都一定要適切地設定要進行執行時期觀察的目標環境,如此,在進行觀察練習時,才不會涵蓋極可能會導致後續的分析變成無效的「汙染物」,浪費了所做的練習。

其他考量是使用的工具所產生的環境限制或是極難重新產生的異常狀況。這類工具有助於隔離出在這些狀況下,執行時期行為中發生的失敗或異常情況。

執行元件並擷取行為觀察
目的: 觀察及擷取元件的執行時期行為。

準備好元件以及要在其中觀察元件的環境後,您現在就可以開始透過選擇的情境,執行元件。視所採用的技術和工具,這個步驟極大部分是自動式的,也可能會在情境進行期間,提供(或甚至於要求)不斷的人工介入。

審查行為觀察及隔離起始發現
目的: 在元件執行時期行為中,找出失敗及異常

在您所觀察的情境之每一個步驟或結尾,尋找預期行為中是否有失敗或異常。記下您所做的觀察,或您認為可能會和異常行為有關的地方。

分析發現項目,瞭解根本原因
目的: 瞭解任何失敗及異常的起因

拿出您的發現項目,並開始探查每項失敗的基礎錯誤或起因。

指出及聯絡延續動作
目的: 提供進一步的調查或更正動作建議

當您審查過您的所有發現項目後,您可能會看出或認為有些項目需要做進一步的調查,並且您可能會建議採取一些特定的更正動作。如果您不會自己針對這些項目採取立即的動作,請用適當的形式記下您的提案,並將提案交付給負責核准您的提案,或是負責採取動作的團隊成員。

評估成果
目的: 驗證作業已適當完成,並且產生可接受的工作成果。

現在您已經完成工作了,這時最好驗證該項工作確實具有足夠的價值,而不只是花費在大量紙上作業。您應該評估您的工作是否具有適當的品質,並且該工作的完成狀態可以讓團隊的其他成員用作他們的後續工作之輸入。請盡可能使用 RUP 提供的檢查清單,來驗證品質和完成狀態都「夠好」。

邀請將會使用您的工作作為輸入來執行他們的下游作業的人員,來參與審查您的暫時性工作。請在您仍有時間採取動作來處理他們關心的問題時執行這個動作。您同時也應該將您的工作和關鍵的輸入工作成果做評估,以確定您已經適當且正確地重新呈現及考慮到那些工作成果。 在這個基礎上,邀請輸入工作成果的作者審查您的工作,會有助於您評估您的工作成果。

請記得 RUP 是一項反覆式的交付程序,在許多情況下,工作成果都會隨著時間而演進。因此,通常並不需要(通常是缺乏生產力)對只會在緊跟在後的後續工作中用到一部分,或甚至於完全用不到的工作,做出完整的工作成果。這是因為和工作成果相關的狀況極可能會變動,因此在建立工作成果所做的假設狀況就變成不正確,導致要重做,因而浪費了許多人力物力。

同時也要避免浪費太多時間在呈現方式上,而導致損害內容本身的價值。在呈現方式佔極大的重要性,並且可以提交專案就具有商業價值的專案環境中,您可以考慮將改進工作成果的呈現方式工作,交給管理資源或較資淺的資源來做。



詳細資訊