目錄
一、軟件系統質量屬性
1.1 開發期質量屬性
1.2?運行期質量屬性
1.3?面向架構評估的質量屬性
1.4?質量屬性效用樹
1.5?質量屬性場景
1.5.1?可用性質量屬性場景描述? ? ? ?
1.5.2?可修改性質量屬性場景描述
1.5.3?性能質量屬性場景描述
相關推薦
歷年真題練習
????????歷年真題考情:本章節每年單項選擇考8分左右,下午案例、論文也會有涉及,在系統架構設計師中本章節絕對是重點中的重點。
????????主要學習軟件系統質量屬性、系統架構評估以及 ATAM 方法評估實踐等內容。很少涉及超綱題。
一、軟件系統質量屬性
????????軟件系統質量屬性 (Quality Attribute)是一個系統的可測量或者可測試的屬性,用來描述系統滿足利益相關者 (Stakeholders)需求的程度。基于軟件系統的生命周期,可以將軟件系統的質量屬性分為開發期質量屬性和運行期質量屬性2個部分。
1.1 開發期質量屬性
開發期質量屬性主要指在軟件開發階段所關注的質量屬性,主要包含6個方面。
????????(1)易理解性:指設計被開發人員理解的難易程度。
????????(2)可擴展性:軟件因適應新需求或需求變化而增加新功能的能力,也稱為靈活性。
????????(3)可重用性:指重用軟件系統或某一部分的難易程度。
????????(4)可測試性:對軟件測試以證明其滿足需求規范的難易程度。
????????(5)可維護性:當需要修改缺陷、增加功能、提高質量屬性時,識別修改點并實施修改的難易程度。
????????(6)可移植性:將軟件系統從一個運行環境轉移到另一個不同的運行環境的難易程度。
1.2?運行期質量屬性
運行期質量屬性主要指在軟件運行階段所關注的質量屬性,主要包含7個方面。
????????(1)性能:性能是指軟件系統及時提供相應服務的能力,如速度、吞吐量和容量等的要求。
????????(2)安全性:指軟件系統同時兼顧向合法用戶提供服務,以及阻止非授權使用的能力。
????????(3)可伸縮性:指當用戶數和數據量增加時,軟件系統維持高服務質量的能力。例如,通過增加服務器來提高能力。
????????(4)互操作性:指本軟件系統與其他系統交換數據和相互調用服務的難易程度。
????????(5)可靠性:軟件系統在一定的時間內持續無故障運行的能力。
????????(6)可用性:指系統在一定時間內正常工作的時間所占的比例。可用性會受到系統錯誤,惡意攻擊,高負載等問題的影響。
????????(7)魯棒性:是指軟件系統在非正常情況(如用戶進行了非法操作、相關的軟硬件系統發生了故障等)下仍能夠正常運行的能力,也稱健壯性或容錯性。
1.3?面向架構評估的質量屬性
????????為了評價一個軟件系統,特別是軟件系統的架構,需要進行架構評估。在架構評估過程中,
評估人員所關注的是系統的質量屬性。
? ? ? ? (1)性能:指系統的響應能力,即要經過多長時間才能對某個事件做出響應,或者在某段時間內系統所能處理的事件的個數。如響應時間、吞吐量。
????????設計策略:優先級隊列、增加計算資源、減少計算開銷、引入并發機制、采用資源調度等。
????????(2)可靠性:是軟件系統在應用或系統錯誤面前,在意外或錯誤使用的情況下維持軟件系統的功能特性的基本能力。如MTTF、MTBF、MTTR。
????????設計策略:心跳、Ping/Echo、冗余、選舉
????????(3)可用性:是系統能夠正常運行的時間比例,經常用兩次故障之間的時間長度或在出現故障時系統能夠恢復正常的速度來表示。如故障間隔時間。
????????設計策略:心跳、Ping/Echo、冗余、選舉。
????????(4)安全性:是指系統在向合法用戶提供服務的同時能夠阻止非授權用戶使用的企圖或拒絕服務的能力。如保密性、完整性、不可抵賴性、可控性。
????????設計策略:入侵檢測、用戶認證、用戶授權、追蹤審計。
????????(5)可修改性:指能夠快速的以較高的性能價格比對系統進行變更的能力。通常以某些具體的變更為基準,通過考察這些變更的代價衡量。包含以下4個方面:
? ? ? ? ? ? ? ? a.可維護性,局部修復使故障對架構的負面影響最小化;
? ? ? ? ? ? ? ? b.可擴展性,因松散耦合更易實現新特性/功能,不影響架構;
? ? ? ? ? ? ? ? c.結構重組,不影響主體進行的靈活配置;
? ? ? ? ? ? ? ? d.可移植性,適用于多樣的環境(硬件平臺、語言、操作系統等)。
????????設計策略:接口-實現分類、抽象、信息隱藏。
?????????(6)功能性:是系統所能完成所期望的工作的能力。一項任務的完成需要系統中許多或大多數構件的相互協作。
????????(7)可變性:指體系結構經擴充或變更而成為新體系結構的能力。這種新體系結構應該符合預先定義的規則,在某些具體方面不同于原有的體系結構。當要將某個體系結構作為一系列相關產品的基礎時,可變性是很重要的。
????????(8)互操作性:作為系統組成部分的軟件不是獨立存在的,經常與其他系統或自身環境相互作用。為了支持互操作性,軟件體系結構必須為外部可視的功能特性和數據結構提供精心設計的軟件入口。程序和用其他編程語言編寫的軟件系統的交互作用就是互操作性的問題,也影響應用的軟件體系結構。
1.4?質量屬性效用樹
????????質量屬性效用樹(Utility Tree)是一種樹狀結構,其根節點代表系統的整體質量,而子節點則代表不同的質量屬性(如性能、可修改性、可用性、安全性等)。這些質量屬性進一步被分解為更具體的場景,每個場景都描述了系統在使用過程中可能遇到的情況或需求。
1.5?質量屬性場景
? ? ? ? 質量屬性場景 (Quality Attribute Scenario) 作為描述質量屬性的手段。質量屬性場景是一個具體的質量屬性需求,是利益相關者與系統的交互的簡短陳述。
????????質量屬性場景是一種面向特定質量屬性的需求。它由6部分組成:
????????(1)刺激源 (Source):這是某個生成該刺激的實體(人、計算機系統或者任何其他刺激器)。
????????(2)刺 激 (Stimulus):該刺激是當刺激到達系統時需要考慮的條件。
????????(3)環 境 (Environment):該刺激在某些條件內發生。當激勵發生時,系統可能處于過載、運行或者其他情況。
????????(4)制品 (Artifact):某個制品被激勵。這可能是整個系統,也可能是系統的一部分。
????????(5)響應 (Response):該響應是在激勵到達后所采取的行動。
????????(6)響應度量 (Measurement):當響應發生時,應當能夠以某種方式對其進行度量,以對需求進行測試。
????????質量屬性場景主要關注可用性、可修改性、性能、可測試性、易用性和安全性等6類質量屬性。質量屬性描述場景在2024年5月份的時候考到了哦。
1.5.1?可用性質量屬性場景描述? ? ? ?
場景要素 | 可能的情況 |
---|---|
刺激源 | 系統內部、系統外部 |
刺激 | 疏忽、錯誤、崩潰、時間 |
環境 | 正常操作、降級模式 |
制品 | 系統處理器、通信信道、持久存儲器、進程 |
響應 | 系統應該檢測事件、并進行如下一個或多個活動: 將其記錄下來通知適當的各方,包括用戶和其他系統;根據已定義的規則禁止導致錯誤或故障的事件源。 在一段預先指定的時間間隔內不可用,其中,時間間隔取決于系統的關鍵程度在正常或降級模式下運行。 |
響應度量 | 系統必須可用的時間間隔 可用時間 系統可以在降級模式下運行的時間間隔 故障修復時間 |
1.5.2?可修改性質量屬性場景描述
場景要素 | 可能的情況 |
---|---|
刺激源 | 最終用戶、開發人員、系統管理員 |
刺激 | 希望增加、刪除、修改、改變功能、質量屬性、容量等 |
環境 | 系統設計時、編譯時、構建時、運行時 |
制品 | 系統用戶界面、平臺、環境或與目標系統交互的系統 |
響應 | 查找架構中需要修改的位置,進行修改且不會影響其他功能,對所做的修改進行測試,部 署所做的修改 |
響應度量 | 根據所影響元素的數量度量的成本、努力、資金;該修改對其他功能或質量屬性所造成影 響的程度 |
1.5.3?性能質量屬性場景描述
場景要素 | 可能的情況 |
---|---|
刺激源 | 用戶請求,其他系統觸發等 |
刺激 | 定期事件到達、隨機事件到達、偶然事件到達 |
環境 | 正常模式、超載 (Overload)模式 |
制品 | 系統 |
響應 | 處理刺激、改變服務級別 |
響應度量 | 等待時間、期限、吞吐量、抖動、缺失率、數據丟失率 |
還有可測試性、易用性和安全性質量屬性場景描述沒有提供,可以自己參考著寫一下。
相關推薦
【系統架構設計師】十一、系統架構設計(層次架構風格|MVC|面向服務的架構風格|ESB)-CSDN博客文章瀏覽閱讀829次,點贊16次,收藏15次。三層C/S架構:將處理功能獨立出來,表示層和數據層都變得簡單。表示層在客戶機上,功能層在應用服務器上,數據層在數據庫服務器上。既然將兩層C/S架構中的數據從服務器中獨立出來了。SOA是一種粗粒度、松耦合服務架構,服務之間通過簡單、精確定義接口進行通信,不涉及底層編程接口和通信模型。企業服務總線ESB:簡單來說是一根管道,用來連接各個服務節點。ESB的存在是為了集成基于不同協議的不同服務,ESB 做了消息的轉化、解釋以及路由的工作,以此來讓不同的服務互聯互通。https://shuaici.blog.csdn.net/article/details/140383777
【系統架構設計師】十一、系統架構設計(基于體系結構的軟件設計|特定應用領域軟件架構)-CSDN博客文章瀏覽閱讀525次,點贊9次,收藏7次。基于體系結構(架構)的軟件設計(ABSD)方法是體系結構驅動的,即指構成體系結構的商業、質量和功能需求的組合驅動的。在基于體系結構的軟件設計方法中,采用視角與視圖來描述軟件架構,采用用例來描述功能需求,采用質量場景來描述質量需求。DSSA 就是專用于一類特定類型的任務(領域)的、在整個領域中能有效地使用的、為成功構造應用系統限定了標準的組合結構的軟件構件的集合。DSSA 就是一個特定的問題領域中支持一組應用的領域模型、參考需求、參考體系結構等組成的開發基礎,其目標就是支持在一個特定領域中多個應用的生成。https://shuaici.blog.csdn.net/article/details/140434104
歷年真題練習
? ? ? ? 1.某公司欲開發一個網上商城系統,在架構設計階段,公司的架構師識別出3個核心質量屬性場景。其中"系統主站斷電后,能夠在2分鐘內自動切換到備用站點,并恢復正常運行"主要與(1)質量屬性相關通常可采用(2)架構策略實現該屬性;"在并發用戶數不超過1000人時,用戶的交易請求應該在0.5s內完成'主要與(3)質量屬性相關,通常可采用(4)架構策略實現該屬性;"系統應該能夠抵擋惡意用戶的入侵行為,并進行報警和記錄"主要與(5)質量屬性相關,通常可采用(6)架構策略實現該屬性
? ? ? ? (1):A.性能? ? ? ? ???????B.可用性? ? ? ? ?C.易用性? ? ? ? D.可修改性
????????(2):A.主動冗余? ? ? ? B.信息隱藏? ? ?C.抽象接口? ? ?D.記錄/回放
? ? ? ? (3):A.性能? ? ? ? ???????B.可用性? ? ? ? ?C.易用性? ? ? ? D.可修改性
? ? ? ? (4):A.操作串行化? ? ?B.資源調度? ? ?C.心跳? ? ? ? ? ? D.內置監控器
????????(5):A.可用性? ? ? ? ? ? B.安全性? ? ? ? ?C.可測試性? ? D.可修改性
????????(6):A.內置監控器? ? ?B.記錄/回放? ? C.追蹤審計? ? ?D.維護現有接口
?
人工分割線-答案
? ? ? ? ????1.B、A
? ? ? ? ????????A、B
? ? ? ? ? ? ? ? B、C
????????
?