l

2012年3月30日 星期五

Quality Attribute Scenarios(8):Performance General Scenarios

March 26 12:50~13:28

image

昨天介紹了performance的含意,今天要接著介紹課本第84-85頁所提到的performance general scenario。

元素

可能的內容

Source

多個獨立事件來源的其中一個,包含系統本身

Stimulus

Periodic event; sporadic event; stochastic event

Artifact

系統

Environment

正常模式,過載模式(overload mode)

Response

處理事件;改變服務等級

Response Measure

Latency、deadline、throughput、jitter、miss rate、data loss

有了上面這個Performance General Scenario Generation表格,鄉民們就可以替自己的軟體架構定義出很多個performance QAS。接下來請看幾個例子:

Quality Attribute

Source

Stimulus

Artifact

Environment

Response

Response Measure

Performance

使用者

送出訂單

系統

正常模式

完成訂單交易

每一筆訂單的平均處理時間不可大於兩秒

Performance

使用者

送出車票訂單

系統

過載模式

完成訂單交易或失敗

每一筆訂單的平均處理時間不可大於一百二十秒,否則取消交易

Performance

網路設備 送出封包

系統

正常模式

將封包轉送到正確的目的地 每個封包必須在時為秒內處理完畢

Performance

前端軟體系統 送出交易請求

系統

正常模式

完成交易 每秒需具備處理三千筆交易的能力

Performance QAS就這麼簡單,當寫出系統的performance QAS之後,軟體架構師或是開發人員就必須要思考需要怎樣的軟硬體架構才可以滿足這些performance QAS的要求。這幾年一大堆有錢有勢的鄉民們喊著要開發雲端應用,莫不以系統能夠服務千百萬人作為自己生命的目標。在雲端計算中,performance(與scalability)就是很重要的品質屬性。而為了達成使用者或是客戶所期待的performance要求,許多新的軟體系統與架構也就應運而生或是變得流行了起來,像是MapReduce、NoSQL與支援non-blocking IO的Node.js等等。所以說,雖然開發軟體剛開始的時候最先想到的總是功能需求,但是隨著程式語言、軟體工具與元件的進步,做出功能需求已經相對而言已經不再那麼的困難,反倒是軟體系統對於各種非功能需求的要求越來越高。也就是說,軟體架構所介紹的這些QAS加減學一下還是有用滴。

***

友藏內心獨白:做軟體的人還真是命苦。

沒有留言:

張貼留言