性能的規劃與實現
一個不能按意愿執行的程序是沒有用處的。每個程序都必須滿足某組用戶(有時會是一組很大且需求各不相同的用戶)的需求。如果程序的性能確實不能滿足那些用戶中很大一部分用戶的需求,則不會使用這個程序。一個不被使用的程序是不能實現預期功能的。
這種情況對經許可的軟件包和用戶編寫的應用程序是確實存在的,盡管大多數軟件包開發者意識到低性能的影響,并盡力提高程序的運行速度。不幸的是,他們不能預測程序要經歷的所有環境和用途。讓程序具有可接受性能的最終職責就落在了那些選擇或編寫、規劃以及安裝軟件包的人身上。
本章描述程序員或系統管理員可以確保新編寫或購買的程序具有可接受性能的步驟。(當程序員這個詞單獨出現時,它包含系統管理員和任何對程序的最終成功負責的人。)
為使程序達到可接受的性能,在工程開始時就要確定和量化可接受性,并且決不能忽視達到目標所需的方法和資源。盡管聽起來這是基本方法,但一些編程工程卻有意抵制它。他們采用一種清楚地描述為設計、編碼、調試、可能是編寫文檔,有時間的話再確定其性能的策略。
為使程序運行時不僅在邏輯上,而且在時間上都是可預知的,唯一辦法就是在軟件規劃和開發過程中對性能注意事項進行整體考慮。由于安裝者較之開發者有較少的自由,所以在現有軟件安裝時提前規劃也許就更關鍵了。
盡管對一個小程序來說,這個過程的細節可能看起來很繁重,但不要忘了我們還有第二個“記事本”。我們不僅必須保證新程序具有令人滿意的性能,還須確保該程序對現有系統的補充部分不會降低運行于該系統的其它程序的性能。
確定工作負載的組成部分
無論程序是新編寫的還是購買的、大程序還是小程序,開發者、安裝者和預期用戶都對程序的使用有所假設,比如:
誰使用該程序
程序在何種環境下運行
這些環境出現的頻度,以及在某年某月某日某時會出現多少次
在這些環境下是否還需使用其它現有程序
程序運行于何種系統
有多少數據將要從何處進行處理
由程序或為程序創建的數據是否會在其它方面用到
除非這些想法是作為設計過程的一部分提出的,否則很可能模糊不清,并且程序員將幾乎無疑會有與預期用戶不同的假設。甚至在程序員同時也是用戶這樣明顯很普通的情況中,讓假設無關會使以任何嚴格方式進行設計與假設的比較成為不可能。更糟的是,在對正進行的工作沒有完全理解的情況下是不可能確定性能需求的。
編寫性能需求文檔
在確定和量化性能需求時,確定某一特殊要求背后的推理是很重要的。這是規劃過程總能力的一部分。用戶可能會將其需求聲明基于與程序員的假設不匹配的程序邏輯的假設。性能需求集至少應記錄下面幾點:
各種特定類型的用戶 — 計算機交互作用在大部分時間會經歷的最佳響應時間,以及對大部分時間的定義。響應時間從用戶執行“運行”這個操作的時間直到用戶從計算機接收到足夠反饋以繼續執行任務來衡量。這是用戶的主觀等待時間。它不是從一個子例程的入口到第一個寫語句的時間。
如果用戶對響應時間不感興趣,而僅僅對結果感興趣,您可以詢問“當前獨立執行時間估計值的十倍”是否可以接受。如果回答“是”,您就可以繼續討論吞吐量。否則,您可以在用戶十分注意的情況下繼續討論響應時間。
文章來源于領測軟件測試網 http://www.kjueaiud.com/