軟件體系架構的質量屬性--論文

軟件體系架構的質量屬性

陳陽陽

(石家莊鐵道大學,河北省石家莊市,050000)

摘要:軟件架構重點關注的是質量屬性。文章從常見的六個質量屬性,即可用性、可修改性、性能、安全性、可測試性、易用性寫起,使讀者對其有初步的認識和了解。解決了在具體的軟件開發環境中的質量屬性是什麼,怎麼用,如何用好的問題。在軟件開發過程中軟件的質量屬性扮演者至關重要的角色,只有合理地遵循質量屬性原則,才能快速、高效、低成本的開發出適合廣大羣衆的好產品。

關鍵詞:質量屬性;體系架構;軟件

Quality attributes of software architecture

Chenyangyang

  (Shijiazhuang Tiedao University,Shijiazhuang City, Hebei Province,050000)

Absrtact: software architecture focuses on quality attributes. This article starts from six common quality attributes, namely, usability, modifiability, performance, safety, testability and ease of use, so that readers can have a preliminary understanding of them. It solves the problem of what is the quality attribute in the specific software development environment, how to use it, and how to use it well. In the process of software development, the quality attribute of software plays an important role. Only by following the principle of quality attribute reasonably, can we develop a good product suitable for the masses quickly, efficiently and cheaply.

Keywords: quality attributes; architecture; software

引言

由於本學期開展了軟件體系架構這門課,學習了軟件質量的六大屬性,對性能屬性這方面想進行深入的瞭解,從而爲以後步入工作後的開發過程更加便捷。當前軟件對於用戶最直觀的體驗就是性能的指標,包括程序響應的時間,程序運行的流暢性,這些都是影響用戶體驗最直接的因素,本文將着重針對影響性能最直觀的因素和性能和其他質量屬性的關係進行闡述。當前硬件普遍性能過剩,那麼如何提高軟件的性能就成爲了一個熱點,也變成了優化對比的一個重要方面。

  1. 可用性

可用性與系統故障及其相關後果有關。當系統不再提供其規範中所說明的服務時,就出現了系統故障。
所關注的方面有:

  • 如何檢測系統故障
  • 系統故障發生的頻度
  • 出現故障時會發生什麼情況
  • 允許系統有多長時間非正常運行
  • 什麼時候可以安全地出現故障
  • 如何防止故障的發生以及故障時要求進行哪種通知

一般將系統可用性定義爲:

a = 平均正常工作時間 / (平均正常工作時間+平均修復時間)

從這個公式中我們得到了像99.9%的可用性、0.1%的故障率這樣的概念。

在計算可用性時,通常不考慮預定的停機時間(即停止服務),因爲根據定義是”不需要“系統的。這就導致會出現這種情況:系統停止運行,用戶等待系統提供服務,但因爲停機時間是預定的,因此不計入故障時間,也就不會影響可用性的數值。

2.可用性場景分析

   場景:雙十一淘寶用戶激增

   刺激源:淘寶用戶

   刺激:登錄人數太多導致淘寶無法響應,淘寶癱瘓

   環境:用戶正常瀏覽,選擇購物產品

   響應:淘寶頁面呈現“網絡出現故障,再次刷新”等提示信息,提示用戶下一步操作

   響應度量:系統降級模式下繼續運行,用戶刷新頁面或者重新登錄之後可以繼續正常使用。

3.可修改性

可修改性是有關變更的成本問題。它提出了兩個關注點:

(1)可以修改什麼(製品)?
可以修改系統的任何方面 ,最常見的就是系統計算的功能、系統存在平臺(硬件、操作系統和中間件等 )、系統運行的環境(它必須與之互操作的系統,它用於與其他部分進行通信的協議,等等)、系統所展示的質量屬性(其性能、可靠性、甚至包括將來的可修改性)以及其容量(所支持的用戶數量、同時發生的操作的數量,等等)。

(2)何時進行變更以及由誰進行變量(環境)?
最常見的就是修改源代碼。也就是說,開發人員必須修改代碼,對修改後的代碼進行測試,然後將其部署在新版中。然而,現在不僅僅是何時變更的問題,而且還有由誰進行變量的問題。

4.性能

性能是指軟件及時提供相應服務的能力。具體而言,性能包括速度、吞吐量和持續高速性三方面的要求:

(1)速度往往通過平均響應時間來度量;

(2)吞吐量通過單位時間處理的交易數來度量;

(3)持續高速性是指保持高度處理速度的能力。

5.安全性

安全性指軟件同時兼顧向合法用戶提供服務,以及阻止非授權使用軟件及資源的能力。

安全性既屬於技術問題又屬於管理問題。一般地,如果黑客爲非法入侵花費的代價(考慮時間、費用、風險等多種因素)高於得到的好處,那麼這樣的系統就可以認爲是安全的。

6.可測試性

軟件可測試性是指通過測試(通常是基於運行測試)揭示軟件缺陷的容易程度。在開發設計系統階段,40%花費在測試上面。

   可測試性戰術的目標是允許在完成軟件開發的一個增量後,較輕鬆的對軟件進行測試。一般我們進行提供輸入並捕獲輸出、內部監視。

7.易用性

易用性關注的是對用戶來說完成某個期望任務的容易程度和系統所提供的的用戶支持種類。下面以淘寶分析說明:

場景:用戶取消自己即將生成的交易

刺激源:淘寶用戶

刺激:用戶不滿意商品,選擇取消交易

製品:淘寶系統

環境:系統正常運行,用戶正常購買商品

響應:取消交易成功,淘寶系統刪除交易,恢復正常頁面

響應度量:取消在一秒內發生,不影響後面操作

8.總結

本學期我們開設的軟件體系架構這門課程對於質量屬性有着很高的要求,我只是在這裏淺嘗遏止,還需要進一步更加深入的去總計和練習軟件開發、架構過程中對於質量屬性的運用和要求,更加熟練的運用到軟件開發過程中來。

參考文獻:

[1] naughty,軟件中的質量屬性(一),https://my.oschina.net/taogang/blog/224658

[2] naughty,軟件中的質量屬性(二),https://my.oschina.net/taogang/blog/225513

[3] iteye_2272,軟件的質量屬性及其說明,https://blog.csdn.net/iteye_2272/article/details/82099106

[4] 程序猿胖子,質量屬性-可修改性,https://www.jianshu.com/p/5f02292a90e5

[5] 顧北清歌寒,軟件質量屬性——易用性課堂討論問題總結,

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章